diff options
Diffstat (limited to 'www/js')
-rw-r--r-- | www/js/calendar.js | 86 | ||||
-rw-r--r-- | www/js/utils.js | 16 |
2 files changed, 102 insertions, 0 deletions
diff --git a/www/js/calendar.js b/www/js/calendar.js new file mode 100644 index 0000000..8bdf033 --- /dev/null +++ b/www/js/calendar.js @@ -0,0 +1,86 @@ +/* + * rhrdweb + * + * Copyright (C) 2016 Christian Pointner <equinox@helsinki.at> + * + * This file is part of rhrdweb. + * + * rhrdweb is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * rhrdweb is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with rhrdweb. If not, see <http://www.gnu.org/licenses/>. + */ + +'use strict'; + +function getLastMonday() { + var d = new Date(); + d.setHours(0, 0, 0, 0); + var dow = d.getDay() + if(dow == 0) { + return new Date(d - (6*24*3600000)); + } else { + return new Date(d - ((dow-1)*24*3600000)); + } +} + +function addDeltaDays(d, days) { + return new Date(d.valueOf() + (days*24*3600000)) +} + +function addWeekClass(row, week) { + switch(week) { + case 1: + row.addClass('label-info'); + break; + case 2: + row.addClass('label-warning'); + break; + case 3: + row.addClass('label-success'); + break; + case 4: + row.addClass('label-danger'); + break; + default: + row.addClass('label-default'); + } +} + +function calendar_redraw() { + var cal = $('#calendar'); + cal.find("tr:gt(0)").remove(); + + var date = getLastMonday(); + date = addDeltaDays(date, -28); + for(var w = 0; w < 42; w++) { + var week = get_rd_week(date.valueOf()); + var row = $('<tr>'); + addWeekClass(row, week); + + row.append($('<td>').addClass('week').text(week)); + row.append($('<td>').addClass('month').text(monthname_short[date.getMonth()])); + for(var d = 0; d < 7; d++) { + var col = $('<td>').text(date.getDate()); + row.append(col); + if(d < 6) { + date = addDeltaDays(date, 1); + } + } + row.append($('<td>').addClass('month').text(monthname_short[date.getMonth()])); + date = addDeltaDays(date, 1); + $('#calendar').append(row); + } +} + +function calendar_init() { + calendar_redraw() +} diff --git a/www/js/utils.js b/www/js/utils.js index ba40863..a7fef1b 100644 --- a/www/js/utils.js +++ b/www/js/utils.js @@ -38,6 +38,22 @@ weekday[6] = 'Samstag'; var weekday_short = new Array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'); +var monthname = new Array(7); +monthname[0] = 'Jänner'; +monthname[1] = 'Februar'; +monthname[2] = 'März'; +monthname[3] = 'April'; +monthname[4] = 'Mai'; +monthname[5] = 'Juni'; +monthname[6] = 'Juli'; +monthname[7] = 'August'; +monthname[8] = 'September'; +monthname[9] = 'Oktober'; +monthname[10] = 'November'; +monthname[11] = 'Dezember'; + +var monthname_short = new Array('Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'); + function format_datetime(d) { if(Object.prototype.toString.call(d) !== '[object Date]') { return '-'; |