[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