# HG changeset patch
# User Adrián Romero <adrianromero@openbravo.com>
# Date 1452869932 -3600
#      Fri Jan 15 15:58:52 2016 +0100
# Node ID 324681154a9e624ae61490c6bc04be0b94122cad
# Parent  735b0063dcbb95dfdb0faef42e7b659944148206
Fixes issue 0031909: Does not exist translation for localized months, week days to be used to display dates
* Adds localization strings for dates literals: Months, week days, and order of fields.
* Adds utilities to read these literals
* Overwrites enyo component to use these literals in DatePicker

diff --git a/src/org/openbravo/mobile/core/MobileCoreComponentProvider.java b/src/org/openbravo/mobile/core/MobileCoreComponentProvider.java
--- a/src/org/openbravo/mobile/core/MobileCoreComponentProvider.java
+++ b/src/org/openbravo/mobile/core/MobileCoreComponentProvider.java
@@ -83,6 +83,7 @@
     jsDependency.add("data/ob-dal");
     jsDependency.add("data/ob-model");
     jsDependency.add("data/ob-windowmodel");
+    jsDependency.add("component/ob-dateformat");
     jsDependency.add("component/ob-terminal-component");
     jsDependency.add("model/ob-router");
     jsDependency.add("model/ob-terminal-model");
diff --git a/web/org.openbravo.mobile.core/source/component/ob-dateformat.js b/web/org.openbravo.mobile.core/source/component/ob-dateformat.js
new file mode 100644
--- /dev/null
+++ b/web/org.openbravo.mobile.core/source/component/ob-dateformat.js
@@ -0,0 +1,29 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2016 Openbravo S.L.U.
+ * Licensed under the Openbravo Commercial License version 1.0
+ * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
+ * or in the legal folder of this module distribution.
+ ************************************************************************************
+ */
+
+/*global enyo, Backbone, */
+
+
+// This definition overwrites the enyo component 'enyo.g11n.Fmts' used for example in onyx.DatePicker
+// This way localization is defined in Openbravo
+enyo.kind({
+  name: 'enyo.g11n.Fmts',
+
+  getMonthFields: function () {
+    return OB.I18N.getMonthsShortList();
+  },
+
+  getDateFieldOrder: function () {
+    return OB.I18N.getLabel('OBMOBC_Date_enyo_date_order');
+  },
+
+  getTimeFieldOrder: function () {
+    return OB.I18N.getLabel('OBMOBC_Date_enyo_time_order');
+  }
+});
\ No newline at end of file
diff --git a/web/org.openbravo.mobile.core/source/utils/ob-i18n.js b/web/org.openbravo.mobile.core/source/utils/ob-i18n.js
--- a/web/org.openbravo.mobile.core/source/utils/ob-i18n.js
+++ b/web/org.openbravo.mobile.core/source/utils/ob-i18n.js
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2012-2013 Openbravo S.L.U.
+ * Copyright (C) 2012-2016 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -240,4 +240,58 @@
     }
     return label;
   };
+
+  OB.I18N.lists = {};
+
+  OB.I18N.getLocalizedList = function (listname) {
+    if (!OB.I18N.lists[listname]) {
+      OB.I18N.lists[listname] = OB.I18N.getLabel(listname).split('_');
+    }
+    return OB.I18N.lists[listname];
+  };
+
+  OB.I18N.getLocalizedListElement = function (listname, i) {
+    return OB.I18N.getLocalizedList(listname)[i];
+  };
+
+  OB.I18N.getMonthsList = function () {
+    return OB.I18N.getLocalizedList('OBMOBC_Date_Months');
+  };
+
+  OB.I18N.getMonth = function (i) { // Starts with January
+    return OB.I18N.getLocalizedListElement('OBMOBC_Date_Months', i);
+  };
+
+  OB.I18N.getMonthsShortList = function () {
+    return OB.I18N.getLocalizedList('OBMOBC_Date_Months_Short');
+  };
+
+  OB.I18N.getMonthShort = function (i) { // Starts with Jan
+    return OB.I18N.getLocalizedListElement('OBMOBC_Date_Months_Short', i);
+  };
+
+  OB.I18N.getWeekdaysList = function () {
+    return OB.I18N.getLocalizedList('OBMOBC_Date_Weekdays');
+  };
+
+  OB.I18N.getWeekday = function (i) { // Starts with Sunday
+    return OB.I18N.getLocalizedListElement('OBMOBC_Date_Weekdays', i);
+  };
+
+  OB.I18N.getWeekdaysShortList = function () {
+    return OB.I18N.getLocalizedList('OBMOBC_Date_Weekdays_Short');
+  };
+
+  OB.I18N.getWeekdayShort = function (i) { // Starts with Sun
+    return OB.I18N.getLocalizedListElement('OBMOBC_Date_Weekdays_Short', i);
+  };
+
+  OB.I18N.getWeekdaysMinList = function () {
+    return OB.I18N.getLocalizedList('OBMOBC_Date_Weekdays_Min');
+  };
+
+  OB.I18N.getWeekdayMin = function (i) { // Starts with Su
+    return OB.I18N.getLocalizedListElement('OBMOBC_Date_Weekdays_Min', i);
+  };
+
 }());
