More calendar tweaks
This commit is contained in:
parent
0514965040
commit
c4b79a722c
@ -44,6 +44,18 @@ class CalendarHandler extends \BaseClass {
|
|||||||
|
|
||||||
|
|
||||||
public function createEvent($calendarEvent, $userContext, $heskSettings) {
|
public function createEvent($calendarEvent, $userContext, $heskSettings) {
|
||||||
return $this->calendarGateway->createEvent($calendarEvent, $userContext, $heskSettings);
|
$this->calendarGateway->createEvent($calendarEvent, $userContext, $heskSettings);
|
||||||
|
|
||||||
|
$eventFilter = new SearchEventsFilter();
|
||||||
|
$eventFilter->eventId = $calendarEvent->id;
|
||||||
|
$eventFilter->reminderUserId = $userContext->id;
|
||||||
|
|
||||||
|
$events = $this->calendarGateway->getEventsForStaff($eventFilter, $heskSettings);
|
||||||
|
|
||||||
|
if (count($events) !== 1) {
|
||||||
|
throw new \Exception("Expected exactly 1 event, found: " . count($events));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $events[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -55,6 +55,8 @@ class CalendarController extends \BaseClass {
|
|||||||
|
|
||||||
/* @var $calendarHandler CalendarHandler */
|
/* @var $calendarHandler CalendarHandler */
|
||||||
$calendarHandler = $applicationContext->get(CalendarHandler::clazz());
|
$calendarHandler = $applicationContext->get(CalendarHandler::clazz());
|
||||||
|
|
||||||
|
return output($calendarHandler->createEvent($event, $userContext, $hesk_settings));
|
||||||
}
|
}
|
||||||
|
|
||||||
function put($id) {
|
function put($id) {
|
||||||
|
@ -163,8 +163,6 @@ class CalendarGateway extends CommonDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->close();
|
$this->close();
|
||||||
|
|
||||||
return $event;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -52,16 +52,7 @@ $(document).ready(function() {
|
|||||||
var $contents = $(contents);
|
var $contents = $(contents);
|
||||||
|
|
||||||
var format = 'dddd, MMMM Do YYYY';
|
var format = 'dddd, MMMM Do YYYY';
|
||||||
var endDate = event.end == null ? event.start : event.end;
|
var endDate = event.end === null ? event.start : event.end;
|
||||||
|
|
||||||
if (event.allDay) {
|
|
||||||
endDate = event.end.clone();
|
|
||||||
endDate.add(-1, 'days');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!event.allDay && event.type !== 'TICKET') {
|
|
||||||
format += ', HH:mm';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.type === 'TICKET') {
|
if (event.type === 'TICKET') {
|
||||||
contents = $('.ticket-popover-template').html();
|
contents = $('.ticket-popover-template').html();
|
||||||
@ -77,6 +68,13 @@ $(document).ready(function() {
|
|||||||
.find('.popover-category span').text(event.categoryName).end()
|
.find('.popover-category span').text(event.categoryName).end()
|
||||||
.find('.popover-priority span').text(event.priority);
|
.find('.popover-priority span').text(event.priority);
|
||||||
} else {
|
} else {
|
||||||
|
if (event.allDay) {
|
||||||
|
endDate = event.end.clone();
|
||||||
|
endDate.add(-1, 'days');
|
||||||
|
} else {
|
||||||
|
format += ', HH:mm';
|
||||||
|
}
|
||||||
|
|
||||||
if (event.location === '') {
|
if (event.location === '') {
|
||||||
$contents.find('.popover-location').hide();
|
$contents.find('.popover-location').hide();
|
||||||
}
|
}
|
||||||
@ -196,6 +194,9 @@ $(document).ready(function() {
|
|||||||
dateFormat = 'YYYY-MM-DD HH:mm:ss';
|
dateFormat = 'YYYY-MM-DD HH:mm:ss';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var reminderValue = $createForm.find('input[name="reminder-value"]').val();
|
||||||
|
var reminderUnits = $createForm.find('select[name="reminder-unit"]').val();
|
||||||
|
|
||||||
var data = {
|
var data = {
|
||||||
title: $createForm.find('input[name="name"]').val(),
|
title: $createForm.find('input[name="name"]').val(),
|
||||||
location: $createForm.find('input[name="location"]').val(),
|
location: $createForm.find('input[name="location"]').val(),
|
||||||
@ -209,8 +210,8 @@ $(document).ready(function() {
|
|||||||
foregroundColor: $createForm.find('select[name="category"] :selected').attr('data-foreground-color'),
|
foregroundColor: $createForm.find('select[name="category"] :selected').attr('data-foreground-color'),
|
||||||
displayBorder: $createForm.find('select[name="category"] :selected').attr('data-display-border'),
|
displayBorder: $createForm.find('select[name="category"] :selected').attr('data-display-border'),
|
||||||
categoryName: $createForm.find('select[name="category"] :selected').text().trim(),
|
categoryName: $createForm.find('select[name="category"] :selected').text().trim(),
|
||||||
reminderValue: $createForm.find('input[name="reminder-value"]').val(),
|
reminderValue: reminderValue === "" ? null : reminderValue,
|
||||||
reminderUnits: $createForm.find('select[name="reminder-unit"]').val()
|
reminderUnits: reminderValue === "" ? null : reminderUnits
|
||||||
};
|
};
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
@ -245,25 +246,29 @@ $(document).ready(function() {
|
|||||||
dateFormat = 'YYYY-MM-DD HH:mm:ss';
|
dateFormat = 'YYYY-MM-DD HH:mm:ss';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var reminderValue = $createForm.find('input[name="reminder-value"]').val();
|
||||||
|
var reminderUnits = $createForm.find('select[name="reminder-unit"]').val();
|
||||||
|
|
||||||
var data = {
|
var data = {
|
||||||
|
id: $form.find('input[name="id"]').val(),
|
||||||
title: $form.find('input[name="name"]').val(),
|
title: $form.find('input[name="name"]').val(),
|
||||||
location: $form.find('input[name="location"]').val(),
|
location: $form.find('input[name="location"]').val(),
|
||||||
startTime: moment(start).format(dateFormat),
|
startTime: moment(start).format(dateFormat),
|
||||||
endTime: moment(end).format(dateFormat),
|
endTime: moment(end).format(dateFormat),
|
||||||
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: parseInt($form.find('select[name="category"]').val()),
|
||||||
backgroundColor: $form.find('select[name="category"] :selected').attr('data-background-color'),
|
backgroundColor: $form.find('select[name="category"] :selected').attr('data-background-color'),
|
||||||
foregroundColor: $form.find('select[name="category"] :selected').attr('data-foreground-color'),
|
foregroundColor: $form.find('select[name="category"] :selected').attr('data-foreground-color'),
|
||||||
displayBorder: $form.find('select[name="category"] :selected').attr('data-display-border'),
|
displayBorder: $form.find('select[name="category"] :selected').attr('data-display-border'),
|
||||||
categoryName: $form.find('select[name="category"] :selected').text().trim(),
|
categoryName: $form.find('select[name="category"] :selected').text().trim(),
|
||||||
reminderValue: $form.find('input[name="reminder-value"]').val(),
|
reminderValue: reminderValue === "" ? null : reminderValue,
|
||||||
reminderUnits: $form.find('select[name="reminder-unit"]').val()
|
reminderUnits: reminderValue === "" ? null : reminderUnits
|
||||||
};
|
};
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: heskPath + 'api/v1/calendar/events/staff/' + $form.find('input[name="id"]').val(),
|
url: heskPath + 'api/v1/calendar/events/staff/' + data.id,
|
||||||
data: JSON.stringify(data),
|
data: JSON.stringify(data),
|
||||||
contentType: 'json',
|
contentType: 'json',
|
||||||
headers: {
|
headers: {
|
||||||
@ -297,6 +302,7 @@ function removeFromCalendar(id) {
|
|||||||
function buildEvent(id, dbObject) {
|
function buildEvent(id, dbObject) {
|
||||||
if (dbObject.type === 'TICKET') {
|
if (dbObject.type === 'TICKET') {
|
||||||
return {
|
return {
|
||||||
|
id: id,
|
||||||
title: dbObject.title,
|
title: dbObject.title,
|
||||||
subject: dbObject.subject,
|
subject: dbObject.subject,
|
||||||
trackingId: dbObject.trackingId,
|
trackingId: dbObject.trackingId,
|
||||||
@ -384,7 +390,7 @@ function displayCreateModal(date, viewName) {
|
|||||||
.find('input[name="location"]').val('').end()
|
.find('input[name="location"]').val('').end()
|
||||||
.find('textarea[name="comments"]').val('').end()
|
.find('textarea[name="comments"]').val('').end()
|
||||||
.find('select[name="category"]').val($form.find('select[name="category"] option:first-child').val()).end()
|
.find('select[name="category"]').val($form.find('select[name="category"] option:first-child').val()).end()
|
||||||
.find('select[name="reminder-unit"]').val(0).end()
|
.find('select[name="reminder-unit"]').val("MINUTE").end()
|
||||||
.find('input[name="reminder-value"]').val('').end();
|
.find('input[name="reminder-value"]').val('').end();
|
||||||
|
|
||||||
var $modal = $('#create-event-modal');
|
var $modal = $('#create-event-modal');
|
||||||
@ -534,9 +540,11 @@ function respondToDragAndDrop(event, delta, revertFunc) {
|
|||||||
reminderValue: event.reminderValue,
|
reminderValue: event.reminderValue,
|
||||||
reminderUnits: event.reminderUnits
|
reminderUnits: event.reminderUnits
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var url = heskPath + 'api/v1/calendar/events/staff/' + event.id;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: heskPath + 'api/v1/calendar/events/staff/' + event.id,
|
url: url,
|
||||||
data: JSON.stringify(data),
|
data: JSON.stringify(data),
|
||||||
headers: {
|
headers: {
|
||||||
'X-Internal-Call': true,
|
'X-Internal-Call': true,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user