r13744 - in MoreFieldsAndWidgets/archetypes.querywidget/trunk: . archetypes/querywidget archetypes/querywidget/profiles/default

"Roel Bruggink" <[email protected]> Thu, 28 Jul 2011 17:36:11 +0000
Newsgroups gmane.comp.web.zope.plone.archetypes.cvs
Message-ID <[email protected]>
Author: jaroel
Date: Thu Jul 28 17:36:10 2011
New Revision: 13744

Added:
   MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/cssregistry.xml
   MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/jsregistry.xml
   MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/views.py
Modified:
   MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/configure.zcml
   MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/metadata.xml
   MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/querywidget.js
   MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/widget.py
   MoreFieldsAndWidgets/archetypes.querywidget/trunk/setup.py
Log:
Add a localized datepicker

Modified: MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/configure.zcml
==============================================================================
--- MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/configure.zcml	(original)
+++ MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/configure.zcml	Thu Jul 28 17:36:10 2011
@@ -29,4 +29,11 @@
     file="querywidget.css"
     />
 
+  <browser:page
+      name="datepickerconfig"
+      permission="zope2.View"
+      for="*"
+      class="archetypes.querywidget.views.datepickerconfig"
+      />
+
 </configure>

Added: MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/cssregistry.xml
==============================================================================
--- (empty file)
+++ MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/cssregistry.xml	Thu Jul 28 17:36:10 2011
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<object name="portal_css">
+
+  <stylesheet title=""
+              id="++resource++plone.app.jquerytools.dateinput.css"
+              media="screen"
+              rel="stylesheet"
+              rendering="import"
+              cacheable="True"
+              compression="safe"
+              cookable="True"
+              enabled="1"
+              expression=""/>
+
+</object>

Added: MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/jsregistry.xml
==============================================================================
--- (empty file)
+++ MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/jsregistry.xml	Thu Jul 28 17:36:10 2011
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<object name="portal_javascripts" meta_type="JavaScripts Registry">
+
+  <javascript enabled="True"
+              id="++resource++plone.app.jquerytools.dateinput.js" />
+
+</object>

Modified: MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/metadata.xml
==============================================================================
--- MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/metadata.xml	(original)
+++ MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/profiles/default/metadata.xml	Thu Jul 28 17:36:10 2011
@@ -3,5 +3,6 @@
   <version>1</version>
   <dependencies>
       <dependency>profile-plone.app.querystring:default</dependency>
+      <dependency>profile-plone.app.jquerytools:default</dependency>
   </dependencies>
 </metadata>

Modified: MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/querywidget.js
==============================================================================
--- MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/querywidget.js	(original)
+++ MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/querywidget.js	Thu Jul 28 17:36:10 2011
@@ -69,24 +69,31 @@
                     .addClass('querywidget queryvalue stringWidget');
                 break;
             case 'DateWidget':
-                return $(document.createElement('input'))
+                var widget = $(document.createElement('input'))
                     .attr({
                         'autocomplete': 'off',
-                        'type': 'text',
+                        'type': 'date',
                         'name': 'query.v:records'
                     })
-                    .addClass('querywidget queryvalue dateWidget');
+                    .addClass('querywidget queryvalue dateWidget')
+                    .dateinput().removeClass('date')
+                    .change(function(e){
+                        $.querywidget.updateSearch();
+                    });
+                return widget;
                 break;
             case 'DateRangeWidget':
+
                 return $(document.createElement('div'))
                     .addClass('querywidget dateRangeWidget')
                     .append($(document.createElement('input'))
                         .attr({
                             'autocomplete': 'off',
-                            'type': 'text',
+                            'type': 'date',
                             'name': 'query.v:records:list'
                         })
                         .addClass('queryvalue')
+                        .dateinput().removeClass('date')
                     )
                     .append($(document.createElement('span'))
                         .html(' and ')
@@ -94,10 +101,11 @@
                     .append($(document.createElement('input'))
                         .attr({
                             'autocomplete': 'off',
-                            'type': 'text',
+                            'type': 'date',
                             'name': 'query.v:records:list'
                         })
                         .addClass('queryvalue')
+                        .dateinput().removeClass('date')
                     );
                 break;
             case 'ReferenceWidget':
@@ -190,13 +198,9 @@
             case 'DateRangeWidget':
                 /* fall through */
             case 'DateWidget':
-                var ok = true;
-                $(values).each(function(i){
-                    if ($(this).val().length != 10) {
-                        ok = false;
-                    }
-                });
-                return ok;
+                /* We use a datepicker which has it's own change handler. That
+                   one does the refresh. */
+                return false;
             default:
                 /* Backspace and delete should force update */
                 if (e.keyCode == 8 || e.keyCode == 46) {

Added: MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/views.py
==============================================================================
--- (empty file)
+++ MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/views.py	Thu Jul 28 17:36:10 2011
@@ -0,0 +1,29 @@
+from zope.publisher.browser import BrowserView
+
+
+class datepickerconfig(BrowserView):
+
+    calendar_type = 'gregorian'
+
+    def __call__(self):
+        language = getattr(self.request, 'LANGUAGE', 'en')
+        calendar = self.request.locale.dates.calendars[self.calendar_type]
+
+        template = """
+jQuery.tools.dateinput.localize("%(language)s", {
+    months: "%(monthnames)s",
+    shortMonths: "%(shortmonths)s",
+    days: "%(days)s",
+    shortDays: "%(shortdays)s"
+});
+
+jQuery.tools.dateinput.conf.lang = "%(language)s";
+jQuery.tools.dateinput.conf.format = "mm/dd/yyyy";
+        """
+        return template % (dict(language=language,
+                                monthnames=','.join(calendar.getMonthNames()),
+                                shortmonths=','.join(calendar.getMonthAbbreviations()),
+                                days=','.join(calendar.getDayNames()),
+                                shortdays=','.join(calendar.getDayAbbreviations()),
+                                format=format
+                                ))

Modified: MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/widget.py
==============================================================================
--- MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/widget.py	(original)
+++ MoreFieldsAndWidgets/archetypes.querywidget/trunk/archetypes/querywidget/widget.py	Thu Jul 28 17:36:10 2011
@@ -14,7 +14,8 @@
     _properties.update({
         'macro': 'querywidget',
         'helper_css': ('++resource++archetypes.querywidget.querywidget.css',),
-        'helper_js': ('++resource++archetypes.querywidget.querywidget.js',),
+        'helper_js': ('++resource++archetypes.querywidget.querywidget.js',
+                      '@@datepickerconfig'),
         }),
 
     security = ClassSecurityInfo()

Modified: MoreFieldsAndWidgets/archetypes.querywidget/trunk/setup.py
==============================================================================
--- MoreFieldsAndWidgets/archetypes.querywidget/trunk/setup.py	(original)
+++ MoreFieldsAndWidgets/archetypes.querywidget/trunk/setup.py	Thu Jul 28 17:36:10 2011
@@ -24,6 +24,7 @@
       install_requires=[
           'setuptools',
           'plone.app.querystring',
+          'plone.app.jquerytools',
       ],
       entry_points="""
       [z3c.autoinclude.plugin]

------------------------------------------------------------------------------
Got Input?   Slashdot Needs You.
Take our quick survey online.  Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey