A bunch of calendar fixes
This commit is contained in:
parent
4a09d508b8
commit
1df4e7775a
@ -671,8 +671,10 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
<div id="readonly-due-date">
|
<div id="readonly-due-date">
|
||||||
<span id="due-date">
|
<span id="due-date">
|
||||||
<?php
|
<?php
|
||||||
|
$due_date = 'None';
|
||||||
|
if ($ticket['due_date'] != null) {
|
||||||
$due_date = hesk_date($ticket['due_date'], false);
|
$due_date = hesk_date($ticket['due_date'], false);
|
||||||
$current_date = hesk_date();
|
}
|
||||||
echo substr($due_date, 0, 10);
|
echo substr($due_date, 0, 10);
|
||||||
?></span><!--<span id="overdue">
|
?></span><!--<span id="overdue">
|
||||||
<?php
|
<?php
|
||||||
@ -685,9 +687,10 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
<button id="due-date-button" class="btn btn-default btn-sm">Change</button>
|
<button id="due-date-button" class="btn btn-default btn-sm">Change</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="editable-due-date" style="display: none">
|
<div id="editable-due-date" style="display: none">
|
||||||
<input type="text" class="form-control datepicker" name="due-date" value="<?php echo substr($due_date, 0, 10); ?>"><br>
|
<input type="text" class="form-control datepicker" name="due-date" value="<?php echo $due_date == 'None' ? '' : substr($due_date, 0, 10); ?>"><br>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<button id="submit" class="btn btn-primary">Save</button>
|
<button id="submit" class="btn btn-primary">Save</button>
|
||||||
|
<button id="clear" class="btn btn-danger">No Due Date</button>
|
||||||
<button id="cancel" class="btn btn-default">Cancel</button>
|
<button id="cancel" class="btn btn-default">Cancel</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -77,7 +77,7 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
|||||||
<div class="checkbox">
|
<div class="checkbox">
|
||||||
<input type="checkbox" name="category-toggle" value="<?php echo $category['id']; ?>" checked>
|
<input type="checkbox" name="category-toggle" value="<?php echo $category['id']; ?>" checked>
|
||||||
</div>
|
</div>
|
||||||
<span class="label background-volitaile category-label" style="<?php echo $category['css_style']; ?>">
|
<span class="label background-volatile category-label" style="<?php echo $category['css_style']; ?>">
|
||||||
<?php echo $category['name']; ?>
|
<?php echo $category['name']; ?>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
|
@ -728,7 +728,7 @@ function execute260Scripts()
|
|||||||
`name` VARCHAR(255) NOT NULL,
|
`name` VARCHAR(255) NOT NULL,
|
||||||
`location` VARCHAR(255),
|
`location` VARCHAR(255),
|
||||||
`comments` MEDIUMTEXT,
|
`comments` MEDIUMTEXT,
|
||||||
`category` INT) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
`category` 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']) . "tickets` ADD COLUMN `due_date` DATETIME");
|
||||||
executeQuery("ALTER TABLE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ADD COLUMN `color` VARCHAR(7)");
|
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'");
|
executeQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` SET `Value` = '2.6.0' WHERE `Key` = 'modsForHeskVersion'");
|
||||||
|
@ -44,6 +44,7 @@ if ($request_method === 'GET') {
|
|||||||
}
|
}
|
||||||
$event['id'] = hesk_POST('id');
|
$event['id'] = hesk_POST('id');
|
||||||
$event['title'] = hesk_POST('title');
|
$event['title'] = hesk_POST('title');
|
||||||
|
$event['location'] = hesk_POST('location');
|
||||||
$event['start'] = hesk_POST('startTime');
|
$event['start'] = hesk_POST('startTime');
|
||||||
$event['end'] = hesk_POST('endTime');
|
$event['end'] = hesk_POST('endTime');
|
||||||
$event['all_day'] = hesk_POST('allDay') === 'true';
|
$event['all_day'] = hesk_POST('allDay') === 'true';
|
||||||
|
@ -26,7 +26,8 @@ function get_events($start, $end, $hesk_settings) {
|
|||||||
$events[] = $event;
|
$events[] = $event;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT `trackid`, `subject`, `due_date`, `category`, `categories`.`name` AS `category_name`
|
$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`
|
FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` AS `tickets`
|
||||||
INNER JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` AS `categories`
|
INNER JOIN `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` AS `categories`
|
||||||
ON `categories`.`id` = `tickets`.`category`
|
ON `categories`.`id` = `tickets`.`category`
|
||||||
@ -43,7 +44,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['url'] = $hesk_settings['hesk_url'] . '/' . $hesk_settings['admin_dir'] . '/admin_ticket.php?track=' . $event['trackingId'];
|
||||||
$event['categoryId'] = $row['category'];
|
$event['categoryId'] = $row['category'];
|
||||||
$event['categoryName'] = $row['category_name'];
|
$event['categoryName'] = $row['category_name'];
|
||||||
$event['categoryColor'] = 'green';
|
$event['categoryColor'] = $row['overdue'] ? '#dd0000' : $row['category_color'];
|
||||||
$events[] = $event;
|
$events[] = $event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ $(document).ready(function() {
|
|||||||
var newDueDate = $editableDueDateContainer.find('input[type="text"][name="due-date"]').val();
|
var newDueDate = $editableDueDateContainer.find('input[type="text"][name="due-date"]').val();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: getHelpdeskUrl() + '/internal-api/admin/calendar',
|
url: getHelpdeskUrl() + '/internal-api/admin/calendar/',
|
||||||
data: {
|
data: {
|
||||||
trackingId: $('input[type="hidden"][name="track"]').val(),
|
trackingId: $('input[type="hidden"][name="track"]').val(),
|
||||||
action: 'update-ticket',
|
action: 'update-ticket',
|
||||||
|
@ -43,7 +43,7 @@ $(document).ready(function() {
|
|||||||
if (event.type === 'TICKET') {
|
if (event.type === 'TICKET') {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: getHelpdeskUrl() + '/internal-api/admin/calendar',
|
url: getHelpdeskUrl() + '/internal-api/admin/calendar/',
|
||||||
data: {
|
data: {
|
||||||
trackingId: event.trackingId,
|
trackingId: event.trackingId,
|
||||||
action: 'update-ticket',
|
action: 'update-ticket',
|
||||||
@ -80,7 +80,7 @@ $(document).ready(function() {
|
|||||||
};
|
};
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: getHelpdeskUrl() + '/internal-api/admin/calendar',
|
url: getHelpdeskUrl() + '/internal-api/admin/calendar/',
|
||||||
data: data,
|
data: data,
|
||||||
success: function() {
|
success: function() {
|
||||||
$.jGrowl('Event successfully updated', { theme: 'alert-success', closeTemplate: '' });
|
$.jGrowl('Event successfully updated', { theme: 'alert-success', closeTemplate: '' });
|
||||||
@ -167,7 +167,7 @@ $(document).ready(function() {
|
|||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: getHelpdeskUrl() + '/internal-api/admin/calendar',
|
url: getHelpdeskUrl() + '/internal-api/admin/calendar/',
|
||||||
data: data,
|
data: data,
|
||||||
success: function() {
|
success: function() {
|
||||||
removeFromCalendar(data.id);
|
removeFromCalendar(data.id);
|
||||||
@ -204,12 +204,13 @@ $(document).ready(function() {
|
|||||||
categoryId: $('#create-form select[name="category"]').val(),
|
categoryId: $('#create-form select[name="category"]').val(),
|
||||||
action: 'create',
|
action: 'create',
|
||||||
type: 'CALENDAR',
|
type: 'CALENDAR',
|
||||||
categoryColor: $('#create-form select[name="category"] :selected').attr('data-color')
|
categoryColor: $('#create-form select[name="category"] :selected').attr('data-color'),
|
||||||
|
categoryName: $('#create-form select[name="category"] :selected').text().trim()
|
||||||
};
|
};
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: getHelpdeskUrl() + '/internal-api/admin/calendar',
|
url: getHelpdeskUrl() + '/internal-api/admin/calendar/',
|
||||||
data: data,
|
data: data,
|
||||||
success: function(id) {
|
success: function(id) {
|
||||||
addToCalendar(id, data, "Event successfully created");
|
addToCalendar(id, data, "Event successfully created");
|
||||||
@ -246,12 +247,14 @@ $(document).ready(function() {
|
|||||||
allDay: allDay,
|
allDay: allDay,
|
||||||
comments: $form.find('textarea[name="comments"]').val(),
|
comments: $form.find('textarea[name="comments"]').val(),
|
||||||
categoryId: $form.find('select[name="category"]').val(),
|
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'
|
||||||
};
|
};
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: getHelpdeskUrl() + '/internal-api/admin/calendar',
|
url: getHelpdeskUrl() + '/internal-api/admin/calendar/',
|
||||||
data: data,
|
data: data,
|
||||||
success: function() {
|
success: function() {
|
||||||
removeFromCalendar(data.id);
|
removeFromCalendar(data.id);
|
||||||
@ -290,11 +293,12 @@ function buildEvent(id, dbObject) {
|
|||||||
trackingId: dbObject.trackingId,
|
trackingId: dbObject.trackingId,
|
||||||
start: moment(dbObject.startTime),
|
start: moment(dbObject.startTime),
|
||||||
url: dbObject.url,
|
url: dbObject.url,
|
||||||
color: endOfDay.isBefore() ? '#dd0000' : 'green',
|
color: dbObject.categoryColor === '' || dbObject.categoryColor === null ? '#fff' : dbObject.categoryColor,
|
||||||
allDay: true,
|
allDay: true,
|
||||||
type: dbObject.type,
|
type: dbObject.type,
|
||||||
categoryId: dbObject.categoryId,
|
categoryId: dbObject.categoryId,
|
||||||
className: 'category-' + dbObject.categoryId
|
className: 'category-' + dbObject.categoryId,
|
||||||
|
textColor: calculateTextColor(dbObject.categoryColor)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,12 +314,16 @@ function buildEvent(id, dbObject) {
|
|||||||
categoryId: dbObject.categoryId,
|
categoryId: dbObject.categoryId,
|
||||||
categoryName: dbObject.categoryName,
|
categoryName: dbObject.categoryName,
|
||||||
className: 'category-' + dbObject.categoryId,
|
className: 'category-' + dbObject.categoryId,
|
||||||
color: dbObject.categoryColor,
|
color: dbObject.categoryColor === '' || dbObject.categoryColor === null ? '#fff' : dbObject.categoryColor,
|
||||||
textColor: calculateTextColor(dbObject.categoryColor)
|
textColor: calculateTextColor(dbObject.categoryColor)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculateTextColor(color) {
|
function calculateTextColor(color) {
|
||||||
|
if (color === null || color === '') {
|
||||||
|
return 'black';
|
||||||
|
}
|
||||||
|
|
||||||
var red = 0;
|
var red = 0;
|
||||||
var green = 0;
|
var green = 0;
|
||||||
var blue = 0;
|
var blue = 0;
|
||||||
@ -394,6 +402,7 @@ function displayEditModal(date) {
|
|||||||
createTicketLink += encodeURI(' @ ' + date.location);
|
createTicketLink += encodeURI(' @ ' + date.location);
|
||||||
}
|
}
|
||||||
createTicketLink += encodeURI('&message=' + date.comments);
|
createTicketLink += encodeURI('&message=' + date.comments);
|
||||||
|
createTicketLink += encodeURI('&category=' + date.categoryId);
|
||||||
|
|
||||||
$form.find('#create-ticket-button').prop('href', createTicketLink);
|
$form.find('#create-ticket-button').prop('href', createTicketLink);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user