DHTMLX / scheduler

GPL version of JavaScript Event Scheduler
https://dhtmlx.com/docs/products/dhtmlxScheduler/
GNU General Public License v2.0
311 stars 110 forks source link

createDataProcessor #62

Open WojakGra opened 2 years ago

WojakGra commented 2 years ago
scheduler.createDataProcessor({
        event: {
            create: function (data) {
                console.log(data);
                return new scheduler.Promise(function (resolve, reject) {
                    $.post(
                        "api.php",
                        { action: "test", data: data },
                        function (result) {
                            return resolve({
                                action: result.action,
                                tid: result.tid,
                                data: result.task,
                            });
                        },
                        "json"
                    );
                });
            },
            update: function (data, id) {
                console.log(data);
                console.log(id);
                return new scheduler.Promise(function (resolve, reject) {
                    $.post(
                        "api.php",
                        { action: "test", data: data },
                        function (result) {
                            return resolve({ action: result.action });
                        },
                        "json"
                    );
                });
            },
            delete: function (id) {
                console.log(id);
                return new scheduler.Promise(function (resolve, reject) {
                    $.post(
                        "api.php",
                        { action: "test", data: id },
                        function (result) {
                            return resolve({ action: result.action });
                        },
                        "json"
                    );
                });
            },
        },
        mode: "JSON",
    });

Upper code not working as intentended because is shows a console error

ajax.js:219          POST http://localhost/calendar/undefined 404 (Not Found)
AlexKlimenkov commented 2 years ago

Hi @WojakGra ,

I've confirmed the issue, we'll fix it in the upcoming bugfix update.

Meanwhile, please try initializing the dataprocessor with a function, like this:

scheduler.createDataProcessor(function(entity, action, data){
    switch(action) {
        case "create":
            console.log(data);
            return new scheduler.Promise(function (resolve, reject) {
                $.post(
                    "api.php",
                    { action: "test", data: data },
                    function (result) {
                        return resolve({
                            action: result.action,
                            tid: result.tid,
                            data: result.task,
                        });
                    },
                    "json"
                );
            });
        break;
        case "update":
            console.log(data);
            console.log(id);
            return new scheduler.Promise(function (resolve, reject) {
                $.post(
                    "api.php",
                    { action: "test", data: data },
                    function (result) {
                        return resolve({ action: result.action });
                    },
                    "json"
                );
            });
        break;
        case "delete":
            console.log(id);
            return new scheduler.Promise(function (resolve, reject) {
                $.post(
                    "api.php",
                    { action: "test", data: id },
                    function (result) {
                        return resolve({ action: result.action });
                    },
                    "json"
                );
            });
        break;
    }
});

Then it should work correctly.