83 lines
2.4 KiB
JavaScript
83 lines
2.4 KiB
JavaScript
define([
|
|
'jquery', 'knockout', 'text!./DateTime.html', 'fgcommand', 'kojqui/datepicker', 'kojqui/spinner'
|
|
], function(jquery, ko, htmlString, fgcommand ) {
|
|
function ViewModel(params) {
|
|
var self = this;
|
|
|
|
self.timesOfToday = [
|
|
'Clock Time', 'Dawn', 'Morning', 'Noon', 'Afternoon', 'Dusk', 'Evening', 'Night',
|
|
];
|
|
|
|
self.setTimeOfToday = function(type) {
|
|
var offsetTypes = {
|
|
"Clock Time": "real",
|
|
"Dawn": "dawn",
|
|
"Morning": "morning",
|
|
"Noon": "noon",
|
|
"Afternoon": "afternoon",
|
|
"Dusk": "dusk",
|
|
"Evening": "evening",
|
|
"Night": "night",
|
|
}
|
|
offsetType = offsetTypes[type] || null;
|
|
if( ! offsetType ) {
|
|
console.log("unknown time offset type ", type );
|
|
return;
|
|
}
|
|
fgcommand.timeofday(offsetType);
|
|
}
|
|
|
|
self.wrapHour = function(evt, ui) {
|
|
return self._wrap(evt,ui,0,23);
|
|
}
|
|
|
|
self.wrapMinute = function(evt, ui) {
|
|
return self._wrap(evt,ui,0,59);
|
|
}
|
|
|
|
self._wrap = function(evt,ui,min,max) {
|
|
if (ui.value > max) {
|
|
$(evt.target).spinner("value", min);
|
|
return false;
|
|
} else if (ui.value < min) {
|
|
$(evt.target).spinner("value", max);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
self.gmtProp = ko.observable().extend({ fgprop: 'gmt' });
|
|
|
|
self.simTimeUTC = ko.pureComputed( function() {
|
|
return new Date(self.gmtProp() + "Z");
|
|
});
|
|
|
|
|
|
self.hour = ko.pureComputed({
|
|
read: function() {
|
|
return self.simTimeUTC().getHours();
|
|
},
|
|
write: function(newValue) {
|
|
|
|
}
|
|
});
|
|
self.minute = ko.pureComputed({
|
|
read: function() {
|
|
return self.simTimeUTC().getMinutes();
|
|
},
|
|
write: function(newValue) {
|
|
|
|
}
|
|
});
|
|
self.date = ko.observable(0);
|
|
|
|
}
|
|
|
|
ViewModel.prototype.dispose = function() {
|
|
}
|
|
|
|
// Return component definition
|
|
return {
|
|
viewModel : ViewModel,
|
|
template : htmlString
|
|
};
|
|
});
|