Display category colors on calendar

merge-requests/1/head
Mike Koch 8 years ago
parent d74b07b455
commit 33cb1723ee

@ -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 '<option value="">'.$hesklang['select'].'</option>';
}
foreach ($categories as $category): ?>
<option value="<?php echo $category['id']; ?>">
<option value="<?php echo $category['id']; ?>" data-color="<?php echo htmlspecialchars($category['color']); ?>">
<?php echo $category['name']; ?>
</option>
<?php endforeach; ?>
@ -264,7 +264,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
echo '<option value="">'.$hesklang['select'].'</option>';
}
foreach ($categories as $category): ?>
<option value="<?php echo $category['id']; ?>">
<option value="<?php echo $category['id']; ?>" data-color="<?php echo $category['color']; ?>">
<?php echo $category['name']; ?>
</option>
<?php endforeach; ?>

@ -1,7 +1,8 @@
<?php
function get_events($start, $end, $hesk_settings) {
$sql = "SELECT `events`.*, `categories`.`name` AS `category_name` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` AS `events`
$sql = "SELECT `events`.*, `categories`.`name` AS `category_name`, `categories`.`color` AS `category_color`
FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` AS `events`
INNER JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` AS `categories`
ON `events`.`category` = `categories`.`id`
WHERE `start` >= 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;
}

@ -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()

Loading…
Cancel
Save