Add category support. Need to honoror 'click to select' though
This commit is contained in:
parent
427e98eb94
commit
5708c63b75
@ -49,6 +49,13 @@ hesk_isLoggedIn();
|
||||
// Define required constants
|
||||
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`");
|
||||
$categories = [];
|
||||
while ($row = hesk_dbFetchAssoc($rs)) {
|
||||
$categories[] = $row;
|
||||
}
|
||||
|
||||
/* Print header */
|
||||
require_once(HESK_PATH . 'inc/headerAdmin.inc.php');
|
||||
|
||||
@ -104,6 +111,23 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="category" class="col-sm-3 control-label">
|
||||
Category
|
||||
<i class="fa fa-question-circle settingsquestionmark"
|
||||
data-toggle="tooltip"
|
||||
title="Category for the event"></i>
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<select name="category" class="form-control">
|
||||
<?php foreach ($categories as $category): ?>
|
||||
<option value="<?php echo $category['id']; ?>">
|
||||
<?php echo $category['name']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@ -121,7 +145,6 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
||||
required>
|
||||
<input type="text" name="start-time" class="form-control clockpicker" placeholder="Start Time" data-placement="left" data-align="top" data-autoclose="true">
|
||||
<div class="help-block with-errors"></div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="all-day"> All day
|
||||
@ -218,6 +241,23 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
||||
<div class="help-block with-errors"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="category" class="col-sm-3 control-label">
|
||||
Category
|
||||
<i class="fa fa-question-circle settingsquestionmark"
|
||||
data-toggle="tooltip"
|
||||
title="Category for the event"></i>
|
||||
</label>
|
||||
<div class="col-sm-9">
|
||||
<select name="category" class="form-control">
|
||||
<?php foreach ($categories as $category): ?>
|
||||
<option value="<?php echo $category['id']; ?>">
|
||||
<?php echo $category['name']; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@ -309,6 +349,10 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
|
||||
<strong>Location</strong>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="popover-category">
|
||||
<strong>Category</strong>
|
||||
<span></span>
|
||||
</div>
|
||||
<div class="popover-from">
|
||||
<strong>From</strong>
|
||||
<span></span>
|
||||
|
@ -727,7 +727,8 @@ function execute260Scripts()
|
||||
`all_day` ENUM('0','1') NOT NULL,
|
||||
`name` VARCHAR(255) NOT NULL,
|
||||
`location` VARCHAR(255),
|
||||
`comments` MEDIUMTEXT) ENGINE = MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci");
|
||||
`comments` MEDIUMTEXT,
|
||||
`category` INT) 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("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "settings` SET `Value` = '2.6.0' WHERE `Key` = 'modsForHeskVersion'");
|
||||
}
|
@ -32,6 +32,7 @@ if ($request_method === 'GET') {
|
||||
$event['end'] = hesk_POST('endTime');
|
||||
$event['all_day'] = hesk_POST('allDay') === 'true';
|
||||
$event['comments'] = hesk_POST('comments');
|
||||
$event['category'] = hesk_POST('categoryId');
|
||||
|
||||
$id = create_event($event, $hesk_settings);
|
||||
|
||||
@ -47,6 +48,7 @@ if ($request_method === 'GET') {
|
||||
$event['end'] = hesk_POST('endTime');
|
||||
$event['all_day'] = hesk_POST('allDay') === 'true';
|
||||
$event['comments'] = hesk_POST('comments');
|
||||
$event['category'] = hesk_POST('categoryId');
|
||||
|
||||
update_event($event, $hesk_settings);
|
||||
|
||||
|
@ -2,7 +2,10 @@
|
||||
|
||||
function get_events($start, $end, $hesk_settings) {
|
||||
|
||||
$sql = "SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` WHERE `start` >= FROM_UNIXTIME(" . intval($start)
|
||||
$sql = "SELECT `events`.*, `categories`.`name` AS `category_name` 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(" . intval($start)
|
||||
. " / 1000) AND `end` <= FROM_UNIXTIME(" . intval($end) . " / 1000)";
|
||||
|
||||
$rs = hesk_dbQuery($sql);
|
||||
@ -17,10 +20,15 @@ function get_events($start, $end, $hesk_settings) {
|
||||
$event['title'] = $row['name'];
|
||||
$event['location'] = $row['location'];
|
||||
$event['comments'] = $row['comments'];
|
||||
$event['categoryId'] = $row['category'];
|
||||
$event['categoryName'] = $row['category_name'];
|
||||
$events[] = $event;
|
||||
}
|
||||
|
||||
$sql = "SELECT `trackid`, `subject`, `due_date` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets`
|
||||
$sql = "SELECT `trackid`, `subject`, `due_date`, `category`, `categories`.`name` AS `category_name`
|
||||
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) ";
|
||||
@ -32,6 +40,8 @@ function get_events($start, $end, $hesk_settings) {
|
||||
$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'];
|
||||
$events[] = $event;
|
||||
}
|
||||
|
||||
@ -45,9 +55,10 @@ function create_event($event, $hesk_settings) {
|
||||
$event['all_day'] = $event['all_day'] ? 1 : 0;
|
||||
|
||||
$sql = "INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` (`start`, `end`, `all_day`,
|
||||
`name`, `location`, `comments`) VALUES (
|
||||
`name`, `location`, `comments`, `category`) VALUES (
|
||||
'" . hesk_dbEscape($event['start']) . "', '" . hesk_dbEscape($event['end']) . "', '" . hesk_dbEscape($event['all_day']) . "',
|
||||
'" . hesk_dbEscape($event['title']) . "', '" . hesk_dbEscape($event['location']) . "', '" . hesk_dbEscape($event['comments']) . "')";
|
||||
'" . hesk_dbEscape($event['title']) . "', '" . hesk_dbEscape($event['location']) . "', '" . hesk_dbEscape($event['comments']) . "',
|
||||
" . intval($event['category']) . ")";
|
||||
|
||||
hesk_dbQuery($sql);
|
||||
return hesk_dbInsertID();
|
||||
@ -65,7 +76,7 @@ function update_event($event, $hesk_settings) {
|
||||
$sql = "UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "calendar_event` SET `start` = '" . hesk_dbEscape($event['start'])
|
||||
. "', `end` = '" . hesk_dbEscape($event['end']) . "', `all_day` = '" . hesk_dbEscape($event['all_day']) . "', `name` = '"
|
||||
. hesk_dbEscape($event['title']) . "', `location` = '" . hesk_dbEscape($event['location']) . "', `comments` = '"
|
||||
. hesk_dbEscape($event['comments']) . "' WHERE `id` = " . intval($event['id']);
|
||||
. hesk_dbEscape($event['comments']) . "', `category` = " . intval($event['category']) . " WHERE `id` = " . intval($event['id']);
|
||||
|
||||
hesk_dbQuery($sql);
|
||||
}
|
||||
|
@ -75,6 +75,7 @@ $(document).ready(function() {
|
||||
endTime: end,
|
||||
allDay: event.allDay,
|
||||
comments: event.comments,
|
||||
categoryId: event.categoryId,
|
||||
action: 'update'
|
||||
};
|
||||
$.ajax({
|
||||
@ -98,7 +99,7 @@ $(document).ready(function() {
|
||||
}
|
||||
|
||||
var contents = $('.popover-template').html();
|
||||
$contents = $(contents);
|
||||
var $contents = $(contents);
|
||||
|
||||
var format = 'dddd, MMMM Do YYYY';
|
||||
var endDate = event.end == null ? event.start : event.end;
|
||||
@ -111,7 +112,8 @@ $(document).ready(function() {
|
||||
$contents.find('.popover-location').hide();
|
||||
}
|
||||
|
||||
$contents.find('.popover-location span').text(event.location).end()
|
||||
$contents.find('.popover-category span').text(event.categoryName).end()
|
||||
.find('.popover-location span').text(event.location).end()
|
||||
.find('.popover-from span').text(event.start.format(format)).end()
|
||||
.find('.popover-to span').text(endDate.format(format));
|
||||
var $eventMarkup = $(this);
|
||||
@ -199,6 +201,7 @@ $(document).ready(function() {
|
||||
endTime: moment(end).format(dateFormat),
|
||||
allDay: allDay,
|
||||
comments: $('#create-form textarea[name="comments"]').val(),
|
||||
categoryId: $('#create-form select[name="category"]').val(),
|
||||
action: 'create',
|
||||
type: 'CALENDAR'
|
||||
};
|
||||
@ -240,6 +243,7 @@ $(document).ready(function() {
|
||||
endTime: moment(end).format(dateFormat),
|
||||
allDay: allDay,
|
||||
comments: $form.find('textarea[name="comments"]').val(),
|
||||
categoryId: $form.find('select[name="category"]').val(),
|
||||
action: 'update'
|
||||
};
|
||||
|
||||
@ -284,7 +288,8 @@ function buildEvent(id, dbObject) {
|
||||
url: dbObject.url,
|
||||
color: endOfDay.isBefore() ? '#dd0000' : 'green',
|
||||
allDay: true,
|
||||
type: dbObject.type
|
||||
type: dbObject.type,
|
||||
categoryId: dbObject.categoryId
|
||||
};
|
||||
}
|
||||
|
||||
@ -296,7 +301,9 @@ function buildEvent(id, dbObject) {
|
||||
end: moment(dbObject.endTime),
|
||||
comments: dbObject.comments,
|
||||
location: dbObject.location,
|
||||
type: dbObject.type
|
||||
type: dbObject.type,
|
||||
categoryId: dbObject.categoryId,
|
||||
categoryName: dbObject.categoryName
|
||||
};
|
||||
}
|
||||
|
||||
@ -361,5 +368,7 @@ function displayEditModal(date) {
|
||||
|
||||
$form.find('#create-ticket-button').prop('href', createTicketLink);
|
||||
|
||||
$form.find('select[name="category"] option[value="' + date.categoryId + '"]').prop('selected', true);
|
||||
|
||||
$('#edit-event-modal').modal('show');
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user