details:   https://code.openbravo.com/erp/devel/pi/rev/43e598987eb7
changeset: 23074:43e598987eb7
user:      David Baz Fayos <david.baz <at> openbravo.com>
date:      Thu May 15 23:49:40 2014 +0200
summary:   Fixed issue 25936: Added 'javaTimeformat.java=MM-dd-yyyy hh:mm:ss a' 
capability

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-datetime.js
                                           |  11 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-time.js
                                               |  10 +-
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js
                                                  |  53 +++++++++-
 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css
 |  56 ++++++++++
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/AbsoluteTimeUIDefinition.java
                                                      |  10 +-
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java
                                                              |  13 +-
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/TimeUIDefinition.java
                                                              |  10 +-
 src/index.jsp                                                                  
                                                                                
  |   9 +
 8 files changed, 157 insertions(+), 15 deletions(-)

diffs (truncated from 342 to 300 lines):

diff -r f401b711161b -r 43e598987eb7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-datetime.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-datetime.js
    Tue May 20 12:22:06 2014 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-datetime.js
    Thu May 15 23:49:40 2014 +0200
@@ -137,13 +137,22 @@
     } else {
       this.showPickerTimeItem = false;
     }
+    if (OB.Format.dateTime.toUpperCase().endsWith(' A')) {
+      this.use24HourTime = false;
+    } else {
+      this.use24HourTime = true;
+    }
     return this.Super('doInit', arguments);
   },
 
   parseValue: function () {
     var parseVal = this.Super('parseValue', arguments);
     if (this.showTime && parseVal.indexOf(' ') === -1) {
-      parseVal = parseVal + ' ' + '00:00:00';
+      if (this.use24HourTime) {
+        parseVal = parseVal + ' ' + '00:00:00';
+      } else {
+        parseVal = parseVal + ' ' + '12:00:00 AM';
+      }
     }
     return parseVal;
   },
diff -r f401b711161b -r 43e598987eb7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-time.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-time.js
        Tue May 20 12:22:06 2014 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-time.js
        Thu May 15 23:49:40 2014 +0200
@@ -30,12 +30,7 @@
   operator: 'equals',
   validateOnExit: true,
   showHint: false,
-  timeFormatter: 'to24HourTime',
-  displayFormat: 'to24HourTime',
-  short24TimeFormat: 'HH:MM:SS',
-  shortTimeFormat: 'HH:MM:SS',
-  long24TimeFormat: 'HH:MM:SS',
-  longTimeFormat: 'HH:MM:SS',
+  timeFormatter: isc.Time.displayFormat,
 
   mapValueToDisplay: function (value) {
     var newValue = value;
@@ -146,7 +141,6 @@
   init: function () {
     var oldShowHint, hint, formatDefinition = 
OB.Utilities.getTimeFormatDefinition();
 
-    this.timeFormatter = formatDefinition.timeFormatter;
     this.timeFormat = formatDefinition.timeFormat;
 
     this.Super('init', arguments);
@@ -573,7 +567,7 @@
       this.precission = 'hour';
     }
 
-    if (this.timeFormat.toUpperCase().indexOf('AM') !== -1 || 
this.timeFormat.toUpperCase().indexOf('PM') !== -1) {
+    if (this.timeFormat.toUpperCase().indexOf(isc.Time.AMIndicator) !== -1 || 
this.timeFormat.toUpperCase().indexOf(isc.Time.PMIndicator) !== -1) {
       this.is24hTime = false;
     }
 
diff -r f401b711161b -r 43e598987eb7 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js
   Tue May 20 12:22:06 2014 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js
   Thu May 15 23:49:40 2014 +0200
@@ -62,6 +62,9 @@
   } else if (displayFormat.indexOf(' HH.MI') !== -1) {
     newFormat += ' %H.%M';
   }
+  if (displayFormat.indexOf(' a') !== -1) {
+    newFormat += ' A';
+  }
   return newFormat;
 };
 
@@ -110,15 +113,25 @@
   }
 
   // if already a date then return true
-  var isADate = Object.prototype.toString.call(OBDate) === '[object Date]';
+  var isADate = Object.prototype.toString.call(OBDate) === '[object Date]',
+      is24h = true,
+      isPM = false;
   if (isADate) {
     return OBDate;
   }
 
   dateFormat = OB.Utilities.Date.normalizeDisplayFormat(dateFormat);
+  dateFormat = dateFormat.replace(' A', '');
   var dateSeparator = dateFormat.substring(2, 3);
   var timeSeparator = dateFormat.substring(11, 12);
   var isFullYear = (dateFormat.indexOf('%Y') !== -1);
