Dashboard weiter ausgebaut

This commit is contained in:
aschwarz
2023-03-23 14:30:30 +01:00
parent 8ab6cd63e9
commit ec8b611c93
54 changed files with 2132 additions and 831 deletions

View File

@ -1,52 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<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="" />
<title>404 Error - SB Admin</title>
<link href="css/styles.css" rel="stylesheet" />
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="layoutError">
<div id="layoutError_content">
<main>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="text-center mt-4">
<h1 class="display-1">401</h1>
<p class="lead">Unauthorized</p>
<p>Access to this resource is denied.</p>
<a href="index.html">
<i class="fas fa-arrow-left me-1"></i>
Return to Dashboard
</a>
</div>
</div>
</div>
</div>
</main>
</div>
<div id="layoutError_footer">
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid px-4">
<div class="d-flex align-items-center justify-content-between small">
<div class="text-muted">Copyright &copy; Your Website 2023</div>
<div>
<a href="#">Privacy Policy</a>
&middot;
<a href="#">Terms &amp; Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
</body>
</html>

View File

@ -1,52 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<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="" />
<title>404 Error - SB Admin</title>
<link href="css/styles.css" rel="stylesheet" />
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="layoutError">
<div id="layoutError_content">
<main>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="text-center mt-4">
<h1 class="display-1">401</h1>
<p class="lead">Unauthorized</p>
<p>Access to this resource is denied.</p>
<a href="index.html">
<i class="fas fa-arrow-left me-1"></i>
Return to Dashboard
</a>
</div>
</div>
</div>
</div>
</main>
</div>
<div id="layoutError_footer">
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid px-4">
<div class="d-flex align-items-center justify-content-between small">
<div class="text-muted">Copyright &copy; Your Website 2023</div>
<div>
<a href="#">Privacy Policy</a>
&middot;
<a href="#">Terms &amp; Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
</body>
</html>

View File

@ -1,51 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<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="" />
<title>404 Error - SB Admin</title>
<link href="css/styles.css" rel="stylesheet" />
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="layoutError">
<div id="layoutError_content">
<main>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="text-center mt-4">
<img class="mb-4 img-error" src="assets/img/error-404-monochrome.svg" />
<p class="lead">This requested URL was not found on this server.</p>
<a href="index.html">
<i class="fas fa-arrow-left me-1"></i>
Return to Dashboard
</a>
</div>
</div>
</div>
</div>
</main>
</div>
<div id="layoutError_footer">
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid px-4">
<div class="d-flex align-items-center justify-content-between small">
<div class="text-muted">Copyright &copy; Your Website 2023</div>
<div>
<a href="#">Privacy Policy</a>
&middot;
<a href="#">Terms &amp; Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
</body>
</html>

View File

@ -1,51 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<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="" />
<title>404 Error - SB Admin</title>
<link href="css/styles.css" rel="stylesheet" />
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="layoutError">
<div id="layoutError_content">
<main>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="text-center mt-4">
<img class="mb-4 img-error" src="assets/img/error-404-monochrome.svg" />
<p class="lead">This requested URL was not found on this server.</p>
<a href="index.html">
<i class="fas fa-arrow-left me-1"></i>
Return to Dashboard
</a>
</div>
</div>
</div>
</div>
</main>
</div>
<div id="layoutError_footer">
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid px-4">
<div class="d-flex align-items-center justify-content-between small">
<div class="text-muted">Copyright &copy; Your Website 2023</div>
<div>
<a href="#">Privacy Policy</a>
&middot;
<a href="#">Terms &amp; Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
</body>
</html>

View File

