svn commit: r558895 - in /lenya/trunk/src/modules/editors: resources/i18n/cmsui.xml resources/i18n/cmsui_de.xml resources/javascript/insertLink.js sitemap.xmap xslt/insertLink.xsl

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: nettings
Date: Mon Jul 23 16:14:25 2007
New Revision: 558895

URL: http://svn.apache.org/viewvc?view=rev&rev=558895
Log:
added i18n and de/en l10n to insertLink usecase.
code cleanup, added reading of default values via
window.opener.LenyaGetLinkData()


Modified:
    lenya/trunk/src/modules/editors/resources/i18n/cmsui.xml
    lenya/trunk/src/modules/editors/resources/i18n/cmsui_de.xml
    lenya/trunk/src/modules/editors/resources/javascript/insertLink.js
    lenya/trunk/src/modules/editors/sitemap.xmap
    lenya/trunk/src/modules/editors/xslt/insertLink.xsl

Modified: lenya/trunk/src/modules/editors/resources/i18n/cmsui.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/editors/resources/i18n/cmsui.xml?view=diff&rev=558895&r1=558894&r2=558895
==============================================================================
--- lenya/trunk/src/modules/editors/resources/i18n/cmsui.xml (original)
+++ lenya/trunk/src/modules/editors/resources/i18n/cmsui.xml Mon Jul 23 16:14:25 2007
@@ -22,4 +22,12 @@
   
   <message key="Reformat">Reformat</message>
 
+  <message key="insertLink.heading">Insert Link</message>
+  <message key="insertLink.clickTreeOrType">
+    You can either click on a node in the tree for an internal link or enter a link in the URL field.
+  </message>
+  <message key="insertLink.URL">URL</message>
+  <message key="insertLink.text">Link text</message>
+  <message key="insertLink.title">Link title</message>
+  <message key="insertLink.submit">Insert Link!</message>
 </catalogue>

Modified: lenya/trunk/src/modules/editors/resources/i18n/cmsui_de.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/editors/resources/i18n/cmsui_de.xml?view=diff&rev=558895&r1=558894&r2=558895
==============================================================================
--- lenya/trunk/src/modules/editors/resources/i18n/cmsui_de.xml (original)
+++ lenya/trunk/src/modules/editors/resources/i18n/cmsui_de.xml Mon Jul 23 16:14:25 2007
@@ -22,4 +22,13 @@
   
   <message key="Reformat">Formatieren</message>
 
+  <message key="insertLink.heading">Link einfügen</message>
+  <message key="insertLink.clickTreeOrType">
+    Sie können entweder ein Dokument im Baum auswählen oder eine beliebige URL eingeben.
+  </message>
+  <message key="insertLink.URL">URL</message>
+  <message key="insertLink.text">Link-Text</message>
+  <message key="insertLink.title">Link-Titel</message>
+  <message key="insertLink.submit">Link einfügen!</message>
+            
 </catalogue>

Modified: lenya/trunk/src/modules/editors/resources/javascript/insertLink.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/editors/resources/javascript/insertLink.js?view=diff&rev=558895&r1=558894&r2=558895
==============================================================================
--- lenya/trunk/src/modules/editors/resources/javascript/insertLink.js (original)
+++ lenya/trunk/src/modules/editors/resources/javascript/insertLink.js Mon Jul 23 16:14:25 2007
@@ -16,35 +16,49 @@
 */
 
 
-/* this file implements the generic part of an LenyaInsertLink usecase. for the editor-specific glue,
-   a callback function must be provided by the editor module. */
+/* this file implements the generic part of an insertLink usecase.
+   for the editor-specific glue, a callback function must be provided by the editor module.
+   see http://wiki.apache.org/lenya/GenericEditorAPI .
+ */
 
