[Checkins] SVN: z3c.formjs/branches/pcardune-client-notify-r87806/s remove dependency on jquery.layer, since it doesn't seem to be maintained very frequently.

Paul Carduner paulcarduner at gmail.com
Sat Jul 12 19:15:22 EDT 2008


Log message for revision 88306:
  remove dependency on jquery.layer, since it doesn't seem to be maintained very frequently.

Changed:
  U   z3c.formjs/branches/pcardune-client-notify-r87806/setup.py
  U   z3c.formjs/branches/pcardune-client-notify-r87806/src/z3c/formjs/jqueryrenderer.py
  U   z3c.formjs/branches/pcardune-client-notify-r87806/src/z3c/formjs/jqueryrenderer.txt

-=-
Modified: z3c.formjs/branches/pcardune-client-notify-r87806/setup.py
===================================================================
--- z3c.formjs/branches/pcardune-client-notify-r87806/setup.py	2008-07-12 22:54:12 UTC (rev 88305)
+++ z3c.formjs/branches/pcardune-client-notify-r87806/setup.py	2008-07-12 23:15:20 UTC (rev 88306)
@@ -69,7 +69,6 @@
         docs = ['Sphinx', 'z3c.recipe.sphinxdoc'],
         ),
     install_requires = [
-        'jquery.layer',
         'setuptools',
         'z3c.form',
         'z3c.traverser',

Modified: z3c.formjs/branches/pcardune-client-notify-r87806/src/z3c/formjs/jqueryrenderer.py
===================================================================
--- z3c.formjs/branches/pcardune-client-notify-r87806/src/z3c/formjs/jqueryrenderer.py	2008-07-12 22:54:12 UTC (rev 88305)
+++ z3c.formjs/branches/pcardune-client-notify-r87806/src/z3c/formjs/jqueryrenderer.py	2008-07-12 23:15:20 UTC (rev 88306)
@@ -20,16 +20,31 @@
 import zope.interface
 from zope.traversing.browser import absoluteURL
 from zope.component.interfaces import IObjectEvent
+from zope.publisher.interfaces.browser import IBrowserRequest
+from zope.viewlet.viewlet import ViewletBase
 
-from jquery.layer import IJQueryJavaScriptBrowserLayer
-
 from z3c.formjs import interfaces
 
+try:
+    # try to be backwards compatible.
+    from jquery.layer import IJQueryJavaScriptBrowserLayer
+    IBaseLayer = IJQueryJavaScriptBrowserLayer
+except ImportError:
+    IBaseLayer = IBrowserRequest
 
+class IJQueryLayer(IBaseLayer):
+    """Layer for the jquery renderers."""
+
+class JQueryViewlet(ViewletBase):
+    """A viewlet that grabs the jquery libraries from google."""
+
+    def render(self):
+        return '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>'
+
 class JQueryIdSelectorRenderer(object):
     zope.interface.implements(interfaces.IRenderer)
     zope.component.adapts(
-        interfaces.IIdSelector, IJQueryJavaScriptBrowserLayer)
+        interfaces.IIdSelector, IJQueryLayer)
 
     def __init__(self, selector, request):
         self.selector = selector
@@ -44,7 +59,7 @@
 class JQueryCSSSelectorRenderer(object):
     zope.interface.implements(interfaces.IRenderer)
     zope.component.adapts(
-        interfaces.ICSSSelector, IJQueryJavaScriptBrowserLayer)
+        interfaces.ICSSSelector, IJQueryLayer)
 
     def __init__(self, selector, request):
         self.selector = selector
@@ -59,7 +74,7 @@
 class JQuerySubscriptionRenderer(object):
     zope.interface.implements(interfaces.IRenderer)
     zope.component.adapts(
-        interfaces.IJSSubscription, IJQueryJavaScriptBrowserLayer)
+        interfaces.IJSSubscription, IJQueryLayer)
 
     def __init__(self, subscription, request):
         self.subscription = subscription
@@ -83,7 +98,7 @@
 class JQuerySubscriptionsRenderer(object):
     zope.interface.implements(interfaces.IRenderer)
     zope.component.adapts(
-        interfaces.IJSSubscriptions, IJQueryJavaScriptBrowserLayer)
+        interfaces.IJSSubscriptions, IJQueryLayer)
 
     def __init__(self, manager, request):
         self.manager = manager
@@ -103,7 +118,7 @@
 
 class JQueryObjectEventRenderer(object):
     zope.component.adapts(IObjectEvent,
-                          IJQueryJavaScriptBrowserLayer)
+                          IJQueryLayer)
     zope.interface.implements(interfaces.IRenderer)
 
     def __init__(self, event, request):