@ -1,51 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<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="" />
<title>404 Error - SB Admin</title>
<link href="css/styles.css" rel="stylesheet" />
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="layoutError">
<div id="layoutError_content">
<main>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="text-center mt-4">
<h1 class="display-1">500</h1>
<p class="lead">Internal Server Error</p>
<a href="index.html">
<i class="fas fa-arrow-left me-1"></i>
Return to Dashboard
</a>
</div>
</div>
</div>
</div>
</main>
</div>
<div id="layoutError_footer">
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid px-4">
<div class="d-flex align-items-center justify-content-between small">
<div class="text-muted">Copyright &copy; Your Website 2023</div>
<div>
<a href="#">Privacy Policy</a>
&middot;
<a href="#">Terms &amp; Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
</body>
</html>

View File

@ -1,51 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<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="" />
<title>404 Error - SB Admin</title>
<link href="css/styles.css" rel="stylesheet" />
<script src="https://use.fontawesome.com/releases/v6.3.0/js/all.js" crossorigin="anonymous"></script>
</head>
<body>
<div id="layoutError">
<div id="layoutError_content">
<main>
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6">
<div class="text-center mt-4">
<h1 class="display-1">500</h1>
<p class="lead">Internal Server Error</p>
<a href="index.html">
<i class="fas fa-arrow-left me-1"></i>
Return to Dashboard
</a>
</div>
</div>
</div>
</div>
</main>
</div>
<div id="layoutError_footer">
<footer class="py-4 bg-light mt-auto">
<div class="container-fluid px-4">
<div class="d-flex align-items-center justify-content-between small">
<div class="text-muted">Copyright &copy; Your Website 2023</div>
<div>
<a href="#">Privacy Policy</a>
&middot;
<a href="#">Terms &amp; Conditions</a>
</div>
</div>
</div>
</footer>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
<script src="js/scripts.js"></script>
</body>
</html>

View File

@ -1,54 +0,0 @@
// Set new default font family and font color to mimic Bootstrap's default styling
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
Chart.defaults.global.defaultFontColor = '#292b2c';
// Area Chart Example
var ctx = document.getElementById("myAreaChart");
var myLineChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Mar 1", "Mar 2", "Mar 3", "Mar 4", "Mar 5", "Mar 6", "Mar 7", "Mar 8", "Mar 9", "Mar 10", "Mar 11", "Mar 12", "Mar 13"],
datasets: [{
label: "Sessions",
lineTension: 0.3,
backgroundColor: "rgba(2,117,216,0.2)",
borderColor: "rgba(2,117,216,1)",
pointRadius: 5,
pointBackgroundColor: "rgba(2,117,216,1)",
pointBorderColor: "rgba(255,255,255,0.8)",
pointHoverRadius: 5,
pointHoverBackgroundColor: "rgba(2,117,216,1)",
pointHitRadius: 50,
pointBorderWidth: 2,
data: [10000, 30162, 26263, 18394, 18287, 28682, 31274, 33259, 25849, 24159, 32651, 31984, 38451],
}],
},
options: {
scales: {
xAxes: [{
time: {
unit: 'date'
},
gridLines: {
display: false
},
ticks: {
maxTicksLimit: 7
}
}],
yAxes: [{
ticks: {
min: 0,
max: 40000,
maxTicksLimit: 5
},
gridLines: {
color: "rgba(0, 0, 0, .125)",
}
}],
},
legend: {
display: false
}
}
});

View File

@ -1,46 +0,0 @@
// Set new default font family and font color to mimic Bootstrap's default styling
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
Chart.defaults.global.defaultFontColor = '#292b2c';
// Bar Chart Example
var ctx = document.getElementById("myBarChart");
var myLineChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ["January", "February", "March", "April", "May", "June"],
datasets: [{
label: "Revenue",
backgroundColor: "rgba(2,117,216,1)",
borderColor: "rgba(2,117,216,1)",
data: [4215, 5312, 6251, 7841, 9821, 14984],
}],
},
options: {
scales: {
xAxes: [{
time: {
unit: 'month'
},
gridLines: {
display: false
},
ticks: {
maxTicksLimit: 6
}
}],
yAxes: [{
ticks: {
min: 0,
max: 15000,
maxTicksLimit: 5
},
gridLines: {
display: true
}
}],
},
legend: {
display: false
}
}
});

