From 6917b1dce6abf5473c83941655d57ee9a2619c97 Mon Sep 17 00:00:00 2001 From: Daniel Spitzer Date: Mon, 27 Jan 2025 09:15:15 +0100 Subject: [PATCH] Achtung AddressModel Anpassungen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Features: • Termin Typen wurden erweitert o IBN ESTMK (Kundensuche alles außer Xinon) o IBN Snopp (Kundensuche alles außer Xinon) o Störungen (Ticketsuche)  Derzeit werden Ticket Informationen wie bei IBN (Betreff und Ort eingesetzt, wenn leer) bzw. die Beschreibung erhält den Ticket Link und das Subjekt des Tickets (Ticket Link derzeit nur im Outlook Anklickbar (offene Punkte Hyperlinks)) • Symbole der Termin Typen angepasst • Für Outlook werden für die verschiedenen Termintypen derzeit die Standard Kategorien in Deutsch hergenommen (Anfrage zwecks zentraler Kategorien läuft) o Gelbe Kategorie … IBN Xinon o Grüne Kategorie … IBN ESTMK o Lila Kategorie … IBN Snopp o Rote Kategorie … Störung • Filter wurden eingebaut o Es kann nun explizit nach Termintypen gefiltert werden o Es können auch Termintypen in Kombination gefiltert werden • Vorlagen können nun selbst erstellt und bearbeitet werden o Dynamische Felder  Datum [&&date&&] … Startdatum des Termins  Start [&&start&&] … Startuhrzeit des Termins  Ende [&&end&&] … Enduhrzeit des Termins  dyn. VM/NM [&&vmnm&&] … dynamisch vormittags oder nachmittags je nach Startzeit > 12:00 = nachmittags o Vorlagen sind jeweils für jeden IBN Termin Typ zu erstellen o Es darf nur 1ne Reminder Vorlage per Termintyp geben Bugfix: • Mehrfachanzeigebug vom gleichen Termin, wenn der Termin mehrfach in kurzer Zeit verschoben oder vergrößert/verkleinert wurde. • Tolltipps verschwinden jetzt nicht, wenn man direkt darauf fährt. --- Layout/default/Calendar/View.php | 96 ++++--- application/Address/AddressModel.php | 10 +- application/Calendar/CalendarController.php | 34 ++- application/Calendar/CalendarModel.php | 56 +++- .../CalendarTemplateModel.php | 2 +- public/css/pages/Calendar/View.css | 49 +++- public/img/estmk_logo.png | Bin 0 -> 1212 bytes public/img/snop-logo.png | Bin 0 -> 2347 bytes public/img/xinon-logo.png | Bin 0 -> 12391 bytes public/js/pages/Calendar/View.js | 246 ++++++++++++++++-- 10 files changed, 408 insertions(+), 85 deletions(-) create mode 100644 public/img/estmk_logo.png create mode 100644 public/img/snop-logo.png create mode 100644 public/img/xinon-logo.png diff --git a/Layout/default/Calendar/View.php b/Layout/default/Calendar/View.php index 459215a2c..8a5813aec 100644 --- a/Layout/default/Calendar/View.php +++ b/Layout/default/Calendar/View.php @@ -77,8 +77,27 @@ endforeach;
-
-

Kalender

+
+

Filter:

+
+ + + + +
-
@@ -96,13 +114,13 @@ endforeach;
-
-

Kalender +

Kalender
@@ -159,52 +177,11 @@ endforeach; user->name) ?: $specialCalendars[$calendar['calendar_id']] ?>

