[Checkins] SVN: z3c.reference/trunk/ Seting the new input data from an editor updated the html content via

Juergen Kartnaller juergen at kartnaller.at
Fri Sep 21 06:26:07 EDT 2007


Log message for revision 79787:
  Seting the new input data from an editor updated the html content via
  javascript.
  Extended the widget to render all relevant data into hidden fields
  
  

Changed:
  U   z3c.reference/trunk/CHANGES.txt
  U   z3c.reference/trunk/setup.py
  U   z3c.reference/trunk/src/z3c/reference/browser/README.txt
  U   z3c.reference/trunk/src/z3c/reference/browser/opener.pt
  U   z3c.reference/trunk/src/z3c/reference/browser/resources/reference.editor.js
  U   z3c.reference/trunk/src/z3c/reference/browser/resources/z3c_reference.js
  U   z3c.reference/trunk/src/z3c/reference/browser/views.py
  U   z3c.reference/trunk/src/z3c/reference/browser/widget.pt
  U   z3c.reference/trunk/src/z3c/reference/browser/widget.py

-=-
Modified: z3c.reference/trunk/CHANGES.txt
===================================================================
--- z3c.reference/trunk/CHANGES.txt	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/CHANGES.txt	2007-09-21 10:26:06 UTC (rev 79787)
@@ -5,6 +5,11 @@
 After
 =====
 
+- seting the new input data from an editor updated the html content via
+  javascript
+
+- extended the widget to render all relevant data into hidden fields
+
 - image widget with list of aspect ratios
 
 2007/09/16 1.0.0a4:

