[Checkins] SVN: z3c.formjsdemo/trunk/ Implemented widget switch demo.

Stephan Richter srichter at cosmos.phy.tufts.edu
Thu Jul 19 12:41:18 EDT 2007


Log message for revision 78177:
  Implemented widget switch demo.
  

Changed:
  U   z3c.formjsdemo/trunk/buildout.cfg
  U   z3c.formjsdemo/trunk/src/z3c/formjsdemo/browser/index.pt
  U   z3c.formjsdemo/trunk/src/z3c/formjsdemo/configure.zcml
  U   z3c.formjsdemo/trunk/src/z3c/formjsdemo/skin/template.pt
  U   z3c.formjsdemo/trunk/src/z3c/formjsdemo/validator/validator.pt
  A   z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/
  A   z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/__init__.py
  A   z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/browser.py
  A   z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/configure.zcml
  A   z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/content.py
  A   z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/interfaces.py
  A   z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/widgetswitch.js

-=-
Modified: z3c.formjsdemo/trunk/buildout.cfg
===================================================================
--- z3c.formjsdemo/trunk/buildout.cfg	2007-07-19 16:39:54 UTC (rev 78176)
+++ z3c.formjsdemo/trunk/buildout.cfg	2007-07-19 16:41:18 UTC (rev 78177)
@@ -1,5 +1,5 @@
 [buildout]
-develop = .
+develop = . z3c.formjs
 parts = demo
 
 [zope3]

Modified: z3c.formjsdemo/trunk/src/z3c/formjsdemo/browser/index.pt
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/browser/index.pt	2007-07-19 16:39:54 UTC (rev 78176)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/browser/index.pt	2007-07-19 16:41:18 UTC (rev 78177)
@@ -12,6 +12,9 @@
   <div>
     <a href="/validator.html">Validator</a>
   </div>
+  <div>
+    <a href="/widgetswitch.html">Widget Switching</a>
+  </div>
 
   <h4>Advanced Demos</h4>
 

Modified: z3c.formjsdemo/trunk/src/z3c/formjsdemo/configure.zcml
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/configure.zcml	2007-07-19 16:39:54 UTC (rev 78176)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/configure.zcml	2007-07-19 16:41:18 UTC (rev 78177)
@@ -17,5 +17,6 @@
   <include package=".calculator" />
   <include package=".validator" />
   <include package=".chat" />
+  <include package=".widgetswitch" />
 
 </configure>

Modified: z3c.formjsdemo/trunk/src/z3c/formjsdemo/skin/template.pt
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/skin/template.pt	2007-07-19 16:39:54 UTC (rev 78176)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/skin/template.pt	2007-07-19 16:41:18 UTC (rev 78177)
@@ -6,13 +6,6 @@
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 <meta http-equiv="cache-control" content="no-cache" />
 <meta http-equiv="pragma" content="no-cache" />
-<script type="text/javascript"
-    tal:define="contexturl context/@@absolute_url; 
-                viewurl request/URL"
-    tal:content="string:
-	var contextURL = '${contexturl}';
-	var viewURL = '${viewurl}';"> 
-</script>
 <script tal:replace="structure provider:IJavaScript"> </script>
 <style tal:replace="structure provider:ICSS"> 
 </style>

Modified: z3c.formjsdemo/trunk/src/z3c/formjsdemo/validator/validator.pt
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/validator/validator.pt	2007-07-19 16:39:54 UTC (rev 78176)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/validator/validator.pt	2007-07-19 16:41:18 UTC (rev 78177)
@@ -4,4 +4,4 @@
     field, that value will be sent back to the server for validation.
     If the value is no good, the widget will be modified to reflect that.
   </div>
-</div>
\ No newline at end of file
+</div>

Added: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/__init__.py
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/__init__.py	                        (rev 0)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/__init__.py	2007-07-19 16:41:18 UTC (rev 78177)
@@ -0,0 +1 @@
+# Make a package.


Property changes on: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/__init__.py
___________________________________________________________________
Name: svn:keywords
   + Id

