Kalender Update

* Feature Implementation Excel Export
This commit is contained in:
Daniel Spitzer
2025-03-03 09:21:24 +01:00
parent 007a04f332
commit cb67e821ec
5 changed files with 391 additions and 171 deletions
+42 -15
View File
@@ -673,11 +673,12 @@ thead .fc-day-today .fc-scrollgrid-sync-inner .fc-col-header-cell-cushion {
margin-left: -28px;
margin-top: 4px;
}
.cursor-alias{
.cursor-alias {
cursor: alias;
}
.fa-calendar-alert
{
.fa-calendar-alert {
font-size: 15px;
vertical-align: top;
margin-top: -1px;
@@ -688,57 +689,65 @@ thead .fc-day-today .fc-scrollgrid-sync-inner .fc-col-header-cell-cushion {
color: #ff0000;
opacity: 0.7;
}
.fa-calendar-alert:before {
color: #fff;
}
.fa-calendar-alert-search
{
.fa-calendar-alert-search {
font-size: 22px;
}
.logo-top-search
{
.logo-top-search {
height: 20px;
vertical-align: top;
cursor: pointer;
}
.btn-light-search
{
.btn-light-search {
border-color: #e5e5e5;
padding: 3px 6px;
}
.top-search-filter
{
filter:grayscale(100%);
.top-search-filter {
filter: grayscale(100%);
}
.fc-event-time {
z-index: 100;
}
.note-editor .dropdown-item {
padding: .15rem 1.2rem;
}
.note-editable p {
line-height: 1.2;
margin-bottom: 0;
}
.tooltip-description p {
margin-bottom: 0;
line-height: 1.2;
}
.note-dropdown-menu {
max-height: 250px !important;
overflow-y: auto !important;
z-index: 99999 !important;
}
.tox-dialog {
z-index: 1060 !important; /* oder ein höherer Wert, je nach Bedarf */
}
.tox .tox-tbtn--select {
max-width: 95px;
}
.fa-calendar-call
{
.fa-calendar-call {
font-size: 13px;
vertical-align: top;
margin-top: 0px;
@@ -748,12 +757,30 @@ thead .fc-day-today .fc-scrollgrid-sync-inner .fc-col-header-cell-cushion {
color: #ff0000;
opacity: 1;
}
.fa-calendar-call:before {
content: "\f2a0";
color: #000000;
opacity: 1;
}
.fa-calendar-call-search {
font-size: 21px;
margin-top: 0px;
}
}
.fa-xls-calendar {
font-size: 24px;
padding-top: 2px;
padding-bottom: 2px;
}
.btn-xls-calendar {
padding: 3px 6px;
background-color: #ffffff;
}
.btn-xls-calendar:hover, .btn-xls-calendar:focus, .btn-xls-calendar:active {
background-color: #ffffff !important;
border-color: #ffffff !important;
}
+77 -21
View File
@@ -556,8 +556,7 @@ document.addEventListener('DOMContentLoaded', function () {
$('.show-attendee').hide();
$('#recurringCheck').prop('checked', true);
$('#recurringCheck').change();
if (data.data.recurrence)
{
if (data.data.recurrence) {
$('#rrule-frequency').val(data.data.recurrence.recurrence.rrule_frequency);
$('#rrule-frequency').trigger('change');
$('#rrule-interval').val(data.data.recurrence.recurrence.rrule_interval);
@@ -1321,26 +1320,26 @@ $(document).ready(function () {
users.push($(this).val());
});
if ($('#recurringCheck').is(':checked') && $('#rrule-frequency').val() !== '') {
var rruleData = {};
rruleData.rrule_frequency = $('#rrule-frequency').val();
if ($('#recurringCheck').is(':checked') && $('#rrule-frequency').val() !== '') {
var rruleData = {};
rruleData.rrule_frequency = $('#rrule-frequency').val();
if (rruleData.rrule_frequency === 'WEEKLY') {
// Mehrere Wochentage als Array
rruleData['rrule-byweekday'] = $('#rrule-byweekday').val();
} else if (rruleData.rrule_frequency === 'MONTHLY') {
rruleData.monthly_type = $('#monthly-type').val();
if (rruleData.monthly_type === 'BYMONTHDAY') {
rruleData.rrule_bymonthday = $('#rrule-bymonthday').val();
} else if (rruleData.monthly_type === 'BYSETPOS') {
rruleData.rrule_setpos = $('#rrule-setpos').val();
rruleData.rrule_bynweekday = $('#rrule-bynweekday').val();
}
if (rruleData.rrule_frequency === 'WEEKLY') {
// Mehrere Wochentage als Array
rruleData['rrule-byweekday'] = $('#rrule-byweekday').val();
} else if (rruleData.rrule_frequency === 'MONTHLY') {
rruleData.monthly_type = $('#monthly-type').val();
if (rruleData.monthly_type === 'BYMONTHDAY') {
rruleData.rrule_bymonthday = $('#rrule-bymonthday').val();
} else if (rruleData.monthly_type === 'BYSETPOS') {
rruleData.rrule_setpos = $('#rrule-setpos').val();
rruleData.rrule_bynweekday = $('#rrule-bynweekday').val();
}
// Optionale Felder
rruleData.rrule_count = $('#rrule-count').val();
rruleData.rrule_until = $('#rrule-until').val();
}
// Optionale Felder
rruleData.rrule_count = $('#rrule-count').val();
rruleData.rrule_until = $('#rrule-until').val();
}
$.post(requestInsertUrl, {
@@ -2094,6 +2093,63 @@ $(document).ready(function () {
}
});
$("body").on("click", ".fa-xls-calendar", function (e) {
let checkbox = $(".calendar-check");
let calendarFilter = $('.btn-light-search');
let visibleCalendars = [];
let visibleCalendarTypes = [];
let mycalendar_id = $('#calendar-id').data('calendarid');
visibleCalendars.push(0);
checkbox.each(function () {
if ($(this).prop('checked')) {
visibleCalendars.push($(this).data('calendar_id'));
}
});
calendarFilter.each(function () {
if (!$(this).hasClass('top-search-filter')) {
visibleCalendarTypes.push($(this).data('ctype'));
}
});
$.ajax({
url: requestgenerateEventsxlsx,
method: 'POST',
data: {
visibleCalendars: visibleCalendars,
visibleCalendarTypes: visibleCalendarTypes
},
xhrFields: {
responseType: 'blob' // Erwartet binäre Daten als Blob
},
success: function (data, status, xhr) {
// Header auslesen, um den Dateinamen zu erhalten
var disposition = xhr.getResponseHeader('Content-Disposition');
var filename = "download.xlsx";
if (disposition && disposition.indexOf('attachment') !== -1) {
var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
var matches = filenameRegex.exec(disposition);
if (matches != null && matches[1]) {
filename = matches[1].replace(/['"]/g, '');
}
}
// Blob in eine URL umwandeln und Download auslösen
var url = window.URL.createObjectURL(data);
var a = document.createElement('a');
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
a.remove();
window.URL.revokeObjectURL(url);
},
error: function (jqXHR, status, error) {
console.error("Download error:", error);
}
});
});
$("body").on("blur", ".cal-group-name-input", function (e) {
let groupname = $.trim($(this).val());
if (groupname.length > 3) {
@@ -2461,7 +2517,7 @@ $(document).ready(function () {
;
});
}
$(document).on('focusin', function (e) {
if ($(e.target).closest(".tox-tinymce, .tox-tinymce-aux, .moxman-window, .tam-assetmanager-root").length) {
e.stopImmediatePropagation();
@@ -2472,7 +2528,7 @@ $(document).ready(function () {
$('#recurringCheck').on('change', function () {
if ($(this).is(':checked')) {
$('#recurring-settings').show();
$('#rrule-until').attr('min' , $('#start-date').val());
$('#rrule-until').attr('min', $('#start-date').val());
} else {
$('#recurring-settings').hide();
$('#weekly-options').hide();