You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Mods-for-HESK-Netsyms/js/calendar/mods-for-hesk-calendar.js

110 lines
4.1 KiB
JavaScript

$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
eventLimit: true,
events: function(start, end, timezone, callback) {
$.ajax({
url: getHelpdeskUrl() + '/internal-api/admin/calendar/?start=' + start + '&end=' + end,
method: 'GET',
dataType: 'json',
success: function(data) {
//callback w/events here!
},
error: function(data) {
console.error(data);
}
});
},
dayClick: function(date, jsEvent, view) {
displayCreateModal(date, view.name);
}
});
$('#create-form input[name="all-day"]').change(function() {
var hideTimeFields = $(this).is(':checked');
$('#create-form .clockpicker').css('display', hideTimeFields ? 'none' : 'block');
});
$('#create-form').submit(function(e) {
e.preventDefault();
var start = $('#create-form input[name="start-date"]').val();
var end = $('#create-form input[name="end-date"]').val();
var dateFormat = 'YYYY-MM-DD';
var allDay = $('#create-form input[name="all-day"]').is(':checked');
var createTicketDate = null;
var assignTo = null;
if ($('#create-form input[name="assign-to"]').length) {
assignTo = $('#create-form input[name="assign-to"]').val();
} else if ($('#create-form select[name="assign-to"]').length) {
assignTo = $('#create-form select[name="assign-to"]').val();
}
if ($('#create-form input[name="create-ticket-date"]').val() != '') {
createTicketDate = moment($('#create-form input[name="create-ticket-date"]').val()).format('YYYY-MM-DD');
}
if (!allDay) {
start += ' ' + $('#create-form input[name="start-time"]').val();
end += ' ' + $('#create-form input[name="end-time"]').val();
dateFormat = 'YYYY-MM-DD HH:mm:ss';
}
var data = {
title: $('#create-form input[name="name"]').val(),
location: $('#create-form input[name="location"]').val(),
startTime: moment(start).format(dateFormat),
endTime: moment(end).format(dateFormat),
allDay: allDay,
comments: $('#create-form textarea[name="comments"]').val(),
createTicketDate: createTicketDate,
assignTo: assignTo,
action: 'create'
};
console.log(data);
$.ajax({
method: 'POST',
url: getHelpdeskUrl() + '/internal-api/admin/calendar',
data: data,
success: function(data) {
console.log(data);
},
failure: function(data) {
console.log(data);
}
});
});
});
function displayCreateModal(date, viewName) {
$('#create-form input[name="name"]').val('');
$('#create-form input[name="location"]').val('');
$('#create-form textarea[name="comments"]').val('');
$('#create-form input[name="create-ticket-date"]').val('');
var $modal = $('#create-event-modal');
var formattedDate = date.format('YYYY-MM-DD');
$modal.find('input[name="start-date"]').val(formattedDate).end()
.find('input[name="end-date"]').val(formattedDate).end();
if (viewName === 'month') {
// Select "All Day"
$('#create-form input[name="all-day"]').prop('checked', true);
$('#create-form .clockpicker').hide();
} else {
$('#create-form input[name="all-day"]').prop('checked', false);
$('#create-form .clockpicker').show();
var formattedTime = date.format('h:mm:ss');
var selectedHour = date.hour();
$modal.find('input[name="start-time"]').val(formattedTime).end()
.find('input[name="end-time"]').val(date.hour(selectedHour + 1).format('h:mm:ss'));
}
$('#create-event-modal').modal('show');
}