in firestore/scripts/FriendlyEats.View.js [33:123]
FriendlyEats.prototype.viewList = function(filters, filter_description) {
if (!filter_description) {
filter_description = 'any type of food with any price in any city.';
}
var mainEl = this.renderTemplate('main-adjusted');
var headerEl = this.renderTemplate('header-base', {
hasSectionHeader: true
});
this.replaceElement(
headerEl.querySelector('#section-header'),
this.renderTemplate('filter-display', {
filter_description: filter_description
})
);
this.replaceElement(document.querySelector('.header'), headerEl);
this.replaceElement(document.querySelector('main'), mainEl);
var that = this;
headerEl.querySelector('#show-filters').addEventListener('click', function() {
that.dialogs.filter.show();
});
var renderResults = function(doc) {
if (!doc) {
var headerEl = that.renderTemplate('header-base', {
hasSectionHeader: true
});
var noResultsEl = that.renderTemplate('no-results');
that.replaceElement(
headerEl.querySelector('#section-header'),
that.renderTemplate('filter-display', {
filter_description: filter_description
})
);
headerEl.querySelector('#show-filters').addEventListener('click', function() {
that.dialogs.filter.show();
});
that.replaceElement(document.querySelector('.header'), headerEl);
that.replaceElement(document.querySelector('main'), noResultsEl);
return;
}
var data = doc.data();
data['.id'] = doc.id;
data['go_to_restaurant'] = function() {
that.router.navigate('/restaurants/' + doc.id);
};
// check if restaurant card has already been rendered
var existingRestaurantCardEl = mainEl.querySelector('#' + that.ID_CONSTANT + doc.id);
var el = existingRestaurantCardEl || that.renderTemplate('restaurant-card', data);
var ratingEl = el.querySelector('.rating');
var priceEl = el.querySelector('.price');
// clear out existing rating and price if they already exist
if (existingRestaurantCardEl) {
ratingEl.innerHTML = '';
priceEl.innerHTML = '';
}
ratingEl.append(that.renderRating(data.avgRating));
priceEl.append(that.renderPrice(data.price));
if (!existingRestaurantCardEl) {
mainEl.querySelector('#cards').append(el);
}
};
if (filters.city || filters.category || filters.price || filters.sort !== 'Rating' ) {
this.getFilteredRestaurants({
city: filters.city || 'Any',
category: filters.category || 'Any',
price: filters.price || 'Any',
sort: filters.sort
}, renderResults);
} else {
this.getAllRestaurants(renderResults);
}
var toolbar = mdc.toolbar.MDCToolbar.attachTo(document.querySelector('.mdc-toolbar'));
toolbar.fixedAdjustElement = document.querySelector('.mdc-toolbar-fixed-adjust');
mdc.autoInit();
};