You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by br...@apache.org on 2007/01/17 18:52:28 UTC

svn commit: r497099 - in /cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources: ./ css/ img/ js/ js/templates/ mattkruse-lib/

Author: bruno
Date: Wed Jan 17 09:52:27 2007
New Revision: 497099

URL: http://svn.apache.org/viewvc?view=rev&rev=497099
Log:
CForms date picker changes
* Add dojo-based date / time / datetime pickers (previously only a date picker was supported)
* Remove old (mattkruse-lib) calendar stuff
* Make resources-uri available to client-side javascript by setting it as a property on the cocoon object
* Configure djConfig.extraLocale to make some extra locales available to dojo

Added:
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/DropdownDateTimePicker.js   (with props)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/dateIcon.gif   (with props)
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/timeIcon.gif   (with props)
Removed:
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/css/forms-calendar.css
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/img/cal.gif
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/mattkruse-lib/CalendarPopup.js
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/mattkruse-lib/date.js
Modified:
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-advanced-field-styling.xsl
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-calendar-styling.xsl
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-field-styling.xsl
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/__package__.js
    cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/manifest.js

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-advanced-field-styling.xsl
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-advanced-field-styling.xsl?view=diff&rev=497099&r1=497098&r2=497099
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-advanced-field-styling.xsl (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-advanced-field-styling.xsl Wed Jan 17 09:52:27 2007
@@ -36,13 +36,11 @@
     <script src="{$resources-uri}/forms/mattkruse-lib/PopupWindow.js" type="text/javascript"/>
     <script src="{$resources-uri}/forms/mattkruse-lib/OptionTransfer.js" type="text/javascript"/>
     <script src="{$resources-uri}/forms/mattkruse-lib/selectbox.js" type="text/javascript"/>
-    <xsl:apply-templates select="." mode="forms-calendar"/>
     <xsl:apply-templates select="." mode="forms-htmlarea"/>
   </xsl:template>
 
   <xsl:template match="body" mode="forms-field">
     <xsl:apply-imports/>
-    <xsl:apply-templates select="." mode="forms-calendar"/>
     <xsl:apply-templates select="." mode="forms-htmlarea"/>
   </xsl:template>
 

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-calendar-styling.xsl
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-calendar-styling.xsl?view=diff&rev=497099&r1=497098&r2=497099
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-calendar-styling.xsl (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-calendar-styling.xsl Wed Jan 17 09:52:27 2007
@@ -24,37 +24,19 @@
       | This stylesheet is designed to be included by 'forms-advanced-styling.xsl'.
       +-->
 
-  <xsl:template match="head" mode="forms-calendar">
-    <script src="{$resources-uri}/forms/mattkruse-lib/CalendarPopup.js" type="text/javascript"/>
-    <script src="{$resources-uri}/forms/mattkruse-lib/date.js" type="text/javascript"/>
-    <script type="text/javascript">
-      // Setup calendar
-      var forms_calendar = CalendarPopup();
-      forms_calendar.setWeekStartDay(1);
-      forms_calendar.showYearNavigation();
-      forms_calendar.showYearNavigationInput();
-      forms_calendar.setCssPrefix("forms_");
-    </script>
-    <link rel="stylesheet" type="text/css" href="{$resources-uri}/forms/css/forms-calendar.css"/>
-  </xsl:template>
-
-  <xsl:template match="body" mode="forms-calendar">
-    <!-- div id="forms_calendarDiv"/ -->
-  </xsl:template>
-
   <!--+
       | fi:field or fi:aggregatefield with either
       | - explicit styling @type = 'date' or
       | - implicit if no styling @type is specified,
-      |   but datatype/@type = 'date' and datatype/convertor/@variant = 'date',
+      |   but datatype/@type = 'date',
       |   selection lists must be excluded here
       +-->
   <xsl:template match="fi:field[fi:styling/@type='date'] |
-                       fi:field[fi:datatype[@type='date'][fi:convertor/@variant='date']][not(fi:styling/@type)][not(fi:selection-list)] |
+                       fi:field[fi:datatype[@type='date']][not(fi:styling/@type)][not(fi:selection-list)] |
                        fi:aggregatefield[fi:datatype[@type='date'][fi:convertor/@variant='date']][not(fi:styling/@type)][not(fi:selection-list)]
                        ">
     <xsl:variable name="id" select="concat(@id, ':cal')"/>
-    
+
     <xsl:variable name="format">
       <xsl:choose>
         <xsl:when test="fi:datatype[@type='date']/fi:convertor/@pattern">
@@ -63,32 +45,27 @@
         <xsl:otherwise>yyyy-MM-dd</xsl:otherwise>
       </xsl:choose>
     </xsl:variable>
-    
+
+    <xsl:variable name="variant">
+      <xsl:choose>
+        <xsl:when test="fi:datatype[@type='date']/fi:convertor/@variant">
+          <xsl:value-of select="fi:datatype[@type='date']/fi:convertor/@variant"/>
+        </xsl:when>
+        <xsl:otherwise>date</xsl:otherwise>
+      </xsl:choose>
+    </xsl:variable>
+
     <span id="{@id}">
       <xsl:choose>
         <xsl:when test="@state = 'output'">
           <xsl:value-of select="fi:value"/>
         </xsl:when>
         <xsl:otherwise>
-	      <!-- regular input -->
-	      <input id="{@id}:input" name="{@id}" value="{fi:value}" title="{normalize-space(fi:hint)}" type="text">
+        <!-- regular input -->
+	      <input id="{@id}:input" name="{@id}" value="{fi:value}" title="{normalize-space(fi:hint)}" type="text" dojoType="forms:dropdownDateTimePicker" pattern="{$format}" variant="{$variant}">
 	        <xsl:apply-templates select="." mode="styling"/>
 	      </input>
-	    
-	      <!-- calendar popup -->
-	      <xsl:choose>
-	        <xsl:when test="@state = 'disabled'">
-	          <img src="{$resources-uri}/forms/img/cal.gif" alt="forms:calendar.alt" i18n:attr="alt"/>
-	        </xsl:when>
-	        <xsl:otherwise>
-	          <a href="#" name="{$id}" id="{$id}"
-	             onclick="forms_calendar.select(cocoon.forms.getForm(this)['{@id}'],'{$id}','{$format}'); return false;">
-	            <img src="{$resources-uri}/forms/img/cal.gif" alt="forms:calendar.alt" i18n:attr="alt"/>
-	          </a>
-	        </xsl:otherwise>
-	      </xsl:choose>
-	
-	      <!-- common stuff -->
+        <!-- common stuff -->
 	      <xsl:apply-templates select="." mode="common"/>
 	    </xsl:otherwise>
 	  </xsl:choose>

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-field-styling.xsl
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-field-styling.xsl?view=diff&rev=497099&r1=497098&r2=497099
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-field-styling.xsl (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/forms-field-styling.xsl Wed Jan 17 09:52:27 2007
@@ -59,9 +59,17 @@
       |       <xsl:attribute name="onload">cocoon.forms.callOnLoadHandlers(); <xsl:value-of select="@onload"/></xsl:attribute>
       +-->
   <xsl:template match="head" mode="forms-field">
-    <xsl:if test="$dojo-debug = 'true'">                                           <!-- turn on debugging, if requested -->
-        <script type="text/javascript"> djConfig = {isDebug: true} </script>
-    </xsl:if>
+    <script type="text/javascript">
+      var djConfig = {};
+      <xsl:if test="$dojo-debug = 'true'">                                           <!-- turn on debugging, if requested -->
+        <xsl:text> djConfig.isDebug = true; </xsl:text>
+      </xsl:if>
+      djConfig.extraLocale = ["en", "de", "nl", "fr", "it", "pt"];
+      var cocoon;
+      if (!cocoon)
+        cocoon = {};
+      cocoon.resourcesUri = "<xsl:value-of select="$resources-uri"/>";
+    </script>
     <script src="{$resources-uri}/dojo/dojo.js" type="text/javascript"/>           <!-- load dojo -->
     <script type="text/javascript">dojo.require("dojo.widget.*");</script>         <!-- require dojo.widget for auto-loading -->
     <xsl:if test="$dojo-debug = 'true'">                                           <!-- require console etc. for dojo debug, if requested -->

Added: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/DropdownDateTimePicker.js
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/DropdownDateTimePicker.js?view=auto&rev=497099
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/DropdownDateTimePicker.js (added)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/DropdownDateTimePicker.js Wed Jan 17 09:52:27 2007
@@ -0,0 +1,261 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+dojo.provide("cocoon.forms.DropdownDateTimePicker");
+
+dojo.require("dojo.date.format");
+dojo.require("dojo.string.*");
+
+/*
+ * A date, time, datetime picker widget for CForms.
+ * Uses the date and time pickers from dojo.
+ * Compared to the dojo dropdown date and time pickers, this one supports also combined datetime input
+ * in one field. It also makes use of the correct forms locale.
+ */
+dojo.widget.defineWidget("cocoon.forms.DropdownDateTimePicker", dojo.widget.HtmlWidget,
+    function() {
+
+    },
+
+    {
+        variant: "date", /* date, time or datetime */
+
+        pattern: "yyyy-MM-dd",
+
+        showInputSample: "false", /* should a sample date entry be shown next to the input field? */
+
+        locale: "en", /* normally taken from the form */
+
+        isContainer: true,
+
+        dateIconURL: cocoon.resourcesUri + "/forms/js/templates/dateIcon.gif",
+
+        timeIconURL: cocoon.resourcesUri + "/forms/js/templates/timeIcon.gif",
+
+        containerToggle: "explode",
+
+        containerToggleDuration: 150,
+
+        postMixInProperties: function(args, frag, parent) {
+            cocoon.forms.DropdownDateTimePicker.superclass.postMixInProperties(this, args, frag, parent);
+
+            // search form locale
+            var fragNode = this.getFragNodeRef(frag);
+            if (fragNode.form) {
+                var formLocale = fragNode.form.getAttribute("locale");
+                if (formLocale != null)
+                    this.locale = formLocale;
+            }
+
+            // make sure locale is supported by dojo, otherwise fall back to 'en'
+            if (this.locale == null || this.locale == "" || !djConfig.extraLocale || !dojo.lang.inArray(djConfig.extraLocale, this.locale.split("-")[0])) {
+                dojo.debug("DropdownDateTimePicker: no locale specified or locale used by widget or CForm (" + this.locale + ") is not loaded via djConfig.extraLocale, will fall back to 'en'.");
+                this.locale = "en";
+            }
+
+            this._splitPattern();
+            this._initDateFormatOptions();
+
+            this.templateString = "<span style='white-space: nowrap'><input dojoAttachPoint='inputNode' autocomplete='off' style='vertical-align: middle'/>";
+
+            if (this.variant == "date" || this.variant == "datetime") {
+                this.templateString += "<img src='${this.dateIconURL}' dojoAttachEvent='onclick:_onDateIconClick' dojoAttachPoint='dateButtonNode' style='vertical-align: middle; cursor: pointer; cursor: hand'/>";
+            }
+
+            if (this.variant == "time" || this.variant == "datetime") {
+                this.templateString += "<img src='${this.timeIconURL}' dojoAttachEvent='onclick:_onTimeIconClick' dojoAttachPoint='timeButtonNode' style='vertical-align: middle; cursor: pointer; cursor: hand'/>";
+            }
+
+            if (this.showInputSample == "true") {
+                var inputSample = dojo.date.format(new Date(), this.dateFormatOptions);
+                this.templateString += "&#160;&#160;[&#160;" + inputSample + "&#160;]";
+            }
+
+            this.templateString += "</span>";
+        },
+
+        attachTemplateNodes: function(){
+            // summary: use attachTemplateNodes to specify containerNode, as fillInTemplate is too late for this
+            cocoon.forms.DropdownDateTimePicker.superclass.attachTemplateNodes.apply(this, arguments);
+
+            this.datePopup = dojo.widget.createWidget("PopupContainer", {toggle: this.containerToggle, toggleDuration: this.containerToggleDuration});
+            this.timePopup = dojo.widget.createWidget("PopupContainer", {toggle: this.containerToggle, toggleDuration: this.containerToggleDuration});
+
+            this.datePopupContainerNode = this.datePopup.domNode;
+            this.timePopupContainerNode = this.timePopup.domNode;
+        },
+
+        fillInTemplate: function(args, frag) {
+            cocoon.forms.DropdownDateTimePicker.superclass.fillInTemplate(this, args, frag);
+
+            this.domNode.appendChild(this.datePopup.domNode);
+            this.domNode.appendChild(this.timePopup.domNode);
+
+            // Copy some stuff from the original input field
+            var fragNode = this.getFragNodeRef(frag);
+            this.inputNode.id = fragNode.id;
+            this.inputNode.name = fragNode.name;
+            this.inputNode.disabled = fragNode.disabled;
+            this.inputNode.className = fragNode.className;
+            this.inputNode.style.width = fragNode.style.width;
+            this.inputNode.value = fragNode.value;
+
+            // Construct date picker
+            var dpArgs = {widgetContainerId: this.widgetId, lang: this.locale, value: this.value};
+            this.datePicker = dojo.widget.createWidget("DatePicker", dpArgs, this.datePopupContainerNode, "child");
+            dojo.event.connect(this.datePicker, "onValueChanged", this, "_updateDate");
+
+            // Construct time picker
+            var tpArgs = { widgetContainerId: this.widgetId, lang: this.locale, value: this.value };
+            this.timePicker = dojo.widget.createWidget("TimePicker", tpArgs, this.timePopupContainerNode, "child");
+            dojo.event.connect(this.timePicker, "onValueChanged", this, "_updateTime");
+
+        },
+
+        _onDateIconClick: function() {
+            if (this.inputNode.disabled)
+                return;
+
+            if(!this.datePopup.isShowingNow) {
+                var currentValue = this._parseCurrentInput();
+                if (currentValue != null)
+                    this.datePicker.setDate(currentValue);
+                this.datePopup.open(this.inputNode, this, this.dateButtonNode);
+            } else {
+                this.datePopup.close();
+            }
+        },
+
+        _onTimeIconClick: function() {
+            if (this.inputNode.disabled)
+                return;
+
+            if(!this.timePopup.isShowingNow) {
+                var currentValue = this._parseCurrentInput();
+                if (currentValue != null)
+                    this.timePicker.setTime(currentValue);
+                this.timePopup.open(this.inputNode, this, this.timeButtonNode);
+            } else {
+                this.timePopup.close();
+            }
+        },
+
+        _updateDate: function(value) {
+            // in case there's a time component, preserve it
+            if (this.variant = "datetime") {
+                var currentValue = this._parseCurrentInput();
+                if (currentValue != null) {
+                    value.setHours(currentValue.getHours());
+                    value.setMinutes(currentValue.getMinutes());
+                    value.setSeconds(currentValue.getSeconds());
+                }
+            }
+            this.inputNode.value = dojo.date.format(value, this.dateFormatOptions);
+
+            if(this.datePopup.isShowingNow) {
+                this.datePopup.close();
+            }
+        },
+
+        _updateTime: function(value) {
+            // in case there's a date component, preserve it
+            if (this.variant = "datetime") {
+                var currentValue = this._parseCurrentInput();
+                if (currentValue != null) {
+                    value.setFullYear(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate());
+                }
+            }
+            this.inputNode.value = dojo.date.format(value, this.dateFormatOptions);
+        },
+
+        _parseCurrentInput: function() {
+            var currentInput = this.inputNode.value;
+            if (currentInput != "") {
+                return dojo.date.parse(currentInput, this.dateFormatOptions);
+            }
+            return null;
+        },
+
+        _splitPattern: function() {
+            // Dojo wants date and time patterns separately, however in CForms these form one string
+            // Therefore, when variant is dateTime we try to split them. This is not perfect of course,
+            // it assume date and time information is grouped and time information is after date information
+            // (which is however very common).
+
+            if (this.variant == "date") {
+                // pure date mode, assume pattern is only for dates
+                this.datePattern = this.pattern;
+                return;
+            } else if (this.variant == "time") {
+                // pure time mode, assume patter is only for times
+                this.timePattern = this.pattern;
+                return;
+            }
+
+            // http://www.unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns
+            var timeFormattingChars = ["a", "h", "H", "K", "k", "m", "s", "S", "A", "z", "Z"];
+
+            var pattern = this.pattern;
+            if (pattern == null || pattern == "")
+                return;
+
+            var beginTimePattern = -1;
+            for (var i = 0; i < pattern.length; i++) {
+                var c = pattern.charAt(i);
+                if (dojo.lang.inArray(timeFormattingChars, c)) {
+                    beginTimePattern = i;
+                    break;
+                }
+            }
+
+            if (beginTimePattern == -1) {
+                // pure date pattern
+                this.datePattern = pattern;
+            } else {
+                this.datePattern = dojo.string.trimEnd(pattern.substr(0, beginTimePattern));
+                this.timePattern = pattern.substr(beginTimePattern, pattern.length);
+            }
+        },
+
+        _initDateFormatOptions: function() {
+            var options = {};
+
+            switch (this.variant) {
+                case "date":
+                    options.selector = "dateOnly";
+                    break;
+                case "time":
+                    options.selector = "timeOnly";
+                    break;
+                case "datetime":
+                    options.selector = "dateTime";
+                    break;
+            }
+
+            options.datePattern = this.datePattern;
+            options.timePattern = this.timePattern;
+            options.locale = this.locale;
+
+            this.dateFormatOptions = options;
+        },
+
+        destroy: function(/*Boolean*/finalize){
+            this.datePicker.destroy(finalize);
+            this.timePicker.destory(finalize);
+            cocoon.forms.DropdownDateTimePicker.superclass.destroy.apply(this, arguments);
+        }
+    }
+);
\ No newline at end of file

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/DropdownDateTimePicker.js
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/__package__.js
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/__package__.js?view=diff&rev=497099&r1=497098&r2=497099
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/__package__.js (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/__package__.js Wed Jan 17 09:52:27 2007
@@ -26,6 +26,7 @@
                 "cocoon.forms.CFormsRepeater",
                 "cocoon.forms.CFormsDragAndDropRepeater",
                 "cocoon.forms.CFormsSuggest",
+                "cocoon.forms.DropdownDateTimePicker",
                 "dojo.widget.InlineEditBox" // also needed by advanced-field-styling
         ]
 });

Added: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/dateIcon.gif
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/dateIcon.gif?view=auto&rev=497099
==============================================================================
Binary file - no diff available.

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/dateIcon.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Added: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/timeIcon.gif
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/timeIcon.gif?view=auto&rev=497099
==============================================================================
Binary file - no diff available.

Propchange: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/js/templates/timeIcon.gif
------------------------------------------------------------------------------
    svn:mime-type = image/gif

Modified: cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/manifest.js
URL: http://svn.apache.org/viewvc/cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/manifest.js?view=diff&rev=497099&r1=497098&r2=497099
==============================================================================
--- cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/manifest.js (original)
+++ cocoon/trunk/blocks/cocoon-forms/cocoon-forms-impl/src/main/resources/org/apache/cocoon/forms/resources/manifest.js Wed Jan 17 09:52:27 2007
@@ -39,7 +39,8 @@
 			"simpleform"                : "cocoon.forms.SimpleForm",
 			"ajaxform"                  : "cocoon.forms.AjaxForm",
 			"cformsrepeater"            : "cocoon.forms.CFormsRepeater",
-			"cformssuggest"             : "cocoon.forms.CFormsSuggest"
+			"cformssuggest"             : "cocoon.forms.CFormsSuggest",
+            "dropdowndatetimepicker"    : "cocoon.forms.DropdownDateTimePicker"
             // register new Widgets in the cocoon.forms namespace here
 		},
 		svg: {