[Checkins] SVN: z3c.reference/branches/flash/src/z3c/reference/ Make progress with view reference editor JS implementation

Roger Ineichen roger at projekt01.ch
Thu Sep 6 03:21:47 EDT 2007


Log message for revision 79487:
  Make progress with view reference editor JS implementation
  Implemented marker interfaces for editor views

Changed:
  U   z3c.reference/branches/flash/src/z3c/reference/browser/configure.zcml
  U   z3c.reference/branches/flash/src/z3c/reference/browser/editor.pt
  D   z3c.reference/branches/flash/src/z3c/reference/browser/imagetool.pt
  A   z3c.reference/branches/flash/src/z3c/reference/browser/resources/reference.editor.js
  U   z3c.reference/branches/flash/src/z3c/reference/browser/views.py
  U   z3c.reference/branches/flash/src/z3c/reference/demo/browser/configure.zcml
  A   z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_edit.pt
  A   z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_search.pt
  U   z3c.reference/branches/flash/src/z3c/reference/demo/browser/js/jquery.js
  U   z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py
  U   z3c.reference/branches/flash/src/z3c/reference/interfaces.py

-=-
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/configure.zcml
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/configure.zcml	2007-09-06 06:28:49 UTC (rev 79486)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/configure.zcml	2007-09-06 07:21:47 UTC (rev 79487)
@@ -34,7 +34,7 @@
       permission="zope.Public"
       allowed_interface="zope.traversing.browser.interfaces.IAbsoluteURL"
       />
-  
+
   <view
       for="..interfaces.IViewReference"
       factory=".views.ViewReferenceAbsoluteURL"
@@ -53,8 +53,9 @@
   
   <resourceLibrary name="z3c.reference"
                    require="z3c.javascript.jquery">
-        <directory source="resources"
-               include="z3c_reference.js jquery.popupwindow.js"/>
+      <directory source="resources"
+          include="z3c_reference.js jquery.popupwindow.js"
+          />
   </resourceLibrary>
   
   <browser:resourceDirectory
@@ -62,6 +63,30 @@
       directory="resources"
       />
 
+  <browser:page
+      name="viewReferenceEditor.html"
+      for="z3c.reference.demo.interfaces.IDemoFolder"
+      class=".views.ViewReferenceEditor"
+      permission="zope.ManageContent"
+      template="editor.pt"
+      />
+
+  <browser:page
+      name="viewReferenceEditorSearch"
+      for="z3c.reference.demo.interfaces.IDemoFolder"
+      class=".views.ViewReferenceEditorSearch"
+      permission="zope.ManageContent"
+      attribute="__call__"
+      />
+
+  <browser:page
+      name="viewReferenceEditorEdit"
+      for="z3c.reference.demo.interfaces.IDemoFolder"
+      class=".views.ViewReferenceEditorEdit"
+      permission="zope.ManageContent"
+      attribute="__call__"
+      />
+
   <!-- imagetool -->
   <browser:page
       for="z3c.reference.demo.interfaces.IDemoFolder"

Modified: z3c.reference/branches/flash/src/z3c/reference/browser/editor.pt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/editor.pt	2007-09-06 06:28:49 UTC (rev 79486)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/editor.pt	2007-09-06 07:21:47 UTC (rev 79487)
@@ -2,10 +2,10 @@
 <html xmlns="http://www.w3.org/1999/xhtml"
       xmlns:i18n="http://namespaces.zope.org/i18n"
       xml:lang="en" lang="en">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>demo picker</title>
-    <style type="text/css">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>demo picker</title>
+<style type="text/css">
       body {
         margin: 0px;
         padding: 0px;
@@ -72,118 +72,34 @@
       }
 
     </style>
-    <script src="jquery"
+<script type="text/javascript"
+        tal:condition="view/settingName"
+        tal:define="settingName view/settingName"
+        tal:content="string:
+  var settingName = ${settingName};">
+</script>
+<script type="text/javascript"
+        tal:condition="not:view/settingName"
+        tal:content="string:
+  var settingName = '';">
+</script>
+<script src="jquery"
             type="text/javascript"
             tal:attributes="src context/++resource++jquery.js">
