LP#1581126: webstaff: make egDateInput respect format.date OUS
authorGalen Charlton <gmc@esilibrary.com>
Thu, 12 May 2016 16:27:11 +0000 (12:27 -0400)
committerMike Rylander <mrylander@gmail.com>
Thu, 18 Aug 2016 19:34:21 +0000 (15:34 -0400)
This patch makes the egDateInput directive fetch the
date format from the format.date library setting. The
directive also now accepts a dateFormat attribute for cases
where there is a reason to override the library setting.

If no format is set via library setting or in how the
directive is invoked, the format defaults to "mediumDate",
e.g., "May 2, 1999".

To test:

[1] Open the webstaff patron registration form. Verify that
    date widgets display the date in the format that
    corresponds to the value of the format.date library setting
    for the current work station, or (if the library setting
    is not set, "Month day, year".

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Open-ILS/src/templates/staff/share/t_datetime.tt2
Open-ILS/web/js/ui/default/staff/services/ui.js

index 0e837f1..cc0afbf 100644 (file)
@@ -5,7 +5,7 @@
       <input type="text"
         class="form-control"
         ng-show="!hideDatePicker"
-        uib-datepicker-popup="shortDate"
+        uib-datepicker-popup="{{date_format}}"
         is-open="datePickerIsOpen"
         ng-model="ngModel"
         ng-change="ngChange"
index b9b3a8e..cbccf9a 100644 (file)
@@ -459,8 +459,8 @@ function($window , egStrings) {
 * Handy wrapper directive for uib-datapicker-popup
 */
 .directive(
-    'egDateInput', ['egStrings',
-    function(egStrings) {
+    'egDateInput', ['egStrings', 'egCore',
+    function(egStrings, egCore) {
         return {
             scope : {
                 closeText : '@',
@@ -469,7 +469,8 @@ function($window , egStrings) {
                 ngBlur : '=',
                 ngDisabled : '=',
                 ngRequired : '=',
-                hideDatePicker : '='
+                hideDatePicker : '=',
+                dateFormat : '=?'
             },
             require: 'ngModel',
             templateUrl: './share/t_datetime',
@@ -480,6 +481,14 @@ function($window , egStrings) {
 
                 if ('showTimePicker' in attrs)
                     scope.showTimePicker = true;
+
+                var default_format = 'mediumDate';
+                egCore.org.settings(['format.date']).then(function(set) {
+                    default_format = set['format.date'];
+                    scope.date_format = (scope.dateFormat) ?
+                        scope.dateFormat :
+                        default_format;
+                });
             }
         };
     }