diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.css b/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.css new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.js b/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.js new file mode 100644 index 0000000000..758b66b478 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.js @@ -0,0 +1,45 @@ +define(['css!./emby-radio', 'registerElement'], function () { + + var EmbyRadioPrototype = Object.create(HTMLInputElement.prototype); + + function onKeyDown(e) { + + // Don't submit form on enter + if (e.keyCode == 13) { + e.preventDefault(); + + this.checked = true; + + return false; + } + } + + EmbyRadioPrototype.attachedCallback = function () { + + if (this.getAttribute('data-radio') == 'true') { + return; + } + + this.setAttribute('data-radio', 'true'); + + this.classList.add('mdl-radio__button'); + + var labelElement = this.parentNode; + //labelElement.classList.add('"mdl-radio mdl-js-radio mdl-js-ripple-effect'); + labelElement.classList.add('mdl-radio'); + labelElement.classList.add('mdl-js-radio'); + labelElement.classList.add('mdl-js-ripple-effect'); + + var labelTextElement = labelElement.querySelector('span'); + labelElement.insertAdjacentHTML('beforeend', ''); + + labelTextElement.classList.add('radioButtonLabel'); + + this.addEventListener('keydown', onKeyDown); + }; + + document.registerElement('emby-radio', { + prototype: EmbyRadioPrototype, + extends: 'input' + }); +}); \ No newline at end of file diff --git a/dashboard-ui/components/filterdialog/filterdialog.js b/dashboard-ui/components/filterdialog/filterdialog.js index e39c706652..98b67eb303 100644 --- a/dashboard-ui/components/filterdialog/filterdialog.js +++ b/dashboard-ui/components/filterdialog/filterdialog.js @@ -1,4 +1,4 @@ -define(['dialogHelper', 'events', 'browser', 'emby-checkbox', 'emby-collapse', 'css!components/filterdialog/style', 'paper-radio-button', 'paper-radio-group'], function (dialogHelper, events, browser) { +define(['dialogHelper', 'events', 'browser', 'emby-checkbox', 'emby-collapse', 'css!components/filterdialog/style'], function (dialogHelper, events, browser) { function renderOptions(context, selector, cssClass, items, isCheckedFn) { @@ -129,7 +129,7 @@ context.querySelector('#chkMissingEpisode').checked = query.IsMissing == true; context.querySelector('#chkFutureEpisode').checked = query.IsUnaired == true; - context.querySelector('.playersRadioGroup').selected = query.MinPlayers == null ? 'all' : query.MinPlayers; + //context.querySelector('.playersRadioGroup').selected = query.MinPlayers == null ? 'all' : query.MinPlayers; for (i = 0, length = elems.length; i < length; i++) { @@ -187,7 +187,7 @@ } if (options.mode == 'games') { - context.querySelector('.players').classList.remove('hide'); + //context.querySelector('.players').classList.remove('hide'); } if (options.mode == 'movies' || options.mode == 'series' || options.mode == 'games' || options.mode == 'episodes') { @@ -446,17 +446,17 @@ triggerChange(self); }); - context.querySelector('.playersRadioGroup').addEventListener('iron-select', function (e) { + //context.querySelector('.playersRadioGroup').addEventListener('iron-select', function (e) { - query.StartIndex = 0; - var val = e.target.selected; - var newValue = val == "all" ? null : val; - var changed = query.MinPlayers != newValue; - query.MinPlayers = newValue; - if (changed) { - triggerChange(self); - } - }); + // query.StartIndex = 0; + // var val = e.target.selected; + // var newValue = val == "all" ? null : val; + // var changed = query.MinPlayers != newValue; + // query.MinPlayers = newValue; + // if (changed) { + // triggerChange(self); + // } + //}); context.addEventListener('change', function (e) { @@ -570,22 +570,12 @@ dlg.addEventListener('close', resolve); - var onTimeout = function () { - updateFilterControls(dlg, options); - bindEvents(dlg); + updateFilterControls(dlg, options); + bindEvents(dlg); - if (enableDynamicFilters(options.mode)) { - dlg.classList.add('dynamicFilterDialog'); - loadDynamicFilters(dlg, Dashboard.getCurrentUserId(), options.query); - } - }; - - // In browsers without native web components (FF/IE), there are some quirks with the checkboxes appearing incorrectly with no visible checkmark - // Applying a delay after setting innerHTML seems to resolve this - if (browser.animate) { - onTimeout(); - } else { - setTimeout(onTimeout, 100); + if (enableDynamicFilters(options.mode)) { + dlg.classList.add('dynamicFilterDialog'); + loadDynamicFilters(dlg, Dashboard.getCurrentUserId(), options.query); } } diff --git a/dashboard-ui/components/filterdialog/filterdialog.template.html b/dashboard-ui/components/filterdialog/filterdialog.template.html index 08c49c89e0..17a2cb0f3f 100644 --- a/dashboard-ui/components/filterdialog/filterdialog.template.html +++ b/dashboard-ui/components/filterdialog/filterdialog.template.html @@ -120,7 +120,7 @@ -