App-Dochazka-WWW
view release on metacpan or search on metacpan
share/js/dochazka-www/int-lib.js view on Meta::CPAN
return null;
}
for (i = 0; i < dl.length; i += 1) {
dl[i] = year + '-' + dt.monthToInt(month) + '-' + dl[i];
}
console.log("Date list", dl);
rest = {
"method": "POST",
"path": "interval/fillup",
"body": {
'date_list': dl,
'dry_run': '0',
'eid': String(cu.eid),
'aid': obj.acTaid,
},
};
sc = function (st) {
if (st.code === "DISPATCH_FILLUP_INTERVALS_CREATED") {
coreLib.displayResult(
st.payload.success.intervals.length + " intervals created; " +
st.payload.failure.intervals.length + " intervals failed"
);
} else if (st.code === "DISPATCH_FILLUP_NO_INTERVALS_CREATED") {
coreLib.displayResult("The dates in question already have 100% schedule fulfillment");
} else {
coreLib.displayError(st.text);
}
};
ajax(rest, sc);
},
createSingleIntMenuItem = function (obj) {
stack.push('createSingleInt');
},
createSingleIntSave = function (obj) {
var caller = stack.getTarget().name,
cu = currentUser('obj'),
rest,
sc = function (st) {
if (caller === 'createSingleIntFixedDay') {
stack.unwindToTarget('viewIntervalsAction');
} else {
stack.unwindToTarget(
'createSingleInt',
emptyObj,
{
"resultLine": "Interval " + st.payload.iid + " created",
"inputId": "iNdate",
}
);
}
};
console.log("Entering createSingleIntSave() from caller " + caller + " with obj", obj);
if (caller === 'createSingleInt' || caller === 'createSingleIntFixedDay') {
// obj already populated
} else if (caller === 'createLastPlusOffset' || caller === 'createNextScheduled') {
// Scrape time range from form
// (The "createLastPlusOffset" dform has no inputs (writable
// entries); instead, it has spans (read-only entries) that are
// populated asynchronously and obj does not contain any of
// the new values. In this case, the time range is residing
// in one of the spans.)
// Scrape time range from form
obj.iNdate = $('input[id="iNdate"]').val();
obj.iNtimerange = $('input[id="iNtimerange"]').val();
obj.code = $('input[id="iNact"]').val();
obj.long_desc = $('input[id="iNdesc"]').val();
} else {
console.log("CRITICAL ERROR: unexpected caller", caller);
return null;
}
if (obj.iNtimerange === '+') {
stack.push('createNextScheduled', obj);
return null;
}
if (obj.iNtimerange.match(/\+/)) {
obj.iNoffset = obj.iNtimerange;
stack.push('createLastPlusOffset', obj);
return null;
}
if (! createIntervalCheckMandatoryProps(obj)) {
return null;
}
obj["intvl"] = genIntvl(obj.iNdate, obj.iNtimerange);
if (! obj.intvl) {
return null;
}
rest = {
"method": 'POST',
"path": 'interval/new',
"body": {
"eid": cu.eid,
"aid": obj.aid,
"intvl": obj.intvl,
"long_desc": obj.long_desc,
"remark": null,
},
}
ajax(rest, sc);
},
deleteSingleInt = function (obj) {
var rest = {
"method": "DELETE",
"path": "interval/iid/" + obj.iid,
},
sc = function (st) {
if (st.code === 'DOCHAZKA_CUD_OK') {
stack.unwindToTarget('viewIntervalsAction');
} else {
coreLib.displayError(st.text);
}
};
console.log("Entering deleteSingleInt() with obj", obj);
ajax(rest, sc);
},
emptyObj = {
"iNdate": "",
"iNtimerange": "",
( run in 1.027 second using v1.01-cache-2.11-cpan-9581c071862 )