Kalender
* Generelle Updates
This commit is contained in:
@@ -554,4 +554,43 @@ thead .fc-day-today .fc-scrollgrid-sync-inner .fc-col-header-cell-cushion {
|
||||
.event-tentative {
|
||||
|
||||
border-left: 5px solid #df0000;
|
||||
}
|
||||
|
||||
.event-organizer {
|
||||
font-size: 14px;
|
||||
display: inline-block;
|
||||
padding-top: 8px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.fc .fc-highlight {
|
||||
background: rgb(31 161 0 / 30%);
|
||||
}
|
||||
|
||||
.select2-container--default .select2-results__option[aria-selected=true] {
|
||||
background-color: #7392f1;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.event-accepted {
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
padding-top: 8px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.event-status {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.accepted-status {
|
||||
font-size: 18px;
|
||||
vertical-align: text-bottom;
|
||||
padding-top: 0px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.event-status .fa-circle-info:before {
|
||||
color: #0029ff;
|
||||
}
|
||||
@@ -80,6 +80,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
var resources = [];
|
||||
var category = "";
|
||||
var rights = false;
|
||||
var movable = false;
|
||||
var resourceCounter = 0;
|
||||
$.each($('.calendar-check'), function (index, value) {
|
||||
if ($(this).prop('checked')) {
|
||||
@@ -105,6 +106,12 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
} else {
|
||||
rights = false;
|
||||
}
|
||||
if (value.isorganizer.isorganizer == '1' && rights) {
|
||||
movable = true;
|
||||
} else {
|
||||
movable = false;
|
||||
}
|
||||
|
||||
userevents.push({
|
||||
id: value.id.id,
|
||||
start: value.cstart.cstart,
|
||||
@@ -120,8 +127,13 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
textColor: value.txtColor.txtColor,
|
||||
backgroundColor: value.bgColor.bgColor,
|
||||
editable: rights,
|
||||
droppable: movable,
|
||||
startEditable: movable,
|
||||
durationEditable: movable,
|
||||
resizableFromStart: movable,
|
||||
resourceId: value.calendar_id.calendar_id,
|
||||
calendar_name: value.calendar_name.calendar_name,
|
||||
clickable: rights,
|
||||
mtime: value.mtime.mtime,
|
||||
mname: value.mname.mname,
|
||||
ctime: value.ctime.ctime,
|
||||
@@ -144,6 +156,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
attachments: value.attachments.attachments,
|
||||
resourceId: value.calendar_id.calendar_id,
|
||||
calendar_name: value.calendar_name.calendar_name,
|
||||
clickable: rights,
|
||||
mtime: value.mtime.mtime,
|
||||
mname: value.mname.mname,
|
||||
ctime: value.ctime.ctime,
|
||||
@@ -221,6 +234,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
}, function (data) {
|
||||
|
||||
}).done(function (data) {
|
||||
// console.log(data);
|
||||
if (data.data.attachment.attachment) {
|
||||
let docs = "";
|
||||
$.each(data.data.attachments.attachments, function (index, value) {
|
||||
@@ -307,15 +321,52 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
}
|
||||
}
|
||||
if (isOrganizer == "1") {
|
||||
$('.event-organizer-div').hide();
|
||||
$('.show-update').show();
|
||||
$('.show-attendee').hide();
|
||||
} else {
|
||||
const organizer = JSON.parse(data.data.organizer.organizer);
|
||||
$('.event-organizer-div').show();
|
||||
$('.event-organizer').text(organizer.name);
|
||||
$('.accepted-status').removeClass('fa-circle-check');
|
||||
$('.accepted-status').removeClass('fa-circle-info');
|
||||
let accepted = data.data.accepted.accepted;
|
||||
if (accepted) {
|
||||
const accept = JSON.parse(accepted);
|
||||
const datetime=new Date(accept.time * 1000);
|
||||
const germanDateTime = datetime.toLocaleString('de-DE');
|
||||
$('.accepted-status').addClass('fa-circle-check');
|
||||
$('.accepted-status').prop('title', accept.user + ' (' + germanDateTime + ')');
|
||||
$('.event-accepted').text('Akzeptiert');
|
||||
}
|
||||
else
|
||||
{
|
||||
$('.accepted-status').addClass('fa-circle-info');
|
||||
$('.accepted-status').prop('title', 'Termin wurde noch nicht bestätigt');
|
||||
$('.event-accepted').text('Offen');
|
||||
}
|
||||
$('.show-update').hide();
|
||||
$('.show-attendee').show();
|
||||
$('.show-attendee').data('id', info.event.id);
|
||||
}
|
||||
if (data.data.attendees.attendees) {
|
||||
let attendees = JSON.parse(data.data.attendees.attendees);
|
||||
$.each(attendees, function (index, value) {
|
||||
if (!Number.isInteger(value)) {
|
||||
var valueExists = $("#calendar-attendees option").filter(function () {
|
||||
return $(this).val() === value;
|
||||
}).length > 0;
|
||||
if (!valueExists) {
|
||||
$("#calendar-attendees").append(new Option(value, value, true, true))
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#calendar-attendees').val(attendees).trigger('change');
|
||||
}
|
||||
|
||||
});
|
||||
if (info.event.startEditable) {
|
||||
if (info.event.extendedProps.clickable) {
|
||||
let cestDate = new Date(info.event.startStr);
|
||||
let cestOffset = 0; // 2 Stunden in Minuten
|
||||
let utcTime = cestDate.getTime() - cestOffset * 60 * 1000;
|
||||
@@ -333,8 +384,12 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
|
||||
cestDate = new Date(info.event.endStr);
|
||||
cestOffset = 0; // 2 Stunden in Minuten
|
||||
utcTime = cestDate.getTime() - cestOffset * 60 * 1000;
|
||||
|
||||
|
||||
utcTime = cestDate.getTime() - cestOffset * 60 * 1000;
|
||||
if (info.event.allDay) {
|
||||
utcTime = utcTime - 60;
|
||||
}
|
||||
utcDate = new Date(utcTime);
|
||||
year = utcDate.getUTCFullYear();
|
||||
month = String(utcDate.getUTCMonth() + 1).padStart(2, '0');
|
||||
@@ -359,7 +414,7 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
$('#allday').change();
|
||||
|
||||
$('#end-time').val('');
|
||||
$('#end-date').val(StartformattedDate);
|
||||
$('#end-date').val(EndformattedDate);
|
||||
$('#start-time').val('');
|
||||
} else {
|
||||
$('#end-date').val(EndformattedDate);
|
||||
@@ -386,19 +441,22 @@ document.addEventListener('DOMContentLoaded', function () {
|
||||
}
|
||||
},
|
||||
eventDidMount: function (info) {
|
||||
var eventstart = new Date(info.event.start);
|
||||
|
||||
var eventend = new Date(info.event.end);
|
||||
|
||||
// console.log(info);
|
||||
var eventstart = new Date(info.event.startStr);
|
||||
var eventend = new Date(info.event.endStr);
|
||||
|
||||
var title;
|
||||
if (!info.event.allDay) {
|
||||
eventstart = eventstart.toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'});
|
||||
eventend = eventend.toLocaleTimeString([], {hour: '2-digit', minute: '2-digit'});
|
||||
eventstart = String(eventstart.getUTCHours()).padStart(2, '0') + ':' + String(eventstart.getUTCMinutes()).padStart(2, '0');
|
||||
eventend = String(eventend.getUTCHours()).padStart(2, '0') + ':' + String(eventend.getUTCMinutes()).padStart(2, '0');
|
||||
title = '<div class="tooltip-description text-center">von ' + eventstart + ' bis ' + eventend + '</div>';
|
||||
} else {
|
||||
eventstart = eventstart.toLocaleDateString();
|
||||
eventend = eventend.toLocaleDateString();
|
||||
eventstart = String(eventstart.getUTCDate()).padStart(2, '0') + '.' + String(eventstart.getUTCMonth() + 1).padStart(2, '0') + '.' + eventstart.getUTCFullYear();
|
||||
eventend = String(eventend.getUTCDate()).padStart(2, '0') + '.' + String(eventend.getUTCMonth() + 1).padStart(2, '0') + '.' + eventend.getUTCFullYear();
|
||||
if (eventend == "NaN.NaN.NaN") {
|
||||
eventend = eventstart;
|
||||
}
|
||||
// console.log(eventend);
|
||||
title = '<div class="tooltip-description text-center">Ganztägig von ' + eventstart + ' bis ' + eventend + ' </div>';
|
||||
}
|
||||
|
||||
@@ -604,12 +662,19 @@ if (typeof (EventSource) !== 'undefined') {
|
||||
jsondata.forEach(function (event) {
|
||||
var cevent = calendar.getEventById(event.cal_events_id);
|
||||
var rights = false;
|
||||
var movable = false;
|
||||
if (event.calendar_id in calendarRights) {
|
||||
if (calendarRights[event.calendar_id] == 'all') {
|
||||
rights = true;
|
||||
} else {
|
||||
rights = false;
|
||||
}
|
||||
if (event.isorganizer == '1' && rights) {
|
||||
movable = true;
|
||||
} else {
|
||||
movable = false;
|
||||
}
|
||||
|
||||
}
|
||||
if (event.change_type == '2' && cevent) {
|
||||
if (cevent) {
|
||||
@@ -629,9 +694,10 @@ if (typeof (EventSource) !== 'undefined') {
|
||||
classNames: ['cal-class-group-' + event.calendar_id, 'cal-class-id-' + event.cal_events_id],
|
||||
attachment: event.attachment,
|
||||
attachments: event.attachments,
|
||||
editable: rights,
|
||||
editable: movable,
|
||||
resourceId: event.calendar_id,
|
||||
calendar_name: event.calendar_name,
|
||||
clickable: rights,
|
||||
mtime: event.mtime,
|
||||
mname: event.mname,
|
||||
ctime: event.ctime,
|
||||
@@ -657,6 +723,7 @@ if (typeof (EventSource) !== 'undefined') {
|
||||
calendar_id: event.calendar_id_check,
|
||||
resourceId: event.calendar_id,
|
||||
calendar_name: event.calendar_name,
|
||||
clickable: rights,
|
||||
mtime: event.mtime,
|
||||
mname: event.mname,
|
||||
ctime: event.ctime,
|
||||
@@ -683,9 +750,10 @@ if (typeof (EventSource) !== 'undefined') {
|
||||
classNames: ['cal-class-group-' + event.calendar_id, 'cal-class-id-' + event.cal_events_id],
|
||||
attachment: event.attachment,
|
||||
attachments: event.attachments,
|
||||
editable: rights,
|
||||
editable: movable,
|
||||
resourceId: event.calendar_id,
|
||||
calendar_name: event.calendar_name,
|
||||
clickable: rights,
|
||||
mtime: event.mtime,
|
||||
mname: event.mname,
|
||||
ctime: event.ctime,
|
||||
@@ -711,6 +779,7 @@ if (typeof (EventSource) !== 'undefined') {
|
||||
calendar_id: event.calendar_id_check,
|
||||
resourceId: event.calendar_id,
|
||||
calendar_name: event.calendar_name,
|
||||
clickable: rights,
|
||||
mtime: event.mtime,
|
||||
mname: event.mname,
|
||||
ctime: event.ctime,
|
||||
@@ -774,11 +843,14 @@ $(document).ready(function () {
|
||||
$('#customer-info-check-info').empty();
|
||||
$('#customer-info-type').val('1');
|
||||
$('#customer').val('');
|
||||
$('.event-organizer-div').hide();
|
||||
$('#calendar-attendees').val('').trigger('change');
|
||||
$('.customer-div').hide();
|
||||
$('#EventModalLabel span').text('Termin erstellen');
|
||||
$('#EventModalLabel .fa-calendar-symbol').addClass('fa-calendar-circle-plus');
|
||||
$('#EventModalLabel .fa-calendar-symbol').removeClass('fa-calendar-lines-pen');
|
||||
$('#EventModalLabel').data('id', '');
|
||||
$('.show-attendee').data('id', '');
|
||||
$('.eventmodal-input').val('');
|
||||
$('.eventmodal-input').prop('disabled', false);
|
||||
$('.eventmodal-checkbox').prop('checked', false);
|
||||
@@ -876,6 +948,7 @@ $(document).ready(function () {
|
||||
description: description,
|
||||
attachments: attachments,
|
||||
users: users,
|
||||
attendees: $('#calendar-attendees').val(),
|
||||
customer: customer,
|
||||
customer_info_check: customer_info_check,
|
||||
customer_info_text: customer_info_text,
|
||||
@@ -969,6 +1042,7 @@ $(document).ready(function () {
|
||||
description: description,
|
||||
attachments: attachments,
|
||||
users: users,
|
||||
attendees: $('#calendar-attendees').val(),
|
||||
customer: customer,
|
||||
customer_info_check: customer_info_check,
|
||||
customer_info_text: customer_info_text,
|
||||
@@ -983,6 +1057,35 @@ $(document).ready(function () {
|
||||
$('#EventModal').modal('hide');
|
||||
});
|
||||
|
||||
$("body").on("click", ".show-attendee", function (e) {
|
||||
let eventAction = $(this).data("event-action");
|
||||
let eventactionGerman;
|
||||
let id = $(this).data('id');
|
||||
let users = [];
|
||||
$('#calendar-users > option:selected').each(function () {
|
||||
users.push($(this).val());
|
||||
});
|
||||
if (eventAction === "accept") {
|
||||
eventactionGerman = "zusagen";
|
||||
} else if (eventAction === "decline") {
|
||||
eventactionGerman = "absagen";
|
||||
}
|
||||
if (confirm('Termin ' + eventactionGerman + '?')) {
|
||||
$.post(requestUpdateStateUrl, {
|
||||
id: id,
|
||||
eventAction: eventAction,
|
||||
users: users
|
||||
}, function (data) {
|
||||
|
||||
}).done(function (data) {
|
||||
});
|
||||
$('#EventModal').modal('hide');
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
$('body').on('click', '#delete-event', function () {
|
||||
var id = $(this).data('id');
|
||||
var users = [];
|
||||
@@ -1373,6 +1476,7 @@ Xinon GMbH`;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$("body").on("keyup", ".cal-group-name-input", function (e) {
|
||||
if (e.keyCode === 13) {
|
||||
let groupname = $.trim($(this).val());
|
||||
@@ -1490,14 +1594,15 @@ Xinon GMbH`;
|
||||
}
|
||||
$('.select2-multiple').select2(
|
||||
{
|
||||
|
||||
dropdownParent: jQuery('#relContainer')
|
||||
}
|
||||
);
|
||||
|
||||
$('.select2-multiple-tag').select2(
|
||||
{
|
||||
tags: true,
|
||||
tokenSeparators: [',', ' ']
|
||||
tokenSeparators: [',', ' '],
|
||||
dropdownParent: jQuery('#relContainer')
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1533,6 +1638,7 @@ Xinon GMbH`;
|
||||
var resources = [];
|
||||
var category = "";
|
||||
var rights = false;
|
||||
var movable = false;
|
||||
var resourceCounter = 0;
|
||||
$.each($('.calendar-check'), function (index, value) {
|
||||
if ($(this).prop('checked')) {
|
||||
@@ -1558,6 +1664,11 @@ Xinon GMbH`;
|
||||
} else {
|
||||
rights = false;
|
||||
}
|
||||
if (value.isorganizer.isorganizer == '1' && rights) {
|
||||
movable = true;
|
||||
} else {
|
||||
movable = false;
|
||||
}
|
||||
userevents.push({
|
||||
id: value.id.id,
|
||||
start: value.cstart.cstart,
|
||||
@@ -1572,9 +1683,10 @@ Xinon GMbH`;
|
||||
classNames: ['cal-class-group-' + value.calendar_id.calendar_id, 'cal-class-id-' + value.id.id],
|
||||
textColor: value.txtColor.txtColor,
|
||||
backgroundColor: value.bgColor.bgColor,
|
||||
editable: rights,
|
||||
editable: movable,
|
||||
resourceId: value.calendar_id.calendar_id,
|
||||
calendar_name: value.calendar_name.calendar_name,
|
||||
clickable: rights,
|
||||
mtime: value.mtime.mtime,
|
||||
mname: value.mname.mname,
|
||||
ctime: value.ctime.ctime,
|
||||
@@ -1597,6 +1709,7 @@ Xinon GMbH`;
|
||||
attachments: value.attachments.attachments,
|
||||
resourceId: value.calendar_id.calendar_id,
|
||||
calendar_name: value.calendar_name.calendar_name,
|
||||
clickable: false,
|
||||
mtime: value.mtime.mtime,
|
||||
mname: value.mname.mname,
|
||||
ctime: value.ctime.ctime,
|
||||
|
||||
Reference in New Issue
Block a user