scheduler icon indicating copy to clipboard operation
scheduler copied to clipboard

createDataProcessor

Open WojakGra opened this issue 3 years ago • 1 comments

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)

WojakGra avatar Jun 05 '22 22:06 WojakGra

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.

AlexKlimenkov avatar Jun 23 '22 15:06 AlexKlimenkov