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 )