mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
update sort menu
This commit is contained in:
parent
9de658be0b
commit
22ef579fdb
6 changed files with 230 additions and 62 deletions
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -31,9 +31,14 @@
|
|||
labelElement.classList.add('mdl-js-ripple-effect');
|
||||
|
||||
var labelTextElement = labelElement.querySelector('span');
|
||||
labelElement.insertAdjacentHTML('beforeend', '<span class="mdl-checkbox__focus-helper"></span><span class="checkboxOutline"><span class="mdl-checkbox__tick-outline"></span></span>');
|
||||
|
||||
labelTextElement.classList.add('radioButtonLabel');
|
||||
labelTextElement.classList.add('mdl-radio__label');
|
||||
|
||||
labelElement.insertAdjacentHTML('beforeend', '<span class="mdl-radio__outer-circle"></span><span class="mdl-radio__inner-circle"></span>');
|
||||
|
||||
// ripple container
|
||||
//labelElement.insertAdjacentHTML('beforeend', '<span class="mdl-radio__ripple-container mdl-js-ripple-effect mdl-ripple--center" data-upgraded=",MaterialRipple"><span class="mdl-ripple is-animating" style="width: 120.794px; height: 120.794px; transform: translate(-50%, -50%) translate(21px, 21px);"></span></span>');
|
||||
|
||||
this.addEventListener('keydown', onKeyDown);
|
||||
};
|
||||
|
|
|
@ -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 += '</h2>';
|
||||
|
||||
html += '<paper-radio-group class="groupSortBy" selected="' + (options.query.SortBy || '').replace(',', '_') + '">';
|
||||
for (var i = 0, length = options.items.length; i < length; i++) {
|
||||
var i, length;
|
||||
var isChecked;
|
||||
|
||||
html += '<div>';
|
||||
for (i = 0, length = options.items.length; i < length; i++) {
|
||||
|
||||
var option = options.items[i];
|
||||
|
||||
html += '<paper-radio-button class="menuSortBy" style="display:block;" data-id="' + option.id + '" name="' + option.id.replace(',', '_') + '">' + option.name + '</paper-radio-button>';
|
||||
var radioValue = option.id.replace(',', '_');
|
||||
isChecked = (options.query.SortBy || '').replace(',', '_') == radioValue ? ' checked' : '';
|
||||
html += '<label class="block"><input type="radio" is="emby-radio" name="SortBy" data-id="' + option.id + '" value="' + radioValue + '" class="menuSortBy" ' + isChecked + ' /><span>' + option.name + '</span></label>';
|
||||
}
|
||||
html += '</paper-radio-group>';
|
||||
html += '</div>';
|
||||
|
||||
html += '<h2 style="margin: 1em 0 .5em;">';
|
||||
html += Globalize.translate('HeaderSortOrder');
|
||||
html += '</h2>';
|
||||
html += '<paper-radio-group class="groupSortOrder" selected="' + (options.query.SortOrder || 'Ascending') + '">';
|
||||
html += '<paper-radio-button name="Ascending" style="display:block;" class="menuSortOrder block">' + Globalize.translate('OptionAscending') + '</paper-radio-button>';
|
||||
html += '<paper-radio-button name="Descending" style="display:block;" class="menuSortOrder block">' + Globalize.translate('OptionDescending') + '</paper-radio-button>';
|
||||
html += '</paper-radio-group>';
|
||||
html += '<div>';
|
||||
isChecked = options.query.SortOrder == 'Ascending' ? ' checked' : '';
|
||||
html += '<label class="block"><input type="radio" is="emby-radio" name="SortOrder" value="Ascending" class="menuSortOrder" ' + isChecked + ' /><span>' + Globalize.translate('OptionAscending') + '</span></label>';
|
||||
isChecked = options.query.SortOrder == 'Descending' ? ' checked' : '';
|
||||
html += '<label class="block"><input type="radio" is="emby-radio" name="SortOrder" value="Descending" class="menuSortOrder" ' + isChecked + ' /><span>' + Globalize.translate('OptionDescending') + '</span></label>';
|
||||
html += '</div>';
|
||||
html += '</div>';
|
||||
|
||||
dlg.innerHTML = html;
|
||||
|
@ -3002,22 +3009,28 @@
|
|||
dialogHelper.open(dlg);
|
||||
}, delay);
|
||||
|
||||
dlg.querySelector('.groupSortBy').addEventListener('iron-select', function () {
|
||||
|
||||
var newValue = this.selected.replace('_', ',');
|
||||
function onSortByChange() {
|
||||
var newValue = this.value;
|
||||
if (this.checked) {
|
||||
var changed = options.query.SortBy != newValue;
|
||||
|
||||
options.query.SortBy = newValue;
|
||||
options.query.SortBy = newValue.replace('_', ',');
|
||||
options.query.StartIndex = 0;
|
||||
|
||||
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;
|
||||
function onSortOrderChange() {
|
||||
var newValue = this.value;
|
||||
if (this.checked) {
|
||||
var changed = options.query.SortOrder != newValue;
|
||||
|
||||
options.query.SortOrder = newValue;
|
||||
|
@ -3026,7 +3039,13 @@
|
|||
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);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
|
|
@ -1170,17 +1170,39 @@ var Dashboard = {
|
|||
return caps;
|
||||
},
|
||||
|
||||
getDefaultImageQuality: function (imageType) {
|
||||
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;
|
||||
var isBackdrop = imageType.toLowerCase() == 'backdrop';
|
||||
|
||||
if (isBackdrop) {
|
||||
if ((options.type || '').toLowerCase() == 'backdrop') {
|
||||
quality -= 10;
|
||||
}
|
||||
|
||||
if (browserInfo.mobile) {
|
||||
quality -= 20;
|
||||
if (browserInfo.mobile || browserInfo.tv) {
|
||||
quality -= 30;
|
||||
}
|
||||
|
||||
if (AppInfo.hasLowImageBandwidth) {
|
||||
|
@ -1188,20 +1210,12 @@ var Dashboard = {
|
|||
// The native app can handle a little bit more than safari
|
||||
if (AppInfo.isNativeApp) {
|
||||
|
||||
quality -= 5;
|
||||
//quality -= 5;
|
||||
} else {
|
||||
quality -= 20;
|
||||
quality -= 15;
|
||||
}
|
||||
}
|
||||
|
||||
return quality;
|
||||
},
|
||||
|
||||
normalizeImageOptions: function (options) {
|
||||
|
||||
if (AppInfo.hasLowImageBandwidth) {
|
||||
|
||||
options.enableImageEnhancers = false;
|
||||
options.quality = quality;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -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;
|
||||
|
|
|
@ -362,10 +362,6 @@ paper-dropdown-menu {
|
|||
display: block;
|
||||
}
|
||||
|
||||
paper-radio-group > * {
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
div.dialogHeader {
|
||||
padding: .35em .5em;
|
||||
display: flex;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue