diff --git a/controller/admin_phpmailer.php b/controller/admin_phpmailer.php index 4e16a52..3e7b977 100644 --- a/controller/admin_phpmailer.php +++ b/controller/admin_phpmailer.php @@ -41,6 +41,19 @@ for ($i = 0; $i < sizeof($empfaenger); $i++) { array_push($mail_bcc, "$row1[mail]"); } } + + if ($trenner[0] == 'V') { + $query2 = "select mail + from jumi_mailverteiler a, jumi_mailverteiler_entries b + where a.mvid=b.mvid + and b.mvid=$trenner[1]"; + + $result2 = $db->query($query2) or die("Cannot execute query"); + + while ($row2 = $result2->fetch_array()) { + array_push($mail_bcc, "$row2[mail]"); + } + } } @@ -56,29 +69,28 @@ function save_mail($mail) ## Wegen dieser Funktion, wurde PHP Version aktiviert. Siehe ../Hinweise_zu_php8.txt ##################################################### - /* - # Scritp um sich $path anzeigen zu lassen: - $mbox = imap_open("{imap.ionos.de:993/imap/ssl}", "info@ju-and-mi.de", "passwort", OP_HALFOPEN) - or die("can't connect: " . imap_last_error()); - if($mbox){ - echo "connect"; - }else{ - echo "fail"; - } - $list = imap_getmailboxes($mbox, "{imap.ionos.de:993/imap/ssl}", "*"); - if (is_array($list)) { - foreach ($list as $key => $val) { - echo "($key) "; - echo imap_utf7_decode($val->name) . ","; - echo "'" . $val->delimiter . "',"; - echo $val->attributes . "
\n"; - } - } else { - echo "imap_getmailboxes failed: " . imap_last_error() . "\n"; - } - - imap_close($mbox); - */ + + // # Script um sich $path anzeigen zu lassen: + // $mbox = imap_open("{imap.ionos.de:993/imap/ssl}", "info@ju-and-mi.de", "passwort", OP_HALFOPEN) + // or die("can't connect: " . imap_last_error()); + // if($mbox){ + // echo "connect"; + // }else{ + // echo "fail"; + // } + // $list = imap_getmailboxes($mbox, "{imap.ionos.de:993/imap/ssl}", "*"); + // if (is_array($list)) { + // foreach ($list as $key => $val) { + // echo "($key) "; + // echo imap_utf7_decode($val->name) . ","; + // echo "'" . $val->delimiter . "',"; + // echo $val->attributes . "
\n"; + // } + // } else { + // echo "imap_getmailboxes failed: " . imap_last_error() . "\n"; + // } + // + // imap_close($mbox); $path = "{imap.ionos.de:993/imap/ssl}Gesendete Objekte"; $imapStream = imap_open($path, $mail->Username, $mail->Password); @@ -110,7 +122,7 @@ try { //$mail->SetFrom($_POST["userEmail"], $_POST["userName"]); //$mail->AddReplyTo($_POST["userEmail"], $_POST["userName"]); $mail->SetFrom("info@ju-and-mi.de", "Info JU & MI"); - $mail->AddAddress("info@ju-and-mi.de", "Info JU & MI"); +# $mail->AddAddress("info@ju-and-mi.de", "Info JU & MI"); $mail->AddReplyTo("info@ju-and-mi.de", "Info JU & MI"); //$mail->addCC('cc@example.com'); foreach ($mail_bcc as $empfbcc) { @@ -135,10 +147,10 @@ try { if (save_mail($mail)) { #echo "Message saved!"; } - echo "

Mail Sent Successfully.

"; + echo '
Mail wurde versendet!
|***|success'; } catch (Exception $e) { - echo "

Message could not be sent. Mailer Error: {$mail->ErrorInfo}

