From ff5d4a615378c6a4f3d90a1c284d7f8b27c35acb Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Tue, 26 Jan 2016 13:13:08 -0500 Subject: [PATCH] CRUD Operations are complete --- admin/calendar.php | 8 ++------ internal-api/admin/calendar/index.php | 17 +++++++++++++++-- internal-api/dao/calendar_dao.php | 18 ++++++++++++++++++ js/calendar/mods-for-hesk-calendar.js | 22 +++++++++++----------- 4 files changed, 46 insertions(+), 19 deletions(-) diff --git a/admin/calendar.php b/admin/calendar.php index 41c55139..a49b6c48 100644 --- a/admin/calendar.php +++ b/admin/calendar.php @@ -100,9 +100,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); title="The location of the event">
- +
@@ -286,9 +284,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); title="The location of the event">
- +
diff --git a/internal-api/admin/calendar/index.php b/internal-api/admin/calendar/index.php index 4081a65e..88f7cd05 100644 --- a/internal-api/admin/calendar/index.php +++ b/internal-api/admin/calendar/index.php @@ -30,7 +30,7 @@ if ($request_method === 'GET') { $event['location'] = hesk_POST('location'); $event['start'] = hesk_POST('startTime'); $event['end'] = hesk_POST('endTime'); - $event['all_day'] = hesk_POST('allDay') === "true" ? true : false; + $event['all_day'] = hesk_POST('allDay') === 'true'; $event['comments'] = hesk_POST('comments'); $event['create_ticket_date'] = hesk_POST('createTicketDate'); $event['assign_to'] = hesk_POST('assignTo'); @@ -39,7 +39,20 @@ if ($request_method === 'GET') { return output($id); } elseif ($action === 'update') { - //TODO + if (!isset($_POST['id'])) { + mfh_log_error('internal-api/admin/calendar', 'Unable to update an event as it has no ID.', $_SESSION['id']); + return http_response_code(400); + } + $event['id'] = hesk_POST('id'); + $event['title'] = hesk_POST('title'); + $event['start'] = hesk_POST('startTime'); + $event['end'] = hesk_POST('endTime'); + $event['all_day'] = hesk_POST('allDay') === 'true'; + $event['comments'] = hesk_POST('comments'); + $event['create_ticket_date'] = hesk_POST('createTicketDate'); + $event['assign_to'] = hesk_POST('assignTo'); + + update_event($event, $hesk_settings); return http_response_code(200); } elseif ($action === 'delete') { diff --git a/internal-api/dao/calendar_dao.php b/internal-api/dao/calendar_dao.php index 9acb5ee8..6cc25030 100644 --- a/internal-api/dao/calendar_dao.php +++ b/internal-api/dao/calendar_dao.php @@ -44,6 +44,24 @@ function create_event($event, $hesk_settings) { return hesk_dbInsertID(); } +function update_event($event, $hesk_settings) { + $event['start'] = date('Y-m-d H:i:s', strtotime($event['start'])); + $event['end'] = date('Y-m-d H:i:s', strtotime($event['end'])); + if ($event['create_ticket_date'] != null) { + $event['create_ticket_date'] = date('Y-m-d H:i:s', strtotime($event['create_ticket_date'])); + } + $event['all_day'] = $event['all_day'] ? 1 : 0; + $event['assign_to'] = $event['assign_to'] != null ? intval($event['assign_to']) : 'NULL'; + + $sql = "UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` SET `start` = '" . hesk_dbEscape($event['start']) + . "', `end` = '" . hesk_dbEscape($event['end']) . "', `all_day` = '" . hesk_dbEscape($event['all_day']) . "', `name` = '" + . hesk_dbEscape($event['title']) . "', `location` = '" . hesk_dbEscape($event['location']) . "', `comments` = '" + . hesk_dbEscape($event['comments']) . "', `create_ticket_date` = '" . hesk_dbEscape($event['create_ticket_date']) + . "', `create_ticket_assign_to` = " . $event['assign_to'] . " WHERE `id` = " . intval($event['id']); + + hesk_dbQuery($sql); +} + function delete_event($id, $hesk_settings) { $sql = "DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` WHERE `id` = " . intval($id); diff --git a/js/calendar/mods-for-hesk-calendar.js b/js/calendar/mods-for-hesk-calendar.js index 064360b3..93835187 100644 --- a/js/calendar/mods-for-hesk-calendar.js +++ b/js/calendar/mods-for-hesk-calendar.js @@ -21,8 +21,8 @@ $(document).ready(function() { }); callback(events); }, - error: function(data) { - console.error(data); + error: function() { + $.jGrowl('An error occurred when trying to load events', { theme: 'alert-danger', closeTemplate: '' }); } }); }, @@ -66,8 +66,8 @@ $(document).ready(function() { success: function() { $.jGrowl('Event successfully updated', { theme: 'alert-success', closeTemplate: '' }); }, - error: function(data) { - console.error(data); + error: function() { + $.jGrowl('An error occurred when trying to update the event', { theme: 'alert-danger', closeTemplate: '' }); revertFunc(); } }); @@ -104,7 +104,7 @@ $(document).ready(function() { $('#edit-event-modal').modal('hide'); }, error: function(data) { - console.error(data); + $.jGrowl('An error occurred when trying to delete the event', { theme: 'alert-danger', closeTemplate: '' }); } }); }); @@ -154,7 +154,7 @@ $(document).ready(function() { $('#create-event-modal').modal('hide'); }, error: function(data) { - console.error(data); + $.jGrowl('An error occurred when trying to create the event', { theme: 'alert-danger', closeTemplate: '' }); } }); }); @@ -207,7 +207,7 @@ $(document).ready(function() { $('#edit-event-modal').modal('hide'); }, error: function(data) { - console.error(data); + $.jGrowl('An error occurred when trying to update the event', { theme: 'alert-danger', closeTemplate: '' }); } }); }); @@ -259,10 +259,10 @@ function displayCreateModal(date, viewName) { } else { $form.find('input[name="all-day"]').prop('checked', false).end() .find('.clockpicker').show(); - var formattedTime = date.format('H:mm:ss'); + var formattedTime = date.format('HH:mm:ss'); var selectedHour = date.hour(); $modal.find('input[name="start-time"]').val(formattedTime).end() - .find('input[name="end-time"]').val(date.hour(selectedHour + 1).format('H:mm:ss')); + .find('input[name="end-time"]').val(date.hour(selectedHour + 1).format('HH:mm:ss')); } $modal.modal('show'); @@ -283,8 +283,8 @@ function displayEditModal(date) { } else { $form.find('input[name="all-day"]').prop('checked', false).end() .find('.clockpicker').show().end() - .find('input[name="start-time"]').val(date.start.format('H:mm:ss')).end() - .find('input[name="end-time"]').val(date.end.format('H:mm:ss')).end(); + .find('input[name="start-time"]').val(date.start.format('HH:mm:ss')).end() + .find('input[name="end-time"]').val(date.end.format('HH:mm:ss')).end(); } if (date.createTicketDate != null) {