diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js new file mode 100644 index 000000000..374995e03 --- /dev/null +++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js @@ -0,0 +1,35 @@ +//If we use "TimePicker" for the name, Dojo get's confused and breaks +//TODO remove this file on nect Dojo release + +dojo.provide("struts.widget.StrutsTimePicker"); + +dojo.require("dojo.widget.DropdownTimePicker"); + +dojo.widget.defineWidget( + "struts.widget.StrutsTimePicker", + dojo.widget.DropdownTimePicker, { + widgetType : "TimePicker", + + inputName: "", + name: "", + + postCreate: function() { + struts.widget.StrutsTimePicker.superclass.postCreate.apply(this, arguments); + + if(this.value.toLowerCase() == "today") { + this.value = dojo.date.toRfc3339(new Date()); + } + + this.inputNode.name = this.name; + this.valueNode.name = this.inputName; + }, + + onSetTime: function() { + struts.widget.StrutsTimePicker.superclass.onSetTime.apply(this, arguments); + if(this.timePicker.selectedTime.anyTime){ + this.valueNode.value = ""; + } else { + this.valueNode.value = dojo.date.toRfc3339(this.timePicker.time); + } + } +}); \ No newline at end of file diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js index 1ecffb0bd..04cea85dd 100644 --- a/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js +++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js @@ -3,6 +3,6 @@ dojo.kwCompoundRequire({ "struts.widget.BindDiv", "struts.widget.BindAnchor", "struts.widget.ComboBox", - "struts.widget.DatePicker"] + "struts.widget.StrutsTimePicker"] }); dojo.provide("struts.widget.*"); diff --git a/core/src/main/resources/template/ajax/dojoRequire.js b/core/src/main/resources/template/ajax/dojoRequire.js index 10188b661..1c335943c 100644 --- a/core/src/main/resources/template/ajax/dojoRequire.js +++ b/core/src/main/resources/template/ajax/dojoRequire.js @@ -9,5 +9,6 @@ dojo.require("struts.widget.Bind"); dojo.require("struts.widget.BindDiv"); dojo.require("struts.widget.BindAnchor"); dojo.require("struts.widget.ComboBox"); +dojo.require("struts.widget.StrutsTimePicker") dojo.require("dojo.widget.Editor2"); dojo.hostenv.writeIncludes(); // not needed, but allows the Venkman debugger to work with the includes diff --git a/core/src/main/resources/template/simple/datetimepicker.ftl b/core/src/main/resources/template/simple/datetimepicker.ftl index 575efcbb8..b7b3ed627 100644 --- a/core/src/main/resources/template/simple/datetimepicker.ftl +++ b/core/src/main/resources/template/simple/datetimepicker.ftl @@ -5,7 +5,7 @@ <#if parameters.type?if_exists == "date"> dojoType="dropdowndatepicker"<#rt/> <#else> - dojoType="dropdowntimepicker"<#rt/> + dojoType="struts:StrutsTimePicker"<#rt/> <#if parameters.id?if_exists != ""> id="${parameters.id?html}"<#rt/>