Merge branch 'master' of github.com:felixfoertsch/mahlowat

# Conflicts:
#	.gitignore
This commit is contained in:
Daniel Gerber
2017-09-08 23:34:23 +02:00
31 changed files with 1773 additions and 2140 deletions

40
.gitignore vendored
View File

@@ -1,2 +1,42 @@
csv2json/node_modules
static-site-generator/node_modules
<<<<<<< HEAD
# Created by https://www.gitignore.io/api/macos,jekyll
### Jekyll ###
wahlprogramme/_site/
wahlprogramme/.sass-cache/
wahlprogramme/.jekyll-metadata
=======
# Created by https://www.gitignore.io/api/macos
>>>>>>> feat_9
### macOS ###
*.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# End of https://www.gitignore.io/api/macos,jekyll

View File

@@ -30,7 +30,7 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Mahlowat - Statistik</title>
<title>EUromat - Statistik</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta content="">
<link href="../css/bootstrap.min.css" rel="stylesheet" media="screen">
@@ -44,7 +44,7 @@
<div class="well">
<h1>Besucher</h1>
<p>Von wie vielen IP-Adressen wurde der Mahlowat aufgerufen?</p>
<p>Von wie vielen IP-Adressen wurde der EUromat aufgerufen?</p>
<table class="table table-bordered table-hover">
<tr><th style="width: 200px;">Datum</th><th style="width:100px">Besucher</th><th style="width:640px;">&nbsp;</th></tr>

File diff suppressed because it is too large Load Diff

View File

@@ -1,40 +1,54 @@
body {
padding-bottom: 70px;
padding-bottom: 70px;
}
.table a {
text-decoration: none;
text-decoration: none;
}
.statement {
min-height: 90px;
min-height: 135px;
}
.btn.btn-block.listanswer {
border: 0px;
cursor: default;
}
#thesesbox{
min-height: 250px;
min-height: 150px;
}
.button-wrapper .btn {
margin-bottom: 10px;
margin-bottom: 10px;
}
.pagination > .pagination-yes > a {
background-color: #00CC66;
background-color: #00CC66;
}
.pagination > .active.pagination-yes > a {
background-color: #00CC66;
border-color: #00CC66;
background-color: #00CC66;
border-color: #00CC66;
}
.pagination > .pagination-neutral > a {
background-color: #ff851b;
background-color: #ff851b;
}
.pagination > .active.pagination-neutral > a {
background-color: #ff851b;
border-color: #00CC66;
background-color: #ff851b;
border-color: #00CC66;
}
.pagination > .pagination-no > a {
background-color: #ff4136;
background-color: #ff4136;
}
.pagination > .active.pagination-no > a {
background-color: #ff4136;
border-color: #00CC66;
}
background-color: #ff4136;
border-color: #00CC66;
}
.mt-5 {
margin-top: 5px;
}
.mt-25 {
margin-top: 25px;
}
.mt-50 {
margin-top: 50px;
}

File diff suppressed because it is too large Load Diff

188
faq.php
View File

