Chorverwaltung

This commit is contained in:
aschwarz 2023-04-04 16:44:50 +02:00
parent 2fe4e927ff
commit 7c84c994e8
96 changed files with 10205 additions and 727 deletions

View File

@ -96,7 +96,7 @@ if(!isset($_SESSION['userid']) && isset($_COOKIE['identifier']) && isset($_COOKI
}
if ($function == 'login') {
$mail=strtoupper($_POST["mail"]); //remove case sensitivity on the mail
$mail=mb_strtoupper($_POST["mail"]); //remove case sensitivity on the mail
$password=$_POST["password"];

View File

@ -0,0 +1,258 @@
<?php
require_once ("../config.inc.php");
$function = $_POST['function'];
if ($function == 'save_with_files')
{
if (isset($_POST) && $_SERVER['REQUEST_METHOD'] == "POST")
{
## Dieses Script wird für jede Datei einzeln aufgerufen durch vpb_uploader.js. Bei 3 Dateien, 3x
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$mail = $_POST['mail'];
#csid gesetzt, wenn Member bearbeitet wird
$csid_edit = $_POST['csid_edit'];
$singstimme = $_POST['singstimme'];
$bemerkung = $db->real_escape_string(stripslashes( $_POST['bemerkung'] ));
// Fehlercheck funktioniert hier nicht. Das Script wird so oft aufgerufen wie Dateien angehängt werden. Bei mehreren Dateien ist spätestens nach dem zweiten Aufruf der Sänger vorhanden
// $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;
}
$datum_file = date("Ymd_His_");
#$vpb_file_name = strip_tags($_FILES['upload_file']['name']); //File Name
$vpb_file_name = str_replace(array(
"ä",
"ö",
"ü",
"ß",
"Ä",
"Ö",
"Ü",
" "
) , array(
"ae",
"oe",
"ue",
"ss",
"Ae",
"Oe",
"Ue",
"_"
) , $_FILES['upload_file']['name']);
$originalname = $_FILES['upload_file']['name'];
$vpb_file_name = $datum_file . $vpb_file_name;
$vpb_file_id = strip_tags($_POST['upload_file_ids']); // File id is gotten from the file name
$vpb_file_size = $_FILES['upload_file']['size']; // File Size
$vpb_uploaded_files_location = '../media/file_upload/member/'; //This is the directory where uploaded files are saved on your server
$vpb_final_location = $vpb_uploaded_files_location . $vpb_file_name; //Directory to save file plus the file to be saved
//Without Validation and does not save filenames in the database
if (move_uploaded_file(strip_tags($_FILES['upload_file']['tmp_name']) , $vpb_final_location))
{
$datum = date("Y-m-d H:i:s");
$result = $db->query("SELECT csid
FROM jumi_chor_saenger
WHERE vorname = '$vorname'
AND nachname = '$nachname'
AND singstimme = '$singstimme'
");
$row = $result->fetch_array();
if ($row['csid'] == '' AND $csid_edit == '-1')
{
$sql1 = $db->query("INSERT INTO jumi_chor_saenger ( vorname
, nachname
, mail
, singstimme
, bemerkung
)
VALUES
( '$vorname'
, '$nachname'
, '$mail'
, '$singstimme'
, '$bemerkung'
)
");
$csid = $db->insert_id;
}
elseif($csid_edit != '-1')
{
$sql1 = $db->query( "UPDATE jumi_chor_saenger
SET vorname = '$vorname'
,nachname = '$nachname'
,mail = '$mail'
,singstimme = '$singstimme'
,bemerkung = '$bemerkung'
WHERE csid = $csid_edit
" );
$csid = $csid_edit;
}
else
{
$csid = $row['csid'];
}
$sql2 = $db->query("INSERT INTO jumi_chor_saenger_uploads ( csid
, filename
, originalname
, uid
, datum
)
VALUES
( $csid
, '$vpb_final_location'
, '$originalname'
, $uid
, '$datum'
)
");
//Display the file id
if ($sql2)
{
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Dokumente wurden angelegt!</div>|***|success|***|' . $vpb_file_id;
exit;
}
else
{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Dokumente wurden nicht angelegt: Insert Fehler Datenbank.</div>|***|error|***|' . $vpb_file_id;
exit;
}
}
else
{
//Display general system error
echo 'general_system_error';
}
}
}
if ($function == 'save_without_files')
{
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$mail = $_POST['mail'];
$singstimme = $_POST['singstimme'];
#csid gesetzt, wenn Member bearbeitet wird
$csid_edit =$_POST['csid_edit'];
$bemerkung = $db->real_escape_string(stripslashes( $_POST['bemerkung'] ));
$db = dbconnect();
$datum = date("Y-m-d H:i:s");
if($csid_edit == '-1'){
$sql1 = $db->query("INSERT INTO jumi_chor_saenger ( vorname
, nachname
, mail
, singstimme
, bemerkung
)
VALUES
( '$vorname'
, '$nachname'
, '$mail'
, '$singstimme'
, '$bemerkung'
)
");
if ($sql1)
{
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> S&auml;gerIn wurde angelegt!</div>|***|success|***|';
exit;
}
else
{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> S&auml;gerIn wurde nicht angelegt: Insert Fehler Datenbank.</div>|***|error';
exit;
}
}else{
$sql1 = $db->query( "UPDATE jumi_chor_saenger
SET vorname = '$vorname'
,nachname = '$nachname'
,mail = '$mail'
,singstimme = '$singstimme'
,bemerkung = '$bemerkung'
WHERE csid = $csid_edit
" );
if ($sql1)
{
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> S&auml;gerIn wurde bearbeitet!</div>|***|success|***|';
exit;
}
else
{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> S&auml;gerIn nicht bearbeitet: Update Fehler Datenbank.</div>|***|error';
exit;
}
}
}
if ($function == 'delMemberFile') {
if (isset($_POST['id'])) {
$id = $_POST['id'];
}
$result0 = $db->query("SELECT filename, csid
FROM jumi_chor_saenger_uploads
WHERE id = $id;");
$row0 = $result0->fetch_array();
$stmt1 = $db->query("DELETE FROM jumi_chor_saenger_uploads WHERE id= $id");
$del = unlink($row0['filename']);
if ($stmt1 AND $del) {
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Die Datei wurde gelöscht!</div>|***|success|***|'.$row0['csid'];
exit;
} else {
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Die Datei wurde nicht gelöscht: DELETE Fehler Datenbank.</div>|***|success|***|'.$row0['csid'];
exit;
}
}
if ($function == 'delMember') {
if (isset($_POST['csid'])) {
$csid = $_POST['csid'];
}
$query = "SELECT id, filename, originalname FROM jumi_chor_saenger_uploads WHERE csid='$csid' ORDER BY datum DESC";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
$del = unlink($row['filename']);
}
$stmt1 = $db->query("DELETE FROM jumi_chor_saenger_uploads WHERE csid = $csid;");
$stmt2 = $db->query("DELETE FROM jumi_chor_saenger WHERE csid = $csid");
if ($stmt1 AND $stmt2) {
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> S&auml;gerIn wurde gelöscht!</div>|***|success|***|'.$row0['csid'];
exit;
} else {
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> S&auml;gerIn wurde nicht gelöscht: DELETE Fehler Datenbank.</div>|***|success|***|'.$row0['csid'];
exit;
}
}
?>

View File

@ -0,0 +1,149 @@
<?php
require_once("../config.inc.php");
$function = $_POST['function'];
if ($function == 'notenbuchsave') {
if (isset($_POST['notenbuch'])) {
$notenbuch = $_POST['notenbuch'];
}
$db = dbconnect();
$result = $db->query("SELECT count(*) Anz FROM jumi_noten_zusammenstellung WHERE upper(bezeichnung)=upper('$notenbuch')");
$row = $result->fetch_array();
if ($notenbuch == ''){ //verschlüsseltes Passwort überprüfen
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Der Notenbuchname darf nicht leer sein.</div>|***|error';
exit;
}else if ($row['Anz'] > 0){ //verschlüsseltes Passwort überprüfen
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Der Notenbuchname ist bereits vorhanden.</div>|***|error';
exit;
}else{
$sql1 = $db->query("INSERT INTO jumi_noten_zusammenstellung ( bezeichnung ) VALUES ( '$notenbuch' )");
if($sql1){
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Der Notenbuchname wurde gespeichert!</div>|***|success';
exit;
}else{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Der Notenbuchname wurde nicht gespeichert: Insert Fehler Datenbank.</div>|***|error';
exit;
}
}
}
if ($function == 'erfzuordnung') {
if (isset($_POST['jndid'])) {
$jndid = $_POST['jndid'];
}
if (isset($_POST['zsid'])) {
$zsid = $_POST['zsid'];
}
$db = dbconnect();
$sql1 = $db->query("INSERT INTO jumi_noten_zusammenstellung_zuord ( jndid, zsid) VALUES ( $jndid, $zsid )");
if($sql1){
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Das Recht wurde zugewiesen!</div>|***|success|***|'.$jndid;
exit;
}else{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Das Recht wurde nicht zugewiesen: Insert Fehler Datenbank.</div>|***|error';
exit;
}
}
if ($function == 'delzuordnung') {
if (isset($_POST['jndid'])) {
$jndid = $_POST['jndid'];
}
if (isset($_POST['zsid'])) {
$zsid = $_POST['zsid'];
}
$sql1 = $db->query("DELETE FROM jumi_noten_zusammenstellung_zuord WHERE jndid='$jndid' AND zsid='$zsid'");
if($sql1){
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Das Recht wurde gelöscht!</div>|***|success|***|'.$jndid;
exit;
}else{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Das Recht wurde nicht gelöscht: DELETE Fehler Datenbank.</div>|***|error';
exit;
}
}
if ($function == 'erfuser') {
if (isset($_POST['rid'])) {
$rid = $_POST['rid'];
}
if (isset($_POST['uid'])) {
$uid = $_POST['uid'];
}
$db = dbconnect();
$sql1 = $db->query("INSERT INTO jumi_admin_rollen_user_zuord ( rid, uid) VALUES ( $rid, $uid )");
if($sql1){
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Der Benutzer wurde zugewiesen!</div>|***|success|***|'.$rid;
exit;
}else{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Der Benutzer wurde nicht zugewiesen: Insert Fehler Datenbank.</div>|***|error';
exit;
}
}
if ($function == 'deluser') {
if (isset($_POST['rid'])) {
$rid = $_POST['rid'];
}
if (isset($_POST['uid'])) {
$uid = $_POST['uid'];
}
$sql1 = $db->query("DELETE FROM jumi_admin_rollen_user_zuord WHERE rid='$rid' AND uid='$uid'");
if($sql1){
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Der Benutzer wurde gelöscht!</div>|***|success|***|'.$rid;
exit;
}else{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Der Benutzer wurde nicht gelöscht: DELETE Fehler Datenbank.</div>|***|error';
exit;
}
}
if ($function == 'delRole') {
if (isset($_POST['rid'])) {
$rid = $_POST['rid'];
}
$stmt1 = $db->query("DELETE FROM jumi_admin_rollen_rechte_zuord WHERE rid= $rid");
$stmt2 = $db->query("DELETE FROM jumi_admin_rollen_user_zuord WHERE rid= $rid");
$stmt3 = $db->query("DELETE FROM jumi_admin_rolle WHERE rid= $rid");
if ($stmt1 AND $stmt2 AND $stmt3) {
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Die Rolle wurde gelöscht!</div>|***|success';
exit;
} else {
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Die Rolle wurde nicht gelöscht: DELETE Fehler Datenbank.</div>|***|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";
}
}
*/
?>

View File

@ -9,7 +9,10 @@ if ($function == 'save_with_files')
{
## Dieses Script wird für jede Datei einzeln aufgerufen durch vpb_uploader.js. Bei 3 Dateien, 3x
$titel = $_POST['titel'];
$songbook = $_POST['songbook'];
$verlag = $_POST['verlag'];
#csid gesetzt, wenn Member bearbeitet wird
$jndid_edit = $_POST['jndid_edit'];
$anz_lizenzen = $_POST['anz_lizenzen'];
$streamlizenz = $_POST['streamlizenz'];
@ -57,22 +60,51 @@ if ($function == 'save_with_files')
$vpb_final_location = $vpb_uploaded_files_location . $vpb_file_name; //Directory to save file plus the file to be saved
//Without Validation and does not save filenames in the database
# Wenn Songbook nicht vorhanden, dann neu anlegen
$result_sb = $db->query("SELECT sbid
FROM jumi_noten_songbook
WHERE bezeichnung = '$songbook'
LIMIT 1
");
$row_sb = $result_sb->fetch_array();
if($row_sb['sbid'] == ''){
$sql1 = $db->query("INSERT INTO jumi_noten_songbook ( bezeichnung ) VALUES ( '$songbook' )");
$sbid = $db->insert_id;
}else{
$sbid=$row_sb['sbid'];
}
# Wenn Verlag nicht vorhanden, dann neu anlegen
$result_vg = $db->query("SELECT vid
FROM jumi_noten_verlag
WHERE bezeichnung = '$verlag'
LIMIT 1
");
$row_vg = $result_vg->fetch_array();
if($row_vg['vid'] == ''){
$sql1 = $db->query("INSERT INTO jumi_noten_verlag ( bezeichnung ) VALUES ( '$verlag' )");
$vid = $db->insert_id;
}else{
$vid=$row_vg['vid'];
}
if (move_uploaded_file(strip_tags($_FILES['upload_file']['tmp_name']) , $vpb_final_location))
{
$datum = date("Y-m-d H:i:s");
$result = $db->query("SELECT jndid
FROM jumi_noten_daten
WHERE titel = '$titel'
AND verlag = '$verlag'
AND vid = '$vid'
AND sbid = '$sbid'
AND anz_lizenzen = '$anz_lizenzen'
AND streamlizenz = '$streamlizenz'
");
");
$row = $result->fetch_array();
if ($row['jndid'] == '')
if ($row['jndid'] == '' AND $jndid_edit == '-1')
{
$sql1 = $db->query("INSERT INTO jumi_noten_daten ( titel
, verlag
, vid
, sbid
, anz_lizenzen
, streamlizenz
, uid
@ -80,7 +112,8 @@ if ($function == 'save_with_files')
)
VALUES
( '$titel'
, '$verlag'
, '$vid'
, '$sbid'
, '$anz_lizenzen'
, '$streamlizenz'
, $uid
@ -89,6 +122,40 @@ if ($function == 'save_with_files')
");
$jndid = $db->insert_id;
}
elseif($jndid_edit != '-1')
{
$sql1 = $db->query( "UPDATE jumi_noten_daten
SET titel = '$titel'
,vid = '$vid'
,sbid = '$sbid'
,anz_lizenzen = '$anz_lizenzen'
,streamlizenz = '$streamlizenz'
,uid = '$uid'
,datum = '$datum'
WHERE jndid_ = $jndid_edit
" );
$jndid = $jndid_edit;
# Nicht verwendeter Verlag löschen
$query = "SELECT vid FROM jumi_noten_verlag a WHERE vid NOT IN (SELECT vid FROM jumi_noten_daten b WHERE a.vid=b.vid); ";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
$de11 = $db->query( "DELETE FROM jumi_noten_verlag WHERE vid=$row[vid]" );
}
# Nicht verwendetes Songbok löschen
$query2 = "SELECT sbid FROM jumi_noten_songbook a WHERE sbid NOT IN (SELECT sbid FROM jumi_noten_daten b WHERE a.sbid=b.sbid); ";
$result2 = $db->query( $query2 )
or die ("Cannot execute query2");
while ($row2 = $result2->fetch_array()){
$de12 = $db->query( "DELETE FROM jumi_noten_songbook WHERE sbid=$row2[sbid]" );
}
}
else
{
$jndid = $row['jndid'];
@ -132,66 +199,200 @@ if ($function == 'save_with_files')
if ($function == 'save_without_files')
{
if (isset($_POST['titel']))
{
$titel = $_POST['titel'];
}
if (isset($_POST['verlag']))
{
$songbook = $_POST['songbook'];
$verlag = $_POST['verlag'];
}
if (isset($_POST['anz_lizenzen']))
{
$jndid_edit = $_POST['jndid_edit'];
$anz_lizenzen = $_POST['anz_lizenzen'];
}
if (isset($_POST['streamlizenz']))
{
$streamlizenz = $_POST['streamlizenz'];
}
if (isset($streamlizenz))
{
if ($streamlizenz == '1')
if (isset($streamlizenz))
{
$streamlizenz = '1';
if ($streamlizenz == '1')
{
$streamlizenz = '1';
}
else
{
$streamlizenz = '0';
}
}
else
{
$streamlizenz = '0';
}
}
else
{
$streamlizenz = '0';
}
$db = dbconnect();
# Wenn Songbook nicht vorhanden, dann neu anlegen
$result_sb = $db->query("SELECT sbid
FROM jumi_noten_songbook
WHERE bezeichnung = '$songbook'
LIMIT 1
");
$row_sb = $result_sb->fetch_array();
if($row_sb['sbid'] == ''){
$sql1 = $db->query("INSERT INTO jumi_noten_songbook ( bezeichnung ) VALUES ( '$songbook' )");
$sbid = $db->insert_id;
}else{
$sbid=$row_sb['sbid'];
}
# Wenn Verlag nicht vorhanden, dann neu anlegen
$result_vg = $db->query("SELECT vid
FROM jumi_noten_verlag
WHERE bezeichnung = '$verlag'
LIMIT 1
");
$row_vg = $result_vg->fetch_array();
if($row_vg['vid'] == ''){
$sql1 = $db->query("INSERT INTO jumi_noten_verlag ( bezeichnung ) VALUES ( '$verlag' )");
$vid = $db->insert_id;
}else{
$vid=$row_vg['vid'];
}
$datum = date("Y-m-d H:i:s");
$sql1 = $db->query("INSERT INTO jumi_noten_daten ( titel
, verlag
, anz_lizenzen
, streamlizenz
, uid
, datum
)
VALUES
( '$titel'
, '$verlag'
, '$anz_lizenzen'
, '$streamlizenz'
, $uid
, '$datum'
)
");
if ($sql1)
{
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Noten wurden angelegt!</div>|***|success|***|';
exit;
}
else
{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Noten wurden nicht angelegt: Insert Fehler Datenbank.</div>|***|error';
exit;
if($jndid_edit == '-1'){
$sql1 = $db->query("INSERT INTO jumi_noten_daten ( titel
, vid
, sbid
, anz_lizenzen
, streamlizenz
, uid
, datum
)
VALUES
( '$titel'
, '$vid'
, '$sbid'
, '$anz_lizenzen'
, '$streamlizenz'
, $uid
, '$datum'
)
");
if ($sql1)
{
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Noten wurden bearbeitet!</div>|***|success|***|';
exit;
}
else
{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Noten wurden nicht bearbeitet: Insert Fehler Datenbank.</div>|***|error';
exit;
}
}else{
$sql1 = $db->query( "UPDATE jumi_noten_daten
SET titel = '$titel'
,vid = '$vid'
,sbid = '$sbid'
,anz_lizenzen = '$anz_lizenzen'
,streamlizenz = '$streamlizenz'
,uid = '$uid'
,datum = '$datum'
WHERE jndid = $jndid_edit
" );
# Nicht verwendeter Verlag löschen
$query = "SELECT vid FROM jumi_noten_verlag a WHERE vid NOT IN (SELECT vid FROM jumi_noten_daten b WHERE a.vid=b.vid); ";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
$de11 = $db->query( "DELETE FROM jumi_noten_verlag WHERE vid=$row[vid]" );
}
# Nicht verwendetes Songbok löschen
$query2 = "SELECT sbid FROM jumi_noten_songbook a WHERE sbid NOT IN (SELECT sbid FROM jumi_noten_daten b WHERE a.sbid=b.sbid); ";
$result2 = $db->query( $query2 )
or die ("Cannot execute query2");
while ($row2 = $result2->fetch_array()){
$de12 = $db->query( "DELETE FROM jumi_noten_songbook WHERE sbid=$row2[sbid]" );
}
if ($sql1)
{
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Noten wurden bearbeitet!</div>|***|success|***|';
exit;
}
else
{
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Noten wurden nicht bearbeitet: Update Fehler Datenbank.</div>|***|error';
exit;
}
}
}
if ($function == 'delNotenFile') {
if (isset($_POST['id'])) {
$id = $_POST['id'];
}
$result0 = $db->query("SELECT filename, jndid
FROM jumi_noten_uploads
WHERE id = $id;");
$row0 = $result0->fetch_array();
$stmt1 = $db->query("DELETE FROM jumi_noten_uploads WHERE id= $id");
$del = unlink($row0['filename']);
if ($stmt1 AND $del) {
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> Die Datei wurde gelöscht!</div>|***|success|***|'.$row0['jndid'];
exit;
} else {
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> Die Datei wurde nicht gelöscht: DELETE Fehler Datenbank.</div>|***|success|***|'.$row0['jndid'];
exit;
}
}
if ($function == 'delNoten') {
if (isset($_POST['jndid'])) {
$jndid = $_POST['jndid'];
}
$query = "SELECT id, filename, originalname FROM jumi_noten_uploads WHERE jndid='$jndid' ORDER BY datum DESC";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
$del = unlink($row['filename']);
}
$stmt1 = $db->query("DELETE FROM jumi_noten_uploads WHERE jndid = $jndid;");
$stmt2 = $db->query("DELETE FROM jumi_noten_daten WHERE jndid = $jndid");
# Nicht verwendeter Verlag löschen
$query = "SELECT vid FROM jumi_noten_verlag a WHERE vid NOT IN (SELECT vid FROM jumi_noten_daten b WHERE a.vid=b.vid); ";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
$de11 = $db->query( "DELETE FROM jumi_noten_verlag WHERE vid=$row[vid]" );
}
# Nicht verwendetes Songbok löschen
$query2 = "SELECT sbid FROM jumi_noten_songbook a WHERE sbid NOT IN (SELECT sbid FROM jumi_noten_daten b WHERE a.sbid=b.sbid); ";
$result2 = $db->query( $query2 )
or die ("Cannot execute query2");
while ($row2 = $result2->fetch_array()){
$de12 = $db->query( "DELETE FROM jumi_noten_songbook WHERE sbid=$row2[sbid]" );
}
if ($stmt1 AND $stmt2) {
echo '<div class="alert alert-success"><i class="fa fa-fw fa-thumbs-up"></i> S&auml;gerIn wurde gelöscht!</div>|***|success';
exit;
} else {
echo '<div class="alert alert-danger"><i class="fa fa-fw fa-thumbs-down"></i> S&auml;gerIn wurde nicht gelöscht: DELETE Fehler Datenbank.</div>|***|success';
exit;
}
}
?>

View File

@ -6,7 +6,7 @@ if ($function == 'titel')
{
if (isset($_POST["term"]))
{
$term = strtoupper(trim($_POST["term"]));
$term = mb_strtoupper(trim($_POST["term"]));
$query = "SELECT distinct titel FROM jumi_noten_daten WHERE upper(titel) LIKE '%" . $term . "%'";
$result = $db->query($query) or die("Cannot execute titel");
@ -33,9 +33,9 @@ if ($function == 'verlag')
{
if (isset($_POST["term"]))
{
$term = strtoupper(trim($_POST["term"]));
$term = mb_strtoupper(trim($_POST["term"]));
$query = "SELECT distinct verlag FROM jumi_noten_daten WHERE upper(verlag) LIKE '%" . $term . "%'";
$query = "SELECT distinct bezeichnung FROM jumi_noten_verlag WHERE upper(bezeichnung) LIKE '%" . $term . "%'";
$result = $db->query($query) or die("Cannot execute verlag");
if (mysqli_num_rows($result) > 0)
@ -43,8 +43,35 @@ if ($function == 'verlag')
while ($row = $result->fetch_array())
{
$output[] = array(
"label" => $row['verlag'],
"value" => $row['verlag']
"label" => $row['bezeichnung'],
"value" => $row['bezeichnung']
);
}
#}else{
# $output[] = array("label" => "keine Treffer");
}
echo json_encode($output);
}
}
if ($function == 'songbook')
{
if (isset($_POST["term"]))
{
$term = mb_strtoupper(trim($_POST["term"]));
$query = "SELECT distinct bezeichnung FROM jumi_noten_songbook WHERE upper(bezeichnung) LIKE '%" . $term . "%'";
$result = $db->query($query) or die("Cannot execute verlag");
if (mysqli_num_rows($result) > 0)
{
while ($row = $result->fetch_array())
{
$output[] = array(
"label" => $row['bezeichnung'],
"value" => $row['bezeichnung']
);
}
#}else{

View File

@ -31,36 +31,36 @@ if(isset($_GET['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($_GET['editcsid']) and $_GET['editcsid'] != ''){
# Aus externer Seite edit_user.php
#echo "<br><br><br><br><br><br><br><br>-----------------------------------------------hier";
$csid = $_GET['editcsid'];
$smarty->assign('create_edit', $csid);
$result0 = $db->query("SELECT vorname, nachname, mail, singstimme, bemerkung
FROM jumi_chor_saenger
WHERE csid = $csid;");
$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('member_anlegen_singstimme', $row0['singstimme']);
$smarty->assign('member_anlegen_bemerkung', $row0['bemerkung']);
$query = "SELECT id, filename, originalname, date_format(datum, '%d.%m.%y - %H:%i') uploaddatum FROM jumi_chor_saenger_uploads WHERE csid='$csid' ORDER BY datum DESC";
$result = $db->query( $query)
or die ("Cannot execute query1");
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']);
# }
#
while ($row = $result->fetch_array()){
$value[] = $row;
}
$smarty->assign('table_data', $value);
}
}

61
dashboard/edit_member.php Normal file
View File

@ -0,0 +1,61 @@
<?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";
// Rechteüberprüfung
#$db = dbconnect();
#if ($user_admin == ""){ require("index.php"); exit;} //Wenn man nicht angemeldet ist, darf man nicht auf die Seite
#if(!rore($user_admin,'a_admanleg','RE')){require("lib/rechte.php");exit;}
#// Rechteüberprüfung ende
if(isset($_GET['action'])){
$action = $_GET['action'];
}else{
$action = '';
}
if($action == ''){
$query = "SELECT csid, vorname, nachname, mail,
CASE
WHEN singstimme = 1 THEN 'Sopran'
WHEN singstimme = 2 THEN 'Alt'
WHEN singstimme = 3 THEN 'Tenor'
WHEN singstimme = 4 THEN 'Ba&szlig;'
END singstimme
FROM jumi_chor_saenger ORDER BY nachname ASC, vorname ASC;";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
$value[] = $row;
}
$smarty->assign('table_data', $value);
}
$smarty->assign('action', "$action");
$smarty->display("$template/dashboard/$templatename");
?>

64
dashboard/edit_noten.php Normal file
View File

@ -0,0 +1,64 @@
<?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";
// Rechteüberprüfung
#$db = dbconnect();
#if ($user_admin == ""){ require("index.php"); exit;} //Wenn man nicht angemeldet ist, darf man nicht auf die Seite
#if(!rore($user_admin,'a_admanleg','RE')){require("lib/rechte.php");exit;}
#// Rechteüberprüfung ende
if(isset($_GET['action'])){
$action = $_GET['action'];
}else{
$action = '';
}
if($action == ''){
$query = "SELECT a. jndid, titel, anz_lizenzen, streamlizenz, b.bezeichnung songbook, c.bezeichnung verlag
FROM jumi_noten_daten a, jumi_noten_songbook b, jumi_noten_verlag c
WHERE a.sbid=b.sbid
AND a.vid=c.vid
ORDER BY titel ASC;";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
if($row['streamlizenz'] == '1'){
$streamlizenz_vorh = "Ja";
}else{
$streamlizenz_vorh = "Nein";
}
$row['streamlizenz_vorh'] = $streamlizenz_vorh;
$value[] = $row;
}
$smarty->assign('table_data', $value);
}
$smarty->assign('action', "$action");
$smarty->display("$template/dashboard/$templatename");
?>

46
dashboard/notenbuch.php Normal file
View File

@ -0,0 +1,46 @@
<?php
if (!isset($_SESSION)) {
session_start();
}
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 == '') {
# Gespeicherte Werte
$query = "SELECT zsid, bezeichnung
FROM jumi_noten_zusammenstellung
ORDER BY bezeichnung 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");
?>

View File

@ -0,0 +1,64 @@
<?php
if (!isset($_SESSION)) {
session_start();
}
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
$smarty = new SmartyAdmin();
if(!rechte('rollen.php', $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 == '') {
if (isset($_GET['edit'])) {
$zsid = $_GET['edit'];
$smarty->assign('rollen_edit', $zsid);
}
$result_head = $db->query("SELECT bezeichnung FROM jumi_noten_zusammenstellung WHERE zsid=$zsid");
$row_head = $result_head->fetch_array();
$smarty->assign('notenbuchzuordnung_bezeichnung', $row_head['bezeichnung']);
# Nicht zugewiesene Noten
$query = "SELECT jndid, titel
FROM jumi_noten_daten
WHERE jndid NOT IN (SELECT jndid FROM jumi_noten_zusammenstellung_zuord WHERE zsid=$zsid)
ORDER BY jndid 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 Noten
$query1 = "SELECT jndid, titel
FROM jumi_noten_daten
WHERE jndid IN (SELECT jndid FROM jumi_noten_zusammenstellung_zuord WHERE zsid=$zsid)
ORDER BY jndid ASC";
$result1 = $db->query($query1) or die("Cannot execute query2");
while ($row1 = $result1->fetch_array()) {
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
$smarty->assign('action', "$action");
$smarty->display("$template/dashboard/$templatename");
?>

View File

@ -14,6 +14,34 @@ if(!rechte('__noright__', $uid)){
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
require_once "../language/german.inc.php";
if(isset($_GET['editjndid']) and $_GET['editjndid'] != ''){
# Aus externer Seite edit_user.php
#echo "<br><br><br><br><br><br><br><br>-----------------------------------------------hier";
$jndid = $_GET['editjndid'];
$smarty->assign('create_edit', $jndid);
$result0 = $db->query("SELECT a. jndid, titel, anz_lizenzen, streamlizenz, b.bezeichnung songbook, c.bezeichnung verlag
FROM jumi_noten_daten a, jumi_noten_songbook b, jumi_noten_verlag c
WHERE a.sbid=b.sbid
AND a.vid=c.vid
AND a.jndid = $jndid
ORDER BY titel ASC;");
$row0 = $result0->fetch_array();
$smarty->assign('notenupload_titel', $row0['titel']);
$smarty->assign('notenupload_anz_lizenzen', $row0['anz_lizenzen']);
$smarty->assign('notenupload_streamlizenz', $row0['streamlizenz']);
$smarty->assign('notenupload_songbook', $row0['songbook']);
$smarty->assign('notenupload_verlag', $row0['verlag']);
$query = "SELECT id, filename, originalname, date_format(datum, '%d.%m.%y - %H:%i') uploaddatum FROM jumi_noten_uploads WHERE jndid='$jndid' ORDER BY datum DESC";
$result = $db->query( $query)
or die ("Cannot execute query1");
while ($row = $result->fetch_array()){
$value[] = $row;
}
$smarty->assign('table_data', $value);
}
$smarty->assign('action', "$action");
$smarty->display("modern/dashboard/$templatename");

View File

@ -16,10 +16,6 @@ require_once "../language/german.inc.php";
$result_name = $db->query("SELECT vorname, nachname, mail FROM jumi_admin WHERE uid='$uid'");
$row_name = $result_name->fetch_array();
$smarty->assign('startseite_name', "$row_name[vorname] $row_name[nachname]");
$smarty->assign('action', "$action");
$smarty->display("modern/dashboard/$templatename");

View File

@ -0,0 +1,202 @@
function notenbuchsave(){
var notenbuch = document.getElementById("notenbuchname").value;
$.ajax({
type: 'POST',
url: '../controller/admin_notenbuch.php',
data: {
'function': 'notenbuchsave',
'notenbuch': notenbuch
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
if(a[1]=="success"){
setTimeout(function() {
document.getElementById("notenbuchname").value ="";
window.location = "?";
}, 2000);
}
$('#msg').show().delay(2000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
function erfzuordnung(jndid, zsid) {
$.ajax({
type: 'POST',
url: '../controller/admin_notenbuch.php',
data: {
'function': 'erfzuordnung',
'jndid': jndid,
'zsid': zsid
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
if(a[1]=="success"){
setTimeout(function() {
// Refresh Modal
var value = a[2];
// load the url and show modal on success
$("#ZuordnungModal .modal-body").load('notenbuchzuordnung.php?edit='+value, function() {
$("#ZuordnungModal").modal("show");
});
}, 2000);
}
$('#msg').show().delay(2000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
function delzuordnung(jndid, zsid) {
$.ajax({
type: 'POST',
url: '../controller/admin_notenbuch.php',
data: {
'function': 'delzuordnung',
'jndid': jndid,
'zsid': zsid
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
if(a[1]=="success"){
setTimeout(function() {
// Refresh Modal
var value = a[2];
// load the url and show modal on success
$("#ZuordnungModal .modal-body").load('notenbuchzuordnung.php?edit='+value, function() {
$("#ZuordnungModal").modal("show");
});
}, 2000);
}
$('#msg').show().delay(2000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
/*
function erfuser(val) {
var param = val.split('|');
var uid = param[0];
var rid = param[1];
$.ajax({
type: 'POST',
url: '../controller/admin_notenbuch.php',
data: {
'function': 'erfuser',
'uid': uid,
'rid': rid
},
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('userzuordnung.php?edit='+value, function() {
$("#ZuordnungModal").modal("show");
});
});
}
$('#msg').show().delay(5000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
function deluser(val) {
var param = val.split('|');
var uid = param[0];
var rid = param[1];
$.ajax({
type: 'POST',
url: '../controller/admin_notenbuch.php',
data: {
'function': 'deluser',
'uid': uid,
'rid': rid
},
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('userzuordnung.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 delRole(rid) {
r = confirm('Rolle löschen? Benutzer sind dann unzugeordnet!');
if (r) {
$.ajax({
type: 'POST',
url: '../controller/admin_notenbuch.php',
data: {
'function': 'delRole',
'rid': rid
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
if(a[1]=="success"){
$(document).ajaxStop(function(){
window.location = "?";
});
}
$('#msg').show().delay(10000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
}
*/

View File

@ -36,3 +36,21 @@ $("#verlag").autocomplete({
}, {
minLength: 2
});
$("#songbook").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
url: "../controller/admin_suche.php",
data: {
term: request.term,
function: "songbook"
},
success: response,
dataType: 'json',
delay: 10
});
}
}, {
minLength: 2
});

View File

@ -1,350 +1,434 @@
function vpb_multiple_file_uploader(vpb_configuration_settings) {
this.vpb_settings = vpb_configuration_settings;
this.vpb_files = "";
this.vpb_browsed_files = []
var self = this;
var vpb_msg = "Sorry, your browser does not support this application. Thank You!";
//Get all browsed file extensions
function vpb_file_ext(file) {
return (/[.]/.exec(file)) ? /[^.]+$/.exec(file.toLowerCase()) : '';
}
/* Display added files which are ready for upload */
//with their file types, names, size, date last modified along with an option to remove an unwanted file
vpb_multiple_file_uploader.prototype.vpb_show_added_files = function(vpb_value) {
this.vpb_files = vpb_value;
if (this.vpb_files.length > 0) {
var vpb_added_files_displayer = vpb_file_id = "";
for (var i = 0; i < this.vpb_files.length; i++) {
//Use the names of the files without their extensions as their ids
var files_name_without_extensions = this.vpb_files[i].name.substr(0, this.vpb_files[i].name.lastIndexOf('.')) || this.vpb_files[i].name;
vpb_file_id = files_name_without_extensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
var vpb_file_to_add = vpb_file_ext(this.vpb_files[i].name);
var vpb_class = $("#added_class").val();
var vpb_file_icon;
//Check and display File Size
var vpb_fileSize = (this.vpb_files[i].size / 1024);
if (vpb_fileSize / 1024 > 1) {
if (((vpb_fileSize / 1024) / 1024) > 1) {
vpb_fileSize = (Math.round(((vpb_fileSize / 1024) / 1024) * 100) / 100);
var vpb_actual_fileSize = vpb_fileSize + " GB";
} else {
vpb_fileSize = (Math.round((vpb_fileSize / 1024) * 100) / 100)
var vpb_actual_fileSize = vpb_fileSize + " MB";
}
} else {
vpb_fileSize = (Math.round(vpb_fileSize * 100) / 100)
var vpb_actual_fileSize = vpb_fileSize + " KB";
}
//Check and display the date that files were last modified
var vpb_date_last_modified = new Date(this.vpb_files[i].lastModifiedDate);
var dd = vpb_date_last_modified.getDate();
var mm = vpb_date_last_modified.getMonth() + 1;
var yyyy = vpb_date_last_modified.getFullYear();
var vpb_date_last_modified_file = dd + '/' + mm + '/' + yyyy;
//File Display Classes
if (vpb_class == 'vpb_blue') {
var new_classc = 'vpb_white';
} else {
var new_classc = 'vpb_blue';
}
if (typeof this.vpb_files[i] != undefined && this.vpb_files[i].name != "") {
//Check for the type of file browsed so as to represent each file with the appropriate file icon
if (vpb_file_to_add == "jpg" || vpb_file_to_add == "JPG" || vpb_file_to_add == "jpeg" || vpb_file_to_add == "JPEG" || vpb_file_to_add == "gif" || vpb_file_to_add == "GIF" || vpb_file_to_add == "png" || vpb_file_to_add == "PNG") {
vpb_file_icon = '<img src="../media/file_upload_images/images_file.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "doc" || vpb_file_to_add == "docx" || vpb_file_to_add == "rtf" || vpb_file_to_add == "DOC" || vpb_file_to_add == "DOCX") {
vpb_file_icon = '<img src="../media/file_upload_images/doc.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "pdf" || vpb_file_to_add == "PDF") {
vpb_file_icon = '<img src="../media/file_upload_images/pdf.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "txt" || vpb_file_to_add == "TXT" || vpb_file_to_add == "RTF") {
vpb_file_icon = '<img src="../media/file_upload_images/txt.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "php") {
vpb_file_icon = '<img src="../media/file_upload_images/php.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "css") {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "js") {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "html" || vpb_file_to_add == "HTML" || vpb_file_to_add == "htm" || vpb_file_to_add == "HTM") {
vpb_file_icon = '<img src="../media/file_upload_images/html.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "setup") {
vpb_file_icon = '<img src="../media/file_upload_images/setup.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "video") {
vpb_file_icon = '<img src="../media/file_upload_images/video.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "real") {
vpb_file_icon = '<img src="../media/file_upload_images/real.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "psd") {
vpb_file_icon = '<img src="../media/file_upload_images/psd.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "fla") {
vpb_file_icon = '<img src="../media/file_upload_images/fla.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "xls" || vpb_file_to_add == "xlsx") {
vpb_file_icon = '<img src="../media/file_upload_images/xls.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "swf") {
vpb_file_icon = '<img src="../media/file_upload_images/swf.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "eps") {
vpb_file_icon = '<img src="../media/file_upload_images/eps.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "exe") {
vpb_file_icon = '<img src="../media/file_upload_images/exe.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "binary") {
vpb_file_icon = '<img src="../media/file_upload_images/binary.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "zip") {
vpb_file_icon = '<img src="../media/file_upload_images/archive.png" align="absmiddle" border="0" alt="" />';
} else {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
}
var split = this.vpb_files[i].name.split('.');
var filename = split[0];
var extension = split[1];
if (filename.length > 15) {
filename = filename.substring(0, 10) + '[...]';
}
var result = filename + '.' + extension;
//Assign browsed files to a variable so as to later display them below
vpb_added_files_displayer += '<tr id="add_fileID' + vpb_file_id + '" class="' + new_classc + '"><td><div align="left"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">' + vpb_file_icon + '&nbsp;' + result + '</span></div></td><td><span id="uploading_' + vpb_file_id + '"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">Uploadbereit</span></span></td><td><div align="right"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">' + vpb_actual_fileSize + '</span></div></td><td><span id="remove' + vpb_file_id + '"><span class="vpb_files_remove_left_inner" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;" onclick="vpb_remove_this_file(\'' + vpb_file_id + '\',\'' + this.vpb_files[i].name + '\');">Entfernen</span></span></td></tr></div>';
}
}
//Display browsed files on the screen to the user who wants to upload them
$("#add_files").append(vpb_added_files_displayer);
$("#added_class").val(new_classc);
}
}
//File Reader
vpb_multiple_file_uploader.prototype.vpb_read_file = function(vpb_e) {
if (vpb_e.target.files) {
self.vpb_show_added_files(vpb_e.target.files);
self.vpb_browsed_files.push(vpb_e.target.files);
} else {
alert('Sorry, a file you have specified could not be read at the moment. Thank You!');
}
}
function addEvent(type, el, fn) {
if (window.addEventListener) {
el.addEventListener(type, fn, false);
} else if (window.attachEvent) {
var f = function() {
fn.call(el, window.event);
};
el.attachEvent('on' + type, f)
}
}
//Get the ids of all added files and also start the upload when called
vpb_multiple_file_uploader.prototype.vpb_starter = function() {
if (window.File && window.FileReader && window.FileList && window.Blob) {
var vpb_browsed_file_ids = $("#" + this.vpb_settings.vpb_form_id).find("input[type='file']").eq(0).attr("id");
document.getElementById(vpb_browsed_file_ids).addEventListener("change", this.vpb_read_file, false);
document.getElementById(this.vpb_settings.vpb_form_id).addEventListener("submit", this.vpb_submit_added_files, true);
} else {
alert(vpb_msg);
}
}
//Call the uploading function when click on the upload button
vpb_multiple_file_uploader.prototype.vpb_submit_added_files = function() {
self.vpb_upload_bgin();
}
//Start uploads
vpb_multiple_file_uploader.prototype.vpb_upload_bgin = function() {
if (this.vpb_browsed_files.length > 0) {
for (var k = 0; k < this.vpb_browsed_files.length; k++) {
var file = this.vpb_browsed_files[k];
this.vasPLUS(file, 0);
}
} else {
// Else Zweig ergänzt A. Schwarz. Wenn keine Dateien zum hochladen sind, dann Insert mit den Daten machen
this.vasINSERT();
}
}
//Main file uploader
// A. Schwarz: Insert mit File
vpb_multiple_file_uploader.prototype.vasPLUS = function(file, file_counter) {
if (typeof file[file_counter] != undefined && file[file_counter] != '') {
//Use the file names without their extensions as their ids
var files_name_without_extensions = file[file_counter].name.substr(0, file[file_counter].name.lastIndexOf('.')) || file[file_counter].name;
var ids = files_name_without_extensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
var vpb_browsed_file_ids = $("#" + this.vpb_settings.vpb_form_id).find("input[type='file']").eq(0).attr("id");
var removed_file = $("#" + ids).val();
if (removed_file != "" && removed_file != undefined && removed_file == ids) {
self.vasPLUS(file, file_counter + 1);
} else {
var dataString = new FormData();
dataString.append('upload_file', file[file_counter]);
dataString.append('upload_file_ids', ids);
var titel = document.getElementById("titel").value;
var verlag = document.getElementById("verlag").value;
var anz_lizenzen = document.getElementById("anz_lizenzen").value;
var chk_streamlizenz = document.getElementById("streamlizenz");
if (chk_streamlizenz.checked == true) {
var streamlizenz = 1;
} else {
var streamlizenz = 0;
}
dataString.append('titel', titel);
dataString.append('verlag', verlag);
dataString.append('anz_lizenzen', anz_lizenzen);
dataString.append('streamlizenz', streamlizenz);
dataString.append('function', 'save_with_files');
$.ajax({
type: "POST",
url: this.vpb_settings.vpb_server_url,
data: dataString,
cache: false,
contentType: false,
processData: false,
beforeSend: function() {
$("#uploading_" + ids).html('<div align="left"><img src="../media/file_upload_images/loadings.gif" width="80" align="absmiddle" title="Upload...."/></div>');
$("#remove" + ids).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:blue;">Uploading...</div>');
},
success: function(response) {
var a = response.split('|***|');
// Länge der Zeit berechnen, wie lange die Messagebox angezeigt wird. Jedes File wird zumindest optisch einzeln hochgeladen.
var waitempty_chk = ($('[id^=add_fileID]').length*2000)+3000;
if(waitempty_chk >5000 ){
var waitempty = waitempty_chk;
}else{
// Mindestens aber 5 Sekunden
var waitempty = 5000;
}
setTimeout(function() {
// document.getElementById("titel").value = "";
// document.getElementById("verlag").value = "";
// document.getElementById("anz_lizenzen").value = "";
// document.getElementById("vasplus_multiple_files").value = "";
// document.getElementById("streamlizenz").checked = false;
// var $el = $('#vasplus_multiple_files');
// $el.wrap('<form>').closest('form').get(0).reset();
// $el.unwrap();
//
// $("#add_files > tbody").empty();
// Alternativlösung. Felder leeren alleine bringt nichts. Wenn man eine File hochlädt und das nächste Mal ohne File, dann werden die letzten Files nochmals hochgeladen.
// Daher eine Weiterleitung auf sich selbst, damit der Prozess neu initiiert wird.
window.location = "";
}, waitempty);
$('#msg').show().delay(waitempty).fadeOut(500);
$('#msg').html(a[0]);
var responseid = a[2];
setTimeout(function() {
var response_brought = responseid.indexOf(ids);
if (response_brought != -1) {
$("#uploading_" + ids).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:blue;">Vollst&auml;ndig</div>');
$("#remove" + ids).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">Hochgeladen</div>');
} else {
var fileType_response_brought = responseid.indexOf('file_type_error');
if (fileType_response_brought != -1) {
var filenamewithoutextension = responseid.replace('file_type_error&', '').substr(0, responseid.replace('file_type_error&', '').lastIndexOf('.')) || responseid.replace('file_type_error&', '');
var fileID = filenamewithoutextension.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
$("#uploading_" + fileID).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:red;">Invalid File</div>');
$("#remove" + fileID).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:orange;">Abgebrochen</div>');
} else {
var filesize_response_brought = responseid.indexOf('file_size_error');
if (filesize_response_brought != -1) {
var filenamewithoutextensions = responseid.replace('file_size_error&', '').substr(0, responseid.replace('file_size_error&', '').lastIndexOf('.')) || responseid.replace('file_size_error&', '');
var fileID = filenamewithoutextensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
$("#uploading_" + fileID).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:red;">Exceeded Size</div>');
$("#remove" + fileID).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:orange;">Abgebrochen</div>');
} else {
var general_response_brought = responseid.indexOf('general_system_error');
if (general_response_brought != -1) {
alert('Sorry, the file was not uploaded...');
} else {
/* Do nothing */ }
}
}
}
if (file_counter + 1 < file.length) {
self.vasPLUS(file, file_counter + 1);
} else {}
}, 2000);
}
});
}
} else {
alert('Sorry, this system could not verify the identity of the file you were trying to upload at the moment. Thank You!');
}
}
// By A. Schwarz: Insert ohne File
vpb_multiple_file_uploader.prototype.vasINSERT = function() {
var titel = document.getElementById("titel").value;
var verlag = document.getElementById("verlag").value;
var anz_lizenzen = document.getElementById("anz_lizenzen").value;
var chk_streamlizenz = document.getElementById("streamlizenz");
if (chk_streamlizenz.checked == true) {
var streamlizenz = 1;
} else {
var streamlizenz = 0;
}
$.ajax({
type: 'POST',
url: this.vpb_settings.vpb_server_url,
data: {
'function': 'save_without_files',
'titel': titel,
'verlag': verlag,
'anz_lizenzen': anz_lizenzen,
'streamlizenz': streamlizenz
},
success: function(response) { //we got the response
if (response != '') {
var a = response.split('|***|');
if (a[1] == "success") {
document.getElementById("titel").value = "";
document.getElementById("verlag").value = "";
document.getElementById("anz_lizenzen").value = "";
document.getElementById("vasplus_multiple_files").value = "";
document.getElementById("streamlizenz").checked = false;
}
$('#msg').show().delay(10000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
this.vpb_starter();
}
function vpb_remove_this_file(id, filename) {
if (confirm('If you are sure to remove the file: ' + filename + ' then click on OK otherwise, Cancel it.')) {
$("#vpb_removed_files").append('<input type="hidden" id="' + id + '" value="' + id + '">');
$("#add_fileID" + id).slideUp();
}
return false;
}
function vpb_multiple_file_uploader(vpb_configuration_settings) {
this.vpb_settings = vpb_configuration_settings;
this.vpb_files = "";
this.vpb_browsed_files = []
var self = this;
var vpb_msg = "Sorry, your browser does not support this application. Thank You!";
//Get all browsed file extensions
function vpb_file_ext(file) {
return (/[.]/.exec(file)) ? /[^.]+$/.exec(file.toLowerCase()) : '';
}
/* Display added files which are ready for upload */
//with their file types, names, size, date last modified along with an option to remove an unwanted file
vpb_multiple_file_uploader.prototype.vpb_show_added_files = function(vpb_value) {
this.vpb_files = vpb_value;
if (this.vpb_files.length > 0) {
var vpb_added_files_displayer = vpb_file_id = "";
for (var i = 0; i < this.vpb_files.length; i++) {
//Use the names of the files without their extensions as their ids
var files_name_without_extensions = this.vpb_files[i].name.substr(0, this.vpb_files[i].name.lastIndexOf('.')) || this.vpb_files[i].name;
vpb_file_id = files_name_without_extensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
var vpb_file_to_add = vpb_file_ext(this.vpb_files[i].name);
var vpb_class = $("#added_class").val();
var vpb_file_icon;
//Check and display File Size
var vpb_fileSize = (this.vpb_files[i].size / 1024);
if (vpb_fileSize / 1024 > 1) {
if (((vpb_fileSize / 1024) / 1024) > 1) {
vpb_fileSize = (Math.round(((vpb_fileSize / 1024) / 1024) * 100) / 100);
var vpb_actual_fileSize = vpb_fileSize + " GB";
} else {
vpb_fileSize = (Math.round((vpb_fileSize / 1024) * 100) / 100)
var vpb_actual_fileSize = vpb_fileSize + " MB";
}
} else {
vpb_fileSize = (Math.round(vpb_fileSize * 100) / 100)
var vpb_actual_fileSize = vpb_fileSize + " KB";
}
//Check and display the date that files were last modified
var vpb_date_last_modified = new Date(this.vpb_files[i].lastModifiedDate);
var dd = vpb_date_last_modified.getDate();
var mm = vpb_date_last_modified.getMonth() + 1;
var yyyy = vpb_date_last_modified.getFullYear();
var vpb_date_last_modified_file = dd + '/' + mm + '/' + yyyy;
//File Display Classes
if (vpb_class == 'vpb_blue') {
var new_classc = 'vpb_white';
} else {
var new_classc = 'vpb_blue';
}
if (typeof this.vpb_files[i] != undefined && this.vpb_files[i].name != "") {
//Check for the type of file browsed so as to represent each file with the appropriate file icon
if (vpb_file_to_add == "jpg" || vpb_file_to_add == "JPG" || vpb_file_to_add == "jpeg" || vpb_file_to_add == "JPEG" || vpb_file_to_add == "gif" || vpb_file_to_add == "GIF" || vpb_file_to_add == "png" || vpb_file_to_add == "PNG") {
vpb_file_icon = '<img src="../media/file_upload_images/images_file.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "doc" || vpb_file_to_add == "docx" || vpb_file_to_add == "rtf" || vpb_file_to_add == "DOC" || vpb_file_to_add == "DOCX") {
vpb_file_icon = '<img src="../media/file_upload_images/doc.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "pdf" || vpb_file_to_add == "PDF") {
vpb_file_icon = '<img src="../media/file_upload_images/pdf.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "txt" || vpb_file_to_add == "TXT" || vpb_file_to_add == "RTF") {
vpb_file_icon = '<img src="../media/file_upload_images/txt.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "php") {
vpb_file_icon = '<img src="../media/file_upload_images/php.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "css") {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "js") {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "html" || vpb_file_to_add == "HTML" || vpb_file_to_add == "htm" || vpb_file_to_add == "HTM") {
vpb_file_icon = '<img src="../media/file_upload_images/html.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "setup") {
vpb_file_icon = '<img src="../media/file_upload_images/setup.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "video") {
vpb_file_icon = '<img src="../media/file_upload_images/video.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "real") {
vpb_file_icon = '<img src="../media/file_upload_images/real.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "psd") {
vpb_file_icon = '<img src="../media/file_upload_images/psd.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "fla") {
vpb_file_icon = '<img src="../media/file_upload_images/fla.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "xls" || vpb_file_to_add == "xlsx") {
vpb_file_icon = '<img src="../media/file_upload_images/xls.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "swf") {
vpb_file_icon = '<img src="../media/file_upload_images/swf.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "eps") {
vpb_file_icon = '<img src="../media/file_upload_images/eps.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "exe") {
vpb_file_icon = '<img src="../media/file_upload_images/exe.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "binary") {
vpb_file_icon = '<img src="../media/file_upload_images/binary.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "zip") {
vpb_file_icon = '<img src="../media/file_upload_images/archive.png" align="absmiddle" border="0" alt="" />';
} else {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
}
var split = this.vpb_files[i].name.split('.');
var filename = split[0];
var extension = split[1];
if (filename.length > 15) {
filename = filename.substring(0, 10) + '[...]';
}
var result = filename + '.' + extension;
//Assign browsed files to a variable so as to later display them below
vpb_added_files_displayer += '<tr id="add_fileID' + vpb_file_id + '" class="' + new_classc + '"><td><div align="left"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">' + vpb_file_icon + '&nbsp;' + result + '</span></div></td><td><span id="uploading_' + vpb_file_id + '"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">Uploadbereit</span></span></td><td><div align="right"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">' + vpb_actual_fileSize + '</span></div></td><td><span id="remove' + vpb_file_id + '"><span class="vpb_files_remove_left_inner" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;" onclick="vpb_remove_this_file(\'' + vpb_file_id + '\',\'' + this.vpb_files[i].name + '\');">Entfernen</span></span></td></tr></div>';
}
}
//Display browsed files on the screen to the user who wants to upload them
$("#add_files").append(vpb_added_files_displayer);
$("#added_class").val(new_classc);
}
}
//File Reader
vpb_multiple_file_uploader.prototype.vpb_read_file = function(vpb_e) {
if (vpb_e.target.files) {
self.vpb_show_added_files(vpb_e.target.files);
self.vpb_browsed_files.push(vpb_e.target.files);
} else {
alert('Sorry, a file you have specified could not be read at the moment. Thank You!');
}
}
function addEvent(type, el, fn) {
if (window.addEventListener) {
el.addEventListener(type, fn, false);
} else if (window.attachEvent) {
var f = function() {
fn.call(el, window.event);
};
el.attachEvent('on' + type, f)
}
}
//Get the ids of all added files and also start the upload when called
vpb_multiple_file_uploader.prototype.vpb_starter = function() {
if (window.File && window.FileReader && window.FileList && window.Blob) {
var vpb_browsed_file_ids = $("#" + this.vpb_settings.vpb_form_id).find("input[type='file']").eq(0).attr("id");
document.getElementById(vpb_browsed_file_ids).addEventListener("change", this.vpb_read_file, false);
document.getElementById(this.vpb_settings.vpb_form_id).addEventListener("submit", this.vpb_submit_added_files, true);
} else {
alert(vpb_msg);
}
}
//Call the uploading function when click on the upload button
vpb_multiple_file_uploader.prototype.vpb_submit_added_files = function() {
self.vpb_upload_bgin();
}
//Start uploads
vpb_multiple_file_uploader.prototype.vpb_upload_bgin = function() {
if (this.vpb_browsed_files.length > 0) {
for (var k = 0; k < this.vpb_browsed_files.length; k++) {
var file = this.vpb_browsed_files[k];
this.vasPLUS(file, 0);
}
} else {
// Else Zweig ergänzt A. Schwarz. Wenn keine Dateien zum hochladen sind, dann Insert mit den Daten machen
this.vasINSERT();
}
}
//Main file uploader
// A. Schwarz: Insert mit File
vpb_multiple_file_uploader.prototype.vasPLUS = function(file, file_counter) {
if (typeof file[file_counter] != undefined && file[file_counter] != '') {
//Use the file names without their extensions as their ids
var files_name_without_extensions = file[file_counter].name.substr(0, file[file_counter].name.lastIndexOf('.')) || file[file_counter].name;
var ids = files_name_without_extensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
var vpb_browsed_file_ids = $("#" + this.vpb_settings.vpb_form_id).find("input[type='file']").eq(0).attr("id");
var removed_file = $("#" + ids).val();
if (removed_file != "" && removed_file != undefined && removed_file == ids) {
self.vasPLUS(file, file_counter + 1);
} else {
var dataString = new FormData();
dataString.append('upload_file', file[file_counter]);
dataString.append('upload_file_ids', ids);
var titel = document.getElementById("titel").value;
var songbook = document.getElementById("songbook").value;
var verlag = document.getElementById("verlag").value;
var anz_lizenzen = document.getElementById("anz_lizenzen").value;
var chk_streamlizenz = document.getElementById("streamlizenz");
// jndid beim Bearbeiten von Noten
var jndid_edit = document.getElementById("jndid").value;
if (chk_streamlizenz.checked == true) {
var streamlizenz = 1;
} else {
var streamlizenz = 0;
}
dataString.append('titel', titel);
dataString.append('songbook', songbook);
dataString.append('verlag', verlag);
dataString.append('anz_lizenzen', anz_lizenzen);
dataString.append('streamlizenz', streamlizenz);
dataString.append('jndid_edit', jndid_edit);
dataString.append('function', 'save_with_files');
$.ajax({
type: "POST",
url: this.vpb_settings.vpb_server_url,
data: dataString,
cache: false,
contentType: false,
processData: false,
beforeSend: function() {
$("#uploading_" + ids).html('<div align="left"><img src="../media/file_upload_images/loadings.gif" width="80" align="absmiddle" title="Upload...."/></div>');
$("#remove" + ids).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:blue;">Uploading...</div>');
},
success: function(response) {
var a = response.split('|***|');
// Länge der Zeit berechnen, wie lange die Messagebox angezeigt wird. Jedes File wird zumindest optisch einzeln hochgeladen.
var waitempty_chk = ($('[id^=add_fileID]').length*2000)+3000;
if(waitempty_chk >5000 ){
var waitempty = waitempty_chk;
}else{
// Mindestens aber 5 Sekunden
var waitempty = 5000;
}
setTimeout(function() {
// document.getElementById("titel").value = "";
// document.getElementById("verlag").value = "";
// document.getElementById("anz_lizenzen").value = "";
// document.getElementById("vasplus_multiple_files").value = "";
// document.getElementById("streamlizenz").checked = false;
// var $el = $('#vasplus_multiple_files');
// $el.wrap('<form>').closest('form').get(0).reset();
// $el.unwrap();
//
// $("#add_files > tbody").empty();
// Alternativlösung. Felder leeren alleine bringt nichts. Wenn man eine File hochlädt und das nächste Mal ohne File, dann werden die letzten Files nochmals hochgeladen.
// Daher eine Weiterleitung auf sich selbst, damit der Prozess neu initiiert wird.
window.location = "";
}, waitempty);
$('#msg').show().delay(waitempty).fadeOut(500);
$('#msg').html(a[0]);
var responseid = a[2];
setTimeout(function() {
var response_brought = responseid.indexOf(ids);
if (response_brought != -1) {
$("#uploading_" + ids).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:blue;">Vollst&auml;ndig</div>');
$("#remove" + ids).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">Hochgeladen</div>');
} else {
var fileType_response_brought = responseid.indexOf('file_type_error');
if (fileType_response_brought != -1) {
var filenamewithoutextension = responseid.replace('file_type_error&', '').substr(0, responseid.replace('file_type_error&', '').lastIndexOf('.')) || responseid.replace('file_type_error&', '');
var fileID = filenamewithoutextension.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
$("#uploading_" + fileID).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:red;">Invalid File</div>');
$("#remove" + fileID).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:orange;">Abgebrochen</div>');
} else {
var filesize_response_brought = responseid.indexOf('file_size_error');
if (filesize_response_brought != -1) {
var filenamewithoutextensions = responseid.replace('file_size_error&', '').substr(0, responseid.replace('file_size_error&', '').lastIndexOf('.')) || responseid.replace('file_size_error&', '');
var fileID = filenamewithoutextensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
$("#uploading_" + fileID).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:red;">Exceeded Size</div>');
$("#remove" + fileID).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:orange;">Abgebrochen</div>');
} else {
var general_response_brought = responseid.indexOf('general_system_error');
if (general_response_brought != -1) {
alert('Sorry, the file was not uploaded...');
} else {
/* Do nothing */ }
}
}
}
if (file_counter + 1 < file.length) {
self.vasPLUS(file, file_counter + 1);
} else {}
}, 2000);
}
});
}
} else {
alert('Sorry, this system could not verify the identity of the file you were trying to upload at the moment. Thank You!');
}
}
// By A. Schwarz: Insert ohne File
vpb_multiple_file_uploader.prototype.vasINSERT = function() {
var titel = document.getElementById("titel").value;
var songbook = document.getElementById("songbook").value;
var verlag = document.getElementById("verlag").value;
var anz_lizenzen = document.getElementById("anz_lizenzen").value;
var chk_streamlizenz = document.getElementById("streamlizenz");
// jndid beim Bearbeiten von Noten
var jndid_edit = document.getElementById("jndid").value;
if (chk_streamlizenz.checked == true) {
var streamlizenz = 1;
} else {
var streamlizenz = 0;
}
$.ajax({
type: 'POST',
url: this.vpb_settings.vpb_server_url,
data: {
'function': 'save_without_files',
'titel': titel,
'songbook': songbook,
'verlag': verlag,
'anz_lizenzen': anz_lizenzen,
'streamlizenz': streamlizenz,
'jndid_edit': jndid_edit
},
success: function(response) { //we got the response
if (response != '') {
var a = response.split('|***|');
if (a[1] == "success") {
//document.getElementById("titel").value = "";
//document.getElementById("songbook").value = "";
//document.getElementById("verlag").value = "";
//document.getElementById("anz_lizenzen").value = "";
//document.getElementById("vasplus_multiple_files").value = "";
//document.getElementById("streamlizenz").checked = false;
if(jndid_edit == '-1'){
setTimeout(function() {
window.location = "";
}, 2000);
}
}
$('#msg').show().delay(2000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
this.vpb_starter();
}
function vpb_remove_this_file(id, filename) {
if (confirm('If you are sure to remove the file: ' + filename + ' then click on OK otherwise, Cancel it.')) {
$("#vpb_removed_files").append('<input type="hidden" id="' + id + '" value="' + id + '">');
$("#add_fileID" + id).slideUp();
}
return false;
}
function delNotenFile(id) {
r = confirm('Dokument löschen?');
if (r) {
$.ajax({
type: 'POST',
url: '../controller/admin_notenupload.php',
data: {
'function': 'delNotenFile',
'id': id
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
var jndid = a[2];
if(a[1]=="success"){
$(document).ajaxStop(function(){
setTimeout(function() {
window.location = "?editjndid="+jndid;
}, 2000);
});
}
$('#msg').show().delay(10000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
}
function delNoten(jndid) {
r = confirm('Noten löschen?');
if (r) {
$.ajax({
type: 'POST',
url: '../controller/admin_notenupload.php',
data: {
'function': 'delNoten',
'jndid': jndid
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
if(a[1]=="success"){
$(document).ajaxStop(function(){
setTimeout(function() {
window.location = "";
}, 2000);
});
}
$('#msg').show().delay(10000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
}

View File

@ -0,0 +1,425 @@
function vpb_multiple_file_uploader(vpb_configuration_settings) {
this.vpb_settings = vpb_configuration_settings;
this.vpb_files = "";
this.vpb_browsed_files = []
var self = this;
var vpb_msg = "Sorry, your browser does not support this application. Thank You!";
//Get all browsed file extensions
function vpb_file_ext(file) {
return (/[.]/.exec(file)) ? /[^.]+$/.exec(file.toLowerCase()) : '';
}
/* Display added files which are ready for upload */
//with their file types, names, size, date last modified along with an option to remove an unwanted file
vpb_multiple_file_uploader.prototype.vpb_show_added_files = function(vpb_value) {
this.vpb_files = vpb_value;
if (this.vpb_files.length > 0) {
var vpb_added_files_displayer = vpb_file_id = "";
for (var i = 0; i < this.vpb_files.length; i++) {
//Use the names of the files without their extensions as their ids
var files_name_without_extensions = this.vpb_files[i].name.substr(0, this.vpb_files[i].name.lastIndexOf('.')) || this.vpb_files[i].name;
vpb_file_id = files_name_without_extensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
var vpb_file_to_add = vpb_file_ext(this.vpb_files[i].name);
var vpb_class = $("#added_class").val();
var vpb_file_icon;
//Check and display File Size
var vpb_fileSize = (this.vpb_files[i].size / 1024);
if (vpb_fileSize / 1024 > 1) {
if (((vpb_fileSize / 1024) / 1024) > 1) {
vpb_fileSize = (Math.round(((vpb_fileSize / 1024) / 1024) * 100) / 100);
var vpb_actual_fileSize = vpb_fileSize + " GB";
} else {
vpb_fileSize = (Math.round((vpb_fileSize / 1024) * 100) / 100)
var vpb_actual_fileSize = vpb_fileSize + " MB";
}
} else {
vpb_fileSize = (Math.round(vpb_fileSize * 100) / 100)
var vpb_actual_fileSize = vpb_fileSize + " KB";
}
//Check and display the date that files were last modified
var vpb_date_last_modified = new Date(this.vpb_files[i].lastModifiedDate);
var dd = vpb_date_last_modified.getDate();
var mm = vpb_date_last_modified.getMonth() + 1;
var yyyy = vpb_date_last_modified.getFullYear();
var vpb_date_last_modified_file = dd + '/' + mm + '/' + yyyy;
//File Display Classes
if (vpb_class == 'vpb_blue') {
var new_classc = 'vpb_white';
} else {
var new_classc = 'vpb_blue';
}
if (typeof this.vpb_files[i] != undefined && this.vpb_files[i].name != "") {
//Check for the type of file browsed so as to represent each file with the appropriate file icon
if (vpb_file_to_add == "jpg" || vpb_file_to_add == "JPG" || vpb_file_to_add == "jpeg" || vpb_file_to_add == "JPEG" || vpb_file_to_add == "gif" || vpb_file_to_add == "GIF" || vpb_file_to_add == "png" || vpb_file_to_add == "PNG") {
vpb_file_icon = '<img src="../media/file_upload_images/images_file.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "doc" || vpb_file_to_add == "docx" || vpb_file_to_add == "rtf" || vpb_file_to_add == "DOC" || vpb_file_to_add == "DOCX") {
vpb_file_icon = '<img src="../media/file_upload_images/doc.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "pdf" || vpb_file_to_add == "PDF") {
vpb_file_icon = '<img src="../media/file_upload_images/pdf.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "txt" || vpb_file_to_add == "TXT" || vpb_file_to_add == "RTF") {
vpb_file_icon = '<img src="../media/file_upload_images/txt.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "php") {
vpb_file_icon = '<img src="../media/file_upload_images/php.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "css") {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "js") {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "html" || vpb_file_to_add == "HTML" || vpb_file_to_add == "htm" || vpb_file_to_add == "HTM") {
vpb_file_icon = '<img src="../media/file_upload_images/html.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "setup") {
vpb_file_icon = '<img src="../media/file_upload_images/setup.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "video") {
vpb_file_icon = '<img src="../media/file_upload_images/video.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "real") {
vpb_file_icon = '<img src="../media/file_upload_images/real.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "psd") {
vpb_file_icon = '<img src="../media/file_upload_images/psd.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "fla") {
vpb_file_icon = '<img src="../media/file_upload_images/fla.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "xls" || vpb_file_to_add == "xlsx") {
vpb_file_icon = '<img src="../media/file_upload_images/xls.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "swf") {
vpb_file_icon = '<img src="../media/file_upload_images/swf.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "eps") {
vpb_file_icon = '<img src="../media/file_upload_images/eps.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "exe") {
vpb_file_icon = '<img src="../media/file_upload_images/exe.gif" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "binary") {
vpb_file_icon = '<img src="../media/file_upload_images/binary.png" align="absmiddle" border="0" alt="" />';
} else if (vpb_file_to_add == "zip") {
vpb_file_icon = '<img src="../media/file_upload_images/archive.png" align="absmiddle" border="0" alt="" />';
} else {
vpb_file_icon = '<img src="../media/file_upload_images/general.png" align="absmiddle" border="0" alt="" />';
}
var split = this.vpb_files[i].name.split('.');
var filename = split[0];
var extension = split[1];
if (filename.length > 15) {
filename = filename.substring(0, 10) + '[...]';
}
var result = filename + '.' + extension;
//Assign browsed files to a variable so as to later display them below
vpb_added_files_displayer += '<tr id="add_fileID' + vpb_file_id + '" class="' + new_classc + '"><td><div align="left"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">' + vpb_file_icon + '&nbsp;' + result + '</span></div></td><td><span id="uploading_' + vpb_file_id + '"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">Uploadbereit</span></span></td><td><div align="right"><span style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">' + vpb_actual_fileSize + '</span></div></td><td><span id="remove' + vpb_file_id + '"><span class="vpb_files_remove_left_inner" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;" onclick="vpb_remove_this_file(\'' + vpb_file_id + '\',\'' + this.vpb_files[i].name + '\');">Entfernen</span></span></td></tr></div>';
}
}
//Display browsed files on the screen to the user who wants to upload them
$("#add_files").append(vpb_added_files_displayer);
$("#added_class").val(new_classc);
}
}
//File Reader
vpb_multiple_file_uploader.prototype.vpb_read_file = function(vpb_e) {
if (vpb_e.target.files) {
self.vpb_show_added_files(vpb_e.target.files);
self.vpb_browsed_files.push(vpb_e.target.files);
} else {
alert('Sorry, a file you have specified could not be read at the moment. Thank You!');
}
}
function addEvent(type, el, fn) {
if (window.addEventListener) {
el.addEventListener(type, fn, false);
} else if (window.attachEvent) {
var f = function() {
fn.call(el, window.event);
};
el.attachEvent('on' + type, f)
}
}
//Get the ids of all added files and also start the upload when called
vpb_multiple_file_uploader.prototype.vpb_starter = function() {
if (window.File && window.FileReader && window.FileList && window.Blob) {
var vpb_browsed_file_ids = $("#" + this.vpb_settings.vpb_form_id).find("input[type='file']").eq(0).attr("id");
document.getElementById(vpb_browsed_file_ids).addEventListener("change", this.vpb_read_file, false);
document.getElementById(this.vpb_settings.vpb_form_id).addEventListener("submit", this.vpb_submit_added_files, true);
} else {
alert(vpb_msg);
}
}
//Call the uploading function when click on the upload button
vpb_multiple_file_uploader.prototype.vpb_submit_added_files = function() {
self.vpb_upload_bgin();
}
//Start uploads
vpb_multiple_file_uploader.prototype.vpb_upload_bgin = function() {
if (this.vpb_browsed_files.length > 0) {
for (var k = 0; k < this.vpb_browsed_files.length; k++) {
var file = this.vpb_browsed_files[k];
this.vasPLUS(file, 0);
}
} else {
// Else Zweig ergänzt A. Schwarz. Wenn keine Dateien zum hochladen sind, dann Insert mit den Daten machen
this.vasINSERT();
}
}
//Main file uploader
// A. Schwarz: Insert mit File
vpb_multiple_file_uploader.prototype.vasPLUS = function(file, file_counter) {
if (typeof file[file_counter] != undefined && file[file_counter] != '') {
//Use the file names without their extensions as their ids
var files_name_without_extensions = file[file_counter].name.substr(0, file[file_counter].name.lastIndexOf('.')) || file[file_counter].name;
var ids = files_name_without_extensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
var vpb_browsed_file_ids = $("#" + this.vpb_settings.vpb_form_id).find("input[type='file']").eq(0).attr("id");
var removed_file = $("#" + ids).val();
if (removed_file != "" && removed_file != undefined && removed_file == ids) {
self.vasPLUS(file, file_counter + 1);
} else {
var dataString = new FormData();
dataString.append('upload_file', file[file_counter]);
dataString.append('upload_file_ids', ids);
var vorname = document.getElementById("vorname").value;
var nachname = document.getElementById("nachname").value;
var mail = document.getElementById("mail").value;
var singstimme = document.getElementById("singstimme").value;
var bemerkung =tinyMCE.get('bemerkung').getContent()
// csid beim Bearbeiten von Membern
var csid_edit = document.getElementById("csid").value;
dataString.append('vorname', vorname);
dataString.append('nachname', nachname);
dataString.append('mail', mail);
dataString.append('singstimme', singstimme);
dataString.append('bemerkung', bemerkung);
dataString.append('csid_edit', csid_edit);
dataString.append('function', 'save_with_files');
$.ajax({
type: "POST",
url: this.vpb_settings.vpb_server_url,
data: dataString,
cache: false,
contentType: false,
processData: false,
beforeSend: function() {
$("#uploading_" + ids).html('<div align="left"><img src="../media/file_upload_images/loadings.gif" width="80" align="absmiddle" title="Upload...."/></div>');
$("#remove" + ids).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:blue;">Uploading...</div>');
},
success: function(response) {
var a = response.split('|***|');
// Länge der Zeit berechnen, wie lange die Messagebox angezeigt wird. Jedes File wird zumindest optisch einzeln hochgeladen.
var waitempty_chk = ($('[id^=add_fileID]').length*2000)+2000;
if(waitempty_chk >5000 ){
var waitempty = waitempty_chk;
}else{
// Mindestens aber 5 Sekunden
var waitempty = 5000;
}
setTimeout(function() {
// document.getElementById("titel").value = "";
// document.getElementById("verlag").value = "";
// document.getElementById("anz_lizenzen").value = "";
// document.getElementById("vasplus_multiple_files").value = "";
// document.getElementById("streamlizenz").checked = false;
// var $el = $('#vasplus_multiple_files');
// $el.wrap('<form>').closest('form').get(0).reset();
// $el.unwrap();
//
// $("#add_files > tbody").empty();
// Alternativlösung. Felder leeren alleine bringt nichts. Wenn man eine File hochlädt und das nächste Mal ohne File, dann werden die letzten Files nochmals hochgeladen.
// Daher eine Weiterleitung auf sich selbst, damit der Prozess neu initiiert wird.
window.location = "";
}, waitempty);
$('#msg').show().delay(waitempty).fadeOut(500);
$('#msg').html(a[0]);
var responseid = a[2];
setTimeout(function() {
var response_brought = responseid.indexOf(ids);
if (response_brought != -1) {
$("#uploading_" + ids).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:blue;">Vollst&auml;ndig</div>');
$("#remove" + ids).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:gray;">Hochgeladen</div>');
} else {
var fileType_response_brought = responseid.indexOf('file_type_error');
if (fileType_response_brought != -1) {
var filenamewithoutextension = responseid.replace('file_type_error&', '').substr(0, responseid.replace('file_type_error&', '').lastIndexOf('.')) || responseid.replace('file_type_error&', '');
var fileID = filenamewithoutextension.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
$("#uploading_" + fileID).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:red;">Invalid File</div>');
$("#remove" + fileID).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:orange;">Abgebrochen</div>');
} else {
var filesize_response_brought = responseid.indexOf('file_size_error');
if (filesize_response_brought != -1) {
var filenamewithoutextensions = responseid.replace('file_size_error&', '').substr(0, responseid.replace('file_size_error&', '').lastIndexOf('.')) || responseid.replace('file_size_error&', '');
var fileID = filenamewithoutextensions.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '');
$("#uploading_" + fileID).html('<div align="left" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:red;">Exceeded Size</div>');
$("#remove" + fileID).html('<div align="center" style="font-family:Verdana, Geneva, sans-serif;font-size:11px;color:orange;">Abgebrochen</div>');
} else {
var general_response_brought = responseid.indexOf('general_system_error');
if (general_response_brought != -1) {
alert('Sorry, the file was not uploaded...');
} else {
/* Do nothing */ }
}
}
}
if (file_counter + 1 < file.length) {
self.vasPLUS(file, file_counter + 1);
} else {}
}, 2000);
}
});
}
} else {
alert('Sorry, this system could not verify the identity of the file you were trying to upload at the moment. Thank You!');
}
}
// By A. Schwarz: Insert ohne File
vpb_multiple_file_uploader.prototype.vasINSERT = function() {
var vorname = document.getElementById("vorname").value;
var nachname = document.getElementById("nachname").value;
var mail = document.getElementById("mail").value;
var singstimme = document.getElementById("singstimme").value;
var bemerkung =tinyMCE.get('bemerkung').getContent()
// csid beim Bearbeiten von Membern
var csid_edit = document.getElementById("csid").value;
$.ajax({
type: 'POST',
url: this.vpb_settings.vpb_server_url,
data: {
'function': 'save_without_files',
'vorname': vorname,
'nachname': nachname,
'mail': mail,
'singstimme': singstimme,
'bemerkung': bemerkung,
'csid_edit': csid_edit
},
success: function(response) { //we got the response
if (response != '') {
var a = response.split('|***|');
if (a[1] == "success") {
//document.getElementById("titel").value = "";
//document.getElementById("verlag").value = "";
//document.getElementById("anz_lizenzen").value = "";
//document.getElementById("vasplus_multiple_files").value = "";
//document.getElementById("streamlizenz").checked = false;
// Alternativlösung. Felder leeren alleine bringt nichts. Wenn man eine File hochlädt und das nächste Mal ohne File, dann werden die letzten Files nochmals hochgeladen.
// Daher eine Weiterleitung auf sich selbst, damit der Prozess neu initiiert wird.
if(csid_edit == '-1'){
// Bei Neuanlage Seite refreshen, damit die Felder leer sind. Beim Bearbeiten brauchts das nicht, da die bearbeiteten Werte schon in den Feldern stehen
setTimeout(function() {
window.location = "";
}, 2000);
}
}
$('#msg').show().delay(2000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
this.vpb_starter();
}
function vpb_remove_this_file(id, filename) {
if (confirm('If you are sure to remove the file: ' + filename + ' then click on OK otherwise, Cancel it.')) {
$("#vpb_removed_files").append('<input type="hidden" id="' + id + '" value="' + id + '">');
$("#add_fileID" + id).slideUp();
}
return false;
}
function delMemberFile(id) {
r = confirm('Dokument löschen?');
if (r) {
$.ajax({
type: 'POST',
url: '../controller/admin_memberupload.php',
data: {
'function': 'delMemberFile',
'id': id
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
var csid = a[2];
if(a[1]=="success"){
$(document).ajaxStop(function(){
setTimeout(function() {
window.location = "?editcsid="+csid;
}, 2000);
});
}
$('#msg').show().delay(10000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
}
function delMember(csid) {
r = confirm('SängerIn löschen?');
if (r) {
$.ajax({
type: 'POST',
url: '../controller/admin_memberupload.php',
data: {
'function': 'delMember',
'csid': csid
},
success: function(result) { //we got the response
if(result!=''){
var a = result.split('|***|');
if(a[1]=="success"){
$(document).ajaxStop(function(){
setTimeout(function() {
window.location = "";
}, 2000);
});
}
$('#msg').show().delay(10000).fadeOut(500);
$('#msg').html(a[0]);
}
},
error: function(xhr, status, exception) {
console.log(xhr);
}
});
}
}

View File

@ -0,0 +1,949 @@
-- phpMyAdmin SQL Dump
-- version 5.1.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Erstellungszeit: 04. Apr 2023 um 16:35
-- Server-Version: 10.4.20-MariaDB
-- PHP-Version: 8.0.9
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Datenbank: `survey`
--
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_admin`
--
CREATE TABLE `jumi_admin` (
`uid` int(11) NOT NULL,
`vorname` varchar(20) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`nachname` varchar(20) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`mail` varchar(100) COLLATE utf8mb4_bin NOT NULL,
`passwort` varchar(32) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`passwortcode` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL COMMENT 'Passwort vergessen',
`passwortcode_time` timestamp NULL DEFAULT NULL COMMENT 'Passwort vergessen',
`aktiv` enum('0','1') COLLATE utf8mb4_bin NOT NULL DEFAULT '1'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='Benutzer';
--
-- Daten für Tabelle `jumi_admin`
--
INSERT INTO `jumi_admin` (`uid`, `vorname`, `nachname`, `mail`, `passwort`, `passwortcode`, `passwortcode_time`, `aktiv`) VALUES
(1, 'Alexander', 'Schwarz', 'ali@ju-and-mi.de', '31f1aef382261ee0df1fe1ba218f1ec1', NULL, NULL, '1'),
(2, 'Jeannette', 'Schwarz', 'jeannette@ju-and-mi.de', '31f1aef382261ee0df1fe1ba218f1ec1', NULL, NULL, '1'),
(3, 'Nadine', 'Schubert', 'nadine@ju-and-mi.de', '507e1f06de7db173ea9c3c41f7ff8d33', NULL, NULL, '1'),
(4, 'Björn', 'Idler', 'bjoern@ju-and-mi.de', 'c4308bb58d24e4feafa4300c18ddd2e8', NULL, NULL, '1'),
(5, 'Anica', 'Müller', 'anica@ju-and-mi.de', 'f073d3cb403aa5f7c3dd4ed49de33f64', NULL, NULL, '1');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_adminlog`
--
CREATE TABLE `jumi_adminlog` (
`lid` int(11) NOT NULL,
`Datum` datetime NOT NULL,
`IP` varchar(15) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
`user_agent` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`uid` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='Logins der Anwender';
--
-- Daten für Tabelle `jumi_adminlog`
--
INSERT INTO `jumi_adminlog` (`lid`, `Datum`, `IP`, `user_agent`, `uid`) VALUES
(2, '2023-03-22 16:18:23', '::1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', 1),
(3, '2023-03-22 16:23:28', '::1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', 1),
(4, '2023-03-22 16:23:38', '::1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', 1),
(5, '2023-03-22 16:41:27', '::1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', 1),
(6, '2023-03-22 16:45:14', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0', 1),
(8, '2023-03-22 16:59:27', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0', 1),
(9, '2023-03-22 19:05:37', '93.235.6.36', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(10, '2023-03-22 19:09:51', '93.235.6.36', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(11, '2023-03-22 19:29:21', '77.180.60.155', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(12, '2023-03-23 06:44:15', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(13, '2023-03-23 06:45:32', '93.235.8.169', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(14, '2023-03-23 07:26:17', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(15, '2023-03-23 07:33:36', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(16, '2023-03-23 07:36:29', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(17, '2023-03-23 08:27:03', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(18, '2023-03-23 08:56:59', '93.235.8.169', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(19, '2023-03-23 13:35:05', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(20, '2023-03-23 13:41:07', '93.235.8.169', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(21, '2023-03-23 14:35:30', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(22, '2023-03-23 14:51:18', '93.235.8.169', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(23, '2023-03-23 14:55:36', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(28, '2023-03-23 16:11:15', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(29, '2023-03-23 16:36:43', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(30, '2023-03-23 16:39:42', '93.235.8.169', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(31, '2023-03-24 13:41:22', '193.197.150.215', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(32, '2023-03-24 14:20:07', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(33, '2023-03-24 16:04:26', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(34, '2023-03-24 16:07:09', '93.235.8.220', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(38, '2023-03-24 16:55:45', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(39, '2023-03-24 17:16:08', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(40, '2023-03-24 18:20:40', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(41, '2023-03-24 18:37:42', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(42, '2023-03-24 19:00:09', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(43, '2023-03-24 20:42:53', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(44, '2023-03-24 22:58:50', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(45, '2023-03-24 23:34:52', '93.235.8.220', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(46, '2023-03-25 06:50:06', '46.91.139.219', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(47, '2023-03-25 08:17:27', '46.91.139.219', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 2),
(48, '2023-03-25 10:16:39', '46.91.139.219', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36', 1),
(49, '2023-03-25 12:58:31', '46.91.139.219', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', 1),
(50, '2023-03-25 12:59:21', '46.91.139.219', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', 1),
(51, '2023-03-25 13:01:09', '46.91.139.219', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', 1),
(52, '2023-03-25 15:34:18', '46.91.139.219', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Safari/605.1.15', 1),
(53, '2023-03-25 20:59:53', '46.91.139.219', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(54, '2023-03-26 07:52:00', '93.235.6.164', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(55, '2023-03-26 14:05:50', '93.235.6.164', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0', 1),
(56, '2023-03-27 15:11:18', '93.235.6.53', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(57, '2023-03-27 17:29:55', '93.235.6.53', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(58, '2023-03-27 18:26:39', '93.235.6.53', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(59, '2023-03-27 19:04:55', '93.235.6.53', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(60, '2023-03-27 21:29:43', '93.235.6.53', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(61, '2023-03-28 12:55:06', '93.235.4.202', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(62, '2023-03-28 13:00:56', '93.235.4.202', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(63, '2023-03-28 13:01:37', '93.235.4.202', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(64, '2023-03-28 13:55:42', '93.235.4.202', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(65, '2023-03-28 15:28:09', '93.235.4.202', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(66, '2023-03-28 19:02:38', '93.235.4.202', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(67, '2023-03-29 16:24:08', '193.197.150.215', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(68, '2023-03-29 16:29:01', '193.197.150.215', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(69, '2023-03-30 10:45:18', '80.187.65.85', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(70, '2023-03-30 10:45:43', '80.187.65.85', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(71, '2023-03-30 15:20:55', '80.187.65.85', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(72, '2023-03-30 15:21:07', '80.187.65.85', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(73, '2023-03-30 17:06:02', '79.198.7.85', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(74, '2023-03-31 13:24:37', '193.197.150.215', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(75, '2023-03-31 13:54:25', '80.187.65.85', 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1', 1),
(76, '2023-03-31 16:57:47', '93.235.7.43', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(77, '2023-04-01 10:09:45', '46.91.137.11', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(78, '2023-04-01 10:11:48', '46.91.137.11', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', 1),
(79, '2023-04-03 14:18:45', '93.235.7.9', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(80, '2023-04-03 14:44:51', '93.235.7.9', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0', 1),
(81, '2023-04-04 07:18:57', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/109.0', 1),
(82, '2023-04-04 09:34:21', '::1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', 1),
(83, '2023-04-04 11:31:50', '::1', 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1', 1);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_admin_rolle`
--
CREATE TABLE `jumi_admin_rolle` (
`rid` int(11) NOT NULL,
`bezeichnung` varchar(200) COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_admin_rolle`
--
INSERT INTO `jumi_admin_rolle` (`rid`, `bezeichnung`) VALUES
(1, 'Administrator'),
(2, 'Noten');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_admin_rollen_rechte_zuord`
--
CREATE TABLE `jumi_admin_rollen_rechte_zuord` (
`roreid` int(11) NOT NULL,
`rid` int(11) NOT NULL,
`meid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Daten für Tabelle `jumi_admin_rollen_rechte_zuord`
--
INSERT INTO `jumi_admin_rollen_rechte_zuord` (`roreid`, `rid`, `meid`) VALUES
(1, 1, 1),
(2, 1, 2),
(3, 1, 3),
(4, 1, 4),
(5, 1, 5),
(6, 1, 6),
(7, 1, 7),
(8, 1, 8),
(9, 1, 9),
(10, 0, 1),
(11, 0, 9),
(12, 1, 10),
(13, 1, 11),
(14, 1, 12),
(15, 0, 12),
(16, 0, 11),
(17, 0, 10),
(18, 1, 13),
(19, 1, 14),
(20, 1, 15);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_admin_rollen_user_zuord`
--
CREATE TABLE `jumi_admin_rollen_user_zuord` (
`rozuid` int(11) NOT NULL,
`rid` int(11) NOT NULL,
`uid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_admin_rollen_user_zuord`
--
INSERT INTO `jumi_admin_rollen_user_zuord` (`rozuid`, `rid`, `uid`) VALUES
(1, 1, 1),
(2, 1, 2),
(3, 1, 3),
(4, 1, 4),
(5, 1, 5);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_chor_saenger`
--
CREATE TABLE `jumi_chor_saenger` (
`csid` int(11) NOT NULL,
`vorname` varchar(200) COLLATE utf8mb4_bin NOT NULL,
`nachname` varchar(200) COLLATE utf8mb4_bin NOT NULL,
`mail` varchar(100) COLLATE utf8mb4_bin NOT NULL,
`singstimme` int(1) NOT NULL COMMENT '1=Sopran,2=Alt,3=Tenor,4=Bass',
`bemerkung` text COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_chor_saenger`
--
INSERT INTO `jumi_chor_saenger` (`csid`, `vorname`, `nachname`, `mail`, `singstimme`, `bemerkung`) VALUES
(2, 'Nele', 'Müller', 'netblack@gmx.de', 2, '<p>asdf</p>');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_chor_saenger_uploads`
--
CREATE TABLE `jumi_chor_saenger_uploads` (
`id` int(11) NOT NULL,
`csid` int(11) NOT NULL,
`filename` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`originalname` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`uid` int(11) NOT NULL,
`datum` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_chor_saenger_uploads`
--
INSERT INTO `jumi_chor_saenger_uploads` (`id`, `csid`, `filename`, `originalname`, `uid`, `datum`) VALUES
(1, 2, '../media/file_upload/member/20230404_130259_20230321_Serveruebersicht_Physisch_und_Virtuell_PTLS.xlsx', '20230321 Serverübersicht Physisch und Virtuell_PTLS.xlsx', 1, '2023-04-04 13:02:59'),
(2, 2, '../media/file_upload/member/20230404_130301_Nebentaetigkeit_Jaehresmeldung.pdf', 'Nebentätigkeit Jähresmeldung.pdf', 1, '2023-04-04 13:03:01');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_menu_entries`
--
CREATE TABLE `jumi_menu_entries` (
`meid` int(11) NOT NULL,
`headline` varchar(250) COLLATE utf8mb4_bin NOT NULL,
`link` varchar(250) COLLATE utf8mb4_bin NOT NULL,
`mhid` int(11) NOT NULL COMMENT 'Headline',
`fontawesome` varchar(250) COLLATE utf8mb4_bin NOT NULL,
`sup` int(11) NOT NULL COMMENT 'Übergeordnete Menüpunkt'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_menu_entries`
--
INSERT INTO `jumi_menu_entries` (`meid`, `headline`, `link`, `mhid`, `fontawesome`, `sup`) VALUES
(1, 'Home', 'index.php', 1, 'fas fa-house', 1),
(2, 'Erstellen', 'survey_erfassen.php', 2, 'fas fa-pie-chart', 2),
(3, 'Bearbeiten', 'survey_edit.php', 2, 'fas fa-edit', 3),
(4, 'Systemparameter', 'parameter.php', 3, 'fas fa-cog', 4),
(5, 'Benutzerverwaltung', '#', 3, 'fas fa-user', 5),
(6, 'Benutzer erstellen', 'create_user.php', 3, '', 5),
(7, 'Benutzer bearbeiten', 'edit_user.php', 3, '', 5),
(8, 'Rollen / Rechte', 'rollen.php', 3, '', 5),
(9, 'Noten', '#', 4, 'fa fa-upload', 9),
(10, 'Notenupload', 'notenupload.php', 4, '', 9),
(11, 'Chor', '#', 4, 'fa-solid fa-music', 11),
(12, 'Erfassung', 'create_member.php', 4, '', 11),
(13, 'Bearbeiten', 'edit_member.php', 4, '', 11),
(14, 'Bearbeiten', 'edit_noten.php', 4, '', 9),
(15, 'Notenbuch', 'notenbuch.php', 4, '', 9);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_menu_headline`
--
CREATE TABLE `jumi_menu_headline` (
`mhid` int(11) NOT NULL,
`headline` varchar(250) COLLATE utf8mb4_bin NOT NULL,
`visible` enum('0','1') COLLATE utf8mb4_bin NOT NULL DEFAULT '1' COMMENT '0=unsichbar;1=sichtbar'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_menu_headline`
--
INSERT INTO `jumi_menu_headline` (`mhid`, `headline`, `visible`) VALUES
(1, 'Top', '0'),
(2, 'Umfrage', '1'),
(3, 'Administration', '1'),
(4, 'Verwaltung', '1');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_noten_daten`
--
CREATE TABLE `jumi_noten_daten` (
`jndid` int(11) NOT NULL,
`titel` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`vid` int(11) NOT NULL,
`sbid` int(11) NOT NULL,
`anz_lizenzen` int(11) NOT NULL,
`streamlizenz` enum('0','1') COLLATE utf8mb4_bin NOT NULL DEFAULT '0',
`uid` int(11) NOT NULL,
`datum` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_noten_daten`
--
INSERT INTO `jumi_noten_daten` (`jndid`, `titel`, `vid`, `sbid`, `anz_lizenzen`, `streamlizenz`, `uid`, `datum`) VALUES
(2, 'Heimat, heimat glanzumflossen', 3, 4, 20, '1', 1, '2023-04-04 16:07:17');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_noten_songbook`
--
CREATE TABLE `jumi_noten_songbook` (
`sbid` int(11) NOT NULL,
`bezeichnung` varchar(255) COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_noten_songbook`
--
INSERT INTO `jumi_noten_songbook` (`sbid`, `bezeichnung`) VALUES
(4, 'Chorbuch');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_noten_uploads`
--
CREATE TABLE `jumi_noten_uploads` (
`id` int(11) NOT NULL,
`jndid` int(11) NOT NULL,
`filename` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`originalname` varchar(255) COLLATE utf8mb4_bin NOT NULL,
`uid` int(11) NOT NULL,
`datum` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_noten_uploads`
--
INSERT INTO `jumi_noten_uploads` (`id`, `jndid`, `filename`, `originalname`, `uid`, `datum`) VALUES
(5, 2, '../media/file_upload/noten/20230404_160717_Nebentaetigkeit_Jaehresmeldung.pdf', 'Nebentätigkeit Jähresmeldung.pdf', 1, '2023-04-04 16:07:17'),
(6, 2, '../media/file_upload/noten/20230404_160719_Uebersicht_Datenbanken_C7000.pptx', 'Uebersicht Datenbanken C7000.pptx', 1, '2023-04-04 16:07:19');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_noten_verlag`
--
CREATE TABLE `jumi_noten_verlag` (
`vid` int(11) NOT NULL,
`bezeichnung` varchar(255) COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_noten_verlag`
--
INSERT INTO `jumi_noten_verlag` (`vid`, `bezeichnung`) VALUES
(3, 'Friedrich Bischoff Verlag');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_noten_zusammenstellung`
--
CREATE TABLE `jumi_noten_zusammenstellung` (
`zsid` int(11) NOT NULL,
`bezeichnung` varchar(200) COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_noten_zusammenstellung`
--
INSERT INTO `jumi_noten_zusammenstellung` (`zsid`, `bezeichnung`) VALUES
(1, 'Notenbuch JU & MI');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_noten_zusammenstellung_zuord`
--
CREATE TABLE `jumi_noten_zusammenstellung_zuord` (
`zsnid` int(11) NOT NULL,
`jndid` int(11) NOT NULL,
`zsid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_noten_zusammenstellung_zuord`
--
INSERT INTO `jumi_noten_zusammenstellung_zuord` (`zsnid`, `jndid`, `zsid`) VALUES
(7, 2, 1);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_parameter`
--
CREATE TABLE `jumi_parameter` (
`pid` int(11) NOT NULL,
`beschreibung` varchar(250) NOT NULL,
`wert` varchar(250) NOT NULL,
`sort` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Daten für Tabelle `jumi_parameter`
--
INSERT INTO `jumi_parameter` (`pid`, `beschreibung`, `wert`, `sort`) VALUES
(1, 'Mailadressen Ansprechpartner', 'info@ju-and-mi.de', 1);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_securitytokens`
--
CREATE TABLE `jumi_securitytokens` (
`id` int(10) UNSIGNED NOT NULL,
`uid` int(11) NOT NULL,
`identifier` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`securitytoken` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT current_timestamp()
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Daten für Tabelle `jumi_securitytokens`
--
INSERT INTO `jumi_securitytokens` (`id`, `uid`, `identifier`, `securitytoken`, `created_at`) VALUES
(2, 1, '5eff76410d548f759aa073551999a8af', '385eea6bacd849b58d97ecc31f610a5571754470', '2023-03-30 08:45:43'),
(4, 1, 'e9e4b3708da92db2c26c63ed3a915979', '5843001abab217bef6f0993b11532b4d6307da15', '2023-03-30 15:06:02'),
(5, 1, '6d77a079ab6bce8c51bc94e24a9a1c33', '68a7bdb644e58e252b2163d0870a03e5917e6e5e', '2023-03-31 11:24:37'),
(6, 1, '76c6bd2bed1fc1f0e19889eee9108c4e', 'da6daca0bb914fed390ee471145493fcbda7a5a8', '2023-03-31 11:54:25'),
(7, 1, '8bd5bf8daa9727befb9b2536de59eada', '1b3a9cc7b6ba703be48e036bc9e1efa7585367e9', '2023-03-31 14:57:47'),
(8, 1, '095ee0ddd4bdd740852d37effc6e630e', '0a3eae920e5ebb4ffde629803f8a8d749fdb3247', '2023-04-01 08:09:45'),
(9, 1, 'ff4efdb0b7f6f0a999a96ba75cb12e08', '4315e11f1b63dadfad346a87ca14c8abc12aebf8', '2023-04-01 08:11:48'),
(10, 1, 'bb3addec338ca0ca7562df8fbae931a3', '32a6448baf44679e1389b6505726ab9ac05bfa5f', '2023-04-03 12:44:51'),
(11, 1, '022d32941170b3f9639b8ebe0df280f4', '93500ad9d1f9768867484968a06bbb52bc305705', '2023-04-04 05:18:57'),
(12, 1, 'b4f6accd2eb77a751817e39ac3fdc18f', '975fddf7ea79dcca8ac5dafea96f3006b3d97e44', '2023-04-04 09:31:50');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_umfragen`
--
CREATE TABLE `jumi_umfragen` (
`umid` int(11) NOT NULL,
`datum_von` datetime NOT NULL,
`datum_bis` datetime NOT NULL,
`headline` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`freitext` enum('0','1') NOT NULL DEFAULT '0' COMMENT '0=Kein Frextextfeld;1=Freitextfeld',
`uid` int(11) NOT NULL,
`datum_erfasst` datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Daten für Tabelle `jumi_umfragen`
--
INSERT INTO `jumi_umfragen` (`umid`, `datum_von`, `datum_bis`, `headline`, `freitext`, `uid`, `datum_erfasst`) VALUES
(3, '2023-03-26 00:00:00', '2023-03-27 00:00:00', 'Umfrage zu JU & ESS', '1', 1, '2023-03-26 14:07:07');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_umfragen_antworten`
--
CREATE TABLE `jumi_umfragen_antworten` (
`uaid` int(11) NOT NULL,
`ufid` int(11) NOT NULL,
`antwort` varchar(250) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`userorder` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Daten für Tabelle `jumi_umfragen_antworten`
--
INSERT INTO `jumi_umfragen_antworten` (`uaid`, `ufid`, `antwort`, `userorder`) VALUES
(15, 6, 'gut', 0),
(16, 6, 'weniger gut', 0),
(17, 6, 'kann ich nicht sagen', 0),
(18, 7, 'Montag', 0),
(19, 7, 'Sonntag', 2),
(20, 7, 'Freitag', 1),
(21, 8, 'geht gar nicht', 2),
(22, 8, 'gut', 1),
(23, 8, 'mega', 0),
(24, 8, 'widerlich', 3);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_umfragen_ende`
--
CREATE TABLE `jumi_umfragen_ende` (
`uenid` int(11) NOT NULL,
`umid` int(11) NOT NULL,
`ip` varchar(20) NOT NULL,
`session` varchar(50) NOT NULL,
`ende` enum('0','1') NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Daten für Tabelle `jumi_umfragen_ende`
--
INSERT INTO `jumi_umfragen_ende` (`uenid`, `umid`, `ip`, `session`, `ende`) VALUES
(3, 3, '93.235.6.164', '0decptq29nvsi9b1rskqg8rlar', '1'),
(4, 3, '93.235.6.164', 'ad62egmq6ch3tr8d7bsrkv1ro3', '1'),
(5, 3, '93.235.6.164', '6im2hht8fb0uqc91ahk2ti8suq', '1'),
(6, 3, '93.235.6.164', 'di7peu3vvu6imehet8vtt0jpof', '1'),
(7, 3, '88.152.185.164', '0emg0fbguq52pd8h0c7j27ea9o', '1');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_umfragen_ergebnisse`
--
CREATE TABLE `jumi_umfragen_ergebnisse` (
`ueid` int(11) NOT NULL,
`ip` varchar(20) NOT NULL,
`session` varchar(50) NOT NULL,
`ufid` int(11) NOT NULL,
`uaid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Daten für Tabelle `jumi_umfragen_ergebnisse`
--
INSERT INTO `jumi_umfragen_ergebnisse` (`ueid`, `ip`, `session`, `ufid`, `uaid`) VALUES
(6, '93.235.6.164', '6im2hht8fb0uqc91ahk2ti8suq', 6, 15),
(7, '88.152.185.164', '0emg0fbguq52pd8h0c7j27ea9o', 6, 17),
(8, '93.235.6.164', 'ad62egmq6ch3tr8d7bsrkv1ro3', 6, 15),
(9, '93.235.6.164', 'ad62egmq6ch3tr8d7bsrkv1ro3', 7, 19),
(10, '88.152.185.164', '0emg0fbguq52pd8h0c7j27ea9o', 7, 18),
(11, '93.235.6.164', '0decptq29nvsi9b1rskqg8rlar', 6, 15),
(12, '93.235.6.164', '6im2hht8fb0uqc91ahk2ti8suq', 7, 19),
(13, '93.235.6.164', '6im2hht8fb0uqc91ahk2ti8suq', 7, 20),
(14, '93.235.6.164', 'di7peu3vvu6imehet8vtt0jpof', 6, 17),
(15, '93.235.6.164', 'ad62egmq6ch3tr8d7bsrkv1ro3', 8, 23),
(16, '93.235.6.164', '0decptq29nvsi9b1rskqg8rlar', 7, 18),
(17, '88.152.185.164', '0emg0fbguq52pd8h0c7j27ea9o', 8, 22),
(18, '93.235.6.164', '6im2hht8fb0uqc91ahk2ti8suq', 8, 24),
(19, '93.235.6.164', '0decptq29nvsi9b1rskqg8rlar', 8, 23),
(20, '93.235.6.164', 'di7peu3vvu6imehet8vtt0jpof', 7, 18),
(21, '93.235.6.164', 'di7peu3vvu6imehet8vtt0jpof', 7, 19),
(22, '93.235.6.164', 'di7peu3vvu6imehet8vtt0jpof', 8, 23);
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_umfragen_erg_freitext`
--
CREATE TABLE `jumi_umfragen_erg_freitext` (
`uefid` int(11) NOT NULL,
`umid` int(11) NOT NULL,
`ip` varchar(20) CHARACTER SET utf8mb4 NOT NULL,
`session` varchar(50) CHARACTER SET utf8mb4 NOT NULL,
`freitext` text COLLATE utf8mb4_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
--
-- Daten für Tabelle `jumi_umfragen_erg_freitext`
--
INSERT INTO `jumi_umfragen_erg_freitext` (`uefid`, `umid`, `ip`, `session`, `freitext`) VALUES
(3, 3, '93.235.6.164', 'ad62egmq6ch3tr8d7bsrkv1ro3', '😘'),
(4, 3, '93.235.6.164', '6im2hht8fb0uqc91ahk2ti8suq', 'Netter Tag 😘😘😘'),
(5, 3, '93.235.6.164', 'di7peu3vvu6imehet8vtt0jpof', 'Ali müffelt '),
(6, 3, '88.152.185.164', '0emg0fbguq52pd8h0c7j27ea9o', 'Ich find euch spitze!\r\nUnd die Umfragen sind super 🙌🏽');
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `jumi_umfragen_fragen`
--
CREATE TABLE `jumi_umfragen_fragen` (
`ufid` int(11) NOT NULL,
`umid` int(11) NOT NULL,
`frage` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
`multiple` enum('0','1') NOT NULL DEFAULT '0' COMMENT '0=Einfachantwort,1=Mehrfachantworten '
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Daten für Tabelle `jumi_umfragen_fragen`
--
INSERT INTO `jumi_umfragen_fragen` (`ufid`, `umid`, `frage`, `multiple`) VALUES
(6, 3, 'Wie war das essen', '0'),
(7, 3, 'Wann wäre der liebste Probentag?', '1'),
(8, 3, 'Wie findet ihr das Lieb \"Dona nobis pacem\"', '0');
--
-- Indizes der exportierten Tabellen
--
--
-- Indizes für die Tabelle `jumi_admin`
--
ALTER TABLE `jumi_admin`
ADD PRIMARY KEY (`uid`);
--
-- Indizes für die Tabelle `jumi_adminlog`
--
ALTER TABLE `jumi_adminlog`
ADD PRIMARY KEY (`lid`),
ADD KEY `gd_adminlog_ibfk_1` (`uid`);
--
-- Indizes für die Tabelle `jumi_admin_rolle`
--
ALTER TABLE `jumi_admin_rolle`
ADD PRIMARY KEY (`rid`);
--
-- Indizes für die Tabelle `jumi_admin_rollen_rechte_zuord`
--
ALTER TABLE `jumi_admin_rollen_rechte_zuord`
ADD PRIMARY KEY (`roreid`),
ADD KEY `rid` (`rid`),
ADD KEY `admin_rolle` (`meid`);
--
-- Indizes für die Tabelle `jumi_admin_rollen_user_zuord`
--
ALTER TABLE `jumi_admin_rollen_user_zuord`
ADD PRIMARY KEY (`rozuid`);
--
-- Indizes für die Tabelle `jumi_chor_saenger`
--
ALTER TABLE `jumi_chor_saenger`
ADD PRIMARY KEY (`csid`);
--
-- Indizes für die Tabelle `jumi_chor_saenger_uploads`
--
ALTER TABLE `jumi_chor_saenger_uploads`
ADD PRIMARY KEY (`id`);
--
-- Indizes für die Tabelle `jumi_menu_entries`
--
ALTER TABLE `jumi_menu_entries`
ADD PRIMARY KEY (`meid`);
--
-- Indizes für die Tabelle `jumi_menu_headline`
--
ALTER TABLE `jumi_menu_headline`
ADD PRIMARY KEY (`mhid`);
--
-- Indizes für die Tabelle `jumi_noten_daten`
--
ALTER TABLE `jumi_noten_daten`
ADD PRIMARY KEY (`jndid`);
--
-- Indizes für die Tabelle `jumi_noten_songbook`
--
ALTER TABLE `jumi_noten_songbook`
ADD PRIMARY KEY (`sbid`);
--
-- Indizes für die Tabelle `jumi_noten_uploads`
--
ALTER TABLE `jumi_noten_uploads`
ADD PRIMARY KEY (`id`);
--
-- Indizes für die Tabelle `jumi_noten_verlag`
--
ALTER TABLE `jumi_noten_verlag`
ADD PRIMARY KEY (`vid`);
--
-- Indizes für die Tabelle `jumi_noten_zusammenstellung`
--
ALTER TABLE `jumi_noten_zusammenstellung`
ADD PRIMARY KEY (`zsid`);
--
-- Indizes für die Tabelle `jumi_noten_zusammenstellung_zuord`
--
ALTER TABLE `jumi_noten_zusammenstellung_zuord`
ADD PRIMARY KEY (`zsnid`);
--
-- Indizes für die Tabelle `jumi_parameter`
--
ALTER TABLE `jumi_parameter`
ADD PRIMARY KEY (`pid`);
--
-- Indizes für die Tabelle `jumi_securitytokens`
--
ALTER TABLE `jumi_securitytokens`
ADD PRIMARY KEY (`id`);
--
-- Indizes für die Tabelle `jumi_umfragen`
--
ALTER TABLE `jumi_umfragen`
ADD PRIMARY KEY (`umid`);
--
-- Indizes für die Tabelle `jumi_umfragen_antworten`
--
ALTER TABLE `jumi_umfragen_antworten`
ADD PRIMARY KEY (`uaid`);
--
-- Indizes für die Tabelle `jumi_umfragen_ende`
--
ALTER TABLE `jumi_umfragen_ende`
ADD PRIMARY KEY (`uenid`);
--
-- Indizes für die Tabelle `jumi_umfragen_ergebnisse`
--
ALTER TABLE `jumi_umfragen_ergebnisse`
ADD PRIMARY KEY (`ueid`);
--
-- Indizes für die Tabelle `jumi_umfragen_erg_freitext`
--
ALTER TABLE `jumi_umfragen_erg_freitext`
ADD PRIMARY KEY (`uefid`);
--
-- Indizes für die Tabelle `jumi_umfragen_fragen`
--
ALTER TABLE `jumi_umfragen_fragen`
ADD PRIMARY KEY (`ufid`);
--
-- AUTO_INCREMENT für exportierte Tabellen
--
--
-- AUTO_INCREMENT für Tabelle `jumi_admin`
--
ALTER TABLE `jumi_admin`
MODIFY `uid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
--
-- AUTO_INCREMENT für Tabelle `jumi_adminlog`
--
ALTER TABLE `jumi_adminlog`
MODIFY `lid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=84;
--
-- AUTO_INCREMENT für Tabelle `jumi_admin_rolle`
--
ALTER TABLE `jumi_admin_rolle`
MODIFY `rid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- AUTO_INCREMENT für Tabelle `jumi_admin_rollen_rechte_zuord`
--
ALTER TABLE `jumi_admin_rollen_rechte_zuord`
MODIFY `roreid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;
--
-- AUTO_INCREMENT für Tabelle `jumi_admin_rollen_user_zuord`
--
ALTER TABLE `jumi_admin_rollen_user_zuord`
MODIFY `rozuid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
--
-- AUTO_INCREMENT für Tabelle `jumi_chor_saenger`
--
ALTER TABLE `jumi_chor_saenger`
MODIFY `csid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- AUTO_INCREMENT für Tabelle `jumi_chor_saenger_uploads`
--
ALTER TABLE `jumi_chor_saenger_uploads`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT für Tabelle `jumi_menu_entries`
--
ALTER TABLE `jumi_menu_entries`
MODIFY `meid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
--
-- AUTO_INCREMENT für Tabelle `jumi_menu_headline`
--
ALTER TABLE `jumi_menu_headline`
MODIFY `mhid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
--
-- AUTO_INCREMENT für Tabelle `jumi_noten_daten`
--
ALTER TABLE `jumi_noten_daten`
MODIFY `jndid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
--
-- AUTO_INCREMENT für Tabelle `jumi_noten_songbook`
--
ALTER TABLE `jumi_noten_songbook`
MODIFY `sbid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
--
-- AUTO_INCREMENT für Tabelle `jumi_noten_uploads`
--
ALTER TABLE `jumi_noten_uploads`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT für Tabelle `jumi_noten_verlag`
--
ALTER TABLE `jumi_noten_verlag`
MODIFY `vid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT für Tabelle `jumi_noten_zusammenstellung`
--
ALTER TABLE `jumi_noten_zusammenstellung`
MODIFY `zsid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
--
-- AUTO_INCREMENT für Tabelle `jumi_noten_zusammenstellung_zuord`
--
ALTER TABLE `jumi_noten_zusammenstellung_zuord`
MODIFY `zsnid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
--
-- AUTO_INCREMENT für Tabelle `jumi_parameter`
--
ALTER TABLE `jumi_parameter`
MODIFY `pid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
--
-- AUTO_INCREMENT für Tabelle `jumi_securitytokens`
--
ALTER TABLE `jumi_securitytokens`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13;
--
-- AUTO_INCREMENT für Tabelle `jumi_umfragen`
--
ALTER TABLE `jumi_umfragen`
MODIFY `umid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT für Tabelle `jumi_umfragen_antworten`
--
ALTER TABLE `jumi_umfragen_antworten`
MODIFY `uaid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=25;
--
-- AUTO_INCREMENT für Tabelle `jumi_umfragen_ende`
--
ALTER TABLE `jumi_umfragen_ende`
MODIFY `uenid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
--
-- AUTO_INCREMENT für Tabelle `jumi_umfragen_ergebnisse`
--
ALTER TABLE `jumi_umfragen_ergebnisse`
MODIFY `ueid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
--
-- AUTO_INCREMENT für Tabelle `jumi_umfragen_erg_freitext`
--
ALTER TABLE `jumi_umfragen_erg_freitext`
MODIFY `uefid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT für Tabelle `jumi_umfragen_fragen`
--
ALTER TABLE `jumi_umfragen_fragen`
MODIFY `ufid` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

View File

@ -2,8 +2,13 @@
<!DOCTYPE html>
<html lang="de">
<head>
<title>JU & MI Benutzer erstellen</title>
<link rel="stylesheet" href="../jquery/jquery-ui.css">
{if $create_edit == ''}
<title>JU & MI S&auml;ngerIn erfassen</title>
{else}
<title>JU & MI S&auml;ngerIn bearbeiten</title>
{/if}
<title>JU & MI S&auml;ngerIn erfassen</title>
<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">
@ -14,131 +19,19 @@
<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>
<script type="text/javascript" src="../js/file_upload/vpb_uploader_member.js"></script>
<script type="text/javascript">$(document).ready(function()
{
// Call the main function
new vpb_multiple_file_uploader
({
vpb_form_id: "form_id", // Form ID
autoSubmit: true,
vpb_server_url: "../controller/admin_memberupload.php"
});
});
</script>
<link href = "../jquery/jquery-ui-themes-1.13.2/jquery-ui.css" rel = "stylesheet">
</head>
<body class="sb-nav-fixed">
<div id="navtop"></div>
@ -153,18 +46,20 @@
</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>
<!-- Navigation left -->
<div id="navleft"></div>
<div id="layoutSidenav_content">
<main>
<div class="container-fluid">
<form name="form_id" id="form_id" action="javascript:void(0);" enctype="multipart/form-data">
<div class="card">
<div class="card-header">
<i class="fas fa-edit me-1"></i>
S&auml;ngerIn erfassen
{if $create_edit == ''}
S&auml;ngerIn erfassen
{else}
S&auml;ngerIn bearbeiten
{/if}
</div>
<div class="card-body">
<div class="row">
@ -183,47 +78,103 @@
<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&szlig;</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>
<select name="singstimme"class="form-control" id="singstimme">
<option value="1" {if $member_anlegen_singstimme == 1} selected {/if}>Sopran</option>
<option value="2" {if $member_anlegen_singstimme == 2} selected {/if}>Alt</option>
<option value="3" {if $member_anlegen_singstimme == 3} selected {/if}>Tenor</option>
<option value="4" {if $member_anlegen_singstimme == 4} selected {/if}>Ba&szlig;</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">{$member_anlegen_bemerkung}</textarea>
</div>
</div>
</div>
{if $create_edit != ''}
<div class="row mt-2 mt-sm-4 mb-2 mb-sm-4">
<div class="col-12 col-md-4">Dateien:</div>
<div class="col-12 col-md-8">
<div class="form-group">
<table class="table table-striped table-bordered" id="curdoks">
<thead>
<tr>
<th style="color:blue; text-align:center;">Datei</th>
<th style="color:blue; text-align:center;">Uploaddatum</th>
<th style="color:blue; text-align:center;">Aktion</th>
<tr>
</thead>
<tbody>
{section name=table_data loop=$table_data}
<tr>
<td><a href="{$table_data[table_data].filename}" target="_new">{$table_data[table_data].originalname}</a></td>
<td>{$table_data[table_data].uploaddatum}</td>
<td><a class="btn btn-danger btn-rounded btn-icon btn-sm" onclick="delMemberFile({$table_data[table_data].id})"><i class="fa fa-trash" style="width:18px;"></i></a></td>
</tr>
{/section}
</tbody>
</table>
</div>
</div>
</div>
{/if}
<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">
<input class="form-control" type="file" name="vasplus_multiple_files" id="vasplus_multiple_files" multiple="multiple">
</div>
</label>
</div>
<table class="table table-striped table-bordered" id="add_files">
<thead>
<tr>
<th style="color:blue; text-align:center;">Datei</th>
<th style="color:blue; text-align:center;">Status</th>
<th style="color:blue; text-align:center;">Gr&ouml;&szlig;e</th>
<th style="color:blue; text-align:center;">Aktion</th>
<tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<p align='center'>
<button class="col-6 btn btn-primary btn-sm mt-3" id="save" onclick="membersave();">Speichern</button>
</p>
<p align='center'>
{if $create_edit != ''}
<input type="hidden" id="csid" value="{$create_edit}">
{else}
<input type="hidden" id="csid" value="-1">
{/if}
<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>
</form>
</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>
</main>
<!--
<script src="https://cdn.tiny.cloud/1/1rbpdpgs5ibxxotsljroj6rzz4t6v4akerjkdj7tuzdzlic6/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script>
-->
<script src="../tinymce/js/tinymce/tinymce.min.js"></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}
{/if}

View File

@ -0,0 +1,111 @@
{if $action == ''}
<!DOCTYPE html>
<html lang="de">
<head>
<title>JU & MI S&auml;ngerIn bearbeiten</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-->
<!-- data Table: https://datatables.net/ -->
<script src="../bootstrap/data-table/jquery.min.js"></script>
<link rel="stylesheet" href="../bootstrap/data-table/dataTables.bootstrap5.min.css"></style>
<link rel="stylesheet" href="../bootstrap/data-table/rowReorder.dataTables.min.css"></style>
<script type="text/javascript" src="../bootstrap/data-table/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../bootstrap/data-table/dataTables.rowReorder.min.js"></script>
<script type="text/javascript" src="../bootstrap/data-table/dataTables.bootstrap5.min.js"></script>
<link rel="stylesheet" href="../bootstrap/data-table/jumistyle.css"></style>
<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">
</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 type="text/javascript" src="../js/file_upload/vpb_uploader_member.js"></script>
<div class="container-fluid">
<div class="card">
<div class="card-header">
<i class="fas fa-edit me-1"></i>
S&auml;ngerIn bearbeiten
</div>
<div class="card-body">
<!-- https://datatables.net/download/release -->
<table id="myTable" class="table table-striped table-bordered table-responsive table-hover" >
<thead>
<tr>
<th>Vorname</th>
<th>Nachname</th>
<th class="d-none d-lg-table-cell"> Mail</th>
<th class="d-none d-lg-table-cell">Singstimme</th>
<th>Aktion</th>
</tr>
</thead>
<tbody>
{section name=table_data loop=$table_data}
<tr>
<td>{$table_data[table_data].vorname}</td>
<td>{$table_data[table_data].nachname}</td>
<td class="d-none d-lg-table-cell">{$table_data[table_data].mail}</td>
<td class="d-none d-lg-table-cell">{$table_data[table_data].singstimme}</td>
<td>
<a href="create_member.php?editcsid={$table_data[table_data].csid}" class="settings" title="Edit Member" data-toggle="tooltip"><i class="fas fa fa-cog"></i></a>
&nbsp;
<a class="btn btn-danger btn-rounded btn-icon btn-sm" onclick="delMember({$table_data[table_data].csid})"><i class="fa fa-trash" style="width:18px;"></i></a>
</td>
</tr>
{/section}
</tbody>
</table>
</div>
</div>
</div>
<div id="msg"></div>
</main>
<!-- footer -->
<div id="footer"></div>
</div>
</div>
</body>
<script>
$(document).ready(function(){
var table = new DataTable('#myTable', {
rowReorder: true,
pageLength: 5,
language: {
url: '//cdn.datatables.net/plug-ins/1.13.4/i18n/de-DE.json',
search: "",
lengthMenu: "_MENU_ Zeilen",
},
});
});
</script>
</html>
{/if}

View File

@ -0,0 +1,113 @@
{if $action == ''}
<!DOCTYPE html>
<html lang="de">
<head>
<title>JU & MI Noten bearbeiten</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-->
<!-- data Table: https://datatables.net/ -->
<script src="../bootstrap/data-table/jquery.min.js"></script>
<link rel="stylesheet" href="../bootstrap/data-table/dataTables.bootstrap5.min.css"></style>
<link rel="stylesheet" href="../bootstrap/data-table/rowReorder.dataTables.min.css"></style>
<script type="text/javascript" src="../bootstrap/data-table/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../bootstrap/data-table/dataTables.rowReorder.min.js"></script>
<script type="text/javascript" src="../bootstrap/data-table/dataTables.bootstrap5.min.js"></script>
<link rel="stylesheet" href="../bootstrap/data-table/jumistyle.css"></style>
<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">
</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 type="text/javascript" src="../js/file_upload/vpb_uploader.js"></script>
<div class="container-fluid">
<div class="card">
<div class="card-header">
<i class="fas fa-edit me-1"></i>
Noten bearbeiten
</div>
<div class="card-body">
<!-- https://datatables.net/download/release -->
<table id="myTable" class="table table-striped table-bordered table-responsive table-hover" >
<thead>
<tr>
<th>Titel</th>
<th>Verlag</th>
<th>Songbook</th>
<th class="d-none d-lg-table-cell"> Lizenzmenge</th>
<th class="d-none d-lg-table-cell">Streamlizenz</th>
<th>Aktion</th>
</tr>
</thead>
<tbody>
{section name=table_data loop=$table_data}
<tr>
<td>{$table_data[table_data].titel}</td>
<td>{$table_data[table_data].verlag}</td>
<td>{$table_data[table_data].songbook}</td>
<td class="d-none d-lg-table-cell">{$table_data[table_data].anz_lizenzen}</td>
<td class="d-none d-lg-table-cell">{$table_data[table_data].streamlizenz_vorh}</td>
<td>
<a href="notenupload.php?editjndid={$table_data[table_data].jndid}" class="settings" title="Edit Member" data-toggle="tooltip"><i class="fas fa fa-cog"></i></a>
&nbsp;
<a class="btn btn-danger btn-rounded btn-icon btn-sm" onclick="delNoten({$table_data[table_data].jndid})"><i class="fa fa-trash" style="width:18px;"></i></a>
</td>
</tr>
{/section}
</tbody>
</table>
</div>
</div>
</div>
<div id="msg"></div>
</main>
<!-- footer -->
<div id="footer"></div>
</div>
</div>
</body>
<script>
$(document).ready(function(){
var table = new DataTable('#myTable', {
rowReorder: true,
pageLength: 5,
language: {
url: '//cdn.datatables.net/plug-ins/1.13.4/i18n/de-DE.json',
search: "",
lengthMenu: "_MENU_ Zeilen",
},
});
});
</script>
</html>
{/if}

View File

@ -18,7 +18,7 @@
</style>
<nav class="bg-juandmi sb-topnav navbar navbar-expand navbar-dark">
<!-- Navbar Brand-->
<a class="navbar-brand ps-3" href="index.php">Administration JU & MI</a>
<a class="navbar-brand ps-3" href="index.php">JU & MI</a>
<!-- Sidebar Toggle: js/scripts.js in der callbackfunktion vom Load aufrufen beim einbetten-->
<button class="btn btn-link btn-sm order-1 order-lg-0 me-4 me-lg-0" id="sidebarToggle" href="#!"><i class="fas fa-bars"></i></button>
<!-- Navbar Search-->

View File

@ -0,0 +1,168 @@
{if $action == ''}
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="Scrollable tab for Bootstrap 5">
<title>Notenbuch erfassen</title>
<meta name="keywords" content="Bootstrap, Bootstrap 5, Tabs">
<meta name="author" content="Federico Navarrete">
<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>
<link rel="stylesheet" href="../bootstrap/node_modules/bootstrap-icons/font/bootstrap-icons.css">
<script src="../jquery/jquery-3.4.1.min.js"></script>
<!-- jQuery UI CSS
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
-->
<script src="../jquery/jquery-ui.js"></script>
<style>
.btn-group > .btn{
margin-bottom:20px;
border-radius:20px !important;
}
</style>
<script type="text/javascript">
{literal}
function keysave(ele) {
if(event.key === 'Enter') {
rollesave();
}
}
{/literal}
</script>
<style type="text/css">
.ui-sortable tr {
cursor:pointer;
}
.ui-sortable tr:hover {
background:rgba(244,251,17,0.45);
}
</style>
<script>
$(document).ready(function(){
$('[data-toggle="popover"]').popover();
});
</script>
</head>
<!--<body onload="if(document.erfassen)document.erfassen.{$umfrageerf_focus}.focus();return false;">-->
<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_notenbuch.js"></script>
<div class="container-fluid">
<div class="card">
<div class="card-header">
<i class="fas fa-table me-1"></i>
Notenbuch erfassen
</div>
<div class="row mt-1 mt-sm-1 mb-1 mb-sm-1">
<div class="col-4 col-md-4">Notenbuchname:</div>
<div class="col-8 col-md-8"><input class="form-control" type="text" name="notenbuchname" id="notenbuchname" value="{$umfrageerf_value_frage}" size="60" onkeydown="keysave(this)"></div>
</div>
</div>
<div class="row">
<div class="row col-3"></div>
<div class="row col-6"><button class="btn btn-primary btn-sm mt-3" id="save" onclick="notenbuchsave();">Speichern</button></div>
<div class="row col-3"></div>
</div>
<br>
<div class="card">
<div class="card-header">
<i class="fas fa-table me-1"></i>
Vorhandene Notenbücher
</div>
<div class="card-body">
<div class="row mt-0 mt-sm-1 mb-0 mb-sm-1">
<div class="row mt-0 mb-0">
<div class="d-none col-md-7 d-md-block"><b>Rolle</b></div>
<div class="d-none col-md-5 d-md-block"><b>Aktion</b></div>
</div>
{section name=table_data loop=$table_data}
<div class="row mt-0 mt-sm-1 mb-0 mb-sm-1">
<div class="col-6 col-md-7">{$table_data[table_data].bezeichnung}</div>
<div class="col-6 col-md-5">
<a class="btn btn-success btn-rounded btn-icon btn-sm" data-bs-toggle="modal" value="{$table_data[table_data].zsid}|notenbuchzuordnung.php" onclick="ShowZuordnung(this)" data-bs-target="#ZuordnungModal"><i class="fa fa-eye" style="width:18px;"></i></a>
<a class="btn btn-success btn-rounded btn-icon btn-sm" data-bs-toggle="modal" value="{$table_data[table_data].zsid}|userzuordnung.php" onclick="ShowZuordnung(this)" data-bs-target="#ZuordnungModal"><i class="fa fa-user" style="width:18px;"></i></a>
<a class="btn btn-danger btn-rounded btn-icon btn-sm" onclick="delRole({$table_data[table_data].zsid})"><i class="fa fa-trash" style="width:18px;"></i></a>
</div>
</div>
{/section}
<!-- Modal -->
<div class="modal" id="ZuordnungModal" tabindex="-1" aria-labelledby="ZuordnungModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<!--<h5 class="modal-title" id="ZuordnungModalLabel">Rollenübersicht</h5>-->
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<!--<button type="button" class="btn btn-primary">Save changes</button>-->
</div>
</div>
</div>
</div>
<!-- Lösen Sie das Modal mit einem Button aus -->
{literal}
<script>
function ShowZuordnung(a){
let receive = a.getAttribute("value");
var a = receive.split('|');
var value = a[0];
var file = a[1];
$( '.modal-body' ).load( file+'?edit='+value , function () {
$( '#ZuordnungModal' ).modal({show: true });
});
}
</script>
{/literal}
</div>
</div>
</div>
<div id="msg"></div>
</main>
<!--
<button type="button" class="btn btn-primary" data-bs-toggle="popover" title="Popover Header" data-bs-content="Some content inside the popover">
Toggle popover
</button>
-->
<!-- footer -->
<div id="footer"></div>
</div>
</div>
<!--
<script>
var popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
var popoverList = popoverTriggerList.map(function (popoverTriggerEl) {
return new bootstrap.Popover(popoverTriggerEl)
})
</script>
-->
</body>
</html>
{/if}

View File

@ -0,0 +1,93 @@
{if $action == ''}
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="Scrollable tab for Bootstrap 5">
<meta name="keywords" content="Bootstrap, Bootstrap 5, Tabs">
<meta name="author" content="Federico Navarrete">
<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>
<link rel="stylesheet" href="../bootstrap/node_modules/bootstrap-icons/font/bootstrap-icons.css">
<script src="../jquery/jquery-3.4.1.min.js"></script>
<!-- jQuery UI CSS
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
-->
<script src="../jquery/jquery-ui.js"></script>
<style>
.btn-group > .btn{
margin-bottom:20px;
border-radius:20px !important;
}
</style>
<style type="text/css">
.ui-sortable tr {
cursor:pointer;
}
.ui-sortable tr:hover {
background:rgba(244,251,17,0.45);
}
</style>
</head>
<!--<body onload="if(document.erfassen)document.erfassen.{$umfrageerf_focus}.focus();return false;">-->
<body class="sb-nav-fixed">
<main>
<!--Anwendung-->
<script src="../js/components/admin_notenbuch.js"></script>
<p class="text-center"><b>{$notenbuchzuordnung_bezeichnung}</b></p>
<div class="container-fluid">
<div class="card">
<div class="card-header">
<i class="fas fa-table me-1"></i>
Nicht zugewiesene Rechte
</div>
<div class="card-body">
<div class="row mt-0 mt-sm-1 mb-0 mb-sm-1">
<div class="row mt-0 mb-0">
<div class="d-none col-md-10 d-md-block"><b>Lied</b></div>
<div class="d-none col-md-2 d-md-block"><b>Aktion</b></div>
</div>
{section name=table_data loop=$table_data}
<div class="row mt-0 mt-sm-1 mb-0 mb-sm-1">
<div class="col-10 col-md-10">{$table_data[table_data].titel}</div>
<div class="col-2 col-md-2"><a class="btn btn-success btn-rounded btn-icon btn-sm" onclick="erfzuordnung({$table_data[table_data].jndid},{$rollen_edit})"><i class="fa-solid fa-plus" style="width:18px;"></i></a></div>
</div>
{/section}
</div>
</div>
</div>
<br>
<div class="card">
<div class="card-header">
<i class="fas fa-table me-1"></i>
Zugewiesene Lieder
</div>
<div class="card-body">
<div class="row mt-0 mt-sm-1 mb-0 mb-sm-1">
<div class="row mt-0 mb-0">
<div class="d-none col-md-10 d-md-block"><b>Lied</b></div>
<div class="d-none col-md-2 d-md-block"><b>Aktion</b></div>
</div>
{section name=table_data1 loop=$table_data1}
<div class="row mt-0 mt-sm-1 mb-0 mb-sm-1">
<div class="col-10 col-md-10">{$table_data1[table_data1].titel}</div>
<div class="col-2 col-md-2"><a class="btn btn-danger btn-rounded btn-icon btn-sm" onclick="delzuordnung({$table_data1[table_data1].jndid}, {$rollen_edit})"><i class="fa-solid fa-minus" style="width:18px;"></i></a></div>
</div>
{/section}
</div>
</div>
</div>
<div id="msg"></div>
</main>
</div>
<script src="../bootstrap/node_modules/move-js/move.js"></script>
<link href="../bootstrap/dist/scrollable-tabs.min.css" rel="stylesheet">
<script src="../bootstrap/dist/scrollable-tabs.min.js"></script>
</body>
</html>
{/if}

View File

@ -3,6 +3,12 @@
<html lang="de">
<head>
<meta charset="utf-8">
{if $create_edit == ''}
<title>JU & MI Noten erfassen</title>
{else}
<title>JU & MI Noten bearbeiten</title>
{/if}
<meta name="description" content="Scrollable tab for Bootstrap 5">
<meta name="keywords" content="Bootstrap, Bootstrap 5, Tabs">
<meta name="author" content="Federico Navarrete">
@ -66,34 +72,73 @@
<div class="card">
<div class="card-header">
<i class="fas fa-edit me-1"></i>
Notenupload
{if $create_edit == ''}
Noten erfassen
{else}
Noten bearbeiten
{/if}
</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">Titel:</div>
<div class="col-12 col-md-8">
<input type="text" id="titel" class="form-control rounded-right" required>
<input type="text" id="titel" class="form-control rounded-right" value="{$notenupload_titel}" required>
</div>
</div>
<div class="row mt-2 mt-sm-4 mb-2 mb-sm-4">
<div class="col-12 col-md-4">Songbookname:</div>
<div class="col-12 col-md-8">
<input type="text" id="songbook" class="form-control rounded-right" value="{$notenupload_songbook}">
</div>
</div>
<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">
<input type="text" id="verlag" class="form-control rounded-right" value="{$notenupload_verlag}">
</div>
</div>
<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">
<input type="text" id="anz_lizenzen" class="form-control rounded-right" value="{$notenupload_anz_lizenzen}" required>
</div>
</div>
<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">
<input class="form-check-input" type="checkbox" name="streamlizenz" id="streamlizenz" value="1" {if $notenupload_streamlizenz == '1'}checked{/if}>
</div>
</div>
{if $create_edit != ''}
<div class="row mt-2 mt-sm-4 mb-2 mb-sm-4">
<div class="col-12 col-md-4">Dateien:</div>
<div class="col-12 col-md-8">
<div class="form-group">
<table class="table table-striped table-bordered" id="curdoks">
<thead>
<tr>
<th style="color:blue; text-align:center;">Datei</th>
<th style="color:blue; text-align:center;">Uploaddatum</th>
<th style="color:blue; text-align:center;">Aktion</th>
<tr>
</thead>
<tbody>
{section name=table_data loop=$table_data}
<tr>
<td><a href="{$table_data[table_data].filename}" target="_new">{$table_data[table_data].originalname}</a></td>
<td>{$table_data[table_data].uploaddatum}</td>
<td><a class="btn btn-danger btn-rounded btn-icon btn-sm" onclick="delNotenFile({$table_data[table_data].id})"><i class="fa fa-trash" style="width:18px;"></i></a></td>
</tr>
{/section}
</tbody>
</table>
</div>
</div>
</div>
{/if}
<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>
@ -116,6 +161,11 @@
</table>
</div>
<p align='center'>
{if $create_edit != ''}
<input type="hidden" id="jndid" value="{$create_edit}">
{else}
<input type="hidden" id="jndid" value="-1">
{/if}
<button class="col-6 btn btn-primary btn-sm mt-3" id="save">Speichern</button>
</p>
</div>

View File

@ -1,114 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<html>
<head>
<title>JU & MI Startseite</title>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<link href="../bootstrap/node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="../bootstrap/node_modules/@popperjs/core/dist/umd/popper.min.js"></script>
<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>
<style>
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
}
@media only screen and (min-width: 769px) {
#div2 {
overflow: hidden;
background-color: #333;
height: 100%;
float: right !important;
width: 20%;
}
}
@media only screen and (max-width: 768px) {
#div2 {
height: 100px;
width: 100%;
position:fixed;
bottom:0;
background-color:gray;
}
}
.navbar a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.navbar a:hover {
background: #f1f1f1;
color: black;
}
.navbar a.active {
background-color: #04AA6D;
color: white;
}
.main {
padding: 16px;
margin-bottom: 30px;
}
</style>
{literal}
<script>
<script>
$(document).ready(function() {
$("#div2").resizable({
alsoResize: "#main"
});
})
</script>
</script>
{/literal}
</head>
<body>
<button class="btn btn-primary" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasScrolling" aria-controls="offcanvasScrolling">Toggle bottom offcanvas</button>
<div class="offcanvas offcanvas-bottom" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasScrolling" aria-labelledby="offcanvasScrollingLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasScrollingLabel">Colored with scrolling</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<p>Try scrolling the rest of the page to see this option in action.</p>
</div>
</div>
<div id="div2">
<a href="#home" class="active">Home</a>
<a href="#news">News</a>
<a href="#contact">Contact</a>
</div>
<div class="main">
<h1>Bottom Navigation Bar</h1>
<p>Some text some text some text.</p>
</div>
</body>
<script src="../tinymce/js/tinymce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: '#mytextarea'
});
</script>
</head>
<body>
<h1>TinyMCE Quick Start Guide</h1>
<form method="post">
<textarea id="mytextarea">Hello, World!</textarea>
</form>
</body>
</html>

@ -0,0 +1 @@
Subproject commit 9065e4be0e7550c1f6b856dd3fc0391649d441b9

3149
tinymce/CHANGELOG.md Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
This is where language files should be placed.
Please DO NOT translate these directly use this service: https://www.transifex.com/projects/p/tinymce/

View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2022 Ephox Corporation DBA Tiny Technologies, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=(t,e,s)=>{const r="UL"===e?"InsertUnorderedList":"InsertOrderedList";t.execCommand(r,!1,!1===s?null:{"list-style-type":s})},s=t=>e=>e.options.get(t),r=s("advlist_number_styles"),n=s("advlist_bullet_styles"),l=t=>null==t,i=t=>!l(t);var o=tinymce.util.Tools.resolve("tinymce.util.Tools");class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return i(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=t=>e=>i(e)&&t.test(e.nodeName),d=u(/^(OL|UL|DL)$/),g=u(/^(TH|TD)$/),h=t=>l(t)||"default"===t?"":t,c=(t,e)=>s=>{const r=r=>{s.setActive(((t,e,s)=>((t,e,s)=>{for(let e=0,n=t.length;e<n;e++){const n=t[e];if(d(r=n)&&!/\btox\-/.test(r.className))return a.some(n);if(s(n,e))break}var r;return a.none()})(e,0,g).exists((e=>e.nodeName===s&&((t,e)=>t.dom.isChildOf(e,t.getBody()))(t,e))))(t,r.parents,e)),s.setEnabled(!((t,e)=>{const s=t.dom.getParent(e,"ol,ul,dl");return((t,e)=>null!==e&&!t.dom.isEditable(e))(t,s)})(t,r.element))};return t.on("NodeChange",r),()=>t.off("NodeChange",r)},m=(t,s,r,n,l,i)=>{i.length>1?((t,s,r,n,l,i)=>{t.ui.registry.addSplitButton(s,{tooltip:r,icon:"OL"===l?"ordered-list":"unordered-list",presets:"listpreview",columns:3,fetch:t=>{t(o.map(i,(t=>{const e="OL"===l?"num":"bull",s="disc"===t||"decimal"===t?"default":t,r=h(t),n=(t=>t.replace(/\-/g," ").replace(/\b\w/g,(t=>t.toUpperCase())))(t);return{type:"choiceitem",value:r,icon:"list-"+e+"-"+s,text:n}})))},onAction:()=>t.execCommand(n),onItemAction:(s,r)=>{e(t,l,r)},select:e=>{const s=(t=>{const e=t.dom.getParent(t.selection.getNode(),"ol,ul"),s=t.dom.getStyle(e,"listStyleType");return a.from(s)})(t);return s.map((t=>e===t)).getOr(!1)},onSetup:c(t,l)})})(t,s,r,n,l,i):((t,s,r,n,l,i)=>{t.ui.registry.addToggleButton(s,{active:!1,tooltip:r,icon:"OL"===l?"ordered-list":"unordered-list",onSetup:c(t,l),onAction:()=>t.queryCommandState(n)||""===i?t.execCommand(n):e(t,l,i)})})(t,s,r,n,l,h(i[0]))};t.add("advlist",(t=>{t.hasPlugin("lists")?((t=>{const e=t.options.register;e("advlist_number_styles",{processor:"string[]",default:"default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman".split(",")}),e("advlist_bullet_styles",{processor:"string[]",default:"default,circle,square".split(",")})})(t),(t=>{m(t,"numlist","Numbered list","InsertOrderedList","OL",r(t)),m(t,"bullist","Bullet list","InsertUnorderedList","UL",n(t))})(t),(t=>{t.addCommand("ApplyUnorderedListStyle",((s,r)=>{e(t,"UL",r["list-style-type"])})),t.addCommand("ApplyOrderedListStyle",((s,r)=>{e(t,"OL",r["list-style-type"])}))})(t)):console.error("Please use the Lists plugin together with the Advanced List plugin.")}))}();

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=("allow_html_in_named_anchor",e=>e.options.get("allow_html_in_named_anchor"));const a="a:not([href])",r=e=>!e,i=e=>e.getAttribute("id")||e.getAttribute("name")||"",l=e=>(e=>"a"===e.nodeName.toLowerCase())(e)&&!e.getAttribute("href")&&""!==i(e),s=e=>e.dom.getParent(e.selection.getStart(),a),d=(e,a)=>{const r=s(e);r?((e,t,o)=>{o.removeAttribute("name"),o.id=t,e.addVisual(),e.undoManager.add()})(e,a,r):((e,a)=>{e.undoManager.transact((()=>{n(e)||e.selection.collapse(!0),e.selection.isCollapsed()?e.insertContent(e.dom.createHTML("a",{id:a})):((e=>{const n=e.dom;t(n).walk(e.selection.getRng(),(e=>{o.each(e,(e=>{var t;l(t=e)&&!t.firstChild&&n.remove(e,!1)}))}))})(e),e.formatter.remove("namedAnchor",void 0,void 0,!0),e.formatter.apply("namedAnchor",{value:a}),e.addVisual())}))})(e,a),e.focus()},c=e=>(e=>r(e.attr("href"))&&!r(e.attr("id")||e.attr("name")))(e)&&!e.firstChild,m=e=>t=>{for(let o=0;o<t.length;o++){const n=t[o];c(n)&&n.attr("contenteditable",e)}};e.add("anchor",(e=>{(e=>{(0,e.options.register)("allow_html_in_named_anchor",{processor:"boolean",default:!1})})(e),(e=>{e.on("PreInit",(()=>{e.parser.addNodeFilter("a",m("false")),e.serializer.addNodeFilter("a",m(null))}))})(e),(e=>{e.addCommand("mceAnchor",(()=>{(e=>{const t=(e=>{const t=s(e);return t?i(t):""})(e);e.windowManager.open({title:"Anchor",size:"normal",body:{type:"panel",items:[{name:"id",type:"input",label:"ID",placeholder:"example"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{id:t},onSubmit:t=>{((e,t)=>/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)?(d(e,t),!0):(e.windowManager.alert("ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),!1))(e,t.getData().id)&&t.close()}})})(e)}))})(e),(e=>{const t=()=>e.execCommand("mceAnchor");e.ui.registry.addToggleButton("anchor",{icon:"bookmark",tooltip:"Anchor",onAction:t,onSetup:t=>e.selection.selectorChangedWithUnbind("a:not([href])",t.setActive).unbind}),e.ui.registry.addMenuItem("anchor",{icon:"bookmark",text:"Anchor...",onAction:t})})(e),e.on("PreInit",(()=>{(e=>{e.formatter.register("namedAnchor",{inline:"a",selector:a,remove:"all",split:!0,deep:!0,attributes:{id:"%value"},onmatch:(e,t,o)=>l(e)})})(e)}))}))}();

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),n=t("autolink_pattern"),o=t("link_default_target"),r=t("link_default_protocol"),a=t("allow_unsafe_link_target"),s=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(a=o.constructor)||void 0===a?void 0:a.name)===r.name)?"string":t;var n,o,r,a})(e));const l=(void 0,e=>undefined===e);const i=e=>!(e=>null==e)(e),c=Object.hasOwnProperty,d=e=>"\ufeff"===e;var u=tinymce.util.Tools.resolve("tinymce.dom.TextSeeker");const f=e=>/^[(\[{ \u00a0]$/.test(e),g=(e,t,n)=>{for(let o=t-1;o>=0;o--){const t=e.charAt(o);if(!d(t)&&n(t))return o}return-1},m=(e,t)=>{var o;const a=e.schema.getVoidElements(),s=n(e),{dom:i,selection:d}=e;if(null!==i.getParent(d.getNode(),"a[href]"))return null;const m=d.getRng(),k=u(i,(e=>{return i.isBlock(e)||(t=a,n=e.nodeName.toLowerCase(),c.call(t,n))||"false"===i.getContentEditable(e);var t,n})),{container:p,offset:y}=((e,t)=>{let n=e,o=t;for(;1===n.nodeType&&n.childNodes[o];)n=n.childNodes[o],o=3===n.nodeType?n.data.length:n.childNodes.length;return{container:n,offset:o}})(m.endContainer,m.endOffset),h=null!==(o=i.getParent(p,i.isBlock))&&void 0!==o?o:i.getRoot(),w=k.backwards(p,y+t,((e,t)=>{const n=e.data,o=g(n,t,(r=f,e=>!r(e)));var r,a;return-1===o||(a=n[o],/[?!,.;:]/.test(a))?o:o+1}),h);if(!w)return null;let v=w.container;const _=k.backwards(w.container,w.offset,((e,t)=>{v=e;const n=g(e.data,t,f);return-1===n?n:n+1}),h),A=i.createRng();_?A.setStart(_.container,_.offset):A.setStart(v,0),A.setEnd(w.container,w.offset);const C=A.toString().replace(/\uFEFF/g,"").match(s);if(C){let t=C[0];return $="www.",(b=t).length>=$.length&&b.substr(0,0+$.length)===$?t=r(e)+"://"+t:((e,t,n=0,o)=>{const r=e.indexOf(t,n);return-1!==r&&(!!l(o)||r+t.length<=o)})(t,"@")&&!(e=>/^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(e))(t)&&(t="mailto:"+t),{rng:A,url:t}}var b,$;return null},k=(e,t)=>{const{dom:n,selection:r}=e,{rng:l,url:i}=t,c=r.getBookmark();r.setRng(l);const d="createlink",u={command:d,ui:!1,value:i};if(!e.dispatch("BeforeExecCommand",u).isDefaultPrevented()){e.getDoc().execCommand(d,!1,i),e.dispatch("ExecCommand",u);const t=o(e);if(s(t)){const o=r.getNode();n.setAttrib(o,"target",t),"_blank"!==t||a(e)||n.setAttrib(o,"rel","noopener")}}r.moveToBookmark(c),e.nodeChanged()},p=e=>{const t=m(e,-1);i(t)&&k(e,t)},y=p;e.add("autolink",(e=>{(e=>{const t=e.options.register;t("autolink_pattern",{processor:"regexp",default:new RegExp("^"+/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g.source+"$","i")}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"})})(e),(e=>{e.on("keydown",(t=>{13!==t.keyCode||t.isDefaultPrevented()||(e=>{const t=m(e,0);i(t)&&k(e,t)})(e)})),e.on("keyup",(t=>{32===t.keyCode?p(e):(48===t.keyCode&&t.shiftKey||221===t.keyCode)&&y(e)}))})(e)}))}();

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env");const o=e=>t=>t.options.get(e),s=o("min_height"),i=o("max_height"),n=o("autoresize_overflow_padding"),r=o("autoresize_bottom_margin"),l=(e,t)=>{const o=e.getBody();o&&(o.style.overflowY=t?"":"hidden",t||(o.scrollTop=0))},g=(e,t,o,s)=>{var i;const n=parseInt(null!==(i=e.getStyle(t,o,s))&&void 0!==i?i:"",10);return isNaN(n)?0:n},a=(e,o,r,c)=>{var d;const f=e.dom,u=e.getDoc();if(!u)return;if((e=>e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen())(e))return void l(e,!0);const m=u.documentElement,h=c?c():n(e),p=null!==(d=s(e))&&void 0!==d?d:e.getElement().offsetHeight;let y=p;const S=g(f,m,"margin-top",!0),v=g(f,m,"margin-bottom",!0);let C=m.offsetHeight+S+v+h;C<0&&(C=0);const b=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;C+b>p&&(y=C+b);const w=i(e);if(w&&y>w?(y=w,l(e,!0)):l(e,!1),y!==o.get()){const s=y-o.get();if(f.setStyle(e.getContainer(),"height",y+"px"),o.set(y),(e=>{e.dispatch("ResizeEditor")})(e),t.browser.isSafari()&&(t.os.isMacOS()||t.os.isiOS())){const t=e.getWin();t.scrollTo(t.pageXOffset,t.pageYOffset)}e.hasFocus()&&(e=>{if("setcontent"===(null==e?void 0:e.type.toLowerCase())){const t=e;return!0===t.selection||!0===t.paste}return!1})(r)&&e.selection.scrollIntoView(),(t.browser.isSafari()||t.browser.isChromium())&&s<0&&a(e,o,r,c)}};e.add("autoresize",(e=>{if((e=>{const t=e.options.register;t("autoresize_overflow_padding",{processor:"number",default:1}),t("autoresize_bottom_margin",{processor:"number",default:50})})(e),e.options.isSet("resize")||e.options.set("resize",!1),!e.inline){const o=(e=>{let t=0;return{get:()=>t,set:e=>{t=e}}})();((e,t)=>{e.addCommand("mceAutoResize",(()=>{a(e,t)}))})(e,o),((e,o)=>{let s,i,l=()=>r(e);e.on("init",(i=>{s=0;const r=n(e),g=e.dom;g.setStyles(e.getDoc().documentElement,{height:"auto"}),t.browser.isEdge()||t.browser.isIE()?g.setStyles(e.getBody(),{paddingLeft:r,paddingRight:r,"min-height":0}):g.setStyles(e.getBody(),{paddingLeft:r,paddingRight:r}),a(e,o,i,l),s+=1})),e.on("NodeChange SetContent keyup FullscreenStateChanged ResizeContent",(t=>{if(1===s)i=e.getContainer().offsetHeight,a(e,o,t,l),s+=1;else if(2===s){const t=i<e.getContainer().offsetHeight;if(t){const t=e.dom,o=e.getDoc();t.setStyles(o.documentElement,{"min-height":0}),t.setStyles(e.getBody(),{"min-height":"inherit"})}l=t?(0,()=>0):l,s+=1}else a(e,o,t,l)}))})(e,o)}}))}();

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=("string",t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(r=o=t,(a=String).prototype.isPrototypeOf(r)||(null===(s=o.constructor)||void 0===s?void 0:s.name)===a.name)?"string":e;var r,o,a,s})(t));const r=(void 0,t=>undefined===t);var o=tinymce.util.Tools.resolve("tinymce.util.Delay"),a=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),s=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=t=>{const e=/^(\d+)([ms]?)$/.exec(t);return(e&&e[2]?{s:1e3,m:6e4}[e[2]]:1)*parseInt(t,10)},i=t=>e=>e.options.get(t),u=i("autosave_ask_before_unload"),l=i("autosave_restore_when_empty"),c=i("autosave_interval"),d=i("autosave_retention"),m=t=>{const e=document.location;return t.options.get("autosave_prefix").replace(/{path}/g,e.pathname).replace(/{query}/g,e.search).replace(/{hash}/g,e.hash).replace(/{id}/g,t.id)},v=(t,e)=>{if(r(e))return t.dom.isEmpty(t.getBody());{const r=s.trim(e);if(""===r)return!0;{const e=(new DOMParser).parseFromString(r,"text/html");return t.dom.isEmpty(e)}}},f=t=>{var e;const r=parseInt(null!==(e=a.getItem(m(t)+"time"))&&void 0!==e?e:"0",10)||0;return!((new Date).getTime()-r>d(t)&&(p(t,!1),1))},p=(t,e)=>{const r=m(t);a.removeItem(r+"draft"),a.removeItem(r+"time"),!1!==e&&(t=>{t.dispatch("RemoveDraft")})(t)},g=t=>{const e=m(t);!v(t)&&t.isDirty()&&(a.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),a.setItem(e+"time",(new Date).getTime().toString()),(t=>{t.dispatch("StoreDraft")})(t))},y=t=>{var e;const r=m(t);f(t)&&(t.setContent(null!==(e=a.getItem(r+"draft"))&&void 0!==e?e:"",{format:"raw"}),(t=>{t.dispatch("RestoreDraft")})(t))};var D=tinymce.util.Tools.resolve("tinymce.EditorManager");const h=t=>e=>{e.setEnabled(f(t));const r=()=>e.setEnabled(f(t));return t.on("StoreDraft RestoreDraft RemoveDraft",r),()=>t.off("StoreDraft RestoreDraft RemoveDraft",r)};t.add("autosave",(t=>((t=>{const r=t.options.register,o=t=>{const r=e(t);return r?{value:n(t),valid:r}:{valid:!1,message:"Must be a string."}};r("autosave_ask_before_unload",{processor:"boolean",default:!0}),r("autosave_prefix",{processor:"string",default:"tinymce-autosave-{path}{query}{hash}-{id}-"}),r("autosave_restore_when_empty",{processor:"boolean",default:!1}),r("autosave_interval",{processor:o,default:"30s"}),r("autosave_retention",{processor:o,default:"20m"})})(t),(t=>{t.editorManager.on("BeforeUnload",(t=>{let e;s.each(D.get(),(t=>{t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&u(t)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))})),e&&(t.preventDefault(),t.returnValue=e)}))})(t),(t=>{(t=>{const e=c(t);o.setEditorInterval(t,(()=>{g(t)}),e)})(t);const e=()=>{(t=>{t.undoManager.transact((()=>{y(t),p(t)})),t.focus()})(t)};t.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)}),t.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)})})(t),t.on("init",(()=>{l(t)&&t.dom.isEmpty(t.getBody())&&y(t)})),(t=>({hasDraft:()=>f(t),storeDraft:()=>g(t),restoreDraft:()=>y(t),removeDraft:e=>p(t,e),isEmpty:e=>v(t,e)}))(t))))}();

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("code",(e=>((e=>{e.addCommand("mceCodeEditor",(()=>{(e=>{const o=(e=>e.getContent({source_view:!0}))(e);e.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:o},onSubmit:o=>{((e,o)=>{e.focus(),e.undoManager.transact((()=>{e.setContent(o)})),e.selection.setCursorLocation(),e.nodeChanged()})(e,o.getData().code),o.close()}})})(e)}))})(e),(e=>{const o=()=>e.execCommand("mceCodeEditor");e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:o}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:o})})(e),{})))}();

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>e=>typeof e===t,o=t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(o=r=t,(n=String).prototype.isPrototypeOf(o)||(null===(i=r.constructor)||void 0===i?void 0:i.name)===n.name)?"string":e;var o,r,n,i})(t),r=e("boolean"),n=t=>!(t=>null==t)(t),i=e("function"),s=e("number"),l=(!1,()=>false);class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return n(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=(t,e)=>{for(let o=0,r=t.length;o<r;o++)e(t[o],o)},c=t=>{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},d=c,h=(t,e)=>{const o=t.dom;if(1!==o.nodeType)return!1;{const t=o;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}};"undefined"!=typeof window?window:Function("return this;")();const m=t=>e=>(t=>t.dom.nodeType)(e)===t,g=m(1),f=m(3),v=m(9),p=m(11),y=(t,e)=>{t.dom.removeAttribute(e)},w=i(Element.prototype.attachShadow)&&i(Node.prototype.getRootNode)?t=>d(t.dom.getRootNode()):t=>v(t)?t:d(t.dom.ownerDocument),N=t=>d(t.dom.host),b=t=>{const e=f(t)?t.dom.parentNode:t.dom;if(null==e||null===e.ownerDocument)return!1;const o=e.ownerDocument;return(t=>{const e=w(t);return p(o=e)&&n(o.dom.host)?a.some(e):a.none();var o})(d(e)).fold((()=>o.body.contains(e)),(r=b,i=N,t=>r(i(t))));var r,i},S=t=>"rtl"===((t,e)=>{const o=t.dom,r=window.getComputedStyle(o).getPropertyValue(e);return""!==r||b(t)?r:((t,e)=>(t=>void 0!==t.style&&i(t.style.getPropertyValue))(t)?t.style.getPropertyValue(e):"")(o,e)})(t,"direction")?"rtl":"ltr",A=(t,e)=>((t,o)=>((t,e)=>{const o=[];for(let r=0,n=t.length;r<n;r++){const n=t[r];e(n,r)&&o.push(n)}return o})(((t,e)=>{const o=t.length,r=new Array(o);for(let n=0;n<o;n++){const o=t[n];r[n]=e(o,n)}return r})(t.dom.childNodes,d),(t=>h(t,e))))(t),T=("li",t=>g(t)&&"li"===t.dom.nodeName.toLowerCase());const C=(t,e)=>{const n=t.selection.getSelectedBlocks();n.length>0&&(u(n,(t=>{const n=d(t),c=T(n),m=((t,e)=>{return(e?(o=t,r="ol,ul",((t,e,o)=>{let n=t.dom;const s=i(o)?o:l;for(;n.parentNode;){n=n.parentNode;const t=d(n);if(h(t,r))return a.some(t);if(s(t))break}return a.none()})(o,0,n)):a.some(t)).getOr(t);var o,r,n})(n,c);var f;(f=m,(t=>a.from(t.dom.parentNode).map(d))(f).filter(g)).each((t=>{if(S(t)!==e?((t,e,n)=>{((t,e,n)=>{if(!(o(n)||r(n)||s(n)))throw console.error("Invalid call to Attribute.set. Key ",e,":: Value ",n,":: Element ",t),new Error("Attribute value was not simple");t.setAttribute(e,n+"")})(t.dom,e,n)})(m,"dir",e):S(m)!==e&&y(m,"dir"),c){const t=A(m,"li[dir]");u(t,(t=>y(t,"dir")))}}))})),t.nodeChanged())},D=(t,e)=>o=>{const r=t=>{const r=d(t.element);o.setActive(S(r)===e)};return t.on("NodeChange",r),()=>t.off("NodeChange",r)};t.add("directionality",(t=>{(t=>{t.addCommand("mceDirectionLTR",(()=>{C(t,"ltr")})),t.addCommand("mceDirectionRTL",(()=>{C(t,"rtl")}))})(t),(t=>{t.ui.registry.addToggleButton("ltr",{tooltip:"Left to right",icon:"ltr",onAction:()=>t.execCommand("mceDirectionLTR"),onSetup:D(t,"ltr")}),t.ui.registry.addToggleButton("rtl",{tooltip:"Right to left",icon:"rtl",onAction:()=>t.execCommand("mceDirectionRTL"),onSetup:D(t,"rtl")})})(t)}))}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(s=r=e,(o=String).prototype.isPrototypeOf(s)||(null===(n=r.constructor)||void 0===n?void 0:n.name)===o.name)?"string":t;var s,r,o,n})(t)===e,s=t("string"),r=t("object"),o=t("array"),n=("function",e=>"function"==typeof e);var c=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.EditorManager"),l=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Tools");const p=e=>t=>t.options.get(e),u=p("importcss_merge_classes"),m=p("importcss_exclusive"),f=p("importcss_selector_converter"),y=p("importcss_selector_filter"),d=p("importcss_groups"),h=p("importcss_append"),_=p("importcss_file_filter"),g=p("skin"),v=p("skin_url"),b=Array.prototype.push,x=/^\.(?:ephox|tiny-pageembed|mce)(?:[.-]+\w+)+$/,T=e=>s(e)?t=>-1!==t.indexOf(e):e instanceof RegExp?t=>e.test(t):e,S=(e,t)=>{let s={};const r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(!r)return;const o=r[1],n=r[2].substr(1).split(".").join(" "),c=a.makeMap("a,img");return r[1]?(s={title:t},e.schema.getTextBlockElements()[o]?s.block=o:e.schema.getBlockElements()[o]||c[o.toLowerCase()]?s.selector=o:s.inline=o):r[2]&&(s={inline:"span",title:t.substr(1),classes:n}),u(e)?s.classes=n:s.attributes={class:n},s},k=(e,t)=>null===t||m(e),w=e=>{e.on("init",(()=>{const t=(()=>{const e=[],t=[],s={};return{addItemToGroup:(e,r)=>{s[e]?s[e].push(r):(t.push(e),s[e]=[r])},addItem:t=>{e.push(t)},toFormats:()=>{return(r=t,n=e=>{const t=s[e];return 0===t.length?[]:[{title:e,items:t}]},(e=>{const t=[];for(let s=0,r=e.length;s<r;++s){if(!o(e[s]))throw new Error("Arr.flatten item "+s+" was not an array, input: "+e);b.apply(t,e[s])}return t})(((e,t)=>{const s=e.length,r=new Array(s);for(let o=0;o<s;o++){const s=e[o];r[o]=t(s,o)}return r})(r,n))).concat(e);var r,n}}})(),r={},n=T(y(e)),p=(e=>a.map(e,(e=>a.extend({},e,{original:e,selectors:{},filter:T(e.filter)}))))(d(e)),u=(t,s)=>{if(((e,t,s,r)=>!(k(e,s)?t in r:t in s.selectors))(e,t,s,r)){((e,t,s,r)=>{k(e,s)?r[t]=!0:s.selectors[t]=!0})(e,t,s,r);const o=((e,t,s,r)=>{let o;const n=f(e);return o=r&&r.selector_converter?r.selector_converter:n||(()=>S(e,s)),o.call(t,s,r)})(e,e.plugins.importcss,t,s);if(o){const t=o.name||c.DOM.uniqueId();return e.formatter.register(t,o),{title:o.title,format:t}}}return null};a.each(((e,t,r)=>{const o=[],n={},c=(t,n)=>{let p,u=t.href;if(u=(e=>{const t=l.cacheSuffix;return s(e)&&(e=e.replace("?"+t,"").replace("&"+t,"")),e})(u),u&&(!r||r(u,n))&&!((e,t)=>{const s=g(e);if(s){const r=v(e),o=r?e.documentBaseURI.toAbsolute(r):i.baseURL+"/skins/ui/"+s,n=i.baseURL+"/skins/content/";return t===o+"/content"+(e.inline?".inline":"")+".min.css"||-1!==t.indexOf(n)}return!1})(e,u)){a.each(t.imports,(e=>{c(e,!0)}));try{p=t.cssRules||t.rules}catch(e){}a.each(p,(e=>{e.styleSheet?c(e.styleSheet,!0):e.selectorText&&a.each(e.selectorText.split(","),(e=>{o.push(a.trim(e))}))}))}};a.each(e.contentCSS,(e=>{n[e]=!0})),r||(r=(e,t)=>t||n[e]);try{a.each(t.styleSheets,(e=>{c(e)}))}catch(e){}return o})(e,e.getDoc(),T(_(e))),(e=>{if(!x.test(e)&&(!n||n(e))){const s=((e,t)=>a.grep(e,(e=>!e.filter||e.filter(t))))(p,e);if(s.length>0)a.each(s,(s=>{const r=u(e,s);r&&t.addItemToGroup(s.title,r)}));else{const s=u(e,null);s&&t.addItem(s)}}}));const m=t.toFormats();e.dispatch("addStyleModifications",{items:m,replace:!h(e)})}))};e.add("importcss",(e=>((e=>{const t=e.options.register,o=e=>s(e)||n(e)||r(e);t("importcss_merge_classes",{processor:"boolean",default:!0}),t("importcss_exclusive",{processor:"boolean",default:!0}),t("importcss_selector_converter",{processor:"function"}),t("importcss_selector_filter",{processor:o}),t("importcss_file_filter",{processor:o}),t("importcss_groups",{processor:"object[]"}),t("importcss_append",{processor:"boolean",default:!1})})(e),w(e),(e=>({convertSelectorToFormat:t=>S(e,t)}))(e))))}();

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),a=t("insertdatetime_dateformat"),r=t("insertdatetime_timeformat"),n=t("insertdatetime_formats"),s=t("insertdatetime_element"),i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),o="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),l="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),m="January February March April May June July August September October November December".split(" "),c=(e,t)=>{if((e=""+e).length<t)for(let a=0;a<t-e.length;a++)e="0"+e;return e},d=(e,t,a=new Date)=>(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+a.getFullYear())).replace("%y",""+a.getYear())).replace("%m",c(a.getMonth()+1,2))).replace("%d",c(a.getDate(),2))).replace("%H",""+c(a.getHours(),2))).replace("%M",""+c(a.getMinutes(),2))).replace("%S",""+c(a.getSeconds(),2))).replace("%I",""+((a.getHours()+11)%12+1))).replace("%p",a.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(m[a.getMonth()]))).replace("%b",""+e.translate(l[a.getMonth()]))).replace("%A",""+e.translate(o[a.getDay()]))).replace("%a",""+e.translate(i[a.getDay()]))).replace("%%","%"),u=(e,t)=>{if(s(e)){const a=d(e,t);let r;r=/%[HMSIp]/.test(t)?d(e,"%Y-%m-%dT%H:%M"):d(e,"%Y-%m-%d");const n=e.dom.getParent(e.selection.getStart(),"time");n?((e,t,a,r)=>{const n=e.dom.create("time",{datetime:a},r);e.dom.replace(n,t),e.selection.select(n,!0),e.selection.collapse(!1)})(e,n,r,a):e.insertContent('<time datetime="'+r+'">'+a+"</time>")}else e.insertContent(d(e,t))};var p=tinymce.util.Tools.resolve("tinymce.util.Tools");e.add("insertdatetime",(e=>{(e=>{const t=e.options.register;t("insertdatetime_dateformat",{processor:"string",default:e.translate("%Y-%m-%d")}),t("insertdatetime_timeformat",{processor:"string",default:e.translate("%H:%M:%S")}),t("insertdatetime_formats",{processor:"string[]",default:["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"]}),t("insertdatetime_element",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mceInsertDate",((t,r)=>{u(e,null!=r?r:a(e))})),e.addCommand("mceInsertTime",((t,a)=>{u(e,null!=a?a:r(e))}))})(e),(e=>{const t=n(e),a=(e=>{let t=e;return{get:()=>t,set:e=>{t=e}}})((e=>{const t=n(e);return t.length>0?t[0]:r(e)})(e)),s=t=>e.execCommand("mceInsertDate",!1,t);e.ui.registry.addSplitButton("insertdatetime",{icon:"insert-time",tooltip:"Insert date/time",select:e=>e===a.get(),fetch:a=>{a(p.map(t,(t=>({type:"choiceitem",text:d(e,t),value:t}))))},onAction:e=>{s(a.get())},onItemAction:(e,t)=>{a.set(t),s(t)}});const i=e=>()=>{a.set(e),s(e)};e.ui.registry.addNestedMenuItem("insertdatetime",{icon:"insert-time",text:"Date/time",getSubmenuItems:()=>p.map(t,(t=>({type:"menuitem",text:d(e,t),onAction:i(t)})))})})(e)}))}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=n=>e=>typeof e===n,a=e("boolean"),o=e("number"),t=n=>e=>e.options.get(n),i=t("nonbreaking_force_tab"),r=t("nonbreaking_wrap"),s=(n,e)=>{let a="";for(let o=0;o<e;o++)a+=n;return a},c=(n,e)=>{const a=r(n)||n.plugins.visualchars?`<span class="${(n=>!!n.plugins.visualchars&&n.plugins.visualchars.isEnabled())(n)?"mce-nbsp-wrap mce-nbsp":"mce-nbsp-wrap"}" contenteditable="false">${s("&nbsp;",e)}</span>`:s("&nbsp;",e);n.undoManager.transact((()=>n.insertContent(a)))};var l=tinymce.util.Tools.resolve("tinymce.util.VK");n.add("nonbreaking",(n=>{(n=>{const e=n.options.register;e("nonbreaking_force_tab",{processor:n=>a(n)?{value:n?3:0,valid:!0}:o(n)?{value:n,valid:!0}:{valid:!1,message:"Must be a boolean or number."},default:!1}),e("nonbreaking_wrap",{processor:"boolean",default:!0})})(n),(n=>{n.addCommand("mceNonBreaking",(()=>{c(n,1)}))})(n),(n=>{const e=()=>n.execCommand("mceNonBreaking");n.ui.registry.addButton("nonbreaking",{icon:"non-breaking",tooltip:"Nonbreaking space",onAction:e}),n.ui.registry.addMenuItem("nonbreaking",{icon:"non-breaking",text:"Nonbreaking space",onAction:e})})(n),(n=>{const e=i(n);e>0&&n.on("keydown",(a=>{if(a.keyCode===l.TAB&&!a.isDefaultPrevented()){if(a.shiftKey)return;a.preventDefault(),a.stopImmediatePropagation(),c(n,e)}}))})(n)}))}();

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.Env");const t=e=>a=>a.options.get(e),r=t("pagebreak_separator"),n=t("pagebreak_split_block"),o="mce-pagebreak",s=e=>{const t=`<img src="${a.transparentSrc}" class="mce-pagebreak" data-mce-resize="false" data-mce-placeholder />`;return e?`<p>${t}</p>`:t};e.add("pagebreak",(e=>{(e=>{const a=e.options.register;a("pagebreak_separator",{processor:"string",default:"\x3c!-- pagebreak --\x3e"}),a("pagebreak_split_block",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mcePageBreak",(()=>{e.insertContent(s(n(e)))}))})(e),(e=>{const a=()=>e.execCommand("mcePageBreak");e.ui.registry.addButton("pagebreak",{icon:"page-break",tooltip:"Page break",onAction:a}),e.ui.registry.addMenuItem("pagebreak",{text:"Page break",icon:"page-break",onAction:a})})(e),(e=>{const a=r(e),t=()=>n(e),c=new RegExp(a.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,(e=>"\\"+e)),"gi");e.on("BeforeSetContent",(e=>{e.content=e.content.replace(c,s(t()))})),e.on("PreInit",(()=>{e.serializer.addNodeFilter("img",(r=>{let n,s,c=r.length;for(;c--;)if(n=r[c],s=n.attr("class"),s&&-1!==s.indexOf(o)){const r=n.parent;if(r&&e.schema.getBlockElements()[r.name]&&t()){r.type=3,r.value=a,r.raw=!0,n.remove();continue}n.type=3,n.value=a,n.raw=!0}}))}))})(e),(e=>{e.on("ResolveName",(a=>{"IMG"===a.target.nodeName&&e.dom.hasClass(a.target,o)&&(a.name="pagebreak")}))})(e)}))}();

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=e=>t=>t.options.get(e),i=n("content_style"),s=n("content_css_cors"),c=n("body_class"),r=n("body_id");e.add("preview",(e=>{(e=>{e.addCommand("mcePreview",(()=>{(e=>{const n=(e=>{var n;let l="";const a=e.dom.encode,d=null!==(n=i(e))&&void 0!==n?n:"";l+='<base href="'+a(e.documentBaseURI.getURI())+'">';const m=s(e)?' crossorigin="anonymous"':"";o.each(e.contentCSS,(t=>{l+='<link type="text/css" rel="stylesheet" href="'+a(e.documentBaseURI.toAbsolute(t))+'"'+m+">"})),d&&(l+='<style type="text/css">'+d+"</style>");const y=r(e),u=c(e),v='<script>document.addEventListener && document.addEventListener("click", function(e) {for (var elm = e.target; elm; elm = elm.parentNode) {if (elm.nodeName === "A" && !('+(t.os.isMacOS()||t.os.isiOS()?"e.metaKey":"e.ctrlKey && !e.altKey")+")) {e.preventDefault();}}}, false);<\/script> ",p=e.getBody().dir,w=p?' dir="'+a(p)+'"':"";return"<!DOCTYPE html><html><head>"+l+'</head><body id="'+a(y)+'" class="mce-content-body '+a(u)+'"'+w+">"+e.getContent()+v+"</body></html>"})(e);e.windowManager.open({title:"Preview",size:"large",body:{type:"panel",items:[{name:"preview",type:"iframe",sandboxed:!0,transparent:!1}]},buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}],initialData:{preview:n}}).focus("close")})(e)}))})(e),(e=>{const t=()=>e.execCommand("mcePreview");e.ui.registry.addButton("preview",{icon:"preview",tooltip:"Preview",onAction:t}),e.ui.registry.addMenuItem("preview",{icon:"preview",text:"Preview",onAction:t})})(e)}))}();

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const n=("function",e=>"function"==typeof e);var o=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),t=tinymce.util.Tools.resolve("tinymce.util.Tools");const a=e=>n=>n.options.get(e),c=a("save_enablewhendirty"),i=a("save_onsavecallback"),s=a("save_oncancelcallback"),r=(e,n)=>{e.notificationManager.open({text:n,type:"error"})},l=e=>n=>{const o=()=>{n.setEnabled(!c(e)||e.isDirty())};return o(),e.on("NodeChange dirty",o),()=>e.off("NodeChange dirty",o)};e.add("save",(e=>{(e=>{const n=e.options.register;n("save_enablewhendirty",{processor:"boolean",default:!0}),n("save_onsavecallback",{processor:"function"}),n("save_oncancelcallback",{processor:"function"})})(e),(e=>{e.ui.registry.addButton("save",{icon:"save",tooltip:"Save",enabled:!1,onAction:()=>e.execCommand("mceSave"),onSetup:l(e)}),e.ui.registry.addButton("cancel",{icon:"cancel",tooltip:"Cancel",enabled:!1,onAction:()=>e.execCommand("mceCancel"),onSetup:l(e)}),e.addShortcut("Meta+S","","mceSave")})(e),(e=>{e.addCommand("mceSave",(()=>{(e=>{const t=o.DOM.getParent(e.id,"form");if(c(e)&&!e.isDirty())return;e.save();const a=i(e);if(n(a))return a.call(e,e),void e.nodeChanged();t?(e.setDirty(!1),t.onsubmit&&!t.onsubmit()||("function"==typeof t.submit?t.submit():r(e,"Error: Form submit field collision.")),e.nodeChanged()):r(e,"Error: No form element found.")})(e)})),e.addCommand("mceCancel",(()=>{(e=>{const o=t.trim(e.startContent),a=s(e);n(a)?a.call(e,e):e.resetContent(o)})(e)}))})(e)}))}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
/**
* TinyMCE version 6.4.1 (2023-03-29)
*/
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const s=(t,s,o)=>{t.dom.toggleClass(t.getBody(),"mce-visualblocks"),o.set(!o.get()),((t,s)=>{t.dispatch("VisualBlocks",{state:s})})(t,o.get())},o=("visualblocks_default_state",t=>t.options.get("visualblocks_default_state"));const e=(t,s)=>o=>{o.setActive(s.get());const e=t=>o.setActive(t.state);return t.on("VisualBlocks",e),()=>t.off("VisualBlocks",e)};t.add("visualblocks",((t,l)=>{(t=>{(0,t.options.register)("visualblocks_default_state",{processor:"boolean",default:!1})})(t);const a=(t=>{let s=!1;return{get:()=>s,set:t=>{s=t}}})();((t,o,e)=>{t.addCommand("mceVisualBlocks",(()=>{s(t,0,e)}))})(t,0,a),((t,s)=>{const o=()=>t.execCommand("mceVisualBlocks");t.ui.registry.addToggleButton("visualblocks",{icon:"visualblocks",tooltip:"Show blocks",onAction:o,onSetup:e(t,s)}),t.ui.registry.addToggleMenuItem("visualblocks",{text:"Show blocks",icon:"visualblocks",onAction:o,onSetup:e(t,s)})})(t,a),((t,e,l)=>{t.on("PreviewFormats AfterPreviewFormats",(s=>{l.get()&&t.dom.toggleClass(t.getBody(),"mce-visualblocks","afterpreviewformats"===s.type)})),t.on("init",(()=>{o(t)&&s(t,0,l)}))})(t,0,a)}))}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
body{background-color:#222f3e;color:#fff;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem}

View File

@ -0,0 +1 @@
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}

View File

@ -0,0 +1 @@
@media screen{html{background:#f4f4f4;min-height:100%}}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif}@media screen{body{background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.15);box-sizing:border-box;margin:1rem auto 0;max-width:820px;min-height:calc(100vh - 1rem);padding:4rem 6rem 6rem 6rem}}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure figcaption{color:#999;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}

View File

@ -0,0 +1 @@
body{background-color:#2f3742;color:#dfe0e4;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}a{color:#4099ff}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#6d737b}figure{display:table;margin:1rem auto}figure figcaption{color:#8a8f97;display:block;margin-top:.25rem;text-align:center}hr{border-color:#6d737b;border-style:solid;border-width:1px 0 0 0}code{background-color:#6d737b;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #6d737b;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #6d737b;margin-right:1.5rem;padding-right:1rem}

View File

@ -0,0 +1 @@
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}

View File

@ -0,0 +1 @@
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif;line-height:1.4;margin:1rem auto;max-width:900px}table{border-collapse:collapse}table:not([cellpadding]) td,table:not([cellpadding]) th{padding:.4rem}table[border]:not([border="0"]):not([style*=border-width]) td,table[border]:not([border="0"]):not([style*=border-width]) th{border-width:1px}table[border]:not([border="0"]):not([style*=border-style]) td,table[border]:not([border="0"]):not([style*=border-style]) th{border-style:solid}table[border]:not([border="0"]):not([style*=border-color]) td,table[border]:not([border="0"]):not([style*=border-color]) th{border-color:#ccc}figure{display:table;margin:1rem auto}figure figcaption{color:#999;display:block;margin-top:.25rem;text-align:center}hr{border-color:#ccc;border-style:solid;border-width:1px 0 0 0}code{background-color:#e8e8e8;border-radius:3px;padding:.1rem .2rem}.mce-content-body:not([dir=rtl]) blockquote{border-left:2px solid #ccc;margin-left:1.5rem;padding-left:1rem}.mce-content-body[dir=rtl] blockquote{border-right:2px solid #ccc;margin-right:1.5rem;padding-right:1rem}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}

File diff suppressed because one or more lines are too long

3185
tinymce/js/tinymce/tinymce.d.ts vendored Normal file

File diff suppressed because it is too large Load Diff

4
tinymce/js/tinymce/tinymce.min.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
tinymce/tinymce_6.4.1.zip Normal file

Binary file not shown.