@@ -124,7 +139,7 @@
 
 class JQueryNotifyClientHandlerRenderer(object):
     zope.component.adapts(interfaces.INotifyClientHandler,
-                          IJQueryJavaScriptBrowserLayer)
+                          IJQueryLayer)
     zope.interface.implements(interfaces.IRenderer)
 
     def __init__(self, handler, request):
@@ -153,7 +168,7 @@
 
 class JQueryMessageValidationScriptRenderer(object):
     zope.component.adapts(
-        interfaces.IMessageValidationScript, IJQueryJavaScriptBrowserLayer)
+        interfaces.IMessageValidationScript, IJQueryLayer)
     zope.interface.implements(interfaces.IRenderer)
 
     function = 'applyErrorMessage'
@@ -191,7 +206,7 @@
 
 class JQueryWidgetSwitcherRenderer(object):
     zope.component.adapts(
-        interfaces.IWidgetSwitcher, IJQueryJavaScriptBrowserLayer)
+        interfaces.IWidgetSwitcher, IJQueryLayer)
     zope.interface.implements(interfaces.IRenderer)
 
     function = 'switchWidget'
@@ -226,7 +241,7 @@
 
 class JQueryLabelWidgetSwitcherRenderer(object):
     zope.component.adapts(
-        interfaces.ILabelWidgetSwitcher, IJQueryJavaScriptBrowserLayer)
+        interfaces.ILabelWidgetSwitcher, IJQueryLayer)
     zope.interface.implements(interfaces.IRenderer)
 
     function = 'switchWidget'
@@ -256,7 +271,7 @@
 
 class JQueryWidgetSaverRenderer(object):
     zope.component.adapts(
-        interfaces.IWidgetSaver, IJQueryJavaScriptBrowserLayer)
+        interfaces.IWidgetSaver, IJQueryLayer)
     zope.interface.implements(interfaces.IRenderer)
 
     function = 'saveWidget'

Modified: z3c.formjs/branches/pcardune-client-notify-r87806/src/z3c/formjs/jqueryrenderer.txt
===================================================================
--- z3c.formjs/branches/pcardune-client-notify-r87806/src/z3c/formjs/jqueryrenderer.txt	2008-07-12 22:54:12 UTC (rev 88305)
+++ z3c.formjs/branches/pcardune-client-notify-r87806/src/z3c/formjs/jqueryrenderer.txt	2008-07-12 23:15:20 UTC (rev 88306)
@@ -7,7 +7,26 @@
 
   >>> from z3c.formjs import interfaces, jqueryrenderer
 
+Making JQuery Available in Your Application
+-------------------------------------------
 
+To setup your application to use the JQuery backend, you must inherit
+from the ``IJQueryLayer``.  Since all the rendered javascript expects
+that the jquery library is already loaded on the page, you must make
+it available on every page with javascript.  There is a viewlet that
+loads the latest jquery library from google's infrastructure.
+
+  >>> viewlet = jqueryrenderer.JQueryViewlet(None, None, None, None)
+  >>> print viewlet.render()
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
+
+We will setup our tests so that the TestRequest provides this layer.
+
+  >>> import z3c.form.testing
+  >>> import zope.interface
+  >>> class TestRequest(z3c.form.testing.TestRequest):
+  ...     zope.interface.implements(jqueryrenderer.IJQueryLayer)
+
 ``IdSelector`` Renderer
 -----------------------
 
@@ -17,13 +36,8 @@
   >>> from z3c.formjs import jsevent
   >>> selector = jsevent.IdSelector('form-id')
 
-  >>> from z3c.form.testing import TestRequest
   >>> request = TestRequest()
 
-  >>> from jquery.layer import IJQueryJavaScriptBrowserLayer
-  >>> import zope.interface
-  >>> zope.interface.alsoProvides(request, IJQueryJavaScriptBrowserLayer)
-
 Let's now register the renderer:
 
   >>> import zope.component
@@ -46,13 +60,8 @@
   >>> from z3c.formjs import jsevent
   >>> cssSelector = jsevent.CSSSelector('label')
 
-  >>> from z3c.form.testing import TestRequest
   >>> request = TestRequest()
 
-  >>> from jquery.layer import IJQueryJavaScriptBrowserLayer
-  >>> import zope.interface
-  >>> zope.interface.alsoProvides(request, IJQueryJavaScriptBrowserLayer)
-
 Let's now register the renderer:
 
   >>> import zope.component



More information about the Checkins mailing list