Browse Source

[search] Fixed search fixed time settings and added datepicker

Enrico Berti 10 năm trước cách đây
mục cha
commit
103b8f6

+ 4 - 0
apps/search/src/search/static/search/css/search.css

@@ -532,3 +532,7 @@ em {
   overflow-y: auto;
   padding-left: 4px;
 }
+
+.datepicker {
+  z-index: 1051;
+}

+ 2 - 2
apps/search/src/search/templates/search.mako

@@ -1663,13 +1663,13 @@ ${ dashboard.layout_skeleton() }
               <div class="control-group" data-bind="visible: collection.timeFilter.type() == 'fixed'">
                 <label class="control-label" for="settingstimestart">${ _('Start date/time') }</label>
                 <div class="controls">
-                  <input id="settingstimestart" type="text" data-bind="collection.timeFilter.from" />
+                  <input id="settingstimestart" type="text" data-bind="value: collection.timeFilter.from, datepicker: {momentFormat: 'YYYY-MM-DD[T]HH:mm:SS[Z]'}" />
                 </div>
               </div>
               <div class="control-group" data-bind="visible: collection.timeFilter.type() == 'fixed'">
                 <label class="control-label" for="settingstimeend">${ _('End date/time') }</label>
                 <div class="controls">
-                  <input id="settingstimeend" type="text" data-bind="collection.timeFilter.to" />
+                  <input id="settingstimeend" type="text" data-bind="value: collection.timeFilter.to, datepicker: {momentFormat: 'YYYY-MM-DD[T]HH:mm:SS[Z]'}" />
                 </div>
               </div>
               <div class="control-group">

+ 31 - 33
desktop/core/src/desktop/static/desktop/js/ko.hue-bindings.js

@@ -1291,45 +1291,43 @@ function getFileBrowseButton(inputElement, selectFolder, valueAccessor, stripHdf
 }
 
 ko.bindingHandlers.datepicker = {
-    init: function(element, valueAccessor, allBindings, viewModel, bindingContext){
-      var DATE_FORMAT = "YYYY-MM-DD";
-      var TIME_FORMAT = "HH:mm:ss";
-      var DATETIME_FORMAT = DATE_FORMAT + " " + TIME_FORMAT;
-      var _el = $(element);
-      var options = ko.unwrap(valueAccessor());
-      _el.datepicker({
-        format: DATE_FORMAT.toLowerCase()
-      }).on("changeDate", function () {
-        allBindings().value(_el.val());
-      });
+  init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
+    var _el = $(element);
+    var _options = ko.unwrap(valueAccessor());
+    _el.datepicker({
+      format: "yyyy-mm-dd"
+    }).on("changeDate", function (e) {
+      setDate(e.date);
+    }).on("hide", function (e) {
+      setDate(e.date);
+    });
 
+    function setDate(d) {
+      if (_options.momentFormat) {
+        _el.val(moment(d).utc().format(_options.momentFormat));
+      }
+      allBindings().value(_el.val());
     }
+  }
 }
 
 
 ko.bindingHandlers.timepicker = {
-    init: function(element, valueAccessor, allBindings, viewModel, bindingContext){
-      var DATE_FORMAT = "YYYY-MM-DD";
-      var TIME_FORMAT = "HH:mm:ss";
-      var DATETIME_FORMAT = DATE_FORMAT + " " + TIME_FORMAT;
-      var _el = $(element);
-      var options = ko.unwrap(valueAccessor());
-
-      _el.timepicker({
-        minuteStep: 1,
-        showSeconds: false,
-        showMeridian: false,
-        defaultTime: false
-      });
-
-      _el.on("change", function () {
-        if (_el.val().substr(-1) != "Z") {
-          _el.val(_el.val() + "Z");
-          _el.trigger("change");
-        }
-      });
-
-    }
+  init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {
+    var _el = $(element);
+    _el.timepicker({
+      minuteStep: 1,
+      showSeconds: false,
+      showMeridian: false,
+      defaultTime: false
+    });
+    _el.on("change", function () {
+      if (_el.val().substr(-1) != "Z") {
+        _el.val(_el.val() + "Z");
+        _el.trigger("change");
+      }
+    });
+  }
 }