From 49ffffc438f97666d197dff8b4983876ad571e2f Mon Sep 17 00:00:00 2001 From: schneefux Date: Mon, 28 Apr 2014 17:00:00 +0200 Subject: implementiere Einstellungen --- js/.index.js.swp | Bin 45056 -> 40960 bytes js/index.js | 143 +++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 112 insertions(+), 31 deletions(-) (limited to 'js') diff --git a/js/.index.js.swp b/js/.index.js.swp index 29d33a5..1792131 100644 Binary files a/js/.index.js.swp and b/js/.index.js.swp differ 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 . */ -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('
'); + $('#vplantabs').append('
'); $('#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); -- cgit v1.3.1