[WIP] Task 985 - filter room classes and room types

This commit is contained in:
Pablo
2019-08-01 13:43:34 +02:00
parent a3f640e7a9
commit d951f99eaa

View File

@@ -47,6 +47,8 @@ function HotelCalendar(/*String*/querySelector, /*Dictionary*/options, /*List*/p
startDate: now_utc,
days: now_utc.daysInMonth(),
rooms: [],
room_types: [],
room_classes: [],
allowInvalidActions: false,
assistedMovement: false,
endOfWeek: 6,
@@ -67,7 +69,6 @@ function HotelCalendar(/*String*/querySelector, /*Dictionary*/options, /*List*/p
this.options.orig_days = 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
if (this.options.rooms.length > 0 && !(this.options.rooms[0] instanceof HRoom)) {
this.options.rooms = [];
@@ -599,15 +600,29 @@ HotelCalendar.prototype = {
//==== ROOMS
_filterRooms: function() {
// Two-Step filter: Scrollbar mistake
// 1. Filter rooms
this.options.room_classes = [];
this.options.room_types = [];
// 1.1 Filter rooms
for (var r of this.options.rooms) {
r._active = this._in_domain(r, this._domains[HotelCalendar.DOMAIN.ROOMS]);
if (r._active) {
r._html.classList.remove('hcal-hidden');
// 1.2 Filter room classes used in occupation rows
if (this.options.room_classes.indexOf(r.type) === -1) {
this.options.room_classes.push(r.type);
}
// 1.3 Filter room types used in pricelist rows
if (this.options.room_types.indexOf(r._userData.room_type_id) === -1) {
this.options.room_types.push(r._userData.room_type_id);
}
} else {
r._html.classList.add('hcal-hidden');
}
}
// Hide all the rows corresponding to occupation and prices
$("[id^=ROW_DETAIL_FREE_TYPE]").addClass('hcal-hidden');
$("[id^=ROW_DETAIL_PRICE_ROOM]").addClass('hcal-hidden');
// TODO: update OCCUPATION
this._calcViewHeight();
@@ -621,6 +636,20 @@ HotelCalendar.prototype = {
}
}
}
// 2.2 Update room classes
for (var room_class of self.options.room_classes)
{
var tr_name = self._sanitizeId(`ROW_DETAIL_FREE_TYPE_${room_class}`);
var x = _.findWhere(self.edtable.rows, {id: tr_name});
x.classList.remove('hcal-hidden');
}
// 2.3 Update room types
for (var room_type of self.options.room_types)
{
var tr_name = self._sanitizeId(`ROW_DETAIL_PRICE_ROOM_${self._pricelist_id}_${room_type}`);
var x = _.findWhere(self.edtable.rows, {id: tr_name});
x.classList.remove('hcal-hidden');
}
}, this);
//_.defer(function(){ this._updateReservationOccupation() }.bind(this));
},