From 31a69cebe9539cb060b754d8b666c5347145c5ea Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Sat, 20 Feb 2016 22:22:27 -0500 Subject: [PATCH] Getting started on reminders --- admin/calendar.php | 23 +++++++++++++++++++++++ install/mods-for-hesk/sql/installSql.php | 6 ++++++ internal-api/admin/calendar/index.php | 4 ++++ internal-api/dao/calendar_dao.php | 12 +++++++++++- js/calendar/mods-for-hesk-calendar.js | 16 ++++++++++++---- 5 files changed, 56 insertions(+), 5 deletions(-) diff --git a/admin/calendar.php b/admin/calendar.php index 98b5a1f8..58ed4e22 100644 --- a/admin/calendar.php +++ b/admin/calendar.php @@ -200,6 +200,29 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); +
+
+
+ +
+ +
+
+ +
+
+
+
diff --git a/install/mods-for-hesk/sql/installSql.php b/install/mods-for-hesk/sql/installSql.php index 65db8268..d56ddc0f 100644 --- a/install/mods-for-hesk/sql/installSql.php +++ b/install/mods-for-hesk/sql/installSql.php @@ -729,6 +729,12 @@ function execute260Scripts() `location` VARCHAR(255), `comments` MEDIUMTEXT, `category` INT NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"); + executeQuery("CREATE TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event_reminder` ( + `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + `user_id` INT NOT NULL, + `event_id` INT NOT NULL, + `amount` INT NOT NULL, + `unit` INT NOT NULL) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"); executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` ADD COLUMN `due_date` DATETIME"); executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ADD COLUMN `color` VARCHAR(7)"); executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` SET `Value` = '2.6.0' WHERE `Key` = 'modsForHeskVersion'"); diff --git a/internal-api/admin/calendar/index.php b/internal-api/admin/calendar/index.php index 8e86db77..082a1897 100644 --- a/internal-api/admin/calendar/index.php +++ b/internal-api/admin/calendar/index.php @@ -33,6 +33,10 @@ if ($request_method === 'GET') { $event['all_day'] = hesk_POST('allDay') === 'true'; $event['comments'] = hesk_POST('comments'); $event['category'] = hesk_POST('categoryId'); + $event['reminder_amount'] = hesk_POST('reminderValue'); + $event['reminder_amount'] = $event['reminder_amount'] == '' ? null : $event['reminder_amount']; + $event['reminder_units'] = hesk_POST('reminderUnits'); + $event['reminder_user'] = $_SESSION['id']; $id = create_event($event, $hesk_settings); diff --git a/internal-api/dao/calendar_dao.php b/internal-api/dao/calendar_dao.php index d944bfda..3faccff2 100644 --- a/internal-api/dao/calendar_dao.php +++ b/internal-api/dao/calendar_dao.php @@ -64,7 +64,17 @@ function create_event($event, $hesk_settings) { " . intval($event['category']) . ")"; hesk_dbQuery($sql); - return hesk_dbInsertID(); + $event_id = hesk_dbInsertID(); + + if ($event['reminder_amount'] != null) { + $sql = "INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event_reminder` (`user_id`, `event_id`, + `amount`, `unit`) VALUES (" . intval($event['reminder_user']) . ", " . intval($event_id) . ", " . intval($event['reminder_amount']) . ", + " . intval($event['reminder_units']) . ")"; + + hesk_dbQuery($sql); + } + + return $event_id; } function update_event($event, $hesk_settings) { diff --git a/js/calendar/mods-for-hesk-calendar.js b/js/calendar/mods-for-hesk-calendar.js index b6ecc57a..092d7a0b 100644 --- a/js/calendar/mods-for-hesk-calendar.js +++ b/js/calendar/mods-for-hesk-calendar.js @@ -76,7 +76,9 @@ $(document).ready(function() { allDay: event.allDay, comments: event.comments, categoryId: event.categoryId, - action: 'update' + action: 'update', + reminderValue: event.reminderValue, + reminderUnits: event.reminderUnits }; $.ajax({ method: 'POST', @@ -205,7 +207,9 @@ $(document).ready(function() { action: 'create', type: 'CALENDAR', categoryColor: $('#create-form select[name="category"] :selected').attr('data-color'), - categoryName: $('#create-form select[name="category"] :selected').text().trim() + categoryName: $('#create-form select[name="category"] :selected').text().trim(), + reminderValue: $('#create-form input[name="reminder-value"]').val(), + reminderUnits: $('#create-form select[name="reminder-unit"]').val() }; $.ajax({ @@ -249,7 +253,9 @@ $(document).ready(function() { categoryId: $form.find('select[name="category"]').val(), categoryColor: $form.find('select[name="category"] :selected').attr('data-color'), categoryName: $form.find('select[name="category"] :selected').text().trim(), - action: 'update' + action: 'update', + reminderValue: $form.find('input[name="reminder-value"]').val(), + reminderUnits: $form.find('select[name="reminder-units"]').val() }; $.ajax({ @@ -315,7 +321,9 @@ function buildEvent(id, dbObject) { categoryName: dbObject.categoryName, className: 'category-' + dbObject.categoryId, color: dbObject.categoryColor === '' || dbObject.categoryColor === null ? '#fff' : dbObject.categoryColor, - textColor: calculateTextColor(dbObject.categoryColor) + textColor: calculateTextColor(dbObject.categoryColor), + reminderValue: dbObject.reminderValue == null ? '' : dbObject.reminderValue, + reminderUnits: dbObject.reminderUnits }; }