-    </script>
-    <script type="text/javascript"
-            tal:content="string:
-             function loadFlash() {
-               var url='${context/++resource++imagetool.swf}';
-               var img='${context/++resource++img.jpg}';
-               url = url + '?url=' + img;
-               var so = new SWFObject(url, 'image-tool', '100%', '490px', '8', 0x000000);
-               so.addParam('allowScriptAccess', 'sameDomain');
-               so.addParam('movie', url);
-               so.addParam('quality', 'high');
-               so.addVariable('crop_x', '100');
-               so.addVariable('crop_y', '100');
-               so.addVariable('crop_w', '100');
-               so.addVariable('crop_h', '100');
-               so.addVariable('original_w', '600');
-               so.addVariable('original_h', '400');
-               so.addVariable('zoomfactor', '0.33');
-               so.addVariable('rotation', '90');
-               var ok = so.write('flash-target');
-             }
-             ">
-    </script>
-    <script type="text/javascript">
-      $(document).ready(loadFlash);
-
-      // user selects an item
-      function setIntId(uid) {
-        // reset values
-        $("textarea").val("");
-        $("input[@type=text]").val("");
-        // set iniid of selected item
-        $("input[@name=intid]").val(uid);
-        // highlight selected item
-        $("a").attr("style", "");
-        $("a[@href*=" + uid + "]").attr("style","background-color: #888");
-        // show divs
-        $("div.properties").show();
-       // $("div.actions").show();
-       // $("div.image-tool").show();
-      }
-
-      
-      $(document).ready(function(){
-        // pressed submit button
-        // return selected item to parent and close popup
-        $("input[@type=submit]").click(function() {
-          var intid = $("input[@name=intid]").val();
-          window.opener.setIntId(intid);
-          window.close();
-        });
-
-        $("a.target").click(function() {
-          $("div.actions").hide();
-          $("div.image-tool").hide();
-          $("a.ex1").show();
-          $("a.ex2").show();
-          window.resizeTo(171, 550);
-          window.resizeBy(220, 0);
-        });
-        
-        $("a.ex1").click(function() {
-          $("a.ex1").hide();
-          $("div.image-tool").show();
-          window.resizeBy(520, 0);
-        });
-        
-        $("a.ex2").click(function() {
-          $("a.ex2").hide();
-          $("div.actions").show();
-          window.resizeBy(220, 0);
-        });
-      });
-    </script>
-  </head>
-  <body>
-    <div class="picker float">
-      <input name="intid" type="hidden" value="None" />
-      <h1>Targets</h1>
-      <tal:block repeat="item view/items">
-        <a href="#" class="target"
-           tal:attributes="href string:JavaScript:setIntId(${item/uid})">
-          <span tal:replace="item/name" />
-        </a>
-        <br />
-      </tal:block>
-    </div>
-    <div class="properties float" style="display:none;">
-      <h1>
-        Properties
-        <a href="#" class="ex1">>></a>
-      </h1>
-      <label for="title">Title</label><br />
-      <input id="title" name="title" type="text"  /><br />
-      <label for="description">Description</label><br />
-      <textarea id="description" name="description"
-                cols="20" rows="5"
-                >abcd</textarea>
-    </div>
-    <div class="image-tool float" style="display:none;">
-      <h1>
-        Image-Tool
-        <a href="#" class="ex2">>></a>
-      </h1>
-      <div id="flash-target"></div>
-    </div>
-    <div class="actions" style="display:none;">
-      <h1>Save</h1>
-      <input type="submit" value="add reference" />
-    </div>
-  </body>
-</html>
\ No newline at end of file
+</script>
+<script src="jquery"
+            type="text/javascript"
+            tal:attributes="src context/++resource++z3c.reference.resources/reference.editor.js">
+</script>
+</head>
+<body>
+<div class="picker float">
+  <div id="editorSearch">
+  </div>
+</div>
+<div class="properties float">
+  <div id="editorEdit">
+  </div>
+</div>
+</body>
+</html>

