From 9461d4b4facab63ef35f4900f5ad9465ce7e5efc Mon Sep 17 00:00:00 2001 From: QS5ELkMu Date: Sat, 22 Dec 2018 17:25:47 +0100 Subject: [PATCH] [ADD] Refresh Filters Button [IMP] Hotel Calendar UTC usage --- .../calendar/hotel_calendar_controller.js | 47 ++++++++++++------- .../static/src/lib/hcalendar/js/hcalendar.js | 12 ++--- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_controller.js b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_controller.js index 45214dc8d..b3ab3cb77 100644 --- a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_controller.js +++ b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_controller.js @@ -323,7 +323,6 @@ var PMSCalendarController = AbstractController.extend({ this.renderer.$el.find('#pms-menu #btn_save_calendar_record').on('click', function(ev){ var active_calendar_record = self._multi_calendar.get_calendar_record(self._multi_calendar.get_active_index()); - active_calendar_record.name = "LOLO"; var name = self.renderer.$el.find('#pms-menu #calendar_name').val(); var category = _.map(self.renderer.$el.find('#pms-menu #type_list').val(), function(item){ return +item; }); @@ -350,9 +349,22 @@ var PMSCalendarController = AbstractController.extend({ }); }); + this.renderer.$el.find('#pms-menu #btn_reload_calendar_filters').on('click', function(ev){ + var active_calendar_record = self._multi_calendar.get_calendar_record(self._multi_calendar.get_active_index()); + self._multi_calendar.update_active_tab_name(active_calendar_record.name); + var $calendar_name = this.renderer.$el.find('#pms-menu .menu-filter-box #calendar_name'); + $calendar_name.val(active_calendar_record.name); + self._refresh_filters({ + 'class_id': active_calendar_record['segmentation_ids'], + 'floor_id': active_calendar_record['location_ids'], + 'amenities': active_calendar_record['amenity_ids'], + 'room_type_id': active_calendar_record['room_type_ids'], + }); + }); + this._multi_calendar.on('tab_changed', function(ev, active_index){ if (active_index) { - self._refresh_filters(active_index); + self._refresh_view_options(active_index); } }); }, @@ -800,7 +812,7 @@ var PMSCalendarController = AbstractController.extend({ } }, - _refresh_filters: function(active_index) { + _refresh_view_options: function(active_index) { var active_calendar = this._multi_calendar.get_calendar(active_index); /* Dates */ @@ -854,19 +866,22 @@ var PMSCalendarController = AbstractController.extend({ $calendar_name.val(active_calendar_record['name']); /* Calendar Filters */ - var active_filters = this._multi_calendar.get_active_filters(); - var $segmentation = this.renderer.$el.find('#pms-menu #type_list'); - var $location = this.renderer.$el.find('#pms-menu #floor_list'); - var $amenities = this.renderer.$el.find('#pms-menu #amenities_list'); - var $types = this.renderer.$el.find('#pms-menu #virtual_list'); - $segmentation.val(active_filters['class_id']); - $segmentation.trigger('change'); - $location.val(active_filters['floor_id']); - $location.trigger('change'); - $amenities.val(active_filters['amenities']); - $amenities.trigger('change'); - $types.val(active_filters['room_type_id']); - $types.trigger('change'); + this._refresh_filters(this._multi_calendar.get_active_filters()); + }, + + _refresh_filters: function(calendar_filters) { + var $segmentation = this.renderer.$el.find('#pms-menu #type_list'); + var $location = this.renderer.$el.find('#pms-menu #floor_list'); + var $amenities = this.renderer.$el.find('#pms-menu #amenities_list'); + var $types = this.renderer.$el.find('#pms-menu #virtual_list'); + $segmentation.val(calendar_filters['class_id']); + $segmentation.trigger('change'); + $location.val(calendar_filters['floor_id']); + $location.trigger('change'); + $amenities.val(calendar_filters['amenities']); + $amenities.trigger('change'); + $types.val(calendar_filters['room_type_id']); + $types.trigger('change'); }, //-------------------------------------------------------------------------- diff --git a/hotel_calendar/static/src/lib/hcalendar/js/hcalendar.js b/hotel_calendar/static/src/lib/hcalendar/js/hcalendar.js index 55bd5423e..624a4f840 100644 --- a/hotel_calendar/static/src/lib/hcalendar/js/hcalendar.js +++ b/hotel_calendar/static/src/lib/hcalendar/js/hcalendar.js @@ -65,7 +65,7 @@ function HotelCalendar(/*String*/querySelector, /*Dictionary*/options, /*List*/p this.options.startDate = this.options.startDate.clone(); this.options.startDate.subtract('1', 'd'); this.options.orig_days = this.options.days; - this.options.days = this.parseDays(this.options.days); + this.options.days = this.parseDays(this.options.days) + 1; this.options.rooms = _.map(this.options.rooms, function(item){ return item.clone(); }); // Check correct values @@ -117,7 +117,7 @@ HotelCalendar.prototype = { if (moment.isMoment(date)) { this.options.startDate = date; } else if (typeof date === 'string'){ - this.options.startDate = HotelCalendar.toMomentUTC(date); + this.options.startDate = HotelCalendar.toMoment(date); } else { console.warn("[Hotel Calendar][setStartDate] Invalid date format!"); return; @@ -126,7 +126,7 @@ HotelCalendar.prototype = { this.options.startDate.subtract('1','d'); if (typeof days !== 'undefined') { this.options.orig_days = days; - this.options.days = this.parseDays(days); + this.options.days = this.parseDays(days) + 1; } this._endDate = this.options.startDate.clone().add(this.options.days, 'd'); @@ -147,7 +147,7 @@ HotelCalendar.prototype = { if (days === 'month') { return moment().daysInMonth(); } - return days; + return +days; }, toggleOverbookingsVisibility: function(/*Bool*/show) { @@ -2907,8 +2907,8 @@ function HReservation(/*Dictionary*/rValues) { } HReservation.prototype = { setRoom: function(/*HRoomObject*/room) { this.room = room; }, - setStartDate: function(/*String,MomentObject*/date) { this.startDate = HotelCalendar.toMomentUTC(date); }, - setEndDate: function(/*String,MomentObject*/date) { this.endDate = HotelCalendar.toMomentUTC(date); }, + setStartDate: function(/*String,MomentObject*/date) { this.startDate = HotelCalendar.toMoment(date); }, + setEndDate: function(/*String,MomentObject*/date) { this.endDate = HotelCalendar.toMoment(date); }, clearUserData: function() { this._userData = {}; }, getUserData: function(/*String?*/key) {