- $calendar): - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - user->name) ?: $specialCalendars[$calendar['calendar_id']] - ?> - - - +
@@ -393,7 +370,10 @@ endforeach; Typ
@@ -565,7 +545,8 @@ endforeach;
+
@@ -606,6 +588,19 @@ endforeach;
+
+
+ +
+ +
+
+
+ +
+
+
+
@@ -660,6 +655,7 @@ endforeach; let requestEventAttachmentTmpDeleteUrl = " 'deleteCalendarEventAttachmentTmp']) ?>"; let requestEventAttachmentUploadUrl = " 'uploadCalendarEventAttachment']) ?>"; let requestAddressUrl = " 'getAddress']) ?>"; + let requestTicketUrl = " 'getTicket']) ?>"; let requestInsertUrl = " 'insertCalendarEvent']) ?>"; let requestUpdateUrl = " 'updateCalendarEvent']) ?>"; let requestUpdateStateUrl = " 'updateCalendarEventState']) ?>"; diff --git a/application/Address/AddressModel.php b/application/Address/AddressModel.php index c349e74c8..4ab52d2e8 100644 --- a/application/Address/AddressModel.php +++ b/application/Address/AddressModel.php @@ -493,11 +493,19 @@ class AddressModel { if (array_key_exists("Controller!", $filter)) { $termstring = trim($filter['search_term!']); + $xinon= $filter['xinon']; $termExplode = explode(" ", $termstring); + if ($xinon == 1) { foreach ($termExplode as $term) { $wherestring .= " AND (`customer_number` LIKE '%" . $term . "%' OR `company` LIKE '%" . $term . "%' OR `firstname` LIKE '%" . $term . "%' OR `lastname` LIKE '%" . $term . "%' OR `street` LIKE '%" . $term . "%' OR `zip` LIKE '%" . $term . "%' OR `city` LIKE '%" . $term . "%') "; } - $where .= " AND customer_number > 0 $wherestring"; + $where .= " AND customer_number > 0 $wherestring"; + } else { + foreach ($termExplode as $term) { + $wherestring .= " AND (`company` LIKE '%" . $term . "%' OR `firstname` LIKE '%" . $term . "%' OR `lastname` LIKE '%" . $term . "%' OR `street` LIKE '%" . $term . "%' OR `zip` LIKE '%" . $term . "%' OR `city` LIKE '%" . $term . "%') "; + } + $where .= " AND customer_number is NULL $wherestring"; + } } // var_dump($filter, $where);exit; diff --git a/application/Calendar/CalendarController.php b/application/Calendar/CalendarController.php index 373b88a18..fae309a24 100644 --- a/application/Calendar/CalendarController.php +++ b/application/Calendar/CalendarController.php @@ -85,7 +85,10 @@ class CalendarController extends mfBaseController case "getAddress": $r = $this->request; $this->getAddress($r); - + die(); + case "getTicket"; + $r = $this->request; + $this->getTicket($r); die(); case "insertCalendarEvent": $r = $this->request; @@ -247,7 +250,8 @@ class CalendarController extends mfBaseController private function getAddress($r) { - $address = AddressModel::search(array("Controller!" => 'Calendar', "search_term!" => $r->term), array('count' => '20')); + $xinon = $r->xinon; + $address = AddressModel::search(array("Controller!" => 'Calendar', "search_term!" => $r->term, "xinon" => $xinon), array('count' => '20')); $mobiles = CalendarModel::$austrian_mobile_prefixes; $prefixes = array('0043', '43 ', '43', '0'); foreach ($address as $key => $value) { @@ -323,6 +327,32 @@ class CalendarController extends mfBaseController echo trim($json); die(); } + private function getTicket($r) + { + + $project = new XinonProject(); + + $data=$project->searchSupportTickets($r->term); + + foreach ($data as $key => $value) { + $rows[] = array( + 'id' => $value['id'], + 'text' => 'Ticket: '.$value['id']." ".$value['subject'], + 'subject' => $value['subject'], + 'mail' => $value['customField5'], + 'mobilenumber' => $value['customField4'], + 'location' => $value['customField3'], + 'name' => $value['customField2'] + ); + } + $json['incomplete_results'] = false; + $json['total_count'] = count($rows); + $json['items'] = $rows; + $json = json_encode($json); + echo trim($json); + + die(); + } protected function indexAction() { diff --git a/application/Calendar/CalendarModel.php b/application/Calendar/CalendarModel.php index dd99a51fd..5ca1ca2ff 100644 --- a/application/Calendar/CalendarModel.php +++ b/application/Calendar/CalendarModel.php @@ -42,7 +42,12 @@ class CalendarModel '#dbbeb3', '#e9aebc', '#b5cae7', '#dec2d4', '#aebbd5', '#e2baaf', '#b6ebd5', '#a9c4bb', '#d7d2c5', '#d7e3d4' ]; - + public static $eventCategories = array( + 2 => 'Gelbe Kategorie', //Xinon IBN + 3 => 'Grüne Kategorie', //ESTMK IBN + 4 => 'Lila Kategorie', //Snopp IBN + 5 => 'Rote Kategorie', //Störung + ); public static $specialCalendarColors = array(997 => '#bd0000', 998 => '#8000A3', 999 => '#08769b'); public static function convertToSummertime($timestamp) @@ -174,10 +179,16 @@ class CalendarModel $where = ""; } $visibleCalendars = $r->visibleCalendars; + $visibleCalendarTypes = $r->visibleCalendarTypes; if ($visibleCalendars) { $where .= " AND calendar_id IN (" . implode(",", $visibleCalendars) . ")"; $whereTimeRecording = " AND `Calendar`.`go_calendar_id` IN (" . implode(",", $visibleCalendars) . ")"; } + if ($visibleCalendarTypes) { + $where .= " AND event_type IN (" . implode(",", $visibleCalendarTypes) . ")"; + } + + $sql = "SELECT `cal_events`.id,`cal_events`.categories, uuid, calendar_id, `cal_events`.user_id, start_time, end_time, timezone, all_day_event, `cal_events`.name,`cal_calendars`.name calendar_name, description, location, repeat_end_time, reminder, ctime,cname, mtime,mname, muser_id, busy, status, resource_event_id, private, rrule, `cal_events`.background, `cal_events`.files_folder_id, read_only, category_id, exception_for_event_id, recurrence_id, is_organizer,event_type,busy,recurrence,rrule_events FROM cal_events INNER JOIN `cal_calendars` ON (`cal_calendars`.`id`=`cal_events`.`calendar_id`) WHERE 1=1 $where "; $res = $dbcal->query($sql); @@ -407,11 +418,10 @@ WHERE `TimerecordingCategory`.`hourday`!='1' AND `TimerecordingCategory`.`hourda $sql = "SELECT `id`,`name`,`customer_info_send`,`start_time`,`end_time`,`event_type` FROM `cal_events` WHERE `customer_info_reminder`= 1 AND `customer_info_send` IS NOT NULL AND `event_type` > 1 AND `start_time` BETWEEN $timecalcstart AND $timecalcend"; $res = $dbcal->query($sql); - while ($data = $dbcal->fetch_array($res)) - { + while ($data = $dbcal->fetch_array($res)) { $rows[] = array( 'id' => $data['id'], - 'name' => $data['name'], + 'name' => $data['name'], 'customer_info_send' => $data['customer_info_send'], 'start_time' => $data['start_time'], 'end_time' => $data['end_time'], @@ -608,13 +618,15 @@ WHERE `TimerecordingCategory`.`hourday`!='1' AND `TimerecordingCategory`.`hourda header('Content-Type: application/json'); $db = self::dbKalender(); - $sql = "SELECT `cal_events`.id,microsoft_id,uuid,ms_user_id FROM `cal_events` INNER JOIN `cal_calendars` ON (`cal_calendars`.`id`=`cal_events`.`calendar_id`) WHERE `cal_events`.id = '" . $id . "' LIMIT 1"; + $sql = "SELECT `cal_events`.id,microsoft_id,uuid,ms_user_id,categories FROM `cal_events` INNER JOIN `cal_calendars` ON (`cal_calendars`.`id`=`cal_events`.`calendar_id`) WHERE `cal_events`.id = '" . $id . "' LIMIT 1"; $res = $db->query($sql); if ($db->num_rows($res)) { $result = $db->fetch_object($res); $microsoft_id = $result->microsoft_id; $cal_events_id = $result->uuid; $microsoft_user_id = $result->ms_user_id; + $categories = json_decode($result->categories, true); + } $updateArray['start_time'] = $start; @@ -643,13 +655,31 @@ WHERE `TimerecordingCategory`.`hourday`!='1' AND `TimerecordingCategory`.`hourda else $updateArray['reminder'] = $reminder; } - if ($type) + if ($type) { $updateArray['event_type'] = $type; + $calEventCategories = self::$eventCategories; + foreach ($calEventCategories as $key => $value) { + $arraykey = array_search($value, $categories); + if (!empty($arraykey || $arraykey === 0)) { + unset($categories[$arraykey]); + } + } + if ($type > 1) { + $categories[] = $calEventCategories[$type]; + $categories = array_values($categories); + } + if ($categories) { + $updateArray['categories'] = json_encode($categories); + } else + $updateArray['categories'] = NULL; + } + if (isset($busy)) $updateArray['busy'] = $busy; - if ($type == 2) { + if ($type == 2 || $type == 3 || $type == 4) { + if ($r->customer) $updateArray['customer'] = $r->customer; else @@ -815,7 +845,15 @@ WHERE `TimerecordingCategory`.`hourday`!='1' AND `TimerecordingCategory`.`hourda if ($reminder == 'NULL') { $reminder = NULL; } - if ($type == 2) { + $calEventCategories = self::$eventCategories; + if ($type > 1) { + $categories[] = $calEventCategories[$type]; + } + if ($categories) { + $categories = json_encode($categories); + } else + $categories = NULL; + if ($type == 2 || $type == 3 || $type == 4) { $customer = $r->customer; $customer_info_type = $r->customer_info_type; $customer_info_text = $r->customer_info_text; @@ -836,7 +874,7 @@ WHERE `TimerecordingCategory`.`hourday`!='1' AND `TimerecordingCategory`.`hourda $customer_info_send = NULL; } - $dataarray = array("start_time" => $start, 'end_time' => $end, 'name' => $title, 'description' => $description, 'location' => $location, 'calendar_id' => $user_id, 'uuid' => "a5eb79b3-fca7-5378-a09e-" . rand(100000000000, 999999999999), 'user_id' => 1, 'timezone' => 'Europe/Amsterdam', 'all_day_event' => 0, 'repeat_end_time' => 0, 'reminder' => $reminder, 'ctime' => time(), 'cname' => $me->name, 'mtime' => time(), 'mname' => $me->name, 'user_id' => 1, 'busy' => $busy, 'status' => 'CONFIRMED', 'resource_event_id' => 0, 'private' => $privateflag, 'rrule' => '', 'background' => 'EBF1E2', 'files_folder_id' => 0, 'read_only' => 0, 'exception_for_event_id' => 0, 'recurrence_id' => 0, 'is_organizer' => 1, 'event_type' => $type, 'customer' => $customer, 'customer_info' => $customer_info, 'customer_info_send' => $customer_info_send, 'customer_info_reminder' => $customer_info_reminder_check); + $dataarray = array("start_time" => $start, 'end_time' => $end, 'name' => $title, 'description' => $description, 'location' => $location, 'calendar_id' => $user_id, 'uuid' => "a5eb79b3-fca7-5378-a09e-" . rand(100000000000, 999999999999), 'user_id' => 1, 'timezone' => 'Europe/Amsterdam', 'all_day_event' => 0, 'repeat_end_time' => 0, 'reminder' => $reminder, 'ctime' => time(), 'cname' => $me->name, 'mtime' => time(), 'mname' => $me->name, 'user_id' => 1, 'busy' => $busy, 'status' => 'CONFIRMED', 'resource_event_id' => 0, 'private' => $privateflag, 'rrule' => '', 'background' => 'EBF1E2', 'files_folder_id' => 0, 'read_only' => 0,'categories'=>$categories, 'exception_for_event_id' => 0, 'recurrence_id' => 0, 'is_organizer' => 1, 'event_type' => $type, 'customer' => $customer, 'customer_info' => $customer_info, 'customer_info_send' => $customer_info_send, 'customer_info_reminder' => $customer_info_reminder_check); $db->insert("cal_events", $dataarray); $event_id = $dataarray['uuid']; diff --git a/application/CalendarTemplate/CalendarTemplateModel.php b/application/CalendarTemplate/CalendarTemplateModel.php index 664e85912..bf4a51278 100644 --- a/application/CalendarTemplate/CalendarTemplateModel.php +++ b/application/CalendarTemplate/CalendarTemplateModel.php @@ -9,7 +9,7 @@ class CalendarTemplateModel public static $calendarTemplateEventTypes=array( "1"=>"Termin", - "2"=>"IBN", + "2"=>"IBN Xinon", "3"=>"IBN E-Stmk", "4"=>"IBN Snopp", "5"=>"Störungen" diff --git a/public/css/pages/Calendar/View.css b/public/css/pages/Calendar/View.css index 86fdc2843..2ea230c06 100644 --- a/public/css/pages/Calendar/View.css +++ b/public/css/pages/Calendar/View.css @@ -11,7 +11,7 @@ .fc-timegrid-event-short .fc-event-main-frame { flex-direction: row; overflow: hidden; - margin-left: 10px; + margin-left: 13px; } .fc-toolbar { @@ -121,7 +121,7 @@ .tooltip[x-placement^="right"], .popper[x-placement^="right"] { - margin-left: 5px; + margin-left: 0px; } .popper[x-placement^="right"] .popper__arrow, @@ -130,7 +130,7 @@ border-left-color: transparent; border-top-color: transparent; border-bottom-color: transparent; - left: -5px; + left: 0px; top: calc(50% - 5px); margin-left: 0; margin-right: 0; @@ -333,8 +333,10 @@ thead .fc-day-today .fc-scrollgrid-sync-inner .fc-col-header-cell-cushion { .fc-event-type { position: absolute; - top: 0; + top: 1px; left: -4px; + opacity: 0.8; + filter: drop-shadow(1px 1px 1px #000); } .fc-event-recurrence { @@ -673,4 +675,43 @@ thead .fc-day-today .fc-scrollgrid-sync-inner .fc-col-header-cell-cushion { } .cursor-alias{ cursor: alias; +} +.fa-calendar-alert +{ + font-size: 15px; + vertical-align: top; + margin-top: -1px; +} + + +.fa-calendar-alert:after { + color: #ff0000; + opacity: 0.7; +} +.fa-calendar-alert:before { + color: #fff; + +} +.fa-calendar-alert-search +{ + font-size: 22px; + +} +.logo-top-search +{ + height: 20px; + vertical-align: top; + cursor: pointer; +} +.btn-light-search +{ + border-color: #e5e5e5; + padding: 3px 6px; +} +.top-search-filter +{ + filter:grayscale(100%); +} +.fc-event-time { + z-index: 100; } \ No newline at end of file diff --git a/public/img/estmk_logo.png b/public/img/estmk_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fb3d64d24de2ef6817f2b0cd9c0a768b3317a44d GIT binary patch literal 1212 zcmV;t1Vj6YP)EX>4Tx04R}tkv&MmP!xqv(@I4u4y_>KkfA!+MMVS`sbUc5-E>hxsNufoI7as59yn7Ds-3JKGDpSqC9H45J zkxsMq8!y!-yFex+bCz$X&VG2O6;H;AV< zEuHf|afFp6h4`F!+@K2*KXP4m`HgeQVS#5xjBI+II6^Fzx>)XFRyI`PDdMQ2YLqYJ zTvj-5aaOB!*1jiyVW^<3WVlXi1PLr5i4;W0sH1`^EW~KnNHLM7^SFn9*zu>xC6lWH zMvev4ph9x|;D7LYwq|j1!c7Xrfu0xJ{ul*y9Sx0hc?#(3371k|X(P3B@Aten#Jv2g0{N-y{D4^000SaNLh0L z01ejw01ejxLMWSf00007bV*G`2k8M76c{I)21scD00Ov4L_t(&-tC!9NEBfh$A9mv zJDaZg!KPVBV31S_YWPLRphE>g9XfQ%LuaW=9YR6~xx9*&(7s8A51kiD)LN zRN{u_=dO*bJ3Bk`cI~q4t~={A%l^;r`!c_o=l?vRzyood2keMI8JjS}dV@U$yZkxyI;0U+@S%Y3W|WHT<8fEEQ%ald>DIiiBy zZ1Q^ps7ev4$B!aBwmy(y?XVpWvu$i-14K|4I8S566{?GyP(4Lif5V&lBBRT_3@`Nn z(jJgY$L`Zmad}TerPOzrb4PC@rDWuHPtx^CJyKKBzUL7Cs{X*ml-4B$sVzV2sENze zBlds<3Tqq%iNrVT0a2AAM?rpU4%(Bo>`t$#r{O4*t1o#Ue3ZR9l1Ncg z0ltSnI12)TD*wrhPG~-OjiJS7^amfhKeXBpT~E8i{x3lkQ9y}Wl?!H zKsPmagUtUKp>OV%vsp_ww|M=t3n^t<`z#q}%UC0%2Z-IGHs7XdcSor7aquH zUbR~VwXu|@@uGY9gqdpg@_PeR7dKMotERA^6p!#`4L~ziS&B>%)W%8Se#A7A4ytu^iyg6_B4?k0BUUusodzbQeSDV09{8XQsz3DO-Vez>bR$c7V5-v~;!2 aPW%Oq%&0000^zUE*o0|V#%;syrz{! zMT&_x2PvFL_yV3tw%33Ek0+mb@8fK#i(S0tzTFQLuE@RMr^`K3T9kyPUnM~bmSwpl zTciL#pJw9q0ZM0M2#FfnHGAXW4U-S_4qjJ2_QvtIE(^qt`)~WsTzBsAFjhB8Ud$Ls zwfee5;?K8GJl4bPTb=j|8fh%+zc@wrm6I%tx9f9nWUd(8xOHOmwn)nv-ECLYreJi ze985aMl`Sm+NU&_N16zvCG0Fg`(h*{2mwk*=y-&asSiLHH z{_6`2-#kjKl;rSBeThiOhk);`ip2JNZ~OAu?A$(KBJ^UZEiv6FFxsxJj;2hr8f-Cz zH=d?)CP`S64G-fH8+J|6wQ+{(Tq}p4TZdPaq_RQK(o^5F_ovVQu^EX%y!PWjMvXtV zaT1XrGuDkT7H?=0=U5-gQy?G|5CNVqu~mij<*L+}bV$dx1-iFP5sUdu9_i)ut63sn zkje(!bnj_ho=N=(coMLB+ugTp9CHi9YjdnZjXRSBY4HXHvg{xhIbmsXaG4V(BEGIh z%Rq_Nbva^jA1~L!=xc+_pNfNp?8X|~Z#_$*wM-)64c__PFKyfV%je$Lb!8u^s!$kK zmr7uK=C@3soCqN;!C($$B~pQw7AZly5!#J#lU3Z5hhriXlIlz=<44;mj>f=(P?q&K z=h<-G7;Y>81SaOwwW0h7@Kx=_{Ld^IUiMC4vD6dQMmq+=Oc5bLDvMB{6euZBLJ@j~ zN+CsICP8&HPFQWUA0Z$!TxICSNiy99q+UTpAk$sB5kS{uux@QCz#=0>$H`tW5!KCO zxQF`@WrGlw06_?N5!gUp@U}D&nN1ZsN9M`&=5b84Mtj3uH_@=I^U9Ae`@ejWkwBLX zNWcmR6=DSen^BXCkx2!_dp**9MOu3ExbXn3EaF0p2n1kp<24PSLm4%D_i{Qcfey%R zJC8CEQd;U;CecEm7gM2^O4#vnVm?khSpJGCdm(c#5(y{n3s}*tE_4y3uR#P2^koNO zC02r!5J^jDEHb7ELXFl{P{FdAOAZNO7a!6pl0di^rsaU?K$AJzgP_s2&1ieGZAXiT z57bsDb+UERLls)q6-alKK!q#ril&E4>8MwY1<-AQsmwcJVs#KKkqoGJRKY|bEH+ig zng}6i9s~mFqVe&H1oc^mxmky~cQVAg>U3VUK=-C;Ou}EIy&>0Yt`DHyP>%td)`lvQ zmihJLjkYbo8yRc1bEUyZiR^VUPtDOgGPwds zBNDZe9s|%Z-}%=Ph?UhLuq1LBl!*wl1*lu&$N^Kpan0l`S8VVW>2)Rb=Nsed%5XoZX)p}fHna?PXy|lz6!)jLhHbgKGlH` zu+YAMnn^Y}VHa5x0`1>Hwu7%_K`>4zqlw-N!uJeR-b@~_gzcvh51u!sj^=L6sxko759OI;f zFjd8-YA6M?l@Qqys?yGBnQsaybJ?D&!5#^LSfyrg%# z)sYf9Bx?8Y`tk@jK)4pNRYX?>)muULmN8u(rXxT)5m8MMd5Y?IocxJ4V(pL}o+h)d z&it7)wRufxE_E{ZQR>_KpL+Vh%6717U_yT#T@)$e&Dsbm`hOO{ULh?qvFKbw+=G|5N++ zv1VPc@0d7r{J_S6Yfc5p`flq4`l9=ei^$pyNOV-lTv;IWV|a58rSmbuFivZ4sa7e( zAAb2yPycnTy;a0qyLR4t+Xk<*wl8R3*rA+odFZ{2y{Hy~*+c!zyxZynzjBh%@BY1a z?}r~}>(U$IukF4&%vOF#d+912_b&^C@C~)8*3;7m+Q0S6pPzZ@QZ_E*gWFg)f8~xV zqE7DzGUMH*tqe?6dU~o}h`&&qN<8uMZ=X5FCr%a1>wj9!#Yz;G R?Oy-@002ovPDHLkV1jp*Zw~+f literal 0 HcmV?d00001 diff --git a/public/img/xinon-logo.png b/public/img/xinon-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..67669d6e434bdef596134da1c2582843301949c1 GIT binary patch literal 12391 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 literal 0 HcmV?d00001 diff --git a/public/js/pages/Calendar/View.js b/public/js/pages/Calendar/View.js index 8f9464f57..0180e7a0b 100644 --- a/public/js/pages/Calendar/View.js +++ b/public/js/pages/Calendar/View.js @@ -399,7 +399,9 @@ document.addEventListener('DOMContentLoaded', function () { isOrganizer = data.data.isorganizer.isorganizer; if (data.data.type.type == "1") { $('.customer-div').hide(); - } else if (data.data.type.type == "2") { + $('.ticket-div').hide(); + } else if (data.data.type.type == "2" || data.data.type.type == "3" || data.data.type.type == "4") { + $('.ticket-div').hide(); $('.customer-div').show(); if (data.data.customer.customer) { $('#customer').html(''); @@ -467,6 +469,32 @@ document.addEventListener('DOMContentLoaded', function () { html: true }); } + } else if (data.data.type.type == "5") { + $('.ticket-div').show(); + $('.customer-div').hide(); + if (data.data.customer.customer) { + $('#customer').html(''); + } else { + $('#customer').html(''); + } + $('#ticket').select2({ + placeholder: "Ticket", + minimumInputLength: 3, + dropdownParent: jQuery('#relContainer3'), + // dropdownParent: $('#EventModal'), + language: "de", + ajax: { + url: requestTicketUrl, + dataType: 'json', + delay: 250, + processResults: function (data) { + // Transforms the top-level key of the response object from 'items' to 'results' + return { + results: data.items + }; + } + } + }) } if (isOrganizer == "1") { $('.event-organizer-div').hide(); @@ -649,7 +677,23 @@ document.addEventListener('DOMContentLoaded', function () { if (info.event.extendedProps['event_type'] == '2') { - info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); + // info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); + info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); + } + if (info.event.extendedProps['event_type'] == '3') { + + // info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); + info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); + } + if (info.event.extendedProps['event_type'] == '4') { + + // info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); + info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); + } + if (info.event.extendedProps['event_type'] == '5') { + + // info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); + info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); } if (info.event.extendedProps['privateflag'] == 1) { info.el.querySelector(".fc-event-title").insertAdjacentHTML("afterend", "
"); @@ -686,7 +730,7 @@ document.addEventListener('DOMContentLoaded', function () { } }, eventResize: function (info) { - + info.event.remove(); let start = info.event.start.getTime(); const offsetstart = getOffset(start); start = (start / 1000 + offsetstart) * 1000; @@ -715,7 +759,7 @@ document.addEventListener('DOMContentLoaded', function () { }, eventDrop: function (info) { - // sleep(2000).then(() => { + info.event.remove(); let start = info.event.start.getTime(); const offsetstart = getOffset(start); start = (start / 1000 + offsetstart) * 1000; @@ -826,19 +870,31 @@ if (typeof (EventSource) !== 'undefined') { source.addEventListener('message', function (e) { // document.getElementById('result').innerHTML += e.data + '
'; let checkbox = $(".form-check-input"); + 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')); + visibleCalendars.push(parseInt($(this).data('calendar_id'))); + } + }); + calendarFilter.each(function () { + if (!$(this).hasClass('top-search-filter')) { + visibleCalendarTypes.push(parseInt($(this).data('ctype'))); } }); jsondata = JSON.parse(e.data); + jsondata.forEach(function (event) { - if (!visibleCalendars.includes(event.calendar_id)) { + if (!visibleCalendars.includes(parseInt(event.calendar_id))) { return; } + if (visibleCalendarTypes.length > 0 && !visibleCalendarTypes.includes(parseInt(event.event_type))) { + return; + } + let cevent = calendar.getEventById(event.cal_events_id); let rights = false; let movable = false; @@ -875,6 +931,7 @@ if (typeof (EventSource) !== 'undefined') { if (event.change_type == '2' && cevent) { if (cevent) { if (event.calendar_id == event.calendar_id) { + // console.log(jsondata); cevent.remove(); calendar.addEvent({ id: event.cal_events_id, @@ -904,6 +961,40 @@ if (typeof (EventSource) !== 'undefined') { cname: event.cname, busy: event.busy }); + // cevent.setProp('title', event.name); + // console.log(event.start_time); + // console.log(event.end_time); + // console.log(event.name); + // cevent.setDates(event.start_time, event.end_time); + // + // // Farben und Klassennamen + // cevent.setProp('backgroundColor', event.bgColor); + // cevent.setProp('textColor', event.txtColor); + // cevent.setProp('classNames', [ + // 'cal-class-group-' + event.calendar_id, + // 'cal-class-id-' + event.cal_events_id, + // cursorclass + // ]); + // cevent.setExtendedProp('description', event.description); + // cevent.setExtendedProp('calendar_id', event.calendar_id_check); + // cevent.setExtendedProp('location', event.location); + // cevent.setExtendedProp('event_type', event.event_type); + // cevent.setExtendedProp('attachment', event.attachment); + // cevent.setExtendedProp('attachments', event.attachments); + // cevent.setExtendedProp('privateflag', event.privateflag); + // cevent.setExtendedProp('rruleflag', event.rruleflag); + // cevent.setExtendedProp('rrule', event.rrule); + // cevent.setExtendedProp('duration', event.duration); + // cevent.setExtendedProp('resourceId', event.calendar_id); + // cevent.setExtendedProp('calendar_name', event.calendar_name); + // cevent.setExtendedProp('clickable', event.rights); + // cevent.setExtendedProp('mtime', event.mtime); + // cevent.setExtendedProp('mname', event.mname); + // cevent.setExtendedProp('ctime', event.ctime); + // cevent.setExtendedProp('cname', event.cname); + // cevent.setExtendedProp('busy', event.busy); + // cevent.setProp('editable', movable); + } else { cevent.remove(); calendar.addEvent({ @@ -1011,16 +1102,16 @@ $(document).ready(function () { }); $(document).on('show.bs.dropdown', '.dropdown', function () { - let previewMenue=''; + let previewMenue = ''; $.getJSON(requestgetpreviewtUrl, { event_type: $('#type').val() }, function (data) { }).done(function (data) { - ; + ; - let counter =1; - $.each(data.data, function(index, item) { + let counter = 1; + $.each(data.data, function (index, item) { previewMenue += '
  • ' + item.data.name + '
  • '; counter++; }); @@ -1067,9 +1158,11 @@ $(document).ready(function () { $('#customer-info-check-info').empty(); $('#customer-info-type').val('1'); $('#customer').val(''); + $('#ticket').val(''); $('.event-organizer-div').hide(); $('#calendar-attendees').val('').trigger('change'); $('.customer-div').hide(); + $('.ticket-div').hide(); $('.calendar-users-all').hide(); $('#EventModalLabel span').text('Termin erstellen'); $('#EventModalLabel .fa-calendar-symbol').addClass('fa-calendar-circle-plus'); @@ -1152,7 +1245,7 @@ $(document).ready(function () { if ($('#customer-info-check').is(':checked')) { customer_info_check = 1; } - if (type == '2') { + if (type == '2' || type == '3' || type == '4') { customer_info_text = $('#customer-info-text').val(); customer_info_type = $('#customer-info-type').val(); customer_info_type_text = $('#customer-info-type-text').val(); @@ -1247,7 +1340,7 @@ $(document).ready(function () { if ($('#customer-info-check').is(':checked')) { customer_info_check = 1; } - if (type == '2') { + if (type == '2' || type == '3' || type == '4') { customer_info_text = $('#customer-info-text').val(); customer_info_type = $('#customer-info-type').val(); customer_info_type_text = $('#customer-info-type-text').val(); @@ -1259,7 +1352,8 @@ $(document).ready(function () { } let id = $(this).data('id'); - + const cevent = calendar.getEventById(id); + cevent.remove(); $('#calendar-users > option:selected').each(function () { users.push($(this).val()); }); @@ -1392,6 +1486,17 @@ $(document).ready(function () { } }) }); + + + $('body').on('click', '.btn-light-search', function (event, init = 0) { + if ($(this).hasClass('top-search-filter')) { + $(this).removeClass('top-search-filter'); + } else { + $(this).addClass('top-search-filter'); + } + refreshCalendarEvents(); + }); + $('body').on('change', '.calendar-check', function (event, init = 0) { if ($(this).prop('checked')) { @@ -1514,10 +1619,12 @@ $(document).ready(function () { }) $('body').on('change', '#type', function () { + $('#customer').val(''); if ($(this).val() == "1") { $('.customer-div').hide(); } else if ($(this).val() == "2") { $('.customer-div').show(); + $('.ticket-div').hide(); $('#customer').select2({ placeholder: "Kunden Suche", minimumInputLength: 3, @@ -1528,6 +1635,12 @@ $(document).ready(function () { url: requestAddressUrl, dataType: 'json', delay: 250, + data: function (params) { + return { + term: params.term, + xinon: 1, + }; + }, processResults: function (data) { // Transforms the top-level key of the response object from 'items' to 'results' return { @@ -1536,6 +1649,84 @@ $(document).ready(function () { } } }); + } else if ($(this).val() == "3") { + $('.customer-div').show(); + $('.ticket-div').hide(); + $('#customer').select2({ + placeholder: "Kunden Suche", + minimumInputLength: 3, + // dropdownParent: $('#EventModal'), + dropdownParent: jQuery('#relContainer2'), + language: "de", + ajax: { + url: requestAddressUrl, + dataType: 'json', + delay: 250, + data: function (params) { + return { + term: params.term, + xinon: 0, + }; + }, + + processResults: function (data) { + // Transforms the top-level key of the response object from 'items' to 'results' + return { + results: data.items + }; + } + } + }); + } else if ($(this).val() == "4") { + $('.customer-div').show(); + $('.ticket-div').hide(); + $('#customer').select2({ + placeholder: "Kunden Suche", + minimumInputLength: 3, + // dropdownParent: $('#EventModal'), + dropdownParent: jQuery('#relContainer2'), + language: "de", + ajax: { + url: requestAddressUrl, + dataType: 'json', + delay: 250, + data: function (params) { + return { + term: params.term, + xinon: 0, + }; + }, + + processResults: function (data) { + // Transforms the top-level key of the response object from 'items' to 'results' + return { + results: data.items + }; + } + } + }); + } + else if ($(this).val() == "5") { + $('.customer-div').hide(); + $('.ticket-div').show(); + $('#ticket').select2({ + placeholder: "Ticket", + minimumInputLength: 3, + dropdownParent: jQuery('#relContainer3'), + // dropdownParent: $('#EventModal'), + language: "de", + ajax: { + url: requestTicketUrl, + dataType: 'json', + delay: 250, + processResults: function (data) { + // Transforms the top-level key of the response object from 'items' to 'results' + return { + results: data.items + }; + } + } + }) } }); @@ -1608,7 +1799,6 @@ $(document).ready(function () { text = text.replace(/\[&&end&&\]/g, endtime); - $('#customer-info-text').val(text); }); @@ -1636,6 +1826,18 @@ $(document).ready(function () { } + }); + $('body').on('change', '#ticket', function () { + + if ($('#name').val() == "") { + $('#name').val('Störung: ' + $("#ticket").select2('data')[0].name); + } + if ($('#location').val() == "") { + $('#location').val($("#ticket").select2('data')[0].location); + } + $('#description').val('Ticket Nr.: ' + $("#ticket").select2('data')[0].id + '\n' + $("#ticket").select2('data')[0].subject); + + }); $("body").on("click", "#customer-info-check", function () { @@ -1906,7 +2108,9 @@ $(document).ready(function () { function refreshCalendarEvents() { calendar.removeAllEvents(); 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 () { @@ -1914,9 +2118,17 @@ $(document).ready(function () { visibleCalendars.push($(this).data('calendar_id')); } }); + calendarFilter.each(function () { + if (!$(this).hasClass('top-search-filter')) { + visibleCalendarTypes.push($(this).data('ctype')); + } + }); - $.post(requestUrl, {visibleCalendars: visibleCalendars}, function (data) { + $.post(requestUrl, { + visibleCalendars: visibleCalendars, + visibleCalendarTypes: visibleCalendarTypes + }, function (data) { }, 'json').done(function (json) { if (json.success == true) { @@ -2131,6 +2343,4 @@ $(document).ready(function () { }); } - -}) -; +});