Changeset View
Changeset View
Standalone View
Standalone View
webroot/rsrc/js/core/behavior-fancy-datepicker.js
Show First 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | JX.behavior('fancy-datepicker', function() { | ||||
var onclose = function(e) { | var onclose = function(e) { | ||||
if (!picker) { | if (!picker) { | ||||
return; | return; | ||||
} | } | ||||
JX.DOM.remove(picker); | JX.DOM.remove(picker); | ||||
picker = null; | picker = null; | ||||
JX.DOM.alterClass(root, 'picker-open', false); | JX.DOM.alterClass(root, 'picker-open', false); | ||||
if (e) { | |||||
e.kill(); | e.kill(); | ||||
} | |||||
root = null; | root = null; | ||||
}; | }; | ||||
var ontoggle = function(e) { | var ontoggle = function(e) { | ||||
var box = e.getTarget(); | var box = e.getTarget(); | ||||
root = e.getNode('phabricator-date-control'); | root = e.getNode('phabricator-date-control'); | ||||
JX.Stratcom.getData(root).disabled = !box.checked; | JX.Stratcom.getData(root).disabled = !box.checked; | ||||
▲ Show 20 Lines • Show All 86 Lines • ▼ Show 20 Lines | return JX.$N( | ||||
JX.$N('tr', {}, buttons)); | JX.$N('tr', {}, buttons)); | ||||
}; | }; | ||||
function getValidDate() { | function getValidDate() { | ||||
var written_date = new Date(value_y, value_m-1, value_d); | var written_date = new Date(value_y, value_m-1, value_d); | ||||
if (isNaN(written_date.getTime())) { | if (isNaN(written_date.getTime())) { | ||||
return new Date(); | return new Date(); | ||||
} else { | } else { | ||||
//year 01 should be 2001, not 1901 | |||||
if (written_date.getYear() < 70) { | |||||
value_y += 2000; | |||||
written_date = new Date(value_y, value_m-1, value_d); | |||||
} | |||||
return written_date; | return written_date; | ||||
} | } | ||||
} | } | ||||
// Render the day-of-week and calendar views. | // Render the day-of-week and calendar views. | ||||
var render_day = function() { | var render_day = function() { | ||||
var today = new Date(); | var today = new Date(); | ||||
▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Lines | JX.Stratcom.listen( | ||||
function(e) { | function(e) { | ||||
e.kill(); | e.kill(); | ||||
var data = e.getNodeData('tag:td'); | var data = e.getNodeData('tag:td'); | ||||
if (!data.value) { | if (!data.value) { | ||||
return; | return; | ||||
} | } | ||||
var valid_date = getValidDate(); | |||||
value_y = valid_date.getYear() + 1900; | |||||
value_m = valid_date.getMonth() + 1; | |||||
value_d = valid_date.getDate(); | |||||
var p = data.value.split(':'); | var p = data.value.split(':'); | ||||
switch (p[0]) { | switch (p[0]) { | ||||
case 'm': | case 'm': | ||||
// User clicked left or right month selection buttons. | // User clicked left or right month selection buttons. | ||||
value_m = value_m + parseInt(p[1], 10); | value_m = value_m + parseInt(p[1], 10); | ||||
if (value_m > 12) { | if (value_m > 12) { | ||||
value_m -= 12; | value_m -= 12; | ||||
value_y++; | value_y++; | ||||
Show All 31 Lines |