diff options
Diffstat (limited to 'js/index.js')
| -rw-r--r-- | js/index.js | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/js/index.js b/js/index.js index 88e891c..014d057 100644 --- a/js/index.js +++ b/js/index.js @@ -23,9 +23,15 @@ function setDNT(dnt){ } function track(what){ + _paq.push(['setCustomUrl', what]); _paq.push(['trackPageView', what]); } +function trackPlan(vdate){ + track('ui/tab/plan'); + track('plan/' + vdate.format('YYYY/MM/DD')); +} + document.addEventListener('pause', function(){ track('event/pause'); }); @@ -82,10 +88,9 @@ function fillform(){ /* benachrichtigt den Benutzer an vdate mit msg */ var notifications = 0; function addNotification(vdate, msg){ - var today = new Date(); - vdate.setDate(vdate.getDate() - 1); // Ein Tag vorher, 18 Uhr benachrichtigen + vdate.subtract('days', 1); // Ein Tag vorher, 18 Uhr benachrichtigen - var secondsUntilDate = (vdate.getTime() - today.getTime()) / 1000; + var secondsUntilDate = moment.diff(vdate, 'seconds'); if(secondsUntilDate > 0){ localNotification.add(++notifications, { @@ -93,16 +98,14 @@ function addNotification(vdate, msg){ message: msg, badge: 0}); - console.log('Benachrichtigung hinzugefügt: ' + vdate.toString() + '; ' + msg); + console.log('Benachrichtigung hinzugefügt: ' + vdate.format('DD.MM. hh:mm') + '; ' + msg); } } /* zeigt einen Button an, mit dem die Vertretung geteilt werden kann */ function addSocialButton(vdate, msg, $div){ - var today = new Date(); - - if(vdate >= today){ - var datestr = vdate.getDate() + "." + vdate.getMonth() + "."; + if(moment().isBefore(vdate)){ + var datestr = vdate.format('dddd.'); var btn = $('<button />') .text('Teile die Vertretungen') @@ -260,9 +263,7 @@ function renderPage($div, pdf, pageNumber, callback){ var vertretungen = parseVertretungen(page_text, username); if(vertretungen.length > 0){ - var vdate = new Date($div.data('date')); - vdate.setHours(18); - vdate.setMinutes(0); + var vdate = moment($div.data('date')).startOf('minute').set('hour', 18); addNotification(vdate, vertretungen.join('\n')); addSocialButton(vdate, vertretungen.join(', '), $div); @@ -318,7 +319,8 @@ function removelogintab(){ $('#login').remove(); $('#vplantabs').tabs('refresh'); - track('ui/tab/plan_' + Math.floor((vdate - (new Date())) / (1000 * 60 * 60 * 24))); + var vdate = moment($('#vplantabs ul li:first').data('date')); + trackPlan(vdate); } function replaceUmlauts(umlautstr){ @@ -333,19 +335,17 @@ function addplanattr(fileEntry, wasdownloaded){ var name = fileEntry.name; console.log('Dateiname: ' + name); - var fname_re = new RegExp('.*?(\\d{4})-(\\d{2})-(\\d{2})(.*?)\\.pdf'); + var fname_re = new RegExp('.*?(\\d{4}-\\d{2}-\\d{2})(.*?)\\.pdf'); var results = name.match(fname_re); + var vdate = moment(results[1], 'YYYY-MM-DD').startOf('day'); - if(results[4] !== null){ - results[4] = results[4].replace(/[ ,]/g, '-').replace(/-{2}/g, '-'); + if(results[2] !== null){ + results[2] = results[2].replace(/[ ,]/g, '-').replace(/-{2}/g, '-'); } - name = results[3] + '_' + results[2] + '_' + results[1] + results[4]; - name = replaceUmlauts(name); + name = vdate.format('DD_MM_YYYY') + replaceUmlauts(results[2]); if(!$(name).length){ - var vdate = new Date(parseInt(results[1]), parseInt(results[2]) - 1, parseInt(results[3])); - $('#vplannavbar').find('*').andSelf().each(function(){ $(this).removeClass(function(i, cn){ var matches = cn.match(/ui-[\w\-]+/g) || []; @@ -359,7 +359,7 @@ function addplanattr(fileEntry, wasdownloaded){ $('#vplannavbar').navbar('destroy'); $('#vplannavbar ul').append('<li><a href="#' + name + '">' + name.replace(/_/g, '.') + '</a></li>') $('#vplannavbar ul li:last').click(function(){ - track('ui/tab/plan_' + Math.floor((vdate - (new Date())) / (1000 * 60 * 60 * 24))); + trackPlan(vdate); }); $('#vplannavbar').navbar(); @@ -572,21 +572,16 @@ function trylogin(){ /* gibt aktuelle Pläne aus entries zurück */ function getactual(entries){ - var fname_re = new RegExp('.*?(\\d{4})-(\\d{2})-(\\d{2}).*?\\.pdf'); - var today = new Date(); + var fname_re = new RegExp('.*?(\\d{4}-\\d{2}-\\d{2}).*?\\.pdf'); + var today = moment().startOf('day'); var actual = []; - today.setHours(0); - today.setMinutes(0); - today.setSeconds(0); - today.setMilliseconds(0); - entries.forEach(function(entry){ console.log(entry.name); var results = entry.name.match(fname_re); - var fdate = new Date(parseInt(results[1]), parseInt(results[2]) - 1, parseInt(results[3])); + var fdate = moment(results[1], 'YYYY-MM-DD'); - if(fdate >= today){ + if(moment().isBefore(fdate)){ actual.push(entry); } }); |