View File

@ -1,16 +0,0 @@
// Set new default font family and font color to mimic Bootstrap's default styling
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
Chart.defaults.global.defaultFontColor = '#292b2c';
// Pie Chart Example
var ctx = document.getElementById("myPieChart");
var myPieChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ["Blue", "Red", "Yellow", "Green"],
datasets: [{
data: [12.21, 15.58, 11.25, 8.32],
backgroundColor: ['#007bff', '#dc3545', '#ffc107', '#28a745'],
}],
},
});

View File

@ -1,4 +0,0 @@
// Call the dataTables jQuery plugin
$(document).ready(function() {
$('#dataTable').DataTable();
});

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@ -1,54 +0,0 @@
// Set new default font family and font color to mimic Bootstrap's default styling
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
Chart.defaults.global.defaultFontColor = '#292b2c';
// Area Chart Example
var ctx = document.getElementById("myAreaChart");
var myLineChart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Mar 1", "Mar 2", "Mar 3", "Mar 4", "Mar 5", "Mar 6", "Mar 7", "Mar 8", "Mar 9", "Mar 10", "Mar 11", "Mar 12", "Mar 13"],
datasets: [{
label: "Sessions",
lineTension: 0.3,
backgroundColor: "rgba(2,117,216,0.2)",
borderColor: "rgba(2,117,216,1)",
pointRadius: 5,
pointBackgroundColor: "rgba(2,117,216,1)",
pointBorderColor: "rgba(255,255,255,0.8)",
pointHoverRadius: 5,
pointHoverBackgroundColor: "rgba(2,117,216,1)",
pointHitRadius: 50,
pointBorderWidth: 2,
data: [10000, 30162, 26263, 18394, 18287, 28682, 31274, 33259, 25849, 24159, 32651, 31984, 38451],
}],
},
options: {
scales: {
xAxes: [{
time: {
unit: 'date'
},
gridLines: {
display: false
},
ticks: {
maxTicksLimit: 7
}
}],
yAxes: [{
ticks: {
min: 0,
max: 40000,
maxTicksLimit: 5
},
gridLines: {
color: "rgba(0, 0, 0, .125)",
}
}],
},
legend: {
display: false
}
}
});

View File

@ -1,46 +0,0 @@
// Set new default font family and font color to mimic Bootstrap's default styling
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
Chart.defaults.global.defaultFontColor = '#292b2c';
// Bar Chart Example
var ctx = document.getElementById("myBarChart");
var myLineChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ["January", "February", "March", "April", "May", "June"],
datasets: [{
label: "Revenue",
backgroundColor: "rgba(2,117,216,1)",
borderColor: "rgba(2,117,216,1)",
data: [4215, 5312, 6251, 7841, 9821, 14984],
}],
},
options: {
scales: {
xAxes: [{
time: {
unit: 'month'
},
gridLines: {
display: false
},
ticks: {
maxTicksLimit: 6
}
}],
yAxes: [{
ticks: {
min: 0,
max: 15000,
maxTicksLimit: 5
},
gridLines: {
display: true
}
}],
},
legend: {
display: false
}
}
});

View File

@ -1,16 +0,0 @@
// Set new default font family and font color to mimic Bootstrap's default styling
Chart.defaults.global.defaultFontFamily = '-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif';
Chart.defaults.global.defaultFontColor = '#292b2c';
// Pie Chart Example
var ctx = document.getElementById("myPieChart");
var myPieChart = new Chart(ctx, {
type: 'pie',
data: {
labels: ["Blue", "Red", "Yellow", "Green"],
datasets: [{
data: [12.21, 15.58, 11.25, 8.32],
backgroundColor: ['#007bff', '#dc3545', '#ffc107', '#28a745'],
}],
},
});

View File

@ -1,4 +0,0 @@
// Call the dataTables jQuery plugin
$(document).ready(function() {
$('#dataTable').DataTable();
});

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.0 KiB