+  if (OBDate.indexOf(isc.Time.PMIndicator) !== 1 || 
OBDate.indexOf(isc.Time.AMIndicator) !== 1) {
+    is24h = false;
+  }
+  if (!is24h && OBDate.indexOf(isc.Time.PMIndicator) !== -1) {
+    isPM = true;
+  }
+  OBDate = OBDate.replace(isc.Time.AMIndicator, 
'').replace(isc.Time.PMIndicator, '');
 
   if ((isFullYear ? OBDate.length - 2 : OBDate.length) !== dateFormat.length) {
     return null;
@@ -157,6 +170,15 @@
   minutes = parseInt(minutes, 10);
   seconds = parseInt(seconds, 10);
 
+  if (!is24h) {
+    if (!isPM && hours === 12) {
+      hours = 0;
+    }
+    if (isPM && hours !== 12) {
+      hours = hours + 12;
+    }
+  }
+
   if (day < 1 || day > 31 || month < 1 || month > 12 || year > 99 || fullYear 
> 9999) {
     return null;
   }
@@ -210,10 +232,15 @@
 OB.Utilities.Date.JSToOB = function (JSDate, dateFormat) {
   dateFormat = OB.Utilities.Date.normalizeDisplayFormat(dateFormat);
 
-  var isADate = Object.prototype.toString.call(JSDate) === '[object Date]';
+  var isADate = Object.prototype.toString.call(JSDate) === '[object Date]',
+      is24h = true,
+      isPM = false;
   if (!isADate) {
     return null;
   }
+  if (dateFormat.toUpperCase().endsWith(' A')) {
+    is24h = false;
+  }
 
   var year = JSDate.getYear().toString();
   var fullYear = JSDate.getFullYear().toString();
@@ -235,6 +262,20 @@
     }
   }
 
+  if (!is24h) {
+    hours = parseInt(hours, 10);
+    if (hours >= 12) {
+      isPM = true;
+    }
+    if (hours > 12) {
+      hours = hours - 12;
+    }
+    if (hours === 0) {
+      hours = 12;
+    }
+    hours = hours.toString();
+  }
+
   while (year.length < 2) {
     year = '0' + year;
   }
@@ -265,6 +306,14 @@
   OBDate = OBDate.replace('%M', minutes);
   OBDate = OBDate.replace('%S', seconds);
 
+  if (!is24h) {
+    if (isPM) {
+      OBDate = OBDate.replace(' A', isc.Time.PMIndicator);
+    } else {
+      OBDate = OBDate.replace(' A', isc.Time.AMIndicator);
+    }
+  }
+
   return OBDate;
 };
 
diff -r f401b711161b -r 43e598987eb7 
modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css
  Tue May 20 12:22:06 2014 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.userinterface.smartclient/openbravo/skins/Default/org.openbravo.client.application/ob-form-styles.css
  Thu May 15 23:49:40 2014 +0200
@@ -156,6 +156,62 @@
   width: 100%;
 }
 
+.OBFormField .OBFormFieldDateInputRequired,
+.OBFormField .OBFormFieldDateInputRequiredFocused,
+.OBFormField .OBFormFieldDateInputRequiredDisabled,
+.OBFormField .OBFormFieldDateInputRequiredError,
+.OBFormField .OBFormFieldDateInputRequiredHint,
+
+.OBFormField .OBFormFieldDateInput,
+.OBFormField .OBFormFieldDateInputDisabled,
+.OBFormField .OBFormFieldDateInputFocused,
+.OBFormField .OBFormFieldDateInputError,
+.OBFormField .OBFormFieldDateInputHint,
+
+.OBFormFieldError .OBFormFieldDateInputRequired,
+.OBFormFieldError .OBFormFieldDateInputRequiredFocused,
+.OBFormFieldError .OBFormFieldDateInputRequiredDisabled,
+.OBFormFieldError .OBFormFieldDateInputRequiredError,
+.OBFormFieldError .OBFormFieldDateInputRequiredHint,
+
+.OBFormFieldError .OBFormFieldDateInput,
+.OBFormFieldError .OBFormFieldDateInputDisabled,
+.OBFormFieldError .OBFormFieldDateInputFocused,
+.OBFormFieldError .OBFormFieldDateInputError,
+.OBFormFieldError .OBFormFieldDateInputHint {
+  /* The date input should have a maximum width to ensure that the datepicker 
button is not
+     too far from the input */
+  max-width: 137px;
+}
+
+html[data-useragent*='MSIE 7.0'] .OBFormField .OBFormFieldDateInputRequired,
+html[data-useragent*='MSIE 7.0'] .OBFormField 
.OBFormFieldDateInputRequiredFocused,
+html[data-useragent*='MSIE 7.0'] .OBFormField 
.OBFormFieldDateInputRequiredDisabled,
+html[data-useragent*='MSIE 7.0'] .OBFormField 
.OBFormFieldDateInputRequiredError,
+html[data-useragent*='MSIE 7.0'] .OBFormField 
.OBFormFieldDateInputRequiredHint,
+
+html[data-useragent*='MSIE 7.0'] .OBFormField .OBFormFieldDateInput,
+html[data-useragent*='MSIE 7.0'] .OBFormField .OBFormFieldDateInputDisabled,
+html[data-useragent*='MSIE 7.0'] .OBFormField .OBFormFieldDateInputFocused,
+html[data-useragent*='MSIE 7.0'] .OBFormField .OBFormFieldDateInputError,
+html[data-useragent*='MSIE 7.0'] .OBFormField .OBFormFieldDateInputHint,
+
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError 
.OBFormFieldDateInputRequired,
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError 
.OBFormFieldDateInputRequiredFocused,
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError 
.OBFormFieldDateInputRequiredDisabled,
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError 
.OBFormFieldDateInputRequiredError,
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError 
.OBFormFieldDateInputRequiredHint,
+
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError .OBFormFieldDateInput,
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError 
.OBFormFieldDateInputDisabled,
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError 
.OBFormFieldDateInputFocused,
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError .OBFormFieldDateInputError,
+html[data-useragent*='MSIE 7.0'] .OBFormFieldError .OBFormFieldDateInputHint {
+  /* The previous improvement is not working ok in IE7 or in IE>7 with 
compatibility mode enabled
+     because the datepicker button is rendered in the corner, as if the input 
be width: 100% */
+  max-width: none;
+}
+
 .OBFormFieldNumberInput,
 .OBFormFieldNumberInputDisabled,
 .OBFormFieldNumberInputFocused,
