mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'master' of https://github.com/jellyfin/jellyfin-web into item-detail-page-
# Conflicts: # src/assets/css/librarybrowser.css # src/itemdetails.html
This commit is contained in:
commit
709b48a8a8
129 changed files with 2629 additions and 1199 deletions
|
@ -20,24 +20,21 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: NodeTool@0
|
- task: NodeTool@0
|
||||||
displayName: 'Install Node.js'
|
displayName: 'Install Node'
|
||||||
inputs:
|
inputs:
|
||||||
versionSpec: '10.x'
|
versionSpec: '10.x'
|
||||||
|
|
||||||
- script: |
|
- script: 'yarn install'
|
||||||
yarn install
|
displayName: 'Install Dependencies'
|
||||||
displayName: 'Install dependencies'
|
|
||||||
|
|
||||||
- script: |
|
- script: 'test -d dist'
|
||||||
test -d dist
|
displayName: 'Check Build'
|
||||||
displayName: 'Check dist directory'
|
|
||||||
|
|
||||||
- script: |
|
- script: 'yarn pack --filename jellyfin-web.tgz'
|
||||||
yarn pack --filename jellyfin-web.tgz
|
displayName: 'Bundle Release'
|
||||||
displayName: 'Build package'
|
|
||||||
|
|
||||||
- task: PublishPipelineArtifact@1
|
- task: PublishPipelineArtifact@1
|
||||||
displayName: 'Publish package'
|
displayName: 'Publish Release'
|
||||||
condition: succeeded()
|
condition: succeeded()
|
||||||
inputs:
|
inputs:
|
||||||
targetPath: '$(Build.SourcesDirectory)/jellyfin-web.tgz'
|
targetPath: '$(Build.SourcesDirectory)/jellyfin-web.tgz'
|
||||||
|
@ -51,14 +48,12 @@ jobs:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- task: NodeTool@0
|
- task: NodeTool@0
|
||||||
displayName: 'Install Node.js'
|
displayName: 'Install Node'
|
||||||
inputs:
|
inputs:
|
||||||
versionSpec: '10.x'
|
versionSpec: '10.x'
|
||||||
|
|
||||||
- script: |
|
- script: 'yarn install'
|
||||||
yarn install
|
displayName: 'Install Dependencies'
|
||||||
displayName: 'Install dependencies'
|
|
||||||
|
|
||||||
- script: |
|
- script: 'yarn run lint'
|
||||||
yarn run lint
|
|
||||||
displayName: 'Run ESLint'
|
displayName: 'Run ESLint'
|
||||||
|
|
|
@ -5,14 +5,12 @@
|
||||||
"repository": "https://github.com/jellyfin/jellyfin-web",
|
"repository": "https://github.com/jellyfin/jellyfin-web",
|
||||||
"license": "GPL-2.0-or-later",
|
"license": "GPL-2.0-or-later",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"autoprefixer": "^9.7.3",
|
|
||||||
"clean-webpack-plugin": "^3.0.0",
|
"clean-webpack-plugin": "^3.0.0",
|
||||||
"copy-webpack-plugin": "^5.1.1",
|
"copy-webpack-plugin": "^5.1.1",
|
||||||
"css-loader": "^2.1.0",
|
"css-loader": "^2.1.0",
|
||||||
"eslint": "^5.16.0",
|
"eslint": "^5.16.0",
|
||||||
"file-loader": "^3.0.1",
|
"file-loader": "^3.0.1",
|
||||||
"html-webpack-plugin": "^3.2.0",
|
"html-webpack-plugin": "^3.2.0",
|
||||||
"postcss-loader": "^3.0.0",
|
|
||||||
"style-loader": "^0.23.1",
|
"style-loader": "^0.23.1",
|
||||||
"webpack": "^4.41.0",
|
"webpack": "^4.41.0",
|
||||||
"webpack-cli": "^3.3.9",
|
"webpack-cli": "^3.3.9",
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
plugins: [
|
|
||||||
require('autoprefixer')
|
|
||||||
]
|
|
||||||
}
|
|
41
scripts/scdup.py
Normal file
41
scripts/scdup.py
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
|
||||||
|
# load every key in the source language
|
||||||
|
# check the keys in all translations
|
||||||
|
# remove keys that only exist in translations
|
||||||
|
|
||||||
|
cwd = os.getcwd()
|
||||||
|
langdir = cwd + '/../src/strings'
|
||||||
|
langlst = os.listdir(langdir)
|
||||||
|
|
||||||
|
langlst.remove('en-us.json')
|
||||||
|
print(langlst)
|
||||||
|
input('press enter to continue')
|
||||||
|
|
||||||
|
keysus = []
|
||||||
|
with open(langdir + '/' + 'en-us.json') as en:
|
||||||
|
langus = json.load(en)
|
||||||
|
for key in langus:
|
||||||
|
keysus.append(key)
|
||||||
|
|
||||||
|
for lang in langlst:
|
||||||
|
with open(langdir + '/' + lang, 'r') as f:
|
||||||
|
inde = 2
|
||||||
|
if '\n \"' in f.read():
|
||||||
|
inde = 4
|
||||||
|
f.close()
|
||||||
|
with open(langdir + '/' + lang, 'r+') as f:
|
||||||
|
langjson = json.load(f)
|
||||||
|
langjnew = {}
|
||||||
|
for key in langjson:
|
||||||
|
if key in keysus:
|
||||||
|
langjnew[key] = langjson[key]
|
||||||
|
f.seek(0)
|
||||||
|
f.write(json.dumps(langjnew, indent=inde, sort_keys=False, ensure_ascii=False))
|
||||||
|
f.write('\n')
|
||||||
|
f.truncate()
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
print('DONE')
|
40
scripts/scgen.py
Normal file
40
scripts/scgen.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
import os
|
||||||
|
import subprocess
|
||||||
|
import json
|
||||||
|
|
||||||
|
# load all keys in the source language
|
||||||
|
# check entire codebase for usages
|
||||||
|
# print unused keys to a text file
|
||||||
|
# TODO: dynamic string usages cause false positives
|
||||||
|
|
||||||
|
cwd = os.getcwd()
|
||||||
|
langdir = cwd + '/../src/strings'
|
||||||
|
langlst = []
|
||||||
|
langlst.append('en-us.json')
|
||||||
|
|
||||||
|
# unused keys
|
||||||
|
dep = []
|
||||||
|
|
||||||
|
def grep(key):
|
||||||
|
command = 'grep -r -E "(\(\\\"|\(\'|\{)%s(\\\"|\'|\})" --include=\*.{js,html} --exclude-dir=../src/strings ../src' % key
|
||||||
|
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||||
|
output = p.stdout.readlines()
|
||||||
|
if output:
|
||||||
|
print('DONE: ' + key)
|
||||||
|
return True
|
||||||
|
print('UNUSED: ' + key)
|
||||||
|
dep.append(key)
|
||||||
|
return False
|
||||||
|
|
||||||
|
for lang in langlst:
|
||||||
|
with open(langdir + '/' + lang) as f:
|
||||||
|
langjson = json.load(f)
|
||||||
|
for key in langjson:
|
||||||
|
grep(key)
|
||||||
|
|
||||||
|
print(dep)
|
||||||
|
print('LENGTH: ' + str(len(dep)))
|
||||||
|
with open('scout.txt', 'w') as out:
|
||||||
|
for item in dep:
|
||||||
|
out.write(item + '\n')
|
||||||
|
out.close()
|
34
scripts/scrm.py
Normal file
34
scripts/scrm.py
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import json
|
||||||
|
|
||||||
|
# load text file containing unused keys
|
||||||
|
# remove the keys from all string files
|
||||||
|
|
||||||
|
cwd = os.getcwd()
|
||||||
|
langdir = cwd + '/../src/strings'
|
||||||
|
langlst = os.listdir(langdir)
|
||||||
|
|
||||||
|
keys = []
|
||||||
|
|
||||||
|
with open('scout.txt', 'r') as f:
|
||||||
|
for line in f:
|
||||||
|
keys.append(line.strip('\n'))
|
||||||
|
|
||||||
|
for lang in langlst:
|
||||||
|
with open(langdir + '/' + lang, 'r') as f:
|
||||||
|
inde = 2
|
||||||
|
if '\n \"' in f.read():
|
||||||
|
inde = 4
|
||||||
|
f.close()
|
||||||
|
with open(langdir + '/' + lang, 'r+') as f:
|
||||||
|
langjson = json.load(f)
|
||||||
|
for key in keys:
|
||||||
|
langjson.pop(key, None)
|
||||||
|
f.seek(0)
|
||||||
|
f.write(json.dumps(langjson, indent=inde, sort_keys=False, ensure_ascii=False))
|
||||||
|
f.write('\n')
|
||||||
|
f.truncate()
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
print('DONE')
|
|
@ -1,10 +1,7 @@
|
||||||
<div id="addPluginPage" data-role="page" class="page type-interior pluginConfigurationPage" data-backbutton="true">
|
<div id="addPluginPage" data-role="page" class="page type-interior pluginConfigurationPage" data-backbutton="true">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
|
||||||
<div class="readOnlyContent">
|
<div class="readOnlyContent">
|
||||||
|
|
||||||
<div class="verticalSection">
|
<div class="verticalSection">
|
||||||
<div class="sectionTitleContainer flex align-items-center">
|
<div class="sectionTitleContainer flex align-items-center">
|
||||||
<h1 class="sectionTitle pluginName"></h1>
|
<h1 class="sectionTitle pluginName"></h1>
|
||||||
|
@ -13,9 +10,7 @@
|
||||||
|
|
||||||
<p id="tagline" style="font-style: italic;"></p>
|
<p id="tagline" style="font-style: italic;"></p>
|
||||||
<p id="pPreviewImage"></p>
|
<p id="pPreviewImage"></p>
|
||||||
|
|
||||||
<p id="overview"></p>
|
<p id="overview"></p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="verticalSection">
|
<div class="verticalSection">
|
||||||
|
@ -27,12 +22,12 @@
|
||||||
<select id="selectVersion" name="selectVersion" is="emby-select" label="${LabelSelectVersionToInstall}"></select>
|
<select id="selectVersion" name="selectVersion" is="emby-select" label="${LabelSelectVersionToInstall}"></select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p id="btnInstallDiv" class="hide">
|
<div id="btnInstallDiv" class="hide">
|
||||||
<button is="emby-button" type="submit" id="btnInstall" class="raised button-submit block">
|
<button is="emby-button" type="submit" id="btnInstall" class="raised button-submit block">
|
||||||
<span>${Install}</span>
|
<span>${Install}</span>
|
||||||
</button>
|
</button>
|
||||||
<div class="fieldDescription">${ServerRestartNeededAfterPluginInstall}</div>
|
<div class="fieldDescription">${ServerRestartNeededAfterPluginInstall}</div>
|
||||||
</p>
|
</div>
|
||||||
<p id="nonServerMsg"></p>
|
<p id="nonServerMsg"></p>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,9 +2,7 @@
|
||||||
<div>
|
<div>
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
<div class="detailSectionHeader">
|
<div class="detailSectionHeader">
|
||||||
<h2 style="margin:.6em 0;vertical-align:middle;display:inline-block;">
|
<h2 style="margin:.6em 0;vertical-align:middle;display:inline-block;">${HeaderApiKeys}</h2>
|
||||||
${HeaderApiKeys}
|
|
||||||
</h2>
|
|
||||||
<button is="emby-button" type="button" class="fab btnNewKey submit" style="margin-left:1em;" title="${ButtonAdd}">
|
<button is="emby-button" type="button" class="fab btnNewKey submit" style="margin-left:1em;" title="${ButtonAdd}">
|
||||||
<i class="md-icon">add</i>
|
<i class="md-icon">add</i>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
.dashboardColumn,
|
.dashboardColumn,
|
||||||
.dashboardSections {
|
.dashboardSections {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardFooter {
|
.dashboardFooter {
|
||||||
|
@ -14,6 +16,8 @@
|
||||||
|
|
||||||
progress {
|
progress {
|
||||||
appearance: none;
|
appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
background: #ccc !important
|
background: #ccc !important
|
||||||
}
|
}
|
||||||
|
@ -73,17 +77,23 @@ progress[aria-valuenow]:before {
|
||||||
div[data-role=controlgroup] a[data-role=button] {
|
div[data-role=controlgroup] a[data-role=button] {
|
||||||
display: inline-block !important;
|
display: inline-block !important;
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
|
-webkit-box-shadow: none !important;
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
|
-webkit-border-radius: 0;
|
||||||
border-radius: 0
|
border-radius: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
div[data-role=controlgroup] a[data-role=button]:first-child {
|
div[data-role=controlgroup] a[data-role=button]:first-child {
|
||||||
|
-webkit-border-bottom-left-radius: .3125em;
|
||||||
border-bottom-left-radius: .3125em;
|
border-bottom-left-radius: .3125em;
|
||||||
|
-webkit-border-top-left-radius: .3125em;
|
||||||
border-top-left-radius: .3125em
|
border-top-left-radius: .3125em
|
||||||
}
|
}
|
||||||
|
|
||||||
div[data-role=controlgroup] a[data-role=button]:last-child {
|
div[data-role=controlgroup] a[data-role=button]:last-child {
|
||||||
|
-webkit-border-bottom-right-radius: .3125em;
|
||||||
border-bottom-right-radius: .3125em;
|
border-bottom-right-radius: .3125em;
|
||||||
|
-webkit-border-top-right-radius: .3125em;
|
||||||
border-top-right-radius: .3125em
|
border-top-right-radius: .3125em
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,14 +147,23 @@ div[data-role=controlgroup] a.ui-btn-active {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardSections {
|
.dashboardSections {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-flex-direction: column;
|
||||||
flex-direction: column
|
flex-direction: column
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardColumn {
|
.dashboardColumn {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-flex-direction: column;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1
|
flex-grow: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,6 +172,7 @@ div[data-role=controlgroup] a.ui-btn-active {
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardSection {
|
.dashboardSection {
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
margin: 0 0 2em
|
margin: 0 0 2em
|
||||||
}
|
}
|
||||||
|
@ -168,7 +188,11 @@ div[data-role=controlgroup] a.ui-btn-active {
|
||||||
|
|
||||||
@media all and (min-width:70em) {
|
@media all and (min-width:70em) {
|
||||||
.dashboardSections {
|
.dashboardSections {
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-webkit-flex-direction: row;
|
||||||
flex-direction: row
|
flex-direction: row
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,6 +297,7 @@ div[data-role=controlgroup] a.ui-btn-active {
|
||||||
}
|
}
|
||||||
|
|
||||||
.sessionNowPlayingContent {
|
.sessionNowPlayingContent {
|
||||||
|
-webkit-background-size: cover;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
|
@ -371,6 +396,7 @@ div[data-role=controlgroup] a.ui-btn-active {
|
||||||
}
|
}
|
||||||
|
|
||||||
.disabledUser {
|
.disabledUser {
|
||||||
|
-webkit-filter: grayscale(100%);
|
||||||
filter: grayscale(100%)
|
filter: grayscale(100%)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -392,6 +418,9 @@ div[data-role=controlgroup] a.ui-btn-active {
|
||||||
|
|
||||||
a[data-role=button] {
|
a[data-role=button] {
|
||||||
background-clip: padding-box;
|
background-clip: padding-box;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-webkit-background-clip: padding-box;
|
||||||
cursor: pointer !important;
|
cursor: pointer !important;
|
||||||
font-family: inherit !important;
|
font-family: inherit !important;
|
||||||
font-weight: 500 !important;
|
font-weight: 500 !important;
|
||||||
|
@ -403,21 +432,37 @@ a[data-role=button] {
|
||||||
background: #292929 !important;
|
background: #292929 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes rotating {
|
@-webkit-keyframes rotating {
|
||||||
from {
|
from {
|
||||||
|
-webkit-transform: rotate(0);
|
||||||
transform: rotate(0)
|
transform: rotate(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes rotating {
|
||||||
|
from {
|
||||||
|
-webkit-transform: rotate(0);
|
||||||
|
transform: rotate(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
transform: rotate(360deg)
|
transform: rotate(360deg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.rotatingCircle {
|
.rotatingCircle {
|
||||||
|
-webkit-animation: rotating 2s linear infinite;
|
||||||
animation: rotating 2s linear infinite
|
animation: rotating 2s linear infinite
|
||||||
}
|
}
|
||||||
|
|
||||||
.pluginPreviewImg {
|
.pluginPreviewImg {
|
||||||
|
-webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37);
|
||||||
box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37)
|
box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ html {
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-size: 93%;
|
font-size: 93%;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
text-size-adjust: 100%;
|
text-size-adjust: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
.headerSelectedPlayer,
|
.headerSelectedPlayer,
|
||||||
.itemMiscInfo,
|
.itemMiscInfo,
|
||||||
.navMenuOptionText {
|
.navMenuOptionText {
|
||||||
|
-o-text-overflow: ellipsis;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
overflow: hidden
|
overflow: hidden
|
||||||
}
|
}
|
||||||
|
@ -47,6 +48,8 @@
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
top: 6.9em !important;
|
top: 6.9em !important;
|
||||||
|
-webkit-transition: -webkit-transform .2s ease-out;
|
||||||
|
-o-transition: transform .2s ease-out;
|
||||||
transition: transform .2s ease-out
|
transition: transform .2s ease-out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,14 +58,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerUserImage {
|
.headerUserImage {
|
||||||
|
-webkit-background-size: contain;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
|
-webkit-border-radius: 100em;
|
||||||
border-radius: 100em;
|
border-radius: 100em;
|
||||||
display: inline-block
|
display: inline-block
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerUserButtonRound div {
|
.headerUserButtonRound div {
|
||||||
|
-webkit-border-radius: 100em;
|
||||||
border-radius: 100em;
|
border-radius: 100em;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
@ -70,6 +76,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerButton {
|
.headerButton {
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0
|
flex-shrink: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,25 +90,35 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.pageTitle {
|
.pageTitle {
|
||||||
|
display: -webkit-inline-box;
|
||||||
|
display: -webkit-inline-flex;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
margin: .3em 0 0 .5em;
|
margin: .3em 0 0 .5em;
|
||||||
height: 1.7em;
|
height: 1.7em;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-flex-shrink: 1;
|
||||||
flex-shrink: 1
|
flex-shrink: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerLeft,
|
.headerLeft,
|
||||||
.skinHeader {
|
.skinHeader {
|
||||||
display: flex;
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex
|
||||||
}
|
}
|
||||||
|
|
||||||
.detailButton,
|
.detailButton,
|
||||||
.skinHeader {
|
.skinHeader {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
-webkit-flex-direction: column;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal
|
||||||
}
|
}
|
||||||
|
|
||||||
.pageTitleWithLogo {
|
.pageTitleWithLogo {
|
||||||
background-position: left center;
|
background-position: left center;
|
||||||
|
-webkit-background-size: contain;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
width: 13.2em
|
width: 13.2em
|
||||||
|
@ -121,7 +138,7 @@
|
||||||
|
|
||||||
.headerLeft,
|
.headerLeft,
|
||||||
.headerRight {
|
.headerRight {
|
||||||
justify-content: center;
|
-webkit-box-align: center
|
||||||
}
|
}
|
||||||
|
|
||||||
.hiddenViewMenuBar .skinHeader {
|
.hiddenViewMenuBar .skinHeader {
|
||||||
|
@ -134,10 +151,13 @@
|
||||||
|
|
||||||
.headerLeft {
|
.headerLeft {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
justify-content: left;
|
justify-content: flex-start;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sectionTabs {
|
.sectionTabs {
|
||||||
|
@ -145,8 +165,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.headerRight {
|
.headerRight {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-box-pack: end;
|
||||||
|
-webkit-justify-content: flex-end;
|
||||||
justify-content: flex-end
|
justify-content: flex-end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,19 +180,27 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.navMenuOption {
|
.navMenuOption {
|
||||||
|
display: -webkit-box !important;
|
||||||
|
display: -webkit-flex !important;
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
padding: .9em 0 .9em 2.4em !important;
|
padding: .9em 0 .9em 2.4em !important;
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
font-weight: 400 !important;
|
font-weight: 400 !important;
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
|
-webkit-border-radius: 0 !important;
|
||||||
border-radius: 0 !important
|
border-radius: 0 !important
|
||||||
}
|
}
|
||||||
|
|
||||||
.navMenuOptionIcon {
|
.navMenuOptionIcon {
|
||||||
margin-right: 1.2em;
|
margin-right: 1.2em;
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0
|
flex-shrink: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,6 +214,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.dashboardDocument .skinBody {
|
.dashboardDocument .skinBody {
|
||||||
|
-webkit-transition: left ease-in-out .3s, padding ease-in-out .3s;
|
||||||
|
-o-transition: left ease-in-out .3s, padding ease-in-out .3s;
|
||||||
transition: left ease-in-out .3s, padding ease-in-out .3s;
|
transition: left ease-in-out .3s, padding ease-in-out .3s;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -210,7 +245,9 @@
|
||||||
z-index: inherit !important;
|
z-index: inherit !important;
|
||||||
left: 0 !important;
|
left: 0 !important;
|
||||||
top: 0 !important;
|
top: 0 !important;
|
||||||
|
-webkit-transform: none !important;
|
||||||
transform: none !important;
|
transform: none !important;
|
||||||
|
-webkit-box-shadow: none !important;
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
width: 20.205em !important;
|
width: 20.205em !important;
|
||||||
font-size: 94%
|
font-size: 94%
|
||||||
|
@ -293,6 +330,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.flexPageTabContent.is-active {
|
.flexPageTabContent.is-active {
|
||||||
|
display: -webkit-box !important;
|
||||||
|
display: -webkit-flex !important;
|
||||||
display: flex !important
|
display: flex !important
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,6 +347,7 @@
|
||||||
margin: 1.5em 0;
|
margin: 1.5em 0;
|
||||||
background: #222;
|
background: #222;
|
||||||
padding: .8em .8em .8em 3em;
|
padding: .8em .8em .8em 3em;
|
||||||
|
-webkit-border-radius: .3em;
|
||||||
border-radius: .3em;
|
border-radius: .3em;
|
||||||
position: relative
|
position: relative
|
||||||
}
|
}
|
||||||
|
@ -366,6 +406,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.itemBackdrop {
|
.itemBackdrop {
|
||||||
|
-webkit-background-size: cover;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
|
@ -468,6 +509,7 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 14.5%;
|
top: 14.5%;
|
||||||
right: 10.5%;
|
right: 10.5%;
|
||||||
|
-webkit-background-size: contain;
|
||||||
background-size: contain
|
background-size: contain
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -498,6 +540,7 @@
|
||||||
.itemDetailImage {
|
.itemDetailImage {
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37);
|
box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37);
|
||||||
|
-webkit-box-shadow: 0 .0725em .29em 0 rgba(0, 0, 0, .37);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width:62.5em) {
|
@media all and (max-width:62.5em) {
|
||||||
|
@ -528,8 +571,7 @@
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin: -2.2em 0 0 -2.2em;
|
margin: -2.2em 0 0 -2.2em;
|
||||||
border: 2.7px solid rgba(255, 255, 255, .6);
|
padding: 0.4em !important;
|
||||||
padding: .38em !important;
|
|
||||||
color: rgba(255, 255, 255, .76)
|
color: rgba(255, 255, 255, .76)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -566,6 +608,8 @@
|
||||||
.detailButton,
|
.detailButton,
|
||||||
.mainDetailButtons {
|
.mainDetailButtons {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex
|
||||||
}
|
}
|
||||||
|
|
||||||
.itemName {
|
.itemName {
|
||||||
|
@ -586,7 +630,10 @@
|
||||||
|
|
||||||
.mainDetailButtons {
|
.mainDetailButtons {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
}
|
}
|
||||||
|
@ -594,6 +641,7 @@
|
||||||
.recordingFields button {
|
.recordingFields button {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
margin-right: .5em;
|
margin-right: .5em;
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0
|
flex-shrink: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -604,7 +652,11 @@
|
||||||
.detailButton {
|
.detailButton {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
padding: .5em .7em !important
|
padding: .5em .7em !important
|
||||||
|
@ -632,9 +684,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.detailButton-content {
|
.detailButton-content {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-webkit-flex-direction: column;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center
|
align-items: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -706,14 +767,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.itemMiscInfo {
|
.itemMiscInfo {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center
|
align-items: center
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width:31.25em) {
|
@media all and (max-width:31.25em) {
|
||||||
.mobileDetails .itemMiscInfo {
|
.mobileDetails .itemMiscInfo {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
justify-content: center
|
justify-content: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -793,6 +861,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.btnSyncComplete i {
|
.btnSyncComplete i {
|
||||||
|
-webkit-border-radius: 100em;
|
||||||
border-radius: 100em
|
border-radius: 100em
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -801,9 +870,14 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.mediaInfoIcons {
|
.mediaInfoIcons {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
flex-wrap: wrap
|
flex-wrap: wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -841,6 +915,7 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards {
|
||||||
|
|
||||||
.sectionTitleButton {
|
.sectionTitleButton {
|
||||||
margin-left: 1.5em !important;
|
margin-left: 1.5em !important;
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0
|
flex-shrink: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -850,17 +925,22 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards {
|
||||||
|
|
||||||
.sectionTitleIconButton {
|
.sectionTitleIconButton {
|
||||||
margin-left: 1.5em !important;
|
margin-left: 1.5em !important;
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
font-size: 84% !important;
|
font-size: 84% !important;
|
||||||
padding: .5em !important
|
padding: .5em !important
|
||||||
}
|
}
|
||||||
|
|
||||||
.horizontalItemsContainer {
|
.horizontalItemsContainer {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex
|
display: flex
|
||||||
}
|
}
|
||||||
|
|
||||||
.sectionTitleTextButton {
|
.sectionTitleTextButton {
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
|
display: -webkit-inline-box !important;
|
||||||
|
display: -webkit-inline-flex !important;
|
||||||
display: inline-flex !important;
|
display: inline-flex !important;
|
||||||
color: inherit !important
|
color: inherit !important
|
||||||
}
|
}
|
||||||
|
@ -932,6 +1012,8 @@ div:not(.sectionTitleContainer-cards) > .sectionTitle-cards {
|
||||||
}
|
}
|
||||||
|
|
||||||
.itemsViewSettingsContainer {
|
.itemsViewSettingsContainer {
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
justify-content: center
|
justify-content: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,13 +28,17 @@
|
||||||
|
|
||||||
.jstree-wholerow-hovered {
|
.jstree-wholerow-hovered {
|
||||||
background: #38c !important;
|
background: #38c !important;
|
||||||
|
-webkit-border-radius: 0 !important;
|
||||||
border-radius: 0 !important;
|
border-radius: 0 !important;
|
||||||
|
-webkit-box-shadow: none !important;
|
||||||
box-shadow: none !important
|
box-shadow: none !important
|
||||||
}
|
}
|
||||||
|
|
||||||
.jstree-default .jstree-hovered {
|
.jstree-default .jstree-hovered {
|
||||||
background: 0 0 !important;
|
background: 0 0 !important;
|
||||||
|
-webkit-border-radius: 0 !important;
|
||||||
border-radius: 0 !important;
|
border-radius: 0 !important;
|
||||||
|
-webkit-box-shadow: none !important;
|
||||||
box-shadow: none !important;
|
box-shadow: none !important;
|
||||||
color: #fff !important
|
color: #fff !important
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
.scrollX {
|
.scrollX {
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
@ -9,11 +10,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.hiddenScrollX, .layout-tv .scrollX {
|
.hiddenScrollX, .layout-tv .scrollX {
|
||||||
scrollbar-width: none;
|
-ms-overflow-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hiddenScrollX-forced {
|
.hiddenScrollX-forced {
|
||||||
scrollbar-width: none;
|
overflow: -moz-scrollbars-none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hiddenScrollX::-webkit-scrollbar, .layout-tv .scrollX::-webkit-scrollbar {
|
.hiddenScrollX::-webkit-scrollbar, .layout-tv .scrollX::-webkit-scrollbar {
|
||||||
|
@ -23,21 +24,25 @@
|
||||||
|
|
||||||
.scrollY {
|
.scrollY {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.smoothScrollY {
|
.smoothScrollY {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
scroll-behavior: smooth;
|
scroll-behavior: smooth;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hiddenScrollY, .layout-tv .smoothScrollY {
|
.hiddenScrollY, .layout-tv .smoothScrollY {
|
||||||
scrollbar-width: none;
|
-ms-overflow-style: none;
|
||||||
|
/* Can't do this because it not only hides the scrollbar, but also prevents scrolling */
|
||||||
|
/*overflow: -moz-scrollbars-none;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.hiddenScrollY-forced {
|
.hiddenScrollY-forced {
|
||||||
scrollbar-width: none;
|
overflow: -moz-scrollbars-none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hiddenScrollY::-webkit-scrollbar, .layout-tv .smoothScrollY::-webkit-scrollbar, .layout-tv .scrollY::-webkit-scrollbar {
|
.hiddenScrollY::-webkit-scrollbar, .layout-tv .smoothScrollY::-webkit-scrollbar, .layout-tv .scrollY::-webkit-scrollbar {
|
||||||
|
|
|
@ -20,12 +20,18 @@ html {
|
||||||
|
|
||||||
.layout-mobile,
|
.layout-mobile,
|
||||||
.layout-tv {
|
.layout-tv {
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
user-select: none
|
user-select: none
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
background-color: transparent !important;
|
background-color: transparent !important;
|
||||||
|
-webkit-font-smoothing: antialiased
|
||||||
}
|
}
|
||||||
|
|
||||||
.mainAnimatedPage {
|
.mainAnimatedPage {
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
.chapterThumbTextContainer,
|
.chapterThumbTextContainer,
|
||||||
.videoOsdBottom {
|
.videoOsdBottom {
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdPoster img,
|
.osdPoster img,
|
||||||
|
@ -12,10 +15,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdHeader {
|
.osdHeader {
|
||||||
|
-webkit-transition: opacity .3s ease-out;
|
||||||
|
-o-transition: opacity .3s ease-out;
|
||||||
transition: opacity .3s ease-out;
|
transition: opacity .3s ease-out;
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
background: rgba(0, 0, 0, 0.7) !important;
|
background: rgba(0, 0, 0, 0.7) !important;
|
||||||
|
-webkit-backdrop-filter: none !important;
|
||||||
backdrop-filter: none !important;
|
backdrop-filter: none !important;
|
||||||
color: #eee !important;
|
color: #eee !important;
|
||||||
}
|
}
|
||||||
|
@ -29,13 +35,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.chapterThumbContainer {
|
.chapterThumbContainer {
|
||||||
|
-webkit-box-shadow: 0 0 1.9vh #000;
|
||||||
box-shadow: 0 0 1.9vh #000;
|
box-shadow: 0 0 1.9vh #000;
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
position: relative
|
position: relative
|
||||||
}
|
}
|
||||||
|
|
||||||
.chapterThumb {
|
.chapterThumb {
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
|
-webkit-background-size: contain;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
border: 0;
|
border: 0;
|
||||||
|
@ -81,12 +91,20 @@
|
||||||
position: fixed;
|
position: fixed;
|
||||||
background-color: rgba(0, 0, 0, 0.7);
|
background-color: rgba(0, 0, 0, 0.7);
|
||||||
padding: 1%;
|
padding: 1%;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-webkit-flex-direction: row;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
will-change: opacity;
|
will-change: opacity;
|
||||||
|
-webkit-transition: opacity 0.3s ease-out;
|
||||||
|
-o-transition: opacity 0.3s ease-out;
|
||||||
transition: opacity 0.3s ease-out;
|
transition: opacity 0.3s ease-out;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
user-select: none
|
user-select: none;
|
||||||
|
-webkit-touch-callout: none
|
||||||
}
|
}
|
||||||
|
|
||||||
.videoOsdBottom-hidden {
|
.videoOsdBottom-hidden {
|
||||||
|
@ -94,35 +112,51 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdControls {
|
.osdControls {
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1
|
flex-grow: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
.videoOsdBottom .buttons {
|
.videoOsdBottom .buttons {
|
||||||
padding: .25em 0 0;
|
padding: .25em 0 0;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center
|
align-items: center
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdVolumeSliderContainer {
|
.osdVolumeSliderContainer {
|
||||||
width: 9em;
|
width: 9em;
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1
|
flex-grow: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdMediaInfo,
|
.osdMediaInfo,
|
||||||
.volumeButtons {
|
.volumeButtons {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-box-align: center
|
||||||
}
|
}
|
||||||
|
|
||||||
.volumeButtons {
|
.volumeButtons {
|
||||||
margin: 0 .5em 0 auto;
|
margin: 0 .5em 0 auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center
|
align-items: center
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdTimeText {
|
.osdTimeText {
|
||||||
margin-left: 1em;
|
margin-left: 1em;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
user-select: none
|
user-select: none
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,10 +170,15 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: auto;
|
height: auto;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
-webkit-box-shadow: 0 0 1.9vh #000;
|
||||||
box-shadow: 0 0 1.9vh #000;
|
box-shadow: 0 0 1.9vh #000;
|
||||||
border: .08em solid #222;
|
border: .08em solid #222;
|
||||||
user-drag: none;
|
user-drag: none;
|
||||||
user-select: none
|
user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-drag: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-ms-user-select: none
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdTitle,
|
.osdTitle,
|
||||||
|
@ -149,6 +188,7 @@
|
||||||
|
|
||||||
.osdMediaInfo {
|
.osdMediaInfo {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center
|
align-items: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,14 +197,23 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdTextContainer {
|
.osdTextContainer {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
margin-bottom: .7em;
|
margin-bottom: .7em;
|
||||||
padding-left: .5em
|
padding-left: .5em
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdMainTextContainer {
|
.osdMainTextContainer {
|
||||||
|
-webkit-box-align: baseline;
|
||||||
|
-webkit-align-items: baseline;
|
||||||
align-items: baseline
|
align-items: baseline
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,13 +221,28 @@
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@-moz-keyframes spin {
|
||||||
|
100% {
|
||||||
|
-moz-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes spin {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes spin {
|
@keyframes spin {
|
||||||
100% {
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
transform:rotate(360deg);
|
transform:rotate(360deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.osdMediaStatus .animate {
|
.osdMediaStatus .animate {
|
||||||
|
-webkit-animation:spin 4s linear infinite;
|
||||||
|
-moz-animation:spin 4s linear infinite;
|
||||||
animation:spin 4s linear infinite;
|
animation:spin 4s linear infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
@ -17,7 +17,7 @@ _define("fetch", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
// flvjs
|
// flvjs
|
||||||
var flvjs = require("flv.js").default;
|
var flvjs = require("flv.js/dist/flv").default;
|
||||||
_define("flvjs", function() {
|
_define("flvjs", function() {
|
||||||
return flvjs;
|
return flvjs;
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
define(['browser', 'connectionManager', 'playbackManager', 'dom', 'css!./backdrop'], function (browser, connectionManager, playbackManager, dom) {
|
define(['browser', 'connectionManager', 'playbackManager', 'dom', "userSettings", 'css!./backdrop'], function (browser, connectionManager, playbackManager, dom, userSettings) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
function enableAnimation(elem) {
|
function enableAnimation(elem) {
|
||||||
|
@ -236,10 +236,15 @@ define(['browser', 'connectionManager', 'playbackManager', 'dom', 'css!./backdro
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function enabled() {
|
||||||
|
return userSettings.enableBackdrops();
|
||||||
|
}
|
||||||
|
|
||||||
var rotationInterval;
|
var rotationInterval;
|
||||||
var currentRotatingImages = [];
|
var currentRotatingImages = [];
|
||||||
var currentRotationIndex = -1;
|
var currentRotationIndex = -1;
|
||||||
function setBackdrops(items, imageOptions, enableImageRotation) {
|
function setBackdrops(items, imageOptions, enableImageRotation) {
|
||||||
|
if (enabled()) {
|
||||||
var images = getImageUrls(items, imageOptions);
|
var images = getImageUrls(items, imageOptions);
|
||||||
|
|
||||||
if (images.length) {
|
if (images.length) {
|
||||||
|
@ -248,6 +253,7 @@ define(['browser', 'connectionManager', 'playbackManager', 'dom', 'css!./backdro
|
||||||
clearBackdrop();
|
clearBackdrop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function startRotation(images, enableImageRotation) {
|
function startRotation(images, enableImageRotation) {
|
||||||
if (arraysEqual(images, currentRotatingImages)) {
|
if (arraysEqual(images, currentRotatingImages)) {
|
||||||
|
|
|
@ -18,6 +18,7 @@ button {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
display: block;
|
display: block;
|
||||||
color: inherit !important;
|
color: inherit !important;
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
contain: layout style;
|
contain: layout style;
|
||||||
|
@ -79,6 +80,8 @@ button {
|
||||||
margin: 0.6em;
|
margin: 0.6em;
|
||||||
transition: none;
|
transition: none;
|
||||||
border: 0 solid transparent;
|
border: 0 solid transparent;
|
||||||
|
/* These both are needed in case cardBox is a button */
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
contain: layout;
|
contain: layout;
|
||||||
contain: style;
|
contain: style;
|
||||||
|
@ -146,6 +149,7 @@ button {
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -179,6 +183,7 @@ button {
|
||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
/* Needed in safari */
|
/* Needed in safari */
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
contain: strict;
|
contain: strict;
|
||||||
}
|
}
|
||||||
|
@ -342,6 +347,7 @@ button {
|
||||||
border: 0 !important;
|
border: 0 !important;
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
.dialog {
|
.dialog {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border-radius: .2em;
|
border-radius: .2em;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
border: 0;
|
border: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
will-change: transform, opacity;
|
will-change: transform, opacity;
|
||||||
|
|
|
@ -155,7 +155,7 @@ define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'bro
|
||||||
initCenterFocus(this, this.scroller);
|
initCenterFocus(this, this.scroller);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bindHeader) {
|
if (bindHeader && layoutManager.mobile) {
|
||||||
initHeadroom(this);
|
initHeadroom(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
margin-top: 0 !important;
|
margin-top: 0 !important;
|
||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
margin-right: 0 !important;
|
margin-right: 0 !important;
|
||||||
|
-webkit-border-radius: 0 !important;
|
||||||
border-radius: 0 !important;
|
border-radius: 0 !important;
|
||||||
max-height: none !important;
|
max-height: none !important;
|
||||||
max-width: none !important
|
max-width: none !important
|
||||||
|
@ -28,8 +29,8 @@
|
||||||
|
|
||||||
@media all and (min-width:400px) {
|
@media all and (min-width:400px) {
|
||||||
.dynamicFilterDialog {
|
.dynamicFilterDialog {
|
||||||
width: 300px;
|
width: 20.16em;
|
||||||
margin-left: -150px !important;
|
margin-left: -10.08em !important;
|
||||||
left: 50% !important
|
left: 50% !important
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,13 @@
|
||||||
.homeLibraryIcon {
|
.homeLibraryIcon {
|
||||||
margin-left: .5em;
|
margin-left: .5em;
|
||||||
margin-right: .5em;
|
margin-right: .5em;
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0
|
flex-shrink: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
.homeLibraryText {
|
.homeLibraryText {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
-o-text-overflow: ellipsis;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
overflow: hidden
|
overflow: hidden
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,23 +95,19 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMediaStreamAudioTracks(mediaSource) {
|
function getMediaStreamAudioTracks(mediaSource) {
|
||||||
|
|
||||||
return mediaSource.MediaStreams.filter(function (s) {
|
return mediaSource.MediaStreams.filter(function (s) {
|
||||||
return s.Type === 'Audio';
|
return s.Type === 'Audio';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMediaStreamTextTracks(mediaSource) {
|
function getMediaStreamTextTracks(mediaSource) {
|
||||||
|
|
||||||
return mediaSource.MediaStreams.filter(function (s) {
|
return mediaSource.MediaStreams.filter(function (s) {
|
||||||
return s.Type === 'Subtitle';
|
return s.Type === 'Subtitle';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function zoomIn(elem) {
|
function zoomIn(elem) {
|
||||||
|
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
|
|
||||||
var duration = 240;
|
var duration = 240;
|
||||||
elem.style.animation = 'htmlvideoplayer-zoomin ' + duration + 'ms ease-in normal';
|
elem.style.animation = 'htmlvideoplayer-zoomin ' + duration + 'ms ease-in normal';
|
||||||
dom.addEventListener(elem, dom.whichAnimationEvent(), resolve, {
|
dom.addEventListener(elem, dom.whichAnimationEvent(), resolve, {
|
||||||
|
@ -1429,7 +1425,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
if (!appHost.supports('htmlvideoautoplay')) {
|
if (!appHost.supports('htmlvideoautoplay')) {
|
||||||
html += '<video class="' + cssClass + '" preload="metadata" autoplay="autoplay" controls="controls" webkit-playsinline playsinline>';
|
html += '<video class="' + cssClass + '" preload="metadata" autoplay="autoplay" controls="controls" webkit-playsinline playsinline>';
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// Chrome 35 won't play with preload none
|
// Chrome 35 won't play with preload none
|
||||||
html += '<video class="' + cssClass + '" preload="metadata" autoplay="autoplay" webkit-playsinline playsinline>';
|
html += '<video class="' + cssClass + '" preload="metadata" autoplay="autoplay" webkit-playsinline playsinline>';
|
||||||
}
|
}
|
||||||
|
@ -1805,7 +1800,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
|
||||||
};
|
};
|
||||||
|
|
||||||
HtmlVideoPlayer.prototype.getAspectRatio = function () {
|
HtmlVideoPlayer.prototype.getAspectRatio = function () {
|
||||||
return this._currentAspectRatio;
|
return this._currentAspectRatio || "auto";
|
||||||
};
|
};
|
||||||
|
|
||||||
HtmlVideoPlayer.prototype.getSupportedAspectRatios = function () {
|
HtmlVideoPlayer.prototype.getSupportedAspectRatios = function () {
|
||||||
|
|
|
@ -42,6 +42,7 @@ video::-webkit-media-controls {
|
||||||
.htmlvideoplayer::cue {
|
.htmlvideoplayer::cue {
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
text-shadow: 0.14em 0.14em 0.14em rgba(0, 0, 0, 1);
|
text-shadow: 0.14em 0.14em 0.14em rgba(0, 0, 0, 1);
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,21 @@
|
||||||
|
|
||||||
.lazy-image-fadein {
|
.lazy-image-fadein {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
-webkit-animation-duration: .8s;
|
||||||
|
-moz-animation-duration: .8s;
|
||||||
|
-o-animation-duration: .8s;
|
||||||
animation-duration: .8s;
|
animation-duration: .8s;
|
||||||
|
-webkit-animation-name: popInAnimation;
|
||||||
|
-moz-animation-name: popInAnimation;
|
||||||
|
-o-animation-name: popInAnimation;
|
||||||
animation-name: popInAnimation;
|
animation-name: popInAnimation;
|
||||||
|
-webkit-animation-fill-mode: forwards;
|
||||||
|
-moz-animation-fill-mode: forwards;
|
||||||
|
-o-animation-fill-mode: forwards;
|
||||||
animation-fill-mode: forwards;
|
animation-fill-mode: forwards;
|
||||||
|
-webkit-animation-timing-function: cubic-bezier(0,0,.5,1);
|
||||||
|
-moz-animation-timing-function: cubic-bezier(0,0,.5,1);
|
||||||
|
-o-animation-timing-function: cubic-bezier(0,0,.5,1);
|
||||||
animation-timing-function: cubic-bezier(0,0,.5,1);
|
animation-timing-function: cubic-bezier(0,0,.5,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
.indicator {
|
.indicator {
|
||||||
border-radius: 100em;
|
border-radius: 100em;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -42,6 +43,7 @@
|
||||||
|
|
||||||
.countIndicator {
|
.countIndicator {
|
||||||
border-radius: 100em;
|
border-radius: 100em;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -53,6 +55,7 @@
|
||||||
|
|
||||||
.playedIndicator {
|
.playedIndicator {
|
||||||
border-radius: 100em;
|
border-radius: 100em;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -64,6 +67,7 @@
|
||||||
.videoIndicator {
|
.videoIndicator {
|
||||||
background: #444;
|
background: #444;
|
||||||
border-radius: 100em;
|
border-radius: 100em;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
|
@ -70,7 +70,7 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter",
|
||||||
commands.push({
|
commands.push({
|
||||||
name: globalize.translate("InstantMix"),
|
name: globalize.translate("InstantMix"),
|
||||||
id: "instantmix",
|
id: "instantmix",
|
||||||
icon: "shuffle"
|
icon: "explore"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -178,7 +178,7 @@ define(["apphost", "globalize", "connectionManager", "itemHelper", "appRouter",
|
||||||
commands.push({
|
commands.push({
|
||||||
name: globalize.translate("EditImages"),
|
name: globalize.translate("EditImages"),
|
||||||
id: "editimages",
|
id: "editimages",
|
||||||
icon: "edit"
|
icon: "image"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.listItem-indexnumberleft {
|
.listItem-indexnumberleft {
|
||||||
|
min-width: 2%;
|
||||||
|
text-align: center;
|
||||||
margin-right: 1em;
|
margin-right: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,20 @@
|
||||||
|
|
||||||
.mdlSpinnerActive {
|
.mdlSpinnerActive {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
-webkit-animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite;
|
||||||
animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite;
|
animation: mdl-spinner__container-rotate 1568.23529412ms linear infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes mdl-spinner__container-rotate {
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes mdl-spinner__container-rotate {
|
@keyframes mdl-spinner__container-rotate {
|
||||||
to {
|
to {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
transform: rotate(360deg);
|
transform: rotate(360deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +37,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-spinner__layer-1-active {
|
.mdl-spinner__layer-1-active {
|
||||||
|
-webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,6 +46,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-spinner__layer-2-active {
|
.mdl-spinner__layer-2-active {
|
||||||
|
-webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -44,6 +55,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-spinner__layer-3-active {
|
.mdl-spinner__layer-3-active {
|
||||||
|
-webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,39 +64,90 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-spinner__layer-4-active {
|
.mdl-spinner__layer-4-active {
|
||||||
|
-webkit-animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
animation: mdl-spinner__fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdl-spinner__layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes mdl-spinner__fill-unfill-rotate {
|
@-webkit-keyframes mdl-spinner__fill-unfill-rotate {
|
||||||
12.5% {
|
12.5% {
|
||||||
|
-webkit-transform: rotate(135deg);
|
||||||
transform: rotate(135deg);
|
transform: rotate(135deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
25% {
|
25% {
|
||||||
|
-webkit-transform: rotate(270deg);
|
||||||
transform: rotate(270deg);
|
transform: rotate(270deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
37.5% {
|
37.5% {
|
||||||
|
-webkit-transform: rotate(405deg);
|
||||||
transform: rotate(405deg);
|
transform: rotate(405deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
|
-webkit-transform: rotate(540deg);
|
||||||
transform: rotate(540deg);
|
transform: rotate(540deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
62.5% {
|
62.5% {
|
||||||
|
-webkit-transform: rotate(675deg);
|
||||||
transform: rotate(675deg);
|
transform: rotate(675deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
75% {
|
75% {
|
||||||
|
-webkit-transform: rotate(810deg);
|
||||||
transform: rotate(810deg);
|
transform: rotate(810deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
87.5% {
|
87.5% {
|
||||||
|
-webkit-transform: rotate(945deg);
|
||||||
transform: rotate(945deg);
|
transform: rotate(945deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
|
-webkit-transform: rotate(1080deg);
|
||||||
|
transform: rotate(1080deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes mdl-spinner__fill-unfill-rotate {
|
||||||
|
12.5% {
|
||||||
|
-webkit-transform: rotate(135deg);
|
||||||
|
transform: rotate(135deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
25% {
|
||||||
|
-webkit-transform: rotate(270deg);
|
||||||
|
transform: rotate(270deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
37.5% {
|
||||||
|
-webkit-transform: rotate(405deg);
|
||||||
|
transform: rotate(405deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
-webkit-transform: rotate(540deg);
|
||||||
|
transform: rotate(540deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
62.5% {
|
||||||
|
-webkit-transform: rotate(675deg);
|
||||||
|
transform: rotate(675deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
75% {
|
||||||
|
-webkit-transform: rotate(810deg);
|
||||||
|
transform: rotate(810deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
87.5% {
|
||||||
|
-webkit-transform: rotate(945deg);
|
||||||
|
transform: rotate(945deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(1080deg);
|
||||||
transform: rotate(1080deg);
|
transform: rotate(1080deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -98,6 +161,32 @@
|
||||||
* - https://github.com/Polymer/paper-spinner/issues/9
|
* - https://github.com/Polymer/paper-spinner/issues/9
|
||||||
* - https://code.google.com/p/chromium/issues/detail?id=436255
|
* - https://code.google.com/p/chromium/issues/detail?id=436255
|
||||||
*/
|
*/
|
||||||
|
@-webkit-keyframes mdl-spinner__layer-1-fade-in-out {
|
||||||
|
from {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
25% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
26% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
89% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
90% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes mdl-spinner__layer-1-fade-in-out {
|
@keyframes mdl-spinner__layer-1-fade-in-out {
|
||||||
from {
|
from {
|
||||||
opacity: 0.99;
|
opacity: 0.99;
|
||||||
|
@ -124,6 +213,28 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes mdl-spinner__layer-2-fade-in-out {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
15% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
25% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
51% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes mdl-spinner__layer-2-fade-in-out {
|
@keyframes mdl-spinner__layer-2-fade-in-out {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
@ -146,6 +257,28 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes mdl-spinner__layer-3-fade-in-out {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
40% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
75% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
76% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes mdl-spinner__layer-3-fade-in-out {
|
@keyframes mdl-spinner__layer-3-fade-in-out {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
@ -168,6 +301,28 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes mdl-spinner__layer-4-fade-in-out {
|
||||||
|
from {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
65% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
75% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
90% {
|
||||||
|
opacity: 0.99;
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes mdl-spinner__layer-4-fade-in-out {
|
@keyframes mdl-spinner__layer-4-fade-in-out {
|
||||||
from {
|
from {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
@ -211,6 +366,7 @@
|
||||||
border-color: inherit;
|
border-color: inherit;
|
||||||
border-bottom-color: transparent !important;
|
border-bottom-color: transparent !important;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
-webkit-animation: none;
|
||||||
animation: none;
|
animation: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -221,47 +377,91 @@
|
||||||
|
|
||||||
.mdl-spinner__circleLeft {
|
.mdl-spinner__circleLeft {
|
||||||
border-right-color: transparent !important;
|
border-right-color: transparent !important;
|
||||||
|
-webkit-transform: rotate(129deg);
|
||||||
transform: rotate(129deg);
|
transform: rotate(129deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-spinner__circleLeft-active {
|
.mdl-spinner__circleLeft-active {
|
||||||
|
-webkit-animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
animation: mdl-spinner__left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-spinner__circleRight {
|
.mdl-spinner__circleRight {
|
||||||
left: -100%;
|
left: -100%;
|
||||||
border-left-color: transparent !important;
|
border-left-color: transparent !important;
|
||||||
|
-webkit-transform: rotate(-129deg);
|
||||||
transform: rotate(-129deg);
|
transform: rotate(-129deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-spinner__circleRight-active {
|
.mdl-spinner__circleRight-active {
|
||||||
|
-webkit-animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
animation: mdl-spinner__right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes mdl-spinner__left-spin {
|
@-webkit-keyframes mdl-spinner__left-spin {
|
||||||
from {
|
from {
|
||||||
|
-webkit-transform: rotate(130deg);
|
||||||
transform: rotate(130deg);
|
transform: rotate(130deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
|
-webkit-transform: rotate(-5deg);
|
||||||
transform: rotate(-5deg);
|
transform: rotate(-5deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
|
-webkit-transform: rotate(130deg);
|
||||||
transform: rotate(130deg);
|
transform: rotate(130deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes mdl-spinner__left-spin {
|
||||||
|
from {
|
||||||
|
-webkit-transform: rotate(130deg);
|
||||||
|
transform: rotate(130deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
-webkit-transform: rotate(-5deg);
|
||||||
|
transform: rotate(-5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(130deg);
|
||||||
|
transform: rotate(130deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes mdl-spinner__right-spin {
|
||||||
|
from {
|
||||||
|
-webkit-transform: rotate(-130deg);
|
||||||
|
transform: rotate(-130deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
-webkit-transform: rotate(5deg);
|
||||||
|
transform: rotate(5deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
-webkit-transform: rotate(-130deg);
|
||||||
|
transform: rotate(-130deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes mdl-spinner__right-spin {
|
@keyframes mdl-spinner__right-spin {
|
||||||
from {
|
from {
|
||||||
|
-webkit-transform: rotate(-130deg);
|
||||||
transform: rotate(-130deg);
|
transform: rotate(-130deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
|
-webkit-transform: rotate(5deg);
|
||||||
transform: rotate(5deg);
|
transform: rotate(5deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
|
-webkit-transform: rotate(-130deg);
|
||||||
transform: rotate(-130deg);
|
transform: rotate(-130deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,7 +160,7 @@ define(["pluginManager"], function (pluginManager) {
|
||||||
elem.classList.add("logoScreenSaver");
|
elem.classList.add("logoScreenSaver");
|
||||||
document.body.appendChild(elem);
|
document.body.appendChild(elem);
|
||||||
|
|
||||||
elem.innerHTML = '<img class="logoScreenSaverImage" src="' + pluginManager.mapPath(self, "logowhite.png") + '" />';
|
elem.innerHTML = '<img class="logoScreenSaverImage" src="' + pluginManager.mapPath(self, "assets/img/banner-light.png") + '" />';
|
||||||
}
|
}
|
||||||
|
|
||||||
stopInterval();
|
stopInterval();
|
||||||
|
|
|
@ -9,20 +9,29 @@
|
||||||
.touch-menu-la {
|
.touch-menu-la {
|
||||||
background-color: #FFF;
|
background-color: #FFF;
|
||||||
will-change: transform;
|
will-change: transform;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-transition: -webkit-transform ease-out 40ms, left ease-out 260ms;
|
||||||
|
-o-transition: transform ease-out 40ms, left ease-out 260ms;
|
||||||
transition: transform ease-out 40ms, left ease-out 260ms;
|
transition: transform ease-out 40ms, left ease-out 260ms;
|
||||||
z-index: 1099
|
z-index: 1099
|
||||||
}
|
}
|
||||||
|
|
||||||
.touch-menu-la.transition {
|
.touch-menu-la.transition {
|
||||||
|
-webkit-transition: -webkit-transform ease-out 240ms, left ease-out 260ms;
|
||||||
|
-o-transition: transform ease-out 240ms, left ease-out 260ms;
|
||||||
transition: transform ease-out 240ms, left ease-out 260ms
|
transition: transform ease-out 240ms, left ease-out 260ms
|
||||||
}
|
}
|
||||||
|
|
||||||
.drawer-open {
|
.drawer-open {
|
||||||
|
-webkit-box-shadow: 2px 0 12px rgba(0, 0, 0, .4);
|
||||||
box-shadow: 2px 0 12px rgba(0, 0, 0, .4)
|
box-shadow: 2px 0 12px rgba(0, 0, 0, .4)
|
||||||
}
|
}
|
||||||
|
|
||||||
.scrollContainer {
|
.scrollContainer {
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1
|
flex-grow: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +41,8 @@
|
||||||
background-color: #000;
|
background-color: #000;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
z-index: 1098;
|
z-index: 1098;
|
||||||
|
-webkit-transition: opacity ease-in-out .38s, visibility ease-in-out .38s;
|
||||||
|
-o-transition: opacity ease-in-out .38s, visibility ease-in-out .38s;
|
||||||
transition: opacity ease-in-out .38s, visibility ease-in-out .38s;
|
transition: opacity ease-in-out .38s, visibility ease-in-out .38s;
|
||||||
will-change: opacity;
|
will-change: opacity;
|
||||||
background-color: rgba(0, 0, 0, .3)
|
background-color: rgba(0, 0, 0, .3)
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
.nowPlayingInfoContainer {
|
.nowPlayingInfoContainer {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-webkit-flex-direction: row;
|
||||||
flex-direction: row
|
flex-direction: row
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +12,26 @@
|
||||||
text-align: center
|
text-align: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btnArrowUp{
|
||||||
|
border-radius: 40% 40% 10% 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnArrowLeft{
|
||||||
|
border-radius: 40% 10% 10% 40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnArrowRight{
|
||||||
|
border-radius: 10% 40% 40% 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnArrowDown{
|
||||||
|
border-radius: 10% 10% 40% 40%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btnOk{
|
||||||
|
border-radius: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
.nowPlayingPageTitle {
|
.nowPlayingPageTitle {
|
||||||
margin: 0 0 .5em .5em
|
margin: 0 0 .5em .5em
|
||||||
}
|
}
|
||||||
|
@ -16,20 +41,28 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingInfoButtons {
|
.nowPlayingInfoButtons {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
flex-wrap: wrap
|
flex-wrap: wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingInfoControls,
|
.nowPlayingInfoControls,
|
||||||
.nowPlayingTime {
|
.nowPlayingTime {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingPageImageContainer {
|
.nowPlayingPageImageContainer {
|
||||||
width: 20%;
|
width: 20%;
|
||||||
margin-right: .25em;
|
margin-right: .25em;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
-webkit-flex-shrink: 0;
|
||||||
flex-shrink: 0
|
flex-shrink: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,9 +73,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingInfoControls {
|
.nowPlayingInfoControls {
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-webkit-flex-direction: column;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
justify-content: center
|
justify-content: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,15 +91,25 @@
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
-webkit-box-shadow: 0 0 1.9vh #000;
|
||||||
box-shadow: 0 0 1.9vh #000;
|
box-shadow: 0 0 1.9vh #000;
|
||||||
border: .1em solid #222;
|
border: .1em solid #222;
|
||||||
user-drag: none;
|
user-drag: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-drag: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-ms-user-select: none
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (orientation:portrait) and (max-width:50em) {
|
@media all and (orientation:portrait) and (max-width:50em) {
|
||||||
.nowPlayingInfoContainer {
|
.nowPlayingInfoContainer {
|
||||||
|
-webkit-box-orient: vertical !important;
|
||||||
|
-webkit-box-direction: normal !important;
|
||||||
|
-webkit-flex-direction: column !important;
|
||||||
flex-direction: column !important;
|
flex-direction: column !important;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center
|
align-items: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +123,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingInfoButtons {
|
.nowPlayingInfoButtons {
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
justify-content: center
|
justify-content: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,20 +152,33 @@
|
||||||
|
|
||||||
.nowPlayingTime {
|
.nowPlayingTime {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 0 1em
|
margin: 0 1em
|
||||||
}
|
}
|
||||||
|
|
||||||
.nowPlayingSecondaryButtons {
|
.nowPlayingSecondaryButtons {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
justify-content: center
|
justify-content: center
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (min-width:50em) {
|
@media all and (min-width:50em) {
|
||||||
.nowPlayingSecondaryButtons {
|
.nowPlayingSecondaryButtons {
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
|
-webkit-box-pack: end;
|
||||||
|
-webkit-justify-content: flex-end;
|
||||||
justify-content: flex-end
|
justify-content: flex-end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,11 +195,13 @@
|
||||||
|
|
||||||
.smallBackdropPosterItem .cardOverlayInner>div {
|
.smallBackdropPosterItem .cardOverlayInner>div {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
-o-text-overflow: ellipsis;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
overflow: hidden
|
overflow: hidden
|
||||||
}
|
}
|
||||||
|
|
||||||
.playlistIndexIndicatorImage {
|
.playlistIndexIndicatorImage {
|
||||||
|
-webkit-background-size: initial initial !important;
|
||||||
background-size: initial !important;
|
background-size: initial !important;
|
||||||
background-image: url(assets/img/equalizer.gif) !important;
|
background-image: url(assets/img/equalizer.gif) !important;
|
||||||
}
|
}
|
||||||
|
@ -151,6 +218,9 @@
|
||||||
.nowPlayingInfoButtons .nowPlayingPageUserDataButtons {
|
.nowPlayingInfoButtons .nowPlayingPageUserDataButtons {
|
||||||
display: none !important
|
display: none !important
|
||||||
}
|
}
|
||||||
|
.navigationSection .collapseContent i{
|
||||||
|
font-size: 4em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media all and (max-width:47em) {
|
@media all and (max-width:47em) {
|
||||||
|
|
|
@ -215,23 +215,12 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
|
||||||
context.querySelector(".sendTextSection").classList.add("hide");
|
context.querySelector(".sendTextSection").classList.add("hide");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!currentPlayer.isLocalPlayer) {
|
if (-1 != supportedCommands.indexOf("Select") && !currentPlayer.isLocalPlayer) {
|
||||||
context.querySelector(".navigationSection").classList.remove("hide");
|
context.querySelector(".navigationSection").classList.remove("hide");
|
||||||
} else {
|
} else {
|
||||||
context.querySelector(".navigationSection").classList.add("hide");
|
context.querySelector(".navigationSection").classList.add("hide");
|
||||||
}
|
}
|
||||||
|
|
||||||
buttonVisible(context.querySelector(".btnArrowUp"), -1 != supportedCommands.indexOf("MoveUp"));
|
|
||||||
buttonVisible(context.querySelector(".btnArrowLeft"), -1 != supportedCommands.indexOf("MoveDown"));
|
|
||||||
buttonVisible(context.querySelector(".btnArrowRight"), -1 != supportedCommands.indexOf("MoveRight"));
|
|
||||||
buttonVisible(context.querySelector(".btnArrowDown"), -1 != supportedCommands.indexOf("MoveLeft"));
|
|
||||||
buttonVisible(context.querySelector(".btnOk"), -1 != supportedCommands.indexOf("Select"));
|
|
||||||
buttonVisible(context.querySelector(".btnBack"), -1 != supportedCommands.indexOf("Back"));
|
|
||||||
buttonVisible(context.querySelector(".btnContextMenu"), -1 != supportedCommands.indexOf("ToggleContextMenu"));
|
|
||||||
buttonVisible(context.querySelector(".btnShowSearch"), -1 != supportedCommands.indexOf("GoToSearch"));
|
|
||||||
buttonVisible(context.querySelector(".bthShowSettings"), -1 != supportedCommands.indexOf("GoToSettings"));
|
|
||||||
buttonVisible(context.querySelector(".btnGoHome"), -1 != supportedCommands.indexOf("GoHome"));
|
|
||||||
|
|
||||||
buttonVisible(context.querySelector(".btnStop"), null != item);
|
buttonVisible(context.querySelector(".btnStop"), null != item);
|
||||||
buttonVisible(context.querySelector(".btnNextTrack"), null != item);
|
buttonVisible(context.querySelector(".btnNextTrack"), null != item);
|
||||||
buttonVisible(context.querySelector(".btnPreviousTrack"), null != item);
|
buttonVisible(context.querySelector(".btnPreviousTrack"), null != item);
|
||||||
|
|
|
@ -34,15 +34,12 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr
|
||||||
id: "dark",
|
id: "dark",
|
||||||
isDefault: true,
|
isDefault: true,
|
||||||
isDefaultServerDashboard: true
|
isDefaultServerDashboard: true
|
||||||
}, {
|
|
||||||
name: "Emby",
|
|
||||||
id: "emby"
|
|
||||||
}, {
|
}, {
|
||||||
name: "Light",
|
name: "Light",
|
||||||
id: "light"
|
id: "light"
|
||||||
}, {
|
}, {
|
||||||
name: "Purple Haze",
|
name: "Purple Haze",
|
||||||
id: "purple-haze"
|
id: "purplehaze"
|
||||||
}, {
|
}, {
|
||||||
name: "Windows Media Center",
|
name: "Windows Media Center",
|
||||||
id: "wmc"
|
id: "wmc"
|
||||||
|
|
|
@ -41,6 +41,9 @@
|
||||||
height: auto;
|
height: auto;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
|
-ms-transform: translate(-50%, -50%);
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
-moz-transform: translate(-50%, -50%);
|
||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
|
|
|
@ -40,6 +40,8 @@
|
||||||
margin-right: 1%;
|
margin-right: 1%;
|
||||||
top: 2.5em;
|
top: 2.5em;
|
||||||
height: 1.4em;
|
height: 1.4em;
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-webkit-flex-grow: 1;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
border-radius: .3em;
|
border-radius: .3em;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
background-color: rgba(0, 0, 0, 0.7);
|
background-color: rgba(0, 0, 0, 0.7);
|
||||||
color: #fff;
|
color: #fff;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.upNextDialog-hidden {
|
.upNextDialog-hidden {
|
||||||
|
@ -66,4 +67,8 @@
|
||||||
border: 0;
|
border: 0;
|
||||||
user-drag: none;
|
user-drag: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-webkit-user-drag: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
define(["loading", "appRouter", "layoutManager", "userSettings", "connectionManager", "cardBuilder", "datetime", "mediaInfo", "backdrop", "listView", "itemContextMenu", "itemHelper", "dom", "indicators", "apphost", "imageLoader", "libraryMenu", "globalize", "browser", "events", "scrollHelper", "playbackManager", "libraryBrowser", "scrollStyles", "emby-itemscontainer", "emby-checkbox", "emby-button", "emby-playstatebutton", "emby-ratingbutton", "emby-scroller", "emby-select"], function (loading, appRouter, layoutManager, userSettings, connectionManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, appHost, imageLoader, libraryMenu, globalize, browser, events, scrollHelper, playbackManager, libraryBrowser) {
|
define(["loading", "appRouter", "layoutManager", "connectionManager", "cardBuilder", "datetime", "mediaInfo", "backdrop", "listView", "itemContextMenu", "itemHelper", "dom", "indicators", "apphost", "imageLoader", "libraryMenu", "globalize", "browser", "events", "scrollHelper", "playbackManager", "libraryBrowser", "scrollStyles", "emby-itemscontainer", "emby-checkbox", "emby-button", "emby-playstatebutton", "emby-ratingbutton", "emby-scroller", "emby-select"], function (loading, appRouter, layoutManager, connectionManager, cardBuilder, datetime, mediaInfo, backdrop, listView, itemContextMenu, itemHelper, dom, indicators, appHost, imageLoader, libraryMenu, globalize, browser, events, scrollHelper, playbackManager, libraryBrowser) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
function getPromise(apiClient, params) {
|
function getPromise(apiClient, params) {
|
||||||
|
@ -445,19 +445,13 @@ define(["loading", "appRouter", "layoutManager", "userSettings", "connectionMana
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function enabled() {
|
|
||||||
return userSettings.enableBackdrops();
|
|
||||||
}
|
|
||||||
|
|
||||||
function renderBackdrop(page, item, apiClient) {
|
function renderBackdrop(page, item, apiClient) {
|
||||||
if (enabled()) {
|
|
||||||
if (dom.getWindowSize().innerWidth >= 1000) {
|
if (dom.getWindowSize().innerWidth >= 1000) {
|
||||||
backdrop.setBackdrops([item]);
|
backdrop.setBackdrops([item]);
|
||||||
} else {
|
} else {
|
||||||
backdrop.clear();
|
backdrop.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function renderDetailPageBackdrop(page, item, apiClient) {
|
function renderDetailPageBackdrop(page, item, apiClient) {
|
||||||
var imgUrl;
|
var imgUrl;
|
||||||
|
|
|
@ -187,16 +187,12 @@ define(["jQuery", "globalize", "scripts/taskbutton", "dom", "libraryMenu", "layo
|
||||||
switch (providerId = providerId.toLowerCase()) {
|
switch (providerId = providerId.toLowerCase()) {
|
||||||
case "m3u":
|
case "m3u":
|
||||||
return "M3U";
|
return "M3U";
|
||||||
|
|
||||||
case "hdhomerun":
|
case "hdhomerun":
|
||||||
return "HDHomerun";
|
return "HDHomeRun";
|
||||||
|
|
||||||
case "hauppauge":
|
case "hauppauge":
|
||||||
return "Hauppauge";
|
return "Hauppauge";
|
||||||
|
|
||||||
case "satip":
|
case "satip":
|
||||||
return "DVB";
|
return "DVB";
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
@ -206,13 +202,8 @@ define(["jQuery", "globalize", "scripts/taskbutton", "dom", "libraryMenu", "layo
|
||||||
switch (providerId = providerId.toLowerCase()) {
|
switch (providerId = providerId.toLowerCase()) {
|
||||||
case "schedulesdirect":
|
case "schedulesdirect":
|
||||||
return "Schedules Direct";
|
return "Schedules Direct";
|
||||||
|
|
||||||
case "xmltv":
|
case "xmltv":
|
||||||
return "Xml TV";
|
return "XMLTV";
|
||||||
|
|
||||||
case "emby":
|
|
||||||
return "Emby Guide";
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
|
@ -222,12 +213,8 @@ define(["jQuery", "globalize", "scripts/taskbutton", "dom", "libraryMenu", "layo
|
||||||
switch (providerId = providerId.toLowerCase()) {
|
switch (providerId = providerId.toLowerCase()) {
|
||||||
case "xmltv":
|
case "xmltv":
|
||||||
return "livetvguideprovider.html?type=xmltv";
|
return "livetvguideprovider.html?type=xmltv";
|
||||||
|
|
||||||
case "schedulesdirect":
|
case "schedulesdirect":
|
||||||
return "livetvguideprovider.html?type=schedulesdirect";
|
return "livetvguideprovider.html?type=schedulesdirect";
|
||||||
|
|
||||||
case "emby":
|
|
||||||
return "livetvguideprovider.html?type=emby";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -238,7 +225,7 @@ define(["jQuery", "globalize", "scripts/taskbutton", "dom", "libraryMenu", "layo
|
||||||
id: "SchedulesDirect"
|
id: "SchedulesDirect"
|
||||||
});
|
});
|
||||||
menuItems.push({
|
menuItems.push({
|
||||||
name: "Xml TV",
|
name: "XMLTV",
|
||||||
id: "xmltv"
|
id: "xmltv"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -114,7 +114,10 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader
|
||||||
shape: getPortraitShape(),
|
shape: getPortraitShape(),
|
||||||
scalable: true,
|
scalable: true,
|
||||||
overlayMoreButton: true,
|
overlayMoreButton: true,
|
||||||
allowBottomPadding: false
|
allowBottomPadding: true,
|
||||||
|
showTitle: true,
|
||||||
|
centerText: true,
|
||||||
|
showYear: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
if (result.Items.length >= query.Limit) {
|
if (result.Items.length >= query.Limit) {
|
||||||
|
|
|
@ -105,10 +105,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="dashboardFooter">
|
<div class="dashboardFooter">
|
||||||
|
@ -118,5 +116,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
<div id="dashboardGeneralPage" data-role="page" class="page type-interior dashboardHomePage">
|
<div id="dashboardGeneralPage" data-role="page" class="page type-interior dashboardHomePage">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
|
||||||
<form class="dashboardGeneralForm">
|
<form class="dashboardGeneralForm">
|
||||||
|
|
||||||
<div class="verticalSection">
|
<div class="verticalSection">
|
||||||
<div class="sectionTitleContainer flex align-items-center">
|
<div class="sectionTitleContainer flex align-items-center">
|
||||||
<h2 class="sectionTitle">${TabSettings}</h2>
|
<h2 class="sectionTitle">${TabSettings}</h2>
|
||||||
|
@ -31,9 +28,7 @@
|
||||||
<input is="emby-checkbox" type="checkbox" id="chkAutoRunWebApp" />
|
<input is="emby-checkbox" type="checkbox" id="chkAutoRunWebApp" />
|
||||||
<span>${LaunchWebAppOnStartup}</span>
|
<span>${LaunchWebAppOnStartup}</span>
|
||||||
</label>
|
</label>
|
||||||
<div class="fieldDescription checkboxFieldDescription">
|
<div class="fieldDescription checkboxFieldDescription">${LaunchWebAppOnStartupHelp}</div>
|
||||||
${LaunchWebAppOnStartupHelp}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -94,7 +89,6 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
<div id="devicePage" data-role="page" class="page type-interior devicesPage noSecondaryNavPage">
|
<div id="devicePage" data-role="page" class="page type-interior devicesPage noSecondaryNavPage">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
|
||||||
|
|
||||||
<form class="deviceForm">
|
<form class="deviceForm">
|
||||||
|
|
||||||
<div class="verticalSection verticalSection-extrabottompadding">
|
<div class="verticalSection verticalSection-extrabottompadding">
|
||||||
<div class="sectionTitleContainer flex align-items-center">
|
<div class="sectionTitleContainer flex align-items-center">
|
||||||
<h2 class="sectionTitle reportedName"></h2>
|
<h2 class="sectionTitle reportedName"></h2>
|
||||||
|
@ -18,10 +14,11 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button is="emby-button" type="submit" class="raised button-submit block"><span>${ButtonSave}</span></button>
|
<button is="emby-button" type="submit" class="raised button-submit block">
|
||||||
|
<span>${ButtonSave}</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -7,9 +7,7 @@
|
||||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/devices.html">${Help}</a>
|
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/server/devices.html">${Help}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div is="emby-itemscontainer" class="devicesList vertical-wrap" data-multiselect="false"></div>
|
||||||
<div is="emby-itemscontainer" class="devicesList vertical-wrap" data-multiselect="false">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -8,7 +8,7 @@
|
||||||
<div class="verticalSection">
|
<div class="verticalSection">
|
||||||
<div class="sectionTitleContainer flex align-items-center">
|
<div class="sectionTitleContainer flex align-items-center">
|
||||||
<h2 class="sectionTitle">${TabSettings}</h2>
|
<h2 class="sectionTitle">${TabSettings}</h2>
|
||||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://jellyfin.org/docs/general/administration/connectivity.html#DLNA">${Help}</a>
|
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/administration/connectivity.html#DLNA">${Help}</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
outline-width: 0;
|
outline-width: 0;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
|
@ -21,6 +24,8 @@
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
position: relative;
|
position: relative;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
/* Disable webkit tap highlighting */
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
/* Not crazy about this but it normalizes heights between anchors and buttons */
|
/* Not crazy about this but it normalizes heights between anchors and buttons */
|
||||||
line-height: 1.35;
|
line-height: 1.35;
|
||||||
|
@ -94,6 +99,9 @@
|
||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
|
@ -110,6 +118,8 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
|
/* Disable webkit tap highlighting */
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
transform-origin: center;
|
transform-origin: center;
|
||||||
transition: 0.2s;
|
transition: 0.2s;
|
||||||
|
|
|
@ -38,6 +38,9 @@
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
-ms-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
@ -121,3 +124,13 @@
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes repaintChrome {
|
||||||
|
from {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -10,8 +10,10 @@
|
||||||
font-weight: inherit;
|
font-weight: inherit;
|
||||||
padding: .4em .25em;
|
padding: .4em .25em;
|
||||||
/* Prevent padding from causing width overflow */
|
/* Prevent padding from causing width overflow */
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,5 +35,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.emby-input-iconbutton {
|
.emby-input-iconbutton {
|
||||||
|
-webkit-align-self: flex-end;
|
||||||
align-self: flex-end;
|
align-self: flex-end;
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
-ms-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
@ -67,13 +70,17 @@
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition-duration: 0.28s;
|
transition-duration: 0.28s;
|
||||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
|
transition-property: -webkit-transform;
|
||||||
transition-property: transform;
|
transition-property: transform;
|
||||||
|
transition-property: transform, -webkit-transform;
|
||||||
|
-webkit-transform: scale3d(0, 0, 0);
|
||||||
transform: scale3d(0, 0, 0);
|
transform: scale3d(0, 0, 0);
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: #00a4dc;
|
background: #00a4dc;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-radio__button:checked + .mdl-radio__label + .mdl-radio__outer-circle + .mdl-radio__inner-circle {
|
.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);
|
transform: scale3d(1, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
/* Prevent padding from causing width overflow */
|
/* Prevent padding from causing width overflow */
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +20,8 @@
|
||||||
background: none !important;
|
background: none !important;
|
||||||
border-color: transparent !important;
|
border-color: transparent !important;
|
||||||
color: inherit !important;
|
color: inherit !important;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +41,7 @@
|
||||||
|
|
||||||
.emby-select-focusscale {
|
.emby-select-focusscale {
|
||||||
transition: transform 180ms ease-out !important;
|
transition: transform 180ms ease-out !important;
|
||||||
|
-webkit-transform-origin: center center;
|
||||||
transform-origin: center center;
|
transform-origin: center center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +77,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.emby-select-withcolor {
|
.emby-select-withcolor {
|
||||||
|
-webkit-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
border-radius: .2em;
|
border-radius: .2em;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,32 @@
|
||||||
_:-ms-input-placeholder {
|
_:-ms-input-placeholder {
|
||||||
appearance: none;
|
appearance: none;
|
||||||
|
-ms-appearance: none;
|
||||||
height: 2.223em;
|
height: 2.223em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-slider {
|
.mdl-slider {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
-ms-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
height: 150%;/*150% is needed, else ie and edge won't display the thumb properly*/
|
height: 150%;/*150% is needed, else ie and edge won't display the thumb properly*/
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
outline: 0;
|
outline: 0;
|
||||||
color: #00a4dc;
|
color: #00a4dc;
|
||||||
|
-webkit-align-self: center;
|
||||||
|
-ms-flex-item-align: center;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
/* Disable webkit tap highlighting */
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +70,7 @@ _:-ms-input-placeholder {
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-slider::-webkit-slider-thumb {
|
.mdl-slider::-webkit-slider-thumb {
|
||||||
appearance: none;
|
-webkit-appearance: none;
|
||||||
width: 1.2em;
|
width: 1.2em;
|
||||||
height: 1.2em;
|
height: 1.2em;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
@ -98,7 +109,7 @@ _:-ms-input-placeholder {
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-slider::-ms-thumb {
|
.mdl-slider::-ms-thumb {
|
||||||
appearance: none;
|
-webkit-appearance: none;
|
||||||
width: 1.8em;
|
width: 1.8em;
|
||||||
height: 1.8em;
|
height: 1.8em;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
/* Prevent padding from causing width overflow */
|
/* Prevent padding from causing width overflow */
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
outline: none !important;
|
outline: none !important;
|
||||||
|
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,10 @@
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
flex-direction: row-reverse;
|
flex-direction: row-reverse;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
@ -24,6 +28,9 @@
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
-ms-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
appearance: none;
|
appearance: none;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
@ -82,6 +89,7 @@
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
</select>
|
</select>
|
||||||
<div class="fieldDescription">${LabelHardwareAccelerationTypeHelp}</div>
|
<div class="fieldDescription">${LabelHardwareAccelerationTypeHelp}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="inputContainer hide fldVaapiDevice">
|
<div class="inputContainer hide fldVaapiDevice">
|
||||||
<input is="emby-input" type="text" id="txtVaapiDevice" label="${LabelVaapiDevice}" />
|
<input is="emby-input" type="text" id="txtVaapiDevice" label="${LabelVaapiDevice}" />
|
||||||
<div class="fieldDescription">${LabelVaapiDeviceHelp}</div>
|
<div class="fieldDescription">${LabelVaapiDeviceHelp}</div>
|
||||||
|
@ -142,7 +143,9 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<button is="emby-button" type="submit" class="raised button-submit block"><span>${ButtonSave}</span></button>
|
<button is="emby-button" type="submit" class="raised button-submit block">
|
||||||
|
<span>${ButtonSave}</span>
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
<div data-role="page" id="forgotPasswordPage" class="page standalonePage forgotPasswordPage">
|
<div data-role="page" id="forgotPasswordPage" class="page standalonePage forgotPasswordPage">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<form class="forgotPasswordForm" style="text-align: center; margin: 0 auto;">
|
<form class="forgotPasswordForm" style="text-align: center; margin: 0 auto;">
|
||||||
|
|
||||||
<div style="text-align: left;">
|
<div style="text-align: left;">
|
||||||
<h1>${HeaderForgotPassword}</h1>
|
<h1>${HeaderForgotPassword}</h1>
|
||||||
|
|
||||||
|
@ -23,6 +20,5 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -1,9 +1,6 @@
|
||||||
<div data-role="page" class="page standalonePage forgotPasswordPinPage">
|
<div data-role="page" class="page standalonePage forgotPasswordPinPage">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<form class="forgotPasswordPinForm" style="text-align: center; margin: 0 auto;">
|
<form class="forgotPasswordPinForm" style="text-align: center; margin: 0 auto;">
|
||||||
|
|
||||||
<div style="text-align: left;">
|
<div style="text-align: left;">
|
||||||
<h2>${HeaderPasswordReset}</h2>
|
<h2>${HeaderPasswordReset}</h2>
|
||||||
|
|
||||||
|
@ -22,6 +19,5 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -45,7 +45,7 @@
|
||||||
|
|
||||||
<button is="emby-button" type="button" class="button-flat btnInstantMix hide detailButton">
|
<button is="emby-button" type="button" class="button-flat btnInstantMix hide detailButton">
|
||||||
<div class="detailButton-content">
|
<div class="detailButton-content">
|
||||||
<i class="md-icon detailButton-icon">shuffle</i>
|
<i class="md-icon detailButton-icon">explore</i>
|
||||||
<div class="detailButton-text">${HeaderInstantMix}</div>
|
<div class="detailButton-text">${HeaderInstantMix}</div>
|
||||||
</div>
|
</div>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,11 +1,7 @@
|
||||||
<div id="liveTvGuideProviderPage" data-role="page" class="page type-interior liveTvSettingsPage">
|
<div id="liveTvGuideProviderPage" data-role="page" class="page type-interior liveTvSettingsPage">
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
<div class="readOnlyContent providerTemplate" style="margin-top: 2em;"></div>
|
||||||
<div class="readOnlyContent providerTemplate" style="margin-top: 2em;">
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -1,11 +1,7 @@
|
||||||
<div id="loginPage" data-role="page" class="page standalonePage" data-backbutton="false">
|
<div id="loginPage" data-role="page" class="page standalonePage" data-backbutton="false">
|
||||||
|
|
||||||
<div class="padded-left padded-right padded-bottom-page">
|
<div class="padded-left padded-right padded-bottom-page">
|
||||||
|
|
||||||
<form class="manualLoginForm hide" style="margin: 0 auto;">
|
<form class="manualLoginForm hide" style="margin: 0 auto;">
|
||||||
|
|
||||||
<h1 style="margin-top:1em;text-align: left;">${HeaderPleaseSignIn}</h1>
|
<h1 style="margin-top:1em;text-align: left;">${HeaderPleaseSignIn}</h1>
|
||||||
|
|
||||||
<div style="height:0; overflow: hidden;">
|
<div style="height:0; overflow: hidden;">
|
||||||
<input type="text" name="fakeusernameremembered" tabindex="-1" />
|
<input type="text" name="fakeusernameremembered" tabindex="-1" />
|
||||||
<input type="password" name="fakepasswordremembered" tabindex="-1" />
|
<input type="password" name="fakepasswordremembered" tabindex="-1" />
|
||||||
|
@ -27,6 +23,7 @@
|
||||||
<button is="emby-button" type="submit" class="raised button-submit block">
|
<button is="emby-button" type="submit" class="raised button-submit block">
|
||||||
<span>${ButtonSignIn}</span>
|
<span>${ButtonSignIn}</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div style="margin-top:.5em;">
|
<div style="margin-top:.5em;">
|
||||||
<button is="emby-button" type="button" class="raised cancel block btnCancel">
|
<button is="emby-button" type="button" class="raised cancel block btnCancel">
|
||||||
<span>${ButtonCancel}</span>
|
<span>${ButtonCancel}</span>
|
||||||
|
@ -56,6 +53,5 @@
|
||||||
|
|
||||||
<p class="disclaimer" style="text-align: center; margin-top: 2em;"></p>
|
<p class="disclaimer" style="text-align: center; margin-top: 2em;"></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -1,5 +1,4 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
"name": "Jellyfin",
|
"name": "Jellyfin",
|
||||||
"description": "Jellyfin: the Free Software Media System.",
|
"description": "Jellyfin: the Free Software Media System.",
|
||||||
"lang": "en-US",
|
"lang": "en-US",
|
||||||
|
@ -8,7 +7,8 @@
|
||||||
"theme_color": "#101010",
|
"theme_color": "#101010",
|
||||||
"background_color": "#101010",
|
"background_color": "#101010",
|
||||||
"display": "standalone",
|
"display": "standalone",
|
||||||
"icons": [{
|
"icons": [
|
||||||
|
{
|
||||||
"sizes": "72x72",
|
"sizes": "72x72",
|
||||||
"src": "touchicon72.png",
|
"src": "touchicon72.png",
|
||||||
"type": "image/png"
|
"type": "image/png"
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<div class="verticalSection verticalSection-extrabottompadding">
|
<div class="verticalSection verticalSection-extrabottompadding">
|
||||||
<div class="sectionTitleContainer flex align-items-center">
|
<div class="sectionTitleContainer flex align-items-center">
|
||||||
<h2 class="sectionTitle">${TabNetworking}</h2>
|
<h2 class="sectionTitle">${TabNetworking}</h2>
|
||||||
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://jellyfin.org/docs/general/administration/networking.html">${Help}</a>
|
<a is="emby-linkbutton" class="raised button-alt headerHelpButton" target="_blank" href="https://docs.jellyfin.org/general/administration/networking.html">${Help}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="inputContainer">
|
<div class="inputContainer">
|
||||||
|
|
|
@ -72,22 +72,24 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="navigationSection">
|
|
||||||
<br />
|
|
||||||
<div>
|
<div>
|
||||||
<button is="paper-icon-button-light" class="btnArrowUp btnCommand autoSize raised" title="${ButtonArrowUp}" data-command="MoveUp">
|
<div class="navigationSection">
|
||||||
|
<div is="emby-collapse" title="${HeaderNavigation}">
|
||||||
|
<div class="collapseContent">
|
||||||
|
<div>
|
||||||
|
<button is="paper-icon-button-light" class="btnArrowUp btnCommand autoSize button-submit" title="${ButtonArrowUp}" data-command="MoveUp">
|
||||||
<i class="md-icon">keyboard_arrow_up</i>
|
<i class="md-icon">keyboard_arrow_up</i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<button is="paper-icon-button-light" class="btnArrowLeft btnCommand autoSize raised" title="${ButtonArrowLeft}" data-command="MoveLeft">
|
<button is="paper-icon-button-light" class="btnArrowLeft btnCommand autoSize button-submit" title="${ButtonArrowLeft}" data-command="MoveLeft">
|
||||||
<i class="md-icon">keyboard_arrow_left</i>
|
<i class="md-icon">keyboard_arrow_left</i>
|
||||||
</button>
|
</button>
|
||||||
<button is="paper-icon-button-light" class="btnOk btnCommand autoSize raised" title="${ButtonOk}" data-command="Select">
|
<button is="paper-icon-button-light" class="btnOk btnCommand autoSize button-submit" title="${ButtonOk}" data-command="Select">
|
||||||
<i class="md-icon">keyboard_return</i>
|
<i class="md-icon">keyboard_return</i>
|
||||||
</button>
|
</button>
|
||||||
<button is="paper-icon-button-light" class="btnArrowRight btnCommand autoSize raised" title="${ButtonArrowRight}" data-command="MoveRight">
|
<button is="paper-icon-button-light" class="btnArrowRight btnCommand autoSize button-submit" title="${ButtonArrowRight}" data-command="MoveRight">
|
||||||
<i class="md-icon">keyboard_arrow_right</i>
|
<i class="md-icon">keyboard_arrow_right</i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -96,7 +98,7 @@
|
||||||
<button is="paper-icon-button-light" class="btnBack btnCommand autoSize" title="${ButtonBack}" data-command="Back">
|
<button is="paper-icon-button-light" class="btnBack btnCommand autoSize" title="${ButtonBack}" data-command="Back">
|
||||||
<i class="md-icon">arrow_back</i>
|
<i class="md-icon">arrow_back</i>
|
||||||
</button>
|
</button>
|
||||||
<button is="paper-icon-button-light" class="btnArrowDown btnCommand autoSize raised" title="${ButtonArrowDown}" data-command="MoveDown">
|
<button is="paper-icon-button-light" class="btnArrowDown btnCommand autoSize button-submit" title="${ButtonArrowDown}" data-command="MoveDown">
|
||||||
<i class="md-icon">keyboard_arrow_down</i>
|
<i class="md-icon">keyboard_arrow_down</i>
|
||||||
</button>
|
</button>
|
||||||
<button is="paper-icon-button-light" class="btnContextMenu btnCommand autoSize" title="${ButtonInfo}" data-command="ToggleContextMenu">
|
<button is="paper-icon-button-light" class="btnContextMenu btnCommand autoSize" title="${ButtonInfo}" data-command="ToggleContextMenu">
|
||||||
|
@ -116,6 +118,9 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<div class="sendMessageSection">
|
<div class="sendMessageSection">
|
||||||
<div is="emby-collapse" title="${HeaderSendMessage}">
|
<div is="emby-collapse" title="${HeaderSendMessage}">
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
<div id="scheduledTaskPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage">
|
<div id="scheduledTaskPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage">
|
||||||
<div>
|
<div>
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
|
||||||
<div class="verticalSection">
|
<div class="verticalSection">
|
||||||
<div class="sectionTitleContainer flex align-items-center">
|
<div class="sectionTitleContainer flex align-items-center">
|
||||||
<h2 class="sectionTitle taskName"></h2>
|
<h2 class="sectionTitle taskName"></h2>
|
||||||
|
@ -12,9 +11,7 @@
|
||||||
|
|
||||||
<div class="readOnlyContent">
|
<div class="readOnlyContent">
|
||||||
<div>
|
<div>
|
||||||
<h2 style="vertical-align: middle; display: inline-block;">
|
<h2 style="vertical-align: middle; display: inline-block;">${HeaderTaskTriggers}</h2>
|
||||||
${HeaderTaskTriggers}
|
|
||||||
</h2>
|
|
||||||
<button is="emby-button" type="button" class="fab fab-mini btnAddTrigger submit" style="margin-left: 1em;" title="${ButtonAddScheduledTaskTrigger}">
|
<button is="emby-button" type="button" class="fab fab-mini btnAddTrigger submit" style="margin-left: 1em;" title="${ButtonAddScheduledTaskTrigger}">
|
||||||
<i class="md-icon">add</i>
|
<i class="md-icon">add</i>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
<div id="scheduledTasksPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage">
|
<div id="scheduledTasksPage" data-role="page" class="page type-interior scheduledTasksConfigurationPage">
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.taskProgressOuter {
|
.taskProgressOuter {
|
||||||
height: 6px;
|
height: 6px;
|
||||||
|
@ -15,7 +14,6 @@
|
||||||
</style>
|
</style>
|
||||||
<div>
|
<div>
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
|
|
||||||
<div class="divScheduledTasks readOnlyContent"></div>
|
<div class="divScheduledTasks readOnlyContent"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -6,15 +6,12 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function canPlayH265(videoTestElement, options) {
|
function canPlayH265(videoTestElement, options) {
|
||||||
|
|
||||||
if (browser.tizen || browser.orsay || browser.xboxOne || browser.web0s || options.supportsHevc) {
|
if (browser.tizen || browser.orsay || browser.xboxOne || browser.web0s || options.supportsHevc) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var userAgent = navigator.userAgent.toLowerCase();
|
var userAgent = navigator.userAgent.toLowerCase();
|
||||||
|
|
||||||
if (browser.chromecast) {
|
if (browser.chromecast) {
|
||||||
|
|
||||||
var isChromecastUltra = userAgent.indexOf('aarch64') !== -1;
|
var isChromecastUltra = userAgent.indexOf('aarch64') !== -1;
|
||||||
if (isChromecastUltra) {
|
if (isChromecastUltra) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -31,7 +28,6 @@ define(['browser'], function (browser) {
|
||||||
|
|
||||||
var _supportsTextTracks;
|
var _supportsTextTracks;
|
||||||
function supportsTextTracks() {
|
function supportsTextTracks() {
|
||||||
|
|
||||||
if (browser.tizen || browser.orsay) {
|
if (browser.tizen || browser.orsay) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -46,15 +42,14 @@ define(['browser'], function (browser) {
|
||||||
|
|
||||||
var _canPlayHls;
|
var _canPlayHls;
|
||||||
function canPlayHls(src) {
|
function canPlayHls(src) {
|
||||||
|
|
||||||
if (_canPlayHls == null) {
|
if (_canPlayHls == null) {
|
||||||
_canPlayHls = canPlayNativeHls() || canPlayHlsWithMSE();
|
_canPlayHls = canPlayNativeHls() || canPlayHlsWithMSE();
|
||||||
}
|
}
|
||||||
|
|
||||||
return _canPlayHls;
|
return _canPlayHls;
|
||||||
}
|
}
|
||||||
|
|
||||||
function canPlayNativeHls() {
|
function canPlayNativeHls() {
|
||||||
|
|
||||||
if (browser.tizen || browser.orsay) {
|
if (browser.tizen || browser.orsay) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -77,8 +72,23 @@ define(['browser'], function (browser) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function canPlayAudioFormat(format) {
|
function supportsAc3(videoTestElement) {
|
||||||
|
if (browser.edgeUwp || browser.tizen || browser.orsay || browser.web0s) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
function supportsEac3(videoTestElement) {
|
||||||
|
if (browser.tizen || browser.orsay || browser.web0s) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return videoTestElement.canPlayType('audio/mp4; codecs="ec-3"').replace(/no/, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
function canPlayAudioFormat(format) {
|
||||||
var typeString;
|
var typeString;
|
||||||
|
|
||||||
if (format === 'flac') {
|
if (format === 'flac') {
|
||||||
|
@ -97,14 +107,12 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
} else if (format === 'opus') {
|
} else if (format === 'opus') {
|
||||||
typeString = 'audio/ogg; codecs="opus"';
|
typeString = 'audio/ogg; codecs="opus"';
|
||||||
|
|
||||||
if (document.createElement('audio').canPlayType(typeString).replace(/no/, '')) {
|
if (document.createElement('audio').canPlayType(typeString).replace(/no/, '')) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
} else if (format === 'mp2') {
|
} else if (format === 'mp2') {
|
||||||
|
|
||||||
// For now
|
// For now
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -113,14 +121,6 @@ define(['browser'], function (browser) {
|
||||||
typeString = 'audio/webm';
|
typeString = 'audio/webm';
|
||||||
} else if (format === 'mp2') {
|
} else if (format === 'mp2') {
|
||||||
typeString = 'audio/mpeg';
|
typeString = 'audio/mpeg';
|
||||||
} else if (format === 'ogg' || format === 'oga') {
|
|
||||||
|
|
||||||
// chrome says probably, but seeing failures
|
|
||||||
if (browser.chrome) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
typeString = 'audio/' + format;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
typeString = 'audio/' + format;
|
typeString = 'audio/' + format;
|
||||||
}
|
}
|
||||||
|
@ -133,7 +133,6 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function testCanPlayMkv(videoTestElement) {
|
function testCanPlayMkv(videoTestElement) {
|
||||||
|
|
||||||
if (browser.tizen || browser.orsay || browser.web0s) {
|
if (browser.tizen || browser.orsay || browser.web0s) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -147,7 +146,6 @@ define(['browser'], function (browser) {
|
||||||
|
|
||||||
// Unfortunately there's no real way to detect mkv support
|
// Unfortunately there's no real way to detect mkv support
|
||||||
if (browser.chrome) {
|
if (browser.chrome) {
|
||||||
|
|
||||||
// Not supported on opera tv
|
// Not supported on opera tv
|
||||||
if (browser.operaTv) {
|
if (browser.operaTv) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -162,7 +160,6 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (browser.edgeUwp) {
|
if (browser.edgeUwp) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,17 +171,15 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function supportsMpeg2Video() {
|
function supportsMpeg2Video() {
|
||||||
return browser.orsay || browser.tizen || browser.edgeUwp || browser.web0s;
|
return browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp;
|
||||||
}
|
}
|
||||||
|
|
||||||
function supportsVc1() {
|
function supportsVc1() {
|
||||||
return browser.orsay || browser.tizen || browser.edgeUwp || browser.web0s;
|
return browser.tizen || browser.orsay || browser.web0s || browser.edgeUwp;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFlvMseDirectPlayProfile() {
|
function getFlvMseDirectPlayProfile() {
|
||||||
|
|
||||||
var videoAudioCodecs = ['aac'];
|
var videoAudioCodecs = ['aac'];
|
||||||
|
|
||||||
if (!browser.edge && !browser.msie) {
|
if (!browser.edge && !browser.msie) {
|
||||||
videoAudioCodecs.push('mp3');
|
videoAudioCodecs.push('mp3');
|
||||||
}
|
}
|
||||||
|
@ -198,13 +193,11 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDirectPlayProfileForVideoContainer(container, videoAudioCodecs, videoTestElement, options) {
|
function getDirectPlayProfileForVideoContainer(container, videoAudioCodecs, videoTestElement, options) {
|
||||||
|
|
||||||
var supported = false;
|
var supported = false;
|
||||||
var profileContainer = container;
|
var profileContainer = container;
|
||||||
var videoCodecs = [];
|
var videoCodecs = [];
|
||||||
|
|
||||||
switch (container) {
|
switch (container) {
|
||||||
|
|
||||||
case 'asf':
|
case 'asf':
|
||||||
supported = browser.tizen || browser.orsay || browser.edgeUwp;
|
supported = browser.tizen || browser.orsay || browser.edgeUwp;
|
||||||
videoAudioCodecs = [];
|
videoAudioCodecs = [];
|
||||||
|
@ -279,16 +272,12 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMaxBitrate() {
|
function getMaxBitrate() {
|
||||||
|
|
||||||
return 120000000;
|
return 120000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getGlobalMaxVideoBitrate() {
|
function getGlobalMaxVideoBitrate() {
|
||||||
|
|
||||||
var userAgent = navigator.userAgent.toLowerCase();
|
var userAgent = navigator.userAgent.toLowerCase();
|
||||||
|
|
||||||
if (browser.chromecast) {
|
if (browser.chromecast) {
|
||||||
|
|
||||||
var isChromecastUltra = userAgent.indexOf('aarch64') !== -1;
|
var isChromecastUltra = userAgent.indexOf('aarch64') !== -1;
|
||||||
if (isChromecastUltra) {
|
if (isChromecastUltra) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -319,27 +308,9 @@ define(['browser'], function (browser) {
|
||||||
(browser.tizen && isTizenFhd ? 20000000 : null)));
|
(browser.tizen && isTizenFhd ? 20000000 : null)));
|
||||||
}
|
}
|
||||||
|
|
||||||
function supportsAc3(videoTestElement) {
|
|
||||||
|
|
||||||
if (browser.edgeUwp || browser.tizen || browser.orsay || browser.web0s) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (videoTestElement.canPlayType('audio/mp4; codecs="ac-3"').replace(/no/, '') && !browser.osx && !browser.iOS);
|
|
||||||
}
|
|
||||||
|
|
||||||
function supportsEac3(videoTestElement) {
|
|
||||||
|
|
||||||
if (browser.tizen || browser.orsay || browser.web0s) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return videoTestElement.canPlayType('audio/mp4; codecs="ec-3"').replace(/no/, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
return function (options) {
|
return function (options) {
|
||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
var physicalAudioChannels = options.audioChannels || (browser.tv || browser.ps4 || browser.xboxOne ? 6 : 2);
|
var physicalAudioChannels = options.audioChannels || (browser.tv || browser.ps4 || browser.xboxOne ? 6 : 2);
|
||||||
|
|
||||||
var bitrateSetting = getMaxBitrate();
|
var bitrateSetting = getMaxBitrate();
|
||||||
|
@ -417,7 +388,6 @@ define(['browser'], function (browser) {
|
||||||
|
|
||||||
// PS4 fails to load HLS with mp3 audio
|
// PS4 fails to load HLS with mp3 audio
|
||||||
if (!browser.ps4) {
|
if (!browser.ps4) {
|
||||||
|
|
||||||
// mp3 encoder only supports 2 channels, so only make that preferred if we're only requesting 2 channels
|
// mp3 encoder only supports 2 channels, so only make that preferred if we're only requesting 2 channels
|
||||||
// Also apply it for chromecast because it no longer supports AAC 5.1
|
// Also apply it for chromecast because it no longer supports AAC 5.1
|
||||||
if (physicalAudioChannels <= 2) {
|
if (physicalAudioChannels <= 2) {
|
||||||
|
@ -425,14 +395,15 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (canPlayAacVideoAudio) {
|
|
||||||
|
|
||||||
|
if (canPlayAacVideoAudio) {
|
||||||
if (videoAudioCodecs.indexOf('aac') === -1) {
|
if (videoAudioCodecs.indexOf('aac') === -1) {
|
||||||
videoAudioCodecs.push('aac');
|
videoAudioCodecs.push('aac');
|
||||||
}
|
}
|
||||||
|
|
||||||
hlsVideoAudioCodecs.push('aac');
|
hlsVideoAudioCodecs.push('aac');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (supportsMp3VideoAudio) {
|
if (supportsMp3VideoAudio) {
|
||||||
// PS4 fails to load HLS with mp3 audio
|
// PS4 fails to load HLS with mp3 audio
|
||||||
if (!browser.ps4) {
|
if (!browser.ps4) {
|
||||||
|
@ -525,6 +496,7 @@ define(['browser'], function (browser) {
|
||||||
if (canPlayVp8) {
|
if (canPlayVp8) {
|
||||||
mp4VideoCodecs.push('vp8');
|
mp4VideoCodecs.push('vp8');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canPlayVp9) {
|
if (canPlayVp9) {
|
||||||
mp4VideoCodecs.push('vp9');
|
mp4VideoCodecs.push('vp9');
|
||||||
}
|
}
|
||||||
|
@ -563,20 +535,17 @@ define(['browser'], function (browser) {
|
||||||
['opus', 'mp3', 'mp2', 'aac', 'flac', 'alac', 'webma', 'wma', 'wav', 'ogg', 'oga'].filter(canPlayAudioFormat).forEach(function (audioFormat) {
|
['opus', 'mp3', 'mp2', 'aac', 'flac', 'alac', 'webma', 'wma', 'wav', 'ogg', 'oga'].filter(canPlayAudioFormat).forEach(function (audioFormat) {
|
||||||
|
|
||||||
if (audioFormat === 'mp2') {
|
if (audioFormat === 'mp2') {
|
||||||
|
|
||||||
profile.DirectPlayProfiles.push({
|
profile.DirectPlayProfiles.push({
|
||||||
Container: 'mp2,mp3',
|
Container: 'mp2,mp3',
|
||||||
Type: 'Audio',
|
Type: 'Audio',
|
||||||
AudioCodec: audioFormat
|
AudioCodec: audioFormat
|
||||||
});
|
});
|
||||||
} else if (audioFormat === 'mp3') {
|
} else if (audioFormat === 'mp3') {
|
||||||
|
|
||||||
profile.DirectPlayProfiles.push({
|
profile.DirectPlayProfiles.push({
|
||||||
Container: audioFormat,
|
Container: audioFormat,
|
||||||
Type: 'Audio',
|
Type: 'Audio',
|
||||||
AudioCodec: audioFormat
|
AudioCodec: audioFormat
|
||||||
});
|
});
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
profile.DirectPlayProfiles.push({
|
profile.DirectPlayProfiles.push({
|
||||||
Container: audioFormat === 'webma' ? 'webma,webm' : audioFormat,
|
Container: audioFormat === 'webma' ? 'webma,webm' : audioFormat,
|
||||||
|
@ -586,7 +555,6 @@ define(['browser'], function (browser) {
|
||||||
|
|
||||||
// aac also appears in the m4a container
|
// aac also appears in the m4a container
|
||||||
if (audioFormat === 'aac' || audioFormat === 'alac') {
|
if (audioFormat === 'aac' || audioFormat === 'alac') {
|
||||||
|
|
||||||
profile.DirectPlayProfiles.push({
|
profile.DirectPlayProfiles.push({
|
||||||
Container: 'm4a',
|
Container: 'm4a',
|
||||||
AudioCodec: audioFormat,
|
AudioCodec: audioFormat,
|
||||||
|
@ -619,7 +587,6 @@ define(['browser'], function (browser) {
|
||||||
|
|
||||||
if (canPlayHls() && browser.enableHlsAudio !== false) {
|
if (canPlayHls() && browser.enableHlsAudio !== false) {
|
||||||
profile.TranscodingProfiles.push({
|
profile.TranscodingProfiles.push({
|
||||||
|
|
||||||
// hlsjs, edge, and android all seem to require ts container
|
// hlsjs, edge, and android all seem to require ts container
|
||||||
Container: !canPlayNativeHls() || browser.edge || browser.android ? 'ts' : 'aac',
|
Container: !canPlayNativeHls() || browser.edge || browser.android ? 'ts' : 'aac',
|
||||||
Type: 'Audio',
|
Type: 'Audio',
|
||||||
|
@ -636,7 +603,6 @@ define(['browser'], function (browser) {
|
||||||
// But for static (offline sync), it will be just fine.
|
// But for static (offline sync), it will be just fine.
|
||||||
// Prioritize aac higher because the encoder can accept more channels than mp3
|
// Prioritize aac higher because the encoder can accept more channels than mp3
|
||||||
['aac', 'mp3', 'opus', 'wav'].filter(canPlayAudioFormat).forEach(function (audioFormat) {
|
['aac', 'mp3', 'opus', 'wav'].filter(canPlayAudioFormat).forEach(function (audioFormat) {
|
||||||
|
|
||||||
profile.TranscodingProfiles.push({
|
profile.TranscodingProfiles.push({
|
||||||
Container: audioFormat,
|
Container: audioFormat,
|
||||||
Type: 'Audio',
|
Type: 'Audio',
|
||||||
|
@ -648,7 +614,6 @@ define(['browser'], function (browser) {
|
||||||
});
|
});
|
||||||
|
|
||||||
['opus', 'mp3', 'aac', 'wav'].filter(canPlayAudioFormat).forEach(function (audioFormat) {
|
['opus', 'mp3', 'aac', 'wav'].filter(canPlayAudioFormat).forEach(function (audioFormat) {
|
||||||
|
|
||||||
profile.TranscodingProfiles.push({
|
profile.TranscodingProfiles.push({
|
||||||
Container: audioFormat,
|
Container: audioFormat,
|
||||||
Type: 'Audio',
|
Type: 'Audio',
|
||||||
|
@ -804,7 +769,8 @@ define(['browser'], function (browser) {
|
||||||
Condition: 'LessThanEqual',
|
Condition: 'LessThanEqual',
|
||||||
Property: 'VideoLevel',
|
Property: 'VideoLevel',
|
||||||
Value: maxH264Level.toString()
|
Value: maxH264Level.toString()
|
||||||
}]
|
}
|
||||||
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!browser.edgeUwp && !browser.tizen && !browser.orsay && !browser.web0s) {
|
if (!browser.edgeUwp && !browser.tizen && !browser.orsay && !browser.web0s) {
|
||||||
|
@ -888,7 +854,6 @@ define(['browser'], function (browser) {
|
||||||
// External vtt or burn in
|
// External vtt or burn in
|
||||||
profile.SubtitleProfiles = [];
|
profile.SubtitleProfiles = [];
|
||||||
if (supportsTextTracks()) {
|
if (supportsTextTracks()) {
|
||||||
|
|
||||||
profile.SubtitleProfiles.push({
|
profile.SubtitleProfiles.push({
|
||||||
Format: 'vtt',
|
Format: 'vtt',
|
||||||
Method: 'External'
|
Method: 'External'
|
||||||
|
@ -896,7 +861,6 @@ define(['browser'], function (browser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
profile.ResponseProfiles = [];
|
profile.ResponseProfiles = [];
|
||||||
|
|
||||||
profile.ResponseProfiles.push({
|
profile.ResponseProfiles.push({
|
||||||
Type: 'Video',
|
Type: 'Video',
|
||||||
Container: 'm4v',
|
Container: 'm4v',
|
||||||
|
|
|
@ -108,8 +108,10 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
||||||
headerCastButton.addEventListener("click", onCastButtonClicked);
|
headerCastButton.addEventListener("click", onCastButtonClicked);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (layoutManager.mobile) {
|
||||||
initHeadRoom(skinHeader);
|
initHeadRoom(skinHeader);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function onCastButtonClicked() {
|
function onCastButtonClicked() {
|
||||||
var btn = this;
|
var btn = this;
|
||||||
|
@ -424,7 +426,7 @@ define(["dom", "layoutManager", "inputManager", "connectionManager", "events", "
|
||||||
return getToolsMenuHtml(apiClient).then(function (toolsMenuHtml) {
|
return getToolsMenuHtml(apiClient).then(function (toolsMenuHtml) {
|
||||||
var html = "";
|
var html = "";
|
||||||
html += '<a class="adminDrawerLogo clearLink" is="emby-linkbutton" href="home.html">';
|
html += '<a class="adminDrawerLogo clearLink" is="emby-linkbutton" href="home.html">';
|
||||||
html += '<img src="assets/img/logo.png" />';
|
html += '<img src="assets/img/icon-transparent.png" />';
|
||||||
html += "</a>";
|
html += "</a>";
|
||||||
html += toolsMenuHtml;
|
html += toolsMenuHtml;
|
||||||
navDrawerScrollContainer.innerHTML = html;
|
navDrawerScrollContainer.innerHTML = html;
|
||||||
|
|
|
@ -16,44 +16,72 @@ define([
|
||||||
|
|
||||||
function defineRoute(newRoute) {
|
function defineRoute(newRoute) {
|
||||||
var path = newRoute.path;
|
var path = newRoute.path;
|
||||||
console.log("Defining route: " + path);
|
console.log("defining route: " + path);
|
||||||
newRoute.dictionary = "core";
|
newRoute.dictionary = "core";
|
||||||
Emby.Page.addRoute(path, newRoute);
|
Emby.Page.addRoute(path, newRoute);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Defining core routes");
|
console.log("defining core routes");
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/addplugin.html",
|
path: "/addplugin.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "addpluginpage"
|
controller: "dashboard/plugins/add"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/autoorganizelog.html",
|
path: "/mypreferencesmenu.html",
|
||||||
roles: "admin"
|
|
||||||
});
|
|
||||||
defineRoute({
|
|
||||||
path: "/channelsettings.html",
|
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin"
|
transition: "fade",
|
||||||
|
controller: "user/menu"
|
||||||
|
});
|
||||||
|
defineRoute({
|
||||||
|
path: "/myprofile.html",
|
||||||
|
autoFocus: false,
|
||||||
|
transition: "fade",
|
||||||
|
controller: "user/profile"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/addserver.html",
|
path: "/addserver.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
startup: true,
|
startup: true,
|
||||||
controller: "addserver"
|
controller: "auth/addserver"
|
||||||
});
|
});
|
||||||
|
defineRoute({
|
||||||
|
path: "/mypreferencesdisplay.html",
|
||||||
|
autoFocus: false,
|
||||||
|
transition: "fade",
|
||||||
|
controller: "user/display"
|
||||||
|
});
|
||||||
|
defineRoute({
|
||||||
|
path: "/mypreferenceshome.html",
|
||||||
|
autoFocus: false,
|
||||||
|
transition: "fade",
|
||||||
|
controller: "user/home"
|
||||||
|
});
|
||||||
|
defineRoute({
|
||||||
|
path: "/mypreferencesplayback.html",
|
||||||
|
autoFocus: false,
|
||||||
|
transition: "fade",
|
||||||
|
controller: "user/playback"
|
||||||
|
});
|
||||||
|
defineRoute({
|
||||||
|
path: "/mypreferencessubtitles.html",
|
||||||
|
autoFocus: false,
|
||||||
|
transition: "fade",
|
||||||
|
controller: "user/subtitles"
|
||||||
|
});
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/dashboard.html",
|
path: "/dashboard.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "dashboardpage"
|
controller: "dashboard/dashboard"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/dashboardgeneral.html",
|
path: "/dashboardgeneral.html",
|
||||||
controller: "dashboardgeneral",
|
controller: "dashboard/general",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin"
|
roles: "admin"
|
||||||
});
|
});
|
||||||
|
@ -61,7 +89,7 @@ define([
|
||||||
path: "/networking.html",
|
path: "/networking.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "networking"
|
controller: "dashboard/networking"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/devices.html",
|
path: "/devices.html",
|
||||||
|
@ -108,14 +136,14 @@ define([
|
||||||
path: "/forgotpassword.html",
|
path: "/forgotpassword.html",
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
startup: true,
|
startup: true,
|
||||||
controller: "forgotpassword"
|
controller: "auth/forgotpassword"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/forgotpasswordpin.html",
|
path: "/forgotpasswordpin.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
startup: true,
|
startup: true,
|
||||||
controller: "forgotpasswordpin"
|
controller: "auth/forgotpasswordpin"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/home.html",
|
path: "/home.html",
|
||||||
|
@ -191,19 +219,14 @@ define([
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/log.html",
|
path: "/log.html",
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "logpage"
|
controller: "dashboard/logs"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/login.html",
|
path: "/login.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
startup: true,
|
startup: true,
|
||||||
controller: "loginpage"
|
controller: "auth/login"
|
||||||
});
|
|
||||||
defineRoute({
|
|
||||||
path: "/metadataadvanced.html",
|
|
||||||
autoFocus: false,
|
|
||||||
roles: "admin"
|
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/metadataimages.html",
|
path: "/metadataimages.html",
|
||||||
|
@ -229,57 +252,21 @@ define([
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
transition: "fade"
|
transition: "fade"
|
||||||
});
|
});
|
||||||
defineRoute({
|
|
||||||
path: "/mypreferencesmenu.html",
|
|
||||||
autoFocus: false,
|
|
||||||
transition: "fade",
|
|
||||||
controller: "user/menu"
|
|
||||||
});
|
|
||||||
defineRoute({
|
|
||||||
path: "/myprofile.html",
|
|
||||||
autoFocus: false,
|
|
||||||
transition: "fade",
|
|
||||||
controller: "user/profile"
|
|
||||||
});
|
|
||||||
defineRoute({
|
|
||||||
path: "/mypreferencesdisplay.html",
|
|
||||||
autoFocus: false,
|
|
||||||
transition: "fade",
|
|
||||||
controller: "user/display"
|
|
||||||
});
|
|
||||||
defineRoute({
|
|
||||||
path: "/mypreferenceshome.html",
|
|
||||||
autoFocus: false,
|
|
||||||
transition: "fade",
|
|
||||||
controller: "user/home"
|
|
||||||
});
|
|
||||||
defineRoute({
|
|
||||||
path: "/mypreferencesplayback.html",
|
|
||||||
autoFocus: false,
|
|
||||||
transition: "fade",
|
|
||||||
controller: "user/playback"
|
|
||||||
});
|
|
||||||
defineRoute({
|
|
||||||
path: "/mypreferencessubtitles.html",
|
|
||||||
autoFocus: false,
|
|
||||||
transition: "fade",
|
|
||||||
controller: "user/subtitles"
|
|
||||||
});
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/notificationsetting.html",
|
path: "/notificationsetting.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "notificationsetting"
|
controller: "dashboard/notifications/notification"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/notificationsettings.html",
|
path: "/notificationsettings.html",
|
||||||
controller: "notificationsettings",
|
controller: "dashboard/notifications/notifications",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin"
|
roles: "admin"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/nowplaying.html",
|
path: "/nowplaying.html",
|
||||||
controller: "nowplayingpage",
|
controller: "playback/nowplaying",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
transition: "fade",
|
transition: "fade",
|
||||||
fullscreen: true,
|
fullscreen: true,
|
||||||
|
@ -296,25 +283,25 @@ define([
|
||||||
path: "/availableplugins.html",
|
path: "/availableplugins.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "availableplugins"
|
controller: "dashboard/plugins/available"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/installedplugins.html",
|
path: "/installedplugins.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "installedplugins"
|
controller: "dashboard/plugins/installed"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/scheduledtask.html",
|
path: "/scheduledtask.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "scheduledtaskpage"
|
controller: "dashboard/scheduledtasks/scheduledtask"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/scheduledtasks.html",
|
path: "/scheduledtasks.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "scheduledtaskspage"
|
controller: "dashboard/scheduledtasks/scheduledtasks"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/search.html",
|
path: "/search.html",
|
||||||
|
@ -325,7 +312,7 @@ define([
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
startup: true,
|
startup: true,
|
||||||
controller: "selectserver"
|
controller: "auth/selectserver"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/serveractivity.html",
|
path: "/serveractivity.html",
|
||||||
|
@ -345,11 +332,6 @@ define([
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "streamingsettings"
|
controller: "streamingsettings"
|
||||||
});
|
});
|
||||||
defineRoute({
|
|
||||||
path: "/support.html",
|
|
||||||
autoFocus: false,
|
|
||||||
roles: "admin"
|
|
||||||
});
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/tv.html",
|
path: "/tv.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
|
@ -391,17 +373,18 @@ define([
|
||||||
roles: "admin",
|
roles: "admin",
|
||||||
controller: "userprofilespage"
|
controller: "userprofilespage"
|
||||||
});
|
});
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/wizardremoteaccess.html",
|
path: "/wizardremoteaccess.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
controller: "wizardremoteaccess"
|
controller: "wizard/remoteaccess"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/wizardfinish.html",
|
path: "/wizardfinish.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
controller: "wizardfinishpage"
|
controller: "wizard/finish"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/wizardlibrary.html",
|
path: "/wizardlibrary.html",
|
||||||
|
@ -413,24 +396,25 @@ define([
|
||||||
path: "/wizardsettings.html",
|
path: "/wizardsettings.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
controller: "wizardsettings"
|
controller: "wizard/settings"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/wizardstart.html",
|
path: "/wizardstart.html",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true,
|
anonymous: true,
|
||||||
controller: "wizardstart"
|
controller: "wizard/start"
|
||||||
});
|
});
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/wizarduser.html",
|
path: "/wizarduser.html",
|
||||||
controller: "wizarduserpage",
|
controller: "wizard/user",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
anonymous: true
|
anonymous: true
|
||||||
});
|
});
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/videoosd.html",
|
path: "/videoosd.html",
|
||||||
transition: "fade",
|
transition: "fade",
|
||||||
controller: "videoosd",
|
controller: "playback/videoosd",
|
||||||
autoFocus: false,
|
autoFocus: false,
|
||||||
type: "video-osd",
|
type: "video-osd",
|
||||||
supportsThemeMedia: true,
|
supportsThemeMedia: true,
|
||||||
|
@ -444,6 +428,7 @@ define([
|
||||||
enableContentQueryString: true,
|
enableContentQueryString: true,
|
||||||
roles: "admin"
|
roles: "admin"
|
||||||
});
|
});
|
||||||
|
|
||||||
defineRoute({
|
defineRoute({
|
||||||
path: "/",
|
path: "/",
|
||||||
isDefaultRoute: true,
|
isDefaultRoute: true,
|
||||||
|
|
|
@ -2,12 +2,10 @@
|
||||||
<div>
|
<div>
|
||||||
<div class="content-primary">
|
<div class="content-primary">
|
||||||
<div class="verticalSection">
|
<div class="verticalSection">
|
||||||
<h2 class="sectionTitle">
|
<h2 class="sectionTitle"></h2>
|
||||||
</h2>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="readOnlyContent">
|
<div class="readOnlyContent">
|
||||||
<div class="paperList activityItems" data-activitylimit="100">
|
<div class="paperList activityItems" data-activitylimit="100"></div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1228,5 +1228,5 @@
|
||||||
"ButtonAddImage": "Προσθήκη Εικόνας",
|
"ButtonAddImage": "Προσθήκη Εικόνας",
|
||||||
"BoxRear": "Κουτί(πίσω)",
|
"BoxRear": "Κουτί(πίσω)",
|
||||||
"BookLibraryHelp": "Ήχος και βιβλία υποστηρίζονται.Ελέγξτε τον {0}ονομαστικό οδηγό βιβλίων{1}.",
|
"BookLibraryHelp": "Ήχος και βιβλία υποστηρίζονται.Ελέγξτε τον {0}ονομαστικό οδηγό βιβλίων{1}.",
|
||||||
"AuthProviderHelp": "Επιλέξτε ένα Πάροχο Επαλήθευσης για να επαληθεύσετε το κωδικό του χρήστη."
|
"AuthProviderHelp": "Επιλέξτε ένα Πάροχο Επαλήθευσης για να επαληθεύσετε το κωδικό αυτού του χρήστη."
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@
|
||||||
"Art": "Art",
|
"Art": "Art",
|
||||||
"AsManyAsPossible": "As many as possible",
|
"AsManyAsPossible": "As many as possible",
|
||||||
"Ascending": "Ascending",
|
"Ascending": "Ascending",
|
||||||
"AspectRatio": "Aspect ratio",
|
"AspectRatio": "Aspect Ratio",
|
||||||
"AttributeNew": "New",
|
"AttributeNew": "New",
|
||||||
"Audio": "Audio",
|
"Audio": "Audio",
|
||||||
"AuthProviderHelp": "Select an Authentication Provider to be used to authenticate this user's password.",
|
"AuthProviderHelp": "Select an Authentication Provider to be used to authenticate this user's password.",
|
||||||
|
@ -565,7 +565,7 @@
|
||||||
"ReplaceExistingImages": "Replace existing images",
|
"ReplaceExistingImages": "Replace existing images",
|
||||||
"ReplaceAllMetadata": "Replace all metadata",
|
"ReplaceAllMetadata": "Replace all metadata",
|
||||||
"RepeatOne": "Repeat one",
|
"RepeatOne": "Repeat one",
|
||||||
"RepeatMode": "Repeat mode",
|
"RepeatMode": "Repeat Mode",
|
||||||
"RepeatEpisodes": "Repeat episodes",
|
"RepeatEpisodes": "Repeat episodes",
|
||||||
"RepeatAll": "Repeat all",
|
"RepeatAll": "Repeat all",
|
||||||
"Repeat": "Repeat",
|
"Repeat": "Repeat",
|
||||||
|
@ -1459,5 +1459,8 @@
|
||||||
"HeaderFavoritePeople": "Favourite People",
|
"HeaderFavoritePeople": "Favourite People",
|
||||||
"FetchingData": "Fetching additional data",
|
"FetchingData": "Fetching additional data",
|
||||||
"ButtonAddImage": "Add Image",
|
"ButtonAddImage": "Add Image",
|
||||||
"OptionRandom": "Random"
|
"OptionRandom": "Random",
|
||||||
|
"SelectAdminUsername": "Please select a username for the admin account.",
|
||||||
|
"ButtonSplit": "Split",
|
||||||
|
"HeaderNavigation": "Navigation"
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
"Artists": "Artists",
|
"Artists": "Artists",
|
||||||
"AsManyAsPossible": "As many as possible",
|
"AsManyAsPossible": "As many as possible",
|
||||||
"Ascending": "Ascending",
|
"Ascending": "Ascending",
|
||||||
"AspectRatio": "Aspect ratio",
|
"AspectRatio": "Aspect Ratio",
|
||||||
"AttributeNew": "New",
|
"AttributeNew": "New",
|
||||||
"Audio": "Audio",
|
"Audio": "Audio",
|
||||||
"AuthProviderHelp": "Select an Authentication Provider to be used to authenticate this user's password.",
|
"AuthProviderHelp": "Select an Authentication Provider to be used to authenticate this user's password.",
|
||||||
|
@ -408,6 +408,7 @@
|
||||||
"HeaderMyDevice": "My Device",
|
"HeaderMyDevice": "My Device",
|
||||||
"HeaderMyMedia": "My Media",
|
"HeaderMyMedia": "My Media",
|
||||||
"HeaderMyMediaSmall": "My Media (small)",
|
"HeaderMyMediaSmall": "My Media (small)",
|
||||||
|
"HeaderNavigation": "Navigation",
|
||||||
"HeaderNewApiKey": "New API Key",
|
"HeaderNewApiKey": "New API Key",
|
||||||
"HeaderNewDevices": "New Devices",
|
"HeaderNewDevices": "New Devices",
|
||||||
"HeaderNextEpisodePlayingInValue": "Next Episode Playing in {0}",
|
"HeaderNextEpisodePlayingInValue": "Next Episode Playing in {0}",
|
||||||
|
@ -1258,7 +1259,7 @@
|
||||||
"Repeat": "Repeat",
|
"Repeat": "Repeat",
|
||||||
"RepeatAll": "Repeat all",
|
"RepeatAll": "Repeat all",
|
||||||
"RepeatEpisodes": "Repeat episodes",
|
"RepeatEpisodes": "Repeat episodes",
|
||||||
"RepeatMode": "Repeat mode",
|
"RepeatMode": "Repeat Mode",
|
||||||
"RepeatOne": "Repeat one",
|
"RepeatOne": "Repeat one",
|
||||||
"ReplaceAllMetadata": "Replace all metadata",
|
"ReplaceAllMetadata": "Replace all metadata",
|
||||||
"ReplaceExistingImages": "Replace existing images",
|
"ReplaceExistingImages": "Replace existing images",
|
||||||
|
@ -1282,6 +1283,7 @@
|
||||||
"SearchForMissingMetadata": "Search for missing metadata",
|
"SearchForMissingMetadata": "Search for missing metadata",
|
||||||
"SearchForSubtitles": "Search for Subtitles",
|
"SearchForSubtitles": "Search for Subtitles",
|
||||||
"SearchResults": "Search Results",
|
"SearchResults": "Search Results",
|
||||||
|
"SelectAdminUsername": "Please select a username for the admin account.",
|
||||||
"SendMessage": "Send message",
|
"SendMessage": "Send message",
|
||||||
"Series": "Series",
|
"Series": "Series",
|
||||||
"SeriesCancelled": "Series cancelled.",
|
"SeriesCancelled": "Series cancelled.",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"AccessRestrictedTryAgainLater": "El acceso está restringido actualmente. Por favor, inténtalo más tarde.",
|
"AccessRestrictedTryAgainLater": "El acceso está restringido actualmente. Por favor, inténtalo más tarde.",
|
||||||
"Add": "Añadir",
|
"Add": "Añadir",
|
||||||
"AddItemToCollectionHelp": "Agregue elementos a las colecciones buscando en ellos y utilizando sus menús con el botón derecho del ratón o pulsando en los menús para agregarlos a una colección.",
|
"AddItemToCollectionHelp": "Agregue elementos a las colecciones buscándolos y haciendo clic con el botón derecho o tocando los menús para agregarlos a una colección.",
|
||||||
"AddToCollection": "Añadir a la colección",
|
"AddToCollection": "Añadir a la colección",
|
||||||
"AddToPlaylist": "Añadir a la lista de reproducción",
|
"AddToPlaylist": "Añadir a la lista de reproducción",
|
||||||
"AddedOnValue": "Añadido {0}",
|
"AddedOnValue": "Añadido {0}",
|
||||||
|
@ -1459,5 +1459,7 @@
|
||||||
"FetchingData": "Obteniendo datos adicionales",
|
"FetchingData": "Obteniendo datos adicionales",
|
||||||
"ButtonAddImage": "Añadir imagen",
|
"ButtonAddImage": "Añadir imagen",
|
||||||
"HeaderFavoritePeople": "Personas favoritas",
|
"HeaderFavoritePeople": "Personas favoritas",
|
||||||
"OptionRandom": "Aleatorio"
|
"OptionRandom": "Aleatorio",
|
||||||
|
"SelectAdminUsername": "Por favor seleccione un nombre de usuario para la cuenta de administrador.",
|
||||||
|
"ButtonSplit": "Dividir"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1454,5 +1454,6 @@
|
||||||
"LabelBaseUrlHelp": "Vous pouvez ajouter un sous-répertoire personalisé ici pour accéder au serveur depuis une URL plus exclusive.",
|
"LabelBaseUrlHelp": "Vous pouvez ajouter un sous-répertoire personalisé ici pour accéder au serveur depuis une URL plus exclusive.",
|
||||||
"HeaderFavoritePeople": "Personnes préférées",
|
"HeaderFavoritePeople": "Personnes préférées",
|
||||||
"OptionRandom": "Aléatoire",
|
"OptionRandom": "Aléatoire",
|
||||||
"ButtonSplit": "Découper"
|
"ButtonSplit": "Séparer",
|
||||||
|
"SelectAdminUsername": "Veuillez choisir un nom d'utilisateur pour le compte administrateur."
|
||||||
}
|
}
|
||||||
|
|
|
@ -1253,7 +1253,7 @@
|
||||||
"DisplayMissingEpisodesWithinSeasons": "시즌 내 누락된 에피소드 표시",
|
"DisplayMissingEpisodesWithinSeasons": "시즌 내 누락된 에피소드 표시",
|
||||||
"EnableBackdrops": "배경",
|
"EnableBackdrops": "배경",
|
||||||
"EnableBackdropsHelp": "라이브러리를 탐색하는 동안 일부 페이지의 배경을 표시합니다.",
|
"EnableBackdropsHelp": "라이브러리를 탐색하는 동안 일부 페이지의 배경을 표시합니다.",
|
||||||
"ErrorAddingXmlTvFile": "XmlTV 파일에 액세스하는 동안 오류가 발생했습니다. 파일이 존재하는지 확인한 후 다시 시도하십시오.",
|
"ErrorAddingXmlTvFile": "XMLTV 파일에 액세스하는 동안 오류가 발생했습니다. 파일이 존재하는지 확인 후 다시 시도하십시오.",
|
||||||
"ErrorDeletingItem": "Jellyfin 서버에서 항목을 제거하는 중에 오류가 발생했습니다. Jellyfin 서버가 미디어 폴더에 대해 쓰기 권한이 있는지 확인한 후 다시 시도하십시오.",
|
"ErrorDeletingItem": "Jellyfin 서버에서 항목을 제거하는 중에 오류가 발생했습니다. Jellyfin 서버가 미디어 폴더에 대해 쓰기 권한이 있는지 확인한 후 다시 시도하십시오.",
|
||||||
"HeaderConfigureRemoteAccess": "원격 접근 구성",
|
"HeaderConfigureRemoteAccess": "원격 접근 구성",
|
||||||
"HeaderCastAndCrew": "배역 및 제작진",
|
"HeaderCastAndCrew": "배역 및 제작진",
|
||||||
|
@ -1280,5 +1280,11 @@
|
||||||
"ErrorAddingMediaPathToVirtualFolder": "미디어 경로를 추가하는 데에 오류가 발생했습니다. 경로를 다시 확인하거나 Jellyfin 서버가 해당 경로에 접근할 수 있는지 확인해 주세요.",
|
"ErrorAddingMediaPathToVirtualFolder": "미디어 경로를 추가하는 데에 오류가 발생했습니다. 경로를 다시 확인하거나 Jellyfin 서버가 해당 경로에 접근할 수 있는지 확인해 주세요.",
|
||||||
"ErrorGettingTvLineups": "TV 구성을 다운로드 하는 중에 오류가 발생하였습니다. 정보가 맞는지 확인한 후 다시 시도해 주세요.",
|
"ErrorGettingTvLineups": "TV 구성을 다운로드 하는 중에 오류가 발생하였습니다. 정보가 맞는지 확인한 후 다시 시도해 주세요.",
|
||||||
"BoxRear": "상자 (후면)",
|
"BoxRear": "상자 (후면)",
|
||||||
"Absolute": "절대"
|
"Absolute": "절대",
|
||||||
|
"LabelDropShadow": "하단 그림자:",
|
||||||
|
"LabelDiscNumber": "디스크 번호:",
|
||||||
|
"Identify": "식별자",
|
||||||
|
"HeaderMoreLikeThis": "비슷한 작품",
|
||||||
|
"DirectorsValue": "감독: {0}",
|
||||||
|
"ButtonSplit": "나누기"
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue