JAVASCRIPT   72

date.js

Guest on 31st August 2021 05:12:20 PM

  1. define(['knockout'], function(ko) {
  2.     var name = 'date-datatype-config';
  3.     ko.components.register(name, {
  4.         viewModel: function(params) {
  5.             var self = this;
  6.             this.search = params.search;
  7.             if (!this.search) {
  8.                 this.dateFormat = params.config.dateFormat;
  9.                 this.dateFormatOptions = ko.observableArray([{
  10.                     'id': 'YYYY-MM-DD HH:mm:ssZ',
  11.                     'name': 'ISO 8601 Time (YYYY-MM-DD HH:mm:ssZ)'
  12.                 }, {
  13.                     'id': 'YYYY-MM-DD',
  14.                     'name': 'ISO 8601 (YYYY-MM-DD)'
  15.                 }, {
  16.                     'id': 'YYYY-MM',
  17.                     'name': 'ISO 8601 Month (YYYY-MM)'
  18.                 }, {
  19.                     'id': 'YYYY',
  20.                     'name': 'CE Year (YYYY)'
  21.                 }]);
  22.        
  23.                 this.onDateFormatSelection = function(val, e) {
  24.                     this.dateFormat(e.currentTarget.value);
  25.                 };
  26.             }
  27.  
  28.             if (this.search) {
  29.                 var config = params.node.config || params.datatype.defaultconfig;
  30.                 var filter = params.filterValue();
  31.                 this.dateFormat = config.dateFormat;
  32.                 this.op = ko.observable(filter.op || '');
  33.                 this.searchValue = ko.observable(filter.val || '');
  34.                 this.filterValue = ko.computed(function() {
  35.                     return {
  36.                         op: self.op(),
  37.                         val: self.searchValue()
  38.                     }
  39.                 }).extend({ throttle: 750 });
  40.                 params.filterValue(this.filterValue());
  41.                 this.filterValue.subscribe(function(val) {
  42.                     params.filterValue(val);
  43.                 });
  44.             }
  45.         },
  46.         template: { require: 'text!datatype-config-templates/date' }
  47.     });
  48.     return name;
  49. });

Raw Paste


Login or Register to edit or fork this paste. It's free.