|
|
|
!(function () {
|
|
|
|
BI.TimeTrigger = BI.inherit(BI.Trigger, {
|
|
|
|
|
|
|
|
_const: {
|
|
|
|
COMPARE_FORMAT: "%H:%M:%S",
|
|
|
|
COMPLETE_COMPARE_FORMAT: "%Y-%M-%d %H:%M:%S %P",
|
|
|
|
FORMAT_ARRAY: [
|
|
|
|
"%H:%M:%S", // HH:mm:ss
|
|
|
|
"%I:%M:%S", // hh:mm:ss
|
|
|
|
"%l:%M:%S", // h:mm:ss
|
|
|
|
"%k:%M:%S", // H:mm:ss
|
|
|
|
"%l:%M:%S %p", // h:mm:ss a
|
|
|
|
"%l:%M:%S %P", // h:mm:ss a
|
|
|
|
"%H:%M:%S %p", // HH:mm:ss a
|
|
|
|
"%H:%M:%S %P", // HH:mm:ss a
|
|
|
|
"%l:%M", // h:mm
|
|
|
|
"%k:%M", // H:mm
|
|
|
|
"%I:%M", // hh:mm
|
|
|
|
"%H:%M", // HH:mm
|
|
|
|
"%M:%S" // mm:ss
|
|
|
|
],
|
|
|
|
DEFAULT_DATE_STRING: "2000-01-01"
|
|
|
|
},
|
|
|
|
|
|
|
|
props: {
|
|
|
|
extraCls: "bi-time-trigger",
|
|
|
|
value: {},
|
|
|
|
format: "",
|
|
|
|
allowEdit: false
|
|
|
|
},
|
|
|
|
|
|
|
|
render: function () {
|
|
|
|
var self = this, o = this.options;
|
|
|
|
this.storeTriggerValue = "";
|
|
|
|
this.storeValue = o.value;
|
|
|
|
return {
|
|
|
|
type: "bi.absolute",
|
|
|
|
items: [{
|
|
|
|
el: {
|
|
|
|
type: "bi.sign_editor",
|
|
|
|
height: o.height,
|
|
|
|
validationChecker: function (v) {
|
|
|
|
return self._dateCheck(v);
|
|
|
|
},
|
|
|
|
quitChecker: function () {
|
|
|
|
return false;
|
|
|
|
},
|
|
|
|
ref: function (_ref) {
|
|
|
|
self.editor = _ref;
|
|
|
|
},
|
|
|
|
value: this._formatValue(o.value),
|
|
|
|
hgap: 4,
|
|
|
|
allowBlank: true,
|
|
|
|
watermark: BI.isKey(o.watermark) ? o.watermark : BI.i18nText("BI-Basic_Unrestricted"),
|
|
|
|
title: BI.bind(this._getTitle, this),
|
|
|
|
listeners: [{
|
|
|
|
eventName: "EVENT_KEY_DOWN",
|
|
|
|
action: function () {
|
|
|
|
self.fireEvent("EVENT_KEY_DOWN", arguments);
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
eventName: "EVENT_FOCUS",
|
|
|
|
action: function () {
|
|
|
|
self.storeTriggerValue = self.getKey();
|
|
|
|
self.fireEvent("EVENT_FOCUS");
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
eventName: "EVENT_BLUR",
|
|
|
|
action: function () {
|
|
|
|
self.fireEvent("EVENT_BLUR");
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
eventName: "EVENT_STOP",
|
|
|
|
action: function () {
|
|
|
|
self.fireEvent("EVENT_STOP");
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
eventName: "EVENT_VALID",
|
|
|
|
action: function () {
|
|
|
|
self.fireEvent("EVENT_VALID");
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
eventName: "EVENT_ERROR",
|
|
|
|
action: function () {
|
|
|
|
self.fireEvent("EVENT_ERROR");
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
eventName: "EVENT_CONFIRM",
|
|
|
|
action: function () {
|
|
|
|
var value = self.editor.getValue();
|
|
|
|
if (BI.isNotNull(value)) {
|
|
|
|
self.editor.setState(value);
|
|
|
|
}
|
|
|
|
if (BI.isNotEmptyString(value) && !BI.isEqual(self.storeTriggerValue, self.getKey())) {
|
|
|
|
var date = value.match(/\d+/g);
|
|
|
|
self.storeValue = {
|
|
|
|
hour: date[0] | 0,
|
|
|
|
minute: date[1] | 0,
|
|
|
|
second: date[2] | 0
|
|
|
|
};
|
|
|
|
}
|
|
|
|
self.fireEvent("EVENT_CONFIRM");
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
eventName: "EVENT_START",
|
|
|
|
action: function () {
|
|
|
|
self.fireEvent("EVENT_START");
|
|
|
|
}
|
|
|
|
}, {
|
|
|
|
eventName: "EVENT_CHANGE",
|
|
|
|
action: function () {
|
|
|
|
self.fireEvent("EVENT_CHANGE");
|
|
|
|
}
|
|
|
|
}]
|
|
|
|
},
|
|
|
|
left: 0,
|
|
|
|
right: 0,
|
|
|
|
top: 0,
|
|
|
|
bottom: 0
|
|
|
|
}, {
|
|
|
|
el: {
|
|
|
|
type: "bi.text",
|
|
|
|
invisible: o.allowEdit,
|
|
|
|
cls: "show-text",
|
|
|
|
title: BI.bind(this._getTitle, this),
|
|
|
|
hgap: 4
|
|
|
|
},
|
|
|
|
left: 0,
|
|
|
|
right: 0,
|
|
|
|
top: 0,
|
|
|
|
bottom: 0
|
|
|
|
}]
|
|
|
|
};
|
|
|
|
},
|
|
|
|
|
|
|
|
_dateCheck: function (date) {
|
|
|
|
var c = this._const;
|
|
|
|
return BI.any(c.FORMAT_ARRAY, function (idx, format) {
|
|
|
|
return BI.print(BI.parseDateTime(c.DEFAULT_DATE_STRING + " " + date, c.COMPLETE_COMPARE_FORMAT), format) === date;
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
_getTitle: function () {
|
|
|
|
var storeValue = this.storeValue || {};
|
|
|
|
var date = BI.getDate();
|
|
|
|
return BI.print(BI.getDate(date.getFullYear(), 0, 1, storeValue.hour, storeValue.minute, storeValue.second), this._getFormatString());
|
|
|
|
},
|
|
|
|
|
|
|
|
_getFormatString: function () {
|
|
|
|
return this.options.format || this._const.COMPARE_FORMAT;
|
|
|
|
},
|
|
|
|
|
|
|
|
_formatValue: function (v) {
|
|
|
|
var now = BI.getDate();
|
|
|
|
return BI.isNotEmptyObject(v) ? BI.print(BI.getDate(now.getFullYear(), now.getMonth(), now.getDay(), v.hour, v.minute, v.second), this._getFormatString()) : "";
|
|
|
|
},
|
|
|
|
|
|
|
|
getKey: function () {
|
|
|
|
return this.editor.getValue();
|
|
|
|
},
|
|
|
|
|
|
|
|
setValue: function (v) {
|
|
|
|
this.storeValue = v;
|
|
|
|
this.editor.setValue(this._formatValue(v));
|
|
|
|
},
|
|
|
|
|
|
|
|
getValue: function () {
|
|
|
|
return this.storeValue;
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
BI.shortcut("bi.time_trigger", BI.TimeTrigger);
|
|
|
|
})();
|