-function LenyaInvokeInsertLink() { 
+function lenyaInvokeInsertLink() { 
   // prepare linkData object (this is part of the callback API!):
+  var form = document.forms["LenyaInsertLink"]
   var linkData = {
-    'href':  document.forms["LenyaInsertLink"].url.value,
-    'text':  document.forms["LenyaInsertLink"].text.value,
-    'title': document.forms["LenyaInsertLink"].title.value,
+    'href':  form.url.value,
+    'text':  form.text.value,
+    'title': form.title.value,
     'name':  "",
     'lang':  ""
   };
 
   // invoke callback:
-  LenyaInsertLink(linkData);
+  window.opener.LenyaSetLinkData(linkData);
+  window.close();
 }
 
 /**
-  * if the user selected some text in the editor, use it to fill the "text" field.
+  * fill the form with defaults.
   */
-function LenyaSetText() { 
-    var selectionContent = window.opener.getSelection().getEditableRange().toString(); 
-    if (selectionContent.length != 0) { 
-        document.forms["LenyaInsertLink"].text.value = selectionContent;
-    } 
-    focus(); 
+function lenyaSetDefaults(linkData) { 
+    var linkData = window.opener.LenyaGetLinkData();
+    var form = document.forms["LenyaInsertLink"];
+    if (linkData['href'] !== undefined)
+      form.url.value = linkData['href'];
+    else
+      form.url.disabled = true;
+     if (linkData['text'] !== undefined)
+      form.text.value = linkData['text'];
+    else
+      form.text.disabled = true;
+    if (linkData['title'] !== undefined)
+       form.title.value = linkData['title'];
+    else
+       form.title.disabled = true;
+    window.focus();
 }
 
-function LenyaLinkTree(doc, treeElement) {
+function lenyaLinkTree(doc, treeElement) {
     this.doc = doc;
     this.treeElement = treeElement;
     this.selected = null;
@@ -52,24 +66,26 @@
 
 /**
   * FIXME: CHOSEN_LANGUAGE should not be a global variable!
-  * a callback used by the LenyaLinkTree object.
+  * a callback used by the lenyaLinkTree object.
   */
-function LenyaSetLink(uuid) {
+function lenyaSetLink(uuid) {
     var language = CHOSEN_LANGUAGE;
     document.forms["LenyaInsertLink"].url.value = "lenya-document:" + uuid + ",lang=" + language;
 }
 
-function LenyaBuildTree() {
+function lenyaBuildTree() {
     var placeholder = document.getElementById('tree');
-    var tree = new LenyaLinkTree(document, placeholder);
+    var tree = new lenyaLinkTree(document, placeholder);
     tree.init(PUBLICATION_ID);
     tree.render();
     tree.loadInitialTree(AREA, DOCUMENT_ID);
 }
 
-window.onload = LenyaSetText;
-
-LenyaLinkTree.prototype = new NavTree;
-LenyaLinkTree.prototype.handleItemClick = function(item, event) {
-    LenyaSetLink(item.uuid);
+lenyaLinkTree.prototype = new NavTree;
+lenyaLinkTree.prototype.handleItemClick = function(item, event) {
+    lenyaSetLink(item.uuid);
 }
+
+window.onload = function() {
+  lenyaSetDefaults();
+}
\ No newline at end of file

Modified: lenya/trunk/src/modules/editors/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/editors/sitemap.xmap?view=diff&rev=558895&r1=558894&r2=558895
==============================================================================
--- lenya/trunk/src/modules/editors/sitemap.xmap (original)
+++ lenya/trunk/src/modules/editors/sitemap.xmap Mon Jul 23 16:14:25 2007
@@ -92,16 +92,13 @@
         <map:transform src="fallback://lenya/modules/editors/xslt/insertLink.xsl">
           <map:parameter name="publicationId" value="{page-envelope:publication-id}"/>
           <map:parameter name="area" value="authoring"/>
-          <map:parameter name="areaBasePath"
-             value="{proxy:/{page-envelope:publication-id}/{page-envelope:area}}"/>
-          <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="documentId" value="{page-envelope:document-uuid}"/>
+          <map:parameter name="documentPath" value="{page-envelope:document-path}"/>
+          <map:parameter name="documentLanguage" value="{page-envelope:document-language}"/>
           <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:parameter name="editorModule" value="{request-param:lenya.editorModule}"/>
+          <map:parameter name="areaBasePath"
+             value="{proxy:/{page-envelope:publication-id}/{page-envelope:area}}"/>
         </map:transform>
         <map:call resource="style-cms-page"/>
         <map:serialize />
@@ -116,4 +113,4 @@
     
   </map:pipelines>
 
-</map:sitemap>
\ No newline at end of file
+</map:sitemap>

Modified: lenya/trunk/src/modules/editors/xslt/insertLink.xsl
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/editors/xslt/insertLink.xsl?view=diff&rev=558895&r1=558894&r2=558895
==============================================================================
--- lenya/trunk/src/modules/editors/xslt/insertLink.xsl (original)
+++ lenya/trunk/src/modules/editors/xslt/insertLink.xsl Mon Jul 23 16:14:25 2007
@@ -31,14 +31,12 @@
   
   <xsl:param name="publicationId"/>
   <xsl:param name="area"/>
-  <xsl:param name="tab"/>
-  <xsl:param name="path"/>
+  <xsl:param name="documentPath"/>
+  <xsl:param name="documentLanguage"/>
   <xsl:param name="documentExtension"/>
-  <xsl:param name="languages"/>
-  <xsl:param name="chosenLanguage"/>
   <xsl:param name="defaultLanguage"/>
+  <xsl:param name="languages"/>
   <xsl:param name="areaBasePath"/>
-  <xsl:param name="editorModule" select="editors"/>
   
   <xsl:variable name="extension">
     <xsl:if test="$documentExtension != ''">
@@ -49,18 +47,17 @@
   
   <xsl:template match="/">
     <page:page>
-      <page:title>Insert Link</page:title>
+      <page:title><i18n:text key="insertLink.heading"/></page:title>
       <page:body>
         <script type="text/javascript" src="/modules/sitetree/javascript/tree.js">&#160;</script>
         <script type="text/javascript" src="/modules/sitetree/javascript/lenyatree.js">&#160;</script>
         <script type="text/javascript" src="/modules/sitetree/javascript/navtree.js">&#160;</script>
         <script type="text/javascript" src="/modules/editors/javascript/insertLink.js">&#160;</script>
-        <script type="text/javascript" src="/modules/{$editorModule}/javascript/editorCallbacks.js">&#160;</script>
-        <script type="text/javascript" >
+        <script type="text/javascript">
           AREA = "<xsl:value-of select="$area"/>";
-          DOCUMENT_ID = "<xsl:value-of select="$path"/>";
+          DOCUMENT_ID = "<xsl:value-of select="$documentPath"/>";
           PUBLICATION_ID = "<xsl:value-of select="$publicationId"/>";
-          CHOSEN_LANGUAGE = "<xsl:value-of select="$chosenLanguage"/>";
+          CHOSEN_LANGUAGE = "<xsl:value-of select="$documentLanguage"/>";
           DEFAULT_LANGUAGE = "<xsl:value-of select="$defaultLanguage"/>";
           IMAGE_PATH = "/lenya/images/tree/";
           CUT_DOCUMENT_ID = '';
@@ -69,7 +66,7 @@
           AREA_BASE_PATH = "<xsl:value-of select="$areaBasePath"/>";
         </script>
         
-        <div id="lenya-info-treecanvas" style="width: 30%">
+        <div id="lenya-info-treecanvas" style="width: 30%; float:left;">
           <div class="lenya-tabs">
             <xsl:call-template name="languageTabs">
               <xsl:with-param name="languages" select="$languages"/>
@@ -78,30 +75,30 @@
           <div id="lenya-info-tree">
             <div id="tree">
               <script type="text/javascript">
-                LenyaBuildTree();
+                lenyaBuildTree();
               </script>
             </div>
           </div>
         </div>
         
-        <form action="" name="LenyaInsertLink" id="LenyaInsertLink" onsubmit="LenyaInvokeInsertLink()">
+        <form action="" name="LenyaInsertLink" id="LenyaInsertLink" onsubmit="lenyaInvokeInsertLink()">
           <table class="lenya-table-noborder">
             <tr>
-              <td colspan="2" class="lenya-form-caption">You can either click on a node in the tree for an internal link or enter a link in the URL field. </td>
+              <td colspan="2" class="lenya-form-caption"><i18n:text key="insertLink.clickTreeOrType"/></td>
             </tr>
             <tr>
               <td colspan="2">&#160;</td>
             </tr>
             <tr>
-              <td class="lenya-form-caption"><i18n:text>URL</i18n:text>:</td>
+              <td class="lenya-form-caption"><i18n:text key="insertLink.URL"/>:</td>
               <td><input class="lenya-form-element" type="text" name="url"/></td>
             </tr>
             <tr>
-              <td class="lenya-form-caption"><i18n:text>Title</i18n:text>:</td>
+              <td class="lenya-form-caption"><i18n:text key="insertLink.title"/>:</td>
               <td><input class="lenya-form-element" type="text" name="title"/></td>
             </tr>
             <tr>
-              <td class="lenya-form-caption">Link text:</td>
+              <td class="lenya-form-caption"><i18n:text key="insertLink.text"/>:</td>
               <td><input class="lenya-form-element" type="text" name="text"/></td>
             </tr>
             <tr>
@@ -109,7 +106,7 @@
             </tr>
             <tr>
               <td/>
-              <td><input type="submit" value="Insert" name="input-insert"/></td>
+              <td><input i18n:attr="value" type="submit" value="insertLink.submit" name="input-insert"/></td>
             </tr>
           </table>
         </form>
@@ -149,17 +146,15 @@
         <xsl:value-of select="$publicationId"/>
         <xsl:text>/</xsl:text>
         <xsl:value-of select="$area"/>
-        <xsl:value-of select="$path"/>
+        <xsl:value-of select="$documentPath"/>
         <xsl:text>_</xsl:text>
         <xsl:value-of select="$language"/>
         <xsl:value-of select="$extension"/>
         <xsl:text>?lenya.usecase=editors.insertLink</xsl:text>
-        <xsl:text>&amp;lenya.editorModule=</xsl:text>
-        <xsl:value-of select="$editorModule"/>
       </xsl:attribute>
       <xsl:attribute name="class">
         <xsl:text>lenya-tablink</xsl:text>
-        <xsl:if test="$chosenLanguage = $language">
+        <xsl:if test="$documentLanguage = $language">
           <xsl:text>-active</xsl:text>
         </xsl:if>
       </xsl:attribute>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.