You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by ne...@apache.org on 2007/07/27 16:54:55 UTC
svn commit: r560257 - in /lenya/trunk/src/modules/fckeditor: ./ config/
config/cocoon-xconf/ resources/ resources/javascript/
resources/plugins/fck_lenya_glue/ resources/plugins/fck_lenya_glue/lang/
resources/plugins/lenyaSave/ usecases/ xslt/
Author: nettings
Date: Fri Jul 27 07:54:53 2007
New Revision: 560257
URL: http://svn.apache.org/viewvc?view=rev&rev=560257
Log:
migrate fckeditor to new editor usecase api.
this is a little shaky atm...
Added:
lenya/trunk/src/modules/fckeditor/resources/UNPACK_FCKEDITOR_ARCHIVE_HERE
lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/
lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/fckplugin.js
lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/insertImage.gif (with props)
lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/insertLink.gif (with props)
lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/
lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/de.js
lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/en.js
Removed:
lenya/trunk/src/modules/fckeditor/config/cocoon-xconf/usecase-insertAsset.xconf
lenya/trunk/src/modules/fckeditor/config/cocoon-xconf/usecase-insertImage.xconf
lenya/trunk/src/modules/fckeditor/resources/javascript/insertAsset.js
lenya/trunk/src/modules/fckeditor/resources/javascript/insertLink.js
lenya/trunk/src/modules/fckeditor/resources/plugins/lenyaSave/
lenya/trunk/src/modules/fckeditor/xslt/link.xsl
Modified:
lenya/trunk/src/modules/fckeditor/config/module.xml
lenya/trunk/src/modules/fckeditor/resources/javascript/fckconfig.js
lenya/trunk/src/modules/fckeditor/resources/javascript/fckloader.js
lenya/trunk/src/modules/fckeditor/sitemap.xmap
lenya/trunk/src/modules/fckeditor/usecases/fckeditor.jx
Modified: lenya/trunk/src/modules/fckeditor/config/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/config/module.xml?view=diff&rev=560257&r1=560256&r2=560257
==============================================================================
--- lenya/trunk/src/modules/fckeditor/config/module.xml (original)
+++ lenya/trunk/src/modules/fckeditor/config/module.xml Fri Jul 27 07:54:53 2007
@@ -22,8 +22,9 @@
<id>org.apache.lenya.modules.fckeditor</id>
<depends module="org.apache.lenya.modules.usecase"/>
<package>org.apache.lenya.modules</package>
- <version>0.1-dev</version>
+ <version>0.2-dev</version>
<name>FCK Editor</name>
<lenya-version>@lenya.version@</lenya-version>
- <description>FCK Editor</description>
+ <description>FCK Editor, now uses generic usecases to insert links, images and
+ assets</description>
</module>
Added: lenya/trunk/src/modules/fckeditor/resources/UNPACK_FCKEDITOR_ARCHIVE_HERE
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/resources/UNPACK_FCKEDITOR_ARCHIVE_HERE?view=auto&rev=560257
==============================================================================
(empty)
Modified: lenya/trunk/src/modules/fckeditor/resources/javascript/fckconfig.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/resources/javascript/fckconfig.js?view=diff&rev=560257&r1=560256&r2=560257
==============================================================================
--- lenya/trunk/src/modules/fckeditor/resources/javascript/fckconfig.js (original)
+++ lenya/trunk/src/modules/fckeditor/resources/javascript/fckconfig.js Fri Jul 27 07:54:53 2007
@@ -21,14 +21,14 @@
*/
FCKConfig.ToolbarSets["Lenya"] = [
- ['Source','DocProps','-','lenyaSave','Preview','-','Templates'],
+ ['Source','DocProps','-','Lenya_save','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteWord','-','Print'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],
['OrderedList','UnorderedList','-','Outdent','Indent'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],
- ['Link','Unlink','Anchor'],
- ['Image','Table','Rule','Smiley','SpecialChar','PageBreak'],
+ ['Link', 'Lenya_insertLink','Unlink','Anchor'],
+ ['Image', 'Lenya_insertImage','Table','Rule','Smiley','SpecialChar','PageBreak'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],
'/',
['Style','FontFormat','FontName','FontSize'],
@@ -39,7 +39,7 @@
/*
* plugin for save in lenya
*/
-FCKConfig.Plugins.Add( 'lenyaSave', 'de,en', '../../plugins/' ) ;
+FCKConfig.Plugins.Add( 'fck_lenya_glue', 'de,en', '../../plugins/' ) ;
/*
* disable uploads since it needs to be done from withing Lenya
Modified: lenya/trunk/src/modules/fckeditor/resources/javascript/fckloader.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/resources/javascript/fckloader.js?view=diff&rev=560257&r1=560256&r2=560257
==============================================================================
--- lenya/trunk/src/modules/fckeditor/resources/javascript/fckloader.js (original)
+++ lenya/trunk/src/modules/fckeditor/resources/javascript/fckloader.js Fri Jul 27 07:54:53 2007
@@ -26,7 +26,10 @@
oFCKeditor.Config[ "ProcessNumericEntities" ] = true ;
oFCKeditor.Config["CustomConfigurationsPath"] = contextPath + "/modules/fckeditor/javascript/fckconfig.js" ;
oFCKeditor.ToolbarSet = 'Lenya' ;
- oFCKeditor.Config[ "ImageBrowserURL" ] = requesturi +'?lenya.usecase=fckeditor.insertImage' ;
- oFCKeditor.Config[ "LinkBrowserURL" ] = requesturi +'?lenya.module=fckeditor&lenya.step=link-show&language=en' ;
+// the current API does not support this anymore. there is a plugin for that job now.
+// with an extra html page, this function could probably be restored easily, which would be
+// nice because it plugs into the rather comfortable image and link dialogs of FCK...
+// oFCKeditor.Config[ "ImageBrowserURL" ] = requesturi +'?lenya.usecase=editors.insertImage' ;
+// oFCKeditor.Config[ "LinkBrowserURL" ] = requesturi +'?lenya.usecase=editors.insertLink' ;
oFCKeditor.ReplaceTextarea() ;
}
Added: lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/fckplugin.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/fckplugin.js?view=auto&rev=560257
==============================================================================
--- lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/fckplugin.js (added)
+++ lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/fckplugin.js Fri Jul 27 07:54:53 2007
@@ -0,0 +1,190 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+/**
+ * implements a "save" button that works with Lenya
+ *
+ * All it does is trigger a submit event, and then the normal
+ * usecase handler takes over, as if the user had clicked
+ * the XHTML submit button.
+ */
+function LenyaSaveCommand() { this.Name = 'Lenya_save'; }
+
+/**
+ * an FCKeditor callback that is run when the command is invoked
+ */
+LenyaSaveCommand.prototype.Execute = function() {
+ var oForm = FCK.LinkedField.form ;
+ oForm.submit.click()
+}
+/**
+ * an FCKeditor callback that takes care of button state
+ */
+LenyaSaveCommand.prototype.GetState = function() {
+ return FCK_TRISTATE_OFF;
+}
+
+
+/**
+ * implements an "insert link" button that works with Lenya
+ *
+ * It will open the editors.insertLink usecase in a new window.
+ */
+function LenyaInsertLinkCommand() { this.Name = 'Lenya_insertLink'; }
+
+/**
+ * an FCKeditor callback that is run when the command is invoked
+ */
+LenyaInsertLinkCommand.prototype.Execute = function() {
+ //alert("Lenya_insertLink executed.");
+ var windowName = org.apache.lenya.editors.generateUniqueWindowName();
+ var selection = org.apache.lenya.editors.getSelectedText(FCK.EditorWindow);
+ usecaseMap[windowName] = org.apache.lenya.editors.USECASE_INSERTLINK;
+ objectData[windowName] = new org.apache.lenya.editors.ObjectData({
+ url : "",
+ title : "",
+ text : selection
+ });
+ org.apache.lenya.editors.openUsecaseWindow(
+ usecaseMap[windowName],
+ windowName
+ );
+}
+
+/**
+ * an FCKeditor callback that takes care of button state
+ */
+LenyaInsertLinkCommand.prototype.GetState = function() {
+ return FCK_TRISTATE_OFF;
+}
+
+
+/**
+ * implements an "insert image" button that works with Lenya
+ *
+ * It will open the editors.insertImage usecase in a new window.
+ */
+function LenyaInsertImageCommand() { this.Name = 'Lenya_insertLink'; }
+
+/**
+ * an FCKeditor callback that is run when the command is invoked
+ */
+LenyaInsertImageCommand.prototype.Execute = function() {
+ //alert("Lenya_insertImage executed.");
+ var windowName = org.apache.lenya.editors.generateUniqueWindowName();
+ var selection = org.apache.lenya.editors.getSelectedText(FCK.EditorWindow);
+ usecaseMap[windowName] = org.apache.lenya.editors.USECASE_INSERTIMAGE;
+ objectData[windowName] = new org.apache.lenya.editors.ObjectData({
+ url : "",
+ title : "",
+ text : selection,
+ height: "",
+ width : ""
+ });
+ org.apache.lenya.editors.openUsecaseWindow(
+ usecaseMap[windowName],
+ windowName
+ );
+}
+
+/**
+ * an FCKeditor callback that takes care of button state
+ */
+LenyaInsertImageCommand.prototype.GetState = function() {
+ return FCK_TRISTATE_OFF;
+}
+
+
+/***************** main *******************************************************/
+
+/**
+ * FCKeditor uses frames heavily, which means that our helper library
+ * will not be in the current scope. So we define it to point to the
+ * "top" window, which hopefully has the library included.
+ */
+var org;
+if (!org) {
+ org = window.top.org;
+} else if (!org.apache) {
+ org.apache = window.top.org.apache;
+} else if (!org.apache.lenya) {
+ org.apache.lenya = window.top.org.apache.lenya;
+} else if (!org.apache.lenya.editors) {
+ org.apache.lenya.editors = window.top.org.apache.lenya.editors;
+}
+
+/**
+ * to store usecase data per window
+ */
+var objectData = new Array();
+
+/**
+ * to map usecase names to window names
+ */
+var usecaseMap = new Array();
+
+
+/* FCKCommands.RegisterCommand(commandName, command)
+ commandName - Command name, referenced by the Toolbar, etc...
+ command - Command object (must provide an Execute() function).
+*/
+
+// Register Lenya-specific commands
+
+FCKCommands.RegisterCommand('Lenya_save', new LenyaSaveCommand());
+FCKCommands.RegisterCommand('Lenya_insertLink', new LenyaInsertLinkCommand());
+FCKCommands.RegisterCommand('Lenya_insertImage', new LenyaInsertImageCommand());
+
+
+
+// Create Lenya-specific toolbar buttons:
+
+var oLenya_saveItem = new FCKToolbarButton('Lenya_save', FCKLang['DlgLenya_saveTitle']);
+oLenya_saveItem.IconPath= [FCKConfig.SkinPath + 'fck_strip.gif', 16, 3]; // use FCKEditor's icons
+FCKToolbarItems.RegisterItem( 'Lenya_save', oLenya_saveItem ) ;
+
+var oLenya_insertLinkItem = new FCKToolbarButton('Lenya_insertLink', FCKLang['DlgLenya_insertLinkTitle']);
+oLenya_insertLinkItem.IconPath = FCKPlugins.Items['fck_lenya_glue'].Path + 'insertLink.gif' ;
+FCKToolbarItems.RegisterItem( 'Lenya_insertLink', oLenya_insertLinkItem ) ;
+
+var oLenya_insertImageItem = new FCKToolbarButton( 'Lenya_insertImage', FCKLang['DlgLenya_insertImageTitle']);
+oLenya_insertImageItem.IconPath = FCKPlugins.Items['fck_lenya_glue'].Path + 'insertImage.gif';
+FCKToolbarItems.RegisterItem('Lenya_insertImage', oLenya_insertImageItem);
+
+
+/******************** Lenya editor usecase callbacks **********************/
+
+
+org.apache.lenya.editors.setObjectData = function(objectData, windowName) {
+ var usecase = usecaseMap[windowName];
+ var snippet = org.apache.lenya.editors.generateContentSnippet(usecase, objectData);
+ var selection = org.apache.lenya.editors.getSelectedText(FCK.EditorWindow);
+
+ FCK.InsertHtml(
+ snippet.beforeSelection
+ + (snippet.replaceSelection ? snippet.replaceSelection : selection)
+ + snippet.afterSelection
+ );
+
+ usecaseMap[windowName] = undefined; // we're done!
+ objectData[windowName] = undefined; // we're done!
+}
+
+org.apache.lenya.editors.getObjectData = function(windowName, usecase) {
+ return objectData[windowName];
+}
Added: lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/insertImage.gif
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/insertImage.gif?view=auto&rev=560257
==============================================================================
Binary file - no diff available.
Propchange: lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/insertImage.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/insertLink.gif
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/insertLink.gif?view=auto&rev=560257
==============================================================================
Binary file - no diff available.
Propchange: lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/insertLink.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/de.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/de.js?view=auto&rev=560257
==============================================================================
--- lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/de.js (added)
+++ lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/de.js Fri Jul 27 07:54:53 2007
@@ -0,0 +1,20 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+FCKLang['DlgLenya_saveTitle'] = 'Lenya-Dokument speichern';
+FCKLang['DlgLenya_insertLinkTitle'] = 'Lenya-Link einfügen';
+FCKLang['DlgLenya_insertImageTitle'] = 'Lenya-Bild einfügen';
Added: lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/en.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/en.js?view=auto&rev=560257
==============================================================================
--- lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/en.js (added)
+++ lenya/trunk/src/modules/fckeditor/resources/plugins/fck_lenya_glue/lang/en.js Fri Jul 27 07:54:53 2007
@@ -0,0 +1,20 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+FCKLang['DlgLenya_saveTitle'] = 'Save Lenya Document';
+FCKLang['DlgLenya_insertLinkTitle'] = 'Insert Lenya link';
+FCKLang['DlgLenya_insertImageTitle'] = 'Insert Lenya image';
Modified: lenya/trunk/src/modules/fckeditor/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/sitemap.xmap?view=diff&rev=560257&r1=560256&r2=560257
==============================================================================
--- lenya/trunk/src/modules/fckeditor/sitemap.xmap (original)
+++ lenya/trunk/src/modules/fckeditor/sitemap.xmap Fri Jul 27 07:54:53 2007
@@ -43,6 +43,7 @@
<map:pipelines>
<map:pipeline>
+
<map:match pattern="fckeditor.open" >
<map:generate type="jx" src="fallback://lenya/modules/fckeditor/usecases/fckeditor.jx"/>
<map:transform type="i18n">
@@ -53,25 +54,6 @@
<map:transform type="proxy"/>
<map:transform src="fallback://lenya/xslt/util/strip_namespaces.xsl"/>
<map:serialize type="xhtml"/>
- </map:match>
-
- <map:match pattern="link-show" type="step">
- <map:generate src="context://lenya/content/util/empty.xml"/>
- <map:transform src="fallback://lenya/modules/fckeditor/xslt/link.xsl" label="content">
- <map:parameter name="infoarea" value="true"/>
- <map:parameter name="contextprefix" value=""/>
- <map:parameter name="publicationid" value="{page-envelope:publication-id}"/>
- <map:parameter name="area" value="authoring"/>
- <map:parameter name="tab" value="en"/>
- <map:parameter name="chosenlanguage" value="{page-envelope:document-language}"/>
- <map:parameter name="path" value="{page-envelope:document-path}"/>
- <map:parameter name="documenturl" value="/{page-envelope:document-url}"/>
- <map:parameter name="documentextension" value="{page-envelope:document-extension}"/>
- <map:parameter name="defaultlanguage" value="{page-envelope:default-language}"/>
- <map:parameter name="languages" value="{page-envelope:publication-languages-csv}"/>
- </map:transform>
- <map:call resource="style-cms-page"/>
- <map:serialize />
</map:match>
<map:match pattern="content">
Modified: lenya/trunk/src/modules/fckeditor/usecases/fckeditor.jx
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/fckeditor/usecases/fckeditor.jx?view=diff&rev=560257&r1=560256&r2=560257
==============================================================================
--- lenya/trunk/src/modules/fckeditor/usecases/fckeditor.jx (original)
+++ lenya/trunk/src/modules/fckeditor/usecases/fckeditor.jx Fri Jul 27 07:54:53 2007
@@ -27,6 +27,8 @@
<script type="text/javascript" src="/modules/fckeditor/fckeditor/fckeditor.js"> </script>
<script type="text/javascript" src="/modules/fckeditor/javascript/fckloader.js"> </script>
<script type="text/javascript" src="/modules/editors/javascript/disablebackspace.js"> </script>
+ <script type="text/javascript" src="/modules/editors/javascript/org.apache.lenya.editors.js"> </script>
+ <script type="text/javascript" src="/modules/fckeditor/javascript/fck_lenya_glue.js"> </script>
<script type="text/javascript">
window.onload = function()
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org