Merge pull request #73 from jellyfin/dev

Dev sync
This commit is contained in:
Andrew Rabert 2019-01-24 23:17:06 -05:00 committed by GitHub
commit f3df5c9ed2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
284 changed files with 572 additions and 55989 deletions

View File

@ -17,6 +17,7 @@
- [Drago96](https://github.com/drago-96) - [Drago96](https://github.com/drago-96)
- [ViXXoR](https://github.com/ViXXoR) - [ViXXoR](https://github.com/ViXXoR)
- [nkmerrill] (https://github.com/nkmerrill) - [nkmerrill] (https://github.com/nkmerrill)
- [TtheCreator] (https://github.com/Tthecreator)
# Emby Contributors # Emby Contributors

View File

@ -1,4 +1,4 @@
<div id="addPluginPage" data-role="page" class="page type-interior pluginConfigurationPage" data-backbutton="true" data-require="emby-select,emby-collapse,emby-linkbutton"> <div id="addPluginPage" data-role="page" class="page type-interior pluginConfigurationPage" data-backbutton="true" data-require="emby-select,emby-collapse,emby-linkbutton">
<div> <div>
<div class="content-primary"> <div class="content-primary">

View File

@ -1,4 +1,4 @@
<div id="appServicesPage" data-role="page" class="page type-interior appServicesPage withTabs fullWidthContent" data-require="scripts/appservices"> <div id="appServicesPage" data-role="page" class="page type-interior appServicesPage withTabs fullWidthContent" data-require="scripts/appservices">
<div> <div>
<div class="content-primary"> <div class="content-primary">

View File

@ -1,8 +0,0 @@
define([], function() {
"use strict";
function CameraRoll() {}
return CameraRoll.prototype.getFiles = function() {
return Promise.resolve([])
}, new CameraRoll
});

View File

@ -1,57 +0,0 @@
define(["localassetmanager", "cameraRoll"], function(localAssetManager, cameraRoll) {
"use strict";
function getFilesToUpload(files, uploadHistory) {
return files.filter(function(file) {
if (!file) return !1;
var uploadId = getUploadId(file);
return 0 === uploadHistory.FilesUploaded.filter(function(u) {
return uploadId === u.Id
}).length
})
}
function getUploadId(file) {
return btoa(file.Id + "1")
}
function uploadNext(files, index, server, apiClient, resolve, reject) {
var length = files.length;
if (index >= length) return void resolve();
uploadFile(files[index], apiClient).then(function() {
uploadNext(files, index + 1, server, apiClient, resolve, reject)
}, function() {
uploadNext(files, index + 1, server, apiClient, resolve, reject)
})
}
function uploadFile(file, apiClient) {
return new Promise(function(resolve, reject) {
require(["fileupload"], function(FileUpload) {
var url = apiClient.getUrl("Devices/CameraUploads", {
DeviceId: apiClient.deviceId(),
Name: file.Name,
Album: "Camera Roll",
Id: getUploadId(file),
api_key: apiClient.accessToken()
});
console.log("Uploading file to " + url), (new FileUpload).upload(file, url).then(resolve, reject)
})
})
}
function ContentUploader() {}
return ContentUploader.prototype.uploadImages = function(connectionManager, server) {
return cameraRoll.getFiles().then(function(photos) {
if (!photos.length) return Promise.resolve();
var apiClient = connectionManager.getApiClient(server.Id);
return apiClient.getContentUploadHistory().then(function(uploadHistory) {
return photos = getFilesToUpload(photos, uploadHistory), console.log("Found " + photos.length + " files to upload"), new Promise(function(resolve, reject) {
uploadNext(photos, 0, server, apiClient, resolve, reject)
})
}, function() {
return Promise.resolve()
})
})
}, ContentUploader
});

View File

@ -12,11 +12,7 @@ define([], function() {
} }
function uploadContent(connectionManager, server, options) { function uploadContent(connectionManager, server, options) {
return new Promise(function(resolve, reject) { return new Promise().reject();
require(["contentuploader"], function(ContentUploader) {
(new ContentUploader).uploadImages(connectionManager, server).then(resolve, reject)
})
})
} }
function syncMedia(connectionManager, server, options) { function syncMedia(connectionManager, server, options) {

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'layoutManager', 'globalize', 'browser', 'dom', 'emby-button', 'css!./actionsheet', 'material-icons', 'scrollStyles', 'listViewStyle'], function (dialogHelper, layoutManager, globalize, browser, dom) { define(['dialogHelper', 'layoutManager', 'globalize', 'browser', 'dom', 'emby-button', 'css!./actionsheet', 'material-icons', 'scrollStyles', 'listViewStyle'], function (dialogHelper, layoutManager, globalize, browser, dom) {
'use strict'; 'use strict';
function getOffsets(elems) { function getOffsets(elems) {

View File

@ -1,4 +1,4 @@
define(['dom', 'focusManager'], function (dom, focusManager) { define(['dom', 'focusManager'], function (dom, focusManager) {
'use strict'; 'use strict';
var inputDisplayElement; var inputDisplayElement;

View File

@ -1,4 +1,4 @@
.appfooter { .appfooter {
position: fixed; position: fixed;
left: 0; left: 0;
right: 0; right: 0;

View File

@ -1,4 +1,4 @@
define(['browser', 'css!./appfooter'], function (browser) { define(['browser', 'css!./appfooter'], function (browser) {
'use strict'; 'use strict';
function render(options) { function render(options) {

View File

@ -1,4 +1,4 @@
define(['browser', 'connectionManager', 'playbackManager', 'dom', 'css!./style'], function (browser, connectionManager, playbackManager, dom) { define(['browser', 'connectionManager', 'playbackManager', 'dom', 'css!./style'], function (browser, connectionManager, playbackManager, dom) {
'use strict'; 'use strict';
function enableAnimation(elem) { function enableAnimation(elem) {

View File

@ -1,4 +1,4 @@
define([], function () { define([], function () {
'use strict'; 'use strict';
function isTv() { function isTv() {

View File

@ -1,4 +1,4 @@
define(['events'], function (events) { define(['events'], function (events) {
'use strict'; 'use strict';
// LinkParser // LinkParser

View File

@ -1,4 +1,4 @@
define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', 'globalize', 'events', 'require', 'castSenderApiLoader'], function (appSettings, userSettings, playbackManager, connectionManager, globalize, events, require, castSenderApiLoader) { define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', 'globalize', 'events', 'require', 'castSenderApiLoader'], function (appSettings, userSettings, playbackManager, connectionManager, globalize, events, require, castSenderApiLoader) {
'use strict'; 'use strict';
// Based on https://github.com/googlecast/CastVideos-chrome/blob/master/CastVideos.js // Based on https://github.com/googlecast/CastVideos-chrome/blob/master/CastVideos.js

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'loading', 'apphost', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-checkbox', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button', 'emby-linkbutton', 'flexStyles'], function (dialogHelper, loading, appHost, layoutManager, connectionManager, appRouter, globalize) { define(['dialogHelper', 'loading', 'apphost', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-checkbox', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button', 'emby-linkbutton', 'flexStyles'], function (dialogHelper, loading, appHost, layoutManager, connectionManager, appRouter, globalize) {
'use strict'; 'use strict';
var currentServerId; var currentServerId;

View File

@ -1,4 +1,4 @@
define(['globalize'], function (globalize) { define(['globalize'], function (globalize) {
'use strict'; 'use strict';
function parseISO8601Date(s, toLocal) { function parseISO8601Date(s, toLocal) {

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader formDialogHeader-clear justify-content-center"> <div class="formDialogHeader formDialogHeader-clear justify-content-center">
<h1 class="formDialogHeaderTitle" style="margin-left:0;margin-top: .5em;padding: 0 1em;"></h1> <h1 class="formDialogHeaderTitle" style="margin-left:0;margin-top: .5em;padding: 0 1em;"></h1>
</div> </div>

View File

@ -1,4 +1,4 @@
define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager', 'dom', 'css!./dialoghelper.css', 'scrollStyles'], function (appRouter, focusManager, browser, layoutManager, inputManager, dom) { define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager', 'dom', 'css!./dialoghelper.css', 'scrollStyles'], function (appRouter, focusManager, browser, layoutManager, inputManager, dom) {
'use strict'; 'use strict';
var globalOnOpenCallback; var globalOnOpenCallback;

View File

@ -1,4 +1,4 @@
<form style="margin: 0 auto;"> <form style="margin: 0 auto;">
<h2 class="sectionTitle"> <h2 class="sectionTitle">
${Display} ${Display}

View File

@ -1,4 +1,4 @@
define(['browser', 'dom', 'layoutManager', 'shell', 'appRouter', 'apphost', 'css!./emby-button', 'registerElement'], function (browser, dom, layoutManager, shell, appRouter, appHost) { define(['browser', 'dom', 'layoutManager', 'shell', 'appRouter', 'apphost', 'css!./emby-button', 'registerElement'], function (browser, dom, layoutManager, shell, appRouter, appHost) {
'use strict'; 'use strict';
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype); var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype);

View File

@ -1,4 +1,4 @@
define(['layoutManager', 'css!./emby-button', 'registerElement'], function (layoutManager) { define(['layoutManager', 'css!./emby-button', 'registerElement'], function (layoutManager) {
'use strict'; 'use strict';
var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype); var EmbyButtonPrototype = Object.create(HTMLButtonElement.prototype);

View File

@ -1,4 +1,4 @@
define(['browser', 'dom', 'css!./emby-checkbox', 'registerElement'], function (browser, dom) { define(['browser', 'dom', 'css!./emby-checkbox', 'registerElement'], function (browser, dom) {
'use strict'; 'use strict';
var EmbyCheckboxPrototype = Object.create(HTMLInputElement.prototype); var EmbyCheckboxPrototype = Object.create(HTMLInputElement.prototype);

View File

@ -1,4 +1,4 @@
define(['browser', 'css!./emby-collapse', 'registerElement', 'emby-button'], function (browser) { define(['browser', 'css!./emby-collapse', 'registerElement', 'emby-button'], function (browser) {
'use strict'; 'use strict';
var EmbyButtonPrototype = Object.create(HTMLDivElement.prototype); var EmbyButtonPrototype = Object.create(HTMLDivElement.prototype);

View File

@ -1,4 +1,4 @@
define(['layoutManager', 'browser', 'dom', 'css!./emby-input', 'registerElement'], function (layoutManager, browser, dom) { define(['layoutManager', 'browser', 'dom', 'css!./emby-input', 'registerElement'], function (layoutManager, browser, dom) {
'use strict'; 'use strict';
var EmbyInputPrototype = Object.create(HTMLInputElement.prototype); var EmbyInputPrototype = Object.create(HTMLInputElement.prototype);

View File

@ -1,4 +1,4 @@
define(['emby-progressring', 'dom', 'serverNotifications', 'events', 'registerElement'], function (EmbyProgressRing, dom, serverNotifications, events) { define(['emby-progressring', 'dom', 'serverNotifications', 'events', 'registerElement'], function (EmbyProgressRing, dom, serverNotifications, events) {
'use strict'; 'use strict';
function addNotificationEvent(instance, name, handler) { function addNotificationEvent(instance, name, handler) {

View File

@ -1,4 +1,4 @@
define(['itemShortcuts', 'inputManager', 'connectionManager', 'playbackManager', 'imageLoader', 'layoutManager', 'browser', 'dom', 'loading', 'focusManager', 'serverNotifications', 'events', 'registerElement'], function (itemShortcuts, inputManager, connectionManager, playbackManager, imageLoader, layoutManager, browser, dom, loading, focusManager, serverNotifications, events) { define(['itemShortcuts', 'inputManager', 'connectionManager', 'playbackManager', 'imageLoader', 'layoutManager', 'browser', 'dom', 'loading', 'focusManager', 'serverNotifications', 'events', 'registerElement'], function (itemShortcuts, inputManager, connectionManager, playbackManager, imageLoader, layoutManager, browser, dom, loading, focusManager, serverNotifications, events) {
'use strict'; 'use strict';
var ItemsContainerProtoType = Object.create(HTMLDivElement.prototype); var ItemsContainerProtoType = Object.create(HTMLDivElement.prototype);

View File

@ -1,4 +1,4 @@
.progressring { .progressring {
position: relative; position: relative;
width: 2.6em; width: 2.6em;
height: 2.6em; height: 2.6em;

View File

@ -1,4 +1,4 @@
define(['require', 'css!./emby-progressring', 'registerElement'], function (require) { define(['require', 'css!./emby-progressring', 'registerElement'], function (require) {
'use strict'; 'use strict';
var EmbyProgressRing = Object.create(HTMLDivElement.prototype); var EmbyProgressRing = Object.create(HTMLDivElement.prototype);

View File

@ -1,4 +1,4 @@
define(['css!./emby-radio', 'registerElement'], function () { define(['css!./emby-radio', 'registerElement'], function () {
'use strict'; 'use strict';
var EmbyRadioPrototype = Object.create(HTMLInputElement.prototype); var EmbyRadioPrototype = Object.create(HTMLInputElement.prototype);

View File

@ -1,4 +1,4 @@
define(['layoutManager', 'dom', 'css!./emby-scrollbuttons', 'registerElement', 'paper-icon-button-light'], function (layoutManager, dom) { define(['layoutManager', 'dom', 'css!./emby-scrollbuttons', 'registerElement', 'paper-icon-button-light'], function (layoutManager, dom) {
'use strict'; 'use strict';
var EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype); var EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);

View File

@ -1,4 +1,4 @@
define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'browser', 'registerElement'], function (scroller, dom, layoutManager, inputManager, focusManager, browser) { define(['scroller', 'dom', 'layoutManager', 'inputManager', 'focusManager', 'browser', 'registerElement'], function (scroller, dom, layoutManager, inputManager, focusManager, browser) {
'use strict'; 'use strict';
var ScrollerProtoType = Object.create(HTMLDivElement.prototype); var ScrollerProtoType = Object.create(HTMLDivElement.prototype);

View File

@ -1,4 +1,4 @@
define(['layoutManager', 'browser', 'actionsheet', 'css!./emby-select', 'registerElement'], function (layoutManager, browser, actionsheet) { define(['layoutManager', 'browser', 'actionsheet', 'css!./emby-select', 'registerElement'], function (layoutManager, browser, actionsheet) {
'use strict'; 'use strict';
var EmbySelectPrototype = Object.create(HTMLSelectElement.prototype); var EmbySelectPrototype = Object.create(HTMLSelectElement.prototype);

View File

@ -10,7 +10,7 @@ _:-ms-input-placeholder {
-moz-appearance: none; -moz-appearance: none;
-ms-appearance: none; -ms-appearance: none;
appearance: none; appearance: none;
height: .2em; height: 150%;/*150% is needed, else ie and edge won't display the thumb properly*/
background: transparent; background: transparent;
-webkit-user-select: none; -webkit-user-select: none;
-moz-user-select: none; -moz-user-select: none;
@ -49,10 +49,12 @@ _:-ms-input-placeholder {
.mdl-slider::-moz-range-track { .mdl-slider::-moz-range-track {
background: #444; background: #444;
border: none; border: none;
width: calc(100% - 20px);
} }
.mdl-slider::-moz-range-progress { .mdl-slider::-moz-range-progress {
background: #00a4dc; background: #00a4dc;
width: calc(100% - 20px);
} }
.mdl-slider::-ms-track { .mdl-slider::-ms-track {
@ -83,7 +85,6 @@ _:-ms-input-placeholder {
} }
.mdl-slider-hoverthumb::-webkit-slider-thumb { .mdl-slider-hoverthumb::-webkit-slider-thumb {
margin-left: -.12em;
transform: scale(.7, .7); transform: scale(.7, .7);
} }
@ -97,13 +98,14 @@ _:-ms-input-placeholder {
.mdl-slider::-moz-range-thumb { .mdl-slider::-moz-range-thumb {
-moz-appearance: none; -moz-appearance: none;
width: 1.8em; width: 0.9em;
height: 1.8em; height: 0.9em;
box-sizing: border-box; box-sizing: border-box;
border-radius: 50%; border-radius: 50%;
background-image: none; background-image: none;
background: #00a4dc; background: #00a4dc;
border: none; border: none;
transform: Scale(1.4, 1.4);
} }
.mdl-slider::-ms-thumb { .mdl-slider::-ms-thumb {
@ -114,6 +116,7 @@ _:-ms-input-placeholder {
border-radius: 50%; border-radius: 50%;
background: #00a4dc; background: #00a4dc;
border: none; border: none;
transform: scale(.9, .9);
transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1); transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1), border 0.18s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.18s cubic-bezier(0.4, 0, 0.2, 1), background 0.28s cubic-bezier(0.4, 0, 0.2, 1);
} }
@ -154,11 +157,20 @@ _:-ms-input-placeholder {
flex-direction: row; flex-direction: row;
} }
.mdl-slider-background-flex-container {
padding-left: 10px;
padding-right: 10px;
width: 100%;
box-sizing: border-box;
margin-top: -.05em;
top: 50%;
position: absolute;
}
.mdl-slider-background-flex { .mdl-slider-background-flex {
background: #333; background: #333;
position: absolute;
height: .2em; height: .2em;
margin-top: -.1em; margin-top: -.08em;
width: 100%; width: 100%;
top: 50%; top: 50%;
left: 0; left: 0;

View File

@ -1,4 +1,4 @@
define(['browser', 'dom', 'layoutManager', 'css!./emby-slider', 'registerElement', 'emby-input'], function (browser, dom, layoutManager) { define(['browser', 'dom', 'layoutManager', 'css!./emby-slider', 'registerElement', 'emby-input'], function (browser, dom, layoutManager) {
'use strict'; 'use strict';
var EmbySliderPrototype = Object.create(HTMLInputElement.prototype); var EmbySliderPrototype = Object.create(HTMLInputElement.prototype);
@ -89,6 +89,7 @@
var htmlToInsert = ''; var htmlToInsert = '';
if (!supportsNativeProgressStyle) { if (!supportsNativeProgressStyle) {
htmlToInsert += '<div class="mdl-slider-background-flex-container">';
htmlToInsert += '<div class="mdl-slider-background-flex">'; htmlToInsert += '<div class="mdl-slider-background-flex">';
htmlToInsert += '<div class="mdl-slider-background-flex-inner">'; htmlToInsert += '<div class="mdl-slider-background-flex-inner">';
@ -103,6 +104,7 @@
htmlToInsert += '</div>'; htmlToInsert += '</div>';
htmlToInsert += '</div>'; htmlToInsert += '</div>';
htmlToInsert += '</div>';
} }
htmlToInsert += '<div class="sliderBubble hide"></div>'; htmlToInsert += '<div class="sliderBubble hide"></div>';

View File

@ -1,4 +1,4 @@
.emby-tab-button { .emby-tab-button {
background: transparent; background: transparent;
box-shadow: none; box-shadow: none;
cursor: pointer; cursor: pointer;

View File

@ -1,4 +1,4 @@
define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'registerElement', 'css!./emby-tabs', 'scrollStyles'], function (dom, scroller, browser, layoutManager, focusManager) { define(['dom', 'scroller', 'browser', 'layoutManager', 'focusManager', 'registerElement', 'css!./emby-tabs', 'scrollStyles'], function (dom, scroller, browser, layoutManager, focusManager) {
'use strict'; 'use strict';
var EmbyTabs = Object.create(HTMLDivElement.prototype); var EmbyTabs = Object.create(HTMLDivElement.prototype);

View File

@ -1,4 +1,4 @@
define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement', 'emby-input'], function (layoutManager, browser) { define(['layoutManager', 'browser', 'css!./emby-textarea', 'registerElement', 'emby-input'], function (layoutManager, browser) {
'use strict'; 'use strict';
function autoGrow(textarea, maxLines) { function autoGrow(textarea, maxLines) {

View File

@ -1,4 +1,4 @@
define(['css!./emby-toggle', 'registerElement'], function () { define(['css!./emby-toggle', 'registerElement'], function () {
'use strict'; 'use strict';
var EmbyTogglePrototype = Object.create(HTMLInputElement.prototype); var EmbyTogglePrototype = Object.create(HTMLInputElement.prototype);

View File

@ -1,4 +1,4 @@
define([], function () { define([], function () {
'use strict'; 'use strict';
function getFetchPromise(request) { function getFetchPromise(request) {

View File

@ -1,4 +1,4 @@
define(['multi-download'], function (multiDownload) { define(['multi-download'], function (multiDownload) {
'use strict'; 'use strict';
return { return {

View File

@ -1,4 +1,4 @@
define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost', 'inputManager', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'userSettings', 'emby-checkbox', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button', 'emby-linkbutton', 'flexStyles'], function (require, dom, focusManager, dialogHelper, loading, appHost, inputManager, layoutManager, connectionManager, appRouter, globalize, userSettings) { define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost', 'inputManager', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'userSettings', 'emby-checkbox', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button', 'emby-linkbutton', 'flexStyles'], function (require, dom, focusManager, dialogHelper, loading, appHost, inputManager, layoutManager, connectionManager, appRouter, globalize, userSettings) {
'use strict'; 'use strict';
function onSubmit(e) { function onSubmit(e) {

View File

@ -6,7 +6,6 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
var currentDateTimeCulture; var currentDateTimeCulture;
function getCurrentLocale() { function getCurrentLocale() {
return currentCulture; return currentCulture;
} }
@ -15,9 +14,7 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
} }
function getDefaultLanguage() { function getDefaultLanguage() {
var culture = document.documentElement.getAttribute('data-culture'); var culture = document.documentElement.getAttribute('data-culture');
if (culture) { if (culture) {
return culture; return culture;
} }
@ -36,12 +33,11 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
} }
function updateCurrentCulture() { function updateCurrentCulture() {
var culture; var culture;
try { try {
culture = userSettings.language(); culture = userSettings.language();
} catch (err) { } catch (err) {
console.log('no language set in user settings');
} }
culture = culture || getDefaultLanguage(); culture = culture || getDefaultLanguage();
@ -51,43 +47,38 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
try { try {
dateTimeCulture = userSettings.dateTimeLocale(); dateTimeCulture = userSettings.dateTimeLocale();
} catch (err) { } catch (err) {
console.log('no date format set in user settings');
} }
if (dateTimeCulture) { if (dateTimeCulture) {
currentDateTimeCulture = normalizeLocaleName(dateTimeCulture); currentDateTimeCulture = normalizeLocaleName(dateTimeCulture);
} } else {
else {
currentDateTimeCulture = currentCulture; currentDateTimeCulture = currentCulture;
} }
ensureTranslations(currentCulture); ensureTranslations(currentCulture);
} }
function ensureTranslations(culture) { function ensureTranslations(culture) {
for (var i in allTranslations) { for (var i in allTranslations) {
ensureTranslation(allTranslations[i], culture); ensureTranslation(allTranslations[i], culture);
} }
} }
function ensureTranslation(translationInfo, culture) { function ensureTranslation(translationInfo, culture) {
if (translationInfo.dictionaries[culture]) { if (translationInfo.dictionaries[culture]) {
return Promise.resolve(); return Promise.resolve();
} }
return loadTranslation(translationInfo.translations, culture).then(function (dictionary) { return loadTranslation(translationInfo.translations, culture).then(function (dictionary) {
translationInfo.dictionaries[culture] = dictionary; translationInfo.dictionaries[culture] = dictionary;
}); });
} }
function normalizeLocaleName(culture) { function normalizeLocaleName(culture) {
// TODO remove normalizations
culture = culture.replace('_', '-'); culture = culture.replace('_', '-');
// If it's de-DE, convert to just de // convert de-DE to de
var parts = culture.split('-'); var parts = culture.split('-');
if (parts.length === 2) { if (parts.length === 2) {
if (parts[0].toLowerCase() === parts[1].toLowerCase()) { if (parts[0].toLowerCase() === parts[1].toLowerCase()) {
@ -96,7 +87,6 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
} }
var lower = culture.toLowerCase(); var lower = culture.toLowerCase();
if (lower === 'ca-es') { if (lower === 'ca-es') {
return 'ca'; return 'ca';
} }
@ -109,23 +99,20 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
return lower; return lower;
} }
function getDictionary(module) { function getDictionary(module, locale) {
if (!module) { if (!module) {
module = defaultModule(); module = defaultModule();
} }
var translations = allTranslations[module]; var translations = allTranslations[module];
if (!translations) { if (!translations) {
return {}; return {};
} }
return translations.dictionaries[getCurrentLocale()]; return translations.dictionaries[locale];
} }
function register(options) { function register(options) {
allTranslations[options.name] = { allTranslations[options.name] = {
translations: options.strings || options.translations, translations: options.strings || options.translations,
dictionaries: {} dictionaries: {}
@ -133,9 +120,7 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
} }
function loadStrings(options) { function loadStrings(options) {
var locale = getCurrentLocale(); var locale = getCurrentLocale();
if (typeof options === 'string') { if (typeof options === 'string') {
return ensureTranslation(allTranslations[options], locale); return ensureTranslation(allTranslations[options], locale);
} else { } else {
@ -146,9 +131,7 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
var cacheParam = new Date().getTime(); var cacheParam = new Date().getTime();
function loadTranslation(translations, lang) { function loadTranslation(translations, lang) {
lang = normalizeLocaleName(lang); lang = normalizeLocaleName(lang);
var filtered = translations.filter(function (t) { var filtered = translations.filter(function (t) {
return normalizeLocaleName(t.lang) === lang; return normalizeLocaleName(t.lang) === lang;
}); });
@ -160,7 +143,6 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
} }
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
if (!filtered.length) { if (!filtered.length) {
resolve(); resolve();
return; return;
@ -190,7 +172,6 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
} }
function translateKey(key) { function translateKey(key) {
var parts = key.split('#'); var parts = key.split('#');
var module; var module;
@ -203,53 +184,43 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
} }
function translateKeyFromModule(key, module) { function translateKeyFromModule(key, module) {
var dictionary = getDictionary(module, getCurrentLocale());
var dictionary = getDictionary(module); if (!dictionary || !dictionary[key]) {
dictionary = getDictionary(module, 'en-us');
}
if (!dictionary) { if (!dictionary) {
return key; return key;
} }
return dictionary[key] || key; return dictionary[key] || key;
} }
function replaceAll(str, find, replace) { function replaceAll(str, find, replace) {
return str.split(find).join(replace); return str.split(find).join(replace);
} }
function translate(key) { function translate(key) {
var val = translateKey(key); var val = translateKey(key);
for (var i = 1; i < arguments.length; i++) { for (var i = 1; i < arguments.length; i++) {
val = replaceAll(val, '{' + (i - 1) + '}', arguments[i]); val = replaceAll(val, '{' + (i - 1) + '}', arguments[i]);
} }
return val; return val;
} }
function translateHtml(html, module) { function translateHtml(html, module) {
if (!module) { if (!module) {
module = defaultModule(); module = defaultModule();
} }
if (!module) { if (!module) {
throw new Error('module cannot be null or empty'); throw new Error('module cannot be null or empty');
} }
var startIndex = html.indexOf('${'); var startIndex = html.indexOf('${');
if (startIndex === -1) { if (startIndex === -1) {
return html; return html;
} }
startIndex += 2; startIndex += 2;
var endIndex = html.indexOf('}', startIndex); var endIndex = html.indexOf('}', startIndex);
if (endIndex === -1) { if (endIndex === -1) {
return html; return html;
} }
@ -263,12 +234,9 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
var _defaultModule; var _defaultModule;
function defaultModule(val) { function defaultModule(val) {
if (val) { if (val) {
_defaultModule = val; _defaultModule = val;
} }
return _defaultModule; return _defaultModule;
} }
@ -292,4 +260,4 @@ define(['connectionManager', 'userSettings', 'events'], function (connectionMana
getCurrentDateTimeLocale: getCurrentDateTimeLocale, getCurrentDateTimeLocale: getCurrentDateTimeLocale,
register: register register: register
}; };
}); });

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'globalize', 'userSettings', 'layoutManager', 'connectionManager', 'require', 'loading', 'scrollHelper', 'emby-checkbox', 'emby-radio', 'css!./../formdialog', 'material-icons'], function (dialogHelper, globalize, userSettings, layoutManager, connectionManager, require, loading, scrollHelper) { define(['dialogHelper', 'globalize', 'userSettings', 'layoutManager', 'connectionManager', 'require', 'loading', 'scrollHelper', 'emby-checkbox', 'emby-radio', 'css!./../formdialog', 'material-icons'], function (dialogHelper, globalize, userSettings, layoutManager, connectionManager, require, loading, scrollHelper) {
'use strict'; 'use strict';
function saveCategories(context, options) { function saveCategories(context, options) {

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${Settings} ${Settings}

View File

@ -1,4 +1,4 @@
define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', 'scrollHelper', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'playbackManager', 'userSettings', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'dom', 'css!./guide.css', 'programStyles', 'material-icons', 'scrollStyles', 'emby-button', 'paper-icon-button-light', 'emby-tabs', 'emby-scroller', 'flexStyles', 'registerElement'], function (require, inputManager, browser, globalize, connectionManager, scrollHelper, serverNotifications, loading, datetime, focusManager, playbackManager, userSettings, imageLoader, events, layoutManager, itemShortcuts, dom) { define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', 'scrollHelper', 'serverNotifications', 'loading', 'datetime', 'focusManager', 'playbackManager', 'userSettings', 'imageLoader', 'events', 'layoutManager', 'itemShortcuts', 'dom', 'css!./guide.css', 'programStyles', 'material-icons', 'scrollStyles', 'emby-button', 'paper-icon-button-light', 'emby-tabs', 'emby-scroller', 'flexStyles', 'registerElement'], function (require, inputManager, browser, globalize, connectionManager, scrollHelper, serverNotifications, loading, datetime, focusManager, playbackManager, userSettings, imageLoader, events, layoutManager, itemShortcuts, dom) {
'use strict'; 'use strict';
function showViewSettings(instance) { function showViewSettings(instance) {

View File

@ -1,4 +1,4 @@
<div class="tvGuideHeader"> <div class="tvGuideHeader">
<div class="guideHeaderDateSelection"> <div class="guideHeaderDateSelection">
<div is="emby-tabs" class="guideDateTabs focuscontainer-x" data-selectionbar="false"> <div is="emby-tabs" class="guideDateTabs focuscontainer-x" data-selectionbar="false">

View File

@ -1,4 +1,4 @@
<form style="margin:0 auto;"> <form style="margin:0 auto;">
<div class="verticalSection verticalSection-extrabottompadding"> <div class="verticalSection verticalSection-extrabottompadding">

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'layoutManager', 'globalize', 'require', 'events', 'homescreenSettings', 'paper-icon-button-light', 'css!./../formdialog'], function (dialogHelper, layoutManager, globalize, require, events, HomescreenSettings) { define(['dialogHelper', 'layoutManager', 'globalize', 'require', 'events', 'homescreenSettings', 'paper-icon-button-light', 'css!./../formdialog'], function (dialogHelper, layoutManager, globalize, require, events, HomescreenSettings) {
'use strict'; 'use strict';
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${HeaderDisplaySettings} ${HeaderDisplaySettings}

View File

@ -1,4 +1,4 @@
.homeLibraryButton { .homeLibraryButton {
min-width: 18%; min-width: 18%;
margin: .5em !important; margin: .5em !important;
} }

View File

@ -1,4 +1,4 @@
define(['connectionManager', 'cardBuilder', 'registrationServices', 'appSettings', 'dom', 'apphost', 'layoutManager', 'imageLoader', 'globalize', 'itemShortcuts', 'itemHelper', 'appRouter', 'emby-button', 'paper-icon-button-light', 'emby-itemscontainer', 'emby-scroller', 'emby-linkbutton', 'css!./homesections'], function (connectionManager, cardBuilder, registrationServices, appSettings, dom, appHost, layoutManager, imageLoader, globalize, itemShortcuts, itemHelper, appRouter) { define(['connectionManager', 'cardBuilder', 'registrationServices', 'appSettings', 'dom', 'apphost', 'layoutManager', 'imageLoader', 'globalize', 'itemShortcuts', 'itemHelper', 'appRouter', 'emby-button', 'paper-icon-button-light', 'emby-itemscontainer', 'emby-scroller', 'emby-linkbutton', 'css!./homesections'], function (connectionManager, cardBuilder, registrationServices, appSettings, dom, appHost, layoutManager, imageLoader, globalize, itemShortcuts, itemHelper, appRouter) {
'use strict'; 'use strict';
function getDefaultSection(index) { function getDefaultSection(index) {

View File

@ -1,4 +1,4 @@
define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper) { define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper) {
"use strict"; "use strict";
var mediaManager; var mediaManager;

View File

@ -1,4 +1,4 @@
define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader', 'browser', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'emby-checkbox', 'emby-button', 'paper-icon-button-light', 'emby-linkbutton', 'formDialogStyle', 'cardStyle'], function (loading, appHost, dialogHelper, connectionManager, imageLoader, browser, layoutManager, scrollHelper, globalize, require) { define(['loading', 'apphost', 'dialogHelper', 'connectionManager', 'imageLoader', 'browser', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'emby-checkbox', 'emby-button', 'paper-icon-button-light', 'emby-linkbutton', 'formDialogStyle', 'cardStyle'], function (loading, appHost, dialogHelper, connectionManager, imageLoader, browser, layoutManager, scrollHelper, globalize, require) {
'use strict'; 'use strict';
var currentItemId; var currentItemId;

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${Search} ${Search}

View File

@ -1,4 +1,4 @@
.imageEditor-buttons { .imageEditor-buttons {
display: flex; display: flex;
align-items: center; align-items: center;
margin: 1em 0 1em; margin: 1em 0 1em;

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'connectionManager', 'loading', 'dom', 'layoutManager', 'focusManager', 'globalize', 'scrollHelper', 'imageLoader', 'require', 'browser', 'apphost', 'cardStyle', 'formDialogStyle', 'emby-button', 'paper-icon-button-light', 'css!./imageeditor'], function (dialogHelper, connectionManager, loading, dom, layoutManager, focusManager, globalize, scrollHelper, imageLoader, require, browser, appHost) { define(['dialogHelper', 'connectionManager', 'loading', 'dom', 'layoutManager', 'focusManager', 'globalize', 'scrollHelper', 'imageLoader', 'require', 'browser', 'apphost', 'cardStyle', 'formDialogStyle', 'emby-button', 'paper-icon-button-light', 'css!./imageeditor'], function (dialogHelper, connectionManager, loading, dom, layoutManager, focusManager, globalize, scrollHelper, imageLoader, require, browser, appHost) {
'use strict'; 'use strict';
var currentItem; var currentItem;

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${HeaderEditImages} ${HeaderEditImages}

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'connectionManager', 'dom', 'loading', 'scrollHelper', 'layoutManager', 'globalize', 'require', 'emby-button', 'emby-select', 'formDialogStyle', 'css!./style'], function (dialogHelper, connectionManager, dom, loading, scrollHelper, layoutManager, globalize, require) { define(['dialogHelper', 'connectionManager', 'dom', 'loading', 'scrollHelper', 'layoutManager', 'globalize', 'require', 'emby-button', 'emby-select', 'formDialogStyle', 'css!./style'], function (dialogHelper, connectionManager, dom, loading, scrollHelper, layoutManager, globalize, require) {
'use strict'; 'use strict';
var currentItemId; var currentItemId;

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${HeaderUploadImage} ${HeaderUploadImage}

View File

@ -1,4 +1,4 @@
.imageEditor-dropZone { .imageEditor-dropZone {
border: .2em dashed currentcolor; border: .2em dashed currentcolor;
border-radius: .25em; border-radius: .25em;
/* padding: 1.6em; */ /* padding: 1.6em; */

View File

@ -1,4 +1,4 @@
// # The MIT License (MIT) // # The MIT License (MIT)
// # // #
// # Copyright (c) 2016 Microsoft. All rights reserved. // # Copyright (c) 2016 Microsoft. All rights reserved.
// # // #

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize', 'scrollHelper', 'layoutManager', 'focusManager', 'browser', 'emby-input', 'emby-checkbox', 'paper-icon-button-light', 'css!./../formdialog', 'material-icons', 'cardStyle'], function (dialogHelper, loading, connectionManager, require, globalize, scrollHelper, layoutManager, focusManager, browser) { define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize', 'scrollHelper', 'layoutManager', 'focusManager', 'browser', 'emby-input', 'emby-checkbox', 'paper-icon-button-light', 'css!./../formdialog', 'material-icons', 'cardStyle'], function (dialogHelper, loading, connectionManager, require, globalize, scrollHelper, layoutManager, focusManager, browser) {
'use strict'; 'use strict';
var currentItem; var currentItem;

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${Identify} ${Identify}

View File

@ -1,4 +1,4 @@
define(['playbackManager', 'serverNotifications', 'events'], function (playbackManager, serverNotifications, events) { define(['playbackManager', 'serverNotifications', 'events'], function (playbackManager, serverNotifications, events) {
'use strict'; 'use strict';
function onUserDataChanged(e, apiClient, userData) { function onUserDataChanged(e, apiClient, userData) {

View File

@ -1,4 +1,4 @@
define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle', 'flexStyles'], function (loading, events, dialogHelper, dom, layoutManager, scrollHelper, globalize, require) { define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle', 'flexStyles'], function (loading, events, dialogHelper, dom, layoutManager, scrollHelper, globalize, require) {
'use strict'; 'use strict';
function showDialog(instance, options, template) { function showDialog(instance, options, template) {

View File

@ -1,4 +1,4 @@
define(['dom', 'browser', 'events', 'emby-tabs', 'emby-button', 'emby-linkbutton'], function (dom, browser, events) { define(['dom', 'browser', 'events', 'emby-tabs', 'emby-button', 'emby-linkbutton'], function (dom, browser, events) {
'use strict'; 'use strict';
var tabOwnerView; var tabOwnerView;

View File

@ -1,4 +1,4 @@
define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loading', 'focusManager', 'connectionManager', 'globalize', 'require', 'shell', 'emby-checkbox', 'emby-input', 'emby-select', 'listViewStyle', 'emby-textarea', 'emby-button', 'paper-icon-button-light', 'css!./../formdialog', 'clearButtonStyle', 'flexStyles'], function (itemHelper, dom, layoutManager, dialogHelper, datetime, loading, focusManager, connectionManager, globalize, require, shell) { define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loading', 'focusManager', 'connectionManager', 'globalize', 'require', 'shell', 'emby-checkbox', 'emby-input', 'emby-select', 'listViewStyle', 'emby-textarea', 'emby-button', 'paper-icon-button-light', 'css!./../formdialog', 'clearButtonStyle', 'flexStyles'], function (itemHelper, dom, layoutManager, dialogHelper, datetime, loading, focusManager, connectionManager, globalize, require, shell) {
'use strict'; 'use strict';
var currentContext; var currentContext;

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${Edit} ${Edit}

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'layoutManager', 'globalize', 'require', 'paper-icon-button-light', 'emby-input', 'emby-select', 'css!./../formdialog'], function (dialogHelper, layoutManager, globalize, require) { define(['dialogHelper', 'layoutManager', 'globalize', 'require', 'paper-icon-button-light', 'emby-input', 'emby-select', 'css!./../formdialog'], function (dialogHelper, layoutManager, globalize, require) {
'use strict'; 'use strict';
function centerFocus(elem, horiz, on) { function centerFocus(elem, horiz, on) {

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${Edit} ${Edit}

View File

@ -1,4 +1,4 @@
.itemSelectionPanel { .itemSelectionPanel {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
left: 0; left: 0;

View File

@ -1,4 +1,4 @@
define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'globalize', 'appRouter', 'dom', 'css!./multiselect'], function (browser, appStorage, appHost, loading, connectionManager, globalize, appRouter, dom) { define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'globalize', 'appRouter', 'dom', 'css!./multiselect'], function (browser, appStorage, appHost, loading, connectionManager, globalize, appRouter, dom) {
'use strict'; 'use strict';
var selectedItems = []; var selectedItems = [];

View File

@ -1,4 +1,4 @@
.nowPlayingBarInfoContainer { .nowPlayingBarInfoContainer {
display: flex; display: flex;
align-items: center; align-items: center;
height: 100%; height: 100%;

View File

@ -1,4 +1,4 @@
define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader', 'layoutManager', 'playbackManager', 'nowPlayingHelper', 'apphost', 'dom', 'connectionManager', 'paper-icon-button-light', 'emby-ratingbutton'], function (require, datetime, itemHelper, events, browser, imageLoader, layoutManager, playbackManager, nowPlayingHelper, appHost, dom, connectionManager) { define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader', 'layoutManager', 'playbackManager', 'nowPlayingHelper', 'apphost', 'dom', 'connectionManager', 'paper-icon-button-light', 'emby-ratingbutton'], function (require, datetime, itemHelper, events, browser, imageLoader, layoutManager, playbackManager, nowPlayingHelper, appHost, dom, connectionManager) {
'use strict'; 'use strict';
var currentPlayer; var currentPlayer;

View File

@ -1,4 +1,4 @@
define(['events', 'playbackManager', 'dom', 'browser', 'css!./iconosd', 'material-icons'], function (events, playbackManager, dom, browser) { define(['events', 'playbackManager', 'dom', 'browser', 'css!./iconosd', 'material-icons'], function (events, playbackManager, dom, browser) {
'use strict'; 'use strict';
var currentPlayer; var currentPlayer;

View File

@ -1,4 +1,4 @@
.iconOsd { .iconOsd {
position: fixed; position: fixed;
top: 7%; top: 7%;
right: 3%; right: 3%;

View File

@ -1,4 +1,4 @@
define(['playbackManager', 'nowPlayingHelper', 'events', 'connectionManager'], function (playbackManager, nowPlayingHelper, events, connectionManager) { define(['playbackManager', 'nowPlayingHelper', 'events', 'connectionManager'], function (playbackManager, nowPlayingHelper, events, connectionManager) {
"use strict"; "use strict";
// Reports media playback to the device for lock screen control // Reports media playback to the device for lock screen control

View File

@ -1,4 +1,4 @@
define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'playQueueManager', 'userSettings', 'globalize', 'connectionManager', 'loading', 'apphost', 'fullscreenManager'], function (events, datetime, appSettings, itemHelper, pluginManager, PlayQueueManager, userSettings, globalize, connectionManager, loading, apphost, fullscreenManager) { define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'playQueueManager', 'userSettings', 'globalize', 'connectionManager', 'loading', 'apphost', 'fullscreenManager'], function (events, datetime, appSettings, itemHelper, pluginManager, PlayQueueManager, userSettings, globalize, connectionManager, loading, apphost, fullscreenManager) {
'use strict'; 'use strict';
function enableLocalPlaylistManagement(player) { function enableLocalPlaylistManagement(player) {

View File

@ -1,4 +1,4 @@
define(['playbackManager', 'layoutManager', 'events'], function (playbackManager, layoutManager, events) { define(['playbackManager', 'layoutManager', 'events'], function (playbackManager, layoutManager, events) {
"use strict"; "use strict";
var orientationLocked; var orientationLocked;

View File

@ -1,4 +1,4 @@
define(['appSettings', 'events', 'browser', 'loading', 'playbackManager', 'appRouter', 'globalize', 'apphost'], function (appSettings, events, browser, loading, playbackManager, appRouter, globalize, appHost) { define(['appSettings', 'events', 'browser', 'loading', 'playbackManager', 'appRouter', 'globalize', 'apphost'], function (appSettings, events, browser, loading, playbackManager, appRouter, globalize, appHost) {
'use strict'; 'use strict';
function mirrorItem(info, player) { function mirrorItem(info, player) {

View File

@ -1,4 +1,4 @@
define([], function () { define([], function () {
'use strict'; 'use strict';
function getDisplayPlayMethod(session) { function getDisplayPlayMethod(session) {

View File

@ -1,4 +1,4 @@
define([], function () { define([], function () {
'use strict'; 'use strict';
var currentId = 0; var currentId = 0;

View File

@ -1,4 +1,4 @@
define(['events', 'playbackManager'], function (events, playbackManager) { define(['events', 'playbackManager'], function (events, playbackManager) {
'use strict'; 'use strict';
function transferPlayback(oldPlayer, newPlayer) { function transferPlayback(oldPlayer, newPlayer) {

View File

@ -1,4 +1,4 @@
define(['events', 'playbackManager', 'dom', 'browser', 'css!./iconosd', 'material-icons'], function (events, playbackManager, dom, browser) { define(['events', 'playbackManager', 'dom', 'browser', 'css!./iconosd', 'material-icons'], function (events, playbackManager, dom, browser) {
'use strict'; 'use strict';
var currentPlayer; var currentPlayer;

View File

@ -1,4 +1,4 @@
<form style="margin: 0 auto;"> <form style="margin: 0 auto;">
<div class="verticalSection verticalSection-extrabottompadding"> <div class="verticalSection verticalSection-extrabottompadding">
<h2 class="sectionTitle"> <h2 class="sectionTitle">

View File

@ -1,4 +1,4 @@
define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager', 'connectionManager', 'userSettings', 'appRouter', 'globalize', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (shell, dialogHelper, loading, layoutManager, playbackManager, connectionManager, userSettings, appRouter, globalize) { define(['shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackManager', 'connectionManager', 'userSettings', 'appRouter', 'globalize', 'emby-input', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (shell, dialogHelper, loading, layoutManager, playbackManager, connectionManager, userSettings, appRouter, globalize) {
'use strict'; 'use strict';
var currentServerId; var currentServerId;

View File

@ -1,4 +1,4 @@
if (typeof Object.assign != 'function') { if (typeof Object.assign != 'function') {
(function () { (function () {
Object.assign = function (target) { Object.assign = function (target) {
'use strict'; 'use strict';

View File

@ -1,4 +1,4 @@
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/ // http://paulirish.com/2011/requestanimationframe-for-smart-animating/
// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel // requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1">
<i class="md-icon">&#xE5C4;</i> <i class="md-icon">&#xE5C4;</i>
</button> </button>

View File

@ -1,4 +1,4 @@
define(['globalize'], function (globalize) { define(['globalize'], function (globalize) {
'use strict'; 'use strict';
function getVideoQualityOptions(options) { function getVideoQualityOptions(options) {

View File

@ -1,4 +1,4 @@
define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'dom', 'recordingHelper', 'events', 'registrationServices', 'paper-icon-button-light', 'emby-button', 'css!./recordingfields'], function (globalize, connectionManager, require, loading, appHost, dom, recordingHelper, events, registrationServices) { define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'dom', 'recordingHelper', 'events', 'registrationServices', 'paper-icon-button-light', 'emby-button', 'css!./recordingfields'], function (globalize, connectionManager, require, loading, appHost, dom, recordingHelper, events, registrationServices) {
'use strict'; 'use strict';
function onRecordingButtonClick(e) { function onRecordingButtonClick(e) {

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'datetime', 'imageLoader', 'recordingFields', 'events', 'emby-checkbox', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, datetime, imageLoader, recordingFields, events) { define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'datetime', 'imageLoader', 'recordingFields', 'events', 'emby-checkbox', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, datetime, imageLoader, recordingFields, events) {
'use strict'; 'use strict';
var currentDialog; var currentDialog;

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"></h3> <h3 class="formDialogHeaderTitle"></h3>
</div> </div>

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'imageLoader', 'scrollStyles', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons', 'flexStyles'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, imageLoader) { define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'imageLoader', 'scrollStyles', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons', 'flexStyles'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, imageLoader) {
'use strict'; 'use strict';
var currentDialog; var currentDialog;

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${HeaderRecordingOptions} ${HeaderRecordingOptions}

View File

@ -1,4 +1,4 @@
define(['globalize', 'connectionManager', 'serverNotifications', 'require', 'loading', 'apphost', 'dom', 'recordingHelper', 'events', 'registrationServices', 'paper-icon-button-light', 'emby-button', 'css!./recordingfields', 'flexStyles'], function (globalize, connectionManager, serverNotifications, require, loading, appHost, dom, recordingHelper, events, registrationServices) { define(['globalize', 'connectionManager', 'serverNotifications', 'require', 'loading', 'apphost', 'dom', 'recordingHelper', 'events', 'registrationServices', 'paper-icon-button-light', 'emby-button', 'css!./recordingfields', 'flexStyles'], function (globalize, connectionManager, serverNotifications, require, loading, appHost, dom, recordingHelper, events, registrationServices) {
'use strict'; 'use strict';
function getRegistration(apiClient, feature) { function getRegistration(apiClient, feature) {

View File

@ -1,4 +1,4 @@
<div class="convertRecordingsContainer hide infoBanner" style="margin: 1em 0 2em;"> <div class="convertRecordingsContainer hide infoBanner" style="margin: 1em 0 2em;">
<h1 style="margin: .25em 0 .5em;">${HeaderConvertYourRecordings}</h1> <h1 style="margin: .25em 0 .5em;">${HeaderConvertYourRecordings}</h1>
<div class="fieldDescription">${PromoConvertRecordingsToStreamingFormat}</div> <div class="fieldDescription">${PromoConvertRecordingsToStreamingFormat}</div>
<br /> <br />

View File

@ -1,4 +1,4 @@
define(['globalize', 'loading', 'connectionManager', 'registrationServices'], function (globalize, loading, connectionManager, registrationServices) { define(['globalize', 'loading', 'connectionManager', 'registrationServices'], function (globalize, loading, connectionManager, registrationServices) {
'use strict'; 'use strict';
function changeRecordingToSeries(apiClient, timerId, programId, confirmTimerCancellation) { function changeRecordingToSeries(apiClient, timerId, programId, confirmTimerCancellation) {

View File

@ -1,4 +1,4 @@
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'imageLoader', 'datetime', 'scrollStyles', 'emby-button', 'emby-checkbox', 'emby-input', 'emby-select', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons', 'flexStyles'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, imageLoader, datetime) { define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'imageLoader', 'datetime', 'scrollStyles', 'emby-button', 'emby-checkbox', 'emby-input', 'emby-select', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons', 'flexStyles'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, imageLoader, datetime) {
'use strict'; 'use strict';
var currentDialog; var currentDialog;

View File

@ -1,4 +1,4 @@
<div class="formDialogHeader"> <div class="formDialogHeader">
<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button> <button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><i class="md-icon">&#xE5C4;</i></button>
<h3 class="formDialogHeaderTitle"> <h3 class="formDialogHeaderTitle">
${HeaderSeriesOptions} ${HeaderSeriesOptions}

Some files were not shown because too many files have changed in this diff Show More