Modified: z3c.reference/trunk/setup.py
===================================================================
--- z3c.reference/trunk/setup.py	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/setup.py	2007-09-21 10:26:06 UTC (rev 79787)
@@ -25,6 +25,7 @@
         ),
     install_requires = [
         'setuptools',
+        'simplejson',
         'ZODB3',
         'BeautifulSoup',
         'zc.resourcelibrary',

Modified: z3c.reference/trunk/src/z3c/reference/browser/README.txt
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/README.txt	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/src/z3c/reference/browser/README.txt	2007-09-21 10:26:06 UTC (rev 79787)
@@ -82,11 +82,12 @@
 
   >>> print widget()
   <a class="popupwindow" href="http://127.0.0.1/Intro/viewReferenceEditor.html?target=&amp;settingName=introRefs&amp;name=field.intro" id="field.intro.tag" name="field.intro" onclick="" rel="window">
-  <span>Undefined</span>
+  <span id="field.intro.title">Undefined</span>
   </a>
   <input class="hiddenType" id="field.intro.target" name="field.intro.target" type="hidden" value="" rel="window" />
   <input class="hiddenType" id="field.intro.formData" name="field.intro.formData" type="hidden" value="" rel="window" />
   <input class="hiddenType" id="field.intro.refId" name="field.intro.refId" type="hidden" value="" rel="window" />
+  <input class="hiddenType" id="field.intro.settingName" name="field.intro.settingName" type="hidden" value="introRefs" rel="window" />
 
 If we store a empty request/form we will get the following error::
 

Modified: z3c.reference/trunk/src/z3c/reference/browser/opener.pt
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/opener.pt	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/src/z3c/reference/browser/opener.pt	2007-09-21 10:26:06 UTC (rev 79787)
@@ -2,4 +2,6 @@
   <span tal:condition="view/target/@@zmi_icon | nothing"
         tal:content="structure view/target/@@zmi_icon"/>
 </tal:block>
-<span tal:content="view/title"/>
+<span id=""
+    tal:attributes="id view/spanTitleId"
+    tal:content="view/title"/>

Modified: z3c.reference/trunk/src/z3c/reference/browser/resources/reference.editor.js
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/resources/reference.editor.js	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/src/z3c/reference/browser/resources/reference.editor.js	2007-09-21 10:26:06 UTC (rev 79787)
@@ -8,9 +8,8 @@
 
 function saveAndClose(){
     query = $($("form")[0]).formSerialize();
-    //TODO: more parameters to fully update the widget
-    //       - see z3c.reference.js/setReference
-    window.opener.setReferenceInput(name, currentTargetUid, query);
+    var title = $("input[@id=form.title]").val();
+    window.opener.setReferenceInput(name, currentTargetUid, query, title);
     window.close();
 }
 

Modified: z3c.reference/trunk/src/z3c/reference/browser/resources/z3c_reference.js
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/resources/z3c_reference.js	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/src/z3c/reference/browser/resources/z3c_reference.js	2007-09-21 10:26:06 UTC (rev 79787)
@@ -25,15 +25,22 @@
 // called by popupwindow to write formdata back to opener
 // parameter elementid: input name in which to write into
 // parameter value: formdata string
-// TODO: more parameter to fully update the widget
-//        - title
-//        - image on/off
-function setReferenceInput(name, targetUid, query){
-    $j("input[@name="+name+".target]").val(targetUid);
-    $j("input[@name="+name+".formData]").val(query);
+function setReferenceInput(name, targetUid, query, title){
+   $j("input[@name="+name+".target]").val(targetUid);
+   $j("input[@name="+name+".formData]").val(query);
+   $j("span[@id="+name+".title]").empty().append(title);
+
+   var a = $j("a[@name="+name+"]");
+   var url = a.attr("href");
+   url = url.split('?')[0]
+         + '?target=' + $j("input[@name="+name+".target]").val()
+         + '&settingName=' + $j("input[@name="+name+".settingName]").val()
+         + '&name=' + name;
+   a.attr('href', url);
 }
 
 
 function getReferenceInputData(name){
     return $j("input[@name="+name+".formData]").val()
 }
+

Modified: z3c.reference/trunk/src/z3c/reference/browser/views.py
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/views.py	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/src/z3c/reference/browser/views.py	2007-09-21 10:26:06 UTC (rev 79787)
@@ -120,8 +120,11 @@
 
 class DefaultViewReferenceOpener(object):
     interface.implements(interfaces.IViewReferenceOpener)
+
     __call__ = ViewPageTemplateFile('opener.pt')
 
+    prefix = ''
+
     def __init__(self, context, request):
         self.context = context
         self.request = request
@@ -140,7 +143,11 @@
             return IZopeDublinCore(self.context).title
         return u'Undefined'
 
+    @property
+    def spanTitleId(self):
+        return self.prefix + '.title'
 
+
 class ViewReferenceEditorDispatcher(object):
 
     """Return the edit IViewReferenceEditor for the target context

Modified: z3c.reference/trunk/src/z3c/reference/browser/widget.pt
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/widget.pt	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/src/z3c/reference/browser/widget.pt	2007-09-21 10:26:06 UTC (rev 79787)
@@ -1,8 +1,3 @@
-<!--
-TODO: create a javascript button
-<input type="button"
-       tal:replace="structure options/removeButton" />
--->
 <a href=""
    tal:replace="structure options/linkTag">editor link</a>
 <input type="hidden"
@@ -11,3 +6,5 @@
        tal:replace="structure options/formDataInput" />
 <input type="hidden"
        tal:replace="structure options/refIdInput" />
+<input type="hidden"
+       tal:replace="structure options/settingNameInput" />

Modified: z3c.reference/trunk/src/z3c/reference/browser/widget.py
===================================================================
--- z3c.reference/trunk/src/z3c/reference/browser/widget.py	2007-09-21 10:25:43 UTC (rev 79786)
+++ z3c.reference/trunk/src/z3c/reference/browser/widget.py	2007-09-21 10:26:06 UTC (rev 79787)
@@ -150,11 +150,13 @@
                 ref = None
         openerView = getOpenerView(ref, self.request,
                                    self.context.settingName)
+        openerView.prefix = self.name
         contents = openerView()
 
         removeName = self.name + '.remove'
         targetName = self.name + '.target'
         formDataName = self.name + '.formData'
+        settingNameFieldName = self.name + '.settingName'
         intidInput = renderElement(u'input',
                                    type='hidden',
                                    name=targetName,
@@ -173,6 +175,12 @@
                                       id=formDataName,
                                       value=self.formDataValue,
                                       extra=self.extra)
+        settingNameInput = renderElement(u'input',
+                                      type='hidden',
+                                      name=settingNameFieldName,
+                                      id=settingNameFieldName,
+                                      value = self.context.settingName,
+                                      extra=self.extra)
         linkTag = renderElement(self.refTag,
                                 href = self.referenceEditorURL,
                                 name=self.name,
@@ -192,7 +200,9 @@
                              linkTag=linkTag,
                              intidInput=intidInput,
                              formDataInput=formDataInput,
-                             refIdInput=refIdInput)
+                             refIdInput=refIdInput,
+                             settingNameInput=settingNameInput,
+                             )
 
     def _getFormValue(self):
         res = super(ViewReferenceWidget,self)._getFormValue()



More information about the Checkins mailing list