From e7107996ebfbab41cad4a5c1b996b1d8f09c7225 Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Wed, 9 Mar 2016 21:59:24 -0500 Subject: [PATCH] #189 Display public events on the calendar --- calendar.php | 20 ++++++++ internal-api/calendar/index.php | 28 +++++++++++ internal-api/dao/calendar_dao.php | 50 +++++++++++-------- .../mods-for-hesk-customer-calendar.js | 4 +- 4 files changed, 79 insertions(+), 23 deletions(-) create mode 100644 internal-api/calendar/index.php diff --git a/calendar.php b/calendar.php index 21cf43c3..70e93397 100644 --- a/calendar.php +++ b/calendar.php @@ -94,4 +94,24 @@ require_once(HESK_PATH . 'inc/header.inc.php'); + + \ No newline at end of file diff --git a/internal-api/calendar/index.php b/internal-api/calendar/index.php new file mode 100644 index 00000000..053d2f69 --- /dev/null +++ b/internal-api/calendar/index.php @@ -0,0 +1,28 @@ += FROM_UNIXTIME(" . hesk_dbEscape($start) - . " / 1000) AND `end` <= FROM_UNIXTIME(" . hesk_dbEscape($end) . " / 1000)"; + . " / 1000) AND `end` <= FROM_UNIXTIME(" . hesk_dbEscape($end) . " / 1000) AND `categories`.`usage` <> 1"; + + if (!$staff) { + $sql .= " AND `categories`.`type` = '0'"; + } $rs = hesk_dbQuery($sql); @@ -26,26 +30,28 @@ function get_events($start, $end, $hesk_settings) { $events[] = $event; } - $sql = "SELECT `trackid`, `subject`, `due_date`, `category`, `categories`.`name` AS `category_name`, `categories`.`color` AS `category_color`, - CASE WHEN `due_date` < CURDATE() THEN 1 ELSE 0 END AS `overdue` - FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` AS `tickets` - INNER JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` AS `categories` - ON `categories`.`id` = `tickets`.`category` - WHERE `due_date` >= FROM_UNIXTIME(" . intval($start) . " / 1000) - AND `due_date` <= FROM_UNIXTIME(" . intval($end) . " / 1000) - AND `status` IN (SELECT `id` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses` WHERE `IsClosed` = 0) "; - - $rs = hesk_dbQuery($sql); - while ($row = hesk_dbFetchAssoc($rs)) { - $event['type'] = 'TICKET'; - $event['trackingId'] = $row['trackid']; - $event['title'] = '[' . $row['trackid'] . '] ' . $row['subject']; - $event['startTime'] = $row['due_date']; - $event['url'] = $hesk_settings['hesk_url'] . '/' . $hesk_settings['admin_dir'] . '/admin_ticket.php?track=' . $event['trackingId']; - $event['categoryId'] = $row['category']; - $event['categoryName'] = $row['category_name']; - $event['categoryColor'] = $row['overdue'] ? '#dd0000' : $row['category_color']; - $events[] = $event; + if ($staff) { + $sql = "SELECT `trackid`, `subject`, `due_date`, `category`, `categories`.`name` AS `category_name`, `categories`.`color` AS `category_color`, + CASE WHEN `due_date` < CURDATE() THEN 1 ELSE 0 END AS `overdue` + FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` AS `tickets` + INNER JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` AS `categories` + ON `categories`.`id` = `tickets`.`category` + WHERE `due_date` >= FROM_UNIXTIME(" . intval($start) . " / 1000) + AND `due_date` <= FROM_UNIXTIME(" . intval($end) . " / 1000) + AND `status` IN (SELECT `id` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "statuses` WHERE `IsClosed` = 0) "; + + $rs = hesk_dbQuery($sql); + while ($row = hesk_dbFetchAssoc($rs)) { + $event['type'] = 'TICKET'; + $event['trackingId'] = $row['trackid']; + $event['title'] = '[' . $row['trackid'] . '] ' . $row['subject']; + $event['startTime'] = $row['due_date']; + $event['url'] = $hesk_settings['hesk_url'] . '/' . $hesk_settings['admin_dir'] . '/admin_ticket.php?track=' . $event['trackingId']; + $event['categoryId'] = $row['category']; + $event['categoryName'] = $row['category_name']; + $event['categoryColor'] = $row['overdue'] ? '#dd0000' : $row['category_color']; + $events[] = $event; + } } return $events; diff --git a/js/calendar/mods-for-hesk-customer-calendar.js b/js/calendar/mods-for-hesk-customer-calendar.js index 961aca6d..d136bda7 100644 --- a/js/calendar/mods-for-hesk-customer-calendar.js +++ b/js/calendar/mods-for-hesk-customer-calendar.js @@ -147,7 +147,7 @@ function buildEvent(id, dbObject) { }; } - return { + var data = { id: id, title: dbObject.title, allDay: dbObject.allDay, @@ -164,6 +164,8 @@ function buildEvent(id, dbObject) { reminderValue: dbObject.reminderValue == null ? '' : dbObject.reminderValue, reminderUnits: dbObject.reminderUnits }; + console.log(data); + return data; } function calculateTextColor(color) {