From 028be8d187a4085bff65bbc3a37b9b435aa73644 Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Thu, 1 Jun 2017 12:26:54 -0400 Subject: [PATCH] Calendar pages properly use new category colors --- internal-api/dao/calendar_dao.php | 14 +++++++--- .../mods-for-hesk-calendar-admin-readonly.js | 22 +++++++++++----- .../mods-for-hesk-calendar-readonly.js | 17 +++++++++--- js/calendar/mods-for-hesk-calendar.js | 26 +++++++++++++------ 4 files changed, 57 insertions(+), 22 deletions(-) diff --git a/internal-api/dao/calendar_dao.php b/internal-api/dao/calendar_dao.php index a43bf67b..9c87e458 100644 --- a/internal-api/dao/calendar_dao.php +++ b/internal-api/dao/calendar_dao.php @@ -6,7 +6,8 @@ function get_events($start, $end, $hesk_settings, $staff = true) { $start_time_sql = "CONVERT_TZ(FROM_UNIXTIME(" . hesk_dbEscape($start) . " / 1000), @@session.time_zone, '+00:00')"; $end_time_sql = "CONVERT_TZ(FROM_UNIXTIME(" . hesk_dbEscape($end) . " / 1000), @@session.time_zone, '+00:00')"; - $sql = "SELECT `events`.*, `categories`.`name` AS `category_name`, `categories`.`background_color` AS `category_color` "; + $sql = "SELECT `events`.*, `categories`.`name` AS `category_name`, `categories`.`background_color` AS `background_color`, + `categories`.`foreground_color` AS `foreground_color`, `categories`.`display_border_outline` AS `display_border` "; if ($staff) { $sql .= ",`reminders`.`amount` AS `reminder_value`, `reminders`.`unit` AS `reminder_unit` "; @@ -47,7 +48,9 @@ function get_events($start, $end, $hesk_settings, $staff = true) { $event['comments'] = $row['comments']; $event['categoryId'] = $row['category']; $event['categoryName'] = $row['category_name']; - $event['categoryColor'] = $row['category_color']; + $event['backgroundColor'] = $row['background_color']; + $event['foregroundColor'] = $row['foreground_color']; + $event['displayBorder'] = $row['display_border']; if ($staff) { $event['reminderValue'] = $row['reminder_value']; @@ -63,7 +66,8 @@ function get_events($start, $end, $hesk_settings, $staff = true) { $current_date = hesk_date(); $hesk_settings['timeformat'] = $old_time_setting; - $sql = "SELECT `trackid`, `subject`, `due_date`, `category`, `categories`.`name` AS `category_name`, `categories`.`background_color` AS `category_color`, + $sql = "SELECT `trackid`, `subject`, `due_date`, `category`, `categories`.`name` AS `category_name`, `categories`.`background_color` AS `background_color`, + `categories`.`foreground_color` AS `foreground_color`, `categories`.`display_border_outline` AS `display_border`, CASE WHEN `due_date` < '{$current_date}' THEN 1 ELSE 0 END AS `overdue`, `owner`.`name` AS `owner_name`, `tickets`.`owner` AS `owner_id`, `tickets`.`priority` AS `priority` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` AS `tickets` @@ -94,7 +98,9 @@ function get_events($start, $end, $hesk_settings, $staff = true) { $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['category_color']; + $event['backgroundColor'] = $row['background_color']; + $event['foregroundColor'] = $row['foreground_color']; + $event['displayBorder'] = $row['display_border']; $event['owner'] = $row['owner_name']; $priorities = array( diff --git a/js/calendar/mods-for-hesk-calendar-admin-readonly.js b/js/calendar/mods-for-hesk-calendar-admin-readonly.js index c06ba37d..c3d086c8 100644 --- a/js/calendar/mods-for-hesk-calendar-admin-readonly.js +++ b/js/calendar/mods-for-hesk-calendar-admin-readonly.js @@ -89,9 +89,17 @@ $(document).ready(function() { .tip() .css('padding', '0') .find('.popover-title') - .css('background-color', event.color === '#fff' ? '#f7f7f7' : event.color) + .css('background-color', event.backgroundColor) .addClass('background-volatile'); + if (event.textColor === 'AUTO') { + $eventMarkup.addClass('background-volatile'); + } else { + $eventMarkup.data('bs.popover').tip().find('.popover-title') + .css('color', event.textColor) + .css('border', 'solid 1px ' + event.borderColor); + } + $eventMarkup.popover('show'); refreshBackgroundVolatileItems(); }, @@ -120,7 +128,9 @@ function buildEvent(id, dbObject) { trackingId: dbObject.trackingId, start: moment(dbObject.startTime), url: dbObject.url, - color: dbObject.categoryColor === '' || dbObject.categoryColor === null ? '#fff' : dbObject.categoryColor, + backgroundColor: dbObject.backgroundColor, + textColor: dbObject.foregroundColor === 'AUTO' ? calculateTextColor(dbObject.backgroundColor) : dbObject.foregroundColor, + borderColor: parseInt(dbObject.displayBorder) === 1 ? dbObject.foregroundColor : dbObject.backgroundColor, allDay: true, type: dbObject.type, categoryId: dbObject.categoryId, @@ -128,7 +138,6 @@ function buildEvent(id, dbObject) { className: 'category-' + dbObject.categoryId, owner: dbObject.owner, priority: dbObject.priority, - textColor: calculateTextColor(dbObject.categoryColor), fontIconMarkup: getIcon(dbObject) }; } @@ -151,8 +160,9 @@ function buildEvent(id, dbObject) { categoryId: dbObject.categoryId, categoryName: dbObject.categoryName, className: 'category-' + dbObject.categoryId, - color: dbObject.categoryColor === '' || dbObject.categoryColor === null ? '#fff' : dbObject.categoryColor, - textColor: calculateTextColor(dbObject.categoryColor), + backgroundColor: dbObject.backgroundColor, + textColor: dbObject.foregroundColor === 'AUTO' ? calculateTextColor(dbObject.backgroundColor) : dbObject.foregroundColor, + borderColor: parseInt(dbObject.displayBorder) === 1 ? dbObject.foregroundColor : dbObject.backgroundColor, reminderValue: dbObject.reminderValue == null ? '' : dbObject.reminderValue, reminderUnits: dbObject.reminderUnits, fontIconMarkup: '' @@ -170,7 +180,7 @@ function getIcon(dbObject) { } function calculateTextColor(color) { - if (color === null || color === '') { + if (color === null || color === '' || color === undefined) { return 'black'; } diff --git a/js/calendar/mods-for-hesk-calendar-readonly.js b/js/calendar/mods-for-hesk-calendar-readonly.js index 16be40a1..ebddd6cd 100644 --- a/js/calendar/mods-for-hesk-calendar-readonly.js +++ b/js/calendar/mods-for-hesk-calendar-readonly.js @@ -78,9 +78,17 @@ $(document).ready(function() { .tip() .css('padding', '0') .find('.popover-title') - .css('background-color', event.color === '#fff' ? '#f7f7f7' : event.color) + .css('background-color', event.backgroundColor) .addClass('background-volatile'); + if (event.textColor === 'AUTO') { + $eventMarkup.addClass('background-volatile'); + } else { + $eventMarkup.data('bs.popover').tip().find('.popover-title') + .css('color', event.textColor) + .css('border', 'solid 1px ' + event.borderColor); + } + $eventMarkup.popover('show'); refreshBackgroundVolatileItems(); }, @@ -116,15 +124,16 @@ function buildEvent(id, dbObject) { categoryId: dbObject.categoryId, categoryName: dbObject.categoryName, className: 'category-' + dbObject.categoryId, - color: dbObject.categoryColor === '' || dbObject.categoryColor === null ? '#fff' : dbObject.categoryColor, - textColor: calculateTextColor(dbObject.categoryColor), + backgroundColor: dbObject.backgroundColor, + textColor: dbObject.foregroundColor === 'AUTO' ? calculateTextColor(dbObject.backgroundColor) : dbObject.foregroundColor, + borderColor: parseInt(dbObject.displayBorder) === 1 ? dbObject.foregroundColor : dbObject.backgroundColor, reminderValue: dbObject.reminderValue == null ? '' : dbObject.reminderValue, reminderUnits: dbObject.reminderUnits }; } function calculateTextColor(color) { - if (color === null || color === '') { + if (color === null || color === '' || color === undefined) { return 'black'; } diff --git a/js/calendar/mods-for-hesk-calendar.js b/js/calendar/mods-for-hesk-calendar.js index 46bca008..de39d1a0 100644 --- a/js/calendar/mods-for-hesk-calendar.js +++ b/js/calendar/mods-for-hesk-calendar.js @@ -102,8 +102,16 @@ $(document).ready(function() { .tip() .css('padding', '0') .find('.popover-title') - .css('background-color', event.color === '#fff' ? '#f7f7f7' : event.color) - .addClass('background-volatile'); + .css('background-color', event.backgroundColor); + + if (event.textColor === 'AUTO') { + $eventMarkup.addClass('background-volatile'); + } else { + $eventMarkup.data('bs.popover').tip().find('.popover-title') + .css('color', event.textColor) + .css('border', 'solid 1px ' + event.borderColor); + } + $eventMarkup.popover('show'); refreshBackgroundVolatileItems(); @@ -282,7 +290,9 @@ function buildEvent(id, dbObject) { trackingId: dbObject.trackingId, start: moment(dbObject.startTime), url: dbObject.url, - color: dbObject.categoryColor === '' || dbObject.categoryColor === null ? '#fff' : dbObject.categoryColor, + backgroundColor: dbObject.backgroundColor, + textColor: dbObject.foregroundColor === 'AUTO' ? calculateTextColor(dbObject.backgroundColor) : dbObject.foregroundColor, + borderColor: parseInt(dbObject.displayBorder) === 1 ? dbObject.foregroundColor : dbObject.backgroundColor, allDay: true, type: dbObject.type, categoryId: dbObject.categoryId, @@ -290,7 +300,6 @@ function buildEvent(id, dbObject) { className: 'category-' + dbObject.categoryId, owner: dbObject.owner, priority: dbObject.priority, - textColor: calculateTextColor(dbObject.categoryColor), fontIconMarkup: getIcon(dbObject) }; } @@ -299,7 +308,7 @@ function buildEvent(id, dbObject) { if (dbObject.allDay) { endTime.add(1, 'days'); } - + console.log(dbObject); return { id: id, title: dbObject.title, @@ -313,8 +322,9 @@ function buildEvent(id, dbObject) { categoryId: dbObject.categoryId, categoryName: dbObject.categoryName, className: 'category-' + dbObject.categoryId, - color: dbObject.categoryColor === '' || dbObject.categoryColor === null ? '#fff' : dbObject.categoryColor, - textColor: calculateTextColor(dbObject.categoryColor), + backgroundColor: dbObject.backgroundColor, + textColor: dbObject.foregroundColor === 'AUTO' ? calculateTextColor(dbObject.backgroundColor) : dbObject.foregroundColor, + borderColor: parseInt(dbObject.displayBorder) === 1 ? dbObject.foregroundColor : dbObject.backgroundColor, reminderValue: dbObject.reminderValue == null ? '' : dbObject.reminderValue, reminderUnits: dbObject.reminderUnits, fontIconMarkup: '' @@ -332,7 +342,7 @@ function getIcon(dbObject) { } function calculateTextColor(color) { - if (color === null || color === '') { + if (color === null || color === '' || color === undefined) { return 'black'; }