Deleted: z3c.reference/branches/flash/src/z3c/reference/browser/imagetool.pt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/imagetool.pt	2007-09-06 06:28:49 UTC (rev 79486)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/imagetool.pt	2007-09-06 07:21:47 UTC (rev 79487)
@@ -1,33 +0,0 @@
-<script src="jquery"
-        type="text/javascript"
-        tal:attributes="src context/++resource++jquery.js">
-</script>
-<script type="text/javascript"
-        tal:content="string:
-            function loadFlash() {
-              var url='${context/++resource++imagetool.swf}';
-              var img='${context/++resource++img.jpg}';
-              url = url + '?url=' + img;
-              var so = new SWFObject(url, 'image-tool-target', '100%', '490px', '8', 0x000000);
-              so.addParam('allowScriptAccess', 'sameDomain');
-              so.addParam('movie', url);
-              so.addParam('quality', 'high');
-              so.addVariable('crop_x', '100');
-              so.addVariable('crop_y', '100');
-              so.addVariable('crop_w', '100');
-              so.addVariable('crop_h', '100');
-              so.addVariable('original_w', '600');
-              so.addVariable('original_h', '400');
-              so.addVariable('zoomfactor', '0.33');
-              so.addVariable('rotation', '90');
-              var ok = so.write('image-tool-target');
-            }
-            ">
-</script>
-<script type="text/javascript">
-  $(document).ready(loadFlash);
-</script>
-<div class="image-tool">
-  <div id="image-tool-target">
-  </div>
-</div>
\ No newline at end of file

Added: z3c.reference/branches/flash/src/z3c/reference/browser/resources/reference.editor.js
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/resources/reference.editor.js	                        (rev 0)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/resources/reference.editor.js	2007-09-06 07:21:47 UTC (rev 79487)
@@ -0,0 +1,34 @@
+var settingName = '';
+
+// user selects an item
+function setIntId(uid) {
+    // reset values
+    $("textarea").val("");
+    $("input[@type=text]").val("");
+    // set initid of selected item
+    $("input[@name=intid]").val(uid);
+    // highlight selected item
+    $("a").attr("style", "");
+    $("a[@href*=" + uid + "]").attr("style","background-color: #888");
+}
+
+function loadEditorSearch() {
+    $.get("viewReferenceEditorSearch", {'settingName':settingName}, function () {
+        $("#editorSearch").append($(data));
+    });
+}
+
+function loadEditorEdit() {
+    $.get("viewReferenceEditorEdit", {'settingName':settingName}, function () {
+        $("#editorEdit").append($(data));
+    });
+}
+
+// initialize on dom ready
+$(document).ready(function(){
+    // load search form
+    loadEditorSearch();
+	
+    // load edit form
+    loadEditorEdit();
+});
\ No newline at end of file

Modified: z3c.reference/branches/flash/src/z3c/reference/browser/views.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/views.py	2007-09-06 06:28:49 UTC (rev 79486)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/views.py	2007-09-06 07:21:47 UTC (rev 79487)
@@ -25,6 +25,8 @@
 from zope.traversing.browser.absoluteurl import AbsoluteURL
 from zope.app.intid.interfaces import IIntIds
 
+from z3c.reference import interfaces
+
 noImage = '/@@/z3c.reference.resources/noimage.jpg'
 
 
