-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
- | Name |
- GO Kalender ID |
- Microsoft Id |
- Kalenderrechte |
- Webhook |
- Webhook Timeout |
- Aktiv |
- |
-
-
- |
- |
- |
- |
- |
- |
- |
- |
-
-
-
- rights, true);
- $rights = "";
- foreach ($calenadarRights as $key => $value) {
- if ($key != $calendar->go_calendar_id) {
- $rights .= $calendars[$key]->user->name . " : " . $value . "
";
- }
- }
- ?>
+
+
+
+
+
-
-
-
-
+
\ No newline at end of file
diff --git a/Layout/default/Calendar/View.php b/Layout/default/Calendar/View.php
index 99c5474a9..cb5139b06 100644
--- a/Layout/default/Calendar/View.php
+++ b/Layout/default/Calendar/View.php
@@ -565,7 +565,7 @@ endforeach;
-
@@ -671,6 +671,7 @@ endforeach;
let requestUpdateColorUrl = "= self::getUrl("Calendar", "api", ['do' => 'updateCalendarColor']) ?>";
let requestDeleteUrl = "= self::getUrl("Calendar", "api", ['do' => 'deleteCalendarEvent']) ?>";
let requestUpdateEventsUrl = "= self::getUrl("api/v1/calendar")?>/calendarStream?user== $encryptedUser ?>";
+ let requestgetpreviewtUrl = "= self::getUrl("CalendarTemplate", "api", ['do' => 'getPreview']) ?>";
let calendarRights = '';
var holiDays = [];
diff --git a/Layout/default/CalendarTemplate/Form.php b/Layout/default/CalendarTemplate/Form.php
new file mode 100644
index 000000000..d08cad2fe
--- /dev/null
+++ b/Layout/default/CalendarTemplate/Form.php
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
+ - ">= MFAPPNAME_SLUG ?>
+
+ - ">Vorlagen
+ - = ($calendartemplates->id) ? "bearbeiten" : "Neu" ?>
+
+
+
+
= ($calendartemplates->id) ? "Vorlage bearbeiten" : "Neuer Vorlage" ?>
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Layout/default/CalendarTemplate/Index.php b/Layout/default/CalendarTemplate/Index.php
new file mode 100644
index 000000000..149e9d61a
--- /dev/null
+++ b/Layout/default/CalendarTemplate/Index.php
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/Calendar/CalendarController.php b/application/Calendar/CalendarController.php
index 0111085a8..1e605fee2 100644
--- a/application/Calendar/CalendarController.php
+++ b/application/Calendar/CalendarController.php
@@ -326,11 +326,13 @@ class CalendarController extends mfBaseController
protected function indexAction()
{
-
$this->layout()->setTemplate("Calendar/Index");
$calendars = CalendarModel::getAll();
+ $calendarTemplateEventTypes = CalendarTemplateModel::$calendarTemplateEventTypes;
+ $this->layout()->set("calendarTemplateEventTypes", $calendarTemplateEventTypes);
+ $calendartemplates = CalendarTemplateModel::getAll();
+ $this->layout()->set("calendartemplates", $calendartemplates);
$this->layout()->set("calendars", $calendars);
-
}
protected function addAction()
diff --git a/application/CalendarTemplate/CalendarTemplate.php b/application/CalendarTemplate/CalendarTemplate.php
new file mode 100644
index 000000000..87fcc74ed
--- /dev/null
+++ b/application/CalendarTemplate/CalendarTemplate.php
@@ -0,0 +1,59 @@
+$name == null) {
+
+ if (!$this->id) {
+ return null;
+ }
+
+ if ($name == "creator") {
+ $this->creator = mfValuecache::singleton()->get("Worker-id-" . $this->create_by);
+ if ($this->creator === null) {
+ $this->creator = new User($this->create_by);
+ if ($this->creator->id) {
+ mfValuecache::singleton()->set("Worker-id-" . $this->create_by, $this->creator);
+ }
+ }
+ return $this->creator;
+ }
+
+ if ($name == "editor") {
+ $this->editor = mfValuecache::singleton()->get("Worker-id-" . $this->edit_by);
+ if ($this->editor === null) {
+ $this->editor = new User($this->edit_by);
+ if ($this->editor->id) {
+ mfValuecache::singleton()->set("Worker-id-" . $this->edit_by, $this->editor);
+ }
+ }
+ return $this->editor;
+ }
+
+ $classname = ucfirst($name);
+ $idfield = $name . "_id";
+ $this->$name = mfValuecache::singleton()->get("mfObjectmodel-$name-" . $this->$idfield);
+ if (!$this->$name) {
+ $this->$name = new $classname($this->$idfield);
+ }
+
+ if ($this->$name->id) {
+ mfValuecache::singleton()->set("mfObjectmodel-$name-" . $this->$name->id, $this->$name);
+ return $this->$name;
+ } else {
+ return null;
+ }
+
+ }
+
+ return $this->$name;
+}
+
+}
\ No newline at end of file
diff --git a/application/CalendarTemplate/CalendarTemplateController.php b/application/CalendarTemplate/CalendarTemplateController.php
new file mode 100644
index 000000000..c74ac2e9d
--- /dev/null
+++ b/application/CalendarTemplate/CalendarTemplateController.php
@@ -0,0 +1,150 @@
+needlogin = true;
+ $me = new User();
+ $me->loadMe();
+ $this->me = $me;
+ $this->layout()->set("me", $me);
+
+ if (!$me->is(["Admin"])) {
+ $this->redirect("Dashboard");
+ }
+ }
+ protected function apiAction()
+ {
+ $r = $this->request;
+ $do=$r->do;
+ switch ($do) {
+ case "getPreview":
+ $event_type = $r->event_type;
+ $calendartemplates = CalendarTemplateModel::search(array("event_type"=>$event_type));
+ $result['status'] = "success";
+ $result['data'] = $calendartemplates;
+ break;
+ default:
+ $result['status'] = "error";
+ $result['message'] = "Aktion nicht gefunden";
+ break;
+ }
+ echo json_encode($result);
+ die();
+ }
+
+ protected function indexAction()
+ {
+ $this->layout()->setTemplate("CalendarTemplate/Index");
+ $calendartemplates = CalendarTemplateModel::getAll();
+ $calendarTemplateEventTypes=CalendarTemplateModel::$calendarTemplateEventTypes;
+ $this->layout()->set("calendarTemplateEventTypes", $calendarTemplateEventTypes);
+ $this->layout()->set("calendartemplates", $calendartemplates);
+ }
+ protected function addAction()
+ {
+ $this->layout()->setTemplate("CalendarTemplate/Form");
+ }
+
+ protected function editAction()
+ {
+ $id = $this->request->id;
+
+ if (!is_numeric($id) || !$id) {
+ $this->layout()->setFlash("Vorlage nicht gefunden", "error");
+ $this->redirect("CalendarTemplate");
+ }
+
+ $calendartemplates = new CalendarTemplate($id);
+ if ($calendartemplates->id != $id) {
+ $this->layout()->setFlash("Vorlage nicht gefunden", "error");
+ $this->redirect("CalendarTemplate");
+ }
+ $calendarTemplateEventTypes=CalendarTemplateModel::$calendarTemplateEventTypes;
+ $this->layout()->set("calendarTemplateEventTypes", $calendarTemplateEventTypes);
+ $this->layout()->set("calendartemplates", $calendartemplates);
+ return $this->addAction();
+ }
+
+ protected function saveAction()
+ {
+ $r = $this->request;
+ $id = $r->id;
+ //var_dump($r->get());exit;
+ if (is_numeric($id) && $id > 0) {
+ $mode = "edit";
+ $calendartemplates = new CalendarTemplate($id);
+ if (!$calendartemplates->id) {
+ $this->layout()->setFlash("Vorlagen nicht gefunden", "error");
+ $this->redirect("Calendar");
+ }
+ } else {
+ $mode = "add";
+ }
+
+ $data = [];
+ $data['event_type'] = trim($r->event_type);
+ $data['name'] = trim($r->name);
+ $data['is_reminder'] = trim($r->is_reminder);
+ $data['text'] = trim($r->text);
+
+
+ if (!$data['event_type']) {
+ $data['event_type']=NULL;
+ }
+ if (!$data['name']) {
+ $data['name']=NULL;
+ }
+ if (!$data['is_reminder']) {
+ $data['is_reminder']=0;
+ }
+ if (!$data['text']) {
+ $data['text']=NULL;
+ }
+
+
+// var_dump($_FILES);
+// var_dump($upload);
+// exit;
+
+
+ if ($mode == "edit") {
+ $calendartemplates->update($data);
+
+ } else {
+ $calendartemplates = CalendarTemplateModel::create($data);
+ }
+// var_dump($filestore);
+// exit;
+ $id = $calendartemplates->save();
+
+ if (!$id) {
+ $this->layout()->setFlash("Vorlage konnte nicht angelegt werden", "error");
+ $this->redirect("CalendarTemplate");
+ }
+
+ if ($mode == "edit") {
+ $this->layout()->setFlash("Vorlage erfolgreich geändert", "success");
+ } else if ($mode = "add") {
+ $this->layout()->setFlash("Vorlage erfolgreich angelegt", "success");
+ }
+ $this->redirect("Calendar");
+ }
+
+
+ protected function deleteAction()
+ {
+ $id = $this->request->id;
+ $calendartemplates = new CalendarTemplate($id);
+ if (!$calendartemplates->id || $calendartemplates->id != $id) {
+ $this->layout()->setFlash("Vorlage nicht gefunden.", "error");
+ $this->redirect("CalendarTemplate");
+ }
+
+ $calendartemplates->delete();
+ $this->redirect("Calendar");
+ }
+
+}
diff --git a/application/CalendarTemplate/CalendarTemplateModel.php b/application/CalendarTemplate/CalendarTemplateModel.php
new file mode 100644
index 000000000..6f65f34e0
--- /dev/null
+++ b/application/CalendarTemplate/CalendarTemplateModel.php
@@ -0,0 +1,134 @@
+"Termin",
+ "2"=>"IBN",
+ "3"=>"IBN E-Stmk",
+ "4"=>"IBN Snopp",
+ "5"=>"Störungen"
+ );
+ public static function find($data)
+ {
+
+ }
+
+ public static function create(array $data)
+ {
+ $model = new CalendarTemplate();
+
+ foreach ($data as $field => $value) {
+ if (property_exists(get_called_class(), $field)) {
+ if (substr($field, 0, 5) == "vlan_" && !$value) {
+ $model->$field = null;
+ continue;
+ }
+ $model->$field = $value;
+ }
+ }
+
+ $me = mfValuecache::singleton()->get("me");
+ if (!$me) {
+ $me = new User();
+ $me->loadMe();
+ mfValuecache::singleton()->set("me", $me);
+ }
+
+ if ($model->create_by === null) {
+ $model->create_by = $me->id;
+ }
+ if ($model->edit_by === null) {
+ $model->edit_by = $me->id;
+ }
+
+ return $model;
+ }
+
+ public static function getOne($id)
+ {
+ if (!is_numeric($id) || !$id) {
+ throw new Exception("Invalid number", 400);
+ }
+ $item = [];
+ $db = FronkDB::singleton();
+
+ $res = $db->select("CalendarTemplate", "*", "id=$id LIMIT 1");
+ if ($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ $item = new CalendarTemplate($data);
+ }
+ return $item;
+ }
+
+ public static function getAll()
+ {
+ $items = [];
+
+ $db = FronkDB::singleton();
+
+ $res = $db->select("CalendarTemplate", "*", "1=1");
+ if ($db->num_rows($res)) {
+ while ($data = $db->fetch_object($res)) {
+ $items[] = new CalendarTemplate($data);
+ }
+ }
+ return $items;
+
+ }
+
+ public static function getFirst()
+ {
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+ $res = $db->select("CalendarTemplate", "*", "$where ");
+ if ($db->num_rows($res)) {
+ $data = $db->fetch_object($res);
+ $item = new CalendarTemplate($data);
+ if ($item->id) {
+ return $item;
+ } else {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ public static function search($filter)
+ {
+ $items = [];
+ $db = FronkDB::singleton();
+
+ $where = self::getSqlFilter($filter);
+ $res = $db->select("CalendarTemplate", "*", "$where");
+ if ($db->num_rows($res)) {
+ while ($data = $db->fetch_object($res)) {
+ $items[] = new CalendarTemplate($data);
+ }
+ }
+ return $items;
+ }
+
+ private static function getSqlFilter($filter)
+ {
+ $where = "1=1 ";
+
+ //var_dump($filter);exit;
+ if (array_key_exists("event_type", $filter)) {
+ $event_type = $filter['event_type'];
+ if (is_numeric($event_type)) {
+ $where .= " AND event_type=$event_type";
+ }
+ }
+
+ //var_dump($filter, $where);exit;
+ return $where;
+ }
+
+}
diff --git a/db/migrations/20250114175252_calendar_template.php b/db/migrations/20250114175252_calendar_template.php
new file mode 100644
index 000000000..f2ef82b33
--- /dev/null
+++ b/db/migrations/20250114175252_calendar_template.php
@@ -0,0 +1,37 @@
+getEnvironment() == "thetool") {
+ $table = $this->table("CalendarTemplate", ["signed" => true]);
+
+ $table->addColumn("event_type", "integer", ["null" => false, "default" => "0"]);
+ $table->addColumn("name", "text", ["null" => false]);
+ $table->addColumn("is_reminder", "integer", ["null" => false, "default" => "0"]);
+ $table->addColumn("text", "text", ["null" => true]);
+ $table->addColumn("create_by", "integer", ["null" => false]);
+ $table->addColumn("edit_by", "integer", ["null" => false]);
+ $table->addColumn("create", "integer", ["null" => false]);
+ $table->addColumn("edit", "integer", ["null" => false]);
+ $table->save();
+ }
+
+ if ($this->getEnvironment() == "addressdb") {
+
+ }
+ }
+
+ public function down(): void
+ {
+ if ($this->getEnvironment() == "thetool") {
+ $this->table("CalendarTemplate")->drop()->save();
+ }
+ if ($this->getEnvironment() == "addressdb") {
+ }
+ }
+}
+?>
\ No newline at end of file
diff --git a/public/js/pages/Calendar/View.js b/public/js/pages/Calendar/View.js
index d9ccafb29..8f9464f57 100644
--- a/public/js/pages/Calendar/View.js
+++ b/public/js/pages/Calendar/View.js
@@ -2,6 +2,7 @@ var hidesearch = [2, 3, 4, 8];
var columnfilter = [7];
var columnoptions = '
';
+
const fileTypeClasses = {
'image/png': 'fa-file-png',
'image/jpeg': 'fa-file-jpg',
@@ -28,8 +29,8 @@ const fileTypeClasses = {
// Weitere Typen und Klassen hinzufügen...
};
-var calendar;
-var calendarEl = document.getElementById('calendar');
+let calendar;
+let calendarEl = document.getElementById('calendar');
calendarRights = JSON.parse(calendarRights);
function formatFileSize(bytes) {
@@ -76,16 +77,16 @@ document.addEventListener('DOMContentLoaded', function () {
}, 'json').done(function (json) {
if (json.success == true) {
- var userevents = [];
- var otherevents = [];
- var resources = [];
- var category = "";
- var rights = false;
- var movable = false;
- var resourceCounter = 0;
- var rrule = null;
- var duration = null;
- var rruleflag = false;
+ let userevents = [];
+ let otherevents = [];
+ let resources = [];
+ let category = "";
+ let rights = false;
+ let movable = false;
+ let resourceCounter = 0;
+ let rrule = null;
+ let duration = null;
+ let rruleflag = false;
let allDAy;
let cursorclass = "";
$.each($('.calendar-check'), function (index, value) {
@@ -445,21 +446,20 @@ document.addEventListener('DOMContentLoaded', function () {
minute: '2-digit',
second: '2-digit',
});
- var typeText;
+ let typeText;
if (obj.customer_info_type == 1) {
typeText = 'E-Mail';
} else if (obj.customer_info_type == 2) {
typeText = 'SMS';
}
- var title = `
Letzte gesendete Info (` + typeText + `):
+ let title = `
Letzte gesendete Info (` + typeText + `):
` + obj.customer_info_text.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1
$2') + `
gesendet an: ` + obj.customer_info_type_text + `
gesendet von: ` + obj.sendby + `
gesendet am: ` + germanDateTime + `
`;
- console.log(title);
- var tooltip = new Tooltip($('.customer-info-point'), {
+ let tooltip = new Tooltip($('.customer-info-point'), {
title: title,
placement: 'right',
trigger: 'hover',
@@ -505,7 +505,7 @@ document.addEventListener('DOMContentLoaded', function () {
let attendees = JSON.parse(data.data.attendees.attendees);
$.each(attendees, function (index, value) {
if (!Number.isInteger(value)) {
- var valueExists = $("#calendar-attendees option").filter(function () {
+ let valueExists = $("#calendar-attendees option").filter(function () {
return $(this).val() === value;
}).length > 0;
if (!valueExists) {
@@ -599,10 +599,10 @@ document.addEventListener('DOMContentLoaded', function () {
}
},
eventDidMount: function (info) {
- var eventstart = new Date(info.event.startStr);
- var eventend = new Date(info.event.endStr);
+ let eventstart = new Date(info.event.startStr);
+ let eventend = new Date(info.event.endStr);
- var title;
+ let title;
if (!info.event.allDay) {
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');
@@ -628,7 +628,7 @@ document.addEventListener('DOMContentLoaded', function () {
const obj = JSON.parse(info.event.extendedProps['attachments']);
let docs = "";
$.each(obj, function (index, value) {
- var filename;
+ let filename;
if (fileTypeClasses[value.contentType]) {
filename = fileTypeClasses[value.contentType];
} else {
@@ -666,7 +666,7 @@ document.addEventListener('DOMContentLoaded', function () {
}
- var tooltip = new Tooltip(info.el, {
+ let tooltip = new Tooltip(info.el, {
title: title,
placement: 'right',
delay: {hide: 50},
@@ -675,25 +675,25 @@ document.addEventListener('DOMContentLoaded', function () {
html: true,
});
- var tooltips = info.event.extendedProps['tooltips'] || [];
+ let tooltips = info.event.extendedProps['tooltips'] || [];
tooltips.push(tooltip);
info.event.setExtendedProp('tooltips', tooltips);
},
eventWillUnmount: function (info) {
- for (var tooltip of info.event.extendedProps['tooltips']) {
+ for (let tooltip of info.event.extendedProps['tooltips']) {
tooltip.dispose();
}
},
eventResize: function (info) {
- var start = info.event.start.getTime();
+ let start = info.event.start.getTime();
const offsetstart = getOffset(start);
start = (start / 1000 + offsetstart) * 1000;
- var end = info.event.end.getTime();
+ let end = info.event.end.getTime();
const offsetend = getOffset(end);
end = (end / 1000 + offsetend) * 1000;
- var id = info.event.id;
+ let id = info.event.id;
$.post(requestUpdateUrl, {
start: start,
end: end,
@@ -701,14 +701,14 @@ document.addEventListener('DOMContentLoaded', function () {
}, function (data) {
}).done(function (data) {
- var tooltip = new Tooltip(info.el, {
+ let tooltip = new Tooltip(info.el, {
title: info.event.extendedProps.description,
placement: 'right',
trigger: 'hover',
container: 'body'
});
- var tooltips = info.event.extendedProps['tooltips'] || [];
+ let tooltips = info.event.extendedProps['tooltips'] || [];
tooltips.push(tooltip);
info.event.setExtendedProp('tooltips', tooltips);
});
@@ -716,13 +716,13 @@ document.addEventListener('DOMContentLoaded', function () {
},
eventDrop: function (info) {
// sleep(2000).then(() => {
- var start = info.event.start.getTime();
+ let start = info.event.start.getTime();
const offsetstart = getOffset(start);
start = (start / 1000 + offsetstart) * 1000;
- var end = info.event.end.getTime();
+ let end = info.event.end.getTime();
const offsetend = getOffset(end);
end = (end / 1000 + offsetend) * 1000;
- var id = info.event.id;
+ let id = info.event.id;
$.post(requestUpdateUrl, {
start: start,
end: end,
@@ -797,7 +797,7 @@ document.addEventListener('DOMContentLoaded', function () {
if (typeof (EventSource) !== 'undefined') {
console.info('Starting connection...');
- var source = new EventSourcePolyfill(requestUpdateEventsUrl, {
+ let source = new EventSourcePolyfill(requestUpdateEventsUrl, {
// Specifying custom request headers
headers: {
'X-API-KEY': 'wcdqEHXcXl5f1sZTEHKPTutqpFBbRf55'
@@ -809,7 +809,7 @@ if (typeof (EventSource) !== 'undefined') {
}, false);
let jsondata;
source.addEventListener('error', function (e) {
- var txt;
+ let txt;
switch (Event.target.readyState) {
// if reconnecting
case EventSource.CONNECTING:
@@ -839,12 +839,12 @@ if (typeof (EventSource) !== 'undefined') {
if (!visibleCalendars.includes(event.calendar_id)) {
return;
}
- var cevent = calendar.getEventById(event.cal_events_id);
- var rights = false;
- var movable = false;
- var rrule = null;
- var duration = null;
- var rruleflag = false;
+ let cevent = calendar.getEventById(event.cal_events_id);
+ let rights = false;
+ let movable = false;
+ let rrule = null;
+ let duration = null;
+ let rruleflag = false;
let cursorclass = '';
if (event.rrule) {
rrule = event.rrule;
@@ -937,7 +937,7 @@ if (typeof (EventSource) !== 'undefined') {
} else if (event.change_type == '1' || !cevent) {
if (event.calendar_id == event.calendar_id) {
- var info = calendar.addEvent({
+ let info = calendar.addEvent({
id: event.cal_events_id,
title: event.name,
start: event.start_time,
@@ -964,7 +964,7 @@ if (typeof (EventSource) !== 'undefined') {
});
} else {
- var info = calendar.addEvent({
+ let info = calendar.addEvent({
id: event.cal_events_id,
title: event.name,
start: event.start_time,
@@ -992,7 +992,7 @@ if (typeof (EventSource) !== 'undefined') {
}
calendar.render();
} else if (event.change_type == '3') {
- var cevent = calendar.getEventById(event.cal_events_id);
+ let cevent = calendar.getEventById(event.cal_events_id);
cevent.remove();
}
@@ -1010,6 +1010,24 @@ $(document).ready(function () {
calendar.render();
});
+ $(document).on('show.bs.dropdown', '.dropdown', function () {
+ let previewMenue='';
+ $.getJSON(requestgetpreviewtUrl, {
+ event_type: $('#type').val()
+ }, function (data) {
+
+ }).done(function (data) {
+ ;
+
+ let counter =1;
+ $.each(data.data, function(index, item) {
+ previewMenue += '
' + item.data.name + '';
+ counter++;
+ });
+ $('.dropdown-menu').html(previewMenue);
+ });
+ });
+
$('body').on('click', '.fa-window-restore', function () {
$('.card').removeClass('card-fullscreen');
$('#card-size').removeClass('fa-window-restore').addClass('fa-window-maximize');
@@ -1084,7 +1102,7 @@ $(document).ready(function () {
});
$('body').on('click', '#add-event', function () {
- var valid = true;
+ let valid = true;
$('#EventModal .is-require').each(function (index, value) {
if ($(this).val() == "") {
@@ -1098,35 +1116,35 @@ $(document).ready(function () {
if (!valid) {
return;
}
- var attachments = [];
+ let attachments = [];
$('.doc-main-div').each(function (index, value) {
if ($(this).data('docid')) {
attachments.push($(this).data('docid'));
}
});
- var start = $('#start-date').val() + ' ' + $('#start-time').val();
- var end = $('#end-date').val() + ' ' + $('#end-time').val();
- var title = $('#name').val();
- var location = $('#location').val();
- var description = $('#description').val();
- var newkey = $('#attachments').data('newkey');
- var allday = 0;
- var reminder = $('#reminder').val();
- var type = $('#type').val();
- var busy = $('#busy').val();
- var customer;
- var customer_info_check = 0;
- var customer_info_text;
- var customer_info_type;
- var customer_info_type_text;
- var customer_info_reminder_check = 0;
- var private = $('.privacy-click');
- var privateflag = 0;
+ let start = $('#start-date').val() + ' ' + $('#start-time').val();
+ let end = $('#end-date').val() + ' ' + $('#end-time').val();
+ let title = $('#name').val();
+ let location = $('#location').val();
+ let description = $('#description').val();
+ let newkey = $('#attachments').data('newkey');
+ let allday = 0;
+ let reminder = $('#reminder').val();
+ let type = $('#type').val();
+ let busy = $('#busy').val();
+ let customer;
+ let customer_info_check = 0;
+ let customer_info_text;
+ let customer_info_type;
+ let customer_info_type_text;
+ let customer_info_reminder_check = 0;
+ let private = $('.privacy-click');
+ let privateflag = 0;
if (private.hasClass('fa-lock')) {
privateflag = 1;
}
- var users = [];
+ let users = [];
if ($('#allday').is(':checked')) {
allday = 1;
@@ -1178,7 +1196,7 @@ $(document).ready(function () {
$('body').on('click', '#update-event', function () {
- var valid = true;
+ let valid = true;
$('#EventModal .is-require').each(function (index, value) {
if ($(this).val() == "") {
@@ -1192,35 +1210,35 @@ $(document).ready(function () {
if (!valid) {
return;
}
- var attachments = [];
+ let attachments = [];
$('.doc-main-div').each(function (index, value) {
if ($(this).data('docid')) {
attachments.push($(this).data('docid'));
}
});
- var start = $('#start-date').val() + ' ' + $('#start-time').val();
- var end = $('#end-date').val() + ' ' + $('#end-time').val();
- var title = $('#name').val();
- var location = $('#location').val();
- var description = $('#description').val();
- var newkey = $('#attachments').data('newkey');
- var allday = 0;
- var reminder = $('#reminder').val();
- var type = $('#type').val();
- var busy = $('#busy').val();
- var customer;
- var customer_info_check = 0;
- var customer_info_text;
- var customer_info_type;
- var customer_info_type_text;
- var customer_info_reminder_check = 0;
- var private = $('.privacy-click');
- var privateflag = 0;
+ let start = $('#start-date').val() + ' ' + $('#start-time').val();
+ let end = $('#end-date').val() + ' ' + $('#end-time').val();
+ let title = $('#name').val();
+ let location = $('#location').val();
+ let description = $('#description').val();
+ let newkey = $('#attachments').data('newkey');
+ let allday = 0;
+ let reminder = $('#reminder').val();
+ let type = $('#type').val();
+ let busy = $('#busy').val();
+ let customer;
+ let customer_info_check = 0;
+ let customer_info_text;
+ let customer_info_type;
+ let customer_info_type_text;
+ let customer_info_reminder_check = 0;
+ let private = $('.privacy-click');
+ let privateflag = 0;
if (private.hasClass('fa-lock')) {
privateflag = 1;
}
- var users = [];
+ let users = [];
if ($('#allday').is(':checked')) {
allday = 1;
@@ -1240,7 +1258,7 @@ $(document).ready(function () {
}
- var id = $(this).data('id');
+ let id = $(this).data('id');
$('#calendar-users > option:selected').each(function () {
users.push($(this).val());
@@ -1305,8 +1323,8 @@ $(document).ready(function () {
$('body').on('click', '#delete-event', function () {
- var id = $(this).data('id');
- var users = [];
+ let id = $(this).data('id');
+ let users = [];
$('#calendar-users > option:selected').each(function () {
users.push($(this).val());
});
@@ -1343,10 +1361,10 @@ $(document).ready(function () {
});
$('body').on('change', '.color-input,.color-text-input', function (event, init = 0) {
- var bgcolors = [];
- var txtcolors = [];
- var calendar_id = [];
- var thisis = $(this);
+ let bgcolors = [];
+ let txtcolors = [];
+ let calendar_id = [];
+ let thisis = $(this);
$.each($('.color-input'), function (index, value) {
if ($(this).data('calendar_id')) {
bgcolors.push($(this).closest('div').find('.color-input').val());
@@ -1358,7 +1376,7 @@ $(document).ready(function () {
});
- var id = $('#calendar-id').data('id');
+ let id = $('#calendar-id').data('id');
let groups = getGroups();
$.post(requestUpdateColorUrl, {
id: id,
@@ -1381,11 +1399,11 @@ $(document).ready(function () {
} else {
refreshCalendarEvents()
}
- var resources = calendar.getResources();
+ let resources = calendar.getResources();
$.each(resources, function (index, value) {
value.remove();
});
- var resourceCounter = 0;
+ let resourceCounter = 0;
$.each($('.calendar-check'), function (index, value) {
if ($(this).prop('checked')) {
rights = true;
@@ -1405,8 +1423,8 @@ $(document).ready(function () {
;
function uploadajax(ttl, cl) {
- var fileList = $('#files-input').prop("files");
- var form_data = "";
+ let fileList = $('#files-input').prop("files");
+ let form_data = "";
form_data = new FormData();
form_data.append("upload_file", fileList[cl]);
@@ -1414,7 +1432,7 @@ $(document).ready(function () {
form_data.append("newkey", $('#attachments').data('newkey'));
- var request = $.ajax({
+ let request = $.ajax({
url: requestEventAttachmentUploadUrl,
cache: false,
contentType: false,
@@ -1423,10 +1441,10 @@ $(document).ready(function () {
data: form_data,
type: 'POST',
xhr: function () {
- var xhr = $.ajaxSettings.xhr();
+ let xhr = $.ajaxSettings.xhr();
if (xhr.upload) {
xhr.upload.addEventListener('progress', function (event) {
- var percent = 0;
+ let percent = 0;
if (event.lengthComputable) {
percent = Math.ceil(event.loaded / event.total * 100);
}
@@ -1453,10 +1471,10 @@ $(document).ready(function () {
$('body').on('change', '#files-input', function () {
- var fileList = $('#files-input').prop("files");
+ let fileList = $('#files-input').prop("files");
$('#uploadsts').html('');
- var i;
+ let i;
for (i = 0; i < fileList.length; i++) {
let newkey = $('#attachments').data('newkey');
const filetype = fileList[i].type;
@@ -1521,6 +1539,7 @@ $(document).ready(function () {
}
});
+
$('body').on('change', '#jumpevent', function () {
$('.event-search-result').removeClass('event-search-result');
if ($(this).val() == "" || $(this).val() == null) {
@@ -1552,7 +1571,7 @@ $(document).ready(function () {
return {
q: params.term, // Der Suchbegriff
term: params.term, // Der Suchbegriff
- calendars: visibleCalendars, // Die dynamische Variable, die du hinzufügen möchtest
+ calendars: visibleCalendars, // Die dynamische letiable, die du hinzufügen möchtest
cal_id: $('#calendar-id').data('calendarid')
};
},
@@ -1582,22 +1601,15 @@ $(document).ready(function () {
} else {
daytimetext = "nachmittags";
}
- let textTemplate;
- if ($(this).data('id') == 1) {
- textTemplate = `Sehr geehrter Kunde,
-Ihr Technikertermin findet am ` + formattedDate + ` ` + daytimetext + ` statt.
-Mit Freundlichen Grüßen
-Xinon GMbH`;
- } else if ($(this).data('id') == 2) {
- textTemplate = `Sehr geehrter Kunde,
-wir möchten Sie daran erinnern, dass Ihr Technikertermin am ` + formattedDate + ` ` + daytimetext + ` stattfindet.
-Mit Freundlichen Grüßen
-Xinon GMbH`;
- } else if ($(this).data('id') == 3) {
- textTemplate = formattedDate + ` zwischen ` + starttime + ` und ` + endtime;
- }
+ let text = $(this).data('text');
+ text = text.replace(/\[&&vmnm&&\]/g, daytimetext);
+ text = text.replace(/\[&&date&&\]/g, formattedDate);
+ text = text.replace(/\[&&start&&\]/g, starttime);
+ text = text.replace(/\[&&end&&\]/g, endtime);
- $('#customer-info-text').val(textTemplate);
+
+
+ $('#customer-info-text').val(text);
});
@@ -1657,7 +1669,7 @@ Xinon GMbH`;
let groupname = $.trim($(this).text());
$(this).html('
');
- var strLength = $(this).find('.cal-group-name-input').val().length * 2;
+ let strLength = $(this).find('.cal-group-name-input').val().length * 2;
$(this).find('.cal-group-name-input')[0].setSelectionRange(strLength, strLength);
@@ -1676,11 +1688,11 @@ Xinon GMbH`;
$(this).closest('.calendar-side-borders-sub').find('.form-check-input').prop('checked', false);
refreshCalendarEvents()
}
- var resources = calendar.getResources();
+ let resources = calendar.getResources();
$.each(resources, function (index, value) {
value.remove();
});
- var resourceCounter = 0;
+ let resourceCounter = 0;
$.each($('.calendar-check'), function (index, value) {
if ($(this).prop('checked')) {
rights = true;
@@ -1814,6 +1826,7 @@ Xinon GMbH`;
return groupsJson;
}
+
function checkGroupCheckboxes() {
$('.group-checkbox').each(function (index, value) {
let checked = 0;
@@ -1907,16 +1920,16 @@ Xinon GMbH`;
}, 'json').done(function (json) {
if (json.success == true) {
- var userevents = [];
- var otherevents = [];
- var resources = [];
- var category = "";
- var rights = false;
- var movable = false;
- var resourceCounter = 0;
- var rrule = null;
- var duration = null;
- var rruleflag = false;
+ let userevents = [];
+ let otherevents = [];
+ let resources = [];
+ let category = "";
+ let rights = false;
+ let movable = false;
+ let resourceCounter = 0;
+ let rrule = null;
+ let duration = null;
+ let rruleflag = false;
let allDAy = false;
let cursorclass = "";
$.each($('.calendar-check'), function (index, value) {