\ No newline at end of file
# HG changeset patch
# User Adrián Romero <adrianromero@openbravo.com>
# Date 1452870693 -3600
#      Fri Jan 15 16:11:33 2016 +0100
# Node ID 630a2dab5fb840053131389a56cff51e250e527f
# Parent  324681154a9e624ae61490c6bc04be0b94122cad
Fixes issue 0031909: Does not exist translation for localized months, week days to be used to display dates
* Adds missing localization strings

diff --git a/src-db/database/sourcedata/AD_MESSAGE.xml b/src-db/database/sourcedata/AD_MESSAGE.xml
--- a/src-db/database/sourcedata/AD_MESSAGE.xml
+++ b/src-db/database/sourcedata/AD_MESSAGE.xml
@@ -145,6 +145,19 @@
 <!--0F340EF05382478DBBD2E03E72A18CD0-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--0F340EF05382478DBBD2E03E72A18CD0--></AD_MESSAGE>
 
+<!--10CACB39998245FC93C70A37B7F1A1C5--><AD_MESSAGE>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <AD_MESSAGE_ID><![CDATA[10CACB39998245FC93C70A37B7F1A1C5]]></AD_MESSAGE_ID>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <VALUE><![CDATA[OBMOBC_Date_Weekdays_Short]]></VALUE>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <MSGTEXT><![CDATA[Sun_Mon_Tue_Wed_Thu_Fri_Sat]]></MSGTEXT>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <MSGTIP><![CDATA[List of week days in sort format. First is always Sunday. The names are separated by '_'.]]></MSGTIP>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--10CACB39998245FC93C70A37B7F1A1C5-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--10CACB39998245FC93C70A37B7F1A1C5--></AD_MESSAGE>
+
 <!--1158291787B94B6BB624A0866C0BC3CA--><AD_MESSAGE>
 <!--1158291787B94B6BB624A0866C0BC3CA-->  <AD_MESSAGE_ID><![CDATA[1158291787B94B6BB624A0866C0BC3CA]]></AD_MESSAGE_ID>
 <!--1158291787B94B6BB624A0866C0BC3CA-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -385,6 +398,19 @@
 <!--3EA5A4A6149D47F38BDB72C30EBCD617-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--3EA5A4A6149D47F38BDB72C30EBCD617--></AD_MESSAGE>
 
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C--><AD_MESSAGE>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <AD_MESSAGE_ID><![CDATA[3EE79E67EB9C48D2A8E6B25A6DB3B46C]]></AD_MESSAGE_ID>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <VALUE><![CDATA[OBMOBC_Date_Months_Short]]></VALUE>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <MSGTEXT><![CDATA[Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec]]></MSGTEXT>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <MSGTIP><![CDATA[List of months in short format. First is always January. The names are separated by '_'.]]></MSGTIP>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--3EE79E67EB9C48D2A8E6B25A6DB3B46C--></AD_MESSAGE>
+
 <!--4125E049FC3942C39597DA7AAE82FC8C--><AD_MESSAGE>
 <!--4125E049FC3942C39597DA7AAE82FC8C-->  <AD_MESSAGE_ID><![CDATA[4125E049FC3942C39597DA7AAE82FC8C]]></AD_MESSAGE_ID>
 <!--4125E049FC3942C39597DA7AAE82FC8C-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1165,6 +1191,19 @@
 <!--BB31C5F8D9474134843A5D123636B0AD-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--BB31C5F8D9474134843A5D123636B0AD--></AD_MESSAGE>
 
+<!--BDEB77024A064CDF831E5405C2145766--><AD_MESSAGE>
+<!--BDEB77024A064CDF831E5405C2145766-->  <AD_MESSAGE_ID><![CDATA[BDEB77024A064CDF831E5405C2145766]]></AD_MESSAGE_ID>
+<!--BDEB77024A064CDF831E5405C2145766-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--BDEB77024A064CDF831E5405C2145766-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--BDEB77024A064CDF831E5405C2145766-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--BDEB77024A064CDF831E5405C2145766-->  <VALUE><![CDATA[OBMOBC_Date_Weekdays]]></VALUE>
+<!--BDEB77024A064CDF831E5405C2145766-->  <MSGTEXT><![CDATA[Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday]]></MSGTEXT>
+<!--BDEB77024A064CDF831E5405C2145766-->  <MSGTIP><![CDATA[List of week days in long format. First is always Sunday. The names are separated by '_'.]]></MSGTIP>
+<!--BDEB77024A064CDF831E5405C2145766-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--BDEB77024A064CDF831E5405C2145766-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--BDEB77024A064CDF831E5405C2145766-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--BDEB77024A064CDF831E5405C2145766--></AD_MESSAGE>
+
 <!--BF85B5EEBC724669BC644AD1057025F0--><AD_MESSAGE>
 <!--BF85B5EEBC724669BC644AD1057025F0-->  <AD_MESSAGE_ID><![CDATA[BF85B5EEBC724669BC644AD1057025F0]]></AD_MESSAGE_ID>
 <!--BF85B5EEBC724669BC644AD1057025F0-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1333,6 +1372,19 @@
 <!--D05E4639FF9047308378499422EDE5AD-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--D05E4639FF9047308378499422EDE5AD--></AD_MESSAGE>
 
