Yikes, this was pretty stupid. I completly forgot about what I thought 2 weeks ago: it's from the server I need the date-time, so I need a json service. Then, today, I completly forgot about it, and thought again: OK, it will consume less ressources w/out a service, if I only use javascript. A senior moment I guess :/
I will rewrite that later, to have the real server hour... Jacques > Author: jleroux > Date: Sat Dec 29 22:08:19 2012 > New Revision: 1426848 > > URL: http://svn.apache.org/viewvc?rev=1426848&view=rev > Log: > I wanted to have the server hour on the webtools job list, not a bid deal, > hé? > As ever, turns it's always more complicated than thought. > For instance jQuery, even with $.datepicker.formatDate, is not able to format > a date + time correctly :/ > So I added a new js script: date.format-1.2.3.js. It's only 4kb, I tried to > compress it online, did not work, gave up. > > This is pretty basic, enough for the needs and can be easily extended when > more is needed > > Added: > ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl > (with props) > ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 (with props) > Modified: > ofbiz/trunk/LICENSE > ofbiz/trunk/NOTICE > ofbiz/trunk/framework/common/config/CommonUiLabels.xml > ofbiz/trunk/framework/common/widget/CommonScreens.xml > ofbiz/trunk/framework/webtools/widget/ServiceForms.xml > ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml > > Modified: ofbiz/trunk/LICENSE > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1426848&r1=1426847&r2=1426848&view=diff > ============================================================================== > --- ofbiz/trunk/LICENSE (original) > +++ ofbiz/trunk/LICENSE Sat Dec 29 22:08:19 2012 > @@ -1234,7 +1234,8 @@ ofbiz/trunk/framework/base/lib/slf4j-log > ofbiz/trunk/framework/images/webapp/images/jquery/* > ofbiz/trunk/specialpurpose/webpos/webapp/webpos/images/js/jquery.hotkeys-0.7.9.min.js > ofbiz/trunk/specialpurpose/webpos/webapp/webpos/images/js/WebPosHotkeys.js > -ofbiz/trunk/applications/content/template/docbook/webhelp/* > +ofbiz/trunk/applications/content/template/docbook/webhelp/* > +ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3.js > ========================================================================= > The MIT License > > > Modified: ofbiz/trunk/NOTICE > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/NOTICE?rev=1426848&r1=1426847&r2=1426848&view=diff > ============================================================================== > --- ofbiz/trunk/NOTICE (original) > +++ ofbiz/trunk/NOTICE Sat Dec 29 22:08:19 2012 > @@ -371,13 +371,19 @@ Under the following conditions: > > * Attribution. You must attribute the work in the manner specified > by the author or licensor (but not in any way that suggests that > - they endorse you or your use of the work). > + they endorse you or your use of the work). > * For any reuse or distribution, you must make clear to > others the license terms of this work. The best way to do > - this is with a link to this web page. > + this is with a link to this web page. > * Any of the above conditions can be waived if you get > * For any reuse or distribution, you must make clear to > permission from the copyright holder. > * Nothing in this license impairs or restricts the > * For any reuse or distribution, you must make clear to > author's moral rights. > +========================================================================= > + > +This product includes software developed by Steven Levithan > +(http://blog.stevenlevithan.com/archives/date-time-format). MIT license > +========================================================================= > + > \ No newline at end of file > > Modified: ofbiz/trunk/framework/common/config/CommonUiLabels.xml > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/config/CommonUiLabels.xml?rev=1426848&r1=1426847&r2=1426848&view=diff > ============================================================================== > --- ofbiz/trunk/framework/common/config/CommonUiLabels.xml (original) > +++ ofbiz/trunk/framework/common/config/CommonUiLabels.xml Sat Dec 29 > 22:08:19 2012 > @@ -9152,6 +9152,10 @@ > <value xml:lang="zh-CN">åºåç¼å·</value> > <value xml:lang="zh-TW">åºèæ¸</value> > </property> > + <property key="CommonServerHour"> > + <value xml:lang="en">Server Hour</value> > + <value xml:lang="fr">Heure du serveur </value> > + </property> > <property key="CommonServiceReturnError"> > <value xml:lang="en">Return Error Service : Returning Error</value> > <value xml:lang="es">El servicio ha devuelto un error: Devolviendo > error</value> > > Added: ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl?rev=1426848&view=auto > ============================================================================== > --- ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl > (added) > +++ ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl > Sat Dec 29 22:08:19 2012 > @@ -0,0 +1,26 @@ > +<#-- > +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. > +--> > +<script type="text/javascript"> > +jQuery(document).ready(function() { > + window.setInterval(function(){clock()}, 1000); > + function clock() { > + jQuery("#${clockField}").text("${uiLabelMap.CommonServerHour}: " + new > Date().format("yyyy-mm-dd HH:MM:ss")); > + } > +}) > +</script> > \ No newline at end of file > > Propchange: > ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: > ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl > ------------------------------------------------------------------------------ > svn:keywords = Date Rev Author URL Id > > Propchange: > ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl > ------------------------------------------------------------------------------ > svn:mime-type = text/plain > > Modified: ofbiz/trunk/framework/common/widget/CommonScreens.xml > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/CommonScreens.xml?rev=1426848&r1=1426847&r2=1426848&view=diff > ============================================================================== > --- ofbiz/trunk/framework/common/widget/CommonScreens.xml (original) > +++ ofbiz/trunk/framework/common/widget/CommonScreens.xml Sat Dec 29 22:08:19 > 2012 > @@ -154,6 +154,7 @@ under the License. > <!-- jQuery CSSs --> > <set field="layoutSettings.styleSheets[+0]" > value="/images/jquery/plugins/asmselect/jquery.asmselect-1.0.4a-beta.css" > global="true" /> > <set field="layoutSettings.javaScripts[]" > value="/images/selectall.js" global="true" /> > + <set field="layoutSettings.javaScripts[]" > value="/images/date.format-1.2.3" global="true" /> > <set field="layoutSettings.javaScripts[]" > value="/images/fieldlookup.js" global="true" /> > <set field="layoutSettings.javaScripts[]" > value="/images/GooglemapMarkers.js" global="true" /> > <set field="layoutSettings.javaScripts[]" > value="/images/getDependentDropdownValues.js" global="true" /> > > Added: ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3?rev=1426848&view=auto > ============================================================================== > --- ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 (added) > +++ ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 Sat Dec 29 > 22:08:19 2012 > @@ -0,0 +1,126 @@ > +/* > + * Date Format 1.2.3 > + * (c) 2007-2009 Steven Levithan <stevenlevithan.com> > + * MIT license > + * > + * Includes enhancements by Scott Trenda <scott.trenda.net> > + * and Kris Kowal <cixar.com/~kris.kowal/> > + * > + * Accepts a date, a mask, or a date and a mask. > + * Returns a formatted version of the given date. > + * The date defaults to the current date/time. > + * The mask defaults to dateFormat.masks.default. > + */ > + > +var dateFormat = function () { > + var token = > /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, > + timezone = > /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) > (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, > + timezoneClip = /[^-+\dA-Z]/g, > + pad = function (val, len) { > + val = String(val); > + len = len || 2; > + while (val.length < len) val = "0" + val; > + return val; > + }; > + > + // Regexes and supporting functions are cached through closure > + return function (date, mask, utc) { > + var dF = dateFormat; > + > + // You can't provide utc if you skip other args (use the "UTC:" mask > prefix) > + if (arguments.length == 1 && Object.prototype.toString.call(date) == > "[object String]" && !/\d/.test(date)) { > + mask = date; > + date = undefined; > + } > + > + // Passing date through Date applies Date.parse, if necessary > + date = date ? new Date(date) : new Date; > + if (isNaN(date)) throw SyntaxError("invalid date"); > + > + mask = String(dF.masks[mask] || mask || dF.masks["default"]); > + > + // Allow setting the utc argument via the mask > + if (mask.slice(0, 4) == "UTC:") { > + mask = mask.slice(4); > + utc = true; > + } > + > + var _ = utc ? "getUTC" : "get", > + d = date[_ + "Date"](), > + D = date[_ + "Day"](), > + m = date[_ + "Month"](), > + y = date[_ + "FullYear"](), > + H = date[_ + "Hours"](), > + M = date[_ + "Minutes"](), > + s = date[_ + "Seconds"](), > + L = date[_ + "Milliseconds"](), > + o = utc ? 0 : date.getTimezoneOffset(), > + flags = { > + d: d, > + dd: pad(d), > + ddd: dF.i18n.dayNames[D], > + dddd: dF.i18n.dayNames[D + 7], > + m: m + 1, > + mm: pad(m + 1), > + mmm: dF.i18n.monthNames[m], > + mmmm: dF.i18n.monthNames[m + 12], > + yy: String(y).slice(2), > + yyyy: y, > + h: H % 12 || 12, > + hh: pad(H % 12 || 12), > + H: H, > + HH: pad(H), > + M: M, > + MM: pad(M), > + s: s, > + ss: pad(s), > + l: pad(L, 3), > + L: pad(L > 99 ? Math.round(L / 10) : L), > + t: H < 12 ? "a" : "p", > + tt: H < 12 ? "am" : "pm", > + T: H < 12 ? "A" : "P", > + TT: H < 12 ? "AM" : "PM", > + Z: utc ? "UTC" : (String(date).match(timezone) || > [""]).pop().replace(timezoneClip, ""), > + o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + > Math.abs(o) % 60, 4), > + S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != > 10) * d % 10] > + }; > + > + return mask.replace(token, function ($0) { > + return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); > + }); > + }; > +}(); > + > +// Some common format strings > +dateFormat.masks = { > + "default": "ddd mmm dd yyyy HH:MM:ss", > + shortDate: "m/d/yy", > + mediumDate: "mmm d, yyyy", > + longDate: "mmmm d, yyyy", > + fullDate: "dddd, mmmm d, yyyy", > + shortTime: "h:MM TT", > + mediumTime: "h:MM:ss TT", > + longTime: "h:MM:ss TT Z", > + isoDate: "yyyy-mm-dd", > + isoTime: "HH:MM:ss", > + isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", > + isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" > +}; > + > +// Internationalization strings > +dateFormat.i18n = { > + dayNames: [ > + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", > + "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", > "Saturday" > + ], > + monthNames: [ > + "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", > "Nov", "Dec", > + "January", "February", "March", "April", "May", "June", "July", > "August", "September", "October", "November", "December" > + ] > +}; > + > +// For convenience... > +Date.prototype.format = function (mask, utc) { > + return dateFormat(this, mask, utc); > +}; > + > > Propchange: ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 > ------------------------------------------------------------------------------ > svn:eol-style = native > > Propchange: ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 > ------------------------------------------------------------------------------ > svn:keywords = Date Rev Author URL Id > > Propchange: ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 > ------------------------------------------------------------------------------ > svn:mime-type = text/plain > > Modified: ofbiz/trunk/framework/webtools/widget/ServiceForms.xml > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/ServiceForms.xml?rev=1426848&r1=1426847&r2=1426848&view=diff > ============================================================================== > --- ofbiz/trunk/framework/webtools/widget/ServiceForms.xml (original) > +++ ofbiz/trunk/framework/webtools/widget/ServiceForms.xml Sat Dec 29 > 22:08:19 2012 > @@ -55,11 +55,12 @@ under the License. > </form> > > <form name="FindJobs" type="single" target="FindJob" > default-entity-name="JobSandbox"> > - <field name="noConditionFind"><hidden value="Y"/><!-- if this isn't > there then with all fields empty no query will be done --></field> > - <field name="jobName" > title="${uiLabelMap.WebtoolsJob}"><text-find/></field> > - <field name="jobId" > title="${uiLabelMap.CommonId}"><text-find/></field> > + <field name="noConditionFind" position="1"><hidden value="Y"/><!-- > if this isn't there then with all fields empty no query will be done > --></field> > + <field name="jobName" title="${uiLabelMap.WebtoolsJob}" > position="1"><text-find/></field> > + <field name="clock" position="2" > title="${uiLabelMap.CommonServerHour}:"><display/></field> > + <field name="jobId" title="${uiLabelMap.CommonId}" > position="1"><text-find/></field> > <field name="serviceName" > title="${uiLabelMap.WebtoolsServiceName}"><text-find/></field> > - <field name="statusId" title="${uiLabelMap.CommonStatus}"> > + <field name="statusId" title="${uiLabelMap.CommonStatus}" > position="1"> > <drop-down allow-empty="true"> > <entity-options description="${description}" > key-field-name="statusId" entity-name="StatusItem"> > <entity-constraint name="statusTypeId" operator="equals" > value="SERVICE_STATUS"/> > @@ -67,7 +68,9 @@ under the License. > </entity-options> > </drop-down> > </field> > - <field name="submitButton" title="${uiLabelMap.CommonFind}"><submit > button-type="button"/></field> > + <field name="submitButton" title="${uiLabelMap.CommonFind}" > position="1"> > + <submit button-type="button"/> > + </field> > </form> > > <form name="ListJobs" type="list" list-name="listIt" > paginate-target="FindJob" default-entity-name="JobSandbox" > separate-columns="true" > > Modified: ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml?rev=1426848&r1=1426847&r2=1426848&view=diff > ============================================================================== > --- ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml (original) > +++ ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml Sat Dec 29 > 22:08:19 2012 > @@ -49,12 +49,15 @@ under the License. > <set field="tabButtonItem" value="findJob"/> > <set field="jobCtx" from-field="parameters"/> > <set field="dummy" value="${groovy: if > ('SERVICE_PENDING'.equals(jobCtx.statusId)) jobCtx.jobId = ''}"/> <!-- To > more easily see current pending jobs and possibly cancel some others --> > + <!-- field for WindowSetIntervalJs.ftl --> > + <set field="clockField" value="FindJobs_clock_title"/> > </actions> > <widgets> > <decorator-screen name="CommonServiceDecorator" > location="${parameters.mainDecoratorLocation}"> > <decorator-section name="body"> > <section> > <widgets> > + <platform-specific><html><html-template > location="component://common/webcommon/includes/WindowSetIntervalJs.ftl"/></html></platform-specific> > <decorator-screen name="FindScreenDecorator" > location="component://common/widget/CommonScreens.xml"> > <decorator-section name="search-options"> > <include-form name="FindJobs" > location="component://webtools/widget/ServiceForms.xml"/> > >