diff --git a/internal-api/admin/calendar/index.php b/internal-api/admin/calendar/index.php index 88f7cd05..06f84813 100644 --- a/internal-api/admin/calendar/index.php +++ b/internal-api/admin/calendar/index.php @@ -59,6 +59,13 @@ if ($request_method === 'GET') { $id = hesk_POST('id'); delete_event($id, $hesk_settings); + return http_response_code(200); + } elseif ($action === 'update-ticket') { + $ticket['due_date'] = hesk_POST('dueDate'); + $ticket['trackid'] = hesk_POST('trackingId'); + + update_ticket_due_date($ticket, $hesk_settings); + return http_response_code(200); } } diff --git a/internal-api/dao/calendar_dao.php b/internal-api/dao/calendar_dao.php index 12f063a3..bf7568e0 100644 --- a/internal-api/dao/calendar_dao.php +++ b/internal-api/dao/calendar_dao.php @@ -83,3 +83,11 @@ function delete_event($id, $hesk_settings) { hesk_dbQuery($sql); } + +function update_ticket_due_date($ticket, $hesk_settings) { + $due_date = date('Y-m-d H:i:s', strtotime($ticket['due_date'])); + $sql = "UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` SET `due_date` = '" . $due_date . "' + WHERE `trackid` = '" . hesk_dbEscape($ticket['trackid']) . "'"; + + hesk_dbQuery($sql); +} \ No newline at end of file diff --git a/js/calendar/mods-for-hesk-calendar.js b/js/calendar/mods-for-hesk-calendar.js index cf4b6012..a1bdc6be 100644 --- a/js/calendar/mods-for-hesk-calendar.js +++ b/js/calendar/mods-for-hesk-calendar.js @@ -40,44 +40,62 @@ $(document).ready(function() { } }, eventDrop: function(event, delta, revertFunc) { - var start = event.start.format('YYYY-MM-DD'); - if (event.end === null) { - event.end = event.start.clone(); - } - var end = event.end.format('YYYY-MM-DD'); - if (!event.allDay) { - start += ' ' + event.start.format('HH:mm:ss'); - end += ' ' + event.end.format('HH:mm:ss'); - } - var createTicketDate = event.createTicketDate; - if (createTicketDate != null) { - createTicketDate = createTicketDate.format('YYYY-MM-DD'); - } - var data = { - id: event.id, - title: event.title, - location: event.location, - startTime: start, - endTime: end, - allDay: event.allDay, - comments: event.comments, - createTicketDate: createTicketDate, - assignTo: event.assignTo, - action: 'update' - }; - console.log(data); - $.ajax({ - method: 'POST', - url: getHelpdeskUrl() + '/internal-api/admin/calendar', - data: data, - success: function() { - $.jGrowl('Event successfully updated', { theme: 'alert-success', closeTemplate: '' }); - }, - error: function() { - $.jGrowl('An error occurred when trying to update the event', { theme: 'alert-danger', closeTemplate: '' }); - revertFunc(); + if (event.type === 'TICKET') { + $.ajax({ + method: 'POST', + url: getHelpdeskUrl() + '/internal-api/admin/calendar', + data: { + trackingId: event.trackingId, + action: 'update-ticket', + dueDate: event.start.format('YYYY-MM-DD') + }, + success: function() { + $.jGrowl('Ticket due date successfully updated', { theme: 'alert-success', closeTemplate: '' }); + }, + error: function() { + $.jGrowl('An error occurred when trying to update the ticket due date', { theme: 'alert-danger', closeTemplate: '' }); + revertFunc(); + } + }); + } else { + var start = event.start.format('YYYY-MM-DD'); + if (event.end === null) { + event.end = event.start.clone(); } - }); + var end = event.end.format('YYYY-MM-DD'); + if (!event.allDay) { + start += ' ' + event.start.format('HH:mm:ss'); + end += ' ' + event.end.format('HH:mm:ss'); + } + var createTicketDate = event.createTicketDate; + if (createTicketDate != null) { + createTicketDate = createTicketDate.format('YYYY-MM-DD'); + } + var data = { + id: event.id, + title: event.title, + location: event.location, + startTime: start, + endTime: end, + allDay: event.allDay, + comments: event.comments, + createTicketDate: createTicketDate, + assignTo: event.assignTo, + action: 'update' + }; + $.ajax({ + method: 'POST', + url: getHelpdeskUrl() + '/internal-api/admin/calendar', + data: data, + success: function() { + $.jGrowl('Event successfully updated', { theme: 'alert-success', closeTemplate: '' }); + }, + error: function() { + $.jGrowl('An error occurred when trying to update the event', { theme: 'alert-danger', closeTemplate: '' }); + revertFunc(); + } + }); + } } });