Added: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/browser.py
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/browser.py	                        (rev 0)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/browser.py	2007-07-19 16:41:18 UTC (rev 78177)
@@ -0,0 +1,56 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Widget Switch Content
+
+$Id$
+"""
+__docformat__="restructuredtext"
+import zope.component
+import zope.interface
+from zope.app.session.interfaces import ISession
+from zope.viewlet.viewlet import JavaScriptViewlet
+
+from z3c.form import field, form
+from z3c.form.interfaces import IWidgets, DISPLAY_MODE
+from z3c.formjs import jsswitch
+from z3c.formui import layout
+from z3c.formjsdemo.widgetswitch import interfaces, content
+
+WidgetSwitchJSViewlet = JavaScriptViewlet('widgetswitch.js')
+
+class ContactForm(layout.FormLayoutSupport,
+                  jsswitch.WidgetModeSwitcher,
+                  form.EditForm):
+    fields = field.Fields(interfaces.IContact)
+    label = u'Contact Add Form'
+
+    def updateWidgets(self):
+        self.widgets = zope.component.getMultiAdapter(
+            (self, self.request, self.getContent()), IWidgets)
+        self.widgets.mode = DISPLAY_MODE
+        self.widgets.update()
+
+    def getContent(self):
+        session = ISession(self.request)['z3c.formjsdemo.widgetswitch']
+        obj = session.get('content')
+        if obj is None:
+            obj = session['content'] = content.Contact()
+            # Initialize data.
+            obj.name = u'Stephan Richter'
+            obj.street = u'110 Main Street'
+            obj.city = u'Maynard'
+            obj.zip = u'01754'
+            obj.phone = u'(555) 373-2134'
+            obj.age = 27
+        return obj


Property changes on: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/browser.py
___________________________________________________________________
Name: svn:keywords
   + Id

Added: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/configure.zcml
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/configure.zcml	                        (rev 0)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/configure.zcml	2007-07-19 16:41:18 UTC (rev 78177)
@@ -0,0 +1,34 @@
+<configure
+    xmlns="http://namespaces.zope.org/zope"
+    xmlns:browser="http://namespaces.zope.org/browser"
+    xmlns:z3c="http://namespaces.zope.org/z3c"
+    i18n_domain="z3c.formjsdemo">
+
+  <!-- Resources -->
+
+  <browser:zrt-resource
+      name="widgetswitch.js"
+      file="widgetswitch.js"
+      layer="z3c.formjsdemo.layer.IDemoBrowserLayer"
+      />
+
+  <browser:viewlet
+      name="widgetswitch.js"
+      view=".browser.ContactForm"
+      manager="z3c.formjsdemo.skin.IJavaScript"
+      class=".browser.WidgetSwitchJSViewlet"
+      permission="zope.Public"
+      layer="z3c.formjsdemo.layer.IDemoBrowserLayer"
+      />
+
+  <!-- Views -->
+
+  <z3c:pagelet
+      name="widgetswitch.html"
+      for="zope.app.folder.interfaces.IFolder"
+      class=".browser.ContactForm"
+      layer="z3c.formjsdemo.layer.IDemoBrowserLayer"
+      permission="zope.Public"
+      />
+
+</configure>


Property changes on: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/configure.zcml
___________________________________________________________________
Name: svn:eol-style
   + native

Added: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/content.py
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/content.py	                        (rev 0)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/content.py	2007-07-19 16:41:18 UTC (rev 78177)
@@ -0,0 +1,31 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Widget Switch Content
+
+$Id$
+"""
+__docformat__="restructuredtext"
+import zope.interface
+from zope.schema.fieldproperty import FieldProperty
+from z3c.formjsdemo.widgetswitch import interfaces
+
+class Contact(object):
+    zope.interface.implements(interfaces.IContact)
+
+    name = FieldProperty(interfaces.IContact['name'])
+    street = FieldProperty(interfaces.IContact['street'])
+    city = FieldProperty(interfaces.IContact['city'])
+    zip = FieldProperty(interfaces.IContact['zip'])
+    phone = FieldProperty(interfaces.IContact['phone'])
+    age = FieldProperty(interfaces.IContact['age'])


Property changes on: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/content.py
___________________________________________________________________
Name: svn:keywords
   + Id

Added: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/interfaces.py
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/interfaces.py	                        (rev 0)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/interfaces.py	2007-07-19 16:41:18 UTC (rev 78177)
@@ -0,0 +1,53 @@
+##############################################################################
+#
+# Copyright (c) 2007 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Widget Switch Interfaces
+
+$Id$
+"""
+__docformat__="restructuredtext"
+import zope.interface
+import zope.schema
+
+class IContact(zope.interface.Interface):
+    """A simple contact."""
+
+    name = zope.schema.TextLine(
+        title=u"Name",
+        description=u"The name.",
+        required=True)
+
+    street = zope.schema.TextLine(
+        title=u"Street",
+        description=u"The street name and house number.",
+        required=True)
+
+    city = zope.schema.TextLine(
+        title=u"City",
+        description=u"The city.",
+        required=True)
+
+    zip = zope.schema.TextLine(
+        title=u"ZIP",
+        description=u"The Zip code.",
+        required=True)
+
+    phone = zope.schema.TextLine(
+        title=u"Phone",
+        description=u"The phone.",
+        required=False)
+
+    age = zope.schema.Int(
+        title=u"Age",
+        description=u"The age.",
+        required=False)


Property changes on: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/interfaces.py
___________________________________________________________________
Name: svn:keywords
   + Id

Added: z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/widgetswitch.js
===================================================================
--- z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/widgetswitch.js	                        (rev 0)
+++ z3c.formjsdemo/trunk/src/z3c/formjsdemo/widgetswitch/widgetswitch.js	2007-07-19 16:41:18 UTC (rev 78177)
@@ -0,0 +1,22 @@
+function switchWidget(widgetId, code) {
+    element = $('#' + widgetId + '-row div.widget');
+    element.html(code);
+}
+
+function saveWidget(widgetId, msg) {
+    element = $('#' + widgetId + '-row div.error');
+    if (element) {
+        element.remove();
+    }
+    $('#' + widgetId + '-row').append(
+        '<div class="error">' + msg+  '</div>');
+
+    if (msg != '') {
+        $('#' + widgetId).removeClass('valid');
+        $('#' + widgetId).addClass('invalid');
+    }
+    else {
+        $('#' + widgetId).removeClass('invalid');
+        $('#' + widgetId).addClass('valid');
+    }
+}



More information about the Checkins mailing list