mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
merge branch master into remove-prefixes
This commit is contained in:
commit
34b155cbae
75 changed files with 3529 additions and 532 deletions
|
@ -37,11 +37,12 @@
|
|||
box-shadow: none;
|
||||
flex-shrink: 0;
|
||||
border-radius: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.actionSheetMenuItem:focus {
|
||||
transform: none !important;
|
||||
}
|
||||
.actionSheetMenuItem:focus {
|
||||
transform: none !important;
|
||||
}
|
||||
|
||||
.actionsheetListItemBody {
|
||||
padding: .4em 1em .4em .6em !important;
|
||||
|
@ -104,7 +105,7 @@
|
|||
}
|
||||
|
||||
.actionsheet-xlargeFont {
|
||||
font-size: 112%!important;
|
||||
font-size: 112% !important;
|
||||
}
|
||||
|
||||
.btnCloseActionSheet {
|
||||
|
|
|
@ -243,7 +243,7 @@ button {
|
|||
}
|
||||
|
||||
.coveredImage {
|
||||
background-size: 100% 100%;
|
||||
background-size: cover;
|
||||
background-position: center center;
|
||||
}
|
||||
|
||||
|
@ -622,7 +622,7 @@ button {
|
|||
|
||||
@media (min-width: 43.75em) {
|
||||
.overflowSquareCard, .overflowPortraitCard {
|
||||
width: 23.3vw;
|
||||
width: 23.1vw;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -638,13 +638,13 @@ button {
|
|||
}
|
||||
|
||||
.overflowSquareCard, .overflowPortraitCard {
|
||||
width: 23.3vw;
|
||||
width: 23.1vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (orientation: landscape) and (min-width: 48.125em) {
|
||||
.overflowBackdropCard, .overflowSmallBackdropCard {
|
||||
width: 23.3vw;
|
||||
width: 23.1vw;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -656,13 +656,13 @@ button {
|
|||
|
||||
@media (min-width: 50em) {
|
||||
.overflowSquareCard, .overflowPortraitCard {
|
||||
width: 18.4vw;
|
||||
width: 18.5vw;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 75em) {
|
||||
.overflowBackdropCard, .overflowSmallBackdropCard {
|
||||
width: 23.3vw;
|
||||
width: 23.1vw;
|
||||
}
|
||||
|
||||
.overflowSquareCard, .overflowPortraitCard {
|
||||
|
|
|
@ -893,7 +893,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'itemHelper', 'focusMana
|
|||
|
||||
if (item.EndDate && item.ProductionYear) {
|
||||
var endYear = datetime.parseISO8601Date(item.EndDate).getFullYear();
|
||||
lines.push(item.ProductionYear + (endYear === item.ProductionYear) ? '' : (' - ' + endYear));
|
||||
lines.push(item.ProductionYear + ((endYear === item.ProductionYear) ? '' : (' - ' + endYear)));
|
||||
} else {
|
||||
lines.push(item.ProductionYear || '');
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
justify-content: center;
|
||||
min-width:104px;
|
||||
min-height:24px;
|
||||
padding-top: 1.25em;
|
||||
z-index: 1;
|
||||
color: #ffffff;
|
||||
display: flex;
|
||||
|
@ -15,4 +16,4 @@
|
|||
min-width: 24px;
|
||||
min-height: 24px;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,21 +8,15 @@
|
|||
}
|
||||
|
||||
/* align first card in scroller to heading */
|
||||
.emby-scroller .card:first-of-type > .cardBox {
|
||||
.itemsContainer > .card > .cardBox {
|
||||
margin-left: 0;
|
||||
margin-right: 1.2em;
|
||||
}
|
||||
|
||||
/* align heading for normal item containers */
|
||||
/* still not ideal solution but better than the last method */
|
||||
.verticalSection > .itemsContainer .cardBox {
|
||||
.layout-tv .emby-scroller,
|
||||
.layout-mobile .emby-scroller {
|
||||
padding-left: 3.3%;
|
||||
padding-right: 3.3%;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
@media all and (max-width:50em) {
|
||||
.emby-scroller {
|
||||
padding-left: 3.3%;
|
||||
padding-right: 3.3%;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
|
@ -2,11 +2,8 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
|||
"use strict";
|
||||
|
||||
function getDefaultProfile() {
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
require(['browserdeviceprofile'], function (profileBuilder) {
|
||||
|
||||
resolve(profileBuilder({}));
|
||||
});
|
||||
});
|
||||
|
@ -14,28 +11,22 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
|||
|
||||
var fadeTimeout;
|
||||
function fade(instance, elem, startingVolume) {
|
||||
|
||||
instance._isFadingOut = true;
|
||||
|
||||
// Need to record the starting volume on each pass rather than querying elem.volume
|
||||
// This is due to iOS safari not allowing volume changes and always returning the system volume value
|
||||
|
||||
var newVolume = Math.max(0, startingVolume - 0.15);
|
||||
console.log('fading volume to ' + newVolume);
|
||||
elem.volume = newVolume;
|
||||
|
||||
if (newVolume <= 0) {
|
||||
|
||||
instance._isFadingOut = false;
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
cancelFadeTimeout();
|
||||
|
||||
fadeTimeout = setTimeout(function () {
|
||||
|
||||
fade(instance, elem, newVolume).then(resolve, reject);
|
||||
}, 100);
|
||||
});
|
||||
|
@ -50,7 +41,6 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
|||
}
|
||||
|
||||
function supportsFade() {
|
||||
|
||||
if (browser.tv) {
|
||||
// Not working on tizen.
|
||||
// We could possibly enable on other tv's, but all smart tv browsers tend to be pretty primitive
|
||||
|
@ -68,9 +58,7 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
|||
}
|
||||
|
||||
function enableHlsPlayer(url, item, mediaSource, mediaType) {
|
||||
|
||||
if (!htmlMediaHelper.enableHlsJsPlayer(mediaSource.RunTimeTicks, mediaType)) {
|
||||
|
||||
return Promise.reject();
|
||||
}
|
||||
|
||||
|
@ -86,21 +74,18 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
|||
url: url,
|
||||
type: 'HEAD'
|
||||
}).then(function (response) {
|
||||
|
||||
var contentType = (response.headers.get('Content-Type') || '').toLowerCase();
|
||||
if (contentType === 'application/x-mpegurl') {
|
||||
resolve();
|
||||
} else {
|
||||
reject();
|
||||
}
|
||||
|
||||
}, reject);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function HtmlAudioPlayer() {
|
||||
|
||||
var self = this;
|
||||
|
||||
self.name = 'Html Audio Player';
|
||||
|
@ -114,11 +99,9 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
|||
|
||||
self._started = false;
|
||||
self._timeUpdated = false;
|
||||
|
||||
self._currentTime = null;
|
||||
|
||||
var elem = createMediaElement(options);
|
||||
|
||||
return setCurrentSrc(elem, options);
|
||||
};
|
||||
|
||||
|
@ -511,4 +494,4 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
|||
};
|
||||
|
||||
return HtmlAudioPlayer;
|
||||
});
|
||||
});
|
||||
|
|
|
@ -115,7 +115,6 @@ define(['datetime', 'itemHelper', 'css!./indicators.css', 'material-icons'], fun
|
|||
}
|
||||
|
||||
function getTimerIndicator(item) {
|
||||
|
||||
var status;
|
||||
|
||||
if (item.Type === 'SeriesTimer') {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<div class="formDialogHeader">
|
||||
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">arrow_back</i></button>
|
||||
<h3 class="formDialogHeaderTitle">
|
||||
${HeaderMediaInfo}
|
||||
</h3>
|
||||
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1">
|
||||
<i class="md-icon">arrow_back</i>
|
||||
</button>
|
||||
<h3 class="formDialogHeaderTitle">${HeaderMediaInfo}</h3>
|
||||
</div>
|
||||
|
||||
<div class="formDialogContent smoothScrollY">
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1">
|
||||
<i class="md-icon">arrow_back</i>
|
||||
</button>
|
||||
<h3 class="formDialogHeaderTitle">
|
||||
${Identify}
|
||||
</h3>
|
||||
<h3 class="formDialogHeaderTitle">${Identify}</h3>
|
||||
</div>
|
||||
|
||||
<div class="formDialogContent smoothScrollY">
|
||||
|
@ -17,16 +15,13 @@
|
|||
<div class="txtPath fieldDescription"></div>
|
||||
</div>
|
||||
<div class="inputContainer">
|
||||
<input is="emby-input" type="text" id="txtLookupName" class="identifyField" data-lookup="Name"
|
||||
label="${LabelName}" />
|
||||
<input is="emby-input" type="text" id="txtLookupName" class="identifyField" data-lookup="Name" label="${LabelName}" />
|
||||
</div>
|
||||
<div class="fldLookupYear inputContainer">
|
||||
<input is="emby-input" type="number" id="txtLookupYear" class="identifyField" data-lookup="Year"
|
||||
pattern="[0-9]*" min="1800" label="${LabelYear}" />
|
||||
<input is="emby-input" type="number" id="txtLookupYear" class="identifyField" data-lookup="Year" pattern="[0-9]*" min="1800" label="${LabelYear}" />
|
||||
</div>
|
||||
|
||||
<div class="identifyProviderIds">
|
||||
</div>
|
||||
<div class="identifyProviderIds"></div>
|
||||
|
||||
<div class="formDialogFooter">
|
||||
<button is="emby-button" type="submit" class="raised button-submit block formDialogFooterItem">
|
||||
|
@ -34,14 +29,13 @@
|
|||
</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="identificationSearchResults hide">
|
||||
|
||||
<div class="identificationSearchResults hide">
|
||||
<h1>${SearchResults}</h1>
|
||||
<div class="identificationSearchResultList itemsContainer vertical-wrap"></div>
|
||||
</div>
|
||||
|
||||
<form class="identifyOptionsForm hide" style="margin:auto;">
|
||||
|
||||
<br />
|
||||
<div class="selectedSearchResult"></div>
|
||||
<br />
|
||||
|
@ -51,8 +45,7 @@
|
|||
</label>
|
||||
|
||||
<div class="formDialogFooter">
|
||||
<button is="emby-button" type="submit"
|
||||
class="raised button-submit block btnSubmit formDialogFooterItem">
|
||||
<button is="emby-button" type="submit" class="raised button-submit block btnSubmit formDialogFooterItem">
|
||||
<span>${ButtonOk}</span>
|
||||
</button>
|
||||
</div>
|
||||
|
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
@ -6,14 +6,11 @@ define(['require', 'css!./loadingLegacy'], function (require) {
|
|||
return {
|
||||
show: function () {
|
||||
var elem = loadingElem;
|
||||
|
||||
if (!elem) {
|
||||
|
||||
elem = document.createElement("img");
|
||||
elem.src = require.toUrl('.').split('?')[0] + '/loader2.gif';
|
||||
elem.src = require.toUrl('.').split('?')[0] + '/loader.gif';
|
||||
|
||||
loadingElem = elem;
|
||||
|
||||
elem.classList.add('loading-spinner');
|
||||
|
||||
document.body.appendChild(elem);
|
||||
|
@ -23,11 +20,9 @@ define(['require', 'css!./loadingLegacy'], function (require) {
|
|||
},
|
||||
hide: function () {
|
||||
var elem = loadingElem;
|
||||
|
||||
if (elem) {
|
||||
|
||||
elem.classList.add('hide');
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"main": "loading.js"
|
||||
}
|
|
@ -2,14 +2,12 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp
|
|||
'use strict';
|
||||
|
||||
function showDialog(instance, options, template) {
|
||||
|
||||
var dialogOptions = {
|
||||
removeOnClose: true,
|
||||
scrollY: false
|
||||
};
|
||||
|
||||
var enableTvLayout = layoutManager.tv;
|
||||
|
||||
if (enableTvLayout) {
|
||||
dialogOptions.size = 'fullscreen';
|
||||
}
|
||||
|
@ -48,7 +46,6 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp
|
|||
instance.dlg = dlg;
|
||||
|
||||
return dialogHelper.open(dlg).then(function () {
|
||||
|
||||
if (enableTvLayout) {
|
||||
scrollHelper.centerFocus.off(dlg.querySelector('.formDialogContent'), false);
|
||||
}
|
||||
|
@ -58,12 +55,10 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp
|
|||
}
|
||||
|
||||
function LoadingDialog(options) {
|
||||
|
||||
this.options = options;
|
||||
}
|
||||
|
||||
LoadingDialog.prototype.show = function () {
|
||||
|
||||
var instance = this;
|
||||
loading.show();
|
||||
|
||||
|
@ -76,15 +71,12 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp
|
|||
};
|
||||
|
||||
LoadingDialog.prototype.setTitle = function (title) {
|
||||
|
||||
};
|
||||
|
||||
LoadingDialog.prototype.setText = function (text) {
|
||||
|
||||
};
|
||||
|
||||
LoadingDialog.prototype.hide = function () {
|
||||
|
||||
if (this.dlg) {
|
||||
dialogHelper.close(this.dlg);
|
||||
this.dlg = null;
|
||||
|
@ -92,10 +84,9 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp
|
|||
};
|
||||
|
||||
LoadingDialog.prototype.destroy = function () {
|
||||
|
||||
this.dlg = null;
|
||||
this.options = null;
|
||||
};
|
||||
|
||||
return LoadingDialog;
|
||||
});
|
||||
});
|
||||
|
|
|
@ -69,10 +69,7 @@
|
|||
}
|
||||
|
||||
.closedCaptionMediaInfoText {
|
||||
/*padding: .24em .4em;*/
|
||||
font-weight: bold;
|
||||
/*font-size: inherit;*/
|
||||
/*background: rgba(81, 81, 81, .7);*/
|
||||
}
|
||||
|
||||
.mediaInfoOfficialRating {
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"main": "serverNotifications.js"
|
||||
}
|
|
@ -26,6 +26,7 @@ html {
|
|||
background: linear-gradient(to right, #BCBCBC, #A7B4B7, #BEB5A5, #ADBEC2, #B9C7CB)
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@supports (backdrop-filter:blur(1.5em)) {
|
||||
.skinHeader-blurred {
|
||||
background: linear-gradient(to right, rgba(188, 188, 188, .7), rgba(167, 180, 183, .7), rgba(190, 181, 165, .7), rgba(173, 190, 194, .7), rgba(185, 199, 203, .7));
|
||||
|
@ -33,6 +34,8 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> master
|
||||
.skinHeader.semiTransparent {
|
||||
backdrop-filter: none !important
|
||||
}
|
||||
|
@ -191,6 +194,7 @@ html {
|
|||
background: linear-gradient(to right, #BCBCBC, #A7B4B7, #BEB5A5, #ADBEC2, #B9C7CB)
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@supports (backdrop-filter:blur(10px)) {
|
||||
.appfooter-blurred {
|
||||
background: rgba(24, 24, 24, .7);
|
||||
|
@ -198,6 +202,8 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> master
|
||||
.nowPlayingBarSecondaryText {
|
||||
color: #999
|
||||
}
|
||||
|
|
|
@ -175,7 +175,11 @@ html {
|
|||
|
||||
@supports (backdrop-filter:blur(10px)) {
|
||||
.appfooter-blurred {
|
||||
<<<<<<< HEAD
|
||||
background: rgba(24, 24, 24, .7);
|
||||
=======
|
||||
background: rgba(1, 2, 50, .7);
|
||||
>>>>>>> master
|
||||
backdrop-filter: blur(20px)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -161,6 +161,7 @@ html {
|
|||
color: rgba(255, 255, 255, .78)
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@supports (backdrop-filter:blur(10px)) {
|
||||
.appfooter-blurred {
|
||||
background: rgba(24, 24, 24, .7);
|
||||
|
@ -168,6 +169,8 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> master
|
||||
.itemSelectionPanel {
|
||||
border: 1px solid #00a4dc
|
||||
}
|
||||
|
|
|
@ -161,6 +161,7 @@ html {
|
|||
color: rgba(255, 255, 255, .78)
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@supports (backdrop-filter:blur(10px)) {
|
||||
.appfooter-blurred {
|
||||
background: rgba(24, 24, 24, .7);
|
||||
|
@ -168,6 +169,8 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> master
|
||||
.itemSelectionPanel {
|
||||
border: 1px solid #52b54b
|
||||
}
|
||||
|
|
|
@ -186,6 +186,7 @@ html {
|
|||
color: rgba(255, 255, 255, .78)
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@supports (backdrop-filter:blur(10px)) {
|
||||
.appfooter-blurred {
|
||||
background: rgba(24, 24, 24, .7);
|
||||
|
@ -193,6 +194,8 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> master
|
||||
.nowPlayingBarSecondaryText {
|
||||
color: #999
|
||||
}
|
||||
|
|
|
@ -263,7 +263,11 @@ a[data-role=button] {
|
|||
|
||||
@supports (backdrop-filter:blur(10px)) {
|
||||
.appfooter-blurred {
|
||||
<<<<<<< HEAD
|
||||
background: rgba(24, 24, 24, .7);
|
||||
=======
|
||||
background: rgba(6, 37, 111, .7);
|
||||
>>>>>>> master
|
||||
backdrop-filter: blur(20px)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ html {
|
|||
background: linear-gradient(to bottom, #0C2450, #081B3B)
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@supports (backdrop-filter:blur(1.5em)) {
|
||||
.skinHeader-blurred {
|
||||
background: rgba(20, 20, 20, .7);
|
||||
|
@ -33,6 +34,8 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> master
|
||||
.skinHeader.semiTransparent {
|
||||
backdrop-filter: none !important;
|
||||
background-color: rgba(0, 0, 0, .3);
|
||||
|
@ -171,6 +174,7 @@ html {
|
|||
color: rgba(255, 255, 255, .78)
|
||||
}
|
||||
|
||||
<<<<<<< HEAD
|
||||
@supports (backdrop-filter:blur(10px)) {
|
||||
.appfooter-blurred {
|
||||
background: rgba(24, 24, 24, .7);
|
||||
|
@ -178,6 +182,8 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
=======
|
||||
>>>>>>> master
|
||||
.itemSelectionPanel {
|
||||
border: 1px solid #00a4dc
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue