summaryrefslogtreecommitdiff
path: root/js/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/index.js')
-rw-r--r--js/index.js143
1 files changed, 112 insertions, 31 deletions
diff --git a/js/index.js b/js/index.js
index 014d057..13ab09a 100644
--- a/js/index.js
+++ b/js/index.js
@@ -16,10 +16,13 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-function setDNT(dnt){
- _paq.push(['setDoNotTrack', dnt])
- window.localStorage.setItem('dnt', dnt);
+function setDNT(dntrack){
+ dntrack = dntrack.toString();
+
+ _paq.push(['setDoNotTrack', dntrack])
+ localStorage.setItem('dntrack', dntrack);
$('#disclaimerpopup').popup('close');
+ $('#dntflip').val(dntrack);
}
function track(what){
@@ -32,6 +35,13 @@ function trackPlan(vdate){
track('plan/' + vdate.format('YYYY/MM/DD'));
}
+$('#settingspanel').on('panelclose', function(){
+ localStorage.setItem('dntrack', $('#dntflip').val());
+ localStorage.setItem('classes', $('#addclass').val().toUpperCase());
+ localStorage.setItem('notifyday', $('#notifydayflip').val());
+ localStorage.setItem('notifydate', $('#notifydate').val());
+});
+
document.addEventListener('pause', function(){
track('event/pause');
});
@@ -40,15 +50,57 @@ document.addEventListener('resume', function(){
track('event/resume');
});
+var _paq = _paq || [];
+$('#mainpage').on('pagebeforeshow', function(){
+ /* Sprache setzen */
+ moment.lang('de');
+
+ /* Nutzungsstatistiken */
+ _paq.push(['setTrackerUrl', 'http://klimaag.***REMOVED***/piwik/piwik.php']); // TODO Https wäre schön.
+ _paq.push(['setSiteId', 5]);
+
+ console.log('Piwik initialisiert');
+
+ /* gespeicherte Daten laden */
+ var dntrack = localStorage.getItem('dntrack');
+ var additionalClasses = localStorage.getItem('classes');
+ var notifyDay = localStorage.getItem('notifyday');
+ var notifyDate = localStorage.getItem('notifydate');
+
+ if(dntrack == null || dntrack.length === 0){
+ dntrack = 'false';
+ }
+ $('#dntflip').val(dntrack).slider('refresh');
+
+ if(additionalClasses == null || additionalClasses.length === 0){
+ additionalClasses = '';
+ }
+ $('#addclass').val(additionalClasses).textinput('refresh');
+
+ if(notifyDay == null || notifyDay.length === 0){
+ notifyDay = 0;
+ }
+ $('#notifydayflip').val(notifyDay).slider('refresh');
+
+ if(notifyDate == null || notifyDate.length === 0){
+ notifyDate = '18:00';
+ }
+ $('#notifydate').val(notifyDate).textinput('refresh');
+
+ /* Piwik initialisieren */
+ _paq.push(['setDoNotTrack', dntrack]);
+});
+
// Login-Popup beim Start
document.addEventListener('deviceready', function(){
+ /* los geht's */
_paq.push(['setCustomVariable', 1, 'Modell', device.model, 'visit']);
_paq.push(['setCustomVariable', 2, 'Version', device.version, 'visit']);
track('event/load');
- var dnt = window.localStorage.getItem('dnt');
+ var dntrack = localStorage.getItem('dntrack');
- if(dnt == 'undefined' || dnt == null || dnt == ''){
+ if(dntrack == null || dntrack.length === 0){
setTimeout(function(){
$('#lnkdisclaimer').click();
}, 2000);
@@ -72,15 +124,15 @@ $('#disclaimerpopup').on('popupafterclose', function(){
/* füllt die Loginform mit gespeicherten Werten */
function fillform(){
- var username = window.localStorage.getItem('username');
+ var username = localStorage.getItem('username');
- if(username !== 'undefined' && username != null && username != ''){
+ if(username != null && username.length !== 0){
$('#username').val(username);
}
- var password = window.localStorage.getItem('password');
+ var password = localStorage.getItem('password');
- if(password !== 'undefined' && password != null && password != ''){
+ if(password != null && password.length !== 0){
$('#password').val(password);
}
}
@@ -88,7 +140,7 @@ function fillform(){
/* benachrichtigt den Benutzer an vdate mit msg */
var notifications = 0;
function addNotification(vdate, msg){
- vdate.subtract('days', 1); // Ein Tag vorher, 18 Uhr benachrichtigen
+ vdate.subtract('days', $('#notifydayflip').val()); // Bei Bedarf einen Tag vorher
var secondsUntilDate = moment.diff(vdate, 'seconds');
@@ -124,6 +176,25 @@ function addSocialButton(vdate, msg, $div){
}
}
+function checkeKlasse(nutzerklasse, klasse){
+ var subklassen = nutzerklasse.match(/(\d{1,2})([ABCD])/);
+ var wichtig = true;
+
+ if(klasse.indexOf(nutzerklasse) == -1){
+ if(subklassen !== null){
+ for(j = 1; j < subklassen.length; j++){ // Wenn alle Buchstaben der Klasse in der Vertretung vorkommen
+ if(klasse.indexOf(subklassen[j]) == -1){
+ wichtig = false;
+ }
+ }
+ }else{
+ wichtig = false;
+ }
+ }
+
+ return wichtig;
+}
+
/* konvertiert die extrahierten Strings in ein lesbares Format und filtert nach relevanten Vertretungen */
function parseVertretungen(str, username){
var vertretungen_re = new RegExp('(\\w+)\\s+(\\d(?:\\s+-\\s+\\d)?)\\s+((?:x\\s+)?)(\\+|\\w+|---)\\s+(\\w+|---)\\s+(\\w+|---)\\s+(.*?)\\s+(\\w+)(?:\\s+)?(.*?)');
@@ -131,7 +202,6 @@ function parseVertretungen(str, username){
var vertretungen = [];
var nutzerklasse = username.match(/(\w+)_.*/)[1].toUpperCase();
- var subklassen = nutzerklasse.match(/(\d{1,2})([ABCD])/);
str.split('\n').forEach(function(vertretungsstr){
res = vertretungsstr.match(vertretungen_re)
@@ -147,18 +217,22 @@ function parseVertretungen(str, username){
var lehrer = res[8];
var info = res[9];
- if(klasse.indexOf(nutzerklasse) == -1){
- var wichtig = true;
+ var wichtig = false;
+
+ if(checkeKlasse(nutzerklasse, klasse) == true){
+ wichtig = true;
+ }else{
+ var additionalClasses = $('#addclass').val().split('\n'); // alle benutzerdefinierten Klassen durchgehen
- for(j = 1; j < subklassen.length; j++){
- if(klasse.indexOf(subklassen[j]) == -1){
- wichtig = false;
+ additionalClasses.forEach(function(addCls){
+ if(checkeKlasse(addCls, klasse) == true){
+ wichtig = true;
}
- }
+ });
+ }
- if(wichtig == false){
- return;
- }
+ if(wichtig == false){
+ return;
}
if(entfall == true){
@@ -259,11 +333,18 @@ function renderPage($div, pdf, pageNumber, callback){
last_block = block;
}
- var username = getuserdata()[0];
+ var username = getuserdata();
+
+ if(username == null){
+ return;
+ }else{
+ username = username[0];
+ }
+
var vertretungen = parseVertretungen(page_text, username);
if(vertretungen.length > 0){
- var vdate = moment($div.data('date')).startOf('minute').set('hour', 18);
+ var vdate = moment($div.data('date')).startOf('minute').set('hour', $('#notifydate').val());
addNotification(vdate, vertretungen.join('\n'));
addSocialButton(vdate, vertretungen.join(', '), $div);
@@ -364,7 +445,7 @@ function addplanattr(fileEntry, wasdownloaded){
$('#vplannavbar').navbar();
- $('#vplantabs').append('<div id="' + name + '" class="ui-content tablist-content"></div>');
+ $('#vplantabs').append('<div id="' + name + '" class="tablist-content"></div>');
$('#vplantabs').tabs('refresh');
$('#' + name).data('date', vdate.toString());
@@ -481,7 +562,7 @@ function loggedin(resulthtml){
return 0;
}
- window.localStorage.setItem('overviewlink', link);
+ localStorage.setItem('overviewlink', link);
console.log('Eingeloggt');
get_overview(link, fail);
@@ -513,21 +594,21 @@ function getuserdata(){
var username = encodeURIComponent($('#username').val());
if(username == ''){
- username = window.localStorage.getItem('username');
+ username = localStorage.getItem('username');
}else{
- window.localStorage.setItem('username', username);
+ localStorage.setItem('username', username);
}
var password = encodeURIComponent($('#password').val());
if(password == ''){
- password = window.localStorage.getItem('password');
+ password = localStorage.getItem('password');
}else{
- window.localStorage.setItem('password', password);
+ localStorage.setItem('password', password);
}
console.log('Benutzerdaten geladen');
- if(username !== 'undefined' && username != null && username != '' && password !== 'undefined' && password != null && password != ''){
+ if(username != null && username.length !== 0 && password != null && password.length !== 0){
$('#username').val(username);
$('#password').val(password);
@@ -556,11 +637,11 @@ function login(){
/* bei einem Fehlschlag wird in login() versucht, die Nutzerdaten zu laden */
/* und wenn das schiefläuft, muss der Nutzer seine Daten selbst eingeben */
function trylogin(){
- var link = window.localStorage.getItem('overviewlink');
+ var link = localStorage.getItem('overviewlink');
$('#loginpopup').popup('close');
- if(typeof link !== 'undefined' && link != null){
+ if(link != null && link.length !== 0){
console.log('Teste Login');
console.log(link);