diff --git a/admin/calendar.php b/admin/calendar.php
index d96269cb..4bec0989 100644
--- a/admin/calendar.php
+++ b/admin/calendar.php
@@ -50,7 +50,7 @@ hesk_isLoggedIn();
define('MFH_CALENDAR', 1);
// Get categories for the dropdown
-$rs = hesk_dbQuery("SELECT `id`, `name` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ORDER BY `cat_order`");
+$rs = hesk_dbQuery("SELECT `id`, `name`, `color` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ORDER BY `cat_order`");
$categories = [];
while ($row = hesk_dbFetchAssoc($rs)) {
$categories[] = $row;
@@ -127,7 +127,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
echo '';
}
foreach ($categories as $category): ?>
-
@@ -264,7 +264,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
echo '';
}
foreach ($categories as $category): ?>
-
diff --git a/internal-api/dao/calendar_dao.php b/internal-api/dao/calendar_dao.php
index 83c2a780..30218987 100644
--- a/internal-api/dao/calendar_dao.php
+++ b/internal-api/dao/calendar_dao.php
@@ -1,7 +1,8 @@
= FROM_UNIXTIME(" . hesk_dbEscape($start)
@@ -21,6 +22,7 @@ function get_events($start, $end, $hesk_settings) {
$event['comments'] = $row['comments'];
$event['categoryId'] = $row['category'];
$event['categoryName'] = $row['category_name'];
+ $event['categoryColor'] = $row['category_color'];
$events[] = $event;
}
@@ -41,6 +43,7 @@ function get_events($start, $end, $hesk_settings) {
$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'] = 'green';
$events[] = $event;
}
diff --git a/js/calendar/mods-for-hesk-calendar.js b/js/calendar/mods-for-hesk-calendar.js
index 47978f0b..ee643529 100644
--- a/js/calendar/mods-for-hesk-calendar.js
+++ b/js/calendar/mods-for-hesk-calendar.js
@@ -203,7 +203,8 @@ $(document).ready(function() {
comments: $('#create-form textarea[name="comments"]').val(),
categoryId: $('#create-form select[name="category"]').val(),
action: 'create',
- type: 'CALENDAR'
+ type: 'CALENDAR',
+ categoryColor: $('#create-form select[name="category"] :selected').attr('data-color')
};
$.ajax({
@@ -303,10 +304,33 @@ function buildEvent(id, dbObject) {
location: dbObject.location,
type: dbObject.type,
categoryId: dbObject.categoryId,
- categoryName: dbObject.categoryName
+ categoryName: dbObject.categoryName,
+ color: dbObject.categoryColor,
+ textColor: calculateTextColor(dbObject.categoryColor)
};
}
+function calculateTextColor(color) {
+ var red = 0;
+ var green = 0;
+ var blue = 0;
+
+ // If hex value is 3 characters, take each value and concatenate it to itself
+ if (color.length === 3) {
+ red = parseInt(color.substring(1, 2), 16);
+ green = parseInt(color.substring(2, 3), 16);
+ blue = parseInt(color.substring(3, 4), 16);
+ } else {
+ red = parseInt(color.substring(1, 3), 16);
+ green = parseInt(color.substring(3, 5), 16);
+ blue = parseInt(color.substring(5, 7), 16);
+ }
+
+ var gray = red * 0.299 + green * 0.587 + blue * 0.114;
+
+ return gray > 186 ? 'black' : 'white';
+}
+
function displayCreateModal(date, viewName) {
var $form = $('#create-form');
$form.find('input[name="name"]').val('').end()