82
dashboard/parameter.php Normal file
View File

@ -0,0 +1,82 @@
<?php
if(!isset($_SESSION)) { session_start(); }
include_once '../classes/TestProjektSmarty.class_subdir.php';
require_once("../config.inc.php");
$smarty = new SmartyAdmin();
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
require_once "../language/german.inc.php";
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
$query1 = "SELECT pid, beschreibung, wert
FROM jumi_parameter
ORDER BY sort ASC";
$result1 = $db->query($query1) or die("Cannot execute query1");
while ($row1 = $result1->fetch_array()) {
# Passwort f<>r die Praxisstellen wird verschl<68>sselt gespeichert
if(!isset($zaehler) or $zaehler == 1){
$zaehler = 0;
}else{
$zaehler = 1;
}
$row1['zaehler'] = $zaehler;
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if($action == 'save'){
$query2 = "SELECT pid
FROM jumi_parameter
ORDER BY pid ASC";
$result2 = $db->query( $query2)
or die ("Cannot execute query2");
while ($row2 = $result2->fetch_array()){
$pid = $row2['pid'];
$pid_value = $_POST[$pid];
$sql1 = $db->query( "UPDATE jumi_parameter
SET wert = '$pid_value'
WHERE pid = $pid
" );
}
if(!$sql1){
$error = TRUE;
$error_reason .= "Fehler beim Update [jumi_parameter]<br>";
}else{
$error = FALSE;
$smarty->assign('parameter_inserterr', "2");
echo "<meta http-equiv=\"refresh\" content=\"2; URL=".$_SERVER['PHP_SELF'] ."?\">";
}
if($error){
$smarty->assign('parameter_inserterr', "1");
$smarty->assign('parameter_reason', "$error_reason"); // Kein Mailversand
} // Ende IF : Insert hat geklappt
}
$smarty->assign('action', "$action");
$smarty->display("$template/dashboard/$templatename");
?>

157
dashboard/result_latest.php Normal file
View File

@ -0,0 +1,157 @@
<?php
## INDEX gegen DB
if (!isset($_SESSION)) {
session_start();
}
#$_SESSION['sessionid'] = session_id();
include_once '../classes/TestProjektSmarty.class_subdir.php';
#require_once("../config.inc.php");
require_once("../config/datenbankanbindung.php");
$smarty = new SmartyAdmin();
$templatename = substr(basename($_SERVER['PHP_SELF']), 0, -3) . "html";
require_once "../language/german.inc.php";
$action = $_GET['action'];
if ($action == '') {
$db = dbconnect();
if(isset($_GET['editumid']) and $_GET['editumid'] != ''){
# Aus externer Seite - survey_edit
$umid = $_GET['editumid'];
}else{
# Sonst Wert einer zuletzt angefangener Umfrage
$query_umid = $db->query("SELECT max(umid) umid
FROM jumi_umfragen
WHERE datum_von < now()
");
$row_umid = $query_umid->fetch_array();
$umid = $row_umid['umid'];
}
$query_umid_detail = $db->query("SELECT headline, date_format(datum_von, '%d.%m.%Y - %H:%i') datum_von, date_format(datum_bis, '%d.%m.%Y - %H:%i') datum_bis, freitext
FROM jumi_umfragen
WHERE umid=$umid
");
$row_umid_detail = $query_umid_detail->fetch_array();
$smarty->assign('result_headline', "$row_umid_detail[headline]");
$smarty->assign('result_datum_von', "$row_umid_detail[datum_von]");
$smarty->assign('result_datum_bis', "$row_umid_detail[datum_bis]");
# Anzahl abgeschlossene Umfragen
$query_fertige = $db->query("SELECT count(*) Anz_abgeschlossen
FROM jumi_umfragen_ende
WHERE umid =$umid
");
$row_fertige = $query_fertige->fetch_array();
$smarty->assign('result_anz_fertige', "$row_fertige[Anz_abgeschlossen]");
# Anzahl angefangener Teilnehmer
$query_angefangen = $db->query("SELECT count(distinct concat(ip,session))-$row_fertige[Anz_abgeschlossen] Anz_angefangen
FROM jumi_umfragen_ergebnisse
WHERE ufid in (select ufid from jumi_umfragen_fragen where umid =$umid)
");
$row_angefangen = $query_angefangen->fetch_array();
$smarty->assign('result_anz_angefangen', "$row_angefangen[Anz_angefangen]");
$query = "SELECT ufid, frage, multiple
FROM jumi_umfragen_fragen
WHERE umid = $umid";
$result = $db->query($query);
// Ergebnisse lesen und an den Client ausgeben
while ($row = $result->fetch_array()) {
$value2 = '';
unset($inner1);
# Wie viele User haben Frage 1 beantwortet
$result_anz_userfrage = $db->query("SELECT count(distinct concat(ip,session)) Anz
FROM jumi_umfragen_ergebnisse
WHERE ufid = $row[ufid]
");
$row_anz_userfrage = $result_anz_userfrage->fetch_array();
# Wie viele Antworten gibt es zur Frage: Das sind 100%
$result_anz_antworten = $db->query("SELECT count(ufid) Anz
FROM jumi_umfragen_ergebnisse
WHERE ufid = $row[ufid]
");
$row_anz_antworten = $result_anz_antworten->fetch_array();
$query2 = "SELECT uaid, antwort
FROM jumi_umfragen_antworten
WHERE ufid=$row[ufid]
ORDER BY userorder ASC, uaid ASC
";
$result2 = $db->query($query2) or die("Cannot execute query2");
$ln2 = 0;
while ($row2 = $result2->fetch_array()) {
# Wie viele haben Antwort auf aktuelle Frage gegeben
$result_cur_antw = $db->query("SELECT count(*) Anz
FROM jumi_umfragen_ergebnisse
WHERE uaid = $row2[uaid]");
$row_cur_antw = $result_cur_antw->fetch_array();
if($row_anz_antworten['Anz'] != '0'){
$prozent = round(100/$row_anz_antworten['Anz']*$row_cur_antw['Anz'],0);
}else{
$prozent = 0;
}
$inner1[$ln2]['prozent'] = $prozent;
$inner1[$ln2]['uaid'] = $row2['uaid'];
$inner1[$ln2]['antwort'] = $row2['antwort'];
$value2 = $inner1;
$ln2++;
}
if($row_anz_userfrage['Anz'] != 0){
$anz_userfrage = $row_anz_userfrage['Anz'];
}else{
$anz_userfrage = 0;
}
$row['inner'] = $value2;
$row['anz_userfrage'] = $anz_userfrage;
$row['anz_antworten_frage'] = $row_anz_antworten['Anz'];
$table_data[] = $row;
}
$smarty->assign('table_data', $table_data);
# echo"<pre>";
# print_r($table_data);
# echo"</pre>";
$query3 = "SELECT freitext
FROM jumi_umfragen_erg_freitext
WHERE umid = $umid
ORDER BY uefid desc";
$result3 = $db->query($query3);
// Ergebnisse lesen und an den Client ausgeben
while ($row3 = $result3->fetch_array()) {
$table_data3[] = $row3;
}
$smarty->assign('table_data3', $table_data3);
}
$smarty->assign('action', "$action");
$smarty->display("modern/admin/$templatename");
?>

226
dashboard/survey_edit.php Normal file
View File

@ -0,0 +1,226 @@
<?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();
require_once "../language/german.inc.php";
if (isset($_GET['action'])) {
$action = $_GET['action'];
} else {
$action = '';
}
if ($action == '') {
$query1 = "SELECT umid, date_format(datum_von, '%d.%m.%Y (%h:%i)') datum_von, date_format(datum_bis, '%d.%m.%Y (%h:%i)') datum_bis, headline
FROM jumi_umfragen
ORDER BY umid DESC";
$result1 = $db->query($query1) or die("Cannot execute query1a");
while ($row1 = $result1->fetch_array()) {
$table_data1[] = $row1;
}
$smarty->assign('table_data1', $table_data1);
}
if ($action == 'fragen') {
$umid = $_SESSION["umfrageerf_umid"];
# Focus/Session setzen
$result = $db->query("SELECT count(*) Anz FROM jumi_umfragen_fragen WHERE umid='$umid'");
$row = $result->fetch_array();
# Wenn man bei mehreren Fragen eine Frage löscht ist Anz nicht 0 und der Focus sitzt bei Antwort
if ($umid == '' or $_GET['tabufid'] == "neuefrage" or $row['Anz'] == '0') {
$smarty->assign('umfrageerf_focus', "frage");
unset($_SESSION["umfrageerf_ufid"]);
unset($_SESSION["umfrageerf_uaid"]);
} else {
$smarty->assign('umfrageerf_focus', "antwort");
}
if (isset($_POST['datumvon']) and $_POST['datumvon'] != '') {
$datumvon = $_POST['datumvon'];
$_SESSION["umfrageerf_value_datumvon"] = $datumvon;
} else {
if ($_SESSION["umfrageerf_value_datumvon"] == '') {
echo "<meta http-equiv=\"refresh\" content=\"3; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
}
$datumvon = $_SESSION["umfrageerf_value_datumvon"];
}
if (isset($_POST['zeitvon']) and $_POST['zeitvon'] != '') {
$zeitvon = $_POST['zeitvon'];
$_SESSION["umfrageerf_value_zeitvon"] = $zeitvon;
} else {
if ($_SESSION["umfrageerf_value_zeitvon"] == '') {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
}
$zeitvon = $_SESSION["umfrageerf_value_zeitvon"];
}
if (isset($_POST['datumbis']) and $_POST['datumbis'] != '') {
$datumbis = $_POST['datumbis'];
$_SESSION["umfrageerf_value_datumbis"] = $datumbis;
} else {
if ($_SESSION["umfrageerf_value_datumbis"] == '') {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
}
$datumbis = $_SESSION["umfrageerf_value_datumbis"];
}
if (isset($_POST['zeitbis']) and $_POST['zeitbis'] != '') {
$zeitbis = $_POST['zeitbis'];
$_SESSION["umfrageerf_value_zeitbis"] = $zeitbis;
} else {
if ($_SESSION["umfrageerf_value_zeitbis"] == '') {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
}
$zeitbis = $_SESSION["umfrageerf_value_zeitbis"];
}
if (isset($_POST['headline']) and trim($_POST['headline']) != '') {
$headline = trim($_POST['headline']);
$_SESSION["umfrageerf_value_headline"] = $headline;
} else {
if ($_SESSION["umfrageerf_value_headline"] == '') {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=1\">";
}
$headline = $_SESSION["umfrageerf_value_headline"];
}
if(!isset($_GET['erfassen'])){
if (isset($_POST['freitext']) and trim($_POST['freitext']) != '') {
$freitext = '1';
$_SESSION["umfrageerf_value_freitext"] = $freitext;
}else{
$freitext = '0';
$_SESSION["umfrageerf_value_freitext"] = $freitext;
}
}else{
$freitext = $_SESSION["umfrageerf_value_freitext"];
}
$datumvon_form = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $datumvon);
$datumbis_form = preg_replace('/^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/', '$3-$2-$1', $datumbis);
$datum_von = $datumvon_form . " " . $zeitvon . ":00";
$datum_bis = $datumbis_form . " " . $zeitbis . ":00";
function validateDate($date, $format = 'Y-m-d')
{
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
if (!validateDate($datumvon_form)) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2\">";
exit;
}
if (!validateDate($datumbis_form)) {
echo "<meta http-equiv=\"refresh\" content=\"0; URL=" . $_SERVER['PHP_SELF'] . "?error=2\">";
exit;
}
if(!isset($_GET['erfassen'])){
if ($umid == '') {
$datum = date("Y-m-d H:i:s");
$sql1 = $db->query("INSERT INTO jumi_umfragen ( datum_von
, datum_bis
, headline
, uid
, datum_erfasst
, freitext
)
VALUES
( '$datum_von'
, '$datum_bis'
, '$headline'
, '$uid'
, '$datum'
, '$freitext'
)
");
$umid = $db->insert_id;
$_SESSION["umfrageerf_umid"] = $umid;
}else{
$update = $db->query("UPDATE jumi_umfragen
SET datum_von ='$datum_von'
,datum_bis ='$datum_bis'
,headline = '$headline'
,freitext = '$freitext'
WHERE umid = $umid
");
}
}
if (isset($_GET['tabufid']) and $_GET['tabufid'] != '') {
if ($_GET['tabufid'] == "neuefrage") {
$_SESSION["umfrageerf_ufid"] = "";
} else {
$_SESSION["umfrageerf_ufid"] = $_GET['tabufid'];
}
}
$ufid = $_SESSION["umfrageerf_ufid"];
if ($ufid != '') {
$result_frage = $db->query("SELECT frage, multiple
FROM jumi_umfragen_fragen
WHERE ufid = $ufid");
$row_frage = $result_frage->fetch_array();
$smarty->assign('umfrageerf_value_frage', htmlspecialchars($row_frage['frage']));
$smarty->assign('umfrageerf_value_multiple', $row_frage['multiple']);
$smarty->assign('umfrageerf_value_ufid', $ufid);
}
# Gespeicherte Werte
if ($umid != '') {
$query1 = "SELECT ufid, frage
FROM jumi_umfragen_fragen
WHERE umid=$umid
ORDER BY ufid ASC";
$result1 = $db->query($query1) or die("Cannot execute query1a");
while ($row1 = $result1->fetch_array()) {
$table_data1[] = $row1;
}
}
$smarty->assign('table_data1', $table_data1);
if ($ufid != '') {
$smarty->assign('umfrageerf_gesp_werte_value_ufid2', "$ufid");
$query2 = "SELECT uaid, antwort
FROM jumi_umfragen_antworten
WHERE ufid=$ufid
ORDER BY userorder ASC, uaid ASC";
$result2 = $db->query($query2) or die("Cannot execute query2");
$anzahl = $result2->num_rows;
$smarty->assign('table_data2_anz', $anzahl);
while ($row2 = $result2->fetch_array()) {
$table_data2[] = $row2;
}
$smarty->assign('table_data2', $table_data2);
}
}
$smarty->assign('action', "$action");
$smarty->display("$template/dashboard/$templatename");
?>

View File

@ -27,6 +27,7 @@ if ($action == '') {
# }
#
# # -- Fehlermeldungen -- #
if($_GET['new'] == 1){
unset($_SESSION["umfrageerf_value_datumvon"]);
unset($_SESSION["umfrageerf_value_zeitvon"]);
@ -41,6 +42,31 @@ if ($action == '') {
# $_SESSION["umfrageerf_new"] = 1;
}else{
if($_GET['edit'] == 1){
$umid = $_GET['umid'];
$_SESSION["umfrageerf_umid"] = $umid;
$result_edit = $db->query("SELECT date_format(datum_von, '%d.%m.%Y') datum_von
, date_format(datum_von, '%H:%i') zeit_von
, date_format(datum_bis, '%d.%m.%Y') datum_bis
, date_format(datum_bis, '%H:%i') zeit_bis
, headline
, freitext
FROM jumi_umfragen
WHERE umid = $umid");
$row_edit = $result_edit->fetch_array();
$_SESSION["umfrageerf_value_datumvon"] = $row_edit['datum_von'];
$_SESSION["umfrageerf_value_zeitvon"] = $row_edit['zeit_von'];
$_SESSION["umfrageerf_value_datumbis"] = $row_edit['datum_bis'];
$_SESSION["umfrageerf_value_zeitbis"] = $row_edit['zeit_bis'];
$_SESSION["umfrageerf_value_headline"] = $row_edit['headline'];
$_SESSION["umfrageerf_value_freitext"] = $row_edit['freitext'];
# Erste Frage selektieren, damit der Reiter für die Frage gleich aktiv ist
$result_q1 = $db->query("SELECT min(ufid) ufid
FROM jumi_umfragen_fragen
WHERE umid = $umid");
$row_q1 = $result_q1->fetch_array();
$_SESSION["umfrageerf_ufid"] = $row_q1['ufid'];
}
$smarty->assign('umfrageerf_value_datumvon', $_SESSION["umfrageerf_value_datumvon"]);
$smarty->assign('umfrageerf_value_zeitvon', $_SESSION["umfrageerf_value_zeitvon"]);
$smarty->assign('umfrageerf_value_datumbis', $_SESSION["umfrageerf_value_datumbis"]);
@ -106,18 +132,18 @@ if ($action == '') {
if ($action == 'fragen') {
$umid = $_SESSION["umfrageerf_umid"];
# Focus/Session setzen
$result = $db->query("SELECT count(*) Anz FROM jumi_umfragen_fragen WHERE umid='$umid'");
$row = $result->fetch_array();
# Wenn man bei mehreren Fragen eine Frage löscht ist Anz nicht 0 und der Focus sitzt bei Antwort
if ($umid == '' or $_GET['tabufid'] == "neuefrage" or $row['Anz'] == '0') {
$smarty->assign('umfrageerf_focus', "frage");
unset($_SESSION["umfrageerf_ufid"]);
unset($_SESSION["umfrageerf_uaid"]);
} else {
$smarty->assign('umfrageerf_focus', "antwort");
}
# if ($umid == '' or $_GET['tabufid'] == "neuefrage" or $row['Anz'] == '0') {
# $smarty->assign('umfrageerf_focus', "frage");
# unset($_SESSION["umfrageerf_ufid"]);
# unset($_SESSION["umfrageerf_uaid"]);
# } else {
# $smarty->assign('umfrageerf_focus', "antwort");
# }
if (isset($_POST['datumvon']) and $_POST['datumvon'] != '') {
@ -239,14 +265,18 @@ if ($action == 'fragen') {
}
}
if (isset($_GET['tabufid']) and $_GET['tabufid'] != '') {
if ($_GET['tabufid'] == "neuefrage") {
$_SESSION["umfrageerf_ufid"] = "";
} else {
$_SESSION["umfrageerf_ufid"] = $_GET['tabufid'];
}
}
$ufid = $_SESSION["umfrageerf_ufid"];
if ($ufid != '') {
$result_frage = $db->query("SELECT frage, multiple
FROM jumi_umfragen_fragen
@ -259,11 +289,12 @@ if ($action == 'fragen') {
# Gespeicherte Werte
if ($umid != '') {
$query1 = "SELECT ufid, frage
FROM jumi_umfragen_fragen
WHERE umid=$umid
ORDER BY ufid ASC";
$result1 = $db->query($query1) or die("Cannot execute query1a");
while ($row1 = $result1->fetch_array()) {
@ -275,10 +306,9 @@ if ($action == 'fragen') {
if ($ufid != '') {
$smarty->assign('umfrageerf_gesp_werte_value_ufid2', "$ufid");
$query2 = "SELECT uaid, antwort
FROM jumi_umfragen_antworten
WHERE ufid=$ufid
ORDER BY userorder ASC, uaid ASC";
FROM jumi_umfragen_antworten
WHERE ufid=$ufid
ORDER BY userorder ASC, uaid ASC";
$result2 = $db->query($query2) or die("Cannot execute query2");
$anzahl = $result2->num_rows;
$smarty->assign('table_data2_anz', $anzahl);