@@ -1,106 +1,112 @@
<?php
isset($_GET['from']) ? $back = $_GET['from'] : $back = "index.php";
if($back != 'index.php' and substr($back, 0, 14) != 'multiplier.php' and substr($back, 0, 10) != 'result.php' and substr($back, 0, 12) != 'mahlowat.php'){
$back = "index.php";
}
$answerstring = '';
if(isset($_POST['ans'])){
$answerstring = $_POST['ans'];
}
$count = 'undefined';
if(isset($_POST['count'])){
$count = $_POST['count'];
}
isset($_GET['from']) ? $back = $_GET['from'] : $back = "index.php";
if($back != 'index.php' and substr($back, 0, 14) != 'multiplier.php' and substr($back, 0, 10) != 'result.php' and substr($back, 0, 12) != 'mahlowat.php'){
$back = "index.php";
}
$answerstring = '';
if(isset($_POST['ans'])){
$answerstring = $_POST['ans'];
}
$count = 'undefined';
if(isset($_POST['count'])){
$count = $_POST['count'];
}
?>
<!DOCTYPE html>
<html>
<head>
<title>EUromat - FAQ</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta content="">
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<head>
<title>EUromat - FAQ</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta content="">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,700" rel="stylesheet">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<script src="js/jquery-2.0.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/mahlowat.js"></script>
<div class="container" style="margin-top: 20px;">
<div class="col-md-4 pull-right">
<a href="https://jef-sachsen.de/euromat"><img class="img-responsive" src="img/euromat.png" title="Euromat Logo" onclick="changeText()"/></a>
</div>
<div class="bottom-buffer top-buffer">
<h1>FAQ</h1>
<h4>Wer macht den EUromaten?</h4>
<p>Der EUromat ist ein Angebot der Jungen Europäischen Förderalisten Sachsen zur Bundestagswahl 2017.</p>
<h4>Wer hat die Thesen erarbeitet?</h4>
<p>Die Thesen wurden von den Mitgliedern der Jungen Europäischen Förderalisten Sachsen erarbeitet.</p>
<h4>Wo kommen die Positionen der Gruppen her?</h4>
<p>Den an der Wahl teilnehmenden Parteien wurden die Thesen mit der Bitte um Stellungnahme weitergeleitet. Neben ihrer reinen Positionierung (also Zustimmung, Neutral, Ablehnung oder Keine Stellungnahme) konnten sie ihre Position auch in einem kurzen Absatz erläutern. Diese Stellungnahmen findet werden auf der Ergebnis-Seite angezeigt.</p>
<p>Für ihre Stellungnahmen zu den Thesen sind die Parteien selbst verantwortlich.</p>
<h4>Von welcher Wahl reden wir hier überhaupt?</h4>
<p>Hier dreht sich alles um <a href="https://de.wikipedia.org/wiki/Bundestagswahl_2017">die Bundestagswahl 2017</a>.</p>
<h4>Wer hat das hier programmiert?</h4>
<p>Der <a href="http://hszemi.de" title="hszemi.de" target="_blank">Sven</a>, weil der das kann. Die EDVler von der JEF Sachsen haben noch ein paar Sachen verändert und verbessert. Zum Beispiel könnt ihr den EUromat nun auch schön auf euren Handys verwenden.</p>
<h4>Funktioniert das hier wie der "echte" Wahl-O-Mat der bpb?</h4>
<p>Es wurde versucht, die Punkteberechnung so wie beim "echten" Wahl-O-Mat zu gestalten.</p>
<h4>Wie werden die Punkte berechnet?</h4>
<p>Die Antworten der Testperson (das bist Du) werden mit den vorgegebenen Antworten der Gruppen abgeglichen.</p>
<ul>
<li>Stimmt die Antwort überein, werden der Gruppe 2 Punkte gutgeschrieben.</li>
<li>Weicht die Antwort leicht ab (Zustimmung/Neutral oder Neutral/Ablehnung), wird der Gruppe 1 Punkt gutgeschrieben.</li>
<li>Sind die Antworten entgegengesetzt oder hat eine Gruppe eine Frage nicht beantwortet, gibt es keine Punkte für die Gruppe.</li>
</ul>
<p>Eine Frage, die die Testperson übersprungen hat, wird nicht gewertet. Entsprechend gibt es dann insgesamt weniger Punkte zu erreichen.</p>
<p>Eine Frage, die doppelt gewichtet werden soll, wird doppelt gewichtet, das heißt, für sie wird die doppelte Punktzahl gutgeschrieben (0/2/4). Entsprechend gibt es insgesamt mehr Punkte zu erreichen.</p>
<div id='log'>
<h4>Werden meine Antworten gespeichert?</h4>
<p>Vor der Auswertung wirst Du gefragt, ob wir Deine Antworten speichern dürfen. Du kannst dann "Ja" auswählen, was bedeutet, dass wir Deine Antwortkombination zusammen mit einer ID speichern, die aus Deiner IP-Adresse und einem täglich wechselnden zufälligen Wert errechnet wird. Bereits am nächsten Tag kann Dein Eintrag auf keinen Fall mehr einer konkreten IP-Adresse zugeordnet werden. Wenn Du "Nein" auswählst, wird lediglich ein Zähler um 1 erhöht.</p>
<h4>Ich möchte gar nicht gezählt werden!</h4>
<p>Unser Webserver legt bei jedem Seitenaufruf einen Log-Eintrag an, der unter anderem einen Zeitstempel, Deine IP-Adresse und die aufgerufene URL enthält. Es wäre also unaufrichtig, dir vorzumachen, dass Dein Aufruf des Mahlowat nicht gezählt wird. Der Mahlowat wurde jedoch so konzipiert, dass aus den Server-Logdateien nicht ersichtlich ist, welche Antworten Du ausgewählt hast. Dies sehen wir tatsächlich nur, wenn Du dem am Ende explizit zustimmst.</p>
<div class="container mt-50">
<div class="col-md-4 pull-right">
<a href="https://jef-sachsen.de/euromat">
<img id="logo" class="img-responsive" src="img/euromat.png" title="Euromat Logo"/>
</a>
</div>
<h4>Ich habe einen Fehler gefunden!</h4>
<p>Dann solltest Du das <a href="mailto:edv@jef-sachsen.de">an uns</a> melden. Wir freuen uns über sachdienliche Hinweise.</p>
<div class="col-md-12">
<a class="btn btn-primary" href="<?php echo $back; ?>" onclick="callPage(event, '<?php echo $back; ?>')" title="Zurück zum Mahlowat">Zurück</a>
</div>
</div>
<h1>FAQ</h1>
<h4>Wer macht den EUromaten?</h4>
<p>Der EUromat ist ein Angebot der Jungen Europäischen Förderalisten Sachsen zur Bundestagswahl 2017.</p>
<h4>Wer hat die Thesen erarbeitet?</h4>
<p>Die Thesen wurden von den Mitgliedern der Jungen Europäischen Förderalisten Sachsen erarbeitet.</p>
<h4>Wo kommen die Positionen der Gruppen her?</h4>
<p>Den an der Wahl teilnehmenden Parteien wurden die Thesen mit der Bitte um Stellungnahme weitergeleitet. Neben ihrer reinen Positionierung (also Zustimmung, Neutral, Ablehnung oder Keine Stellungnahme) konnten sie ihre Position auch in einem kurzen Absatz erläutern. Diese Stellungnahmen findet werden auf der Ergebnis-Seite angezeigt.</p>
<p>Für ihre Stellungnahmen zu den Thesen sind die Parteien selbst verantwortlich.</p>
<h4>Von welcher Wahl reden wir hier überhaupt?</h4>
<p>Hier dreht sich alles um <a href="https://de.wikipedia.org/wiki/Bundestagswahl_2017">die Bundestagswahl 2017</a>.</p>
<h4>Wer hat das hier programmiert?</h4>
<p>Der <a href="http://hszemi.de" title="hszemi.de" target="_blank">Sven</a>, weil der das kann. Die EDVler von der JEF Sachsen haben noch ein paar Sachen verändert und verbessert. Zum Beispiel könnt ihr den EUromat nun auch schön auf euren Handys verwenden.</p>
<h4>Funktioniert das hier wie der "echte" Wahl-O-Mat der bpb?</h4>
<p>Es wurde versucht, die Punkteberechnung so wie beim "echten" Wahl-O-Mat zu gestalten.</p>
<h4>Wie werden die Punkte berechnet?</h4>
<p>Die Antworten der Testperson (das bist Du) werden mit den vorgegebenen Antworten der Gruppen abgeglichen.</p>
<ul>
<li>Stimmt die Antwort überein, werden der Gruppe 2 Punkte gutgeschrieben.</li>
<li>Weicht die Antwort leicht ab (Zustimmung/Neutral oder Neutral/Ablehnung), wird der Gruppe 1 Punkt gutgeschrieben.</li>
<li>Sind die Antworten entgegengesetzt oder hat eine Gruppe eine Frage nicht beantwortet, gibt es keine Punkte für die Gruppe.</li>
</ul>
<p>Eine Frage, die die Testperson übersprungen hat, wird nicht gewertet. Entsprechend gibt es dann insgesamt weniger Punkte zu erreichen.</p>
<p>Eine Frage, die doppelt gewichtet werden soll, wird doppelt gewichtet, das heißt, für sie wird die doppelte Punktzahl gutgeschrieben (0/2/4). Entsprechend gibt es insgesamt mehr Punkte zu erreichen.</p>
<div id='log'>
<h4>Werden meine Antworten gespeichert?</h4>
<p>Vor der Auswertung wirst Du gefragt, ob wir Deine Antworten speichern dürfen. Du kannst dann "Ja" auswählen, was bedeutet, dass wir Deine Antwortkombination zusammen mit einer ID speichern, die aus Deiner IP-Adresse und einem täglich wechselnden zufälligen Wert errechnet wird. Bereits am nächsten Tag kann Dein Eintrag auf keinen Fall mehr einer konkreten IP-Adresse zugeordnet werden. Wenn Du "Nein" auswählst, wird lediglich ein Zähler um 1 erhöht.</p>
<h4>Ich möchte gar nicht gezählt werden!</h4>
<p>Unser Webserver legt bei jedem Seitenaufruf einen Log-Eintrag an, der unter anderem einen Zeitstempel, Deine IP-Adresse und die aufgerufene URL enthält. Es wäre also unaufrichtig, dir vorzumachen, dass Dein Aufruf des EUromat nicht gezählt wird. Der EUromat wurde jedoch so konzipiert, dass aus den Server-Logdateien nicht ersichtlich ist, welche Antworten Du ausgewählt hast. Dies sehen wir tatsächlich nur, wenn Du dem am Ende explizit zustimmst.</p>
</div>
<h4>Ich habe einen Fehler gefunden!</h4>
<p>Dann solltest Du das <a href="mailto:edv@jef-sachsen.de">an uns</a> melden. Wir freuen uns über sachdienliche Hinweise.</p>
<a class="btn btn-primary" href="<?php echo $back; ?>"
onclick="callPage(event, '<?php echo $back; ?>')" title="Zurück zum
EUromat">Zurück zum EUromat</a>
</div>
</div>
<script type="text/javascript">
$( document ).ready( function(){
if(window.location.hash == '#log'){
setTimeout(function() {
$('#log').css("background-color","#ffff55");
}, 1000);
}
} );
<script type="text/javascript">
$( document ).ready( function(){
if(window.location.hash == '#log'){
setTimeout(function() {
$('#log').css("background-color","#ffff55");
}, 1000);
}
} );
function callPage(evt, action){
evt.preventDefault();
var html = "<input name='ans' value='<?php echo $answerstring;?>'/><input name='count' value='<?php echo $count; ?>'/>";
$('<form style="display: none;" method="post"/>').attr('action', action).html(html).appendTo('body').submit();
}
</script>
evt.preventDefault();
var html = "<input name='ans' value='<?php echo $answerstring;?>'/><input name='count' value='<?php echo $count; ?>'/>";
$('<form style="display: none;" method="post"/>').attr('action', action).html(html).appendTo('body').submit();
}
</script>
</body>
</html>
</html>

View File

