From d56770cda64ff7ac86baf94f966aa27550a2268f Mon Sep 17 00:00:00 2001 From: Timm <timm@szigat.de> Date: Fri, 17 Apr 2015 20:28:28 +0200 Subject: [PATCH] added consectuive day streak --- status.html | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/status.html b/status.html index c05511d..31f8d3b 100644 --- a/status.html +++ b/status.html @@ -5,7 +5,9 @@ layout: default <script src="js/d3.min.js"></script> <script> var timeFormat = 'YYYY-MM-DD HH:mm:ss'; + var dateFormat = 'YYYY-MM-DD'; function toHHMMSS (sec_num) { + sec_num = parseInt(sec_num); var hours = Math.floor(sec_num / 3600); var minutes = Math.floor((sec_num - (hours * 3600)) / 60); var seconds = sec_num - (hours * 3600) - (minutes * 60); @@ -52,8 +54,36 @@ layout: default var hourStart = moment.unix(data[0].value.lastchange) var openTimeArrayIndex = 0; var hourArray = []; + var dayCountHigh = 0; + var dayCountHighStart = dayStart.clone(); + var dayCountHighEnd = dayStart.clone(); + var dayCountCurrent = 0; + var dayCountCurrentStart = dayStart.clone(); + var dayCountCurrentEnd = dayStart.clone(); + var wasOpen = null; while(hourStart < moment()) { + if(hourStart.date() != dayStart.date()) { + dayStart.add(1, 'day'); + dayCountCurrentEnd = dayStart.clone(); + + if(wasOpen == true) { + dayCountCurrent++; + + if(dayCountCurrent > dayCountHigh) { + dayCountHigh = dayCountCurrent; + dayCountHighStart = dayCountCurrentStart.clone(); + dayCountHighEnd = dayCountCurrentEnd.clone(); + } + + } else { + dayCountCurrent = 0; + dayCountCurrentStart = dayStart.clone(); + } + + wasOpen = false; + } + if(hourArray[hourStart.isoWeekday()] === undefined) hourArray[hourStart.isoWeekday()] = []; @@ -62,6 +92,7 @@ layout: default if(moment.unix(openTimeArray[openTimeArrayIndex][1]) < hourStart && moment.unix(openTimeArray[openTimeArrayIndex][2]) > hourStart) { hourArray[hourStart.isoWeekday()][hourStart.hour()]++; + wasOpen = true; } if(moment.unix(openTimeArray[openTimeArrayIndex][2]) < hourStart && openTimeArray.length > openTimeArrayIndex + 1) @@ -85,6 +116,25 @@ layout: default openTimeArray.sort(sortArrayTimeNumber); closedTimeArray.sort(sortArrayTimeNumber); + + var dayCountCurrentText = ""; + var dayCountHighText = ""; + + if(dayCountCurrent > 1) + dayCountCurrentText = dayCountCurrent + " days (" + dayCountCurrentStart.format(dateFormat) + " - " + dayCountCurrentEnd.format(dateFormat) + ")"; + else + dayCountCurrentText = dayCountCurrent + " day (" + dayCountCurrentStart.format(dateFormat) + ")"; + + if(dayCountHigh > 1) + dayCountHighText = dayCountHigh + " days (" + dayCountHighStart.format(dateFormat) + " - " + dayCountHighEnd.format(dateFormat) + ")"; + else + dayCountHighText = dayCountHigh + " day (" + dayCountHighStart.format(dateFormat) + ")"; + + + var dayCountHighText = dayCountHigh + ' days (' + dayCountHighStart.format(dateFormat) + " - " + dayCountHighEnd.format(dateFormat) + ")"; + + $( "#days_open_current td:last" ).html(dayCountCurrentText); + $( "#days_open_high td:last" ).html(dayCountHighText); $( "#space_open_percent" ).html(percentOpen + '% open'); $( "#space_open_percent" ).width(percentOpen + '%'); @@ -311,7 +361,7 @@ layout: default unknown </td> </tr> - <tr> + <tr id="days_open_current"> <td> consecutive days open </td> @@ -319,7 +369,7 @@ layout: default unknown </td> </tr> - <tr> + <tr id="days_open_high"> <td> consecutive days open (highest streak) </td>