+<!--D0CACE6E820649A4A398E5D01D4EE0D2--><AD_MESSAGE>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <AD_MESSAGE_ID><![CDATA[D0CACE6E820649A4A398E5D01D4EE0D2]]></AD_MESSAGE_ID>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <VALUE><![CDATA[OBMOBC_Date_enyo_date_order]]></VALUE>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <MSGTEXT><![CDATA[mdy]]></MSGTEXT>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <MSGTIP><![CDATA[Order of attributes in a date field. 'm' stands for Month, 'd' stands for Day and 'y' stands for Year.]]></MSGTIP>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--D0CACE6E820649A4A398E5D01D4EE0D2--></AD_MESSAGE>
+
 <!--D39F57009CF5428888584DB84382EE84--><AD_MESSAGE>
 <!--D39F57009CF5428888584DB84382EE84-->  <AD_MESSAGE_ID><![CDATA[D39F57009CF5428888584DB84382EE84]]></AD_MESSAGE_ID>
 <!--D39F57009CF5428888584DB84382EE84-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1381,6 +1433,19 @@
 <!--D714EED223C746F0B6908977CE16A455-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--D714EED223C746F0B6908977CE16A455--></AD_MESSAGE>
 
+<!--D82A6E73A7314792AC1D932C82B621A1--><AD_MESSAGE>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <AD_MESSAGE_ID><![CDATA[D82A6E73A7314792AC1D932C82B621A1]]></AD_MESSAGE_ID>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <VALUE><![CDATA[OBMOBC_Date_enyo_time_order]]></VALUE>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <MSGTEXT><![CDATA[hma]]></MSGTEXT>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <MSGTIP><![CDATA[Order of attributes in a time field. 'h' stands for Hour, 'm' stands for Minute and 'a' stands for AM/PM.]]></MSGTIP>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--D82A6E73A7314792AC1D932C82B621A1-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--D82A6E73A7314792AC1D932C82B621A1--></AD_MESSAGE>
+
 <!--D86502BDAD594A9DA2E41CC56B78EE18--><AD_MESSAGE>
 <!--D86502BDAD594A9DA2E41CC56B78EE18-->  <AD_MESSAGE_ID><![CDATA[D86502BDAD594A9DA2E41CC56B78EE18]]></AD_MESSAGE_ID>
 <!--D86502BDAD594A9DA2E41CC56B78EE18-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
@@ -1417,6 +1482,32 @@
 <!--DDD5B0A29956461A82D30591F56CE10F-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
 <!--DDD5B0A29956461A82D30591F56CE10F--></AD_MESSAGE>
 
+<!--DEAFE9D404E24879A6FF2B97F8874AED--><AD_MESSAGE>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <AD_MESSAGE_ID><![CDATA[DEAFE9D404E24879A6FF2B97F8874AED]]></AD_MESSAGE_ID>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <VALUE><![CDATA[OBMOBC_Date_Weekdays_Min]]></VALUE>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <MSGTEXT><![CDATA[Su_Mo_Tu_We_Th_Fr_Sa]]></MSGTEXT>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <MSGTIP><![CDATA[List of week days in minimum format. First is always Sunday. The names are separated by '_'.]]></MSGTIP>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--DEAFE9D404E24879A6FF2B97F8874AED-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--DEAFE9D404E24879A6FF2B97F8874AED--></AD_MESSAGE>
+
+<!--E1E449CA16FC489E8200D7D90498DD79--><AD_MESSAGE>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <AD_MESSAGE_ID><![CDATA[E1E449CA16FC489E8200D7D90498DD79]]></AD_MESSAGE_ID>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <VALUE><![CDATA[OBMOBC_Date_Months]]></VALUE>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <MSGTEXT><![CDATA[January_February_March_April_May_June_July_August_September_October_November_December]]></MSGTEXT>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <MSGTIP><![CDATA[List of months in long format. First is always January. The names are separated by '_'.]]></MSGTIP>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <MSGTYPE><![CDATA[I]]></MSGTYPE>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <AD_MODULE_ID><![CDATA[08943B85ADF64E708797A753E5B6AAEE]]></AD_MODULE_ID>
+<!--E1E449CA16FC489E8200D7D90498DD79-->  <ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--E1E449CA16FC489E8200D7D90498DD79--></AD_MESSAGE>
+
 <!--E43EB970110044C0B8DC09212771F824--><AD_MESSAGE>
 <!--E43EB970110044C0B8DC09212771F824-->  <AD_MESSAGE_ID><![CDATA[E43EB970110044C0B8DC09212771F824]]></AD_MESSAGE_ID>
 <!--E43EB970110044C0B8DC09212771F824-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
