[pLog-svn] r2901 - in plog/trunk: js/editor js/prototype
templates/admin
mark at devel.lifetype.net
mark at devel.lifetype.net
Sat Feb 4 17:49:57 GMT 2006
Author: mark
Date: 2006-02-04 17:49:57 +0000 (Sat, 04 Feb 2006)
New Revision: 2901
Modified:
plog/trunk/js/editor/plogeditor.js
plog/trunk/js/prototype/prototype.js
plog/trunk/templates/admin/editpost.template
plog/trunk/templates/admin/newpost.template
Log:
Finally, I fix the bug of pLog Editor. It is not the bug of template, it is the bug of javascript.
1. There are some compatibability issue between Prototype and pLogeditor, I just add a compatibability check to avoid the problem
2. I also implement add resource in plogeditor. So, we don't need that ugly add resource link any more :D
3. I only test in IE, FireFox and Opera, not in Safari... So .. Oscar I need your help to test it under Safari to see it works or not.
Mark
Modified: plog/trunk/js/editor/plogeditor.js
===================================================================
--- plog/trunk/js/editor/plogeditor.js 2006-02-04 17:36:29 UTC (rev 2900)
+++ plog/trunk/js/editor/plogeditor.js 2006-02-04 17:49:57 UTC (rev 2901)
@@ -383,6 +383,39 @@
}
/**
+ * special button that only adds an resource
+ *
+ * @param id
+ * @param display
+ * @param icon
+ */
+edButtonResource = function(id, display, icon)
+{
+ //
+ // strange javascript thingies used for object inheritance...
+ //
+ this.prototype = new edButton(id, display, '', '', icon, -1 );
+ this.prototype.constructor = edButton;
+ this.superclass = edButton;
+
+ this.superclass(id, display, '', '', icon, -1 );
+
+ /**
+ * reimplemented from edButton so that we can ask for an image url and a description
+ *
+ * @param txtId
+ */
+ this.execute = function( txtId, param )
+ {
+ if ( txtId == 'postText' )
+ resource_list_window(1);
+ else
+ resource_list_window(2);
+ return '';
+ }
+}
+
+/**
* implements drop-down lists
*/
edButtonList = function( id, options )
@@ -408,6 +441,8 @@
{
selectBox = '<select class="editorDropDownList" name=\''+this.id+'\' onChange="'+objName+'.execute(\'' + txtId + '\', \'' + this.id + '\', this);">';
for( var key in this.options ) {
+ if ( prototypeCompatibabilityCheck( key ) )
+ continue;
selectBox += '<option value=\''+key+'\'>'+this.options[key]+'</option>';
}
selectBox += '</select>';
@@ -503,7 +538,7 @@
// --
// our very own toolbar
// --
- this.toolBar = Array();
+ this.toolBar = new Array();
options = new Array();
options['8'] = '8 pt';
options['10'] = '10 pt';
@@ -527,6 +562,7 @@
this.toolBar['but_unordered_list'] = new edButton( 'but_unordered_list', 'unordered list', '<ul><li></li></ul>', '', 'ed_list_bullet.gif', -1 );
this.toolBar['5_but_a'] = new edButtonLink( '5_but_a', 'anchor', 'ed_link.gif' );
this.toolBar['6_but_img']= new edButtonImage( '6_but_img', 'image', 'ed_image.gif' );
+ this.toolBar['7_but_res']= new edButtonResource ('7_but_res', 'resource', 'ed_resource.gif' );
/**
* returns whether our browser supports the features that we are going
@@ -554,11 +590,12 @@
markup = '';
- this.toolBar.sort();
document.write('<div class="textEditorToolbar" id="textEditorToolbar">');
for( var buttonId in this.toolBar ) {
- button = this.toolBar[buttonId];
- markup += button.show(this.txtId, this.objName);
+ if ( prototypeCompatibabilityCheck( buttonId ) )
+ continue;
+ button = this.toolBar[buttonId];
+ markup += button.show(this.txtId, this.objName);
}
document.write(markup);
document.write('</div>');
@@ -729,3 +766,48 @@
return selection;
}
}
+
+// Add this function to Prototype Lib Compatibability Check
+function prototypeCompatibabilityCheck( str )
+{
+ if ( str == '_each' ||
+ str == '_reverse' ||
+ str == 'all' ||
+ str == 'any' ||
+ str == 'clear' ||
+ str == 'collect' ||
+ str == 'compact' ||
+ str == 'detect' ||
+ str == 'each' ||
+ str == 'entries' ||
+ str == 'extend' ||
+ str == 'find' ||
+ str == 'findAll' ||
+ str == 'first' ||
+ str == 'flatten' ||
+ str == 'grep' ||
+ str == 'include' ||
+ str == 'indices' ||
+ str == 'indexOf' ||
+ str == 'inject' ||
+ str == 'inspect' ||
+ str == 'invoke' ||
+ str == 'last' ||
+ str == 'map' ||
+ str == 'max' ||
+ str == 'member' ||
+ str == 'min' ||
+ str == 'partition' ||
+ str == 'pluck' ||
+ str == 'reject' ||
+ str == 'remove' ||
+ str == 'removeItem' ||
+ str == 'select' ||
+ str == 'sortBy' ||
+ str == 'toArray' ||
+ str == 'without' ||
+ str == 'zip')
+ return true;
+ else
+ return false;
+}
Modified: plog/trunk/js/prototype/prototype.js
===================================================================
--- plog/trunk/js/prototype/prototype.js 2006-02-04 17:36:29 UTC (rev 2900)
+++ plog/trunk/js/prototype/prototype.js 2006-02-04 17:49:57 UTC (rev 2901)
@@ -1,11 +1,7 @@
/* Prototype JavaScript framework, version 1.4.0
* (c) 2005 Sam Stephenson <sam at conio.net>
*
- * THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
- * against the source tree, available from the Prototype darcs repository.
- *
* Prototype is freely distributable under the terms of an MIT-style license.
- *
* For details, see the Prototype web site: http://prototype.conio.net/
*
/*--------------------------------------------------------------------------*/
Modified: plog/trunk/templates/admin/editpost.template
===================================================================
--- plog/trunk/templates/admin/editpost.template 2006-02-04 17:36:29 UTC (rev 2900)
+++ plog/trunk/templates/admin/editpost.template 2006-02-04 17:49:57 UTC (rev 2901)
@@ -52,21 +52,15 @@
<span class="required">*</span>
<div class="formHelp">{$locale->tr("text_help")}</div>
{if !$htmlarea}<script type="text/javascript">var ed1 = new pLogEditor('postText','ed1');</script>{/if}
- <textarea {if $htmlarea==1}rows="20"{else}rows="10"{/if} id="postText" name="postText" style="width:100%">{$postText}</textarea>
+ <textarea {if $htmlarea==1}rows="20"{else}rows="15"{/if} id="postText" name="postText" style="width:100%">{$postText}</textarea>
{include file="$admintemplatepath/validate.template" field=postText message=$locale->tr("error_missing_post_text")}
- {if !$htmlarea}
- <a href="javascript:resource_list_window(1);">{$locale->tr("add_resource")}</a>
- {/if}
</div>
<div class="field">
<label for="postExtendedText">{$locale->tr("extended_text")}</label>
<div class="formHelp">{$locale->tr("extended_text_help")}</div>
{if !$htmlarea}<script type="text/javascript">var ed2 = new pLogEditor('postExtendedText','ed2');</script>{/if}
- <textarea {if $htmlarea}rows="25"{else}rows="15"{/if} id="postExtendedText" name="postExtendedText" style="width:100%">{$postExtendedText}</textarea>
- {if !$htmlarea}
- <a href="javascript:resource_list_window(2);">{$locale->tr("add_resource")}</a>
- {/if}
+ <textarea {if $htmlarea}rows="25"{else}rows="20"{/if} id="postExtendedText" name="postExtendedText" style="width:100%">{$postExtendedText}</textarea>
</div>
<div class="field">
Modified: plog/trunk/templates/admin/newpost.template
===================================================================
--- plog/trunk/templates/admin/newpost.template 2006-02-04 17:36:29 UTC (rev 2900)
+++ plog/trunk/templates/admin/newpost.template 2006-02-04 17:49:57 UTC (rev 2901)
@@ -63,21 +63,15 @@
<span class="required">*</span>
<div class="formHelp">{$locale->tr("text_help")}</div>
{if !$htmlarea}<script type="text/javascript">var ed1 = new pLogEditor('postText','ed1');</script>{/if}
- <textarea {if $htmlarea==1}rows="20"{else}rows="10"{/if} id="postText" name="postText" style="width:100%">{$postText}</textarea>
+ <textarea {if $htmlarea==1}rows="20"{else}rows="15"{/if} id="postText" name="postText" style="width:100%">{$postText}</textarea>
{include file="$admintemplatepath/validate.template" field=postText message=$locale->tr("error_missing_post_text")}
- {if !$htmlarea}
- <a href="javascript:resource_list_window(1);">{$locale->tr("add_resource")}</a>
- {/if}
</div>
<div class="field">
<label for="postExtendedText">{$locale->tr("extended_text")}</label>
<div class="formHelp">{$locale->tr("extended_text_help")}</div>
{if !$htmlarea}<script type="text/javascript">var ed2 = new pLogEditor('postExtendedText','ed2');</script>{/if}
- <textarea {if $htmlarea}rows="25"{else}rows="15"{/if} id="postExtendedText" name="postExtendedText" style="width:100%">{$postExtendedText}</textarea>
- {if !$htmlarea}
- <a href="javascript:resource_list_window(2);">{$locale->tr("add_resource")}</a>
- {/if}
+ <textarea {if $htmlarea}rows="25"{else}rows="20"{/if} id="postExtendedText" name="postExtendedText" style="width:100%">{$postExtendedText}</textarea>
</div>
<div class="field">
More information about the pLog-svn
mailing list