From 437fc1b7d9d8a510342d16fc8f68fdb369e6ad8a Mon Sep 17 00:00:00 2001 From: Konstantin Date: Fri, 24 Feb 2017 07:38:08 +0900 Subject: Make link to calendar view bookable (#3063) --- assets/js/components/calendar.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'assets/js') diff --git a/assets/js/components/calendar.js b/assets/js/components/calendar.js index d07c911d..ed6916b2 100644 --- a/assets/js/components/calendar.js +++ b/assets/js/components/calendar.js @@ -1,13 +1,23 @@ KB.component('calendar', function (containerElement, options) { + var modeMapping = { // Let's have bookable pretty mode names + month: 'month', + week: 'agendaWeek', + day: 'agendaDay' + }; this.render = function () { var calendar = $(containerElement); + var mode = 'month'; + if (window.location.hash) { // Check if hash contains mode + var hashMode = window.location.hash.substr(1); + mode = modeMapping[hashMode] || mode; + } calendar.fullCalendar({ locale: $("body").data("js-lang"), editable: true, eventLimit: true, - defaultView: "month", + defaultView: mode, header: { left: 'prev,next today', center: 'title', @@ -26,7 +36,14 @@ KB.component('calendar', function (containerElement, options) { }) }); }, - viewRender: function() { + viewRender: function(view) { + // Map view.name back and update location.hash + for (var id in modeMapping) { + if (modeMapping[id] === view.name) { // Found + window.location.hash = id; + break; + } + } var url = options.checkUrl; var params = { "start": calendar.fullCalendar('getView').start.format(), -- cgit v1.2.3