diff --git a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js index 4846ccc641..0a3049104d 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -331,7 +331,7 @@ define(['browser'], function (browser) { }); } - if (canPlayTs && options.supportsCustomSeeking && !browser.tizen) { + if (canPlayTs && options.supportsCustomSeeking && !browser.tizen && !browser.web0s) { profile.TranscodingProfiles.push({ Container: 'ts', Type: 'Video', 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 index e69de29bb2..b9e964879a 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.css +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.css @@ -0,0 +1,136 @@ +.mdl-radio { + position: relative; + line-height: 24px; + display: inline-block; + box-sizing: border-box; + margin: 0; + padding-left: 0; +} + + .mdl-radio.block { + display: flex; + align-items: center; + margin-top: .25em; + margin-bottom: .25em; + } + +.mdl-radio { + padding-left: 24px; +} + +.mdl-radio__button { + line-height: 24px; +} + +.mdl-radio .mdl-radio__button { + position: absolute; + width: 0; + height: 0; + margin: 0; + padding: 0; + opacity: 0; + -ms-appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + border: none; +} + +.mdl-radio__outer-circle { + position: absolute; + top: 4px; + left: 0; + display: inline-block; + box-sizing: border-box; + width: 16px; + height: 16px; + margin: 0; + cursor: pointer; + border: 2px solid rgba(0,0,0, 0.54); + border-radius: 50%; + z-index: 2; +} + +.mdl-radio__button:checked + .mdl-radio__label + .mdl-radio__outer-circle { + border: 2px solid rgb(63,81,181); +} + +.mdl-radio__outer-circle fieldset[disabled] .mdl-radio, +.mdl-radio.is-disabled .mdl-radio__outer-circle { + border: 2px solid rgba(0,0,0, 0.26); + cursor: auto; +} + +.mdl-radio__inner-circle { + position: absolute; + z-index: 1; + margin: 0; + top: 8px; + left: 4px; + box-sizing: border-box; + width: 8px; + height: 8px; + cursor: pointer; + transition-duration: 0.28s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: -webkit-transform; + transition-property: transform; + transition-property: transform, -webkit-transform; + -webkit-transform: scale3d(0, 0, 0); + transform: scale3d(0, 0, 0); + border-radius: 50%; + background: rgb(63,81,181); +} + +.mdl-radio__button:checked + .mdl-radio__label + .mdl-radio__outer-circle + .mdl-radio__inner-circle { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); +} + +fieldset[disabled] .mdl-radio .mdl-radio__inner-circle, +.mdl-radio.is-disabled .mdl-radio__inner-circle { + background: rgba(0,0,0, 0.26); + cursor: auto; +} + +.mdl-radio__button:focus + .mdl-radio__label + .mdl-radio__outer-circle + .mdl-radio__inner-circle { + box-shadow: 0 0 0px 10px rgba(0, 0, 0, 0.1); +} + +.mdl-radio__label { + cursor: pointer; +} + +fieldset[disabled] .mdl-radio .mdl-radio__label, +.mdl-radio.is-disabled .mdl-radio__label { + color: rgba(0,0,0, 0.26); + cursor: auto; +} + +.mdl-radio__ripple-container { + position: absolute; + z-index: 2; + top: -9px; + left: -13px; + box-sizing: border-box; + width: 42px; + height: 42px; + border-radius: 50%; + cursor: pointer; + overflow: hidden; + -webkit-mask-image: -webkit-radial-gradient(circle, white, black); +} + + .mdl-radio__ripple-container .mdl-ripple { + background: rgb(63,81,181); + } + +fieldset[disabled] .mdl-radio .mdl-radio__ripple-container, +.mdl-radio.is-disabled .mdl-radio__ripple-container { + cursor: auto; +} + + fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple, + .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple { + background: transparent; + } 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 index 758b66b478..f6e03d5490 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.js +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-radio/emby-radio.js @@ -31,9 +31,14 @@ labelElement.classList.add('mdl-js-ripple-effect'); var labelTextElement = labelElement.querySelector('span'); - labelElement.insertAdjacentHTML('beforeend', ''); labelTextElement.classList.add('radioButtonLabel'); + labelTextElement.classList.add('mdl-radio__label'); + + labelElement.insertAdjacentHTML('beforeend', ''); + + // ripple container + //labelElement.insertAdjacentHTML('beforeend', ''); this.addEventListener('keydown', onKeyDown); }; diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 1bfa311fbd..c4694ac092 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -2954,7 +2954,7 @@ showSortMenu: function (options) { - require(['dialogHelper', 'paper-radio-button', 'paper-radio-group'], function (dialogHelper) { + require(['dialogHelper', 'emby-radio'], function (dialogHelper) { var dlg = dialogHelper.createDialog({ removeOnClose: true, @@ -2975,22 +2975,29 @@ html += Globalize.translate('HeaderSortBy'); html += ''; - html += ''; - for (var i = 0, length = options.items.length; i < length; i++) { + var i, length; + var isChecked; + + html += '
'; + for (i = 0, length = options.items.length; i < length; i++) { var option = options.items[i]; - html += '' + option.name + ''; + var radioValue = option.id.replace(',', '_'); + isChecked = (options.query.SortBy || '').replace(',', '_') == radioValue ? ' checked' : ''; + html += ''; } - html += ''; + html += '
'; html += '

'; html += Globalize.translate('HeaderSortOrder'); html += '

'; - html += ''; - html += '' + Globalize.translate('OptionAscending') + ''; - html += '' + Globalize.translate('OptionDescending') + ''; - html += ''; + html += '
'; + isChecked = options.query.SortOrder == 'Ascending' ? ' checked' : ''; + html += ''; + isChecked = options.query.SortOrder == 'Descending' ? ' checked' : ''; + html += ''; + html += '
'; html += ''; dlg.innerHTML = html; @@ -3002,31 +3009,43 @@ dialogHelper.open(dlg); }, delay); - dlg.querySelector('.groupSortBy').addEventListener('iron-select', function () { + function onSortByChange() { + var newValue = this.value; + if (this.checked) { + var changed = options.query.SortBy != newValue; - var newValue = this.selected.replace('_', ','); - var changed = options.query.SortBy != newValue; + options.query.SortBy = newValue.replace('_', ','); + options.query.StartIndex = 0; - options.query.SortBy = newValue; - options.query.StartIndex = 0; - - if (options.callback && changed) { - options.callback(); + if (options.callback && changed) { + options.callback(); + } } - }); + } - dlg.querySelector('.groupSortOrder').addEventListener('iron-select', function () { + var sortBys = dlg.querySelectorAll('.menuSortBy'); + for (i = 0, length = sortBys.length; i < length; i++) { + sortBys[i].addEventListener('change', onSortByChange); + } - var newValue = this.selected; - var changed = options.query.SortOrder != newValue; + function onSortOrderChange() { + var newValue = this.value; + if (this.checked) { + var changed = options.query.SortOrder != newValue; - options.query.SortOrder = newValue; - options.query.StartIndex = 0; + options.query.SortOrder = newValue; + options.query.StartIndex = 0; - if (options.callback && changed) { - options.callback(); + if (options.callback && changed) { + options.callback(); + } } - }); + } + + var sortOrders = dlg.querySelectorAll('.menuSortOrder'); + for (i = 0, length = sortOrders.length; i < length; i++) { + sortOrders[i].addEventListener('change', onSortOrderChange); + } }); }, diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index c477d02026..319a5b2a5b 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1170,39 +1170,53 @@ var Dashboard = { return caps; }, - getDefaultImageQuality: function (imageType) { - - var quality = 90; - var isBackdrop = imageType.toLowerCase() == 'backdrop'; - - if (isBackdrop) { - quality -= 10; - } - - if (browserInfo.mobile) { - quality -= 20; - } - - if (AppInfo.hasLowImageBandwidth) { - - // The native app can handle a little bit more than safari - if (AppInfo.isNativeApp) { - - quality -= 5; - } else { - quality -= 20; - } - } - - return quality; - }, - normalizeImageOptions: function (options) { if (AppInfo.hasLowImageBandwidth) { options.enableImageEnhancers = false; } + + var setQuality; + if (options.maxWidth) { + setQuality = true; + } + + if (options.width) { + setQuality = true; + } + + if (options.maxHeight) { + setQuality = true; + } + + if (options.height) { + setQuality = true; + } + + if (setQuality) { + var quality = 90; + + if ((options.type || '').toLowerCase() == 'backdrop') { + quality -= 10; + } + + if (browserInfo.mobile || browserInfo.tv) { + quality -= 30; + } + + if (AppInfo.hasLowImageBandwidth) { + + // The native app can handle a little bit more than safari + if (AppInfo.isNativeApp) { + + //quality -= 5; + } else { + quality -= 15; + } + } + options.quality = quality; + } }, loadExternalPlayer: function () { @@ -1545,7 +1559,6 @@ var AppInfo = {}; }; } - apiClient.getDefaultImageQuality = Dashboard.getDefaultImageQuality; apiClient.normalizeImageOptions = Dashboard.normalizeImageOptions; Events.off(apiClient, 'websocketmessage', Dashboard.onWebSocketMessageReceived); @@ -1881,8 +1894,6 @@ var AppInfo = {}; define("paper-button", ["html!" + bowerPath + "/paper-button/paper-button.html"]); define("paper-icon-button", ["html!" + bowerPath + "/paper-icon-button/paper-icon-button.html"]); - define("paper-radio-group", ["html!" + bowerPath + "/paper-radio-group/paper-radio-group.html"]); - define("paper-radio-button", ['webcomponentsjs', "html!" + bowerPath + "/paper-radio-button/paper-radio-button.html"]); define("paper-toggle-button", ['webcomponentsjs', "html!" + bowerPath + "/paper-toggle-button/paper-toggle-button.html"]); define("paper-textarea", ['webcomponentsjs', "html!" + bowerPath + "/paper-input/paper-textarea.html"]); @@ -2179,6 +2190,7 @@ var AppInfo = {}; if (MainActivity.getChromeVersion() >= 48) { define("audiorenderer", ["scripts/htmlmediarenderer"]); + //window.VlcAudio = true; //define("audiorenderer", ["cordova/android/vlcplayer"]); } else { window.VlcAudio = true; diff --git a/dashboard-ui/thirdparty/paper-button-style.css b/dashboard-ui/thirdparty/paper-button-style.css index 3e6b76d558..f1098e28c5 100644 --- a/dashboard-ui/thirdparty/paper-button-style.css +++ b/dashboard-ui/thirdparty/paper-button-style.css @@ -362,10 +362,6 @@ paper-dropdown-menu { display: block; } -paper-radio-group > * { - padding: .5em; -} - div.dialogHeader { padding: .35em .5em; display: flex;