Merge branch 'master' into fronkdev
This commit is contained in:
@@ -37,6 +37,7 @@ endforeach;
|
||||
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>assets/js/calendar/rrule/rrule.min.js?<?= $git_merge_ts ?>"></script>
|
||||
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>assets/js/calendar/moment/moment.min.js?<?= $git_merge_ts ?>"></script>
|
||||
<script type="text/javascript"
|
||||
@@ -57,6 +58,7 @@ endforeach;
|
||||
src="<?= self::getResourcePath() ?>assets/js/calendar/eventsource.min.js?<?= $git_merge_ts ?>"></script>
|
||||
<link href="<?= self::getResourcePath() ?>assets/css/datatables-std.css?<?= $git_merge_ts ?>" rel="stylesheet"
|
||||
type="text/css"/>
|
||||
|
||||
<!-- start page title -->
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
@@ -102,6 +104,7 @@ endforeach;
|
||||
class="btn btn-light btn-light-search top-search-filter"><i
|
||||
class="fa-duotone fa-solid fa-phone-volume fa-calendar-call fa-calendar-call-search"></i>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<?php if (!$rights) : ?>
|
||||
@@ -109,7 +112,14 @@ endforeach;
|
||||
<span class="font-18 font-weight-500">Du wurdest nicht für den Kalender frei geschalten.</span>
|
||||
</div>
|
||||
<?php die(); endif; ?>
|
||||
<div class="d-inline-block mr-1">
|
||||
|
||||
<button title="Excel Export"
|
||||
class="btn btn-light btn-xls-calendar">
|
||||
<i class="fa-duotone fa-solid fa-file-xls fa-xls-calendar"></i>
|
||||
|
||||
</div>
|
||||
</button>
|
||||
<div class="d-inline-block w-50 search-div" style="margin-top: -7px;">
|
||||
<select id="jumpevent" class="jumpevent"></select>
|
||||
</div>
|
||||
@@ -349,129 +359,219 @@ endforeach;
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="EventModal" aria-labelledby="EventModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title font-18 ml-2" id="EventModalLabel"><i
|
||||
class="fa-duotone fa-solid fa-calendar-symbol"></i> <span>neuer Termin</span></h1>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row justify-content-center">
|
||||
|
||||
<div class="col-1">
|
||||
<label for="name" class="col-form-label fw-medium ">Betreff</label>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="mb-2">
|
||||
<input type="text" class="form-control is-require eventmodal-input" id="name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="input-group mb-2">
|
||||
<span title="Erinnerung" class="input-group-text spanwidht">Typ</span>
|
||||
<select class="form-control form-select select-2" aria-label="Default select" id="type">
|
||||
<option value="1">Termin</option>
|
||||
<option value="2">IBN Xinon</option>
|
||||
<option value="3">IBN ESTMK</option>
|
||||
<option value="4">IBN SNOPP</option>
|
||||
<option value="5">Störung</option>
|
||||
<option value="6">Support Gespräch</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 text-center">
|
||||
<i title="Normal" class="fa-duotone privacy-click fa-regular fa-unlock mt-1"></i>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="EventModal" aria-labelledby="EventModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title font-18 ml-2" id="EventModalLabel"><i
|
||||
class="fa-duotone fa-solid fa-calendar-symbol"></i> <span>neuer Termin</span></h1>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-1">
|
||||
<label for="location" class="col-form-label fw-medium ">Ort</label>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="mb-2">
|
||||
<input type="text" class="form-control eventmodal-input" id="location">
|
||||
<div class="modal-body">
|
||||
<div class="row justify-content-center">
|
||||
|
||||
<div class="col-1">
|
||||
<label for="name" class="col-form-label fw-medium ">Betreff</label>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="mb-2">
|
||||
<input type="text" class="form-control is-require eventmodal-input" id="name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="input-group mb-2">
|
||||
<span title="Erinnerung" class="input-group-text spanwidht">Typ</span>
|
||||
<select class="form-control form-select select-2" aria-label="Default select" id="type">
|
||||
<option value="1">Termin</option>
|
||||
<option value="2">IBN Xinon</option>
|
||||
<option value="3">IBN ESTMK</option>
|
||||
<option value="4">IBN SNOPP</option>
|
||||
<option value="5">Störung</option>
|
||||
<option value="6">Support Gespräch</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-1 text-center">
|
||||
<i title="Normal" class="fa-duotone privacy-click fa-regular fa-unlock mt-1"></i>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-1">
|
||||
<label for="location" class="col-form-label fw-medium ">Ort</label>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="mb-2">
|
||||
<input type="text" class="form-control eventmodal-input" id="location">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<span title="Erinnerung" class="input-group-text spanwidht"><i
|
||||
class="fa-regular fa-eye"></i></span>
|
||||
<select class="form-control form-select" aria-label="Default select" id="busy">
|
||||
<option value="1">gebucht</option>
|
||||
<option value="0">frei</option>
|
||||
<option value="2">mit Vorbehalt</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center">
|
||||
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text spanwidht">Start</span>
|
||||
<input id="start-date" type="date" class="form-control is-require eventmodal-input"
|
||||
placeholder="Datum"
|
||||
aria-label="Datum"
|
||||
aria-describedby="Datum">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input id="start-time" type="time" class="form-control is-require eventmodal-input"
|
||||
placeholder="Uhrzeit"
|
||||
aria-label="Uhrzeit"
|
||||
aria-describedby="Uhrzeit">
|
||||
</div>
|
||||
<div class="col-3 text-center">
|
||||
<div class="form-check" style="margin-top: 7px;">
|
||||
|
||||
<input class="form-check-input eventmodal-checkbox" type="checkbox" value=""
|
||||
id="allday"> <label class="form-check-label fw-medium checkbox-label" for="allday">
|
||||
Ganztägig
|
||||
</label>
|
||||
|
||||
<select class="form-control form-select" aria-label="Default select" id="busy">
|
||||
<option value="1">gebucht</option>
|
||||
<option value="0">frei</option>
|
||||
<option value="2">mit Vorbehalt</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<div class="row justify-content-center">
|
||||
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text spanwidht">Ende</span>
|
||||
<input id="end-date" type="date" class="form-control is-require eventmodal-input"
|
||||
placeholder="Datum"
|
||||
aria-label="Datum"
|
||||
aria-describedby="Datum">
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text spanwidht">Start</span>
|
||||
<input id="start-date" type="date" class="form-control is-require eventmodal-input"
|
||||
placeholder="Datum"
|
||||
aria-label="Datum"
|
||||
aria-describedby="Datum">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input id="start-time" type="time" class="form-control is-require eventmodal-input"
|
||||
placeholder="Uhrzeit"
|
||||
aria-label="Uhrzeit"
|
||||
aria-describedby="Uhrzeit">
|
||||
</div>
|
||||
<div class="col-2 text-center">
|
||||
<div class="form-check" style="margin-top: 7px;">
|
||||
|
||||
<input class="form-check-input eventmodal-checkbox" type="checkbox" value=""
|
||||
id="allday"> <label class="form-check-label fw-medium checkbox-label"
|
||||
for="allday">
|
||||
Ganztägig
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2 text-right">
|
||||
<div class="form-check" style="margin-top: 7px;">
|
||||
<input class="form-check-input eventmodal-checkbox" type="checkbox" value=""
|
||||
id="recurringCheck">
|
||||
<label class="form-check-label fw-medium checkbox-label" for="recurringCheck">
|
||||
Serientermin
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input id="end-time" type="time" class="form-control is-require eventmodal-input"
|
||||
placeholder="Uhrzeit"
|
||||
aria-label="Uhrzeit"
|
||||
aria-describedby="Uhrzeit">
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<div class="input-group mb-2">
|
||||
<div class="row justify-content-center">
|
||||
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<span class="input-group-text spanwidht">Ende</span>
|
||||
<input id="end-date" type="date" class="form-control is-require eventmodal-input"
|
||||
placeholder="Datum"
|
||||
aria-label="Datum"
|
||||
aria-describedby="Datum">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-2">
|
||||
<input id="end-time" type="time" class="form-control is-require eventmodal-input"
|
||||
placeholder="Uhrzeit"
|
||||
aria-label="Uhrzeit"
|
||||
aria-describedby="Uhrzeit">
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="input-group mb-2">
|
||||
<span title="Erinnerung" class="input-group-text spanwidht"><i
|
||||
class="fa-regular fa-bell"></i></span>
|
||||
<select class="form-control form-select select2" aria-label="Default select" id="reminder">
|
||||
<option value="NULL">Keine</option>
|
||||
<option value="0">Zum Termin</option>
|
||||
<option value="300">5 Minuten</option>
|
||||
<option value="600">10 Minuten</option>
|
||||
<option value="900">15 Minuten</option>
|
||||
<option value="1800">30 Minuten</option>
|
||||
<option value="3600">1 Stunde</option>
|
||||
<option value="86400">1 Tag</option>
|
||||
<option value="604800">1 Woche</option>
|
||||
<select class="form-control form-select select2" aria-label="Default select"
|
||||
id="reminder">
|
||||
<option value="NULL">Keine</option>
|
||||
<option value="0">Zum Termin</option>
|
||||
<option value="300">5 Minuten</option>
|
||||
<option value="600">10 Minuten</option>
|
||||
<option value="900">15 Minuten</option>
|
||||
<option value="1800">30 Minuten</option>
|
||||
<option value="3600">1 Stunde</option>
|
||||
<option value="86400">1 Tag</option>
|
||||
<option value="604800">1 Woche</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Serientermin-Checkbox und zugehörige RRule-Optionen -->
|
||||
<div class="row" id="recurring-settings" style="display:none;">
|
||||
<div class="col-1"></div>
|
||||
<div class="col-3"
|
||||
">
|
||||
<!-- Frequenz: Täglich / Wöchentlich / Monatlich / Jährlich -->
|
||||
<div class="mb-2">
|
||||
<label for="rrule-frequency" class="col-form-label fw-medium">Wiederholungstyp</label>
|
||||
<select class="form-control" id="rrule-frequency">
|
||||
<option value="">Bitte wählen</option>
|
||||
<option value="DAILY">Täglich</option>
|
||||
<option value="WEEKLY">Wöchentlich</option>
|
||||
<option value="MONTHLY">Monatlich</option>
|
||||
<option value="YEARLY">Jährlich</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mb-2">
|
||||
<label for="rrule-count" class="col-form-label fw-medium">Wiederhol. (optional)</label>
|
||||
<input type="number" min="1" class="form-control" id="rrule-count" placeholder="z.B. 10">
|
||||
</div>
|
||||
|
||||
<!-- Enddatum der Serie (optional) -->
|
||||
<div class="mb-2">
|
||||
<label for="rrule-until" class="col-form-label fw-medium">Ende (optional)</label>
|
||||
<input type="date" class="form-control" id="rrule-until">
|
||||
</div>
|
||||
</div>
|
||||
<!-- Wöchentliche Optionen (z.B. jeden Dienstag, jeden Freitag + Montag) -->
|
||||
<div class="col-7">
|
||||
<div class="mb-2" id="weekly-options" style="display:none;">
|
||||
<label for="rrule-byweekday" class="col-form-label fw-medium">Wochentag(e)</label>
|
||||
<select class="form-control" id="rrule-byweekday" multiple>
|
||||
<option value="MO">Montag</option>
|
||||
<option value="TU">Dienstag</option>
|
||||
<option value="WE">Mittwoch</option>
|
||||
<option value="TH">Donnerstag</option>
|
||||
<option value="FR">Freitag</option>
|
||||
<option value="SA">Samstag</option>
|
||||
<option value="SU">Sonntag</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="mb-2" id="monthly-options" style="display:none;">
|
||||
<label class="col-form-label fw-medium">Monatliches Muster</label>
|
||||
<select class="form-control" id="monthly-type">
|
||||
<option value="BYMONTHDAY">Jeden X. Tag des Monats</option>
|
||||
<option value="BYSETPOS">Jeden X. [Wochentag] im Monat</option>
|
||||
</select>
|
||||
<div class=" mt-2 row" id="monthly-day-select">
|
||||
<label class="mr-2 col-form-label fw-medium col-2">Tag:</label>
|
||||
<select class="form-control w-auto col-3" id="rrule-bymonthday">
|
||||
<!-- Auswahl 1–31 -->
|
||||
<?php for ($i = 1; $i <= 31; $i++): ?>
|
||||
<option value="<?= $i ?>"><?= $i ?></option>
|
||||
<?php endfor; ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mt-2 row" id="monthly-setpos-select" style="display:none;">
|
||||
<label class="mr-2 col-2 col-form-label fw-medium">Position:</label>
|
||||
<select class="form-control col-3 w-auto" id="rrule-setpos">
|
||||
<option value="1">Erster</option>
|
||||
<option value="2">Zweiter</option>
|
||||
<option value="3">Dritter</option>
|
||||
<option value="4">Vierter</option>
|
||||
<option value="-1">Letzter</option>
|
||||
</select>
|
||||
<label class="mr-2 col-2 ml-3 col-form-label fw-medium text-center">Tag:</label>
|
||||
<select class="form-control col-3 w-auto" id="rrule-bynweekday">
|
||||
<option value="MO">Montag</option>
|
||||
<option value="TU">Dienstag</option>
|
||||
<option value="WE">Mittwoch</option>
|
||||
<option value="TH">Donnerstag</option>
|
||||
<option value="FR">Freitag</option>
|
||||
<option value="SA">Samstag</option>
|
||||
<option value="SU">Sonntag</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -570,6 +670,7 @@ endforeach;
|
||||
</div>
|
||||
<div class="d-inline-block" id="customer-info-check-info"></div>
|
||||
</div>
|
||||
|
||||
<div id="relContainer2" style="position:relative">
|
||||
<select id="customer" class="jumpevent"></select>
|
||||
</div>
|
||||
@@ -651,13 +752,16 @@ endforeach;
|
||||
</div>
|
||||
|
||||
<div id="output"></div>
|
||||
<script type="text/javascript" src="<?= self::getResourcePath() ?>plugins/select2/js/i18n/de.js?<?= $git_merge_ts ?>"></script>
|
||||
<script type="text/javascript" src="<?=self::getResourcePath()?>plugins/tinymce/tinymce.min.js?<?= $git_merge_ts ?>"></script>
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>plugins/select2/js/i18n/de.js?<?= $git_merge_ts ?>"></script>
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>plugins/tinymce/tinymce.min.js?<?= $git_merge_ts ?>"></script>
|
||||
|
||||
<script>
|
||||
let requestUrl = "<?= self::getUrl("Calendar", "api", ['do' => 'getCalendarEvents']) ?>";
|
||||
let requestEventUrl = "<?= self::getUrl("Calendar", "api", ['do' => 'getCalendarEvent']) ?>";
|
||||
let requestEventSearchURL = "<?= self::getUrl("Calendar", "api", ['do' => 'searchCalendarEvents']) ?>";
|
||||
let requestgenerateEventsxlsx = "<?= self::getUrl("Calendar", "api", ['do' => 'generateCalendarEventsXlsx']) ?>";
|
||||
let requestEventAttachmentUrl = "<?= self::getUrl("Calendar", "api", ['do' => 'getCalendarEventAttachment']) ?>";
|
||||
let requestEventAttachmentTmpUrl = "<?= self::getUrl("Calendar", "api", ['do' => 'getCalendarEventAttachmentTmp']) ?>";
|
||||
let requestEventAttachmentTmpDeleteUrl = "<?= self::getUrl("Calendar", "api", ['do' => 'deleteCalendarEventAttachmentTmp']) ?>";
|
||||
@@ -728,7 +832,6 @@ endforeach;
|
||||
endforeach; ?>
|
||||
|
||||
</script>
|
||||
|
||||
<script type="text/javascript"
|
||||
src="<?= self::getResourcePath() ?>js/pages/Calendar/View.js?<?= $git_merge_ts ?>"></script>
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
'key' => 'inspection_planner',
|
||||
'header' => 'Begehung Planer durchgeführt',
|
||||
'icon' => 'fas fa-clipboard-check',
|
||||
'denominator' => $stats['building'] + $stats['street'],
|
||||
'denominator' => $stats['building'],
|
||||
'color' => '#28a745'
|
||||
],
|
||||
[
|
||||
@@ -198,7 +198,7 @@ $pagination_entity_name = "Zustimmungserklärungen";
|
||||
'key' => 'conduit_installed_ftu',
|
||||
'header' => 'Leerrohr bis HAK',
|
||||
'icon' => 'fas fa-road',
|
||||
'denominator' => $stats['street'],
|
||||
'denominator' => $stats['building'],
|
||||
'color' => '#f5b902'
|
||||
],
|
||||
[
|
||||
|
||||
@@ -142,6 +142,12 @@
|
||||
$('body').on('click', '#bmd-export-nlz', function () {
|
||||
window.open('<?= self::getUrl("TimerecordingBilling", "api", ['do' => 'generatebmdexportnlz']) ?>&month=' + $('#month').data('month'), '_blank');
|
||||
});
|
||||
$('body').on('click', '#open-workdays', function () {
|
||||
window.open('<?= self::getUrl("TimerecordingBilling", "api", ['do' => 'generateopenworkdays']) ?>&month=' + $('#month').data('month'), '_blank');
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('body').on('click', '#month-complete', function () {
|
||||
if (confirm('Monat ' + $('#month').data('month') + ' wirklich abschließen?')) {
|
||||
$('#datatable_wrapper').hide();
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if($me->is(["Admin", "netowner", "salespartner"]) && ($me->is("employee") || $me->can(["Fibu", "Billing", "Preorderpricing", "Preorderbilling"]) || $me->address_id == 2187)): ?>
|
||||
<?php if($me->is(["Admin", "netowner", "salespartner"]) && ($me->is("employee") || $me->can(["Fibu", "Billing", "Preorderpricing", "Preorderbilling"])) || in_array($me->address_id, [1,209,5908,2187])): ?>
|
||||
<li class="has-submenu mobile-hide">
|
||||
<a href="#">
|
||||
<i class="fas fa-fw fa-money-from-bracket"></i> Backoffice <div class="arrow-down"></div>
|
||||
|
||||
Reference in New Issue
Block a user