App-Dochazka-WWW
view release on metacpan or search on metacpan
share/js/dochazka-www/sched-lib.js view on Meta::CPAN
prepSchedIntvl = function (dow, uint) {
// given schedule interval entered by user (e.g. "8-12:30"),
// convert it into a string suitable for passing to the
// 'schedule/new' REST API resource
var dow_map = {
'mon': '2015-03-23',
'tue': '2015-03-24',
'wed': '2015-03-25',
'thu': '2015-03-26',
'fri': '2015-03-27',
'sat': '2015-03-28',
'sun': '2015-03-29',
},
tsr = uint.split('-');
return "[" + dow_map[dow.toLowerCase()] + " " + tsr[0] +
", " + dow_map[dow.toLowerCase()] + " " + tsr[1] + ")";
},
schedGen = function (mode, schedObj) {
var rest = {
"path": 'schedule/sid/' + schedObj.sid,
"body": schedObj
},
dispMsg,
sc = function (st) {
if (mode === "edit") {
dispMsg = "Edited schedule saved";
if (stack.grep('schedLookup')) {
stack.unwindToTarget('actionSchedLookup', {
"searchKeySchedID": schedObj.sid
});
} else if (stack.grep('simpleScheduleBrowser')) {
var obj = coreLib.dbrowserState.set[coreLib.dbrowserState.pos];
$.extend(coreLib.dbrowserState.obj, schedObj);
$.extend(obj, schedObj);
stack.unwindToTarget('simpleScheduleBrowser');
} else if (stack.grep('schedDisplay')) {
stack.unwindToTarget('schedDisplay', schedObj);
} else {
dispMsg = "Don't know what to do here";
}
} else if (mode === "delete") {
dispMsg = "Schedule deleted";
if (browsing) {
var set = coreLib.dbrowserState.set,
pos = coreLib.dbrowserState.pos,
len = set.length;
set.splice(pos, 1);
if (pos > 0) {
coreLib.dbrowserState.pos -= 1;
}
}
stack.unwindToFlag();
}
coreLib.displayResult(dispMsg);
},
fc = function (st) {
coreLib.displayError(st.payload.message);
};
if (mode === 'edit') {
rest.method = 'PUT';
} else if (mode === 'delete') {
rest.method = 'DELETE';
}
ajax(rest, sc, fc);
};
// here is where we define methods implementing the various
// schedule-related actions (see daction-start.js)
return {
actionDisplaySchedule: actionDisplaySchedule,
actionSchedLookup: actionSchedLookup,
browseAllSchedules: browseAllSchedules,
createSchedule: createSchedule,
prepSchedIntvl: prepSchedIntvl,
schedEditSave: function (obj) {
schedGen('edit', obj);
},
schedReallyDelete: function (obj) {
schedGen('delete', obj);
},
};
});
( run in 1.516 second using v1.01-cache-2.11-cpan-5b529ec07f3 )