ldapsaisie/public_html/includes/js/LSformElement_date_field.js

91 lines
2.7 KiB
JavaScript

var LSformElement_date_field = new Class({
initialize: function(name,input){
this.name = name;
this.input = input;
this.params = varLSdefault.LSjsConfig[this.name];
if (!$type(this.params)) {
this.params={};
}
if (!$type(this.params.time)) {
this.params.time = true;
}
if (!$type(this.params.manual)) {
this.params.manual = true;
}
if (!$type(this.params.showNowButton)) {
this.params.showNowButton = true;
}
if (!$type(this.params.showTodayButton)) {
this.params.showNowButton = true;
}
if (!$type(this.params.style)) {
this.params.style = 'dashboard';
}
if (!$type(this.params.format)) {
if (this.params.time) {
this.params.format = "%d/%m/%Y, %H:%M:%S";
}
else {
this.params.format = "%d/%m/%Y";
}
}
Date.defineParser(this.params.format);
this.calendar = new DatePicker(this.input, {
format: this.params.format,
timePicker: this.params.time,
pickerClass: 'datepicker_'+this.params.style,
blockKeydown: (!this.params.manual),
useFadeInOut: !Browser.ie
}
);
if (this.params.showNowButton) {
this.nowBtn = new Element('img');
this.nowBtn.src = varLSdefault.imagePath('now');
this.nowBtn.addClass('btn');
this.nowBtn.addEvent('click',this.onNowBtnClick.bind(this));
this.nowBtn.injectAfter(this.input);
varLSdefault.addHelpInfo(this.nowBtn,'LSformElement_date','now');
}
if (this.params.showTodayButton) {
this.todayBtn = new Element('img');
this.todayBtn.src = varLSdefault.imagePath('calendar');
this.todayBtn.addClass('btn');
this.todayBtn.addEvent('click',this.onTodayBtnClick.bind(this));
if (!$type(this.nowBtn)) {
this.todayBtn.injectAfter(this.input);
}
else {
this.todayBtn.injectAfter(this.nowBtn);
}
varLSdefault.addHelpInfo(this.todayBtn,'LSformElement_date','today');
}
},
onNowBtnClick: function() {
this.input.value = new Date().format(this.params.format);
},
onTodayBtnClick: function() {
if (this.input.value) {
var cur = Date.parse(this.input.value,this.params.format);
if (cur == null) {
var cur = Date.parse(this.input.value);
}
if (cur) {
var now = new Date();
var today = cur.clone();
today.set({
year: now.get('year'),
mo: now.get('mo'),
date: now.get('date')
});
this.input.value = today.format(this.params.format);
}
}
}
});