diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2014-04-28 17:00:00 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2016-08-15 19:55:39 +0200 |
| commit | 49ffffc438f97666d197dff8b4983876ad571e2f (patch) | |
| tree | 7f96a5b9a3e1942006f6263abf63e3f7c654fa8d | |
| parent | 6148be011f556b1e995e88d56bf7cafbd62c066d (diff) | |
| download | wvs-vplan-49ffffc438f97666d197dff8b4983876ad571e2f.tar.gz wvs-vplan-49ffffc438f97666d197dff8b4983876ad571e2f.zip | |
implementiere Einstellungen
| -rw-r--r-- | index.html | 54 | ||||
| -rw-r--r-- | js/.index.js.swp | bin | 45056 -> 40960 bytes | |||
| -rw-r--r-- | js/index.js | 143 |
3 files changed, 142 insertions, 55 deletions
@@ -27,15 +27,41 @@ <title>WvS VPlan</title> </head> <body> - <div class="app"> - <div data-role="tabs" id="vplantabs"> + <div data-role="page" id="mainpage"> + <div data-role="panel" id="settingspanel" data-display="push"> + <h3>Einstellungen</h3> + <label for="notifydate">Benachrichtigen zur Uhrzeit:</label> + <input type="time" id="notifydate" data-mini="true" placeholder="18:00"> + + <label for="notifydayflip">Am Tag vorher benachrichtigen:</label> + <select id="notifydayflip" data-role="slider" data-mini="true" > + <option value="1">Nein</option> + <option value="0">Ja</option> + </select> + + <label for="addclass">Benachrichtigen auch für Klasse(n):</label> + <textarea id="addclass" data-mini="true"></textarea> + + <label for="dntflip">Zu Statistiken beitragen:</label> + <select id="dntflip" data-role="slider" data-mini="true"> + <option value="true">Nein</option> + <option value="false">Ja</option> + </select> + </div> <!-- settingspanel --> + + <div data-role="header"> + <h1>WvS VPlan</h1> + <a href="#settingspanel" class="ui-btn ui-icon-gear ui-btn-icon-notext ui-corner-all" onclick="javascript:track('ui/settings');"></a> + </div> + + <div data-role="tabs" id="vplantabs" class="ui-content tablist-content"> <div data-role="navbar" id="vplannavbar"> <ul> <li onclick="javascript:track('ui/tab/login');"><a href="#login">Login</a></li> </ul> </div> - <div id="login" class="ui-content"> + <div id="login"> <div data-role="popup" id="disclaimerpopup" data-theme="a" data-dismissible> <p>Copyright (C) 2014<br> <br> @@ -69,7 +95,7 @@ </div> </div> <!-- loginpopup --> - <div style="text-align: center" id="noplans" style="display:none">Es sind noch keine Pläne verfügbar.</div> + <div style="text-align: center" id="noplans" style="display:none"><p>Es sind noch keine Pläne verfügbar.</p></div> <div style="text-align: center"><a id="lnklogin" href="#loginpopup" data-rel="popup" data-role="button" data-position-to="window" data-inline="true" data-transition="pop" onclick="javascript:track('ui/tab/login/loginpopup');">Bitte logge dich ein!</a></div> <div style="text-align: center; display: none"><a id="lnkdisclaimer" href="#disclaimerpopup" data-rel="popup" data-role="button" data-position-to="window" data-inline="true" data-transition="pop" onclick="javascript:track('ui/tab/login/disclaimerpopup');">Über</a></div> </div> @@ -83,26 +109,6 @@ <script tpye="text/javascript" src="js/moment-with-langs.min.js"></script> <script type="text/javascript" src="js/piwik.js"></script> - <script type="text/javascript"> - /* Sprache setzen */ - moment.lang('de'); - - /* Nutzungsstatistiken */ - var _paq = _paq || []; - - var dnt = window.localStorage.getItem('dnt'); - - if(dnt == 'undefined' || dnt == null || dnt == ''){ - dnt = false; - } - - _paq.push(['setDoNotTrack', dnt]); - _paq.push(['setTrackerUrl', 'http://klimaag.***REMOVED***/piwik/piwik.php']); // TODO Https wäre schön. - _paq.push(['setSiteId', 5]); - - console.log('Piwik initialisiert'); - </script> - <script type="text/javascript" src="js/index.js"></script> </body> </html> diff --git a/js/.index.js.swp b/js/.index.js.swp Binary files differindex 29d33a5..1792131 100644 --- a/js/.index.js.swp +++ b/js/.index.js.swp 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); |
