App-Dochazka-WWW
view release on metacpan or search on metacpan
share/js/dochazka-www/viewer.js view on Meta::CPAN
}
} else if (st.code === 'DISPATCH_NO_SCHEDULED_INTERVALS_IDENTIFIED') {
// do nothing, for the time being
} else {
throw "unexpected \"interval/scheduled\" status code " + st.code;
}
$('#dcallback').html(entryPoint(obj));
};
ajax(rest, sc);
return null;
},
holidayOrWeekend = function (d) {
var rv = false;
// returns true if a given date is a holiday or weekend
if (haw.hasOwnProperty(d)) {
if (haw[d].hasOwnProperty('holiday') && haw[d].holiday) {
rv = true;
}
if (haw[d].hasOwnProperty('weekend') && haw[d].weekend) {
rv = true;
}
} else {
throw "haw lookup failed (unexpectedly) for key " + d;
}
return rv;
},
initializeStore = function (pl) {
// by "Store" here, I mean "haw" and "sortedDates"
var date, i;
haw = $.extend({}, pl);
sortedDates = Object.keys(haw).sort();
for (i = 0; i < sortedDates.length; i += 1) {
date = sortedDates[i];
if (! haw[date].hasOwnProperty('scheduled')) {
haw[date].scheduled = [];
}
if (! haw[date].hasOwnProperty('clocked')) {
haw[date].clocked = [];
}
}
}
;
return {
'multiDayViewer': function (obj) {
var i,
tsr = '[ ' + obj.beginDate + ' 00:00, ' + obj.endDate + ' 23:59 )',
date, tr, aid,
rest = {
"method": "GET",
"path": "holiday/" + tsr,
},
sc = function (st) {
if (st.code === 'DOCHAZKA_HOLIDAYS_AND_WEEKENDS_IN_TSRANGE') {
initializeStore(st.payload);
for (i = 0; i < obj.intervals.length; i += 1) {
aid = obj.intervals[i].aid;
[date, tr] = [obj.intervals[i].iNdate, obj.intervals[i].iNtimerange];
haw[date].clocked.push({"iNtimerange": tr, "aid": aid});
}
addScheduledIntervals(obj);
} else {
throw "unexpected holidays status code " + st.code;
}
};
ajax(rest, sc);
return null;
},
};
});
( run in 0.920 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )