update filter dialog

This commit is contained in:
Luke Pulverenti 2016-02-15 12:53:19 -05:00
parent 884a4a1c2b
commit 1d28c4f400

View file

@ -1,6 +1,6 @@
define(['paperdialoghelper', 'events', 'paper-checkbox', 'jqmcollapsible', 'css!components/filterdialog/style', 'paper-radio-button', 'paper-radio-group'], function (paperDialogHelper, events) { define(['paperdialoghelper', 'events', 'paper-checkbox', 'jqmcollapsible', 'css!components/filterdialog/style', 'paper-radio-button', 'paper-radio-group'], function (paperDialogHelper, events) {
function renderOptions(context, selector, cssClass, items) { function renderOptions(context, selector, cssClass, items, isCheckedFn) {
var elem = context.querySelector(selector); var elem = context.querySelector(selector);
@ -17,22 +17,12 @@
// style="margin: -.2em -.8em;" // style="margin: -.2em -.8em;"
html += '<div class="paperCheckboxList">'; html += '<div class="paperCheckboxList">';
var index = 0;
var idPrefix = 'chk' + selector.substring(1);
html += items.map(function (filter) { html += items.map(function (filter) {
var itemHtml = ''; var itemHtml = '';
var id = idPrefix + index; var checkedHtml = isCheckedFn(filter) ? ' checked' : '';
//itemHtml += '<div class="checkboxContainer">'; itemHtml += '<paper-checkbox' + checkedHtml + ' data-filter="' + filter + '" class="' + cssClass + '">' + filter + '</paper-checkbox>';
//itemHtml += '<input id="' + id + '" type="checkbox" data-filter="' + filter + '" data-role="none" class="' + cssClass + '" />';
//itemHtml += '<label for="' + id + '">' + filter + '</label>';
//itemHtml += '</div>';
itemHtml += '<paper-checkbox id="' + id + '" data-filter="' + filter + '" class="' + cssClass + '">' + filter + '</paper-checkbox>';
index++;
return itemHtml; return itemHtml;
@ -43,17 +33,33 @@
elem.querySelector('.filterOptions').innerHTML = html; elem.querySelector('.filterOptions').innerHTML = html;
} }
function renderFilters(context, result) { function renderFilters(context, result, query) {
// If there's a huge number of these they will be really show to render // If there's a huge number of these they will be really show to render
if (result.Tags) { if (result.Tags) {
result.Tags.length = Math.min(result.Tags.length, 50); result.Tags.length = Math.min(result.Tags.length, 50);
} }
renderOptions(context, '.genreFilters', 'chkGenreFilter', result.Genres); renderOptions(context, '.genreFilters', 'chkGenreFilter', result.Genres, function (i) {
renderOptions(context, '.officialRatingFilters', 'chkOfficialRatingFilter', result.OfficialRatings); var delimeter = '|';
renderOptions(context, '.tagFilters', 'chkTagFilter', result.Tags); return (delimeter + (query.Genres || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
renderOptions(context, '.yearFilters', 'chkYearFilter', result.Years); });
renderOptions(context, '.officialRatingFilters', 'chkOfficialRatingFilter', result.OfficialRatings, function (i) {
var delimeter = '|';
return (delimeter + (query.OfficialRatings || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
renderOptions(context, '.tagFilters', 'chkTagFilter', result.Tags, function (i) {
var delimeter = '|';
return (delimeter + (query.Tags || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
renderOptions(context, '.yearFilters', 'chkYearFilter', result.Years, function (i) {
var delimeter = ',';
return (delimeter + (query.Years || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
} }
function loadDynamicFilters(context, userId, itemQuery) { function loadDynamicFilters(context, userId, itemQuery) {
@ -67,7 +73,7 @@
})).then(function (result) { })).then(function (result) {
renderFilters(context, result); renderFilters(context, result, itemQuery);
}); });
} }
@ -340,7 +346,7 @@
triggerChange(instance); triggerChange(instance);
}); });
context.querySelector('.playersRadioGroup').addEventListener('iron-select', function(e) { context.querySelector('.playersRadioGroup').addEventListener('iron-select', function (e) {
query.StartIndex = 0; query.StartIndex = 0;
var val = e.target.selected; var val = e.target.selected;
@ -352,7 +358,7 @@
} }
}); });
context.addEventListener('change', function(e) { context.addEventListener('change', function (e) {
var chkGenreFilter = parentWithClass(e.target, 'chkGenreFilter'); var chkGenreFilter = parentWithClass(e.target, 'chkGenreFilter');
if (chkGenreFilter) { if (chkGenreFilter) {