@@ -3,6 +3,7 @@
<head>
<title>mahlowat - Generator</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta content="">
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
@@ -27,8 +28,8 @@
<script src="js/bootstrap.min.js"></script>
<script src="js/generator.js"></script>
<div class="container" style="margin-top: 20px;">
<div class="bottom-buffer top-buffer">
<div class="container mt-50">
<div class="col-md-12">
<h1>Mahlowat - Generator</h1>

1
img/euromat.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 16 KiB

BIN
img/lists/afd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
img/lists/cdu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
img/lists/die_partei.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
img/lists/fdp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
img/lists/freie_waehler.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
img/lists/gruene.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
img/lists/linke.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

BIN
img/lists/npd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
img/lists/oedp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
img/lists/piraten.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
img/lists/spd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -7,65 +7,82 @@ function print_result_detail_table($answers, $data){
echo "<th class='hidden-xs hidden-sm'>Deine Wahl</th>";
for($i = 0; $i < sizeof($data['lists']); $i = $i + 1) {
$classname = string_to_css_classname($data['lists'][$i]['name']);
$list_name_short = $data['lists'][$i]['name_x'];
$list_logo = $data['lists'][$i]['logo'];
echo "
<th class='hidden-xs hidden-sm list-$classname'>
{$data['lists'][$i]['name_x']} (".calculate_points($data['answers'][$i], $answers).")
</th>";
}
echo "</tr>\n";
for($i = 0; $i < $theses_count; $i = $i + 1){
char_to_multiply($answers[$i]) == 2 ? $star = '<i class="fa fa-star" aria-hidden="true"></i> ' : $star = '';
char_to_multiply($answers[$i]) == 2 ? $tdcl = ' class="info"' : $tdcl = '';
$labelclass = code_to_labelclass(char_to_value($answers[$i]));
echo "<tr$tdcl>\n";
echo '
<td>
<a id="thesis'.$i.'" class="btn '.code_to_btnclass(char_to_value($answers[$i])).' btn-block" onclick="toggleNext(this)">'.$star.$data['theses'][$i]['s'].'</a>
</td>';
for($listid = 0; $listid < sizeof($data['lists']); $listid = $listid + 1){
echo get_list_result_td($data, $listid, $i);
}
echo "</tr>\n";
<th class='hidden-xs hidden-sm list-$classname'>
<img class='img-responsive img-list-logo-small' src='img/lists/$list_logo' title='$list_name_short Logo'>
(".calculate_points($data['answers'][$i], $answers).")
</th>";
}
echo "</tr>\n";
for($i = 0; $i < $theses_count; $i = $i + 1){
char_to_multiply($answers[$i]) == 2 ? $star = '<i class="fa fa-star" aria-hidden="true"></i> ' : $star = '';
char_to_multiply($answers[$i]) == 2 ? $tdcl = ' class="info"' : $tdcl = '';
$labelclass = code_to_labelclass(char_to_value($answers[$i]));
echo "<tr$tdcl>\n";
echo '
<td>
<a id="thesis'.$i.'" class="btn '.code_to_btnclass(char_to_value($answers[$i])).' btn-block" onclick="toggleNext(this)">'.$star.$data['theses'][$i]['s'].'</a>
</td>';
for($listid = 0; $listid < sizeof($data['lists']); $listid = $listid + 1){
echo get_list_result_td($data, $listid, $i);
}
echo "</tr>\n";
// Statements
echo "
<tr class='multheseslong'>
echo "
<tr class='multheseslong'>
<td class='mtl' colspan='".(sizeof($data['lists'])+1)."'>
<!-- <span class='label $labelclass'>These ".($i+1).": ".$data['theses'][$i]['s']."</span><br>-->
<p class='well'>".$data['theses'][$i]['l']."</p>
<p><strong>Statements der Parteien:</strong></p>";
for($listid = 0; $listid < sizeof($data['lists']); $listid = $listid + 1){
echo get_list_statement($data, $listid ,$i);
}
echo "</td></tr>\n";
}
}
<!-- <span class='label $labelclass'>These ".($i+1).": ".$data['theses'][$i]['s']."</span><br>-->
<p class='well'>".$data['theses'][$i]['l']."</p>
<p><strong>Statements der Parteien:</strong></p>";
for($listid = 0; $listid < sizeof($data['lists']); $listid = $listid + 1){
echo get_list_statement($data, $listid ,$i);
}
echo "</td></tr>\n";
}
}
function print_list_result_bar($data, $listindex, $answers, $class){
$list_name = $data['lists'][$listindex]['name_x'];
$list_points = calculate_points($data['answers'][$listindex], $answers);
$ach_points = count_achievable_points($answers);
if($ach_points != 0){
$list_percentage = intval( 100 * $list_points / $ach_points);
} else {
$list_percentage = 0;
}
echo "
<tr class='$class'>
<td><b>$list_name</b></td>
<td>$list_points von $ach_points</td>
<td>
<div class='progress'>
<div class='progress-bar' role='progressbar' aria-valuenow='$list_points' aria-valuemin='0' aria-valuemax='$ach_points' style='width: $list_percentage%;'>
$list_percentage %
</div>
</div>
</td>
</tr>";
function print_list_result_bar($data, $listindex, $answers, $class){
$list_name = $data['lists'][$listindex]['name'];
$hint = $data['lists'][$listindex]['hint'];
$list_points = calculate_points($data['answers'][$listindex], $answers);
$ach_points = count_achievable_points($answers);
if($ach_points != 0){
$list_percentage = intval( 100 * $list_points / $ach_points);
} else {
$list_percentage = 0;
}
}
$hintElement = '';
if($hint != ''){
$hintElement = "
<div class='panel-footer'>".$hint."</div>
";
}
echo "
<div class='row'>
<div class='col-md-8 col-md-offset-2'>
<div class='panel panel-default'>
<div class='panel-heading'>
<h3 class='panel-title'>$list_name <small>($list_points von $ach_points)</small></h3>
</div>
<div class='panel-body'>
<div class='progress'>
<div class='progress-bar' role='progressbar' aria-valuenow='$list_points' aria-valuemin='0' aria-valuemax='$ach_points' style='width: $list_percentage%;'>
$list_percentage %
</div>
</div>
</div>
$hintElement
</div>
</div>
</div>
";
}
/* unused
function print_list_result_bar_tricolore($list, $votes, $emph, $class){
@@ -111,6 +128,10 @@ function print_list_result_bar_tricolore($list, $votes, $emph, $class){
$listclass = "list-".str_replace(' ','',$data['lists'][$listid]['name']);
$prefix = "";
if(trim($etext) == ''){
$etext = "Zu dieser These hat die Partei kein Statement abgegeben.";
}
if($vote === 'skip'){
$prefix = "<span class='label label-default'>$name</span>\n";
}
@@ -208,4 +229,4 @@ function print_list_result_bar_tricolore($list, $votes, $emph, $class){
echo '</div>';
}
?>
?>

View File

@@ -4,48 +4,54 @@ $baseurl = "http://" . $_SERVER['SERVER_NAME'] . $uri_parts[0];
?>
<!DOCTYPE html>
<html>
<head>
<title>EUromat - Der Bundestagswahl-Helfer zum Thema Europa</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta content="Mahlowat">
<meta name="image_src" content="img/mahlowat_logo.png"/>
<meta name="description" content="Der EUromat ist ein Angebot JEF Sachsen zur Bundestagswahl. Er ermöglicht es, zu europapolitischen Themen die eigenen Standpunkte mit denen der Parteien abzugleichen, die zur Wahl antreten."/>
<meta property="og:title" content="Mahlowat"/>
<meta property="og:type" content="website"/>
<meta property="og:image" content="img/mahlowat_logo.png"/>
<meta property="og:url" content=""/>
<meta property="og:site-name" content="example.com"/>
<meta property="og:description" content="Der EUromat ist ein Angebot JEF Sachsen zur Bundestagswahl. Er ermöglicht es, zu europapolitischen Themen die eigenen Standpunkte mit denen der Parteien abzugleichen, die zur Wahl antreten."/>
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<link href="shariff/shariff.min.css" rel="stylesheet">
<script src="js/jquery-2.0.2.min.js"></script>
</head>
<body>
<div class="container">
<head>
<title>EUromat | JEF Sachsen</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta content="EUromat">
<meta name="image_src" content="img/euromat.png"/>
<meta name="description" content="Der EUromat ist ein Angebot JEF Sachsen zur Bundestagswahl. Er ermöglicht es, zu europapolitischen Themen die eigenen Standpunkte mit denen der Parteien abzugleichen, die zur Wahl antreten."/>
<meta property="og:title" content="EUromat"/>
<meta property="og:type" content="website"/>
<meta property="og:image" content="img/euromat.png"/>
<meta property="og:url" content=""/>
<meta property="og:site-name" content="eurom.at"/>
<meta property="og:description" content="Der EUromat ist ein Angebot JEF Sachsen zur Bundestagswahl. Er ermöglicht es, zu europapolitischen Themen die eigenen Standpunkte mit denen der Parteien abzugleichen, die zur Wahl antreten."/>
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,700" rel="stylesheet">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
<link href="shariff/shariff.min.css" rel="stylesheet">
<script src="js/jquery-2.0.2.min.js"></script>
</head>
<body>
<div class="container mt-25">
<div class="jumbotron">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<img class="img-responsive" src="img/euromat.png" title="EUromat Logo"/>
<div class="col-md-6 col-md-offset-3">
<img class="img-responsive" src="img/euromat.png" title="Euromat Logo"/>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<h1>Der <strong>#EUromat</strong></h1>
<div class="col-md-12 mt-50">
<p>Der EUromat ist ein technisches Hilfsmittel, das es ermöglicht, zu europapolitischen Themen die eigenen Standpunkte mit denen der Parteien abzugleichen, die zur Bundestagswahl antreten.</p>
<p>Er ist selbstverständlich nur als Automat ohne Hirn zu verstehen und spricht keine Wahlempfehlungen aus.</p>
<p>Für ihre Stellungnahmen zu den Thesen sind die Parteien selbst verantwortlich.</p>
<p class="text-center"><a class="btn btn-large btn-primary" href="mahlowat.php" title="Mahlowat starten">Mit der Befragung beginnen!</a></p>
<p class="text-center"><a class="btn btn-primary btn-lg" href="mahlowat.php" title="EUromat starten">Mit der Befragung beginnen!</a></p>
</div>
<div class="col-md-12 mt-25">
<p class="text-center">
<small>Die häufig gestellten Fragen findest Du hier: <a href="faq.php" title="Fragen und Antworten">FAQ</a>.</small>
</p>
</div>
</div>
<p class="text-center">
<a href="faq.php" title="Fragen und Antworten"><small>FAQ</small></a>
</p>
</div>
<div class="col-xs-12">
<div class="shariff" data-url="<?php echo $baseurl; ?>" data-referrer-track=null></div>
</div>
</div>
</div>
<script src="shariff/shariff.min.js"></script>
<script src="shariff/shariff.min.js"></script>
</body>
</html>

View File

@@ -58,6 +58,9 @@ function readData(){
$('.input_list_short').each(function(index,value){
Singleton.instance.lists[index].name_x = $(value).val();
});
$('.input_list_hint').each(function(index,value){
Singleton.instance.lists[index].hint = $(value).val();
});
if(Singleton.instance.answers == null){
Singleton.instance.answers = {};
@@ -99,7 +102,7 @@ function generateTheses(){
function generateLists(){
for(key in Object.keys(Singleton.instance.lists)){
generateList(Singleton.instance.lists[key].name, Singleton.instance.lists[key].name_x);
generateList(Singleton.instance.lists[key].name, Singleton.instance.lists[key].name_x, Singleton.instance.lists[key].hint);
}
}
@@ -135,7 +138,7 @@ function generateEmptyList(){
generateList("","");
}
function generateList(name, shortname){
function generateList(name, shortname, hint){
var listdiv = '<div class="singlelist">' +
' <div class="form-group">' +
' <label>Listenname</label>' +
@@ -146,6 +149,10 @@ function generateList(name, shortname){
' <input type="text" class="form-control input_list_short" placeholder="Listenname (kurz)" value="'+shortname+'">' +
' </div>' +
' <div class="form-group">' +
' <label>Hinweis zur Liste</label>' +
' <input type="text" class="form-control input_list_hint" placeholder="Hinweis zur Liste" value="'+hint+'">' +
' </div>' +
' <div class="form-group">' +
' <button type="button" class="btn btn-danger" onclick="deleteme(this)">Diese Liste löschen</button>' +
' <button type="button" class="btn btn-default" onclick="moveup(this)"><span class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span> Diese Liste nach <strong>oben</strong> verschieben</button>' +
' <button type="button" class="btn btn-default" onclick="movedown(this)"><span class="glyphicon glyphicon-arrow-down" aria-hidden="true"></span> Diese Liste nach <strong>unten</strong> verschieben</button>' +

View File

@@ -4,119 +4,120 @@ include 'includes/elements.php';
//include 'includes/theses.php';
$data_content = file_get_contents("config/data.json");
if(!$data_content){
echo "ERROR READING CONFIG";
echo "ERROR READING CONFIG";
} else {
$data = json_decode($data_content, true);
if($data == NULL){
echo "ERROR PARSING CONFIG";
}
$data = json_decode($data_content, true);
if($data == NULL){
echo "ERROR PARSING CONFIG";
}
//$theses = get_theses_array();
$theses = $data['theses'];
$theses_count = sizeof($theses);
$ans = Array();
$emph = Array();
$answerstring = '';
$warning = false;
$count = 'undefined';
if(isset($_POST['count'])){
$count = $_POST['count'];
}
if(isset($_POST['ans'])){
$answerstring = $_POST['ans'];
$retval = result_from_string($answerstring, $theses_count);
$ans = $retval[0];
$emph = $retval[1];
} elseif(isset($_GET['ans'])){
$answerstring = $_GET['ans'];
$retval = result_from_string($answerstring, $theses_count);
$ans = $retval[0];
$emph = $retval[1];
} else {
$warning = true;
for($i = 0; $i < $theses_count; $i++){
$ans[$i] = 'skip';
$emph[$i] = 1;
}
}
$theses = $data['theses'];
$theses_count = sizeof($theses);
$ans = Array();
$emph = Array();
$answerstring = '';
$warning = false;
$count = 'undefined';
if(isset($_POST['count'])){
$count = $_POST['count'];
}
if(isset($_POST['ans'])){
$answerstring = $_POST['ans'];
$retval = result_from_string($answerstring, $theses_count);
$ans = $retval[0];
$emph = $retval[1];
} elseif(isset($_GET['ans'])){
$answerstring = $_GET['ans'];
$retval = result_from_string($answerstring, $theses_count);
$ans = $retval[0];
$emph = $retval[1];
} else {
$warning = true;
for($i = 0; $i < $theses_count; $i++){
$ans[$i] = 'skip';
$emph[$i] = 1;
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>EUromat - Der Bundestagswahl-Helfer zum Thema Europa</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta content="Mahlowat">
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<script src="js/jquery-2.0.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/mahlowat.js"></script>
<div id="savemodal" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Statistik</h4>
</div>
<div class="modal-body">
Erlaubst du, dass dein Aufruf für die Statistik gezählt wird?<br>
Falls du Nein auswählst, bist du lediglich als Logeintrag auf dem Server verewigt.<br>
<small><a href="faq.php#log" target="_blank">Ich will aber gar keinen Logeintrag!</a></small>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="callResult(false)" style="width: 100px;"><i class="fa fa-times fa-lg"></i> Nein</button>
<button type="button" class="btn btn-primary" onclick="callResult(true)" style="width: 100px;"><i class="fa fa-check fa-lg"></i> Ja</button>
</div>
<head>
<title>EUromat - Der Bundestagswahl-Helfer zum Thema Europa</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta content="EUromat">
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,700" rel="stylesheet">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<script src="js/jquery-2.0.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/mahlowat.js"></script>
<div id="savemodal" class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
<div class="modal-dialog modal-sm">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Statistik</h4>
</div>
<div class="modal-body">
Erlaubst du, dass dein Aufruf für die Statistik gezählt wird?<br>
Falls du Nein auswählst, bist du lediglich als Logeintrag auf dem Server verewigt.<br>
<small><a href="faq.php#log" target="_blank">Ich will aber gar keinen Logeintrag!</a></small>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick="callResult(false)" style="width: 100px;"><i class="fa fa-times fa-lg"></i> Nein</button>
<button type="button" class="btn btn-primary" onclick="callResult(true)" style="width: 100px;"><i class="fa fa-check fa-lg"></i> Ja</button>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<?php print_pagination($theses_count); ?>
<?php print_thesesbox($theses); ?>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<?php print_pagination($theses_count); ?>
<?php print_thesesbox($theses); ?>
</div>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<p class='text-center'>
<button id="weight" type="button" class="btn btn-default" data-toggle="button">These doppelt gewichten</button>
</p>
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1 mt-5">
<button id="weight" type="button" class="btn btn-default btn-block" data-toggle="button">These doppelt gewichten</button>
</div>
<div class="row">
<div class="col-md-10 col-md-offset-1 button-wrapper">
<div class="col-xs-6 col-sm-3">
<button id='no' type='submit' class='btn btn-danger btn-block' name='no' onclick="nextThesis('c')">
<i class="fa fa-thumbs-down fa-lg"></i> Ablehnung
</button>
</div>
<div class="col-xs-6 col-sm-3">
<button id='neutral' type='submit' class='btn btn-warning btn-block' name='neutral' onclick="nextThesis('b')">
<i class="fa fa-asterisk fa-lg"></i> Neutral
</button>
</div>
<div class="col-xs-6 col-sm-3">
<button id='yes' type='submit' class='btn btn-success btn-block' name='yes' onclick="nextThesis('a')">
</div>
<div class="row">
<div class="col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1 mt-5">
<button id='yes' type='submit' class='btn btn-success btn-block' name='yes' onclick="nextThesis('a')">
<i class="fa fa-thumbs-up fa-lg"></i> Zustimmung
</button>
</div>
<div class="col-xs-6 col-sm-3">
<button id='skip' type='submit' class='btn btn-default btn-block' name='skip' onclick="nextThesis('d')">
Überspringen <i class="fa fa-step-forward fa-lg"></i></button>
</div>
</button>
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1 mt-5">
<button id='neutral' type='submit' class='btn btn-warning btn-block' name='neutral' onclick="nextThesis('b')">
<i class="fa fa-asterisk fa-lg"></i> Neutral
</button>
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1 mt-5">
<button id='no' type='submit' class='btn btn-danger btn-block' name='no' onclick="nextThesis('c')">
<i class="fa fa-thumbs-down fa-lg"></i> Ablehnung
</button>
</div>
</div>
<div class="row">
<div class="col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1 mt-5">
<button id='skip' type='submit' class='btn btn-default btn-block' name='skip' onclick="nextThesis('d')">
Überspringen <i class="fa fa-step-forward fa-lg"></i>
</button>
</div>
</div>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="text-right">
@@ -127,93 +128,93 @@ $emph[$i] = 1;
</div>
</div>
<script type="text/javascript">
var resultArray;
var activeThesis = 0;
var answerstring = '<?php echo $answerstring; ?>';
$(function(){
$('.tt').tooltip();
$('.explic').hide();
$('#weight').click(function(){
$('#weight').toggleClass('btn-default');
$('#weight').toggleClass('btn-info');
if($('#weight').text() == 'These doppelt gewichten'){
$('#weight').text('These wird doppelt gewichtet');
} else {
$('#weight').text('These doppelt gewichten');
}
});
$('.explanationbutton').click(function(event){
event.preventDefault();
$('.explic').toggle(200);
});
thesesboxes = $('.singlethesis');
pagination = $('#navigation li');
resultArray = resultStringToArray(answerstring, thesesboxes.length);
setPaginationColors(resultArray);
var resultArray;
var activeThesis = 0;
var answerstring = '<?php echo $answerstring; ?>';
$(function(){
$('.tt').tooltip();
$('.explic').hide();
$('#weight').click(function(){
$('#weight').toggleClass('btn-default');
$('#weight').toggleClass('btn-info');
if($('#weight').text() == 'These doppelt gewichten'){
$('#weight').text('These wird doppelt gewichtet');
} else {
$('#weight').text('These doppelt gewichten');
}
});
$('.explanationbutton').click(function(event){
event.preventDefault();
$('.explic').toggle(200);
});
thesesboxes = $('.singlethesis');
pagination = $('#navigation li');
resultArray = resultStringToArray(answerstring, thesesboxes.length);
setPaginationColors(resultArray);
// Remove the # from the hash, as different browsers may or may not include it
var hash = location.hash.replace('#','');
if(hash != '' && jQuery.isNumeric(hash)){
// Show the hash if it's set
loadThesis(hash);
} else {
} else {
loadThesis(activeThesis+1);
}
});
function gotoResultPage(result){
count = '<?php echo $count; ?>';
if(count != 'true' && count != 'false'){
$('#savemodal').modal('show');
} else if(count == 'true') {
callResult(true);
} else {
callResult(false);
}
}
function gotoFAQPage(evt, result){
callPage(evt, 'faq.php?from=mahlowat.php'+window.location.hash, array2str(result), '<?php echo $count; ?>');
}
function callResult(count){
ans = array2str(resultArray);
if(count){
url = "count.php?ans=" + ans;
jQuery.get(url,function( data ) {
callPage(null, 'result.php', ans, 'true');
});
} else {
jQuery.get("count.php?false",function( data ) {
callPage(null, 'result.php', ans, 'false');
});
}
}
function nextThesis(selection){
multiply = false;
if($('#weight').hasClass('active')){
multiply = true;
}
resultArray[activeThesis] = result2letter(selection, multiply);
pagination.eq(activeThesis).removeClass('pagination-yes pagination-neutral pagination-no');
pagination.eq(activeThesis).addClass(letter2paginationclass(selection));
if(activeThesis+1 < thesesboxes.length){
loadThesis(activeThesis+2);
} else {
}
});
function gotoResultPage(result){
count = '<?php echo $count; ?>';
if(count != 'true' && count != 'false'){
$('#savemodal').modal('show');
} else if(count == 'true') {
callResult(true);
} else {
callResult(false);
}
}
function gotoFAQPage(evt, result){
callPage(evt, 'faq.php?from=mahlowat.php'+window.location.hash, array2str(result), '<?php echo $count; ?>');
}
function callResult(count){
ans = array2str(resultArray);
if(count){
url = "count.php?ans=" + ans;
jQuery.get(url,function( data ) {
callPage(null, 'result.php', ans, 'true');
});
} else {
jQuery.get("count.php?false",function( data ) {
callPage(null, 'result.php', ans, 'false');
});
}
}
function nextThesis(selection){
multiply = false;
if($('#weight').hasClass('active')){
multiply = true;
}
resultArray[activeThesis] = result2letter(selection, multiply);
pagination.eq(activeThesis).removeClass('pagination-yes pagination-neutral pagination-no');
pagination.eq(activeThesis).addClass(letter2paginationclass(selection));
if(activeThesis+1 < thesesboxes.length){
loadThesis(activeThesis+2);
} else {
// call result page
gotoResultPage(resultArray);
}
}
function loadThesis(number){
if(number > thesesboxes.length){
}
}
function loadThesis(number){
if(number > thesesboxes.length){
number = 1;
}
activeThesis = number-1;
thesesboxes.hide();
pagination.removeClass('active');
setClasses(resultArray[activeThesis]);
thesesboxes.eq(number-1).show();
pagination.eq(number-1).addClass('active');
location.hash = number;
}
function letter2paginationclass(letter){
switch(letter){
}
activeThesis = number-1;
thesesboxes.hide();
pagination.removeClass('active');
setClasses(resultArray[activeThesis]);
thesesboxes.eq(number-1).show();
pagination.eq(number-1).addClass('active');
location.hash = number;
}
function letter2paginationclass(letter){
switch(letter){
case 'a':
case 'e':
return 'pagination-yes';
@@ -230,22 +231,22 @@ $emph[$i] = 1;
case 'h':
return '';
break;
}
}
function setClasses(code){
$('.explic').hide();
if(code < 'e'){
}
}
function setClasses(code){
$('.explic').hide();
if(code < 'e'){
$('#weight').removeClass('btn-info');
$('#weight').addClass('btn-default');
$('#weight').removeClass('active');
$('#weight').text('These doppelt gewichten');
} else {
} else {
$('#weight').addClass('btn-info');
$('#weight').removeClass('btn-default');
$('#weight').addClass('active');
$('#weight').text('These wird doppelt gewichtet');
}
switch (code){
}
switch (code){
case 'a':
case 'e':
$('#yes').addClass('btn-success');
@@ -270,13 +271,13 @@ $emph[$i] = 1;
$('#neutral').addClass('btn-warning');
$('#no').addClass('btn-danger');
break;
}
}
function setPaginationColors(array){
for(i = 0; i < array.length; i++){
}
}
function setPaginationColors(array){
for(i = 0; i < array.length; i++){
pagination.eq(i).addClass(letter2paginationclass(array[i]));
}
}
</script>
</body>
}
}
</script>
</body>
</html>

View File

@@ -1,201 +1,205 @@
<?php
include 'includes/functions.php';
include 'includes/elements.php';
include 'includes/functions.php';
include 'includes/elements.php';
#include 'includes/theses.php';
$data_content = file_get_contents("config/data.json");
if (!$data_content) {
echo "ERROR READING CONFIG";
} else {
$data = json_decode($data_content, true);
$data_content = file_get_contents("config/data.json");
if (!$data_content) {
echo "ERROR READING CONFIG";
} else {
$data = json_decode($data_content, true);
//$theses = get_theses_array();
$theses = $data['theses'];
$theses = $data['theses'];
$theses_count = sizeof($theses);
$theses_count = sizeof($theses);
$ans = array();
$emph = array();
$answerstring = '';
$warning = false;
$count = 'undefined';
$ans = array();
$emph = array();
$answerstring = '';
$warning = false;
$count = 'undefined';
if (isset($_POST['count'])) {
$count = $_POST['count'];
}
if (isset($_POST['count'])) {
$count = $_POST['count'];
}
if (isset($_POST['ans'])) {
$answerstring = $_POST['ans'];
$retval = result_from_string($answerstring, $theses_count);
$ans = $retval[0];
$emph = $retval[1];
} elseif (isset($_GET['ans'])) {
$answerstring = $_GET['ans'];
$retval = result_from_string($answerstring, $theses_count);
$ans = $retval[0];
$emph = $retval[1];
} else {
$warning = true;
for ($i = 0; $i < $theses_count; $i++) {
$ans[$i] = 'skip';
$emph[$i] = 1;
}
}
if (isset($_POST['ans'])) {
$answerstring = $_POST['ans'];
$retval = result_from_string($answerstring, $theses_count);
$ans = $retval[0];
$emph = $retval[1];
} elseif (isset($_GET['ans'])) {
$answerstring = $_GET['ans'];
$retval = result_from_string($answerstring, $theses_count);
$ans = $retval[0];
$emph = $retval[1];
} else {
$warning = true;
for ($i = 0; $i < $theses_count; $i++) {
$ans[$i] = 'skip';
$emph[$i] = 1;
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>EUromat - Ergebnis</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta content="">
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<head>
<title>EUromat - Ergebnis</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta content="">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,700" rel="stylesheet">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<script src="js/jquery-2.0.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/mahlowat.js"></script>
<?php if ($warning) {
<?php if ($warning) {
?>
<div id="warning" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title">Hoppla...</h4>
</div>
<div class="modal-body">
<p><strong>Anscheinend hast du keine Fragen beantwortet.</strong><br />
Entweder hast du diese Seite direkt aufgerufen, oder du hast die Thesen noch nicht bearbeitet.</p>
<p>Falls letzteres zutrifft, möchten wir dir empfehlen, dies nun zu tun.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Schließen</button>
<a href="mahlowat.php" class="btn btn-primary">Thesen bearbeiten</a>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<div id="warning" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title">Hoppla...</h4>
</div>
<div class="modal-body">
<p><strong>Anscheinend hast du keine Fragen beantwortet.</strong><br />
Entweder hast du diese Seite direkt aufgerufen, oder du hast die Thesen noch nicht bearbeitet.</p>
<p>Falls letzteres zutrifft, möchten wir dir empfehlen, dies nun zu tun.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Schließen</button>
<a href="mahlowat.php" class="btn btn-primary">Thesen bearbeiten</a>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<script type="text/javascript">
$(document).ready(function() {
setTimeout(function(){
$('#warning').modal('show');
}, 500);
});
$(document).ready(function() {
setTimeout(function(){
$('#warning').modal('show');
}, 500);
});
</script>
<?php
} ?>
<?php
} ?>
<div class="container">
<div class="col-md-4 pull-right">
<a href="https://jef-sachsen.de/euromat"><img class="img-responsive" src="img/euromat.png" title="Euromat Logo" onclick="changeText()"/></a>
<div class="container mt-50">
<div class="col-md-4 pull-right">
<a href="https://jef-sachsen.de/euromat">
<img id="logo" class="img-responsive" src="img/euromat.png" title="Euromat Logo"/>
</a>
</div>
<div class="bottom-buffer top-buffer">
<div class="col-md-8">
<h1>Ergebnisse</h1>
<p>Klicke auf die Titel, um die zugehörige These anzuzeigen.</p>
<table class="table table-bordered">
<tr><th style="width: 320px;">Deine Wahl</th><th>Doppelt gewichten</th>
<h1>Ergebnisse</h1>
<p>Klicke auf die Titel, um die zugehörige These anzuzeigen.</p>
<table class="table table-bordered">
<tr><th style="width: 320px;">Deine Wahl</th><th>Doppelt gewichten</th>
<?php
for ($i = 0; $i < sizeof($ans); $i = $i + 1) {
($emph[$i] == 2) ? $active = "btn-info active" : $active = "btn-default";
($emph[$i] == 2) ? $multbutton = "These wird doppelt gewichtet" : $multbutton = "These doppelt gewichten";
$btnclass = code_to_btnclass(char_to_value($ans[$i]));
$labelclass = code_to_labelclass($ans[$i]);
echo "<tr>";
echo "<td><a id='thesis$i' class='btn $btnclass btn-block' onclick='toggleNext(this)'>".$theses[$i]['s']."</a></td>
<td><button id='thesis$i-multiply' class='btn btn-block weight $active' data-toggle='button'>$multbutton</button></td>";
echo "</tr>\n";
echo "<tr class='multheseslong'><td class='mtl' colspan='2'><!--<span class='label $labelclass'>These ".($i+1).": ".$theses[$i]['s']."</span><br>--> ".$theses[$i]['l']."</td></tr>";
($emph[$i] == 2) ? $active = "btn-info active" : $active = "btn-default";
($emph[$i] == 2) ? $multbutton = "These wird doppelt gewichtet" : $multbutton = "These doppelt gewichten";
$btnclass = code_to_btnclass(char_to_value($ans[$i]));
$labelclass = code_to_labelclass($ans[$i]);
echo "<tr>";
echo "<td><a id='thesis$i' class='btn $btnclass btn-block' onclick='toggleNext(this)'>".$theses[$i]['s']."</a></td>
<td><button id='thesis$i-multiply' class='btn btn-block weight $active' data-toggle='button'>$multbutton</button></td>";
echo "</tr>\n";
echo "<tr class='multheseslong'><td class='mtl' colspan='2'><!--<span class='label $labelclass'>These ".($i+1).": ".$theses[$i]['s']."</span><br>--> ".$theses[$i]['l']."</td></tr>";
}
?>
</table>
<button id="commit" class="btn btn-primary">Neu Auswerten</button>
</table>
<button id="commit" class="btn btn-primary">Neu Auswerten</button>
<div class="text-right">
<hr />
<small>Du kannst die Befragung
<a href="index.php" title="Von vorn beginnen">neu starten</a>
oder deine
<a href="mahlowat.php" onclick="callPage(event, 'mahlowat.php', array2str(getResultArray()), <?php echo "'$count'"; ?>)" title="Antworten ändern">Antworten ändern</a>.<br />
Außerdem haben wir auch eine <a href="faq.php?from=multiplier.php" onclick="callPage(event, 'faq.php?from=multiplier.php', array2str(getResultArray()), <?php echo "'$count'"; ?>)" title="FAQ">FAQ-Seite</a>.
</small>
</div>
</div>
</div>
<div class="text-right">
<hr />
<small>Du kannst die Befragung
<a href="index.php" title="Von vorn beginnen">neu starten</a>
oder deine
<a href="mahlowat.php" onclick="callPage(event, 'mahlowat.php', array2str(getResultArray()), <?php echo "'$count'"; ?>)" title="Antworten ändern">Antworten ändern</a>.<br />
Außerdem haben wir auch eine <a href="faq.php?from=multiplier.php" onclick="callPage(event, 'faq.php?from=multiplier.php', array2str(getResultArray()), <?php echo "'$count'"; ?>)" title="FAQ">FAQ-Seite</a>.
</small>
</div>
</div>
</div>
<script type="text/javascript">
$('#commit').click(function(){
resultArray = getResultArray();
gotoResultPage(resultArray);
});
$('.multheseslong').hide();
$('.tt').tooltip();
<script type="text/javascript">
$('#commit').click(function(){
resultArray = getResultArray();
gotoResultPage(resultArray);
});
$('.multheseslong').hide();
$('.tt').tooltip();
$('.weight').click(function(){
$(this).toggleClass('btn-default');
$(this).toggleClass('btn-info');
if($(this).text() == 'These doppelt gewichten'){
$(this).text('These wird doppelt gewichtet');
} else {
$(this).text('These doppelt gewichten');
}
});
$('.weight').click(function(){
$(this).toggleClass('btn-default');
$(this).toggleClass('btn-info');
if($(this).text() == 'These doppelt gewichten'){
$(this).text('These wird doppelt gewichtet');
} else {
$(this).text('These doppelt gewichten');
}
});
function getResultArray(){
multipliers = $('.weight');
resultArray = resultStringToArray("<?php echo $answerstring;?>", multipliers.length);
for(i = 0; i < multipliers.length; i++){
if(multipliers.eq(i).hasClass('btn-info')){
resultArray[i] = result2letter(resultArray[i], true);
} else {
resultArray[i] = result2letter(resultArray[i], false);
}
}
return resultArray;
}
function getResultArray(){
multipliers = $('.weight');
resultArray = resultStringToArray("<?php echo $answerstring;?>", multipliers.length);
for(i = 0; i < multipliers.length; i++){
if(multipliers.eq(i).hasClass('btn-info')){
resultArray[i] = result2letter(resultArray[i], true);
} else {
resultArray[i] = result2letter(resultArray[i], false);
}
}
return resultArray;
}
function toggleNext(caller){
$(caller).parent().parent().next().toggle();
}
function toggleNext(caller){
$(caller).parent().parent().next().toggle();
}
function gotoResultPage(resultArray){
count = '<?php echo $count; ?>';
if(count == 'true') {
callResult(resultArray, true);
} else {
callResult(resultArray, false);
}
}
function gotoResultPage(resultArray){
count = '<?php echo $count; ?>';
if(count == 'true') {
callResult(resultArray, true);
} else {
callResult(resultArray, false);
}
}
function callResult(resultArray, count){
ans = array2str(resultArray);
if(count){
url = "count.php?ans=" + ans;
jQuery.get(url,function( data ) {
callPage(null, 'result.php', ans, 'true');
});
} else {
jQuery.get("count.php?false",function( data ) {
callPage(null, 'result.php', ans, 'false');
});
}
}
</script>
</body>
</html>
function callResult(resultArray, count){
ans = array2str(resultArray);
if(count){
url = "count.php?ans=" + ans;
jQuery.get(url,function( data ) {
callPage(null, 'result.php', ans, 'true');
});
} else {
jQuery.get("count.php?false",function( data ) {
callPage(null, 'result.php', ans, 'false');
});
}
}
</script>
</body>
</html>

View File

@@ -79,25 +79,24 @@ if(!$data_content){
<!DOCTYPE html>
<html>
<head>
<title>Mahlowat - Ergebnis</title>
<title>EUromat - Ergebnis</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta content="Mahlowat">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta content="EUromat">
<meta name="image_src" content="img/mahlowat_logo.png"/>
<meta name="description" content="Mein Mahlowat-Ergebnis"/>
<meta name="image_src" content="img/euromat.png"/>
<meta name="description" content="Mein EUromat-Ergebnis"/>
<meta property="og:title" content="Mahlowat"/>
<meta property="og:title" content="EUromat"/>
<meta property="og:type" content="website"/>
<meta property="og:image" content="img/mahlowat_logo.png"/>
<meta property="og:image" content="img/euromat.png"/>
<meta property="og:url" content=""/>
<meta property="og:site-name" content="akut-bonn.de"/>
<meta property="og:description" content="Mein Mahlowat-Ergebnis"/>
<meta property="og:site-name" content="eurom.at"/>
<meta property="og:description" content="Mein EUromat-Ergebnis"/>
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,700" rel="stylesheet">
<link rel="stylesheet" href="css/font-awesome.min.css">
<link href="css/jef.min.css" rel="stylesheet" media="screen">
<link rel="stylesheet" type="text/css" href="css/style.css">
<script src="js/jquery-2.0.2.min.js"></script>
@@ -108,12 +107,14 @@ if(!$data_content){
</head>
<body>
<div class="container" style="margin-top: 20px;">
<div class="col-md-4 pull-right">
<a href="https://jef-sachsen.de/euromat"><img class="img-responsive" src="img/euromat.png" title="Euromat Logo" onclick="changeText()"/></a>
<div class="container mt-25">
<div class="col-md-3 pull-right">
<a href="https://jef-sachsen.de/euromat">
<img id="logo" class="img-responsive" src="img/euromat.png" title="Euromat Logo"/>
</a>
</div>
<div class="bottom-buffer top-buffer">
<div class="col-md-12">
<?php
if($bars_only){
echo "<h1>Ergebnis</h1>";
@@ -161,41 +162,47 @@ if(!$data_content){
<?php } ?>
<?php if(!$bars_only){?>
<p>Nicht zufrieden mit dem Ergebnis? Vielleicht willst du die Thesen <a href="multiplier.php" onclick="callPage(event, 'multiplier.php', <?php echo "'$answerstring', '$count'";?>)" title="Gewichtung ändern">anders gewichten</a>.</p>
<div class="row">
<div class="col-md-12">
<div class="alert alert-info">
<strong>Nicht zufrieden mit dem Ergebnis?</strong> Vielleicht willst du die Thesen <a href="multiplier.php" onclick="callPage(event, 'multiplier.php', <?php echo "'$answerstring', '$count'";?>)" title="Gewichtung ändern">anders gewichten</a>.
</div>
</div>
</div>
<?php } ?>
<div id="result-bars" class="table-responsive">
<table class="table table-bordered table-hover table-condensed table-striped">
<tr>
<th>Liste</th>
<th>Punkte</th>
<th>Prozent</th>
</tr>
<?php
$top = calculate_points($data['answers'][0], $answers);
for($i = 0; $i < sizeof($data['answers']); $i++){
(calculate_points($data['answers'][$i], $answers) == $top) ? $class = "" : $class = "";
print_list_result_bar($data, $i, $answers, $class);
echo "\n";
}
?>
</table>
<div id="result-bars" class="container-fluid mt-25">
<?php
$top = calculate_points($data['answers'][0], $answers);
for($i = 0; $i < sizeof($data['answers']); $i++){
(calculate_points($data['answers'][$i], $answers) == $top) ? $class = "" : $class = "";
print_list_result_bar($data, $i, $answers, $class);
echo "\n";
}
?>
</div>
<?php if(!$bars_only){?>
<div id="result-table">
<p>Thesen mit <i class='fa fa-star fa-lg'></i> fandest du besonders wichtig. Wenn du auf den Button mit dem Namen der These klickst, bekommst du die Statements der Listen in einer Übersicht angezeigt. Über die folgenden Schalter kannst Du einzelne Listen ein- oder ausblenden:</p>
<div class="well">
<div id="result-table" class="container-fluid mt-25">
<p>Thesen mit <i class='fa fa-star fa-lg'></i> fandest du besonders wichtig. Wenn du auf den Button mit dem Namen der These klickst, bekommst du die Statements der Listen in einer Übersicht angezeigt.</p>
<p class="hidden-sm hidden-xs">Über die folgenden Schalter kannst Du einzelne Listen ein- oder ausblenden:</p>
<ul class="nav nav-pills hidden-sm hidden-xs">
<?php
for($i = 0; $i < sizeof($data['lists']); $i = $i + 1){
$classname = string_to_css_classname($data['lists'][$i]['name']);
echo "<button class='btn btn-default btn-primary listbtn-$classname' onclick='toggleColumn(\"$classname\")'>{$data['lists'][$i]['name_x']} </button> ";
$list_logo = $data['lists'][$i]['logo'];
$list_name_short = $data['lists'][$i]['name_x'];
echo "
<li role='presentation' class='active listbtn-$classname'>
<a onclick='toggleColumn(\"$classname\")'>
$list_name_short
</a>
</li>
";
}
?>
</div>
<table class="table" id="resulttable">
</ul>
<table class="table mt-25" id="resulttable">
<?php
print_result_detail_table($answers, $data);
@@ -260,7 +267,7 @@ if(!$data_content){
function toggleColumn(listname){
$('.list-'+listname).toggle(200);
$('.listbtn-'+listname).toggleClass('btn-primary');
$('.listbtn-'+listname).toggleClass('active');
}
function showOverview(){
@@ -281,4 +288,4 @@ if(!$data_content){
<script src="shariff/shariff.min.js"></script>
</body>
</html>
</html>

41
scripts/buildTheJSON.js Normal file
View File

@@ -0,0 +1,41 @@
var fs = require('fs');
var dataJSON = require('./data.json');
var thesesLst = [], listsLst = [], answersLst = [];
for(var i=0; i < Object.keys(dataJSON.theses).length; i++) {
if (i !== 7 && i !== 8 && i !== 13) {
thesesLst.push(dataJSON.theses[i]);
}
}
for(var i=0; i < Object.keys(dataJSON.lists).length; i++) {
listsLst.push(dataJSON.lists[i]);
}
for(var i=0; i < Object.keys(dataJSON.answers).length; i++) {
answersLst.push(dataJSON.answers[i]);
var templistAnswers = [];
for(var j=0; j < Object.keys(dataJSON.answers[i]).length; j++) {
if (j !== 7 && j !== 8 && j !== 13) {
templistAnswers.push(dataJSON.answers[i][j]);
}
}
answersLst[i] = templistAnswers;
}
console.log(thesesLst, thesesLst.length);
//console.log(listsLst);
//console.log(answersLst);
dataJSON.lists = listsLst;
dataJSON.theses = thesesLst;
dataJSON.answers = answersLst;
fs.writeFile("./generated.json", JSON.stringify(dataJSON, null, 4), function(err) {
if(err) {
return console.log(err);
}
console.log("The file was saved!");
});

View File

@@ -8,28 +8,46 @@ function getSelection(input) {
if ( input == 'Zustimmung' )
return 'a';
if ( input == 'Ablehnung' )
return 'b'
if ( input == 'Enthaltung' )
return 'c'
if ( input == 'Enthaltung' )
return 'b'
}
csv()
.fromStream(request.get('https://docs.google.com/spreadsheets/d/1RL2x9ocXS5et1g5teOYIsBAcIwmy1u-SPCUdsGr1BtM/pub?output=csv'))
//.fromStream(request.get('https://docs.google.com/spreadsheets/d/1RL2x9ocXS5et1g5teOYIsBAcIwmy1u-SPCUdsGr1BtM/pub?output=csv'))
.fromFile('EUromat.csv')
.on('csv',(csvRow, index)=> {
// ingore the one from mucbkksfo@gmail.com (afd)
var parteien = [0, 1, 2, 3, 5, 6, 7, 8, 9, 10];
var parteien = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ];
// load theses
if (index === 0) {
var theses = [];
for (var i=4; i < csvRow.length; i++) {
if (csvRow[i] !== "") {
theses.push({"l": csvRow[i], "s": "", "x": ""});
}
}
parsedJSON.theses = {};
for (var i=0; i < theses.length; i++) {
parsedJSON.theses[i] = theses[i];
}
}
if ( parteien.indexOf(index) > -1 ) {
parsedJSON.lists[index] = {
parsedJSON.lists[Object.keys(parsedJSON.answers).length] = {
name : csvRow[2],
name_x : csvRow[2],
}
var parteiAnswers = {};
for ( var i = 0 ; i < 36 ; i ++ ){
for ( var i = 0 ; i < 20 ; i ++ ) {
parteiAnswers[i] = {
'selection' : getSelection(csvRow[4 + (i * 2)]),
@@ -37,7 +55,7 @@ csv()
}
}
parsedJSON.answers[index] = parteiAnswers;
parsedJSON.answers[Object.keys(parsedJSON.answers).length] = parteiAnswers;
}
else {
console.log("Ingore response from " + csvRow[2] + ", " + csvRow[3])