diff -r f401b711161b -r 43e598987eb7 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/AbsoluteTimeUIDefinition.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/AbsoluteTimeUIDefinition.java
       Tue May 20 12:22:06 2014 +0200
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/AbsoluteTimeUIDefinition.java
       Thu May 15 23:49:40 2014 +0200
@@ -29,6 +29,7 @@
 import org.codehaus.jettison.json.JSONObject;
 import org.openbravo.base.exception.OBException;
 import org.openbravo.base.session.OBPropertiesProvider;
+import org.openbravo.client.kernel.KernelConstants;
 import org.openbravo.client.kernel.RequestContext;
 import org.openbravo.data.Sqlc;
 import org.openbravo.model.ad.ui.Field;
@@ -71,7 +72,14 @@
   private SimpleDateFormat getClassicFormat() {
     if (classicFormat == null) {
       String dateTimeFormat = (String) 
OBPropertiesProvider.getInstance().getOpenbravoProperties()
-          .get("dateTimeFormat.java");
+          .get(KernelConstants.DATETIME_FORMAT_PROPERTY);
+      if (dateTimeFormat.indexOf(" a") != -1) {
+        // The value of this reference always go to/from the client in the 24h 
notation, so in case
+        // the dateTimeFormat.java be defined to use the 'AM/PM' notation, it 
should be modified to
+        // work with this reference
+        dateTimeFormat = dateTimeFormat.replace(" a", "");
+        dateTimeFormat = dateTimeFormat.replace("hh", "HH");
+      }
       if (dateTimeFormat.contains(" ")) {
         dateTimeFormat = dateTimeFormat.substring(dateTimeFormat.indexOf(" ") 
+ 1);
       } else {
diff -r f401b711161b -r 43e598987eb7 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java
       Tue May 20 12:22:06 2014 +0200
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/DateUIDefinition.java
       Thu May 15 23:49:40 2014 +0200
@@ -25,7 +25,9 @@
 
 import org.codehaus.jettison.json.JSONObject;
 import org.openbravo.base.exception.OBException;
+import org.openbravo.base.session.OBPropertiesProvider;
 import org.openbravo.client.application.Parameter;
+import org.openbravo.client.kernel.KernelConstants;
 import org.openbravo.client.kernel.RequestContext;
 import org.openbravo.model.ad.ui.Field;
 
@@ -77,10 +79,17 @@
     try {
       JSONObject o = new JSONObject(
           fieldProperties != null && fieldProperties.length() > 0 ? 
fieldProperties : "{}");
-      o.put("width", "50%");
       if (field != null && field.getColumn() != null) {
-        final Long length = field.getColumn().getLength();
+        Long length = field.getColumn().getLength();
         if (length != null) {
+          final String dateTimeFormat = (String) 
OBPropertiesProvider.getInstance()
+              
.getOpenbravoProperties().get(KernelConstants.DATETIME_FORMAT_PROPERTY);
+          if (length.equals(19L) && dateTimeFormat.endsWith(" a")) {
+            // If it is a DateTime (typical length of 19) and there is also 
the need to show the
+            // " AM" or " PM" text, three characters more need to be added, so 
the length should be
+            // increased by 3
+            length += 3L;
+          }
           o.put("length", length);
         }
       }
diff -r f401b711161b -r 43e598987eb7 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/TimeUIDefinition.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/TimeUIDefinition.java
       Tue May 20 12:22:06 2014 +0200
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/TimeUIDefinition.java
       Thu May 15 23:49:40 2014 +0200
@@ -29,6 +29,7 @@

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to