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 810398a16..05f353d2b 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
@@ -176,6 +176,7 @@ var PMSCalendarController = AbstractController.extend({
_reload_active_calendar: function() {
var self = this;
var filterDates = this.renderer.get_view_filter_dates();
+ var active_calendar = this._multi_calendar.get_active_calendar();
// Clip dates
var dfrom = filterDates[0].clone(),
dto = filterDates[1].clone();
@@ -203,11 +204,11 @@ var PMSCalendarController = AbstractController.extend({
self._multi_calendar._reserv_tooltips = _.extend(this._multi_calendar._reserv_tooltips, results['tooltips']);
self._multi_calendar.merge_days_tooltips(results['events']);
- self._multi_calendar.merge_pricelist(results['pricelist']);
- self._multi_calendar.merge_restrictions(results['restrictions']);
- self._multi_calendar.merge_reservations(reservs);
+ self._multi_calendar.merge_pricelist(results['pricelist'], active_calendar);
+ self._multi_calendar.merge_restrictions(results['restrictions'], active_calendar);
+ self._multi_calendar.merge_reservations(reservs, active_calendar);
- self._multi_calendar._assign_extra_info(this._multi_calendar.get_active_calendar());
+ self._multi_calendar._assign_extra_info(active_calendar);
}.bind(this)).then(function(){
self.renderer._last_dates = filterDates;
});
@@ -216,15 +217,12 @@ var PMSCalendarController = AbstractController.extend({
_assign_view_events: function() {
var self = this;
var $dateTimePickerBegin = this.renderer.$el.find('#pms-menu #date_begin');
- var $dateTimePickerEnd = this.renderer.$el.find('#pms-menu #date_end');
+ var $dateEndDays = this.renderer.$el.find('#pms-menu #date_end_days');
$dateTimePickerBegin.on("dp.change", function (e) {
- $dateTimePickerEnd.data("DateTimePicker").minDate(e.date.clone().add(3,'d'));
- $dateTimePickerEnd.data("DateTimePicker").maxDate(e.date.clone().add(2,'M'));
$dateTimePickerBegin.data("DateTimePicker").hide();
self._on_change_filter_date(true);
});
- $dateTimePickerEnd.on("dp.change", function (e) {
- $dateTimePickerEnd.data("DateTimePicker").hide();
+ $dateEndDays.on("change", function (e) {
self._on_change_filter_date(false);
});
@@ -550,13 +548,8 @@ var PMSCalendarController = AbstractController.extend({
this._multi_calendar.on_calendar('hcalOnDateChanged', function(ev){
var $dateTimePickerBegin = this.renderer.$el.find('#pms-menu #date_begin');
- var $dateTimePickerEnd = this.renderer.$el.find('#pms-menu #date_end');
$dateTimePickerBegin.data("ignore_onchange", true);
- $dateTimePickerEnd.data("DateTimePicker").minDate(false);
- $dateTimePickerEnd.data("DateTimePicker").maxDate(false);
$dateTimePickerBegin.data("DateTimePicker").date(ev.detail.date_begin.local().add(1, 'd'));
- $dateTimePickerEnd.data("ignore_onchange", true);
- $dateTimePickerEnd.data("DateTimePicker").date(ev.detail.date_end.local());
this._reload_active_calendar();
}.bind(this));
},
@@ -591,7 +584,7 @@ var PMSCalendarController = AbstractController.extend({
if (['xs', 'md'].indexOf(self._find_bootstrap_environment()) >= 0) {
self._view_options['days'] = 7;
} else {
- self._view_options['days'] = (self._view_options['days'] !== 'month')?parseInt(self._view_options['days']):date_begin.daysInMonth();
+ self._view_options['days'] = 30;
}
self.renderer.load_hcalendar_options(self._view_options);
});
@@ -747,12 +740,12 @@ var PMSCalendarController = AbstractController.extend({
_on_change_filter_date: function(isStartDate) {
isStartDate = isStartDate || false;
var $dateTimePickerBegin = this.renderer.$el.find('#pms-menu #date_begin');
- var $dateTimePickerEnd = this.renderer.$el.find('#pms-menu #date_end');
+ var $dateEndDays = this.renderer.$el.find('#pms-menu #date_end_days');
// FIXME: Hackish onchange ignore (Used when change dates from code)
- if ($dateTimePickerBegin.data("ignore_onchange") || $dateTimePickerEnd.data("ignore_onchange")) {
+ if ($dateTimePickerBegin.data("ignore_onchange") || $dateEndDays.data("ignore_onchange")) {
$dateTimePickerBegin.data("ignore_onchange", false);
- $dateTimePickerEnd.data("ignore_onchange", false)
+ $dateEndDays.data("ignore_onchange", false)
return true;
}
@@ -760,15 +753,10 @@ var PMSCalendarController = AbstractController.extend({
var active_calendar = this._multi_calendar.get_active_calendar();
if (active_calendar && date_begin) {
- if (isStartDate) {
- var ndate_end = date_begin.clone().add(this._view_options['days'], 'd');
- $dateTimePickerEnd.data("ignore_onchange", true);
- $dateTimePickerEnd.data("DateTimePicker").date(ndate_end.local());
- }
-
- var date_end = $dateTimePickerEnd.data("DateTimePicker").date().set({'hour': 23, 'minute': 59, 'second': 59}).clone().utc();
+ var days = $dateEndDays.val();
+ var date_end = date_begin.clone().add(days, 'd');
if (!date_begin.isSame(this.renderer._last_dates[0].clone().utc(), 'd') || !date_end.isSame(this.renderer._last_dates[1].clone().utc(), 'd')) {
- active_calendar.setStartDate(date_begin, active_calendar.getDateDiffDays(date_begin, date_end), false, function(){
+ active_calendar.setStartDate(date_begin, days, false, function(){
this._reload_active_calendar();
}.bind(this));
}
@@ -780,16 +768,18 @@ var PMSCalendarController = AbstractController.extend({
/* Dates */
var $dateTimePickerBegin = this.renderer.$el.find('#pms-menu #date_begin');
- var $dateTimePickerEnd = this.renderer.$el.find('#pms-menu #date_end');
+ var $dateEndDays = this.renderer.$el.find('#pms-menu #date_end_days');
var start_date = active_calendar.getOptions('startDate');
- var end_date = start_date.clone().add(active_calendar.getOptions('days'), 'd');
start_date = start_date.clone().add(1, 'd');
$dateTimePickerBegin.data("ignore_onchange", true);
$dateTimePickerBegin.data("DateTimePicker").date(start_date.local());
- $dateTimePickerEnd.data("ignore_onchange", true);
- $dateTimePickerEnd.data("DateTimePicker").date(end_date.local());
+ $dateEndDays.data("ignore_onchange", true);
+ console.log("---- LLL");
+ console.log(active_calendar.getOptions('days'));
+ $dateEndDays.val(active_calendar.getOptions('days'));
+ $dateEndDays.trigger('change');
/* Overbooking Led */
var $led = this.renderer.$el.find('#pms-menu #btn_action_overbooking button .led');
diff --git a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_renderer.js b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_renderer.js
index 1b1e13d7d..d0346bbe3 100644
--- a/hotel_calendar/static/src/js/views/calendar/hotel_calendar_renderer.js
+++ b/hotel_calendar/static/src/js/views/calendar/hotel_calendar_renderer.js
@@ -53,10 +53,12 @@ var HotelCalendarView = AbstractRenderer.extend({
/** CUSTOM METHODS **/
get_view_filter_dates: function () {
var $dateTimePickerBegin = this.$el.find('#pms-menu #date_begin');
- var $dateTimePickerEnd = this.$el.find('#pms-menu #date_end');
+ var $dateEndDays = this.$el.find('#pms-menu #date_end_days');
var date_begin = $dateTimePickerBegin.data("DateTimePicker").date().set({'hour': 0, 'minute': 0, 'second': 0}).clone().utc();
- var date_end = $dateTimePickerEnd.data("DateTimePicker").date().set({'hour': 23, 'minute': 59, 'second': 59}).clone().utc();
+ var date_end = date_begin.clone().add($dateEndDays.val(), 'd').set({'hour': 23, 'minute': 59, 'second': 59}).clone().utc();
+ console.log("---- YEAH");
+ console.log(date_end.format("DD-MM-YYYY"));
return [date_begin, date_end];
},
@@ -64,13 +66,13 @@ var HotelCalendarView = AbstractRenderer.extend({
// View Options
this._view_options = options;
var date_begin = moment().startOf('day');
- var date_end = date_begin.clone().add(this._view_options['days'], 'd').endOf('day');
var $dateTimePickerBegin = this.$el.find('#pms-menu #date_begin');
- var $dateTimePickerEnd = this.$el.find('#pms-menu #date_end');
+ var $dateEndDays = this.$el.find('#pms-menu #date_end_days');
//$dateTimePickerBegin.data("ignore_onchange", true);
$dateTimePickerBegin.data("DateTimePicker").date(date_begin);
//$dateTimePickerEnd.data("ignore_onchange", true);
- $dateTimePickerEnd.data("DateTimePicker").date(date_end);
+ $dateEndDays.val(30);
+ $dateEndDays.trigger('change');
this._last_dates = this.get_view_filter_dates();
},
@@ -122,16 +124,26 @@ var HotelCalendarView = AbstractRenderer.extend({
format : HotelConstants.L10N_DATE_MOMENT_FORMAT,
};
var $dateTimePickerBegin = this.$el.find('#pms-menu #date_begin');
- var $dateTimePickerEnd = this.$el.find('#pms-menu #date_end');
+ var $dateEndDays = this.$el.find('#pms-menu #date_end_days');
$dateTimePickerBegin.datetimepicker(DTPickerOptions);
- $dateTimePickerEnd.datetimepicker($.extend({}, DTPickerOptions, { 'useCurrent': false }));
+ // $dateEndDays.select2({
+ // data: [
+ // {id:7, text: '1 Week'},
+ // {id:12, text: '2 Weeks'},
+ // {id:21, text: '3 Weeks'},
+ // {id:30, text: '1 Month'},
+ // {id:60, text: '2 Months'},
+ // {id:90, text: '3 Months'},
+ // ],
+ // allowClear: true
+ // });
+
var date_begin = moment().startOf('day');
- var days = date_begin.daysInMonth();
- var date_end = date_begin.clone().add(days, 'd').endOf('day');
$dateTimePickerBegin.data("ignore_onchange", true);
$dateTimePickerBegin.data("DateTimePicker").date(date_begin);
- $dateTimePickerEnd.data("DateTimePicker").date(date_end);
+ $dateEndDays.val(30);
+ $dateEndDays.trigger('change');
this._last_dates = this.get_view_filter_dates();
/* TOUCH EVENTS */
@@ -154,9 +166,6 @@ var HotelCalendarView = AbstractRenderer.extend({
date_begin = $dateTimePickerBegin.data("DateTimePicker").date().set({'hour': 0, 'minute': 0, 'second': 0}).clone().subtract(days, 'd');
}
if (date_begin) {
- var date_end = date_begin.clone().add(self._view_options['days'], 'd').endOf('day');
- $dateTimePickerEnd.data("ignore_onchange", true);
- $dateTimePickerEnd.data("DateTimePicker").date(date_end);
$dateTimePickerBegin.data("DateTimePicker").date(date_begin);
}
}
@@ -195,9 +204,7 @@ var HotelCalendarView = AbstractRenderer.extend({
resultsHotelRoomType.forEach(function(item, index){
$list.append(``);
});
- $list.select2({
- theme: "classic"
- });
+ $list.select2();
$list.on('change', function(ev){
this.trigger_up('onApplyFilters');
}.bind(this));
diff --git a/hotel_calendar/static/src/js/widgets/MultiCalendar.js b/hotel_calendar/static/src/js/widgets/MultiCalendar.js
index c946a8f4b..f0516b2c8 100644
--- a/hotel_calendar/static/src/js/widgets/MultiCalendar.js
+++ b/hotel_calendar/static/src/js/widgets/MultiCalendar.js
@@ -150,7 +150,7 @@ odoo.define('hotel_calendar.MultiCalendar', function(require) {
this._base = element;
},
- merge_pricelist: function(pricelist) {
+ merge_pricelist: function(pricelist, calendar) {
var keys = _.keys(pricelist);
for (var k of keys) {
var pr = pricelist[k];
@@ -176,12 +176,16 @@ odoo.define('hotel_calendar.MultiCalendar', function(require) {
}
}
- for (var calendar of this._calendars) {
+ if (!calendar) {
+ for (var calendar of this._calendars) {
+ calendar.setPricelist(this._dataset['pricelist']);
+ }
+ } else {
calendar.setPricelist(this._dataset['pricelist']);
}
},
- merge_restrictions: function(restrictions) {
+ merge_restrictions: function(restrictions, calendar) {
var room_type_ids = Object.keys(restrictions);
for (var vid of room_type_ids) {
if (vid in this._dataset['restrictions']) {
@@ -192,12 +196,16 @@ odoo.define('hotel_calendar.MultiCalendar', function(require) {
}
}
- for (var calendar of this._calendars) {
+ if (!calendar) {
+ for (var calendar of this._calendars) {
+ calendar.setRestrictions(this._dataset['restrictions']);
+ }
+ } else {
calendar.setRestrictions(this._dataset['restrictions']);
}
},
- merge_reservations: function(reservations) {
+ merge_reservations: function(reservations, calendar) {
for (var r of reservations) {
var rindex = _.findKey(this._dataset['reservations'], {'id': r.id});
if (rindex) {
@@ -207,7 +215,11 @@ odoo.define('hotel_calendar.MultiCalendar', function(require) {
}
}
- for (var calendar of this._calendars) {
+ if (!calendar) {
+ for (var calendar of this._calendars) {
+ calendar.addReservations(reservations);
+ }
+ } else {
calendar.addReservations(reservations);
}
},
@@ -352,7 +364,7 @@ odoo.define('hotel_calendar.MultiCalendar', function(require) {
});
if (data.length > 0) {
$elm.addClass('hcal-event-day');
- $elm.prepend("");
+ $elm.append("");
$elm.on("mouseenter", function(data){
var $this = $(this);
if (data.length > 0) {
diff --git a/hotel_calendar/static/src/lib/hcalendar/js/hcalendar.js b/hotel_calendar/static/src/lib/hcalendar/js/hcalendar.js
index 17c77d2b5..399ea7254 100644
--- a/hotel_calendar/static/src/lib/hcalendar/js/hcalendar.js
+++ b/hotel_calendar/static/src/lib/hcalendar/js/hcalendar.js
@@ -41,9 +41,10 @@ function HotelCalendar(/*String*/querySelector, /*Dictionary*/options, /*List*/p
};
/** Options **/
+ var now_utc = moment(new Date()).utc();
this.options = _.extend({
- startDate: moment(new Date()).utc(),
- days: moment(new Date()).local().daysInMonth(),
+ startDate: now_utc,
+ days: now_utc.daysInMonth(),
rooms: [],
allowInvalidActions: false,
assistedMovement: false,
@@ -122,7 +123,6 @@ HotelCalendar.prototype = {
if (typeof days !== 'undefined') {
this.options.days = days;
}
-
this._endDate = this.options.startDate.clone().add(this.options.days, 'd');
/*this.e.dispatchEvent(new CustomEvent(
@@ -259,17 +259,17 @@ HotelCalendar.prototype = {
this.addReservations(reservations);
},
- addReservations: function(/*List*/reservations, /*Bool*/forced) {
+ addReservations: function(/*List*/reservations) {
reservations = reservations || [];
if (reservations.length > 0 && !(reservations[0] instanceof HReservation)) {
console.warn("[HotelCalendar][addReservations] Invalid Reservation definition!");
} else {
// Merge
- var uzr = [];
+ var addedReservations = [];
for (var r of reservations) {
+ var rindex = _.findKey(this._reservations, {'id': r.id});
if (!this.options.showOverbookings && r.overbooking) {
- var rindex = !forced?_.findKey(this._reservations, {'id': r.id}):false;
if (rindex) {
this.removeReservation(this._reservations[rindex]);
}
@@ -279,28 +279,33 @@ HotelCalendar.prototype = {
r = r.clone(); // HOT-FIX: Multi-Calendar Support
r.room = this.getRoom(r.room_id, r.overbooking, r.id);
// need create a overbooking row?
- if (!r.room && r.overbooking) {
- r.room = this.createOBRoom(this.getRoom(r.room_id), r.id);
- this.createOBRoomRow(r.room);
- }
if (!r.room) {
- console.warn(`Can't found a room for the reservation '${r[0]}'!`);
- continue;
+ if (r.overbooking) {
+ r.room = this.createOBRoom(this.getRoom(r.room_id), r.id);
+ this.createOBRoomRow(r.room);
+ } else {
+ console.warn(`Can't found the room '${r.room_id}' for the reservation '${r.id}' (${r.title})!`);
+ continue;
+ }
}
- var rindex = !forced?_.findKey(this._reservations, {'id': r.id}):false;
if (rindex) {
- r._html = this._reservations[rindex]._html;
- if (this._reservations[rindex].overbooking && !r.overbooking) {
- if (this.getReservationsByRoom(this._reservations[rindex].room).length === 1) {
- this.removeOBRoomRow(this._reservations[rindex]);
+ var reserv = this._reservations[rindex];
+ r._html = reserv._html;
+ if (reserv.overbooking && !r.overbooking) {
+ if (this.getReservationsByRoom(reserv.room).length === 1) {
+ this.removeOBRoomRow(reserv);
}
}
this._reservations[rindex] = r;
- this._cleanUnusedZones(r);
+ if (!r.unusedZone) {
+ this._cleanUnusedZones(r);
+ }
} else {
this._reservations.push(r);
}
+
+ addedReservations.push(r);
}
// Create & Render New Reservations
@@ -311,42 +316,38 @@ HotelCalendar.prototype = {
// Create Map
this._updateReservationsMap();
+ var toAssignEvents = [];
reservs = reservs.concat(unusedZones);
for (var r of reservs) {
r._active = this._in_domain(r, this._domains[HotelCalendar.DOMAIN.RESERVATIONS]);
this._calcReservationCellLimits(r);
if (r._html) {
r._html.innerText = r.title;
- } else {
- if (r._limits.isValid()) {
- r._html = document.createElement('div');
- r._html.dataset.hcalReservationObjId = r.id;
- r._html.classList.add('hcal-reservation');
- r._html.classList.add('noselect');
- r._html.innerText = r.title;
- this.edivr.appendChild(r._html);
+ } else if (r._limits.isValid()) {
+ r._html = document.createElement('div');
+ r._html.dataset.hcalReservationObjId = r.id;
+ r._html.classList.add('hcal-reservation');
+ r._html.classList.add('noselect');
+ r._html.innerText = r.title;
+ this.edivr.appendChild(r._html);
- if (r.unusedZone) {
- r._html.classList.add('hcal-unused-zone');
- } else {
- this._assignReservationsEvents([r._html]);
- }
+ if (r.unusedZone) {
+ r._html.classList.add('hcal-unused-zone');
+ } else {
+ toAssignEvents.push(r._html);
}
}
this._updateReservation(r);
}
- }.bind(this), this._reservations);
+ this._updateReservationsMap();
+ this._assignReservationsEvents(toAssignEvents);
+ }.bind(this), addedReservations);
_.defer(function(){ this._updateReservationOccupation(); }.bind(this));
}
},
- removeReservation: function(/*Int/HReservationObject*/reservation) {
- var reserv = reservation;
- if (!(reserv instanceof HReservation)) {
- reserv = this.getReservation(reservation);
- }
-
+ removeReservation: function(/*HReservationObject*/reserv) {
if (reserv) {
// Remove all related content...
var elms = [reserv._html, this.e.querySelector(`.hcal-warn-ob-indicator[data-hcal-reservation-obj-id='${reserv.id}']`)];
@@ -362,12 +363,14 @@ HotelCalendar.prototype = {
}
}
// Remove Unused Zones
- this._cleanUnusedZones(reserv);
+ if (!reserv.unusedZone) {
+ this._cleanUnusedZones(reserv);
+ }
this._reservations = _.reject(this._reservations, {id: reserv.id});
this._updateReservationsMap();
} else {
- console.warn(`[HotelCalendar][removeReservation] Can't remove '${reservation.id}' reservation!`);
+ console.warn(`[HotelCalendar][removeReservation] Can't remove '${reserv.id}' reservation!`);
}
},
@@ -414,8 +417,12 @@ HotelCalendar.prototype = {
_calcReservationCellLimits: function(/*HReservationObject*/reservation, /*Int?*/nbed, /*Bool?*/notCheck) {
var limits = new HLimit();
- if (!reservation.startDate || !reservation.endDate) {
- return limits;
+ if (!reservation.startDate || !reservation.endDate ||
+ (!reservation.startDate.isBetween(this.options.startDate, this._endDate, 'day', '()') &&
+ !reservation.endDate.isBetween(this.options.startDate, this._endDate, 'day', '()') &&
+ !reservation.startDate.isBefore(this.options.startDate, 'day', '()') &&
+ !reservation.endDate.isAfter(this._endDate, 'day', '()'))) {
+ return limits;
}
var notFound;
@@ -1842,11 +1849,6 @@ HotelCalendar.prototype = {
nreserv.overbooking = refToRoom.overbooking;
nreserv.room = refFromRoom;
}
-
- // if (this.options.divideRoomsByCapacity) {
- // var allReservs = toReservations.concat(fromReservations);
- // for (var nreserv of allReservs) { this._updateUnusedZones(nreserv); }
- // }
} else {
console.warn("[HotelCalendar][swapReservations] Invalid Swap Operation!");
return false;
@@ -1905,7 +1907,7 @@ HotelCalendar.prototype = {
},
getLinkedReservations: function(/*HReservationObject*/reservationObj) {
- return _.reject(this._reservations, function(item){ return item === reservationObj || item.linkedId !== reservationObj.id; });
+ return _.reject(this._reservations, function(item){ return item.linkedId !== reservationObj.id; });
},
_updateReservation: function(/*HReservationObject*/reservationObj, /*Bool?*/noRefresh) {
@@ -2071,8 +2073,13 @@ HotelCalendar.prototype = {
},
_cleanUnusedZones: function(/*HReservationObject*/reserv) {
- var reservs = _.filter(this._reservations, function(item){ return item.unusedZone && item.linkedId === reserv.id; });
- for (var creserv of reservs) { this.removeReservation(creserv); }
+ var unusedReservs = this.getLinkedReservations(reserv);
+ for (var unusedZone of unusedReservs) {
+ if (unusedZone._html && unusedZone._html.parentNode) {
+ unusedZone._html.parentNode.removeChild(unusedZone._html);
+ }
+ }
+ this._reservations = _.reject(this._reservations, {unusedZone: true, linkedId: reserv.id});
},
_createUnusedZones: function(/*Array*/reservs) {
@@ -2106,14 +2113,6 @@ HotelCalendar.prototype = {
return nreservs;
},
- _updateUnusedZones: function(/*HReservationObject*/reserv) {
- if (!reserv.unusedZone) {
- // TODO: Improve this... don't remove stuff that recreate before!!!
- this._cleanUnusedZones(reserv);
- this.addReservations(this._createUnusedZones([reserv]), true);
- }
- },
-
_updateReservationOccupation: function() {
if (!this.options.showAvailability) {
return;
@@ -2704,34 +2703,6 @@ HotelCalendar.prototype = {
}.bind(this));
},
- onClickSelectorDate: function(/*EventObject*/ev, /*HTMLObject*/elm) {
- var $this = this;
- function setSelectorDate(elm) {
- var new_date = moment(elm.value, HotelCalendar.DATE_FORMAT_SHORT_);
- var span = document.createElement('span');
- span.addEventListener('click', function(ev){ $this.onClickSelectorDate(ev, elm); }, false);
- if (new_date.isValid()) {
- $this.setStartDate(new_date);
- } else {
- $this.setStartDate(moment(new Date()).utc());
- }
- }
- var str_date = this.options.startDate.format(HotelCalendar.DATE_FORMAT_SHORT_);
- var input = document.createElement('input');
- input.setAttribute('id', 'start_date_selector');
- input.setAttribute('type', 'text');
- input.setAttribute('value', str_date);
- input.addEventListener('keypress', function(ev){
- if (ev.keyCode == 13) { // Press Enter
- setSelectorDate(this);
- }
- }, false);
- input.addEventListener('blur', function(ev){ setSelectorDate(this); }, false);
- elm.parentNode.insertBefore(input, elm);
- elm.parentNode.removeChild(elm);
- input.focus();
- },
-
//==== COLOR FUNCTIONS (RANGE: 0.0|1.0)
_intToRgb: function(/*Int*/RGBint) {
return [(RGBint >> 16) & 255, (RGBint >> 8) & 255, RGBint & 255];
diff --git a/hotel_calendar/static/src/xml/hotel_calendar_view.xml b/hotel_calendar/static/src/xml/hotel_calendar_view.xml
index b6a4d5845..12d72da95 100644
--- a/hotel_calendar/static/src/xml/hotel_calendar_view.xml
+++ b/hotel_calendar/static/src/xml/hotel_calendar_view.xml
@@ -4,18 +4,17 @@