@@ -99,39 +101,66 @@
     target = referenced object
 
     """
-
+    settingName = u''
     searchForm = None
     editForm = None
 
     def update(self):
         super(ViewReferenceEditor, self).update()
 
-        target = self.request.get('target')
-        searchFormName = self.request.get('search')
-        editFormName = self.request.get('edit')
+        self.settingName = self.request.get('settingName', u'')
+#        target = self.request.get('target')
+#        searchFormName = self.request.get('search')
+#        editFormName = self.request.get('edit')
+#
+#        # prepare search form
+#        if target is not None and searchFormName is not None:
+#            self.searchForm = component.getMultiAdapter(
+#                (self.context, self.request), name=searchFormName)
+#
+#        # prepare edit form
+#        if target is not None and editFormName is not None:
+#            self.editForm = component.getMultiAdapter(
+#                (self.context, self.target, self.request), name=editFormName)
+#
+#    @property
+#    def url(self):
+#        return absoluteURL(self.context, self.request)
 
-        # prepare search form
-        if target is not None and searchFormName is not None:
-            self.searchForm = zope.component.getMultiAdapter(
-                (self.context, self.request), name=searchFormName)
 
-        # prepare edit form
-        if target is not None and editFormName is not None:
-            self.editForm = zope.component.getMultiAdapter(
-                (self.context, self.target, self.request), name=editFormName)
-   
+class ViewReferenceEditorSearch(object):
+    """Return the search form"""
 
-    def items(self):
-        intIds = component.getUtility(IIntIds)
-        for o in self.context.values():
-            yield dict(
-                name = o.__name__,
-                uid=intIds.getId(o))
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
 
-    @property
-    def url(self):
-        return absoluteURL(self.context, self.request)
+    def __call__(self):
+        settingName = self.request.get('settingName')
+        if settingName is not None:
+            view = component.getMultiAdapter((self.context, self.request),
+                interfaces.IViewReferenceEditorSearch, name=settingName)
+            return view()
+        else:
+            return u''
 
 
+class ViewReferenceEditorEdit(object):
+    """Return the edit form"""
+
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
+
+    def __call__(self):
+        settingName = self.request.get('settingName')
+        if settingName is not None:
+            view = component.getMultiAdapter((self.context, self.request),
+                interfaces.IViewReferenceEditorEdit, name=settingName)
+            return view()
+        else:
+            return u''
+
+
 class ImageTool(object):
     pass

Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/configure.zcml
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/configure.zcml	2007-09-06 06:28:49 UTC (rev 79486)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/configure.zcml	2007-09-06 07:21:47 UTC (rev 79487)
@@ -37,16 +37,6 @@
       permission="zope.ManageContent"
       />
 
-  <configure package="z3c.reference.browser">
-    <page
-        name="viewReferenceEditor.html"
-        for="z3c.reference.demo.interfaces.IDemoFolder"
-        class=".views.ViewReferenceEditor"
-        permission="zope.ManageContent"
-        template="editor.pt"
-        />
-  </configure>
-
   <!-- test -->
   <pages
       for="zope.annotation.interfaces.IAnnotatable"
@@ -71,6 +61,24 @@
       template="test.pt"
       />
 
+  <zope:adapter
+      name=""
+      for="z3c.reference.demo.interfaces.IDemoFolder
+           zope.publisher.interfaces.browser.IDefaultBrowserLayer"
+      provides="z3c.reference.interfaces.IViewReferenceEditorEdit"
+      factory=".views.ViewReferenceEditorEdit"
+      permission="zope.ManageContent"
+      />
+
+  <zope:adapter
+      name=""
+      for="z3c.reference.demo.interfaces.IDemoFolder
+           zope.publisher.interfaces.browser.IDefaultBrowserLayer"
+      provides="z3c.reference.interfaces.IViewReferenceEditorSearch"
+      factory=".views.ViewReferenceEditorSearch"
+      permission="zope.ManageContent"
+      />
+
 <!--
   <editform schema="z3c.reference.demo.interfaces.IDemoFolder"
   label="Edit" name="editdemofolder.html" menu="zmi_views"

Added: z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_edit.pt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_edit.pt	                        (rev 0)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_edit.pt	2007-09-06 07:21:47 UTC (rev 79487)
@@ -0,0 +1,44 @@
+<script type="text/javascript"
+        tal:content="string:
+            function loadFlash() {
+              var url='${context/++resource++imagetool.swf}';
+              var img='${context/++resource++img.jpg}';
+              url = url + '?url=' + img;
+              var so = new SWFObject(url, 'image-tool-target', '100%', '490px', '8', 0x000000);
+              so.addParam('allowScriptAccess', 'sameDomain');
+              so.addParam('movie', url);
+              so.addParam('quality', 'high');
+              so.addVariable('crop_x', '100');
+              so.addVariable('crop_y', '100');
+              so.addVariable('crop_w', '100');
+              so.addVariable('crop_h', '100');
+              so.addVariable('original_w', '600');
+              so.addVariable('original_h', '400');
+              so.addVariable('zoomfactor', '0.33');
+              so.addVariable('rotation', '90');
+              var ok = so.write('image-tool-target');
+            }
+            ">
+</script>
+<h1> Image-Tool 2
+  <a href="#" class="ex2">>></a>
+</h1>
+<div id="flash-target">
+</div>
+<div class="image-tool">
+  <div id="image-tool-target">
+  </div>
+</div>
+<h1>Save</h1>
+<input type="submit" value="add reference" />
+<script type="text/javascript">
+  loadFlash();
+</script>
+<script type="text/javascript">
+  // return selected item to parent and close popup
+  $("input[@type=submit]").click(function() {
+    var intid = $("input[@name=intid]").val();
+    window.opener.setIntId(intid);
+    window.close();
+  });
+</script>
\ No newline at end of file


Property changes on: z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_edit.pt
___________________________________________________________________
Name: svn:eol-style
   + native

Added: z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_search.pt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_search.pt	                        (rev 0)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_search.pt	2007-09-06 07:21:47 UTC (rev 79487)
@@ -0,0 +1,8 @@
+<tal:block repeat="item view/items">
+  <a href="#" class="target"
+           tal:attributes="onclick string:setIntId(${item/uid})">
+  <span tal:replace="item/name" />
+  </a>
+  <br />
+</tal:block>
+<input name="intid" type="hidden" value="" />


Property changes on: z3c.reference/branches/flash/src/z3c/reference/demo/browser/editor_search.pt
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/js/jquery.js
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/js/jquery.js	2007-09-06 06:28:49 UTC (rev 79486)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/js/jquery.js	2007-09-06 07:21:47 UTC (rev 79487)
@@ -1773,7 +1773,7 @@
 	
 		// Only works if you document.write() it
 		document.write("<scr" + "ipt id=__ie_init defer=true " + 
-			"src=//:><\/script>");
+			"src=//[]><\/script>");
 	
 		// Use the defer script hack
 		var script = document.getElementById("__ie_init");

Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py	2007-09-06 06:28:49 UTC (rev 79486)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py	2007-09-06 07:21:47 UTC (rev 79487)
@@ -17,19 +17,21 @@
 __docformat__ = 'restructuredtext'
 
 from zope import interface
+from zope import component
 from zope.formlib import form
 from zope.dublincore.interfaces import IWriteZopeDublinCore
 from zope.dublincore.interfaces import IZopeDublinCore
-from z3c.reference.demo.interfaces import (IDemoFolder, IDemoImage)
-
 from zope.traversing.browser.absoluteurl import absoluteURL
 from zope.traversing.api import getPath
-
-from zope import component
 from zope.app.intid.interfaces import IIntIds
+from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
 from zc import resourcelibrary
 
+from z3c.reference.demo.interfaces import (IDemoFolder, IDemoImage)
+from z3c.reference.interfaces import IViewReferenceEditorSearch
+from z3c.reference.interfaces import IViewReferenceEditorEdit
 
+
 class DemoFolderEdit(form.EditForm):
     """Demo folder edit form."""
 
@@ -80,3 +82,38 @@
     @property
     def url(self):
         return absoluteURL(self.context, self.request)
+
+
+class ViewReferenceEditorSearch(object):
+    """Represents the IViewReferenceEditorSearch form."""
+
+    template = ViewPageTemplateFile('editor_search.pt')
+
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
+
+    def items(self):
+        intIds = component.getUtility(IIntIds)
+        for o in self.context.values():
+            yield dict(
+                name = o.__name__,
+                uid=intIds.getId(o))
+
+    def __call__(self):
+        return self.template()
+
+
+class ViewReferenceEditorEdit(object):
+    """Represents the IViewReferenceEditorEdit form."""
+
+    template = ViewPageTemplateFile('editor_edit.pt')
+
+    def __init__(self, context, request):
+        self.context = context
+        self.request = request
+
+    def __call__(self):
+        settingName = self.request.get('settingName')
+        
+        return self.template()

Modified: z3c.reference/branches/flash/src/z3c/reference/interfaces.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/interfaces.py	2007-09-06 06:28:49 UTC (rev 79486)
+++ z3c.reference/branches/flash/src/z3c/reference/interfaces.py	2007-09-06 07:21:47 UTC (rev 79487)
@@ -93,3 +93,11 @@
     refSchema = zope.schema.Object(
         schema=IInterface,
         title=u'Reference Schema')
+
+
+class IViewReferenceEditorSearch(zope.interface.Interface):
+    """Marker interface for view reference editor search forms."""
+
+
+class IViewReferenceEditorEdit(zope.interface.Interface):
+    """Marker interface for view reference editor edit forms."""



More information about the Checkins mailing list