From 2fe4e927ff070717163e1363522dd63f9d840cba Mon Sep 17 00:00:00 2001 From: aschwarz <a.schwarz@polizei.bwl.de> Date: Mon, 3 Apr 2023 16:35:38 +0200 Subject: [PATCH] Member erfassen --- controller/admin_create_member.php | 279 ++++++++++++++++++ dashboard/create_member.php | 72 +++++ js/components/admin_create_member.js | 169 +++++++++++ templates/modern/dashboard/create_member.html | 229 ++++++++++++++ templates/modern/dashboard/notenupload.html | 10 +- 5 files changed, 754 insertions(+), 5 deletions(-) create mode 100644 controller/admin_create_member.php create mode 100644 dashboard/create_member.php create mode 100644 js/components/admin_create_member.js create mode 100644 templates/modern/dashboard/create_member.html diff --git a/controller/admin_create_member.php b/controller/admin_create_member.php new file mode 100644 index 0000000..13690cd --- /dev/null +++ b/controller/admin_create_member.php @@ -0,0 +1,279 @@ +<?php +require_once("../config.inc.php"); +$function = $_POST['function']; + +if ($function == 'checkuser') { + $mail = $_POST['mail']; + + if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { + $mail = $_POST['mail']; + $result = $db->query("SELECT count(*) Anz FROM jumi_chor_saenger WHERE mail = '$mail'"); + $row = $result->fetch_array(); + + if ($row['Anz'] == "0") { + echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Mailadresse ist noch nicht vorhanden!</div>'; + } else { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Mailadresse ist im System bereits vorhanden!</div>'; + } + #}else{ + # echo "" + } +} + +#echo "Funktion: $function"; +if ($function == 'membersave') { + $vorname = trim($_POST['vorname']); + $nachname = trim($_POST['nachname']); + $mail = trim($_POST['mail']); + $singstimme = $_POST['singstimme']; + $bemerkung = $db->real_escape_string(stripslashes( $_POST['bemerkung'] )); + + + + + $result = $db->query("SELECT count(*) Anz FROM jumi_chor_saenger WHERE mail = '$mail'"); + $row = $result->fetch_array(); + + #Fehlercheck + if ($row['Anz'] != "0") { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> User ist im System bereits vorhanden!</div>|***|error'; + } + if ($singstimme == '' or $vorname == '' or $nachname == '' or $mail == '') { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Es müssen alle Felder ausgefüllt werden!</div>|***|error'; + exit; + } + if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Geben Sie eine gültige Mailadresse ein!</div>|***|error'; + exit; + } + + + $sql1 = $db->query("INSERT INTO jumi_chor_saenger ( vorname + , nachname + , mail + , singstimme + , bemerkung + ) + VALUES + ( '$vorname' + , '$nachname' + , '$mail' + , '$singstimme' + , '$bemerkung' + ) + "); + $csid = $db->insert_id; + if (!$sql1) { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Es gab ein Fehler in der Datenbank: Insert Member</div>|***|error'; + exit; + }else{ + echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> SängerIn wurde erfasst.</div>|***|success'; + exit; + } + +} + +/* +if ($function == 'userupdate') { + + $vorname = trim($_POST['vorname']); + $nachname = trim($_POST['nachname']); + $mail = trim($_POST['mail']); + $rollen = $_POST['rollen']; + $pwdback = $_POST['pwdback']; + $uid = $_POST['uid']; + + + if (isset($pwdback)) { + if ($pwdback == '1') { + $pwdback = '1'; + } else { + $pwdback = '0'; + } + } else { + $pwdback = '0'; + } + + + + + if ($uid == '') { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Die BenutzerID wurde nicht übertragen</div>|***|error'; + exit; + } + if ($rollen == '' or $vorname == '' or $nachname == '' or $mail == '') { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Es müssen alle Felder ausgefüllt werden!</div>|***|error'; + exit; + } + if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Geben Sie eine gültige Mailadresse ein!</div>|***|error'; + exit; + } + + $error = 0; + + if($pwdback == 1){ + require_once("func_genPwd.php"); + $password = generateStrongPassword(); + $password_md5 = md5($password); + }else{ + $result_pwd = $db->query("SELECT passwort FROM jumi_admin WHERE uid = $uid"); + $row_pwd = $result_pwd->fetch_array(); + $password_md5 = $row_pwd['passwort']; + } + $sql1 = $db->query("UPDATE jumi_admin + SET vorname = '$vorname' + ,nachname = '$nachname' + ,mail = '$mail' + ,passwort = '$password_md5' + WHERE uid = $uid"); + if (!$sql1) { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Es gab ein Fehler in der Datenbank: Update User</div>|***|error'; + exit; + $error++; + } + + $sql2 = $db->query("DELETE FROM jumi_admin_rollen_user_zuord WHERE uid = $uid"); + for ($i = 0; $i < sizeof($rollen); $i++) { + $sql2 = $db->query("INSERT INTO jumi_admin_rollen_user_zuord ( rid + , uid + ) + VALUES + ( '$rollen[$i]' + , '$uid' + ) + "); + } + if (!$sql2) { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Es gab ein Fehler in der Datenbank: Insert Rollenzuordnung</div>|***|error'; + exit; + $error++; + } + + + if($pwdback == 1){ + $empfaenger = "$mail"; + $betreff = "Update JU & MI Portal"; + $text = " + <html> + <head> + <title>Update JU & MI Portal</title> + </head> + <body> + <font face='Arial' size='2'> + Guten Tag $vorname $nachname!<br><br> + Sie wurden im JU & MI Portal geändert!<br> + Nachfolgend finden Sie Ihre Zugangsdaten: + <br> + <br> + <table> + <tr> + <td valign='top'> + <font face='Arial' size='2'> + <b>Benutzerkennung:</b> + </font> + </td> + <td valign='top'> + <font face='Arial' size='2'> + $mail + </font> + </td> + </tr> + <tr> + <td valign='top'> + <font face='Arial' size='2'> + <b>Passwort:</b> + </font> + </td> + <td valign='top'> + <font face='Arial' size='2'> + $password + </font> + </td> + </tr> + <tr> + <td valign='top'> + <font face='Arial' size='2'> + <b>Login:</b> + </font> + </td> + <td valign='top'> + <font face='Arial' size='2'> + <a href='http://admin.ju-and-mi.de'>http://admin.ju-and-mi.de</a> + </font> + </td> + </tr> + </table> + <br> + Bitte beachten Sie, dass das Passwort zwischen Groß- und<br> + Kleinschreibung unterscheidet. + <p> + Ändern Sie bitte zu Ihrer eigenen Sicherheit das<br> + Passwort nach dem ersten Login unter dem Benutzericon in der Kopfleiste. + <p> + Vielen Dank + </body> + </html>"; + $result_absender = $db->query("SELECT wert FROM jumi_parameter WHERE pid = 1"); + $row_absender = $result_absender->fetch_array(); + if ($row_absender['wert'] == '') { + $absender = 'info@ju-and-mi.de'; + } else { + $absender = $row_absender['wert']; + } + $headers = "MIME-Version: 1.0\n"; + $headers .= "Content-type: text/html; charset=utf-8\n"; + $headers .= "From: Info JU & MI <$absender>\n"; + + $return = @mail($empfaenger, $betreff, $text, $headers); + + if (!$return) { // Abfrage ob Mailversand funktioniert hat + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> BenutzerIn wurde aktualisiert. Es konnte allerdings <b>keine Mail</b> verschickt werden!</div>|***|success'; + exit; + } else { + echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> BenutzerIn wurde aktualisiert. Eine Mail mit den Zugangsdaten wurde zugestellt.</div>|***|success'; + exit; + } + }else{ + if ($error == 0) { + echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> BenutzerIn wurde aktualisiert.</div>|***|success'; + exit; + }else{ + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> BenutzerIn wurde nicht aktualisiert.</div>|***|success'; + exit; + } + } +} + + +if ($function == 'disableuser') { + $uid = $_POST['uid']; + + $sql1 = $db->query("UPDATE jumi_admin + SET aktiv = '0' + WHERE uid = $uid"); + if (!$sql1) { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Es gab ein Fehler in der Datenbank: Disable User</div>|***|error'; + exit; + }else{ + echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> BenutzerIn wurde gesperrt.</div>|***|success'; + exit; + } +} + +if ($function == 'enableuser') { + $uid = $_POST['uid']; + + $sql1 = $db->query("UPDATE jumi_admin + SET aktiv = '1' + WHERE uid = $uid"); + if (!$sql1) { + echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Es gab ein Fehler in der Datenbank: Enable User</div>|***|error'; + exit; + }else{ + echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> BenutzerIn wurde aktiviert.</div>|***|success'; + exit; + } +} +*/ +?> \ No newline at end of file diff --git a/dashboard/create_member.php b/dashboard/create_member.php new file mode 100644 index 0000000..3a25ddd --- /dev/null +++ b/dashboard/create_member.php @@ -0,0 +1,72 @@ +<?php +if (!isset($_SESSION)) { + session_start(); +} +/* +# Fuer debugging +error_reporting(E_ALL); +ini_set('display_errors', 1); +#echo __LINE__."<br>"; +*/ + + +include_once '../classes/TestProjektSmarty.class_subdir.php'; +$_SESSION['cur_page'] = $_SERVER['PHP_SELF']; // Fals man Seite direkt aufruft und Autologin funktioniert +require_once("../config.inc.php"); +$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html"; +$smarty = new SmartyAdmin(); +if(!rechte(basename(__FILE__), $uid)){ + echo "<meta http-equiv=\"refresh\" content=\"0; URL=error.php\">"; + exit; +} +require_once "../language/german.inc.php"; + + + + +if(isset($_GET['action'])){ + $action = $_GET['action']; +}else{ + $action = ''; +} + +if($action == ''){ +/* + # Daten aufbereiten für Zurückbutton + if(isset($_SESSION["anlegen_vorname"])){ + $smarty->assign('user_anlegen_vorname', $_SESSION["anlegen_vorname"]); + } + + if(isset($_SESSION["anlegen_nachname"])){ + $smarty->assign('user_anlegen_nachname', $_SESSION["anlegen_nachname"]); + } + + if(isset($_SESSION["anlegen_mail"])){ + $smarty->assign('user_anlegen_mail', $_SESSION["anlegen_mail"]); + } + # Daten aufbereiten für Zurückbutton ENDE +*/ +# if(isset($_GET['edituid']) and $_GET['edituid'] != ''){ +# # Aus externer Seite edit_user.php +# #echo "<br><br><br><br><br><br><br><br>-----------------------------------------------hier"; +# $uid = $_GET['edituid']; +# $smarty->assign('create_edit', $uid); +# +# $result0 = $db->query("SELECT vorname, nachname, mail +# FROM jumi_admin +# WHERE uid = $uid;"); +# $row0 = $result0->fetch_array(); +# $smarty->assign('member_anlegen_vorname', $row0['vorname']); +# $smarty->assign('member_anlegen_nachname', $row0['nachname']); +# $smarty->assign('member_anlegen_mail', $row0['mail']); +# } +# + + +} + + + +$smarty->assign('action', "$action"); +$smarty->display("$template/dashboard/$templatename"); +?> diff --git a/js/components/admin_create_member.js b/js/components/admin_create_member.js new file mode 100644 index 0000000..1a2b73a --- /dev/null +++ b/js/components/admin_create_member.js @@ -0,0 +1,169 @@ +function checkUser(){ + var mail = document.getElementById("mail").value; + $.ajax({ + type: 'POST', + url: '../controller/admin_create_member.php', + data: { + 'function': 'checkuser', + 'mail': mail + }, + success: function(result) { //we got the response + if(result!=''){ + $('#msg').show().delay(5000).fadeOut(500); + $('#msg').html(result); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); + +} + + +function membersave(){ + var vorname = document.getElementById("vorname").value; + var nachname = document.getElementById("nachname").value; + var mail = document.getElementById("mail").value; + var bemerkung =tinyMCE.get('bemerkung').getContent() + + + //var my_data = $("form").serialize(); + + //komma getrennte Werte bei Mehrfachauswahl + var singstimme = $("#singstimme").val(); + $.ajax({ + type: 'POST', + url: '../controller/admin_create_member.php', + data: { + 'function': 'membersave', + 'vorname': vorname, + 'nachname': nachname, + 'mail': mail, + 'singstimme': singstimme, + 'bemerkung': bemerkung + }, + success: function(result) { //we got the response + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + document.getElementById("vorname").value =""; + document.getElementById("nachname").value =""; + document.getElementById("mail").value =""; + tinymce.get("bemerkung").setContent(""); + var elements = document.getElementById("singstimme").options; + for(var i = 0; i < elements.length; i++){ + elements[i].selected = false; + } + } + $('#msg1').show().delay(10000).fadeOut(500); + $('#msg1').html(a[0]); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); +} + +/* + +function userupdate(uid){ + var vorname = document.getElementById("vorname").value; + var nachname = document.getElementById("nachname").value; + var mail = document.getElementById("mail").value; + var pwdback = document.getElementById("pwdback"); + + if(pwdback.checked == true){ + var var_pwdback = 1; + }else{ + var var_pwdback = 0; + } + //var my_data = $("form").serialize(); + + //komma getrennte Werte bei Mehrfachauswahl + var rollen = $("#rollen").val(); + $.ajax({ + type: 'POST', + url: '../controller/admin_create_member.php', + data: { + 'function': 'userupdate', + 'vorname': vorname, + 'nachname': nachname, + 'mail': mail, + 'rollen': rollen, + 'pwdback': var_pwdback, + 'uid': uid + }, + success: function(result) { //we got the response + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + $(document).ajaxStop(function(){ + setTimeout(() => { window.location = "edit_user.php"; }, 1000); + }); + } + $('#msg1').show().delay(10000).fadeOut(500); + $('#msg1').html(a[0]); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); +} + +function disableuser(uid){ + + $.ajax({ + type: 'POST', + url: '../controller/admin_create_member.php', + data: { + 'function': 'disableuser', + 'uid': uid + }, + success: function(result) { //we got the response + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + $(document).ajaxStop(function(){ + setTimeout(() => { window.location = "edit_user.php"; }, 1000); + }); + } + $('#msg').show().delay(10000).fadeOut(500); + $('#msg').html(a[0]); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); +} + +function enableuser(uid){ + + $.ajax({ + type: 'POST', + url: '../controller/admin_create_member.php', + data: { + 'function': 'enableuser', + 'uid': uid + }, + success: function(result) { //we got the response + if(result!=''){ + var a = result.split('|***|'); + if(a[1]=="success"){ + $(document).ajaxStop(function(){ + setTimeout(() => { window.location = "edit_user.php"; }, 1000); + }); + } + $('#msg').show().delay(10000).fadeOut(500); + $('#msg').html(a[0]); + } + }, + error: function(xhr, status, exception) { + console.log(xhr); + } + }); +} +*/ \ No newline at end of file diff --git a/templates/modern/dashboard/create_member.html b/templates/modern/dashboard/create_member.html new file mode 100644 index 0000000..bb4e85a --- /dev/null +++ b/templates/modern/dashboard/create_member.html @@ -0,0 +1,229 @@ +{if $action == ''} +<!DOCTYPE html> +<html lang="de"> + <head> + <title>JU & MI Benutzer erstellen</title> + <link rel="stylesheet" href="../jquery/jquery-ui.css"> + <link rel="stylesheet" href="../jquery/jquery.timepicker.min.css"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link href="../bootstrap/node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet"> + <script src="../bootstrap/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script> + <!-- nochmals bootstrap.css mit Erweiterungen vom Dashboard --> + <link href="css/styles.css" rel="stylesheet" /> + <!-- icons in nav--> + <script src="js/all.js" crossorigin="anonymous"></script> + <script src="../jquery/jquery-3.4.1.min.js"></script> + <link rel="stylesheet" href="../bootstrap/node_modules/bootstrap-icons/font/bootstrap-icons.css"> +<style> +.multiselect-container { + position: absolute; + list-style-type: none; + margin: 5px 0 0 0; + width: 100%; + padding: 10px 0; + border: none; + -webkit-box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); + -moz-box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); + box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); } + +.multiselect-container .input-group { + margin: 5px; } + +.multiselect-container > li { + padding: 0; + font-size: 14px; } + +.multiselect-container > li > a.multiselect-all label { + font-weight: 700; + color: gray; } + +.multiselect-container > li.multiselect-group label { + margin: 0; + padding: 3px 20px 3px 20px; + height: 100%; + font-weight: 700; } + +.multiselect-container > li.multiselect-group-clickable label { + cursor: pointer; } + +.multiselect-container > li > a { + padding: 5px 0; + color: #000; + display: block; } + +.multiselect-container > li > a > label { + display: block; + position: relative; + padding-left: 20px; + margin-bottom: 12px; + cursor: pointer; + font-size: 16px; + font-weight: 500; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + .multiselect-container > li > a > label:before { + content: ""; + display: inline-block; + position: relative; + height: 20px; + width: 20px; + border: 2px solid rgba(0, 0, 0, 0.2); + border-radius: 4px; + background-color: transparent; + margin-right: 15px; + vertical-align: middle; } + +.multiselect-container > li.active > a > label:before { + font-family: 'fontAwesome'; + content: "\f00c"; + color: #fff; + background-color: #52de97; + border: 0; + display: inline-block; + padding: 0; + line-height: 1.2; + padding-left: 2px; } + +.multiselect-container > li > a > label.radio, .multiselect-container > li > a > label.checkbox { + margin: 0; } + +.multiselect-container > li > a > label > input[type=checkbox] { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; } + +.btn-group > .btn-group:nth-child(2) > .multiselect.btn { + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; } + +.form-inline .multiselect-container label.checkbox, .form-inline .multiselect-container label.radio { + padding: 3px 20px 3px 40px; } + +.form-inline .multiselect-container li a label.checkbox input[type=checkbox], +.form-inline .multiselect-container li a label.radio input[type=radio] { + margin-left: -20px; + margin-right: 0; } + +.btn-group { + height: 52px; + width: calc(100% - 150px); } + .btn-group button { + border-radius: 4px; + background: #fff; + -webkit-box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); + -moz-box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); + box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); + padding: 0 10px; + text-align: left; + position: relative; } + .btn-group button:after { + position: absolute; + top: 50%; + right: 20px; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + color: #999999; } + .btn-group button:focus { + -webkit-box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); + -moz-box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); + box-shadow: 0px 10px 23px -16px rgba(0, 0, 0, 0.14); + padding: 0 10px; } + +.sl { + color: gray; + width: 150px; } + +</style> + </head> + <body class="sb-nav-fixed"> + <div id="navtop"></div> + {literal} + <script> + $(function(){ + // im Navbar muss der toggle in der Callbackfunktion definiert werden. Sonst findet jquery getelementbyID nicht + $("#navtop").load('navtop.php', null, function(){$.getScript('js/scripts.js');}); + $("#navleft").load("nav.php"); + $("#footer").load("footer.php"); + }); + </script> + {/literal} + <div id="layoutSidenav"> + <!-- Navigation left --> + <div id="navleft"></div> + <div id="layoutSidenav_content"> + <main> + <!--Anwendung--> + <script src="../js/components/admin_create_member.js"></script> + + <div class="container-fluid"> + <div class="card"> + <div class="card-header"> + <i class="fas fa-edit me-1"></i> + SängerIn erfassen + </div> + <div class="card-body"> + <div class="row"> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> + <div class="col-12 col-md-4">Vorname:</div> + <div class="col-12 col-md-8"><input type="text" class="form-control" name="vorname" id="vorname" value="{$member_anlegen_vorname}"></div> + </div> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> + <div class="col-12 col-md-4">Nachname:</div> + <div class="col-12 col-md-8"><input type="text" class="form-control" name="nachname" id="nachname" value="{$member_anlegen_nachname}"></div> + </div> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> + <div class="col-12 col-md-4">Mailadresse:</div> + <div class="col-12 col-md-8"><input type="email" class="form-control" name="mail" id="mail" value="{$member_anlegen_mail}" onkeyup="checkUser()"></div> + </div> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> + <div class="col-12 col-md-4">Singstimme:</div> + <div class="col-12 col-md-8"> + <select name="singstimme"class="form-control" id="singstimme"> + <option value="1">Sopran</option> + <option value="2">Alt</option> + <option value="3">Tenor</option> + <option value="4">Baß</option> + </select> + </div> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> + <div class="col-12 col-md-4">Bemerkung:</div> + <div class="col-12 col-md-8"> + <div class="form-group"> + <textarea id="bemerkung"></textarea> + </div> + </div> + </div> + </div> + <p align='center'> + <button class="col-6 btn btn-primary btn-sm mt-3" id="save" onclick="membersave();">Speichern</button> + </p> + </div> + </div> + </div> + <div id="msg"></div> + <div id="msg1"></div> + </main> +<script src="https://cdn.tiny.cloud/1/1rbpdpgs5ibxxotsljroj6rzz4t6v4akerjkdj7tuzdzlic6/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script> + +<script> + tinymce.init({ + selector: 'textarea#bemerkung', + height: 200, + skin: 'bootstrap', + plugins: 'lists, link', + toolbar: 'h1 h2 bold italic strikethrough blockquote bullist numlist backcolor | link | removeformat help', + menubar: false, + }); +</script> + <!-- footer --> + <div id="footer"></div> + </div> + </div> + </body> +</html> +{/if} diff --git a/templates/modern/dashboard/notenupload.html b/templates/modern/dashboard/notenupload.html index 7c3b1af..2eda42f 100644 --- a/templates/modern/dashboard/notenupload.html +++ b/templates/modern/dashboard/notenupload.html @@ -70,31 +70,31 @@ </div> <div class="card-body"> <div class="row"> - <div class="row mt-0 mt-sm-4 mb-0 mb-sm-4"> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> <div class="col-12 col-md-4">Titel:</div> <div class="col-12 col-md-8"> <input type="text" id="titel" class="form-control rounded-right" required> </div> </div> - <div class="row mt-0 mt-sm-4 mb-0 mb-sm-4"> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> <div class="col-12 col-md-4">Verlag:</div> <div class="col-12 col-md-8"> <input type="text" id="verlag" class="form-control rounded-right" required"> </div> </div> - <div class="row mt-0 mt-sm-4 mb-0 mb-sm-4"> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> <div class="col-12 col-md-4">Anzahl Lizenzen:</div> <div class="col-12 col-md-8"> <input type="text" id="anz_lizenzen" class="form-control rounded-right" required"> </div> </div> - <div class="row mt-0 mt-sm-4 mb-0 mb-sm-4"> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> <div class="col-8 col-md-4">Streamlizenz vorhanden:</div> <div class="col-4 col-md-8"> <input class="form-check-input" type="checkbox" name="streamlizenz" id="streamlizenz" value="1"> </div> </div> - <div class="row mt-0 mt-sm-4 mb-0 mb-sm-4"> + <div class="row mt-2 mt-sm-4 mb-2 mb-sm-4"> <label for="formFile" class="form-label"> <div class="col-12 col-md-4">PDF:</div> <div class="col-12col-md-8">