"; + echo "
Es konnte keine Mail verschickt werden! Mailer Error: {$mail->ErrorInfo}
|***|error"; } ?> \ No newline at end of file diff --git a/controller/admin_verteilerlisten.php b/controller/admin_verteilerlisten.php new file mode 100644 index 0000000..fcdc738 --- /dev/null +++ b/controller/admin_verteilerlisten.php @@ -0,0 +1,111 @@ +query("SELECT count(*) Anz FROM jumi_mailverteiler WHERE upper(bezeichnung)=upper('$verteilername')"); + $row = $result->fetch_array(); + + if ($verteilername == ''){ //verschlüsseltes Passwort überprüfen + echo '
Der Verteiler darf nicht leer sein.
|***|error'; + exit; + }else if ($row['Anz'] > 0){ //verschlüsseltes Passwort überprüfen + echo '
Der Verteiler ist bereits vorhanden.
|***|error'; + exit; + }else{ + + $sql1 = $db->query("INSERT INTO jumi_mailverteiler ( bezeichnung ) VALUES ( '$verteilername' )"); + if($sql1){ + echo '
Der Verteiler wurde gespeichert!
|***|success'; + exit; + }else{ + echo '
Der Verteiler wurde nicht gespeichert: Insert Fehler Datenbank.
|***|error'; + exit; + } + } +} + + + +if ($function == 'erfuser') { + if (isset($_POST['mvid'])) { + $mvid = $_POST['mvid']; + } + if (isset($_POST['mveid'])) { + $mveid = $_POST['mveid']; + } + + $db = dbconnect(); + $sql1 = $db->query("INSERT INTO jumi_mailverteiler_user_zuord ( mvid, mveid ) VALUES ( $mvid, $mveid )"); + if($sql1){ + echo '
Der Benutzer wurde zugewiesen!
|***|success|***|'.$mvid; + exit; + }else{ + echo '
Der Benutzer wurde nicht zugewiesen: Insert Fehler Datenbank.
|***|error'; + exit; + } +} + +if ($function == 'deluser') { + if (isset($_POST['mvid'])) { + $mvid = $_POST['mvid']; + } + if (isset($_POST['mveid'])) { + $mveid = $_POST['mveid']; + } + + $sql1 = $db->query("DELETE FROM jumi_mailverteiler_user_zuord WHERE mvid='$mvid' AND mveid='$mveid'"); + if($sql1){ + echo '
Der Benutzer wurde gelöscht!
|***|success|***|'.$mvid; + exit; + }else{ + echo '
Der Benutzer wurde nicht gelöscht: DELETE Fehler Datenbank.
|***|error'; + exit; + } +} + + +if ($function == 'delVerteiler') { + if (isset($_POST['mvid'])) { + $mvid = $_POST['mvid']; + } + + $stmt1 = $db->query("DELETE FROM jumi_mailverteiler_user_zuord WHERE mvid= $mvid"); + $stmt2 = $db->query("DELETE FROM jumi_mailverteiler WHERE mvid= $mvid"); + if ($stmt1 AND $stmt2) { + echo '
Der Verteiler wurde gelöscht!
|***|success'; + exit; + } else { + echo '
Der Verteiler wurde nicht gelöscht: DELETE Fehler Datenbank.
|***|error'; + exit; + } +} + +/* + +if ($function == 'deleteQuestion') { + + $id2 = $_POST['id2']; + + $stmt1 = $db->query("DELETE FROM jumi_umfragen_antworten WHERE ufid = $id2"); + $stmt2 = $db->query("DELETE FROM jumi_umfragen_fragen WHERE ufid = $id2"); + # ggf. bereis Abstimmergebnisse löschen + + # Sonst werden keine neue Fragen erfasst + # unset($_SESSION["umfrageerf_ufid"]); + + + if ($stmt1 and $stmt2) { + echo "Success"; + } else { + echo "Error"; + } +} + +*/ +?> diff --git a/dashboard/mailversand.php b/dashboard/mailversand.php index 38eddb8..e8c618c 100644 --- a/dashboard/mailversand.php +++ b/dashboard/mailversand.php @@ -27,6 +27,18 @@ require_once "../language/german.inc.php"; $table_data[] = $row; } $smarty->assign('table_data', $table_data); + + # Gespeicherte Verteiler + $query1 = "SELECT mvid, bezeichnung + FROM jumi_mailverteiler + ORDER BY mvid ASC"; + + $result1 = $db->query($query1) or die("Cannot execute query"); + + while ($row1 = $result1->fetch_array()) { + $table_data1[] = $row1; + } + $smarty->assign('table_data1', $table_data1); $smarty->assign('action', "$action"); $smarty->display("modern/dashboard/$templatename"); diff --git a/dashboard/verteilerlisten.php b/dashboard/verteilerlisten.php new file mode 100644 index 0000000..ca136ef --- /dev/null +++ b/dashboard/verteilerlisten.php @@ -0,0 +1,47 @@ +"; + exit; +} +require_once "../language/german.inc.php"; + + + +if (isset($_GET['action'])) { + $action = $_GET['action']; +} else { + $action = ''; +} + + +if ($action == '') { + + # Gespeicherte Werte + $query = "SELECT mvid, bezeichnung + FROM jumi_mailverteiler + ORDER BY mvid ASC"; + + $result = $db->query($query) or die("Cannot execute query"); + + while ($row = $result->fetch_array()) { + $table_data[] = $row; + } + $smarty->assign('table_data', $table_data); + +} + + + +$smarty->assign('action', "$action"); +$smarty->display("$template/dashboard/$templatename"); + +?> + diff --git a/dashboard/verteileruserzuordnung.php b/dashboard/verteileruserzuordnung.php new file mode 100644 index 0000000..d9949f2 --- /dev/null +++ b/dashboard/verteileruserzuordnung.php @@ -0,0 +1,65 @@ +"; + exit; +} +require_once "../language/german.inc.php"; + + + +if (isset($_GET['action'])) { + $action = $_GET['action']; +} else { + $action = ''; +} + + +if ($action == '') { + if (isset($_GET['edit'])) { + $mvid = $_GET['edit']; + $smarty->assign('verteiler_edit', $mvid); + } + + $result_head = $db->query("SELECT bezeichnung FROM jumi_mailverteiler WHERE mvid=$mvid"); + $row_head = $result_head->fetch_array(); + $smarty->assign('verteiler_bezeichnung', $row_head['bezeichnung']); + + # Nicht zugewiesene User + $query = "SELECT mveid, vorname, nachname + FROM jumi_mailverteiler_entries + WHERE mveid NOT IN (SELECT mveid FROM jumi_mailverteiler_user_zuord WHERE mvid=$mvid) + ORDER BY nachname ASC"; + + $result = $db->query($query) or die("Cannot execute query"); + + while ($row = $result->fetch_array()) { + $table_data[] = $row; + } + $smarty->assign('table_data', $table_data); + + # Zugewiesene Rechte + $query1 = "SELECT mveid, vorname, nachname + FROM jumi_mailverteiler_entries + WHERE mveid IN (SELECT mveid FROM jumi_mailverteiler_user_zuord WHERE mvid=$mvid) + ORDER BY nachname ASC"; + + $result1 = $db->query($query1) or die("Cannot execute query1"); + + while ($row1 = $result1->fetch_array()) { + $table_data1[] = $row1; + } + $smarty->assign('table_data1', $table_data1); + +} + +$smarty->assign('action', "$action"); +$smarty->display("$template/dashboard/$templatename"); +?> + diff --git a/js/components/admin_phpmailer.js b/js/components/admin_phpmailer.js index a870fee..cc7569d 100644 --- a/js/components/admin_phpmailer.js +++ b/js/components/admin_phpmailer.js @@ -1,7 +1,7 @@ $(document).ready(function (e){ $("#frmEnquiry").on('submit',(function(e){ e.preventDefault(); - $('#loader-icon').show(); + //$('#loader-icon').show(); var valid; valid = validateContact(); if(valid) { @@ -12,10 +12,21 @@ contentType: false, cache: false, processData:false, - success: function(data){ -//alert(data); - $("#mail-status").html(data); - $('#loader-icon').hide(); + success: function(result){ + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + //https://developer.snapappointments.com/bootstrap-select/methods/#selectpickertoggle + $('.selectpicker').selectpicker('deselectAll'); + document.getElementById("subject").value =""; + tinyMCE.get(0).setContent(""); + } + $('#msg').show().delay(5000).fadeOut(500); + $('#msg').html(a[0]); + } + //alert(data); + //$("#mail-status").html(data); + //$('#loader-icon').hide(); }, error: function(){} @@ -29,7 +40,11 @@ $(".info").html(''); // $("#userName").removeClass("invalid"); // $("#userEmail").removeClass("invalid"); - $("#empfaenger").removeClass("invalid"); +// $('.selectpicker').removeClass('invalid').selectpicker('setStyle'); + //https://github.com/snapappointments/bootstrap-select/issues/1891 + $('.selectpicker').removeClass('invalid').selectpicker('setStyle').parent().removeClass('invalid '); + + $("#subject").removeClass("invalid"); $("#content").removeClass("invalid"); // Bei TinyMCE geht das anders @@ -38,8 +53,7 @@ t.getBody().style.backgroundColor = color; if($("#empfaenger").val()=='') { - $("#empfaenger").addClass("invalid"); - $("#empfaenger").attr("title","Required"); + $('.selectpicker').addClass('invalid').selectpicker('setStyle'); valid = false; } /* @@ -55,7 +69,6 @@ } */ if(!$("#subject").val()) { - $("#subject").addClass("invalid"); $("#subject").attr("title","Required"); valid = false; diff --git a/js/components/admin_rollen.js b/js/components/admin_rollen.js index 657c9ba..ba6c978 100644 --- a/js/components/admin_rollen.js +++ b/js/components/admin_rollen.js @@ -14,10 +14,10 @@ function rollesave(){ if(a[1]=="success"){ document.getElementById("rollenname").value =""; $(document).ajaxStop(function(){ - window.location = "?"; + setTimeout(() => { window.location = "?"; }, 2000); }); } - $('#msg').show().delay(10000).fadeOut(500); + $('#msg').show().delay(2000).fadeOut(500); $('#msg').html(a[0]); } }, @@ -192,10 +192,10 @@ function delRole(rid) { var a = result.split('|***|'); if(a[1]=="success"){ $(document).ajaxStop(function(){ - window.location = "?"; + setTimeout(() => { window.location = "?"; }, 2000); }); } - $('#msg').show().delay(10000).fadeOut(500); + $('#msg').show().delay(2000).fadeOut(500); $('#msg').html(a[0]); } }, diff --git a/js/components/admin_verteilerlisten.js b/js/components/admin_verteilerlisten.js new file mode 100644 index 0000000..ca01961 --- /dev/null +++ b/js/components/admin_verteilerlisten.js @@ -0,0 +1,130 @@ +function verteilersave(){ + var verteilername = document.getElementById("verteilername").value; + + $.ajax({ + type: 'POST', + url: '../controller/admin_verteilerlisten.php', + data: { + 'function': 'verteilersave', + 'verteilername': verteilername + }, + success: function(result) { //we got the response + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + document.getElementById("verteilername").value =""; + $(document).ajaxStop(function(){ + setTimeout(() => { window.location = "?"; }, 2000); + }); + } + $('#msg').show().delay(2000).fadeOut(500); + $('#msg').html(a[0]); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); + +} + +function erfuser(mveid, mvid) { + + + $.ajax({ + type: 'POST', + url: '../controller/admin_verteilerlisten.php', + data: { + 'function': 'erfuser', + 'mveid': mveid, + 'mvid': mvid + }, + success: function(result) { //we got the response + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + $(document).ajaxStop(function(){ + // Refresh Modal + var value = a[2]; + // load the url and show modal on success + $("#ZuordnungModal .modal-body").load('verteileruserzuordnung.php?edit='+value, function() { + $("#ZuordnungModal").modal("show"); + }); + }); + } + $('#msg').show().delay(1000).fadeOut(500); + $('#msg').html(a[0]); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); +} + +function deluser(mveid, mvid) { + + + $.ajax({ + type: 'POST', + url: '../controller/admin_verteilerlisten.php', + data: { + 'function': 'deluser', + 'mveid': mveid, + 'mvid': mvid + }, + success: function(result) { //we got the response + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + $(document).ajaxStop(function(){ + + // Refresh Modal + var value = a[2]; + // load the url and show modal on success + $("#ZuordnungModal .modal-body").load('verteileruserzuordnung.php?edit='+value, function() { + $("#ZuordnungModal").modal("show"); + }); + }); + } + $('#msg').show().delay(10000).fadeOut(500); + $('#msg').html(a[0]); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); +} + + + +function delVerteiler(mvid) { + r = confirm('Verteiler wirklich löschen?'); + if (r) { + $.ajax({ + type: 'POST', + url: '../controller/admin_verteilerlisten.php', + data: { + 'function': 'delVerteiler', + 'mvid': mvid + }, + success: function(result) { //we got the response + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + $(document).ajaxStop(function(){ + setTimeout(() => { window.location = "?"; }, 2000); + }); + } + $('#msg').show().delay(2000).fadeOut(500); + $('#msg').html(a[0]); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); + } +} + diff --git a/js/select/bootstrap-select.min.css b/js/select/bootstrap-select.min.css new file mode 100644 index 0000000..9c50c7b --- /dev/null +++ b/js/select/bootstrap-select.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap-select v1.14.0-beta3 (https://developer.snapappointments.com/bootstrap-select) + * + * Copyright 2012-2022 SnapAppointments, LLC + * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) + */@-webkit-keyframes bs-notify-fadeOut{0%{opacity:.9}100%{opacity:0}}@-o-keyframes bs-notify-fadeOut{0%{opacity:.9}100%{opacity:0}}@keyframes bs-notify-fadeOut{0%{opacity:.9}100%{opacity:0}}.bootstrap-select>select.bs-select-hidden,select.bs-select-hidden,select.selectpicker{display:none!important}.bootstrap-select{width:220px;vertical-align:middle}.bootstrap-select>.dropdown-toggle{position:relative;width:100%;text-align:right;white-space:nowrap;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.bootstrap-select>.dropdown-toggle:after{margin-top:-1px}.bootstrap-select>.dropdown-toggle.bs-placeholder,.bootstrap-select>.dropdown-toggle.bs-placeholder:active,.bootstrap-select>.dropdown-toggle.bs-placeholder:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder:hover{color:#999}.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-danger:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-dark:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-info:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-primary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-secondary:hover,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:active,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:focus,.bootstrap-select>.dropdown-toggle.bs-placeholder.btn-success:hover{color:rgba(255,255,255,.5)}.bootstrap-select>select{position:absolute!important;bottom:0;left:50%;display:block!important;width:.5px!important;height:100%!important;padding:0!important;opacity:0!important;border:none;z-index:0!important}.bootstrap-select>select.mobile-device{top:0;left:0;display:block!important;width:100%!important;z-index:2!important}.bootstrap-select.is-invalid .dropdown-toggle,.error .bootstrap-select .dropdown-toggle,.has-error .bootstrap-select .dropdown-toggle,.was-validated .bootstrap-select select:invalid+.dropdown-toggle{border-color:#b94a48}.bootstrap-select.is-valid .dropdown-toggle,.was-validated .bootstrap-select select:valid+.dropdown-toggle{border-color:#28a745}.bootstrap-select.fit-width{width:auto!important}.bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn){width:220px}.bootstrap-select .dropdown-toggle:focus,.bootstrap-select>select.mobile-device:focus+.dropdown-toggle{outline:thin dotted #333!important;outline:5px auto -webkit-focus-ring-color!important;outline-offset:-2px}.bootstrap-select.form-control{margin-bottom:0;padding:0;border:none;height:auto}:not(.input-group)>.bootstrap-select.form-control:not([class*=col-]){width:100%}.bootstrap-select.form-control.input-group-btn{float:none;z-index:auto}.form-inline .bootstrap-select,.form-inline .bootstrap-select.form-control:not([class*=col-]){width:auto}.bootstrap-select:not(.input-group-btn),.bootstrap-select[class*=col-]{float:none;display:inline-block;margin-left:0}.bootstrap-select.dropdown-menu-right,.bootstrap-select[class*=col-].dropdown-menu-right,.row .bootstrap-select[class*=col-].dropdown-menu-right{float:right}.form-group .bootstrap-select,.form-horizontal .bootstrap-select,.form-inline .bootstrap-select{margin-bottom:0}.form-group-lg .bootstrap-select.form-control,.form-group-sm .bootstrap-select.form-control{padding:0}.form-group-lg .bootstrap-select.form-control .dropdown-toggle,.form-group-sm .bootstrap-select.form-control .dropdown-toggle{height:100%;font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-lg .dropdown-toggle,.bootstrap-select.form-control-sm .dropdown-toggle{font-size:inherit;line-height:inherit;border-radius:inherit}.bootstrap-select.form-control-sm .dropdown-toggle{padding:.25rem .5rem}.bootstrap-select.form-control-lg .dropdown-toggle{padding:.5rem 1rem}.form-inline .bootstrap-select .form-control{width:100%}.bootstrap-select.disabled,.bootstrap-select>.disabled{cursor:not-allowed}.bootstrap-select.disabled:focus,.bootstrap-select>.disabled:focus{outline:0!important}.bootstrap-select.bs-container{position:absolute;top:0;left:0;height:0!important;padding:0!important}.bootstrap-select.bs-container .dropdown-menu{z-index:1060}.bootstrap-select .dropdown-toggle .filter-option{position:static;top:0;left:0;float:left;height:100%;width:100%;text-align:left;overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.bs3.bootstrap-select .dropdown-toggle .filter-option{padding-right:inherit}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option{position:absolute;padding-top:inherit;padding-bottom:inherit;padding-left:inherit;float:none}.input-group .bs3-has-addon.bootstrap-select .dropdown-toggle .filter-option .filter-option-inner{padding-right:inherit}.bootstrap-select .dropdown-toggle .filter-option-inner-inner{overflow:hidden}.bootstrap-select .dropdown-toggle .filter-expand{width:0!important;float:left;opacity:0!important;overflow:hidden}.bootstrap-select .dropdown-toggle .caret{position:absolute;top:50%;right:12px;margin-top:-2px;vertical-align:middle}.bootstrap-select .dropdown-toggle .bs-select-clear-selected{position:relative;display:block;margin-right:5px;text-align:center}.bs3.bootstrap-select .dropdown-toggle .bs-select-clear-selected{padding-right:inherit}.bootstrap-select .dropdown-toggle .bs-select-clear-selected span{position:relative;top:-webkit-calc(((-1em / 1.5) + 1ex)/ 2);top:calc(((-1em / 1.5) + 1ex)/ 2);pointer-events:none}.bs3.bootstrap-select .dropdown-toggle .bs-select-clear-selected span{top:auto}.bootstrap-select .dropdown-toggle.bs-placeholder .bs-select-clear-selected{display:none}.input-group .bootstrap-select.form-control .dropdown-toggle{border-radius:inherit}.bootstrap-select[class*=col-] .dropdown-toggle{width:100%}.bootstrap-select .dropdown-menu{min-width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu>.inner:focus{outline:0!important}.bootstrap-select .dropdown-menu.inner{position:static;float:none;border:0;padding:0;margin:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.bootstrap-select .dropdown-menu li{position:relative}.bootstrap-select .dropdown-menu li.active small{color:rgba(255,255,255,.5)!important}.bootstrap-select .dropdown-menu li.disabled a{cursor:not-allowed}.bootstrap-select .dropdown-menu li a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bootstrap-select .dropdown-menu li a.opt{position:relative;padding-left:2.25em}.bootstrap-select .dropdown-menu li a span.check-mark{display:none}.bootstrap-select .dropdown-menu li a span.text{display:inline-block}.bootstrap-select .dropdown-menu li small{padding-left:.5em}.bootstrap-select .dropdown-menu .notify{position:absolute;bottom:5px;width:96%;margin:0 2%;min-height:26px;padding:3px 5px;background:#f5f5f5;border:1px solid #e3e3e3;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05);pointer-events:none;opacity:.9;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bootstrap-select .dropdown-menu .notify.fadeOut{-webkit-animation:.3s linear 750ms forwards bs-notify-fadeOut;-o-animation:.3s linear 750ms forwards bs-notify-fadeOut;animation:.3s linear 750ms forwards bs-notify-fadeOut}.bootstrap-select .no-results{padding:3px;background:#f5f5f5;margin:0 5px;white-space:nowrap}.bootstrap-select.fit-width .dropdown-toggle .filter-option{position:static;display:inline;padding:0}.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner,.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner{display:inline}.bootstrap-select.fit-width .dropdown-toggle .bs-caret:before{content:'\00a0'}.bootstrap-select.fit-width .dropdown-toggle .caret{position:static;top:auto;margin-top:-1px}.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark{position:absolute;display:inline-block;right:15px;top:5px}.bootstrap-select.show-tick .dropdown-menu li a span.text{margin-right:34px}.bootstrap-select .bs-ok-default:after{content:'';display:block;width:.5em;height:1em;border-style:solid;border-width:0 .26em .26em 0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle{z-index:1061}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before{content:'';border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(204,204,204,.2);position:absolute;bottom:-4px;left:9px;display:none}.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after{content:'';border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;position:absolute;bottom:-4px;left:10px;display:none}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before{bottom:auto;top:-4px;border-top:7px solid rgba(204,204,204,.2);border-bottom:0}.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after{bottom:auto;top:-4px;border-top:6px solid #fff;border-bottom:0}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before{right:12px;left:auto}.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after{right:13px;left:auto}.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.open>.dropdown-toggle .filter-option:before,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:after,.bootstrap-select.show-menu-arrow.show>.dropdown-toggle .filter-option:before{display:block}.bs-actionsbox,.bs-donebutton,.bs-searchbox{padding:4px 8px}.bs-actionsbox{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-actionsbox .btn-group{display:block}.bs-actionsbox .btn-group button{width:50%}.bs-donebutton{float:left;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.bs-donebutton .btn-group{display:block}.bs-donebutton .btn-group button{width:100%}.bs-searchbox+.bs-actionsbox{padding:0 8px 4px}.bs-searchbox .form-control{margin-bottom:0;width:100%;float:none} \ No newline at end of file diff --git a/js/select/bootstrap-select.min.js b/js/select/bootstrap-select.min.js new file mode 100644 index 0000000..c642976 --- /dev/null +++ b/js/select/bootstrap-select.min.js @@ -0,0 +1,8 @@ +/*! + * Bootstrap-select v1.14.0-beta3 (https://developer.snapappointments.com/bootstrap-select) + * + * Copyright 2012-2022 SnapAppointments, LLC + * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) + */ +!function(e,t){void 0===e&&void 0!==window&&(e=window),"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(e.jQuery)}(this,function(e){!function($){"use strict";var M=["sanitize","whiteList","sanitizeFn"],W=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],P={"*":["class","dir","id","lang","role","tabindex","style",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},B=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,R=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i,U=["title","placeholder"];function S(e,t,i){if(i&&"function"==typeof i)return i(e);for(var s=Object.keys(t),n=0,o=e.length;n]+>/g,"")),a=(a=s?u(a):a).toUpperCase(),o="function"==typeof i?i(a,t):"contains"===i?0<=a.indexOf(t):a.startsWith(t)))break}return o}function v(e){return parseInt(e,10)||0}$.fn.triggerNative=function(e){var t,i=this[0];i.dispatchEvent&&(V?t=new Event(e,{bubbles:!0}):(t=document.createEvent("Event")).initEvent(e,!0,!1),i.dispatchEvent(t))};var j={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},_=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,F=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]","g");function G(e){return j[e]}function u(e){return(e=e.toString())&&e.replace(_,G).replace(F,"")}f={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},s="(?:"+Object.keys(f).join("|")+")",q=RegExp(s),K=RegExp(s,"g");var f,q,K,k=function(e){return q.test(e=null==e?"":""+e)?e.replace(K,Q):e};function Q(e){return f[e]}var Y={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"},Z=27,J=13,w=32,I=9,C=38,O=40,m=window.Dropdown||bootstrap.Dropdown;function X(){var t;try{t=$.fn.dropdown.Constructor.VERSION}catch(e){t=m.VERSION}return t}var g={success:!1,major:"3"};try{g.full=(X()||"").split(" ")[0].split("."),g.major=g.full[0],g.success=!0}catch(e){}var ee=0,A=".bs.select",T={DISABLED:"disabled",DIVIDER:"divider",SHOW:"open",DROPUP:"dropup",MENU:"dropdown-menu",MENURIGHT:"dropdown-menu-right",MENULEFT:"dropdown-menu-left",BUTTONCLASS:"btn-default",POPOVERHEADER:"popover-title",ICONBASE:"glyphicon",TICKICON:"glyphicon-ok"},z={MENU:"."+T.MENU,DATA_TOGGLE:'data-toggle="dropdown"'},D={div:document.createElement("div"),span:document.createElement("span"),i:document.createElement("i"),subtext:document.createElement("small"),a:document.createElement("a"),li:document.createElement("li"),whitespace:document.createTextNode("\xa0"),fragment:document.createDocumentFragment(),option:document.createElement("option")},te=(D.selectedOption=D.option.cloneNode(!1),D.selectedOption.setAttribute("selected",!0),D.noResults=D.li.cloneNode(!1),D.noResults.className="no-results",D.a.setAttribute("role","option"),D.a.className="dropdown-item",D.subtext.className="text-muted",D.text=D.span.cloneNode(!1),D.text.className="text",D.checkMark=D.span.cloneNode(!1),new RegExp(C+"|"+O)),ie=new RegExp("^"+I+"$|"+Z),L={li:function(e,t,i){var s=D.li.cloneNode(!1);return e&&(1===e.nodeType||11===e.nodeType?s.appendChild(e):s.innerHTML=e),void 0!==t&&""!==t&&(s.className=t),null!=i&&s.classList.add("optgroup-"+i),s},a:function(e,t,i){var s=D.a.cloneNode(!0);return e&&(11===e.nodeType?s.appendChild(e):s.insertAdjacentHTML("beforeend",e)),void 0!==t&&""!==t&&s.classList.add.apply(s.classList,t.split(/\s+/)),i&&s.setAttribute("style",i),s},text:function(e,t){var i,s,n=D.text.cloneNode(!1);if(e.content?n.innerHTML=e.content:(n.textContent=e.text,e.icon&&(i=D.whitespace.cloneNode(!1),(s=(!0===t?D.i:D.span).cloneNode(!1)).className=this.options.iconBase+" "+e.icon,D.fragment.appendChild(s),D.fragment.appendChild(i)),e.subtext&&((s=D.subtext.cloneNode(!1)).textContent=e.subtext,n.appendChild(s))),!0===t)for(;0'},maxOptions:!1,mobile:!1,selectOnTab:!0,dropdownAlignRight:!1,windowPadding:0,virtualScroll:600,display:!1,sanitize:!0,sanitizeFn:null,whiteList:P},H.prototype={constructor:H,init:function(){var i=this,e=this.$element.attr("id"),t=this.$element[0],s=t.form;ee++,this.selectId="bs-select-"+ee,t.classList.add("bs-select-hidden"),this.multiple=this.$element.prop("multiple"),this.autofocus=this.$element.prop("autofocus"),t.classList.contains("show-tick")&&(this.options.showTick=!0),this.$newElement=this.createDropdown(),this.$element.after(this.$newElement).prependTo(this.$newElement),s&&null===t.form&&(s.id||(s.id="form-"+this.selectId),t.setAttribute("form",s.id)),this.$button=this.$newElement.children("button"),this.options.allowClear&&(this.$clearButton=this.$button.children(".bs-select-clear-selected")),this.$menu=this.$newElement.children(z.MENU),this.$menuInner=this.$menu.children(".inner"),this.$searchbox=this.$menu.find("input"),t.classList.remove("bs-select-hidden"),this.fetchData(function(){i.render(!0),i.buildList(),requestAnimationFrame(function(){i.$element.trigger("loaded"+A)})}),!0===this.options.dropdownAlignRight&&this.$menu[0].classList.add(T.MENURIGHT),void 0!==e&&this.$button.attr("data-id",e),this.checkDisabled(),this.clickListener(),4'+this.options.header+""),this.options.liveSearch&&(o=''),this.multiple&&this.options.actionsBox&&(l='
"),this.multiple&&this.options.doneButton&&(r='
"),this.options.allowClear&&(a='×'),e='",$(e)},setPositionData:function(){this.selectpicker.view.canHighlight=[],this.selectpicker.view.size=0,this.selectpicker.view.firstHighlightIndex=!1;for(var e=0;e=this.options.virtualScroll||!0===this.options.virtualScroll},createView:function(y,e,t){var x=this,i=0;function E(e,t){var i,s=x.selectpicker.current.data.length,n=[],o=!0,l=x.isVirtual();x.selectpicker.view.scrollTop=e;for(var r,a=x.options.chunkSize,c=Math.ceil(s/a)||1,d=0;ds-1?0:x.selectpicker.current.data[s-1].position-x.selectpicker.current.data[x.selectpicker.view.position1-1].position,p.firstChild.style.marginTop=g+"px",p.firstChild.style.marginBottom=o+"px"):(p.firstChild.style.marginTop=0,p.firstChild.style.marginBottom=0),p.firstChild.appendChild(u),!0===l&&x.sizeInfo.hasScrollBar&&(f=p.firstChild.offsetWidth,t&&fx.sizeInfo.selectWidth?p.firstChild.style.minWidth=x.sizeInfo.menuInnerInnerWidth+"px":f>x.sizeInfo.menuInnerInnerWidth&&(x.$menu[0].style.minWidth=0,(g=p.firstChild.offsetWidth)>x.sizeInfo.menuInnerInnerWidth&&(x.sizeInfo.menuInnerInnerWidth=g,p.firstChild.style.minWidth=x.sizeInfo.menuInnerInnerWidth+"px"),x.$menu[0].style.minWidth=""))}(!y&&x.options.source.data||y&&x.options.source.search)&&x.selectpicker.current.hasMore&&i===c-1&&0 *:not(:disabled)"))?o.index:0,l=(l=window.performance&&window.performance.getEntriesByType("navigation"))&&l.length?"back_forward"!==l[0].type:2!==window.performance.navigation.type,i&&(this.selectpicker.view.titleOption.className="bs-title-option",this.selectpicker.view.titleOption.value="",t=!n||s===o&&!1===n.defaultSelected&&void 0===this.$element.data("selected")),!i&&0===this.selectpicker.view.titleOption.index||e.insertBefore(this.selectpicker.view.titleOption,e.firstChild),t&&l?e.selectedIndex=0:"complete"!==document.readyState&&window.addEventListener("pageshow",function(){r.selectpicker.view.displayedValue!==e.value&&r.render()})),a},fetchData:function(n,o,e,t){e=e||1,o=o||"data";var l,r=this,i=this.options.source[o];i?(this.options.virtualScroll=!0,"function"==typeof i?i.call(this,function(e,t,i){var s=r.selectpicker["search"===o?"search":"main"];s.hasMore=t,s.totalItems=i,l=r.buildData(e,o),n.call(r,l),r.$element.trigger("fetched"+A)},e,t):Array.isArray(i)&&(l=r.buildData(i,o),n.call(r,l))):(l=this.buildData(!1,o),n.call(r,l))},buildData:function(h,e){var o=this,p=!1===h?N.fromOption:N.fromDataSource,u=':not([hidden]):not([data-hidden="true"]):not([style*="display: none"])',f=[],l=this.selectpicker.main.data?this.selectpicker.main.data.length:0,m=0,v=this.setPlaceholder()&&!h?1:0,t=("search"===e&&(l=this.selectpicker.search.data.length),this.options.hideDisabled&&(u+=":not(:disabled)"),h?h.filter(ne,this):this.$element[0].querySelectorAll("select > *"+u));function g(e){var t=f[f.length-1];t&&"divider"===t.type&&(t.optID||e.optID)||((e=e||{}).type="divider",f.push(e))}function b(e,t){var i,s,n;(t=t||{}).divider=p(e,"divider"),!0===t.divider?g({optID:t.optID}):(i=f.length+l,s=(s=p(e,"style"))?k(s):"",n=(e.className||"")+(t.optgroupClass||""),t.optID&&(n="opt "+n),t.optionClass=n.trim(),t.inlineStyle=s,t.text=p(e,"text"),t.title=p(e,"title"),t.content=p(e,"content"),t.tokens=p(e,"tokens"),t.subtext=p(e,"subtext"),t.icon=p(e,"icon"),t.display=t.content||t.text,t.value=void 0===e.value?e.text:e.value,t.type="option",t.index=i,t.option=e.option||e,t.option.liIndex=i,t.selected=!!e.selected,t.disabled=t.disabled||!!e.disabled,!1!==h&&(o.selectpicker.optionValuesDataMap[t.value]?t=$.extend(o.selectpicker.optionValuesDataMap[t.value],t):o.selectpicker.optionValuesDataMap[t.value]=t),f.push(t))}function i(e,t){var i=t[e],s=!(e-1 li")},render:function(e){var i=this,t=this.$element[0],s=this.setPlaceholder()&&0===t.selectedIndex,n=y.call(this),o=n.length,l=x.call(this,n),r=this.$button[0],a=r.querySelector(".filter-option-inner-inner"),c=document.createTextNode(this.options.multipleSeparator),d=D.fragment.cloneNode(!1),h=!1;if(this.options.source.data&&e&&(n.map(function e(t){t.selected?i.createOption(t,!0):t.children&&t.children.length&&t.children.map(e)}),t.appendChild(this.selectpicker.main.optionQueue),s=s&&0===t.selectedIndex),r.classList.toggle("bs-placeholder",i.multiple?!o:!l&&0!==l),i.multiple||1!==n.length||(i.selectpicker.view.displayedValue=l),"static"===this.options.selectedTextFormat)d=L.text.call(this,{text:this.options.placeholder},!0);else if(!1===(this.multiple&&-1!==this.options.selectedTextFormat.indexOf("count")&&0")).length&&o>e[1]||1===e.length&&2<=o))){if(!s){for(var p=0;p option"+t+", optgroup"+t+" option"+t).length),e="function"==typeof this.options.countSelectedText?this.options.countSelectedText(o,l):this.options.countSelectedText,d=L.text.call(this,{text:e.replace("{0}",o.toString()).replace("{1}",l.toString())},!0);d.childNodes.length||(d=L.text.call(this,{text:this.options.placeholder||this.options.noneSelectedText},!0)),r.title=d.textContent.replace(/<[^>]*>?/g,"").trim(),this.options.sanitize&&h&&S([d],i.options.whiteList,i.options.sanitizeFn),a.innerHTML="",a.appendChild(d),g.major<4&&this.$newElement[0].classList.contains("bs3-has-addon")&&(s=r.querySelector(".filter-expand"),(t=a.cloneNode(!0)).className="filter-expand",s?r.replaceChild(t,s):r.appendChild(t)),this.$element.trigger("rendered"+A)},setStyle:function(e,t){var i=this.$button[0],s=this.$newElement[0],n=this.options.style.trim();this.$element.attr("class")&&this.$newElement.addClass(this.$element.attr("class").replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi,"")),g.major<4&&(s.classList.add("bs3"),s.parentNode.classList&&s.parentNode.classList.contains("input-group")&&(s.previousElementSibling||s.nextElementSibling)&&(s.previousElementSibling||s.nextElementSibling).classList.contains("input-group-addon")&&s.classList.add("bs3-has-addon")),s=e?e.trim():n,"add"==t?s&&i.classList.add.apply(i.classList,s.split(" ")):"remove"==t?s&&i.classList.remove.apply(i.classList,s.split(" ")):(n&&i.classList.remove.apply(i.classList,n.split(" ")),s&&i.classList.add.apply(i.classList,s.split(" ")))},liHeight:function(e){if(e||!1!==this.options.size&&!Object.keys(this.sizeInfo).length){var t,e=D.div.cloneNode(!1),i=D.div.cloneNode(!1),s=D.div.cloneNode(!1),n=document.createElement("ul"),o=D.li.cloneNode(!1),l=D.li.cloneNode(!1),r=D.a.cloneNode(!1),a=D.span.cloneNode(!1),c=this.options.header&&0this.sizeInfo.menuExtras.vert&&l+this.sizeInfo.menuExtras.vert+50>this.sizeInfo.selectOffsetBot,!0===this.selectpicker.isSearching&&(l=this.selectpicker.dropup),this.$newElement.toggleClass(T.DROPUP,l),this.selectpicker.dropup=l),"auto"===this.options.size)l=3this.options.size){for(var v=0;vthis.sizeInfo.menuInnerHeight&&(this.sizeInfo.hasScrollBar=!0,this.sizeInfo.totalMenuWidth=this.sizeInfo.menuWidth+this.sizeInfo.scrollBarWidth),"auto"===this.options.dropdownAlignRight&&this.$menu.toggleClass(T.MENURIGHT,this.sizeInfo.selectOffsetLeft>this.sizeInfo.selectOffsetRight&&this.sizeInfo.selectOffsetRightthis.options.size&&i.off("resize"+A+"."+this.selectId+".setMenuSize scroll"+A+"."+this.selectId+".setMenuSize")),this.createView(!1,!0,e)},setWidth:function(){var i=this;"auto"===this.options.width?requestAnimationFrame(function(){i.$menu.css("min-width","0"),i.$element.on("loaded"+A,function(){i.liHeight(),i.setMenuSize();var e=i.$newElement.clone().appendTo("body"),t=e.css("width","auto").children("button").outerWidth();e.remove(),i.sizeInfo.selectWidth=Math.max(i.sizeInfo.totalMenuWidth,t),i.$newElement.css("width",i.sizeInfo.selectWidth+"px")})}):"fit"===this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width","").addClass("fit-width")):this.options.width?(this.$menu.css("min-width",""),this.$newElement.css("width",this.options.width)):(this.$menu.css("min-width",""),this.$newElement.css("width","")),this.$newElement.hasClass("fit-width")&&"fit"!==this.options.width&&this.$newElement[0].classList.remove("fit-width")},selectPosition:function(){this.$bsContainer=$('
');function e(e){var t={},i=l.options.display||!!$.fn.dropdown.Constructor.Default&&$.fn.dropdown.Constructor.Default.display;l.$bsContainer.addClass(e.attr("class").replace(/form-control|fit-width/gi,"")).toggleClass(T.DROPUP,e.hasClass(T.DROPUP)),s=e.offset(),r.is("body")?n={top:0,left:0}:((n=r.offset()).top+=parseInt(r.css("borderTopWidth"))-r.scrollTop(),n.left+=parseInt(r.css("borderLeftWidth"))-r.scrollLeft()),o=e.hasClass(T.DROPUP)?0:e[0].offsetHeight,(g.major<4||"static"===i)&&(t.top=s.top-n.top+o,t.left=s.left-n.left),t.width=e[0].offsetWidth,l.$bsContainer.css(t)}var s,n,o,l=this,r=$(this.options.container);this.$button.on("click.bs.dropdown.data-api",function(){l.isDisabled()||(e(l.$newElement),l.$bsContainer.appendTo(l.options.container).toggleClass(T.SHOW,!l.$button.hasClass(T.SHOW)).append(l.$menu))}),$(window).off("resize"+A+"."+this.selectId+" scroll"+A+"."+this.selectId).on("resize"+A+"."+this.selectId+" scroll"+A+"."+this.selectId,function(){l.$newElement.hasClass(T.SHOW)&&e(l.$newElement)}),this.$element.on("hide"+A,function(){l.$menu.data("height",l.$menu.height()),l.$bsContainer.detach()})},createOption:function(e,t){var i,s=e.option||e;s&&1!==s.nodeType&&(i=(t?D.selectedOption:D.option).cloneNode(!0),void 0!==s.value&&(i.value=s.value),i.textContent=s.text,i.selected=!0,void 0!==s.liIndex?i.liIndex=s.liIndex:t||(i.liIndex=e.index),e.option=i,this.selectpicker.main.optionQueue.appendChild(i))},setOptionStatus:function(e){var t=this;if(t.noScroll=!1,t.selectpicker.view.visibleElements&&t.selectpicker.view.visibleElements.length){for(var i=0;i
');d[2]&&(b=b.replace("{var}",d[2][1"+b+"")),c=!1,I.$element.trigger("maxReached"+A)),h&&t&&(k.append($("
"+w+"
")),c=!1,I.$element.trigger("maxReachedGrp"+A)),setTimeout(function(){I.setSelected(o,!1)},10),k[0].classList.add("fadeOut"),setTimeout(function(){k.remove()},1050)}}}else a&&I.setSelected(a,!1),I.setSelected(o,!0);I.options.source.data&&I.$element[0].appendChild(I.selectpicker.main.optionQueue),!I.multiple||I.multiple&&1===I.options.maxOptions?I.$button.trigger("focus"):I.options.liveSearch&&I.$searchbox.trigger("focus"),!c||!I.multiple&&r===s.selectedIndex||(E=[e.index,i.prop("selected"),l],I.$element.triggerNative("change"))}}),this.$menu.on("click","li."+T.DISABLED+" a, ."+T.POPOVERHEADER+", ."+T.POPOVERHEADER+" :not(.close)",function(e){e.currentTarget==this&&(e.preventDefault(),e.stopPropagation(),(I.options.liveSearch&&!$(e.target).hasClass("close")?I.$searchbox:I.$button).trigger("focus"))}),this.$menuInner.on("click",".divider, .dropdown-header",function(e){e.preventDefault(),e.stopPropagation(),(I.options.liveSearch?I.$searchbox:I.$button).trigger("focus")}),this.$menu.on("click","."+T.POPOVERHEADER+" .close",function(){I.$button.trigger("click")}),this.$searchbox.on("click",function(e){e.stopPropagation()}),this.$menu.on("click",".actions-btn",function(e){(I.options.liveSearch?I.$searchbox:I.$button).trigger("focus"),e.preventDefault(),e.stopPropagation(),$(this).hasClass("bs-select-all")?I.selectAll():I.deselectAll()}),this.$button.on("focus"+A,function(e){var t=I.$element[0].getAttribute("tabindex");void 0!==t&&e.originalEvent&&e.originalEvent.isTrusted&&(this.setAttribute("tabindex",t),I.$element[0].setAttribute("tabindex",-1),I.selectpicker.view.tabindex=t)}).on("blur"+A,function(e){void 0!==I.selectpicker.view.tabindex&&e.originalEvent&&e.originalEvent.isTrusted&&(I.$element[0].setAttribute("tabindex",I.selectpicker.view.tabindex),this.setAttribute("tabindex",-1),I.selectpicker.view.tabindex=void 0)}),this.$element.on("change"+A,function(){I.render(),I.$element.trigger("changed"+A,E),E=null}).on("focus"+A,function(){I.options.mobile||I.$button[0].focus()})},liveSearchListener:function(){var p=this;this.$button.on("click.bs.dropdown.data-api",function(){p.$searchbox.val()&&(p.$searchbox.val(""),p.selectpicker.search.previousValue=void 0)}),this.$searchbox.on("click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api",function(e){e.stopPropagation()}),this.$searchbox.on("input propertychange",function(){var t=p.$searchbox[0].value;if(p.selectpicker.search.elements=[],p.selectpicker.search.data=[],t)if(p.selectpicker.search.previousValue=t,p.options.source.search)p.fetchData(function(e){p.render(),p.buildList(void 0,!0),p.noScroll=!0,p.$menuInner.scrollTop(0),p.createView(!0),se.call(p,e,t)},"search",0,t);else{var e=[],i=t.toUpperCase(),s={},n=[],o=p._searchStyle(),l=p.options.liveSearchNormalize;l&&(i=u(i));for(var r=0;r=r.selectpicker.view.canHighlight.length&&(d=r.selectpicker.view.firstHighlightIndex),r.selectpicker.view.canHighlight[d+p]||(d=d+1+r.selectpicker.view.canHighlight.slice(d+p+1).indexOf(!0))),e.preventDefault();var u=p+d;e.which===C?0===p&&d===a.length-1?(r.$menuInner[0].scrollTop=r.$menuInner[0].scrollHeight,u=r.selectpicker.current.elements.length-1):(s=r.selectpicker.current.data[u])&&(c=(n=s.position-s.height)h+r.sizeInfo.menuInnerHeight),i=r.selectpicker.main.elements[l],r.activeElement=i,r.focusItem(i),i&&i.firstChild.focus(),c&&(r.$menuInner[0].scrollTop=n),o.trigger("focus"))}t&&(e.which===w&&!r.selectpicker.keydown.keyHistory||e.which===J||e.which===I&&r.options.selectOnTab)&&(e.which!==w&&e.preventDefault(),r.options.liveSearch&&e.which===w||(r.$menuInner.find(".active a").trigger("click",!0),o.trigger("focus"),r.options.liveSearch||(e.preventDefault(),$(document).data("spaceSelect",!0))))}},mobile:function(){this.options.mobile=!0,this.$element[0].classList.add("mobile-device")},refresh:function(){var e=this,t=$.extend({},this.options,d(this.$element),this.$element.data());this.options=t,this.options.source.data?(this.render(),this.buildList()):this.fetchData(function(){e.render(),e.buildList()}),this.checkDisabled(),this.setStyle(),this.setWidth(),this.setSize(!0),this.$element.trigger("refreshed"+A)},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),(this.$bsContainer||this.$menu).remove(),this.selectpicker.view.titleOption&&this.selectpicker.view.titleOption.parentNode&&this.selectpicker.view.titleOption.parentNode.removeChild(this.selectpicker.view.titleOption),this.$element.off(A).removeData("selectpicker").removeClass("bs-select-hidden selectpicker mobile-device"),$(window).off(A+"."+this.selectId)}};var le=$.fn.selectpicker;function re(){return g.major<5?$.fn.dropdown?($.fn.dropdown.Constructor._dataApiKeydownHandler||$.fn.dropdown.Constructor.prototype.keydown).apply(this,arguments):void 0:m.dataApiKeydownHandler}$.fn.selectpicker=oe,$.fn.selectpicker.Constructor=H,$.fn.selectpicker.noConflict=function(){return $.fn.selectpicker=le,this},$(document).off("keydown.bs.dropdown.data-api").on("keydown.bs.dropdown.data-api",":not(.bootstrap-select) > ["+z.DATA_TOGGLE+"]",re).on("keydown.bs.dropdown.data-api",":not(.bootstrap-select) > .dropdown-menu",re).on("keydown"+A,".bootstrap-select ["+z.DATA_TOGGLE+'], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',H.prototype.keydown).on("focusin.modal",".bootstrap-select ["+z.DATA_TOGGLE+'], .bootstrap-select [role="listbox"], .bootstrap-select .bs-searchbox input',function(e){e.stopPropagation()}),document.addEventListener("DOMContentLoaded",function(){$(".selectpicker").each(function(){var e=$(this);oe.call(e,e.data())})})}(e)}); +//# sourceMappingURL=bootstrap-select.min.js.map \ No newline at end of file diff --git a/js/select/defaults-de_DE.min.js b/js/select/defaults-de_DE.min.js new file mode 100644 index 0000000..d12e543 --- /dev/null +++ b/js/select/defaults-de_DE.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap-select v1.14.0-beta3 (https://developer.snapappointments.com/bootstrap-select) + * + * Copyright 2012-2022 SnapAppointments, LLC + * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) + */ +!function(e,t){void 0===e&&void 0!==window&&(e=window),"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=t(require("jquery")):t(e.jQuery)}(this,function(e){e.fn.selectpicker.defaults={noneSelectedText:"Bitte w\xe4hlen...",noneResultsText:"Keine Ergebnisse f\xfcr {0}",countSelectedText:function(e,t){return 1==e?"{0} Element ausgew\xe4hlt":"{0} Elemente ausgew\xe4hlt"},maxOptionsText:function(e,t){return[1==e?"Limit erreicht ({n} Element max.)":"Limit erreicht ({n} Elemente max.)",1==t?"Gruppen-Limit erreicht ({n} Element max.)":"Gruppen-Limit erreicht ({n} Elemente max.)"]},selectAllText:"Alles ausw\xe4hlen",deselectAllText:"Nichts ausw\xe4hlen",multipleSeparator:", "}}); \ No newline at end of file diff --git a/templates/modern/dashboard/mailversand.html b/templates/modern/dashboard/mailversand.html index be690ab..b499bf0 100644 --- a/templates/modern/dashboard/mailversand.html +++ b/templates/modern/dashboard/mailversand.html @@ -3,7 +3,8 @@ JU & MI Mailversand - + + @@ -14,8 +15,21 @@ + + + + + + + - @@ -80,8 +93,8 @@
- - + +
@@ -93,29 +106,38 @@
+ -->

- +
-
@@ -138,11 +160,12 @@
-
- +
+ + + + + + + + + + + + + + + + {literal} + + {/literal} +
+ + +
+
+ + +
+
+
+ + Verteilerlisten +
+
+
Verteilerliste:
+
+
+
+
+
+
+
+
+
+
+
+ + Vorhandene Verteiler +
+
+
+
+
Rolle
+
Aktion
+
+ {section name=table_data loop=$table_data} +
+
{$table_data[table_data].bezeichnung}
+
+ + + +
+
+ {/section} + + + + {literal} + + {/literal} +
+
+
+
+
+ + + +
+
+ + + +{/if} + + diff --git a/templates/modern/dashboard/verteileruserzuordnung.html b/templates/modern/dashboard/verteileruserzuordnung.html new file mode 100644 index 0000000..46d6fa4 --- /dev/null +++ b/templates/modern/dashboard/verteileruserzuordnung.html @@ -0,0 +1,151 @@ +{if $action == ''} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

{$verteiler_bezeichnung}

+
+
+
+ + Nicht zugewiesene Personen +
+
+ + + + + + + + + + {section name=table_data loop=$table_data} + + + + + + {/section} + +
VornameNachnameAktion
{$table_data[table_data].vorname}{$table_data[table_data].nachname} +

+ +

+
+
+
+
+
+
+ + Zugewiesene Personen +
+
+ + + + + + + + + + {section name=table_data1 loop=$table_data1} + + + + + + {/section} + +
VornameNachnameAktion
{$table_data1[table_data1].vorname}{$table_data1[table_data1].nachname} +

+ +

+
+
+
+
+
+
+ + + + + + +{/if} +