1
0
Fork 0
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:
Luke Pulverenti 2016-07-10 03:01:25 -04:00
parent 9de658be0b
commit 22ef579fdb
6 changed files with 230 additions and 62 deletions

View file

@ -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',

View file

@ -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;
}

View file

@ -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);
};

View file

@ -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);
}
});
},

View file

@ -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;

View file

@ -362,10 +362,6 @@ paper-dropdown-menu {
display: block;
}
paper-radio-group > * {
padding: .5em;
}
div.dialogHeader {
padding: .35em .5em;
display: flex;