diff --git a/.eslintrc.js b/.eslintrc.js
index 6a01fe5bf..cd5dc0145 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -40,6 +40,7 @@ module.exports = {
'no-multiple-empty-lines': ["error", { "max": 1 }],
'no-trailing-spaces': ["error"],
'one-var': ["error", "never"],
+ 'quotes': ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": false }],
'semi': ["error"],
'space-before-blocks': ["error"]
},
diff --git a/gulpfile.js b/gulpfile.js
index 0e9732455..6c3316738 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -8,8 +8,8 @@ const htmlmin = require('gulp-htmlmin');
const imagemin = require('gulp-imagemin');
const sourcemaps = require('gulp-sourcemaps');
const mode = require('gulp-mode')({
- modes: ["development", "production"],
- default: "development",
+ modes: ['development', 'production'],
+ default: 'development',
verbose: false
});
const stream = require('webpack-stream');
@@ -55,7 +55,7 @@ const options = {
function serve() {
browserSync.init({
server: {
- baseDir: "./dist"
+ baseDir: './dist'
},
port: 8080
});
diff --git a/src/bundle.js b/src/bundle.js
index 8a829103f..c05778fd9 100644
--- a/src/bundle.js
+++ b/src/bundle.js
@@ -5,150 +5,150 @@
var _define = window.define;
// document-register-element
-var docRegister = require("document-register-element");
-_define("document-register-element", function() {
+var docRegister = require('document-register-element');
+_define('document-register-element', function() {
return docRegister;
});
// fetch
-var fetch = require("whatwg-fetch");
-_define("fetch", function() {
+var fetch = require('whatwg-fetch');
+_define('fetch', function() {
return fetch;
});
// query-string
-var query = require("query-string");
-_define("queryString", function() {
+var query = require('query-string');
+_define('queryString', function() {
return query;
});
// flvjs
-var flvjs = require("flv.js/dist/flv").default;
-_define("flvjs", function() {
+var flvjs = require('flv.js/dist/flv').default;
+_define('flvjs', function() {
return flvjs;
});
// jstree
-var jstree = require("jstree");
-require("jstree/dist/themes/default/style.css");
-_define("jstree", function() {
+var jstree = require('jstree');
+require('jstree/dist/themes/default/style.css');
+_define('jstree', function() {
return jstree;
});
// jquery
-var jquery = require("jquery");
-_define("jQuery", function() {
+var jquery = require('jquery');
+_define('jQuery', function() {
return jquery;
});
// hlsjs
-var hlsjs = require("hls.js");
-_define("hlsjs", function() {
+var hlsjs = require('hls.js');
+_define('hlsjs', function() {
return hlsjs;
});
// howler
-var howler = require("howler");
-_define("howler", function() {
+var howler = require('howler');
+_define('howler', function() {
return howler;
});
// resize-observer-polyfill
-var resize = require("resize-observer-polyfill").default;
-_define("resize-observer-polyfill", function() {
+var resize = require('resize-observer-polyfill').default;
+_define('resize-observer-polyfill', function() {
return resize;
});
// shaka
-var shaka = require("shaka-player");
-_define("shaka", function() {
+var shaka = require('shaka-player');
+_define('shaka', function() {
return shaka;
});
// swiper
-var swiper = require("swiper/js/swiper");
-require("swiper/css/swiper.min.css");
-_define("swiper", function() {
+var swiper = require('swiper/js/swiper');
+require('swiper/css/swiper.min.css');
+_define('swiper', function() {
return swiper;
});
// sortable
-var sortable = require("sortablejs").default;
-_define("sortable", function() {
+var sortable = require('sortablejs').default;
+_define('sortable', function() {
return sortable;
});
// webcomponents
-var webcomponents = require("webcomponents.js/webcomponents-lite");
-_define("webcomponents", function() {
+var webcomponents = require('webcomponents.js/webcomponents-lite');
+_define('webcomponents', function() {
return webcomponents;
});
// libass-wasm
-var libassWasm = require("libass-wasm");
-_define("JavascriptSubtitlesOctopus", function() {
+var libassWasm = require('libass-wasm');
+_define('JavascriptSubtitlesOctopus', function() {
return libassWasm;
});
// material-icons
-var materialIcons = require("material-design-icons-iconfont/dist/material-design-icons.css");
-_define("material-icons", function() {
+var materialIcons = require('material-design-icons-iconfont/dist/material-design-icons.css');
+_define('material-icons', function() {
return materialIcons;
});
// noto font
-var noto = require("jellyfin-noto");
-_define("jellyfin-noto", function () {
+var noto = require('jellyfin-noto');
+_define('jellyfin-noto', function () {
return noto;
});
// page.js
-var page = require("page");
-_define("page", function() {
+var page = require('page');
+_define('page', function() {
return page;
});
-var polyfill = require("@babel/polyfill/dist/polyfill");
-_define("polyfill", function () {
+var polyfill = require('@babel/polyfill/dist/polyfill');
+_define('polyfill', function () {
return polyfill;
});
// domtokenlist-shim
-var classlist = require("classlist.js");
-_define("classlist-polyfill", function () {
+var classlist = require('classlist.js');
+_define('classlist-polyfill', function () {
return classlist;
});
// Date-FNS
-var dateFns = require("date-fns");
-_define("date-fns", function () {
+var dateFns = require('date-fns');
+_define('date-fns', function () {
return dateFns;
});
-var dateFnsLocale = require("date-fns/locale");
-_define("date-fns/locale", function () {
+var dateFnsLocale = require('date-fns/locale');
+_define('date-fns/locale', function () {
return dateFnsLocale;
});
-var fast_text_encoding = require("fast-text-encoding");
-_define("fast-text-encoding", function () {
+var fast_text_encoding = require('fast-text-encoding');
+_define('fast-text-encoding', function () {
return fast_text_encoding;
});
// intersection-observer
-var intersection_observer = require("intersection-observer");
-_define("intersection-observer", function () {
+var intersection_observer = require('intersection-observer');
+_define('intersection-observer', function () {
return intersection_observer;
});
// screenfull
-var screenfull = require("screenfull");
-_define("screenfull", function () {
+var screenfull = require('screenfull');
+_define('screenfull', function () {
return screenfull;
});
// headroom.js
-var headroom = require("headroom.js/dist/headroom");
-_define("headroom", function () {
+var headroom = require('headroom.js/dist/headroom');
+_define('headroom', function () {
return headroom;
});
diff --git a/src/components/accessschedule/accessschedule.js b/src/components/accessschedule/accessschedule.js
index 28b09b893..870231cf0 100644
--- a/src/components/accessschedule/accessschedule.js
+++ b/src/components/accessschedule/accessschedule.js
@@ -1,5 +1,5 @@
-define(["dialogHelper", "datetime", "globalize", "emby-select", "paper-icon-button-light", "formDialogStyle"], function (dialogHelper, datetime, globalize) {
- "use strict";
+define(['dialogHelper', 'datetime', 'globalize', 'emby-select', 'paper-icon-button-light', 'formDialogStyle'], function (dialogHelper, datetime, globalize) {
+ 'use strict';
function getDisplayTime(hours) {
var minutes = 0;
@@ -13,32 +13,32 @@ define(["dialogHelper", "datetime", "globalize", "emby-select", "paper-icon-butt
}
function populateHours(context) {
- var html = "";
+ var html = '';
for (var i = 0; i < 24; i++) {
- html += '' + getDisplayTime(i) + " ";
+ html += '' + getDisplayTime(i) + ' ';
}
- html += '' + getDisplayTime(0) + " ";
- context.querySelector("#selectStart").innerHTML = html;
- context.querySelector("#selectEnd").innerHTML = html;
+ html += '' + getDisplayTime(0) + ' ';
+ context.querySelector('#selectStart').innerHTML = html;
+ context.querySelector('#selectEnd').innerHTML = html;
}
function loadSchedule(context, schedule) {
- context.querySelector("#selectDay").value = schedule.DayOfWeek || "Sunday";
- context.querySelector("#selectStart").value = schedule.StartHour || 0;
- context.querySelector("#selectEnd").value = schedule.EndHour || 0;
+ context.querySelector('#selectDay').value = schedule.DayOfWeek || 'Sunday';
+ context.querySelector('#selectStart').value = schedule.StartHour || 0;
+ context.querySelector('#selectEnd').value = schedule.EndHour || 0;
}
function submitSchedule(context, options) {
var updatedSchedule = {
- DayOfWeek: context.querySelector("#selectDay").value,
- StartHour: context.querySelector("#selectStart").value,
- EndHour: context.querySelector("#selectEnd").value
+ DayOfWeek: context.querySelector('#selectDay').value,
+ StartHour: context.querySelector('#selectStart').value,
+ EndHour: context.querySelector('#selectEnd').value
};
if (parseFloat(updatedSchedule.StartHour) >= parseFloat(updatedSchedule.EndHour)) {
- return void alert(globalize.translate("ErrorMessageStartHourGreaterThanEnd"));
+ return void alert(globalize.translate('ErrorMessageStartHourGreaterThanEnd'));
}
context.submitted = true;
@@ -50,32 +50,32 @@ define(["dialogHelper", "datetime", "globalize", "emby-select", "paper-icon-butt
show: function (options) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
- xhr.open("GET", "components/accessschedule/accessschedule.template.html", true);
+ xhr.open('GET', 'components/accessschedule/accessschedule.template.html', true);
xhr.onload = function (e) {
var template = this.response;
var dlg = dialogHelper.createDialog({
removeOnClose: true,
- size: "small"
+ size: 'small'
});
- dlg.classList.add("formDialog");
- var html = "";
+ dlg.classList.add('formDialog');
+ var html = '';
html += globalize.translateDocument(template);
dlg.innerHTML = html;
populateHours(dlg);
loadSchedule(dlg, options.schedule);
dialogHelper.open(dlg);
- dlg.addEventListener("close", function () {
+ dlg.addEventListener('close', function () {
if (dlg.submitted) {
resolve(options.schedule);
} else {
reject();
}
});
- dlg.querySelector(".btnCancel").addEventListener("click", function (e) {
+ dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
dialogHelper.close(dlg);
});
- dlg.querySelector("form").addEventListener("submit", function (e) {
+ dlg.querySelector('form').addEventListener('submit', function (e) {
submitSchedule(dlg, options);
e.preventDefault();
return false;
diff --git a/src/components/actionsheet/actionsheet.js b/src/components/actionsheet/actionsheet.js
index 0828c4bba..e08fbf4a2 100644
--- a/src/components/actionsheet/actionsheet.js
+++ b/src/components/actionsheet/actionsheet.js
@@ -136,7 +136,7 @@ define(['dialogHelper', 'layoutManager', 'globalize', 'browser', 'dom', 'emby-bu
// Admittedly a hack but right now the scrollbar is being factored into the width which is causing truncation
if (options.items.length > 20) {
var minWidth = dom.getWindowSize().innerWidth >= 300 ? 240 : 200;
- style += "min-width:" + minWidth + "px;";
+ style += 'min-width:' + minWidth + 'px;';
}
var i;
diff --git a/src/components/activitylog.js b/src/components/activitylog.js
index 796f995bc..a7b3f48bc 100644
--- a/src/components/activitylog.js
+++ b/src/components/activitylog.js
@@ -1,20 +1,20 @@
-define(["events", "globalize", "dom", "date-fns", "dfnshelper", "userSettings", "serverNotifications", "connectionManager", "emby-button", "listViewStyle"], function (events, globalize, dom, datefns, dfnshelper, userSettings, serverNotifications, connectionManager) {
- "use strict";
+define(['events', 'globalize', 'dom', 'date-fns', 'dfnshelper', 'userSettings', 'serverNotifications', 'connectionManager', 'emby-button', 'listViewStyle'], function (events, globalize, dom, datefns, dfnshelper, userSettings, serverNotifications, connectionManager) {
+ 'use strict';
function getEntryHtml(entry, apiClient) {
- var html = "";
+ var html = '';
html += '
';
- var color = "#00a4dc";
- var icon = "notifications";
+ var color = '#00a4dc';
+ var icon = 'notifications';
- if ("Error" == entry.Severity || "Fatal" == entry.Severity || "Warn" == entry.Severity) {
- color = "#cc0000";
- icon = "notification_important";
+ if ('Error' == entry.Severity || 'Fatal' == entry.Severity || 'Warn' == entry.Severity) {
+ color = '#cc0000';
+ icon = 'notification_important';
}
if (entry.UserId && entry.UserPrimaryImageTag) {
html += '
";
} else {
@@ -24,36 +24,36 @@ define(["events", "globalize", "dom", "date-fns", "dfnshelper", "userSettings",
html += '
';
html += '
';
html += entry.Name;
- html += "
";
+ html += '
';
html += '
';
html += datefns.formatRelative(Date.parse(entry.Date), Date.parse(new Date()), { locale: dfnshelper.getLocale() });
- html += "
";
+ html += '
';
html += '';
- html += entry.ShortOverview || "";
- html += "
";
- html += "";
+ html += entry.ShortOverview || '';
+ html += '';
+ html += '';
if (entry.Overview) {
- html += ' ';
+ html += ' ';
}
- return html += "";
+ return html += '';
}
function renderList(elem, apiClient, result, startIndex, limit) {
elem.innerHTML = result.Items.map(function (i) {
return getEntryHtml(i, apiClient);
- }).join("");
+ }).join('');
}
function reloadData(instance, elem, apiClient, startIndex, limit) {
if (null == startIndex) {
- startIndex = parseInt(elem.getAttribute("data-activitystartindex") || "0");
+ startIndex = parseInt(elem.getAttribute('data-activitystartindex') || '0');
}
- limit = limit || parseInt(elem.getAttribute("data-activitylimit") || "7");
+ limit = limit || parseInt(elem.getAttribute('data-activitylimit') || '7');
var minDate = new Date();
- var hasUserId = "false" !== elem.getAttribute("data-useractivity");
+ var hasUserId = 'false' !== elem.getAttribute('data-useractivity');
if (hasUserId) {
minDate.setTime(minDate.getTime() - 24 * 60 * 60 * 1000); // one day back
@@ -61,22 +61,22 @@ define(["events", "globalize", "dom", "date-fns", "dfnshelper", "userSettings",
minDate.setTime(minDate.getTime() - 7 * 24 * 60 * 60 * 1000); // one week back
}
- ApiClient.getJSON(ApiClient.getUrl("System/ActivityLog/Entries", {
+ ApiClient.getJSON(ApiClient.getUrl('System/ActivityLog/Entries', {
startIndex: startIndex,
limit: limit,
minDate: minDate.toISOString(),
hasUserId: hasUserId
})).then(function (result) {
- elem.setAttribute("data-activitystartindex", startIndex);
- elem.setAttribute("data-activitylimit", limit);
+ elem.setAttribute('data-activitystartindex', startIndex);
+ elem.setAttribute('data-activitylimit', limit);
if (!startIndex) {
- var activityContainer = dom.parentWithClass(elem, "activityContainer");
+ var activityContainer = dom.parentWithClass(elem, 'activityContainer');
if (activityContainer) {
if (result.Items.length) {
- activityContainer.classList.remove("hide");
+ activityContainer.classList.remove('hide');
} else {
- activityContainer.classList.add("hide");
+ activityContainer.classList.add('hide');
}
}
}
@@ -95,10 +95,10 @@ define(["events", "globalize", "dom", "date-fns", "dfnshelper", "userSettings",
}
function onListClick(e) {
- var btnEntryInfo = dom.parentWithClass(e.target, "btnEntryInfo");
+ var btnEntryInfo = dom.parentWithClass(e.target, 'btnEntryInfo');
if (btnEntryInfo) {
- var id = btnEntryInfo.getAttribute("data-id");
+ var id = btnEntryInfo.getAttribute('data-id');
var items = this.items;
if (items) {
@@ -114,7 +114,7 @@ define(["events", "globalize", "dom", "date-fns", "dfnshelper", "userSettings",
}
function showItemOverview(item) {
- require(["alert"], function (alert) {
+ require(['alert'], function (alert) {
alert({
text: item.Overview
});
@@ -124,28 +124,28 @@ define(["events", "globalize", "dom", "date-fns", "dfnshelper", "userSettings",
function ActivityLog(options) {
this.options = options;
var element = options.element;
- element.classList.add("activityLogListWidget");
- element.addEventListener("click", onListClick.bind(this));
+ element.classList.add('activityLogListWidget');
+ element.addEventListener('click', onListClick.bind(this));
var apiClient = connectionManager.getApiClient(options.serverId);
reloadData(this, element, apiClient);
var onUpdate = onActivityLogUpdate.bind(this);
this.updateFn = onUpdate;
- events.on(serverNotifications, "ActivityLogEntry", onUpdate);
- apiClient.sendMessage("ActivityLogEntryStart", "0,1500");
+ events.on(serverNotifications, 'ActivityLogEntry', onUpdate);
+ apiClient.sendMessage('ActivityLogEntryStart', '0,1500');
}
ActivityLog.prototype.destroy = function () {
var options = this.options;
if (options) {
- options.element.classList.remove("activityLogListWidget");
- connectionManager.getApiClient(options.serverId).sendMessage("ActivityLogEntryStop", "0,1500");
+ options.element.classList.remove('activityLogListWidget');
+ connectionManager.getApiClient(options.serverId).sendMessage('ActivityLogEntryStop', '0,1500');
}
var onUpdate = this.updateFn;
if (onUpdate) {
- events.off(serverNotifications, "ActivityLogEntry", onUpdate);
+ events.off(serverNotifications, 'ActivityLogEntry', onUpdate);
}
this.items = null;
diff --git a/src/components/alphapicker/alphapicker.js b/src/components/alphapicker/alphapicker.js
index 61ca23b8b..79f74879e 100644
--- a/src/components/alphapicker/alphapicker.js
+++ b/src/components/alphapicker/alphapicker.js
@@ -132,7 +132,7 @@ define(['focusManager', 'layoutManager', 'dom', 'css!./style.css', 'paper-icon-b
if (alphaPickerButton) {
var value = alphaPickerButton.getAttribute('data-value');
- element.dispatchEvent(new CustomEvent("alphavalueclicked", {
+ element.dispatchEvent(new CustomEvent('alphavalueclicked', {
cancelable: false,
detail: {
value: value
@@ -262,7 +262,7 @@ define(['focusManager', 'layoutManager', 'dom', 'css!./style.css', 'paper-icon-b
}
if (applyValue) {
- element.dispatchEvent(new CustomEvent("alphavaluechanged", {
+ element.dispatchEvent(new CustomEvent('alphavaluechanged', {
cancelable: false,
detail: {
value: value
diff --git a/src/components/appRouter.js b/src/components/appRouter.js
index 17b51b376..2e11ef88d 100644
--- a/src/components/appRouter.js
+++ b/src/components/appRouter.js
@@ -16,7 +16,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
show('/settings/settings.html');
},
showNowPlaying: function () {
- show("/nowplaying.html");
+ show('/nowplaying.html');
}
};
@@ -201,7 +201,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
var apiClient = this;
if (data.status === 403) {
- if (data.errorCode === "ParentalControl") {
+ if (data.errorCode === 'ParentalControl') {
var isCurrentAllowed = currentRouteInfo ? (currentRouteInfo.route.anonymous || currentRouteInfo.route.startup) : true;
@@ -541,15 +541,15 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
}
function param(name, url) {
- name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
- var regexS = "[\\?&]" + name + "=([^]*)";
- var regex = new RegExp(regexS, "i");
+ name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
+ var regexS = '[\\?&]' + name + '=([^]*)';
+ var regex = new RegExp(regexS, 'i');
var results = regex.exec(url || getWindowLocationSearch());
if (results == null) {
- return "";
+ return '';
} else {
- return decodeURIComponent(results[1].replace(/\+/g, " "));
+ return decodeURIComponent(results[1].replace(/\+/g, ' '));
}
}
diff --git a/src/components/apphost.js b/src/components/apphost.js
index e5f48ac42..75e8ba17f 100644
--- a/src/components/apphost.js
+++ b/src/components/apphost.js
@@ -1,17 +1,17 @@
-define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "globalize"], function (appSettings, browser, events, htmlMediaHelper, webSettings, globalize) {
- "use strict";
+define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'globalize'], function (appSettings, browser, events, htmlMediaHelper, webSettings, globalize) {
+ 'use strict';
function getBaseProfileOptions(item) {
var disableHlsVideoAudioCodecs = [];
if (item && htmlMediaHelper.enableHlsJsPlayer(item.RunTimeTicks, item.MediaType)) {
if (browser.edge || browser.msie) {
- disableHlsVideoAudioCodecs.push("mp3");
+ disableHlsVideoAudioCodecs.push('mp3');
}
- disableHlsVideoAudioCodecs.push("ac3");
- disableHlsVideoAudioCodecs.push("eac3");
- disableHlsVideoAudioCodecs.push("opus");
+ disableHlsVideoAudioCodecs.push('ac3');
+ disableHlsVideoAudioCodecs.push('eac3');
+ disableHlsVideoAudioCodecs.push('opus');
}
return {
@@ -22,7 +22,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
function getDeviceProfileForWindowsUwp(item) {
return new Promise(function (resolve, reject) {
- require(["browserdeviceprofile", "environments/windows-uwp/mediacaps"], function (profileBuilder, uwpMediaCaps) {
+ require(['browserdeviceprofile', 'environments/windows-uwp/mediacaps'], function (profileBuilder, uwpMediaCaps) {
var profileOptions = getBaseProfileOptions(item);
profileOptions.supportsDts = uwpMediaCaps.supportsDTS();
profileOptions.supportsTrueHd = uwpMediaCaps.supportsDolby();
@@ -40,14 +40,14 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
}
return new Promise(function (resolve) {
- require(["browserdeviceprofile"], function (profileBuilder) {
+ require(['browserdeviceprofile'], function (profileBuilder) {
var profile;
if (window.NativeShell) {
profile = window.NativeShell.AppHost.getDeviceProfile(profileBuilder);
} else {
var builderOpts = getBaseProfileOptions(item);
- builderOpts.enableSsaRender = (item && !options.isRetry && "allcomplexformats" !== appSettings.get("subtitleburnin"));
+ builderOpts.enableSsaRender = (item && !options.isRetry && 'allcomplexformats' !== appSettings.get('subtitleburnin'));
profile = profileBuilder(builderOpts);
}
@@ -57,12 +57,12 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
}
function escapeRegExp(str) {
- return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
+ return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, '\\$1');
}
function replaceAll(originalString, strReplace, strWith) {
var strReplace2 = escapeRegExp(strReplace);
- var reg = new RegExp(strReplace2, "ig");
+ var reg = new RegExp(strReplace2, 'ig');
return originalString.replace(reg, strWith);
}
@@ -70,7 +70,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
var keys = [];
if (keys.push(navigator.userAgent), keys.push(new Date().getTime()), self.btoa) {
- var result = replaceAll(btoa(keys.join("|")), "=", "1");
+ var result = replaceAll(btoa(keys.join('|')), '=', '1');
return Promise.resolve(result);
}
@@ -78,7 +78,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
}
function getDeviceId() {
- var key = "_deviceId2";
+ var key = '_deviceId2';
var deviceId = appSettings.get(key);
if (deviceId) {
@@ -93,16 +93,16 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
function getDeviceName() {
var deviceName;
- deviceName = browser.tizen ? "Samsung Smart TV" : browser.web0s ? "LG Smart TV" : browser.operaTv ? "Opera TV" : browser.xboxOne ? "Xbox One" : browser.ps4 ? "Sony PS4" : browser.chrome ? "Chrome" : browser.edge ? "Edge" : browser.firefox ? "Firefox" : browser.msie ? "Internet Explorer" : browser.opera ? "Opera" : browser.safari ? "Safari" : "Web Browser";
+ deviceName = browser.tizen ? 'Samsung Smart TV' : browser.web0s ? 'LG Smart TV' : browser.operaTv ? 'Opera TV' : browser.xboxOne ? 'Xbox One' : browser.ps4 ? 'Sony PS4' : browser.chrome ? 'Chrome' : browser.edge ? 'Edge' : browser.firefox ? 'Firefox' : browser.msie ? 'Internet Explorer' : browser.opera ? 'Opera' : browser.safari ? 'Safari' : 'Web Browser';
if (browser.ipad) {
- deviceName += " iPad";
+ deviceName += ' iPad';
} else {
if (browser.iphone) {
- deviceName += " iPhone";
+ deviceName += ' iPhone';
} else {
if (browser.android) {
- deviceName += " Android";
+ deviceName += ' Android';
}
}
}
@@ -124,12 +124,12 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
}
var element = document.documentElement;
- return (element.requestFullscreen || element.mozRequestFullScreen || element.webkitRequestFullscreen || element.msRequestFullscreen) || document.createElement("video").webkitEnterFullscreen;
+ return (element.requestFullscreen || element.mozRequestFullScreen || element.webkitRequestFullscreen || element.msRequestFullscreen) || document.createElement('video').webkitEnterFullscreen;
}
function getSyncProfile() {
return new Promise(function (resolve) {
- require(["browserdeviceprofile", "appSettings"], function (profileBuilder, appSettings) {
+ require(['browserdeviceprofile', 'appSettings'], function (profileBuilder, appSettings) {
var profile;
if (window.NativeShell) {
@@ -145,7 +145,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
}
function getDefaultLayout() {
- return "desktop";
+ return 'desktop';
}
function supportsHtmlMediaAutoplay() {
@@ -162,20 +162,20 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
function supportsCue() {
try {
- var video = document.createElement("video");
- var style = document.createElement("style");
+ var video = document.createElement('video');
+ var style = document.createElement('style');
- style.textContent = "video::cue {background: inherit}";
+ style.textContent = 'video::cue {background: inherit}';
document.body.appendChild(style);
document.body.appendChild(video);
- var cue = window.getComputedStyle(video, "::cue").background;
+ var cue = window.getComputedStyle(video, '::cue').background;
document.body.removeChild(style);
document.body.removeChild(video);
return !!cue.length;
} catch (err) {
- console.error("error detecting cue support: " + err);
+ console.error('error detecting cue support: ' + err);
return false;
}
}
@@ -183,15 +183,15 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
function onAppVisible() {
if (isHidden) {
isHidden = false;
- console.debug("triggering app resume event");
- events.trigger(appHost, "resume");
+ console.debug('triggering app resume event');
+ events.trigger(appHost, 'resume');
}
}
function onAppHidden() {
if (!isHidden) {
isHidden = true;
- console.debug("app is hidden");
+ console.debug('app is hidden');
}
}
@@ -199,88 +199,88 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
var features = [];
if (navigator.share) {
- features.push("sharing");
+ features.push('sharing');
}
if (!browser.edgeUwp && !browser.tv && !browser.xboxOne && !browser.ps4) {
- features.push("filedownload");
+ features.push('filedownload');
}
if (browser.operaTv || browser.tizen || browser.orsay || browser.web0s) {
- features.push("exit");
+ features.push('exit');
} else {
- features.push("exitmenu");
- features.push("plugins");
+ features.push('exitmenu');
+ features.push('plugins');
}
if (!browser.operaTv && !browser.tizen && !browser.orsay && !browser.web0s && !browser.ps4) {
- features.push("externallinks");
- features.push("externalpremium");
+ features.push('externallinks');
+ features.push('externalpremium');
}
if (!browser.operaTv) {
- features.push("externallinkdisplay");
+ features.push('externallinkdisplay');
}
if (supportsVoiceInput()) {
- features.push("voiceinput");
+ features.push('voiceinput');
}
if (supportsHtmlMediaAutoplay()) {
- features.push("htmlaudioautoplay");
- features.push("htmlvideoautoplay");
+ features.push('htmlaudioautoplay');
+ features.push('htmlvideoautoplay');
}
if (browser.edgeUwp) {
- features.push("sync");
+ features.push('sync');
}
if (supportsFullscreen()) {
- features.push("fullscreenchange");
+ features.push('fullscreenchange');
}
if (browser.chrome || browser.edge && !browser.slow) {
if (!browser.noAnimation && !browser.edgeUwp && !browser.xboxOne) {
- features.push("imageanalysis");
+ features.push('imageanalysis');
}
}
if (browser.tv || browser.xboxOne || browser.ps4 || browser.mobile) {
- features.push("physicalvolumecontrol");
+ features.push('physicalvolumecontrol');
}
if (!browser.tv && !browser.xboxOne && !browser.ps4) {
- features.push("remotecontrol");
+ features.push('remotecontrol');
}
if (!browser.operaTv && !browser.tizen && !browser.orsay && !browser.web0s && !browser.edgeUwp) {
- features.push("remotevideo");
+ features.push('remotevideo');
}
- features.push("displaylanguage");
- features.push("otherapppromotions");
- features.push("displaymode");
- features.push("targetblank");
- features.push("screensaver");
+ features.push('displaylanguage');
+ features.push('otherapppromotions');
+ features.push('displaymode');
+ features.push('targetblank');
+ features.push('screensaver');
webSettings.enableMultiServer().then(enabled => {
- if (enabled) features.push("multiserver");
+ if (enabled) features.push('multiserver');
});
if (!browser.orsay && !browser.msie && (browser.firefox || browser.ps4 || browser.edge || supportsCue())) {
- features.push("subtitleappearancesettings");
+ features.push('subtitleappearancesettings');
}
if (!browser.orsay) {
- features.push("subtitleburnsettings");
+ features.push('subtitleburnsettings');
}
if (!browser.tv && !browser.ps4 && !browser.xboxOne) {
- features.push("fileinput");
+ features.push('fileinput');
}
if (browser.chrome) {
- features.push("chromecast");
+ features.push('chromecast');
}
return features;
@@ -301,7 +301,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
window.close();
}
} catch (err) {
- console.error("error closing application: " + err);
+ console.error('error closing application: ' + err);
}
}
@@ -315,15 +315,15 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
return;
}
- require(["actionsheet"], function (actionsheet) {
+ require(['actionsheet'], function (actionsheet) {
exitPromise = actionsheet.show({
- title: globalize.translate("MessageConfirmAppExit"),
+ title: globalize.translate('MessageConfirmAppExit'),
items: [
- {id: "yes", name: globalize.translate("Yes")},
- {id: "no", name: globalize.translate("No")}
+ {id: 'yes', name: globalize.translate('Yes')},
+ {id: 'no', name: globalize.translate('No')}
]
}).then(function (value) {
- if (value === "yes") {
+ if (value === 'yes') {
doExit();
}
}).finally(function () {
@@ -334,15 +334,15 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
var deviceId;
var deviceName;
- var appName = "Jellyfin Web";
- var appVersion = "10.6.0";
+ var appName = 'Jellyfin Web';
+ var appVersion = '10.6.0';
var appHost = {
getWindowState: function () {
- return document.windowState || "Normal";
+ return document.windowState || 'Normal';
},
setWindowState: function (state) {
- alert("setWindowState is not supported and should not be called");
+ alert('setWindowState is not supported and should not be called');
},
exit: function () {
if (!!window.appMode && browser.tizen) {
@@ -359,7 +359,7 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
return -1 !== supportedFeatures.indexOf(command.toLowerCase());
},
preferVisualCards: browser.android || browser.chrome,
- moreIcon: browser.android ? "more_vert" : "more_horiz",
+ moreIcon: browser.android ? 'more_vert' : 'more_horiz',
getSyncProfile: getSyncProfile,
getDefaultLayout: function () {
if (window.NativeShell) {
@@ -395,16 +395,16 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
return {};
},
setThemeColor: function (color) {
- var metaThemeColor = document.querySelector("meta[name=theme-color]");
+ var metaThemeColor = document.querySelector('meta[name=theme-color]');
if (metaThemeColor) {
- metaThemeColor.setAttribute("content", color);
+ metaThemeColor.setAttribute('content', color);
}
},
setUserScalable: function (scalable) {
if (!browser.tv) {
- var att = scalable ? "width=device-width, initial-scale=1, minimum-scale=1, user-scalable=yes" : "width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no";
- document.querySelector("meta[name=viewport]").setAttribute("content", att);
+ var att = scalable ? 'width=device-width, initial-scale=1, minimum-scale=1, user-scalable=yes' : 'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no';
+ document.querySelector('meta[name=viewport]').setAttribute('content', att);
}
}
};
@@ -413,12 +413,12 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
var hidden;
var visibilityChange;
- if (typeof document.hidden !== "undefined") { /* eslint-disable-line compat/compat */
- hidden = "hidden";
- visibilityChange = "visibilitychange";
- } else if (typeof document.webkitHidden !== "undefined") {
- hidden = "webkitHidden";
- visibilityChange = "webkitvisibilitychange";
+ if (typeof document.hidden !== 'undefined') { /* eslint-disable-line compat/compat */
+ hidden = 'hidden';
+ visibilityChange = 'visibilitychange';
+ } else if (typeof document.webkitHidden !== 'undefined') {
+ hidden = 'webkitHidden';
+ visibilityChange = 'webkitvisibilitychange';
}
document.addEventListener(visibilityChange, function () {
@@ -431,8 +431,8 @@ define(["appSettings", "browser", "events", "htmlMediaHelper", "webSettings", "g
}, false);
if (self.addEventListener) {
- self.addEventListener("focus", onAppVisible);
- self.addEventListener("blur", onAppHidden);
+ self.addEventListener('focus', onAppVisible);
+ self.addEventListener('blur', onAppHidden);
}
return appHost;
diff --git a/src/components/autoFocuser.js b/src/components/autoFocuser.js
index 43c341bfd..0a10cabd2 100644
--- a/src/components/autoFocuser.js
+++ b/src/components/autoFocuser.js
@@ -5,8 +5,8 @@
* @module components/autoFocuser
*/
-import focusManager from "focusManager";
-import layoutManager from "layoutManager";
+import focusManager from 'focusManager';
+import layoutManager from 'layoutManager';
/**
* Previously selected element.
@@ -28,11 +28,11 @@ import layoutManager from "layoutManager";
return;
}
- window.addEventListener("focusin", function (e) {
+ window.addEventListener('focusin', function (e) {
activeElement = e.target;
});
- console.debug("AutoFocuser enabled");
+ console.debug('AutoFocuser enabled');
}
/**
@@ -51,21 +51,21 @@ import layoutManager from "layoutManager";
if (activeElement) {
// These elements are recreated
- if (activeElement.classList.contains("btnPreviousPage")) {
- candidates.push(container.querySelector(".btnPreviousPage"));
- candidates.push(container.querySelector(".btnNextPage"));
- } else if (activeElement.classList.contains("btnNextPage")) {
- candidates.push(container.querySelector(".btnNextPage"));
- candidates.push(container.querySelector(".btnPreviousPage"));
- } else if (activeElement.classList.contains("btnSelectView")) {
- candidates.push(container.querySelector(".btnSelectView"));
+ if (activeElement.classList.contains('btnPreviousPage')) {
+ candidates.push(container.querySelector('.btnPreviousPage'));
+ candidates.push(container.querySelector('.btnNextPage'));
+ } else if (activeElement.classList.contains('btnNextPage')) {
+ candidates.push(container.querySelector('.btnNextPage'));
+ candidates.push(container.querySelector('.btnPreviousPage'));
+ } else if (activeElement.classList.contains('btnSelectView')) {
+ candidates.push(container.querySelector('.btnSelectView'));
}
candidates.push(activeElement);
}
- candidates = candidates.concat(Array.from(container.querySelectorAll(".btnResume")));
- candidates = candidates.concat(Array.from(container.querySelectorAll(".btnPlay")));
+ candidates = candidates.concat(Array.from(container.querySelectorAll('.btnResume')));
+ candidates = candidates.concat(Array.from(container.querySelectorAll('.btnPlay')));
let focusedElement;
@@ -81,7 +81,7 @@ import layoutManager from "layoutManager";
if (!focusedElement) {
// FIXME: Multiple itemsContainers
- const itemsContainer = container.querySelector(".itemsContainer");
+ const itemsContainer = container.querySelector('.itemsContainer');
if (itemsContainer) {
focusedElement = focusManager.autoFocus(itemsContainer);
diff --git a/src/components/backdrop/backdrop.js b/src/components/backdrop/backdrop.js
index ec5b41185..c15e35524 100644
--- a/src/components/backdrop/backdrop.js
+++ b/src/components/backdrop/backdrop.js
@@ -1,4 +1,4 @@
-define(['browser', 'connectionManager', 'playbackManager', 'dom', "userSettings", 'css!./backdrop'], function (browser, connectionManager, playbackManager, dom, userSettings) {
+define(['browser', 'connectionManager', 'playbackManager', 'dom', 'userSettings', 'css!./backdrop'], function (browser, connectionManager, playbackManager, dom, userSettings) {
'use strict';
function enableAnimation(elem) {
@@ -180,7 +180,7 @@ define(['browser', 'connectionManager', 'playbackManager', 'dom', "userSettings"
if (item.BackdropImageTags && item.BackdropImageTags.length > 0) {
return item.BackdropImageTags.map(function (imgTag, index) {
return apiClient.getScaledImageUrl(item.BackdropItemId || item.Id, Object.assign(imageOptions, {
- type: "Backdrop",
+ type: 'Backdrop',
tag: imgTag,
maxWidth: dom.getScreenWidth(),
index: index
@@ -191,7 +191,7 @@ define(['browser', 'connectionManager', 'playbackManager', 'dom', "userSettings"
if (item.ParentBackdropItemId && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length) {
return item.ParentBackdropImageTags.map(function (imgTag, index) {
return apiClient.getScaledImageUrl(item.ParentBackdropItemId, Object.assign(imageOptions, {
- type: "Backdrop",
+ type: 'Backdrop',
tag: imgTag,
maxWidth: dom.getScreenWidth(),
index: index
diff --git a/src/components/backdropscreensaver/plugin.js b/src/components/backdropscreensaver/plugin.js
index 55de27a13..dc0a906dd 100644
--- a/src/components/backdropscreensaver/plugin.js
+++ b/src/components/backdropscreensaver/plugin.js
@@ -1,12 +1,12 @@
-define(["connectionManager"], function (connectionManager) {
+define(['connectionManager'], function (connectionManager) {
return function () {
var self = this;
- self.name = "Backdrop ScreenSaver";
- self.type = "screensaver";
- self.id = "backdropscreensaver";
+ self.name = 'Backdrop ScreenSaver';
+ self.type = 'screensaver';
+ self.id = 'backdropscreensaver';
self.supportsAnonymous = false;
var currentSlideshow;
@@ -14,12 +14,12 @@ define(["connectionManager"], function (connectionManager) {
self.show = function () {
var query = {
- ImageTypes: "Backdrop",
- EnableImageTypes: "Backdrop",
- IncludeItemTypes: "Movie,Series,MusicArtist",
- SortBy: "Random",
+ ImageTypes: 'Backdrop',
+ EnableImageTypes: 'Backdrop',
+ IncludeItemTypes: 'Movie,Series,MusicArtist',
+ SortBy: 'Random',
Recursive: true,
- Fields: "Taglines",
+ Fields: 'Taglines',
ImageTypeLimit: 1,
StartIndex: 0,
Limit: 200
@@ -30,7 +30,7 @@ define(["connectionManager"], function (connectionManager) {
if (result.Items.length) {
- require(["slideshow"], function (slideshow) {
+ require(['slideshow'], function (slideshow) {
var newSlideShow = new slideshow({
showTitle: true,
diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js
index faafc6f70..43ca28f01 100644
--- a/src/components/cardbuilder/cardBuilder.js
+++ b/src/components/cardbuilder/cardBuilder.js
@@ -286,7 +286,7 @@ import 'programStyles';
* @param {Object} options - Options for handling the items.
*/
function setCardData(items, options) {
- options.shape = options.shape || "auto";
+ options.shape = options.shape || 'auto';
const primaryImageAspectRatio = imageLoader.getPrimaryImageAspectRatio(items);
@@ -509,7 +509,7 @@ import 'programStyles';
if (options.preferThumb && item.ImageTags && item.ImageTags.Thumb) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: width,
tag: item.ImageTags.Thumb
});
@@ -517,7 +517,7 @@ import 'programStyles';
} else if ((options.preferBanner || shape === 'banner') && item.ImageTags && item.ImageTags.Banner) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Banner",
+ type: 'Banner',
maxWidth: width,
tag: item.ImageTags.Banner
});
@@ -525,7 +525,7 @@ import 'programStyles';
} else if (options.preferDisc && item.ImageTags && item.ImageTags.Disc) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Disc",
+ type: 'Disc',
maxWidth: width,
tag: item.ImageTags.Disc
});
@@ -533,7 +533,7 @@ import 'programStyles';
} else if (options.preferLogo && item.ImageTags && item.ImageTags.Logo) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Logo",
+ type: 'Logo',
maxWidth: width,
tag: item.ImageTags.Logo
});
@@ -541,7 +541,7 @@ import 'programStyles';
} else if (options.preferLogo && item.ParentLogoImageTag && item.ParentLogoItemId) {
imgUrl = apiClient.getScaledImageUrl(item.ParentLogoItemId, {
- type: "Logo",
+ type: 'Logo',
maxWidth: width,
tag: item.ParentLogoImageTag
});
@@ -549,7 +549,7 @@ import 'programStyles';
} else if (options.preferThumb && item.SeriesThumbImageTag && options.inheritThumb !== false) {
imgUrl = apiClient.getScaledImageUrl(item.SeriesId, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: width,
tag: item.SeriesThumbImageTag
});
@@ -557,7 +557,7 @@ import 'programStyles';
} else if (options.preferThumb && item.ParentThumbItemId && options.inheritThumb !== false && item.MediaType !== 'Photo') {
imgUrl = apiClient.getScaledImageUrl(item.ParentThumbItemId, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: width,
tag: item.ParentThumbImageTag
});
@@ -565,7 +565,7 @@ import 'programStyles';
} else if (options.preferThumb && item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Backdrop",
+ type: 'Backdrop',
maxWidth: width,
tag: item.BackdropImageTags[0]
});
@@ -575,7 +575,7 @@ import 'programStyles';
} else if (options.preferThumb && item.ParentBackdropImageTags && item.ParentBackdropImageTags.length && options.inheritThumb !== false && item.Type === 'Episode') {
imgUrl = apiClient.getScaledImageUrl(item.ParentBackdropItemId, {
- type: "Backdrop",
+ type: 'Backdrop',
maxWidth: width,
tag: item.ParentBackdropImageTags[0]
});
@@ -585,7 +585,7 @@ import 'programStyles';
height = width && primaryImageAspectRatio ? Math.round(width / primaryImageAspectRatio) : null;
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Primary",
+ type: 'Primary',
maxHeight: height,
maxWidth: width,
tag: item.ImageTags.Primary
@@ -607,7 +607,7 @@ import 'programStyles';
height = width && primaryImageAspectRatio ? Math.round(width / primaryImageAspectRatio) : null;
imgUrl = apiClient.getScaledImageUrl(item.PrimaryImageItemId || item.Id || item.ItemId, {
- type: "Primary",
+ type: 'Primary',
maxHeight: height,
maxWidth: width,
tag: item.PrimaryImageTag
@@ -626,14 +626,14 @@ import 'programStyles';
} else if (item.ParentPrimaryImageTag) {
imgUrl = apiClient.getScaledImageUrl(item.ParentPrimaryImageItemId, {
- type: "Primary",
+ type: 'Primary',
maxWidth: width,
tag: item.ParentPrimaryImageTag
});
} else if (item.SeriesPrimaryImageTag) {
imgUrl = apiClient.getScaledImageUrl(item.SeriesId, {
- type: "Primary",
+ type: 'Primary',
maxWidth: width,
tag: item.SeriesPrimaryImageTag
});
@@ -642,7 +642,7 @@ import 'programStyles';
height = width && primaryImageAspectRatio ? Math.round(width / primaryImageAspectRatio) : null;
imgUrl = apiClient.getScaledImageUrl(item.AlbumId, {
- type: "Primary",
+ type: 'Primary',
maxHeight: height,
maxWidth: width,
tag: item.AlbumPrimaryImageTag
@@ -657,7 +657,7 @@ import 'programStyles';
} else if (item.Type === 'Season' && item.ImageTags && item.ImageTags.Thumb) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: width,
tag: item.ImageTags.Thumb
});
@@ -665,7 +665,7 @@ import 'programStyles';
} else if (item.BackdropImageTags && item.BackdropImageTags.length) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Backdrop",
+ type: 'Backdrop',
maxWidth: width,
tag: item.BackdropImageTags[0]
});
@@ -673,7 +673,7 @@ import 'programStyles';
} else if (item.ImageTags && item.ImageTags.Thumb) {
imgUrl = apiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: width,
tag: item.ImageTags.Thumb
});
@@ -681,7 +681,7 @@ import 'programStyles';
} else if (item.SeriesThumbImageTag && options.inheritThumb !== false) {
imgUrl = apiClient.getScaledImageUrl(item.SeriesId, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: width,
tag: item.SeriesThumbImageTag
});
@@ -689,7 +689,7 @@ import 'programStyles';
} else if (item.ParentThumbItemId && options.inheritThumb !== false) {
imgUrl = apiClient.getScaledImageUrl(item.ParentThumbItemId, {
- type: "Thumb",
+ type: 'Thumb',
maxWidth: width,
tag: item.ParentThumbImageTag
});
@@ -697,7 +697,7 @@ import 'programStyles';
} else if (item.ParentBackdropImageTags && item.ParentBackdropImageTags.length && options.inheritThumb !== false) {
imgUrl = apiClient.getScaledImageUrl(item.ParentBackdropItemId, {
- type: "Backdrop",
+ type: 'Backdrop',
maxWidth: width,
tag: item.ParentBackdropImageTags[0]
});
@@ -778,7 +778,7 @@ import 'programStyles';
if (text) {
html += "";
html += text;
- html += "
";
+ html += '';
valid++;
if (maxLines && valid >= maxLines) {
@@ -835,7 +835,7 @@ import 'programStyles';
airTimeText += ' - ' + datetime.getDisplayTime(date);
}
} catch (e) {
- console.error("error parsing date: " + item.StartDate);
+ console.error('error parsing date: ' + item.StartDate);
}
}
@@ -873,7 +873,7 @@ import 'programStyles';
}
}
- const cssClass = options.centerText ? "cardText cardTextCentered" : "cardText";
+ const cssClass = options.centerText ? 'cardText cardTextCentered' : 'cardText';
const serverId = item.ServerId || options.serverId;
let lines = [];
@@ -907,7 +907,7 @@ import 'programStyles';
}
} else {
- const parentTitle = item.SeriesName || item.Series || item.Album || item.AlbumArtist || "";
+ const parentTitle = item.SeriesName || item.Series || item.Album || item.AlbumArtist || '';
if (parentTitle || showTitle) {
lines.push(parentTitle);
@@ -946,7 +946,7 @@ import 'programStyles';
item.AlbumArtists[0].IsFolder = true;
lines.push(getTextActionButton(item.AlbumArtists[0], null, serverId));
} else {
- lines.push(isUsingLiveTvNaming(item) ? item.Name : (item.SeriesName || item.Series || item.Album || item.AlbumArtist || ""));
+ lines.push(isUsingLiveTvNaming(item) ? item.Name : (item.SeriesName || item.Series || item.Album || item.AlbumArtist || ''));
}
}
@@ -993,7 +993,7 @@ import 'programStyles';
if (options.showYear || options.showSeriesYear) {
if (item.Type === 'Series') {
- if (item.Status === "Continuing") {
+ if (item.Status === 'Continuing') {
lines.push(globalize.translate('SeriesYearToPresent', item.ProductionYear || ''));
@@ -1105,7 +1105,7 @@ import 'programStyles';
html = '";
+ html += '';
}
}
@@ -1191,7 +1191,7 @@ import 'programStyles';
counts.push(childText);
}
- } else if (item.Type === 'MusicGenre' || options.context === "MusicArtist") {
+ } else if (item.Type === 'MusicGenre' || options.context === 'MusicArtist') {
if (item.AlbumCount) {
@@ -1304,7 +1304,7 @@ import 'programStyles';
}
if (options.cardClass) {
- className += " " + options.cardClass;
+ className += ' ' + options.cardClass;
}
if (layoutManager.desktop) {
@@ -1356,13 +1356,13 @@ import 'programStyles';
if (options.showChannelLogo && item.ChannelPrimaryImageTag) {
logoUrl = apiClient.getScaledImageUrl(item.ChannelId, {
- type: "Primary",
+ type: 'Primary',
height: logoHeight,
tag: item.ChannelPrimaryImageTag
});
} else if (options.showLogo && item.ParentLogoImageTag) {
logoUrl = apiClient.getScaledImageUrl(item.ParentLogoItemId, {
- type: "Logo",
+ type: 'Logo',
height: logoHeight,
tag: item.ParentLogoImageTag
});
@@ -1518,7 +1518,7 @@ import 'programStyles';
let actionAttribute;
if (tagName === 'button') {
- className += " itemAction";
+ className += ' itemAction';
actionAttribute = ' data-action="' + action + '"';
} else {
actionAttribute = '';
diff --git a/src/components/cardbuilder/chaptercardbuilder.js b/src/components/cardbuilder/chaptercardbuilder.js
index d0383692c..eae60574b 100644
--- a/src/components/cardbuilder/chaptercardbuilder.js
+++ b/src/components/cardbuilder/chaptercardbuilder.js
@@ -70,7 +70,7 @@ define(['datetime', 'imageLoader', 'connectionManager', 'layoutManager', 'browse
maxWidth: maxWidth * 2,
tag: chapter.ImageTag,
- type: "Chapter",
+ type: 'Chapter',
index: index
});
}
diff --git a/src/components/castSenderApi.js b/src/components/castSenderApi.js
index a1e7bd875..b541c1f87 100644
--- a/src/components/castSenderApi.js
+++ b/src/components/castSenderApi.js
@@ -1,7 +1,7 @@
define([], function() {
'use strict';
- if (window.appMode === "cordova" || window.appMode === "android") {
+ if (window.appMode === 'cordova' || window.appMode === 'android') {
return {
load: function () {
window.chrome = window.chrome || {};
@@ -17,16 +17,16 @@ define([], function() {
}
return new Promise(function (resolve, reject) {
- var fileref = document.createElement("script");
- fileref.setAttribute("type", "text/javascript");
+ var fileref = document.createElement('script');
+ fileref.setAttribute('type', 'text/javascript');
fileref.onload = function () {
ccLoaded = true;
resolve();
};
- fileref.setAttribute("src", "https://www.gstatic.com/cv/js/sender/v1/cast_sender.js");
- document.querySelector("head").appendChild(fileref);
+ fileref.setAttribute('src', 'https://www.gstatic.com/cv/js/sender/v1/cast_sender.js');
+ document.querySelector('head').appendChild(fileref);
});
}
};
diff --git a/src/components/channelmapper/channelmapper.js b/src/components/channelmapper/channelmapper.js
index 71d71a64e..83ae4d09c 100644
--- a/src/components/channelmapper/channelmapper.js
+++ b/src/components/channelmapper/channelmapper.js
@@ -1,33 +1,33 @@
-define(["dom", "dialogHelper", "loading", "connectionManager", "globalize", "actionsheet", "emby-input", "paper-icon-button-light", "emby-button", "listViewStyle", "material-icons", "formDialogStyle"], function (dom, dialogHelper, loading, connectionManager, globalize, actionsheet) {
- "use strict";
+define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'actionsheet', 'emby-input', 'paper-icon-button-light', 'emby-button', 'listViewStyle', 'material-icons', 'formDialogStyle'], function (dom, dialogHelper, loading, connectionManager, globalize, actionsheet) {
+ 'use strict';
return function (options) {
function mapChannel(button, channelId, providerChannelId) {
loading.show();
var providerId = options.providerId;
connectionManager.getApiClient(options.serverId).ajax({
- type: "POST",
- url: ApiClient.getUrl("LiveTv/ChannelMappings"),
+ type: 'POST',
+ url: ApiClient.getUrl('LiveTv/ChannelMappings'),
data: {
providerId: providerId,
tunerChannelId: channelId,
providerChannelId: providerChannelId
},
- dataType: "json"
+ dataType: 'json'
}).then(function (mapping) {
- var listItem = dom.parentWithClass(button, "listItem");
- button.setAttribute("data-providerid", mapping.ProviderChannelId);
- listItem.querySelector(".secondary").innerHTML = getMappingSecondaryName(mapping, currentMappingOptions.ProviderName);
+ var listItem = dom.parentWithClass(button, 'listItem');
+ button.setAttribute('data-providerid', mapping.ProviderChannelId);
+ listItem.querySelector('.secondary').innerHTML = getMappingSecondaryName(mapping, currentMappingOptions.ProviderName);
loading.hide();
});
}
function onChannelsElementClick(e) {
- var btnMap = dom.parentWithClass(e.target, "btnMap");
+ var btnMap = dom.parentWithClass(e.target, 'btnMap');
if (btnMap) {
- var channelId = btnMap.getAttribute("data-id");
- var providerChannelId = btnMap.getAttribute("data-providerid");
+ var channelId = btnMap.getAttribute('data-id');
+ var providerChannelId = btnMap.getAttribute('data-providerid');
var menuItems = currentMappingOptions.ProviderChannels.map(function (m) {
return {
name: m.Name,
@@ -48,56 +48,56 @@ define(["dom", "dialogHelper", "loading", "connectionManager", "globalize", "act
function getChannelMappingOptions(serverId, providerId) {
var apiClient = connectionManager.getApiClient(serverId);
- return apiClient.getJSON(apiClient.getUrl("LiveTv/ChannelMappingOptions", {
+ return apiClient.getJSON(apiClient.getUrl('LiveTv/ChannelMappingOptions', {
providerId: providerId
}));
}
function getMappingSecondaryName(mapping, providerName) {
- return (mapping.ProviderChannelName || "") + " - " + providerName;
+ return (mapping.ProviderChannelName || '') + ' - ' + providerName;
}
function getTunerChannelHtml(channel, providerName) {
- var html = "";
+ var html = '';
html += '';
html += '
';
html += '
';
html += '
';
html += channel.Name;
- html += " ";
+ html += '';
html += '
';
if (channel.ProviderChannelName) {
html += getMappingSecondaryName(channel, providerName);
}
- html += "
";
- html += "
";
+ html += '
';
+ html += '';
html += ' ';
- return html += "";
+ return html += '';
}
function getEditorHtml() {
- var html = "";
+ var html = '';
html += '';
html += '
';
html += '
";
- html += "
";
- return html += "
";
+ html += '';
+ html += '';
+ html += '';
+ return html += '';
}
function initEditor(dlg, options) {
getChannelMappingOptions(options.serverId, options.providerId).then(function (result) {
currentMappingOptions = result;
- var channelsElement = dlg.querySelector(".channels");
+ var channelsElement = dlg.querySelector('.channels');
channelsElement.innerHTML = result.TunerChannels.map(function (channel) {
return getTunerChannelHtml(channel, result.ProviderName);
- }).join("");
- channelsElement.addEventListener("click", onChannelsElementClick);
+ }).join('');
+ channelsElement.addEventListener('click', onChannelsElementClick);
});
}
@@ -108,27 +108,27 @@ define(["dom", "dialogHelper", "loading", "connectionManager", "globalize", "act
var dialogOptions = {
removeOnClose: true
};
- dialogOptions.size = "small";
+ dialogOptions.size = 'small';
var dlg = dialogHelper.createDialog(dialogOptions);
- dlg.classList.add("formDialog");
- dlg.classList.add("ui-body-a");
- dlg.classList.add("background-theme-a");
- var html = "";
- var title = globalize.translate("MapChannels");
+ dlg.classList.add('formDialog');
+ dlg.classList.add('ui-body-a');
+ dlg.classList.add('background-theme-a');
+ var html = '';
+ var title = globalize.translate('MapChannels');
html += '";
+ html += '';
+ html += '';
html += getEditorHtml();
dlg.innerHTML = html;
initEditor(dlg, options);
- dlg.querySelector(".btnCancel").addEventListener("click", function () {
+ dlg.querySelector('.btnCancel').addEventListener('click', function () {
dialogHelper.close(dlg);
});
return new Promise(function (resolve, reject) {
- dlg.addEventListener("close", resolve);
+ dlg.addEventListener('close', resolve);
dialogHelper.open(dlg);
});
};
diff --git a/src/components/chromecast/chromecasthelpers.js b/src/components/chromecast/chromecasthelpers.js
index 9967a4d96..ca2d27c97 100644
--- a/src/components/chromecast/chromecasthelpers.js
+++ b/src/components/chromecast/chromecasthelpers.js
@@ -37,69 +37,69 @@ define(['events'], function (events) {
// 5) It wasn't as smart as it could have been about what should be part of a
// URL and what should be part of human language.
- var protocols = "(?:(?:http|https|rtsp|ftp):\\/\\/)";
+ var protocols = '(?:(?:http|https|rtsp|ftp):\\/\\/)';
var credentials = "(?:(?:[a-z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-f0-9]{2})){1,64}" // username (1-64 normal or url escaped characters)
+ "(?:\\:(?:[a-z0-9\\$\\-\\_\\.\\+\\!\\*\\'\\(\\)\\,\\;\\?\\&\\=]|(?:\\%[a-f0-9]{2})){1,25})?" // followed by optional password (: + 1-25 normal or url escaped characters)
- + "\\@)";
+ + '\\@)';
// IPv6 Regex http://forums.intermapper.com/viewtopic.php?t=452
// by Dartware, LLC is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License
// http://intermapper.com/
- var ipv6 = "("
- + "(([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))"
- + "|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))"
- + "|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))"
- + "|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))"
- + "|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))"
- + "|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))"
- + "|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))"
- + "|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))"
- + ")(%.+)?";
+ var ipv6 = '('
+ + '(([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))'
+ + '|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))'
+ + '|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))'
+ + '|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))'
+ + '|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))'
+ + '|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))'
+ + '|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))'
+ + '|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))'
+ + ')(%.+)?';
- var ipv4 = "(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\."
- + "(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\."
- + "(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\."
- + "(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[0-9])";
+ var ipv4 = '(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\\.'
+ + '(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.'
+ + '(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\\.'
+ + '(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[0-9])';
// This would have been a lot cleaner if JS RegExp supported conditionals...
var linkRegExpString =
// begin match for protocol / username / password / host
- "(?:"
+ '(?:'
// ============================
// If we have a recognized protocol at the beginning of the URL, we're
// more relaxed about what we accept, because we assume the user wants
// this to be a URL, and we're not accidentally matching human language
- + protocols + "?"
+ + protocols + '?'
// optional username:password@
- + credentials + "?"
+ + credentials + '?'
// IP address (both v4 and v6)
- + "(?:"
+ + '(?:'
// IPv6
+ ipv6
// IPv4
- + "|" + ipv4
+ + '|' + ipv4
- + ")"
+ + ')'
// end match for protocol / username / password / host
- + ")"
+ + ')'
// optional port number
- + "(?:\\:\\d{1,5})?"
+ + '(?:\\:\\d{1,5})?'
// plus optional path and query params (no unicode allowed here?)
- + "(?:"
- + "\\/(?:"
+ + '(?:'
+ + '\\/(?:'
// some characters we'll accept because it's unlikely human language
// would use them after a URL unless they were part of the url
- + "(?:[a-z0-9\\/\\@\\&\\#\\~\\*\\_\\-\\+])"
- + "|(?:\\%[a-f0-9]{2})"
+ + '(?:[a-z0-9\\/\\@\\&\\#\\~\\*\\_\\-\\+])'
+ + '|(?:\\%[a-f0-9]{2})'
// some characters are much more likely to be used AFTER a url and
// were not intended to be included in the url itself. Mostly end
// of sentence type things. It's also likely that the URL would
@@ -108,9 +108,9 @@ define(['events'], function (events) {
// they must be followed by another character that we're reasonably
// sure is part of the url
+ "|(?:[\\;\\?\\:\\.\\!\\'\\(\\)\\,\\=]+(?=(?:[a-z0-9\\/\\@\\&\\#\\~\\*\\_\\-\\+])|(?:\\%[a-f0-9]{2})))"
- + ")*"
- + "|\\b|\$"
- + ")";
+ + ')*'
+ + '|\\b|\$'
+ + ')';
// regex = XRegExp(regex,'gi');
var linkRegExp = RegExp(linkRegExpString, 'gi');
@@ -120,7 +120,7 @@ define(['events'], function (events) {
// if url doesn't begin with a known protocol, add http by default
function ensureProtocol(url) {
if (!url.match(protocolRegExp)) {
- url = "http://" + url;
+ url = 'http://' + url;
}
return url;
}
@@ -190,7 +190,7 @@ define(['events'], function (events) {
return apiClient.getPublicSystemInfo().then(function (info) {
var localAddress = info.LocalAddress;
if (!localAddress) {
- console.debug("No valid local address returned, defaulting to external one");
+ console.debug('No valid local address returned, defaulting to external one');
localAddress = serverAddress;
}
addToCache(serverAddress, localAddress);
diff --git a/src/components/chromecast/chromecastplayer.js b/src/components/chromecast/chromecastplayer.js
index 71058cf01..52fa4f6bc 100644
--- a/src/components/chromecast/chromecastplayer.js
+++ b/src/components/chromecast/chromecastplayer.js
@@ -54,7 +54,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
// production version registered with google
// replace this value if you want to test changes on another instance
- var applicationID = "F007D354";
+ var applicationID = 'F007D354';
var messageNamespace = 'urn:x-cast:com.connectsdk';
@@ -114,14 +114,14 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
*/
CastPlayer.prototype.onInitSuccess = function () {
this.isInitialized = true;
- console.debug("chromecast init success");
+ console.debug('chromecast init success');
};
/**
* Generic error callback function
*/
CastPlayer.prototype.onError = function () {
- console.debug("chromecast error");
+ console.debug('chromecast error');
};
/**
@@ -177,10 +177,10 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
*/
CastPlayer.prototype.receiverListener = function (e) {
if (e === 'available') {
- console.debug("chromecast receiver found");
+ console.debug('chromecast receiver found');
this.hasReceivers = true;
} else {
- console.debug("chromecast receiver list empty");
+ console.debug('chromecast receiver list empty');
this.hasReceivers = false;
}
};
@@ -195,8 +195,8 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
this.session = null;
this.deviceState = DEVICE_STATE.IDLE;
this.castPlayerState = PLAYER_STATE.IDLE;
- document.removeEventListener("volumeupbutton", onVolumeUpKeyDown, false);
- document.removeEventListener("volumedownbutton", onVolumeDownKeyDown, false);
+ document.removeEventListener('volumeupbutton', onVolumeUpKeyDown, false);
+ document.removeEventListener('volumedownbutton', onVolumeDownKeyDown, false);
console.debug('sessionUpdateListener: setting currentMediaSession to null');
this.currentMediaSession = null;
@@ -211,7 +211,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
* session request in opt_sessionRequest.
*/
CastPlayer.prototype.launchApp = function () {
- console.debug("chromecast launching app...");
+ console.debug('chromecast launching app...');
chrome.cast.requestSession(this.onRequestSessionSuccess.bind(this), this.onLaunchError.bind(this));
};
@@ -220,7 +220,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
* @param {Object} e A chrome.cast.Session object
*/
CastPlayer.prototype.onRequestSessionSuccess = function (e) {
- console.debug("chromecast session success: " + e.sessionId);
+ console.debug('chromecast session success: ' + e.sessionId);
this.onSessionConnected(e);
};
@@ -232,8 +232,8 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
this.session.addMediaListener(this.sessionMediaListener.bind(this));
this.session.addUpdateListener(this.sessionUpdateListener.bind(this));
- document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);
- document.addEventListener("volumedownbutton", onVolumeDownKeyDown, false);
+ document.addEventListener('volumeupbutton', onVolumeUpKeyDown, false);
+ document.addEventListener('volumedownbutton', onVolumeDownKeyDown, false);
events.trigger(this, 'connect');
this.sendMessage({
@@ -262,7 +262,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
* Callback function for launch error
*/
CastPlayer.prototype.onLaunchError = function () {
- console.debug("chromecast launch error");
+ console.debug('chromecast launch error');
this.deviceState = DEVICE_STATE.ERROR;
sendConnectionResult(false);
};
@@ -284,8 +284,8 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
this.deviceState = DEVICE_STATE.IDLE;
this.castPlayerState = PLAYER_STATE.IDLE;
- document.removeEventListener("volumeupbutton", onVolumeUpKeyDown, false);
- document.removeEventListener("volumedownbutton", onVolumeDownKeyDown, false);
+ document.removeEventListener('volumeupbutton', onVolumeUpKeyDown, false);
+ document.removeEventListener('volumedownbutton', onVolumeDownKeyDown, false);
this.currentMediaSession = null;
};
@@ -296,7 +296,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
*/
CastPlayer.prototype.loadMedia = function (options, command) {
if (!this.session) {
- console.debug("no session");
+ console.debug('no session');
return Promise.reject();
}
@@ -386,7 +386,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
*/
CastPlayer.prototype.onMediaDiscovered = function (how, mediaSession) {
- console.debug("chromecast new media session ID:" + mediaSession.mediaSessionId + ' (' + how + ')');
+ console.debug('chromecast new media session ID:' + mediaSession.mediaSessionId + ' (' + how + ')');
this.currentMediaSession = mediaSession;
if (how === 'loadMedia') {
@@ -405,7 +405,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
* @param {!Boolean} e true/false
*/
CastPlayer.prototype.onMediaStatusUpdate = function (e) {
- console.debug("chromecast updating media: " + e);
+ console.debug('chromecast updating media: ' + e);
if (e === false) {
this.castPlayerState = PLAYER_STATE.IDLE;
}
@@ -482,7 +482,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
} else {
query.Limit = query.Limit || 100;
- query.ExcludeLocationTypes = "Virtual";
+ query.ExcludeLocationTypes = 'Virtual';
query.EnableTotalRecordCount = false;
return apiClient.getItems(userId, query);
@@ -506,13 +506,13 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
instance._castPlayer = new CastPlayer();
// To allow the native android app to override
- document.dispatchEvent(new CustomEvent("chromecastloaded", {
+ document.dispatchEvent(new CustomEvent('chromecastloaded', {
detail: {
player: instance
}
}));
- events.on(instance._castPlayer, "connect", function (e) {
+ events.on(instance._castPlayer, 'connect', function (e) {
if (currentResolve) {
sendConnectionResult(true);
@@ -525,22 +525,22 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
instance.lastPlayerData = null;
});
- events.on(instance._castPlayer, "playbackstart", function (e, data) {
+ events.on(instance._castPlayer, 'playbackstart', function (e, data) {
console.debug('cc: playbackstart');
instance._castPlayer.initializeCastPlayer();
var state = instance.getPlayerStateInternal(data);
- events.trigger(instance, "playbackstart", [state]);
+ events.trigger(instance, 'playbackstart', [state]);
});
- events.on(instance._castPlayer, "playbackstop", function (e, data) {
+ events.on(instance._castPlayer, 'playbackstop', function (e, data) {
console.debug('cc: playbackstop');
var state = instance.getPlayerStateInternal(data);
- events.trigger(instance, "playbackstop", [state]);
+ events.trigger(instance, 'playbackstop', [state]);
var state = instance.lastPlayerData.PlayState || {};
var volume = state.VolumeLevel || 0.5;
@@ -553,12 +553,12 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
instance.lastPlayerData.PlayState.IsMuted = mute;
});
- events.on(instance._castPlayer, "playbackprogress", function (e, data) {
+ events.on(instance._castPlayer, 'playbackprogress', function (e, data) {
console.debug('cc: positionchange');
var state = instance.getPlayerStateInternal(data);
- events.trigger(instance, "timeupdate", [state]);
+ events.trigger(instance, 'timeupdate', [state]);
});
bindEventForRelay(instance, 'timeupdate');
@@ -567,12 +567,12 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
bindEventForRelay(instance, 'volumechange');
bindEventForRelay(instance, 'repeatmodechange');
- events.on(instance._castPlayer, "playstatechange", function (e, data) {
+ events.on(instance._castPlayer, 'playstatechange', function (e, data) {
console.debug('cc: playstatechange');
var state = instance.getPlayerStateInternal(data);
- events.trigger(instance, "pause", [state]);
+ events.trigger(instance, 'pause', [state]);
});
}
@@ -630,24 +630,24 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
name: PlayerName,
id: PlayerName,
playerName: PlayerName,
- playableMediaTypes: ["Audio", "Video"],
+ playableMediaTypes: ['Audio', 'Video'],
isLocalPlayer: false,
appName: PlayerName,
deviceName: appName,
supportedCommands: [
- "VolumeUp",
- "VolumeDown",
- "Mute",
- "Unmute",
- "ToggleMute",
- "SetVolume",
- "SetAudioStreamIndex",
- "SetSubtitleStreamIndex",
- "DisplayContent",
- "SetRepeatMode",
- "EndSession",
- "PlayMediaSource",
- "PlayTrailers"
+ 'VolumeUp',
+ 'VolumeDown',
+ 'Mute',
+ 'Unmute',
+ 'ToggleMute',
+ 'SetVolume',
+ 'SetAudioStreamIndex',
+ 'SetSubtitleStreamIndex',
+ 'DisplayContent',
+ 'SetRepeatMode',
+ 'EndSession',
+ 'PlayMediaSource',
+ 'PlayTrailers'
]
};
};
@@ -667,7 +667,7 @@ define(['appSettings', 'userSettings', 'playbackManager', 'connectionManager', '
console.debug(JSON.stringify(data));
if (triggerStateChange) {
- events.trigger(this, "statechange", [data]);
+ events.trigger(this, 'statechange', [data]);
}
return data;
diff --git a/src/components/collectioneditor/collectioneditor.js b/src/components/collectioneditor/collectioneditor.js
index e9aeac200..46b064030 100644
--- a/src/components/collectioneditor/collectioneditor.js
+++ b/src/components/collectioneditor/collectioneditor.js
@@ -24,7 +24,7 @@ define(['dom', 'dialogHelper', 'loading', 'apphost', 'layoutManager', 'connectio
function createCollection(apiClient, dlg) {
- var url = apiClient.getUrl("Collections", {
+ var url = apiClient.getUrl('Collections', {
Name: dlg.querySelector('#txtNewCollectionName').value,
IsLocked: !dlg.querySelector('#chkEnableInternetMetadata').checked,
@@ -32,9 +32,9 @@ define(['dom', 'dialogHelper', 'loading', 'apphost', 'layoutManager', 'connectio
});
apiClient.ajax({
- type: "POST",
+ type: 'POST',
url: url,
- dataType: "json"
+ dataType: 'json'
}).then(function (result) {
@@ -56,13 +56,13 @@ define(['dom', 'dialogHelper', 'loading', 'apphost', 'layoutManager', 'connectio
function addToCollection(apiClient, dlg, id) {
- var url = apiClient.getUrl("Collections/" + id + "/Items", {
+ var url = apiClient.getUrl('Collections/' + id + '/Items', {
Ids: dlg.querySelector('.fldSelectedItemIds').value || ''
});
apiClient.ajax({
- type: "POST",
+ type: 'POST',
url: url
}).then(function () {
@@ -93,8 +93,8 @@ define(['dom', 'dialogHelper', 'loading', 'apphost', 'layoutManager', 'connectio
var options = {
Recursive: true,
- IncludeItemTypes: "BoxSet",
- SortBy: "SortName",
+ IncludeItemTypes: 'BoxSet',
+ SortBy: 'SortName',
EnableTotalRecordCount: false
};
diff --git a/src/components/confirm/confirm.js b/src/components/confirm/confirm.js
index fa9a15667..517d6fa9b 100644
--- a/src/components/confirm/confirm.js
+++ b/src/components/confirm/confirm.js
@@ -1,4 +1,4 @@
-define(["browser", "dialog", "globalize"], function(browser, dialog, globalize) {
+define(['browser', 'dialog', 'globalize'], function(browser, dialog, globalize) {
'use strict';
function replaceAll(str, find, replace) {
diff --git a/src/components/dialogHelper/dialogHelper.js b/src/components/dialogHelper/dialogHelper.js
index e3410776a..8b08cde67 100644
--- a/src/components/dialogHelper/dialogHelper.js
+++ b/src/components/dialogHelper/dialogHelper.js
@@ -141,7 +141,7 @@ define(['appRouter', 'focusManager', 'browser', 'layoutManager', 'inputManager',
animateDialogOpen(dlg);
if (isHistoryEnabled(dlg)) {
- appRouter.pushState({ dialogId: hash }, "Dialog", '#' + hash);
+ appRouter.pushState({ dialogId: hash }, 'Dialog', '#' + hash);
window.addEventListener('popstate', onHashChange);
} else {
diff --git a/src/components/directorybrowser/directorybrowser.js b/src/components/directorybrowser/directorybrowser.js
index 4cbcdb808..7f13f89ef 100644
--- a/src/components/directorybrowser/directorybrowser.js
+++ b/src/components/directorybrowser/directorybrowser.js
@@ -16,14 +16,14 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in
function refreshDirectoryBrowser(page, path, fileOptions, updatePathOnError) {
if (path && typeof path !== 'string') {
- throw new Error("invalid path");
+ throw new Error('invalid path');
}
loading.show();
var promises = [];
- if ("Network" === path) {
+ if ('Network' === path) {
promises.push(ApiClient.getNetworkDevices());
} else {
if (path) {
@@ -37,31 +37,31 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in
Promise.all(promises).then(
function(responses) {
var folders = responses[0];
- var parentPath = responses[1] || "";
- var html = "";
+ var parentPath = responses[1] || '';
+ var html = '';
- page.querySelector(".results").scrollTop = 0;
- page.querySelector("#txtDirectoryPickerPath").value = path || "";
+ page.querySelector('.results').scrollTop = 0;
+ page.querySelector('#txtDirectoryPickerPath').value = path || '';
if (path) {
- html += getItem("lnkPath lnkDirectory", "", parentPath, "...");
+ html += getItem('lnkPath lnkDirectory', '', parentPath, '...');
}
for (var i = 0, length = folders.length; i < length; i++) {
var folder = folders[i];
- var cssClass = "File" === folder.Type ? "lnkPath lnkFile" : "lnkPath lnkDirectory";
+ var cssClass = 'File' === folder.Type ? 'lnkPath lnkFile' : 'lnkPath lnkDirectory';
html += getItem(cssClass, folder.Type, folder.Path, folder.Name);
}
if (!path) {
- html += getItem("lnkPath lnkDirectory", "", "Network", globalize.translate("ButtonNetwork"));
+ html += getItem('lnkPath lnkDirectory', '', 'Network', globalize.translate('ButtonNetwork'));
}
- page.querySelector(".results").innerHTML = html;
+ page.querySelector('.results').innerHTML = html;
loading.hide();
}, function() {
if (updatePathOnError) {
- page.querySelector("#txtDirectoryPickerPath").value = "";
- page.querySelector(".results").innerHTML = "";
+ page.querySelector('#txtDirectoryPickerPath').value = '';
+ page.querySelector('.results').innerHTML = '';
loading.hide();
}
}
@@ -69,74 +69,74 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in
}
function getItem(cssClass, type, path, name) {
- var html = "";
+ var html = '';
html += '';
html += '
';
html += '
';
html += name;
- html += "
";
- html += "
";
+ html += '
';
+ html += '';
html += ' ';
- html += "";
+ html += '';
return html;
}
function getEditorHtml(options, systemInfo) {
- var html = "";
+ var html = '';
html += '';
html += '
';
if (!options.pathReadOnly) {
- var instruction = options.instruction ? options.instruction + "
" : "";
+ var instruction = options.instruction ? options.instruction + '
' : '';
html += '
';
html += instruction;
- html += globalize.translate("MessageDirectoryPickerInstruction", "\\\\server ", "\\\\192.168.1.101 ");
- if ("bsd" === systemInfo.OperatingSystem.toLowerCase()) {
- html += " ";
- html += " ";
- html += globalize.translate("MessageDirectoryPickerBSDInstruction");
- html += " ";
- } else if ("linux" === systemInfo.OperatingSystem.toLowerCase()) {
- html += " ";
- html += " ";
- html += globalize.translate("MessageDirectoryPickerLinuxInstruction");
- html += " ";
+ html += globalize.translate('MessageDirectoryPickerInstruction', '\\\\server ', '\\\\192.168.1.101 ');
+ if ('bsd' === systemInfo.OperatingSystem.toLowerCase()) {
+ html += ' ';
+ html += ' ';
+ html += globalize.translate('MessageDirectoryPickerBSDInstruction');
+ html += ' ';
+ } else if ('linux' === systemInfo.OperatingSystem.toLowerCase()) {
+ html += ' ';
+ html += ' ';
+ html += globalize.translate('MessageDirectoryPickerLinuxInstruction');
+ html += ' ';
}
- html += "
";
+ html += '
';
}
html += '
";
+ html += '';
if (!readOnlyAttribute) {
html += '
';
}
if (options.enableNetworkSharePath) {
html += '";
+ html += globalize.translate('LabelOptionalNetworkPathHelp');
+ html += '';
+ html += '';
}
html += '";
- html += "";
- html += "";
- html += "";
- html += "";
+ html += '';
+ html += '';
+ html += '';
+ html += '';
+ html += '';
+ html += '';
return html;
}
@@ -148,15 +148,15 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in
}
function alertTextWithOptions(options) {
- require(["alert"], function(alert) {
+ require(['alert'], function(alert) {
alert(options);
});
}
function validatePath(path, validateWriteable, apiClient) {
return apiClient.ajax({
- type: "POST",
- url: apiClient.getUrl("Environment/ValidatePath"),
+ type: 'POST',
+ url: apiClient.getUrl('Environment/ValidatePath'),
data: {
ValidateWriteable: validateWriteable,
Path: path
@@ -164,14 +164,14 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in
}).catch(function(response) {
if (response) {
if (response.status === 404) {
- alertText(globalize.translate("PathNotFound"));
+ alertText(globalize.translate('PathNotFound'));
return Promise.reject();
}
if (response.status === 500) {
if (validateWriteable) {
- alertText(globalize.translate("WriteAccessRequired"));
+ alertText(globalize.translate('WriteAccessRequired'));
} else {
- alertText(globalize.translate("PathNotFound"));
+ alertText(globalize.translate('PathNotFound'));
}
return Promise.reject();
}
@@ -181,37 +181,37 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in
}
function initEditor(content, options, fileOptions) {
- content.addEventListener("click", function(e) {
- var lnkPath = dom.parentWithClass(e.target, "lnkPath");
+ content.addEventListener('click', function(e) {
+ var lnkPath = dom.parentWithClass(e.target, 'lnkPath');
if (lnkPath) {
- var path = lnkPath.getAttribute("data-path");
- if (lnkPath.classList.contains("lnkFile")) {
- content.querySelector("#txtDirectoryPickerPath").value = path;
+ var path = lnkPath.getAttribute('data-path');
+ if (lnkPath.classList.contains('lnkFile')) {
+ content.querySelector('#txtDirectoryPickerPath').value = path;
} else {
refreshDirectoryBrowser(content, path, fileOptions, true);
}
}
});
- content.addEventListener("click", function(e) {
- if (dom.parentWithClass(e.target, "btnRefreshDirectories")) {
- var path = content.querySelector("#txtDirectoryPickerPath").value;
+ content.addEventListener('click', function(e) {
+ if (dom.parentWithClass(e.target, 'btnRefreshDirectories')) {
+ var path = content.querySelector('#txtDirectoryPickerPath').value;
refreshDirectoryBrowser(content, path, fileOptions);
}
});
- content.addEventListener("change", function(e) {
- var txtDirectoryPickerPath = dom.parentWithTag(e.target, "INPUT");
- if (txtDirectoryPickerPath && "txtDirectoryPickerPath" === txtDirectoryPickerPath.id) {
+ content.addEventListener('change', function(e) {
+ var txtDirectoryPickerPath = dom.parentWithTag(e.target, 'INPUT');
+ if (txtDirectoryPickerPath && 'txtDirectoryPickerPath' === txtDirectoryPickerPath.id) {
refreshDirectoryBrowser(content, txtDirectoryPickerPath.value, fileOptions);
}
});
- content.querySelector("form").addEventListener("submit", function(e) {
+ content.querySelector('form').addEventListener('submit', function(e) {
if (options.callback) {
- var networkSharePath = this.querySelector("#txtNetworkPath");
+ var networkSharePath = this.querySelector('#txtNetworkPath');
networkSharePath = networkSharePath ? networkSharePath.value : null;
- var path = this.querySelector("#txtDirectoryPickerPath").value;
+ var path = this.querySelector('#txtDirectoryPickerPath').value;
validatePath(path, options.validateWriteable, ApiClient).then(options.callback(path, networkSharePath));
}
e.preventDefault();
@@ -224,11 +224,11 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in
if (options.path) {
return Promise.resolve(options.path);
} else {
- return ApiClient.getJSON(ApiClient.getUrl("Environment/DefaultDirectoryBrowser")).then(
+ return ApiClient.getJSON(ApiClient.getUrl('Environment/DefaultDirectoryBrowser')).then(
function(result) {
- return result.Path || "";
+ return result.Path || '';
}, function() {
- return "";
+ return '';
}
);
}
@@ -253,35 +253,35 @@ define(['loading', 'dialogHelper', 'dom', 'globalize', 'listViewStyle', 'emby-in
var systemInfo = responses[0];
var initialPath = responses[1];
var dlg = dialogHelper.createDialog({
- size: "medium-tall",
+ size: 'medium-tall',
removeOnClose: true,
scrollY: false
});
- dlg.classList.add("ui-body-a");
- dlg.classList.add("background-theme-a");
- dlg.classList.add("directoryPicker");
- dlg.classList.add("formDialog");
+ dlg.classList.add('ui-body-a');
+ dlg.classList.add('background-theme-a');
+ dlg.classList.add('directoryPicker');
+ dlg.classList.add('formDialog');
- var html = "";
+ var html = '';
html += '";
+ html += options.header || globalize.translate('HeaderSelectPath');
+ html += '';
+ html += '';
html += getEditorHtml(options, systemInfo);
dlg.innerHTML = html;
initEditor(dlg, options, fileOptions);
- dlg.addEventListener("close", onDialogClosed);
+ dlg.addEventListener('close', onDialogClosed);
dialogHelper.open(dlg);
- dlg.querySelector(".btnCloseDialog").addEventListener("click", function() {
+ dlg.querySelector('.btnCloseDialog').addEventListener('click', function() {
dialogHelper.close(dlg);
});
currentDialog = dlg;
- dlg.querySelector("#txtDirectoryPickerPath").value = initialPath;
- var txtNetworkPath = dlg.querySelector("#txtNetworkPath");
+ dlg.querySelector('#txtDirectoryPickerPath').value = initialPath;
+ var txtNetworkPath = dlg.querySelector('#txtNetworkPath');
if (txtNetworkPath) {
- txtNetworkPath.value = options.networkSharePath || "";
+ txtNetworkPath.value = options.networkSharePath || '';
}
if (!options.pathReadOnly) {
refreshDirectoryBrowser(dlg, initialPath, fileOptions, true);
diff --git a/src/components/displaysettings/displaysettings.js b/src/components/displaysettings/displaysettings.js
index 682e60f60..2b7b4bb60 100644
--- a/src/components/displaysettings/displaysettings.js
+++ b/src/components/displaysettings/displaysettings.js
@@ -1,5 +1,5 @@
define(['require', 'browser', 'layoutManager', 'appSettings', 'pluginManager', 'apphost', 'focusManager', 'datetime', 'globalize', 'loading', 'connectionManager', 'skinManager', 'dom', 'events', 'emby-select', 'emby-checkbox', 'emby-button'], function (require, browser, layoutManager, appSettings, pluginManager, appHost, focusManager, datetime, globalize, loading, connectionManager, skinManager, dom, events) {
- "use strict";
+ 'use strict';
function fillThemes(select, isDashboard) {
select.innerHTML = skinManager.getThemes().map(function (t) {
diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js
index d877cd274..38715043e 100644
--- a/src/components/favoriteitems.js
+++ b/src/components/favoriteitems.js
@@ -1,41 +1,41 @@
-define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoader", "globalize", "layoutManager", "scrollStyles", "emby-itemscontainer"], function (loading, libraryBrowser, cardBuilder, dom, appHost, imageLoader, globalize, layoutManager) {
- "use strict";
+define(['loading', 'libraryBrowser', 'cardBuilder', 'dom', 'apphost', 'imageLoader', 'globalize', 'layoutManager', 'scrollStyles', 'emby-itemscontainer'], function (loading, libraryBrowser, cardBuilder, dom, appHost, imageLoader, globalize, layoutManager) {
+ 'use strict';
function enableScrollX() {
return !layoutManager.desktop;
}
function getThumbShape() {
- return enableScrollX() ? "overflowBackdrop" : "backdrop";
+ return enableScrollX() ? 'overflowBackdrop' : 'backdrop';
}
function getPosterShape() {
- return enableScrollX() ? "overflowPortrait" : "portrait";
+ return enableScrollX() ? 'overflowPortrait' : 'portrait';
}
function getSquareShape() {
- return enableScrollX() ? "overflowSquare" : "square";
+ return enableScrollX() ? 'overflowSquare' : 'square';
}
function getSections() {
return [{
- name: "HeaderFavoriteMovies",
- types: "Movie",
- id: "favoriteMovies",
+ name: 'HeaderFavoriteMovies',
+ types: 'Movie',
+ id: 'favoriteMovies',
shape: getPosterShape(),
showTitle: false,
overlayPlayButton: true
}, {
- name: "HeaderFavoriteShows",
- types: "Series",
- id: "favoriteShows",
+ name: 'HeaderFavoriteShows',
+ types: 'Series',
+ id: 'favoriteShows',
shape: getPosterShape(),
showTitle: false,
overlayPlayButton: true
}, {
- name: "HeaderFavoriteEpisodes",
- types: "Episode",
- id: "favoriteEpisode",
+ name: 'HeaderFavoriteEpisodes',
+ types: 'Episode',
+ id: 'favoriteEpisode',
shape: getThumbShape(),
preferThumb: false,
showTitle: true,
@@ -44,9 +44,9 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
overlayText: false,
centerText: true
}, {
- name: "HeaderFavoriteVideos",
- types: "Video,MusicVideo",
- id: "favoriteVideos",
+ name: 'HeaderFavoriteVideos',
+ types: 'Video,MusicVideo',
+ id: 'favoriteVideos',
shape: getThumbShape(),
preferThumb: true,
showTitle: true,
@@ -54,9 +54,9 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
overlayText: false,
centerText: true
}, {
- name: "HeaderFavoriteArtists",
- types: "MusicArtist",
- id: "favoriteArtists",
+ name: 'HeaderFavoriteArtists',
+ types: 'MusicArtist',
+ id: 'favoriteArtists',
shape: getSquareShape(),
preferThumb: false,
showTitle: true,
@@ -66,9 +66,9 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
overlayPlayButton: true,
coverImage: true
}, {
- name: "HeaderFavoriteAlbums",
- types: "MusicAlbum",
- id: "favoriteAlbums",
+ name: 'HeaderFavoriteAlbums',
+ types: 'MusicAlbum',
+ id: 'favoriteAlbums',
shape: getSquareShape(),
preferThumb: false,
showTitle: true,
@@ -78,9 +78,9 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
overlayPlayButton: true,
coverImage: true
}, {
- name: "HeaderFavoriteSongs",
- types: "Audio",
- id: "favoriteSongs",
+ name: 'HeaderFavoriteSongs',
+ types: 'Audio',
+ id: 'favoriteSongs',
shape: getSquareShape(),
preferThumb: false,
showTitle: true,
@@ -88,7 +88,7 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
showParentTitle: true,
centerText: true,
overlayMoreButton: true,
- action: "instantmix",
+ action: 'instantmix',
coverImage: true
}];
}
@@ -96,13 +96,13 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
function loadSection(elem, userId, topParentId, section, isSingleSection) {
var screenWidth = dom.getWindowSize().innerWidth;
var options = {
- SortBy: "SortName",
- SortOrder: "Ascending",
- Filters: "IsFavorite",
+ SortBy: 'SortName',
+ SortOrder: 'Ascending',
+ Filters: 'IsFavorite',
Recursive: true,
- Fields: "PrimaryImageAspectRatio,BasicSyncInfo",
+ Fields: 'PrimaryImageAspectRatio,BasicSyncInfo',
CollapseBoxSetItems: false,
- ExcludeLocationTypes: "Virtual",
+ ExcludeLocationTypes: 'Virtual',
EnableTotalRecordCount: false
};
@@ -120,7 +120,7 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
var promise;
- if ("MusicArtist" === section.types) {
+ if ('MusicArtist' === section.types) {
promise = ApiClient.getArtists(userId, options);
} else {
options.IncludeItemTypes = section.types;
@@ -128,25 +128,25 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
}
return promise.then(function (result) {
- var html = "";
+ var html = '';
if (result.Items.length) {
if (html += '";
+ html += '';
if (enableScrollX()) {
- var scrollXClass = "scrollX hiddenScrollX";
+ var scrollXClass = 'scrollX hiddenScrollX';
if (layoutManager.tv) {
- scrollXClass += " smoothScrollX";
+ scrollXClass += ' smoothScrollX';
}
html += '';
}
elem.innerHTML = html;
@@ -183,7 +183,7 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
function loadSections(page, userId, topParentId, types) {
loading.show();
var sections = getSections();
- var sectionid = getParameterByName("sectionid");
+ var sectionid = getParameterByName('sectionid');
if (sectionid) {
sections = sections.filter(function (s) {
@@ -199,10 +199,10 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
var i;
var length;
- var elem = page.querySelector(".favoriteSections");
+ var elem = page.querySelector('.favoriteSections');
if (!elem.innerHTML) {
- var html = "";
+ var html = '';
for (i = 0, length = sections.length; i < length; i++) {
html += '
';
@@ -215,7 +215,7 @@ define(["loading", "libraryBrowser", "cardBuilder", "dom", "apphost", "imageLoad
for (i = 0, length = sections.length; i < length; i++) {
var section = sections[i];
- elem = page.querySelector(".section" + section.id);
+ elem = page.querySelector('.section' + section.id);
promises.push(loadSection(elem, userId, topParentId, section, 1 === sections.length));
}
diff --git a/src/components/fetchhelper.js b/src/components/fetchhelper.js
index 0b8d45173..08fe803ec 100644
--- a/src/components/fetchhelper.js
+++ b/src/components/fetchhelper.js
@@ -86,7 +86,7 @@ define([], function () {
var value = params[key];
if (value !== null && value !== undefined && value !== '') {
- values.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
+ values.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));
}
}
return values.join('&');
@@ -94,7 +94,7 @@ define([], function () {
function ajax(request) {
if (!request) {
- throw new Error("Request cannot be null");
+ throw new Error('Request cannot be null');
}
request.headers = request.headers || {};
diff --git a/src/components/filedownloader.js b/src/components/filedownloader.js
index 6f1bd3ff2..f2ca42211 100644
--- a/src/components/filedownloader.js
+++ b/src/components/filedownloader.js
@@ -1,4 +1,4 @@
-import multiDownload from "multi-download";
+import multiDownload from 'multi-download';
export function download(items) {
diff --git a/src/components/filterdialog/filterdialog.js b/src/components/filterdialog/filterdialog.js
index c534ba474..1dfd04c67 100644
--- a/src/components/filterdialog/filterdialog.js
+++ b/src/components/filterdialog/filterdialog.js
@@ -1,49 +1,49 @@
-define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "browser", "require", "emby-checkbox", "emby-collapse", "css!./style"], function (dom, dialogHelper, globalize, connectionManager, events, browser, require) {
- "use strict";
+define(['dom', 'dialogHelper', 'globalize', 'connectionManager', 'events', 'browser', 'require', 'emby-checkbox', 'emby-collapse', 'css!./style'], function (dom, dialogHelper, globalize, connectionManager, events, browser, require) {
+ 'use strict';
function renderOptions(context, selector, cssClass, items, isCheckedFn) {
var elem = context.querySelector(selector);
if (items.length) {
- elem.classList.remove("hide");
+ elem.classList.remove('hide');
} else {
- elem.classList.add("hide");
+ elem.classList.add('hide');
}
- var html = "";
+ var html = '';
html += '';
html += items.map(function (filter) {
- var itemHtml = "";
- var checkedHtml = isCheckedFn(filter) ? " checked" : "";
- itemHtml += "";
+ var itemHtml = '';
+ var checkedHtml = isCheckedFn(filter) ? ' checked' : '';
+ itemHtml += '';
itemHtml += ' ';
- itemHtml += "" + filter + " ";
- itemHtml += " ";
+ itemHtml += '' + filter + ' ';
+ itemHtml += ' ';
return itemHtml;
- }).join("");
- html += "
";
- elem.querySelector(".filterOptions").innerHTML = html;
+ }).join('');
+ html += '';
+ elem.querySelector('.filterOptions').innerHTML = html;
}
function renderFilters(context, result, query) {
- renderOptions(context, ".genreFilters", "chkGenreFilter", result.Genres, function (i) {
- var delimeter = "|";
- return (delimeter + (query.Genres || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
+ renderOptions(context, '.genreFilters', 'chkGenreFilter', result.Genres, function (i) {
+ var delimeter = '|';
+ return (delimeter + (query.Genres || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
- renderOptions(context, ".officialRatingFilters", "chkOfficialRatingFilter", result.OfficialRatings, function (i) {
- var delimeter = "|";
- return (delimeter + (query.OfficialRatings || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
+ renderOptions(context, '.officialRatingFilters', 'chkOfficialRatingFilter', result.OfficialRatings, function (i) {
+ var delimeter = '|';
+ return (delimeter + (query.OfficialRatings || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
- renderOptions(context, ".tagFilters", "chkTagFilter", result.Tags, function (i) {
- var delimeter = "|";
- return (delimeter + (query.Tags || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
+ renderOptions(context, '.tagFilters', 'chkTagFilter', result.Tags, function (i) {
+ var delimeter = '|';
+ return (delimeter + (query.Tags || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
- renderOptions(context, ".yearFilters", "chkYearFilter", result.Years, function (i) {
- var delimeter = ",";
- return (delimeter + (query.Years || "") + delimeter).indexOf(delimeter + i + delimeter) != -1;
+ renderOptions(context, '.yearFilters', 'chkYearFilter', result.Years, function (i) {
+ var delimeter = ',';
+ return (delimeter + (query.Years || '') + delimeter).indexOf(delimeter + i + delimeter) != -1;
});
}
function loadDynamicFilters(context, apiClient, userId, itemQuery) {
- return apiClient.getJSON(apiClient.getUrl("Items/Filters", {
+ return apiClient.getJSON(apiClient.getUrl('Items/Filters', {
UserId: userId,
ParentId: itemQuery.ParentId,
IncludeItemTypes: itemQuery.IncludeItemTypes
@@ -58,98 +58,98 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
var length;
var query = options.query;
- if (options.mode == "livetvchannels") {
- context.querySelector(".chkFavorite").checked = query.IsFavorite == true;
- context.querySelector(".chkLikes").checked = query.IsLiked == true;
- context.querySelector(".chkDislikes").checked = query.IsDisliked == true;
+ if (options.mode == 'livetvchannels') {
+ context.querySelector('.chkFavorite').checked = query.IsFavorite == true;
+ context.querySelector('.chkLikes').checked = query.IsLiked == true;
+ context.querySelector('.chkDislikes').checked = query.IsDisliked == true;
} else {
- elems = context.querySelectorAll(".chkStandardFilter");
+ elems = context.querySelectorAll('.chkStandardFilter');
for (i = 0, length = elems.length; i < length; i++) {
var chkStandardFilter = elems[i];
- var filters = "," + (query.Filters || "");
- var filterName = chkStandardFilter.getAttribute("data-filter");
- chkStandardFilter.checked = filters.indexOf("," + filterName) != -1;
+ var filters = ',' + (query.Filters || '');
+ var filterName = chkStandardFilter.getAttribute('data-filter');
+ chkStandardFilter.checked = filters.indexOf(',' + filterName) != -1;
}
}
- elems = context.querySelectorAll(".chkVideoTypeFilter");
+ elems = context.querySelectorAll('.chkVideoTypeFilter');
for (i = 0, length = elems.length; i < length; i++) {
var chkVideoTypeFilter = elems[i];
- var filters = "," + (query.VideoTypes || "");
- var filterName = chkVideoTypeFilter.getAttribute("data-filter");
- chkVideoTypeFilter.checked = filters.indexOf("," + filterName) != -1;
+ var filters = ',' + (query.VideoTypes || '');
+ var filterName = chkVideoTypeFilter.getAttribute('data-filter');
+ chkVideoTypeFilter.checked = filters.indexOf(',' + filterName) != -1;
}
- context.querySelector(".chk3DFilter").checked = query.Is3D == true;
- context.querySelector(".chkHDFilter").checked = query.IsHD == true;
- context.querySelector(".chk4KFilter").checked = query.Is4K == true;
- context.querySelector(".chkSDFilter").checked = query.IsHD == true;
- context.querySelector("#chkSubtitle").checked = query.HasSubtitles == true;
- context.querySelector("#chkTrailer").checked = query.HasTrailer == true;
- context.querySelector("#chkThemeSong").checked = query.HasThemeSong == true;
- context.querySelector("#chkThemeVideo").checked = query.HasThemeVideo == true;
- context.querySelector("#chkSpecialFeature").checked = query.HasSpecialFeature == true;
- context.querySelector("#chkSpecialEpisode").checked = query.ParentIndexNumber == 0;
- context.querySelector("#chkMissingEpisode").checked = query.IsMissing == true;
- context.querySelector("#chkFutureEpisode").checked = query.IsUnaired == true;
+ context.querySelector('.chk3DFilter').checked = query.Is3D == true;
+ context.querySelector('.chkHDFilter').checked = query.IsHD == true;
+ context.querySelector('.chk4KFilter').checked = query.Is4K == true;
+ context.querySelector('.chkSDFilter').checked = query.IsHD == true;
+ context.querySelector('#chkSubtitle').checked = query.HasSubtitles == true;
+ context.querySelector('#chkTrailer').checked = query.HasTrailer == true;
+ context.querySelector('#chkThemeSong').checked = query.HasThemeSong == true;
+ context.querySelector('#chkThemeVideo').checked = query.HasThemeVideo == true;
+ context.querySelector('#chkSpecialFeature').checked = query.HasSpecialFeature == true;
+ context.querySelector('#chkSpecialEpisode').checked = query.ParentIndexNumber == 0;
+ context.querySelector('#chkMissingEpisode').checked = query.IsMissing == true;
+ context.querySelector('#chkFutureEpisode').checked = query.IsUnaired == true;
for (i = 0, length = elems.length; i < length; i++) {
var chkStatus = elems[i];
- var filters = "," + (query.SeriesStatus || "");
- var filterName = chkStatus.getAttribute("data-filter");
- chkStatus.checked = filters.indexOf("," + filterName) != -1;
+ var filters = ',' + (query.SeriesStatus || '');
+ var filterName = chkStatus.getAttribute('data-filter');
+ chkStatus.checked = filters.indexOf(',' + filterName) != -1;
}
}
function triggerChange(instance) {
- events.trigger(instance, "filterchange");
+ events.trigger(instance, 'filterchange');
}
function setVisibility(context, options) {
- if (options.mode == "livetvchannels" || options.mode == "albums" || options.mode == "artists" || options.mode == "albumartists" || options.mode == "songs") {
- hideByClass(context, "videoStandard");
+ if (options.mode == 'livetvchannels' || options.mode == 'albums' || options.mode == 'artists' || options.mode == 'albumartists' || options.mode == 'songs') {
+ hideByClass(context, 'videoStandard');
}
if (enableDynamicFilters(options.mode)) {
- context.querySelector(".genreFilters").classList.remove("hide");
- context.querySelector(".officialRatingFilters").classList.remove("hide");
- context.querySelector(".tagFilters").classList.remove("hide");
- context.querySelector(".yearFilters").classList.remove("hide");
+ context.querySelector('.genreFilters').classList.remove('hide');
+ context.querySelector('.officialRatingFilters').classList.remove('hide');
+ context.querySelector('.tagFilters').classList.remove('hide');
+ context.querySelector('.yearFilters').classList.remove('hide');
}
- if (options.mode == "movies" || options.mode == "episodes") {
- context.querySelector(".videoTypeFilters").classList.remove("hide");
+ if (options.mode == 'movies' || options.mode == 'episodes') {
+ context.querySelector('.videoTypeFilters').classList.remove('hide');
}
- if (options.mode == "movies" || options.mode == "series" || options.mode == "episodes") {
- context.querySelector(".features").classList.remove("hide");
+ if (options.mode == 'movies' || options.mode == 'series' || options.mode == 'episodes') {
+ context.querySelector('.features').classList.remove('hide');
}
- if (options.mode == "series") {
- context.querySelector(".seriesStatus").classList.remove("hide");
+ if (options.mode == 'series') {
+ context.querySelector('.seriesStatus').classList.remove('hide');
}
- if (options.mode == "episodes") {
- showByClass(context, "episodeFilter");
+ if (options.mode == 'episodes') {
+ showByClass(context, 'episodeFilter');
}
}
function showByClass(context, className) {
- var elems = context.querySelectorAll("." + className);
+ var elems = context.querySelectorAll('.' + className);
for (var i = 0, length = elems.length; i < length; i++) {
- elems[i].classList.remove("hide");
+ elems[i].classList.remove('hide');
}
}
function hideByClass(context, className) {
- var elems = context.querySelectorAll("." + className);
+ var elems = context.querySelectorAll('.' + className);
for (var i = 0, length = elems.length; i < length; i++) {
- elems[i].classList.add("hide");
+ elems[i].classList.add('hide');
}
}
function enableDynamicFilters(mode) {
- return mode == "movies" || mode == "series" || mode == "albums" || mode == "albumartists" || mode == "artists" || mode == "songs" || mode == "episodes";
+ return mode == 'movies' || mode == 'series' || mode == 'albums' || mode == 'albumartists' || mode == 'artists' || mode == 'songs' || mode == 'episodes';
}
return function (options) {
@@ -162,12 +162,12 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
function onStandardFilterChange() {
var query = options.query;
- var filterName = this.getAttribute("data-filter");
- var filters = query.Filters || "";
- filters = ("," + filters).replace("," + filterName, "").substring(1);
+ var filterName = this.getAttribute('data-filter');
+ var filters = query.Filters || '';
+ filters = (',' + filters).replace(',' + filterName, '').substring(1);
if (this.checked) {
- filters = filters ? filters + "," + filterName : filterName;
+ filters = filters ? filters + ',' + filterName : filterName;
}
query.StartIndex = 0;
@@ -177,12 +177,12 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
function onVideoTypeFilterChange() {
var query = options.query;
- var filterName = this.getAttribute("data-filter");
- var filters = query.VideoTypes || "";
- filters = ("," + filters).replace("," + filterName, "").substring(1);
+ var filterName = this.getAttribute('data-filter');
+ var filters = query.VideoTypes || '';
+ filters = (',' + filters).replace(',' + filterName, '').substring(1);
if (this.checked) {
- filters = filters ? filters + "," + filterName : filterName;
+ filters = filters ? filters + ',' + filterName : filterName;
}
query.StartIndex = 0;
@@ -192,12 +192,12 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
function onStatusChange() {
var query = options.query;
- var filterName = this.getAttribute("data-filter");
- var filters = query.SeriesStatus || "";
- filters = ("," + filters).replace("," + filterName, "").substring(1);
+ var filterName = this.getAttribute('data-filter');
+ var filters = query.SeriesStatus || '';
+ filters = (',' + filters).replace(',' + filterName, '').substring(1);
if (this.checked) {
- filters = filters ? filters + "," + filterName : filterName;
+ filters = filters ? filters + ',' + filterName : filterName;
}
query.SeriesStatus = filters;
@@ -211,86 +211,86 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
var length;
var query = options.query;
- if (options.mode == "livetvchannels") {
- elems = context.querySelectorAll(".chkFavorite");
+ if (options.mode == 'livetvchannels') {
+ elems = context.querySelectorAll('.chkFavorite');
for (i = 0, length = elems.length; i < length; i++) {
- elems[i].addEventListener("change", onFavoriteChange);
+ elems[i].addEventListener('change', onFavoriteChange);
}
- context.querySelector(".chkLikes").addEventListener("change", function () {
+ context.querySelector('.chkLikes').addEventListener('change', function () {
query.StartIndex = 0;
query.IsLiked = this.checked ? true : null;
triggerChange(self);
});
- context.querySelector(".chkDislikes").addEventListener("change", function () {
+ context.querySelector('.chkDislikes').addEventListener('change', function () {
query.StartIndex = 0;
query.IsDisliked = this.checked ? true : null;
triggerChange(self);
});
} else {
- elems = context.querySelectorAll(".chkStandardFilter");
+ elems = context.querySelectorAll('.chkStandardFilter');
for (i = 0, length = elems.length; i < length; i++) {
- elems[i].addEventListener("change", onStandardFilterChange);
+ elems[i].addEventListener('change', onStandardFilterChange);
}
}
- elems = context.querySelectorAll(".chkVideoTypeFilter");
+ elems = context.querySelectorAll('.chkVideoTypeFilter');
for (i = 0, length = elems.length; i < length; i++) {
- elems[i].addEventListener("change", onVideoTypeFilterChange);
+ elems[i].addEventListener('change', onVideoTypeFilterChange);
}
- context.querySelector(".chk3DFilter").addEventListener("change", function () {
+ context.querySelector('.chk3DFilter').addEventListener('change', function () {
query.StartIndex = 0;
query.Is3D = this.checked ? true : null;
triggerChange(self);
});
- context.querySelector(".chk4KFilter").addEventListener("change", function () {
+ context.querySelector('.chk4KFilter').addEventListener('change', function () {
query.StartIndex = 0;
query.Is4K = this.checked ? true : null;
triggerChange(self);
});
- context.querySelector(".chkHDFilter").addEventListener("change", function () {
+ context.querySelector('.chkHDFilter').addEventListener('change', function () {
query.StartIndex = 0;
query.IsHD = this.checked ? true : null;
triggerChange(self);
});
- context.querySelector(".chkSDFilter").addEventListener("change", function () {
+ context.querySelector('.chkSDFilter').addEventListener('change', function () {
query.StartIndex = 0;
query.IsHD = this.checked ? false : null;
triggerChange(self);
});
- elems = context.querySelectorAll(".chkStatus");
+ elems = context.querySelectorAll('.chkStatus');
for (i = 0, length = elems.length; i < length; i++) {
- elems[i].addEventListener("change", onStatusChange);
+ elems[i].addEventListener('change', onStatusChange);
}
- context.querySelector("#chkTrailer").addEventListener("change", function () {
+ context.querySelector('#chkTrailer').addEventListener('change', function () {
query.StartIndex = 0;
query.HasTrailer = this.checked ? true : null;
triggerChange(self);
});
- context.querySelector("#chkThemeSong").addEventListener("change", function () {
+ context.querySelector('#chkThemeSong').addEventListener('change', function () {
query.StartIndex = 0;
query.HasThemeSong = this.checked ? true : null;
triggerChange(self);
});
- context.querySelector("#chkSpecialFeature").addEventListener("change", function () {
+ context.querySelector('#chkSpecialFeature').addEventListener('change', function () {
query.StartIndex = 0;
query.HasSpecialFeature = this.checked ? true : null;
triggerChange(self);
});
- context.querySelector("#chkThemeVideo").addEventListener("change", function () {
+ context.querySelector('#chkThemeVideo').addEventListener('change', function () {
query.StartIndex = 0;
query.HasThemeVideo = this.checked ? true : null;
triggerChange(self);
});
- context.querySelector("#chkMissingEpisode").addEventListener("change", function () {
+ context.querySelector('#chkMissingEpisode').addEventListener('change', function () {
query.StartIndex = 0;
query.IsMissing = this.checked ? true : false;
triggerChange(self);
});
- context.querySelector("#chkSpecialEpisode").addEventListener("change", function () {
+ context.querySelector('#chkSpecialEpisode').addEventListener('change', function () {
query.StartIndex = 0;
query.ParentIndexNumber = this.checked ? 0 : null;
triggerChange(self);
});
- context.querySelector("#chkFutureEpisode").addEventListener("change", function () {
+ context.querySelector('#chkFutureEpisode').addEventListener('change', function () {
query.StartIndex = 0;
if (this.checked) {
query.IsUnaired = true;
@@ -301,18 +301,18 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
}
triggerChange(self);
});
- context.querySelector("#chkSubtitle").addEventListener("change", function () {
+ context.querySelector('#chkSubtitle').addEventListener('change', function () {
query.StartIndex = 0;
query.HasSubtitles = this.checked ? true : null;
triggerChange(self);
});
- context.addEventListener("change", function (e) {
- var chkGenreFilter = dom.parentWithClass(e.target, "chkGenreFilter");
+ context.addEventListener('change', function (e) {
+ var chkGenreFilter = dom.parentWithClass(e.target, 'chkGenreFilter');
if (chkGenreFilter) {
- var filterName = chkGenreFilter.getAttribute("data-filter");
- var filters = query.Genres || "";
- var delimiter = "|";
- filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1);
+ var filterName = chkGenreFilter.getAttribute('data-filter');
+ var filters = query.Genres || '';
+ var delimiter = '|';
+ filters = (delimiter + filters).replace(delimiter + filterName, '').substring(1);
if (chkGenreFilter.checked) {
filters = filters ? (filters + delimiter + filterName) : filterName;
}
@@ -321,12 +321,12 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
triggerChange(self);
return;
}
- var chkTagFilter = dom.parentWithClass(e.target, "chkTagFilter");
+ var chkTagFilter = dom.parentWithClass(e.target, 'chkTagFilter');
if (chkTagFilter) {
- var filterName = chkTagFilter.getAttribute("data-filter");
- var filters = query.Tags || "";
- var delimiter = "|";
- filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1);
+ var filterName = chkTagFilter.getAttribute('data-filter');
+ var filters = query.Tags || '';
+ var delimiter = '|';
+ filters = (delimiter + filters).replace(delimiter + filterName, '').substring(1);
if (chkTagFilter.checked) {
filters = filters ? (filters + delimiter + filterName) : filterName;
}
@@ -335,12 +335,12 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
triggerChange(self);
return;
}
- var chkYearFilter = dom.parentWithClass(e.target, "chkYearFilter");
+ var chkYearFilter = dom.parentWithClass(e.target, 'chkYearFilter');
if (chkYearFilter) {
- var filterName = chkYearFilter.getAttribute("data-filter");
- var filters = query.Years || "";
- var delimiter = ",";
- filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1);
+ var filterName = chkYearFilter.getAttribute('data-filter');
+ var filters = query.Years || '';
+ var delimiter = ',';
+ filters = (delimiter + filters).replace(delimiter + filterName, '').substring(1);
if (chkYearFilter.checked) {
filters = filters ? (filters + delimiter + filterName) : filterName;
}
@@ -349,12 +349,12 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
triggerChange(self);
return;
}
- var chkOfficialRatingFilter = dom.parentWithClass(e.target, "chkOfficialRatingFilter");
+ var chkOfficialRatingFilter = dom.parentWithClass(e.target, 'chkOfficialRatingFilter');
if (chkOfficialRatingFilter) {
- var filterName = chkOfficialRatingFilter.getAttribute("data-filter");
- var filters = query.OfficialRatings || "";
- var delimiter = "|";
- filters = (delimiter + filters).replace(delimiter + filterName, "").substring(1);
+ var filterName = chkOfficialRatingFilter.getAttribute('data-filter');
+ var filters = query.OfficialRatings || '';
+ var delimiter = '|';
+ filters = (delimiter + filters).replace(delimiter + filterName, '').substring(1);
if (chkOfficialRatingFilter.checked) {
filters = filters ? (filters + delimiter + filterName) : filterName;
}
@@ -370,23 +370,23 @@ define(["dom", "dialogHelper", "globalize", "connectionManager", "events", "brow
self.show = function () {
return new Promise(function (resolve, reject) {
- require(["text!./filterdialog.template.html"], function (template) {
+ require(['text!./filterdialog.template.html'], function (template) {
var dlg = dialogHelper.createDialog({
removeOnClose: true,
modal: false
});
- dlg.classList.add("ui-body-a");
- dlg.classList.add("background-theme-a");
- dlg.classList.add("formDialog");
- dlg.classList.add("filterDialog");
+ dlg.classList.add('ui-body-a');
+ dlg.classList.add('background-theme-a');
+ dlg.classList.add('formDialog');
+ dlg.classList.add('filterDialog');
dlg.innerHTML = globalize.translateDocument(template);
setVisibility(dlg, options);
dialogHelper.open(dlg);
- dlg.addEventListener("close", resolve);
+ dlg.addEventListener('close', resolve);
updateFilterControls(dlg, options);
bindEvents(dlg);
if (enableDynamicFilters(options.mode)) {
- dlg.classList.add("dynamicFilterDialog");
+ dlg.classList.add('dynamicFilterDialog');
var apiClient = connectionManager.getApiClient(options.serverId);
loadDynamicFilters(dlg, apiClient, apiClient.getCurrentUserId(), options.query);
}
diff --git a/src/components/focusManager.js b/src/components/focusManager.js
index 1da58d75c..f2022cc44 100644
--- a/src/components/focusManager.js
+++ b/src/components/focusManager.js
@@ -117,7 +117,7 @@ define(['dom', 'scrollManager'], function (dom, scrollManager) {
return false;
}
- if (elem.getAttribute('tabindex') === "-1") {
+ if (elem.getAttribute('tabindex') === '-1') {
return false;
}
diff --git a/src/components/groupedcards.js b/src/components/groupedcards.js
index ad638ecdd..602c4310f 100644
--- a/src/components/groupedcards.js
+++ b/src/components/groupedcards.js
@@ -1,28 +1,28 @@
-define(["dom", "appRouter", "connectionManager"], function (dom, appRouter, connectionManager) {
- "use strict";
+define(['dom', 'appRouter', 'connectionManager'], function (dom, appRouter, connectionManager) {
+ 'use strict';
function onGroupedCardClick(e, card) {
- var itemId = card.getAttribute("data-id");
- var serverId = card.getAttribute("data-serverid");
+ var itemId = card.getAttribute('data-id');
+ var serverId = card.getAttribute('data-serverid');
var apiClient = connectionManager.getApiClient(serverId);
var userId = apiClient.getCurrentUserId();
- var playedIndicator = card.querySelector(".playedIndicator");
+ var playedIndicator = card.querySelector('.playedIndicator');
var playedIndicatorHtml = playedIndicator ? playedIndicator.innerHTML : null;
var options = {
- Limit: parseInt(playedIndicatorHtml || "10"),
- Fields: "PrimaryImageAspectRatio,DateCreated",
+ Limit: parseInt(playedIndicatorHtml || '10'),
+ Fields: 'PrimaryImageAspectRatio,DateCreated',
ParentId: itemId,
GroupItems: false
};
- var actionableParent = dom.parentWithTag(e.target, ["A", "BUTTON", "INPUT"]);
+ var actionableParent = dom.parentWithTag(e.target, ['A', 'BUTTON', 'INPUT']);
- if (!actionableParent || actionableParent.classList.contains("cardContent")) {
- apiClient.getJSON(apiClient.getUrl("Users/" + userId + "/Items/Latest", options)).then(function (items) {
+ if (!actionableParent || actionableParent.classList.contains('cardContent')) {
+ apiClient.getJSON(apiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
if (1 === items.length) {
return void appRouter.showItem(items[0]);
}
- var url = "itemdetails.html?id=" + itemId + "&serverId=" + serverId;
+ var url = 'itemdetails.html?id=' + itemId + '&serverId=' + serverId;
Dashboard.navigate(url);
});
e.stopPropagation();
@@ -32,7 +32,7 @@ define(["dom", "appRouter", "connectionManager"], function (dom, appRouter, conn
}
function onItemsContainerClick(e) {
- var groupedCard = dom.parentWithClass(e.target, "groupedCard");
+ var groupedCard = dom.parentWithClass(e.target, 'groupedCard');
if (groupedCard) {
onGroupedCardClick(e, groupedCard);
diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js
index 66991d4c8..223d3a206 100644
--- a/src/components/guide/guide.js
+++ b/src/components/guide/guide.js
@@ -227,7 +227,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
channelQuery.Limit = channelLimit;
channelQuery.AddCurrentProgram = false;
channelQuery.EnableUserData = false;
- channelQuery.EnableImageTypes = "Primary";
+ channelQuery.EnableImageTypes = 'Primary';
var categories = self.categoryOptions.categories || [];
var displayMovieContent = !categories.length || categories.indexOf('movies') !== -1;
@@ -261,8 +261,8 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
}
if (userSettings.get('livetv-channelorder') === 'DatePlayed') {
- channelQuery.SortBy = "DatePlayed";
- channelQuery.SortOrder = "Descending";
+ channelQuery.SortBy = 'DatePlayed';
+ channelQuery.SortOrder = 'Descending';
} else {
channelQuery.SortBy = null;
channelQuery.SortOrder = null;
@@ -329,7 +329,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
ImageTypeLimit: 1,
EnableImages: false,
//EnableImageTypes: layoutManager.tv ? "Primary,Backdrop" : "Primary",
- SortBy: "StartDate",
+ SortBy: 'StartDate',
EnableTotalRecordCount: false,
EnableUserData: false
};
@@ -502,7 +502,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
var endPercent = (renderEndMs - renderStartMs) / msPerDay;
endPercent *= 100;
- var cssClass = "programCell itemAction";
+ var cssClass = 'programCell itemAction';
var accentCssClass = null;
var displayInnerContent = true;
@@ -525,11 +525,11 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
}
if (displayInnerContent && enableColorCodedBackgrounds && accentCssClass) {
- cssClass += " programCell-" + accentCssClass;
+ cssClass += ' programCell-' + accentCssClass;
}
if (now >= startDateLocalMs && now < endDateLocalMs) {
- cssClass += " programCell-active";
+ cssClass += ' programCell-active';
}
var timerAttributes = '';
@@ -545,7 +545,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
html += '';
if (displayInnerContent) {
- var guideProgramNameClass = "guideProgramName";
+ var guideProgramNameClass = 'guideProgramName';
html += '';
@@ -630,7 +630,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
var url = apiClient.getScaledImageUrl(channel.Id, {
maxHeight: 220,
tag: channel.ImageTags.Primary,
- type: "Primary"
+ type: 'Primary'
});
html += '
';
diff --git a/src/components/homescreensettings/homescreensettings.js b/src/components/homescreensettings/homescreensettings.js
index 67a4ac165..15812647c 100644
--- a/src/components/homescreensettings/homescreensettings.js
+++ b/src/components/homescreensettings/homescreensettings.js
@@ -1,5 +1,5 @@
define(['require', 'apphost', 'layoutManager', 'focusManager', 'globalize', 'loading', 'connectionManager', 'homeSections', 'dom', 'events', 'listViewStyle', 'emby-select', 'emby-checkbox'], function (require, appHost, layoutManager, focusManager, globalize, loading, connectionManager, homeSections, dom, events) {
- "use strict";
+ 'use strict';
var numConfigurableSections = 7;
@@ -276,7 +276,7 @@ define(['require', 'apphost', 'layoutManager', 'focusManager', 'globalize', 'loa
updateHomeSectionValues(context, userSettings);
var promise1 = apiClient.getUserViews({ IncludeHidden: true }, user.Id);
- var promise2 = apiClient.getJSON(apiClient.getUrl("Users/" + user.Id + "/GroupingOptions"));
+ var promise2 = apiClient.getJSON(apiClient.getUrl('Users/' + user.Id + '/GroupingOptions'));
Promise.all([promise1, promise2]).then(function (responses) {
@@ -363,17 +363,17 @@ define(['require', 'apphost', 'layoutManager', 'focusManager', 'globalize', 'loa
user.Configuration.HidePlayedInLatest = context.querySelector('.chkHidePlayedFromLatest').checked;
- user.Configuration.LatestItemsExcludes = getCheckboxItems(".chkIncludeInLatest", context, false).map(function (i) {
+ user.Configuration.LatestItemsExcludes = getCheckboxItems('.chkIncludeInLatest', context, false).map(function (i) {
return i.getAttribute('data-folderid');
});
- user.Configuration.MyMediaExcludes = getCheckboxItems(".chkIncludeInMyMedia", context, false).map(function (i) {
+ user.Configuration.MyMediaExcludes = getCheckboxItems('.chkIncludeInMyMedia', context, false).map(function (i) {
return i.getAttribute('data-folderid');
});
- user.Configuration.GroupedFolders = getCheckboxItems(".chkGroupFolder", context, true).map(function (i) {
+ user.Configuration.GroupedFolders = getCheckboxItems('.chkGroupFolder', context, true).map(function (i) {
return i.getAttribute('data-folderid');
});
diff --git a/src/components/homesections/homesections.js b/src/components/homesections/homesections.js
index 0370777e5..3cd30893b 100644
--- a/src/components/homesections/homesections.js
+++ b/src/components/homesections/homesections.js
@@ -64,21 +64,21 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la
} else {
var noLibDescription;
if (user['Policy'] && user['Policy']['IsAdministrator']) {
- noLibDescription = globalize.translate("NoCreatedLibraries", '
', ' ');
+ noLibDescription = globalize.translate('NoCreatedLibraries', '
', ' ');
} else {
- noLibDescription = globalize.translate("AskAdminToCreateLibrary");
+ noLibDescription = globalize.translate('AskAdminToCreateLibrary');
}
html += '
';
- html += '
' + globalize.translate("MessageNothingHere") + ' ';
+ html += '
' + globalize.translate('MessageNothingHere') + ' ';
html += '
' + noLibDescription + '
';
html += '
';
elem.innerHTML = html;
- var createNowLink = elem.querySelector("#button-createLibrary");
+ var createNowLink = elem.querySelector('#button-createLibrary');
if (createNowLink) {
- createNowLink.addEventListener("click", function () {
- Dashboard.navigate("library.html");
+ createNowLink.addEventListener('click', function () {
+ Dashboard.navigate('library.html');
});
}
}
@@ -172,7 +172,7 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la
}
function getLibraryButtonsHtml(items) {
- var html = "";
+ var html = '';
html += '';
var numLines = 2;
- if (currentItemType === "MusicAlbum") {
+ if (currentItemType === 'MusicAlbum') {
numLines++;
}
@@ -242,19 +242,19 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
} else {
html += '
';
}
- html += lines[i] || " ";
- html += "
";
+ html += lines[i] || ' ';
+ html += '
';
}
- html += "";
- html += " ";
+ html += '';
+ html += '';
return html;
}
function getSearchImageDisplayUrl(url, provider) {
var apiClient = getApiClient();
- return apiClient.getUrl("Items/RemoteSearch/Image", { imageUrl: url, ProviderName: provider });
+ return apiClient.getUrl('Items/RemoteSearch/Image', { imageUrl: url, ProviderName: provider });
}
function submitIdentficationResult(page) {
@@ -262,16 +262,16 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
loading.show();
var options = {
- ReplaceAllImages: page.querySelector("#chkIdentifyReplaceImages").checked
+ ReplaceAllImages: page.querySelector('#chkIdentifyReplaceImages').checked
};
var apiClient = getApiClient();
apiClient.ajax({
- type: "POST",
- url: apiClient.getUrl("Items/RemoteSearch/Apply/" + currentItem.Id, options),
+ type: 'POST',
+ url: apiClient.getUrl('Items/RemoteSearch/Apply/' + currentItem.Id, options),
data: JSON.stringify(currentSearchResult),
- contentType: "application/json"
+ contentType: 'application/json'
}).then(function () {
@@ -292,45 +292,45 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
var apiClient = getApiClient();
- apiClient.getJSON(apiClient.getUrl("Items/" + item.Id + "/ExternalIdInfos")).then(function (idList) {
+ apiClient.getJSON(apiClient.getUrl('Items/' + item.Id + '/ExternalIdInfos')).then(function (idList) {
- var html = "";
+ var html = '';
for (var i = 0, length = idList.length; i < length; i++) {
var idInfo = idList[i];
- var id = "txtLookup" + idInfo.Key;
+ var id = 'txtLookup' + idInfo.Key;
html += '';
var fullName = idInfo.Name;
if (idInfo.Type) {
- fullName = idInfo.Name + " " + globalize.translate(idInfo.Type);
+ fullName = idInfo.Name + ' ' + globalize.translate(idInfo.Type);
}
- var idLabel = globalize.translate("LabelDynamicExternalId", fullName);
+ var idLabel = globalize.translate('LabelDynamicExternalId', fullName);
html += ' ';
- html += "
";
+ html += '';
}
- page.querySelector("#txtLookupName").value = "";
+ page.querySelector('#txtLookupName').value = '';
- if (item.Type === "Person" || item.Type === "BoxSet") {
+ if (item.Type === 'Person' || item.Type === 'BoxSet') {
- page.querySelector(".fldLookupYear").classList.add("hide");
- page.querySelector("#txtLookupYear").value = "";
+ page.querySelector('.fldLookupYear').classList.add('hide');
+ page.querySelector('#txtLookupYear').value = '';
} else {
- page.querySelector(".fldLookupYear").classList.remove("hide");
- page.querySelector("#txtLookupYear").value = "";
+ page.querySelector('.fldLookupYear').classList.remove('hide');
+ page.querySelector('#txtLookupYear').value = '';
}
- page.querySelector(".identifyProviderIds").innerHTML = html;
+ page.querySelector('.identifyProviderIds').innerHTML = html;
- page.querySelector(".formDialogHeaderTitle").innerHTML = globalize.translate("Identify");
+ page.querySelector('.formDialogHeaderTitle').innerHTML = globalize.translate('Identify');
});
}
@@ -338,7 +338,7 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
loading.show();
- require(["text!./itemidentifier.template.html"], function (template) {
+ require(['text!./itemidentifier.template.html'], function (template) {
var apiClient = getApiClient();
@@ -348,30 +348,30 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
currentItemType = currentItem.Type;
var dialogOptions = {
- size: "fullscreen-border",
+ size: 'fullscreen-border',
removeOnClose: true,
scrollY: false
};
if (layoutManager.tv) {
- dialogOptions.size = "fullscreen";
+ dialogOptions.size = 'fullscreen';
}
var dlg = dialogHelper.createDialog(dialogOptions);
- dlg.classList.add("formDialog");
- dlg.classList.add("recordingDialog");
+ dlg.classList.add('formDialog');
+ dlg.classList.add('recordingDialog');
- var html = "";
- html += globalize.translateDocument(template, "core");
+ var html = '';
+ html += globalize.translateDocument(template, 'core');
dlg.innerHTML = html;
// Has to be assigned a z-index after the call to .open()
- dlg.addEventListener("close", onDialogClosed);
+ dlg.addEventListener('close', onDialogClosed);
if (layoutManager.tv) {
- scrollHelper.centerFocus.on(dlg.querySelector(".formDialogContent"), false);
+ scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false);
}
if (item.Path) {
@@ -384,26 +384,26 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
dialogHelper.open(dlg);
- dlg.querySelector(".popupIdentifyForm").addEventListener("submit", function (e) {
+ dlg.querySelector('.popupIdentifyForm').addEventListener('submit', function (e) {
e.preventDefault();
searchForIdentificationResults(dlg);
return false;
});
- dlg.querySelector(".identifyOptionsForm").addEventListener("submit", function (e) {
+ dlg.querySelector('.identifyOptionsForm').addEventListener('submit', function (e) {
e.preventDefault();
submitIdentficationResult(dlg);
return false;
});
- dlg.querySelector(".btnCancel").addEventListener("click", function (e) {
+ dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
dialogHelper.close(dlg);
});
- dlg.classList.add("identifyDialog");
+ dlg.classList.add('identifyDialog');
showIdentificationForm(dlg, item);
loading.hide();
@@ -426,47 +426,47 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
currentItem = null;
currentItemType = itemType;
- require(["text!./itemidentifier.template.html"], function (template) {
+ require(['text!./itemidentifier.template.html'], function (template) {
var dialogOptions = {
- size: "fullscreen-border",
+ size: 'fullscreen-border',
removeOnClose: true,
scrollY: false
};
if (layoutManager.tv) {
- dialogOptions.size = "fullscreen";
+ dialogOptions.size = 'fullscreen';
}
var dlg = dialogHelper.createDialog(dialogOptions);
- dlg.classList.add("formDialog");
- dlg.classList.add("recordingDialog");
+ dlg.classList.add('formDialog');
+ dlg.classList.add('recordingDialog');
- var html = "";
- html += globalize.translateDocument(template, "core");
+ var html = '';
+ html += globalize.translateDocument(template, 'core');
dlg.innerHTML = html;
if (layoutManager.tv) {
- scrollHelper.centerFocus.on(dlg.querySelector(".formDialogContent"), false);
+ scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false);
}
dialogHelper.open(dlg);
- dlg.querySelector(".btnCancel").addEventListener("click", function (e) {
+ dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
dialogHelper.close(dlg);
});
- dlg.querySelector(".popupIdentifyForm").addEventListener("submit", function (e) {
+ dlg.querySelector('.popupIdentifyForm').addEventListener('submit', function (e) {
e.preventDefault();
searchForIdentificationResults(dlg);
return false;
});
- dlg.addEventListener("close", function () {
+ dlg.addEventListener('close', function () {
loading.hide();
var foundItem = hasChanges ? currentSearchResult : null;
@@ -474,7 +474,7 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
resolveFunc(foundItem);
});
- dlg.classList.add("identifyDialog");
+ dlg.classList.add('identifyDialog');
showIdentificationFormFindNew(dlg, itemName, itemYear, itemType);
});
@@ -482,20 +482,20 @@ define(["dialogHelper", "loading", "connectionManager", "require", "globalize",
function showIdentificationFormFindNew(dlg, itemName, itemYear, itemType) {
- dlg.querySelector("#txtLookupName").value = itemName;
+ dlg.querySelector('#txtLookupName').value = itemName;
- if (itemType === "Person" || itemType === "BoxSet") {
+ if (itemType === 'Person' || itemType === 'BoxSet') {
- dlg.querySelector(".fldLookupYear").classList.add("hide");
- dlg.querySelector("#txtLookupYear").value = "";
+ dlg.querySelector('.fldLookupYear').classList.add('hide');
+ dlg.querySelector('#txtLookupYear').value = '';
} else {
- dlg.querySelector(".fldLookupYear").classList.remove("hide");
- dlg.querySelector("#txtLookupYear").value = itemYear;
+ dlg.querySelector('.fldLookupYear').classList.remove('hide');
+ dlg.querySelector('#txtLookupYear').value = itemYear;
}
- dlg.querySelector(".formDialogHeaderTitle").innerHTML = globalize.translate("Search");
+ dlg.querySelector('.formDialogHeaderTitle').innerHTML = globalize.translate('Search');
}
return {
diff --git a/src/components/lazyloader/lazyloader-intersectionobserver.js b/src/components/lazyloader/lazyloader-intersectionobserver.js
index 5f8374260..8fe0d377d 100644
--- a/src/components/lazyloader/lazyloader-intersectionobserver.js
+++ b/src/components/lazyloader/lazyloader-intersectionobserver.js
@@ -17,7 +17,7 @@ define(['require', 'browser'], function (require, browser) {
var loadedCount = 0;
var callback = options.callback;
- observerOptions.rootMargin = "50%";
+ observerOptions.rootMargin = '50%';
var observerId = 'obs' + new Date().getTime();
diff --git a/src/components/lazyloader/lazyloader-scroll.js b/src/components/lazyloader/lazyloader-scroll.js
index 4930f6376..2704c0f7b 100644
--- a/src/components/lazyloader/lazyloader-scroll.js
+++ b/src/components/lazyloader/lazyloader-scroll.js
@@ -18,10 +18,10 @@ define(['visibleinviewport', 'dom', 'browser'], function (visibleinviewport, dom
}
if (browser.iOS) {
- dom.addEventListener(window, "orientationchange", resetThresholdsOnTimer, { passive: true });
+ dom.addEventListener(window, 'orientationchange', resetThresholdsOnTimer, { passive: true });
dom.addEventListener(window, 'resize', resetThresholdsOnTimer, { passive: true });
} else {
- dom.addEventListener(window, "orientationchange", resetThresholds, { passive: true });
+ dom.addEventListener(window, 'orientationchange', resetThresholds, { passive: true });
dom.addEventListener(window, 'resize', resetThresholds, { passive: true });
}
resetThresholds();
diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.js b/src/components/libraryoptionseditor/libraryoptionseditor.js
index d1dab9cb7..6fc93b3bd 100644
--- a/src/components/libraryoptionseditor/libraryoptionseditor.js
+++ b/src/components/libraryoptionseditor/libraryoptionseditor.js
@@ -1,59 +1,59 @@
-define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], function(globalize, dom) {
- "use strict";
+define(['globalize', 'dom', 'emby-checkbox', 'emby-select', 'emby-input'], function(globalize, dom) {
+ 'use strict';
function populateLanguages(parent) {
return ApiClient.getCultures().then(function(languages) {
- populateLanguagesIntoSelect(parent.querySelector("#selectLanguage"), languages);
- populateLanguagesIntoList(parent.querySelector(".subtitleDownloadLanguages"), languages);
+ populateLanguagesIntoSelect(parent.querySelector('#selectLanguage'), languages);
+ populateLanguagesIntoList(parent.querySelector('.subtitleDownloadLanguages'), languages);
});
}
function populateLanguagesIntoSelect(select, languages) {
- var html = "";
+ var html = '';
html += " ";
for (var i = 0; i < languages.length; i++) {
var culture = languages[i];
- html += "" + culture.DisplayName + " ";
+ html += "" + culture.DisplayName + ' ';
}
select.innerHTML = html;
}
function populateLanguagesIntoList(element, languages) {
- var html = "";
+ var html = '';
for (var i = 0; i < languages.length; i++) {
var culture = languages[i];
- html += '' + culture.DisplayName + " ";
+ html += '' + culture.DisplayName + ' ';
}
element.innerHTML = html;
}
function populateCountries(select) {
return ApiClient.getCountries().then(function(allCountries) {
- var html = "";
+ var html = '';
html += " ";
for (var i = 0; i < allCountries.length; i++) {
var culture = allCountries[i];
- html += "" + culture.DisplayName + " ";
+ html += "" + culture.DisplayName + ' ';
}
select.innerHTML = html;
});
}
function populateRefreshInterval(select) {
- var html = "";
- html += "" + globalize.translate("Never") + " ";
+ var html = '';
+ html += "" + globalize.translate('Never') + ' ';
html += [30, 60, 90].map(function(val) {
- return "" + globalize.translate("EveryNDays", val) + " ";
- }).join("");
+ return "" + globalize.translate('EveryNDays', val) + ' ';
+ }).join('');
select.innerHTML = html;
}
function renderMetadataReaders(page, plugins) {
- var html = "";
- var elem = page.querySelector(".metadataReaders");
+ var html = '';
+ var elem = page.querySelector('.metadataReaders');
- if (plugins.length < 1) return elem.innerHTML = "", elem.classList.add("hide"), !1;
- html += '' + globalize.translate("LabelMetadataReaders") + " ";
+ if (plugins.length < 1) return elem.innerHTML = '', elem.classList.add('hide'), !1;
+ html += '' + globalize.translate('LabelMetadataReaders') + ' ';
html += '';
for (var i = 0; i < plugins.length; i++) {
var plugin = plugins[i];
@@ -62,69 +62,69 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
html += '
';
html += '
';
html += plugin.Name;
- html += " ";
- html += "";
+ html += '';
+ html += '
';
if (i > 0) {
- html += ' ';
+ html += ' ';
} else if (plugins.length > 1) {
- html += ' ';
+ html += ' ';
}
- html += "";
+ html += '';
}
- html += "";
- html += '' + globalize.translate("LabelMetadataReadersHelp") + "
";
+ html += '';
+ html += '' + globalize.translate('LabelMetadataReadersHelp') + '
';
if (plugins.length < 2) {
- elem.classList.add("hide");
+ elem.classList.add('hide');
} else {
- elem.classList.remove("hide");
+ elem.classList.remove('hide');
}
elem.innerHTML = html;
return true;
}
function renderMetadataSavers(page, metadataSavers) {
- var html = "";
- var elem = page.querySelector(".metadataSavers");
- if (!metadataSavers.length) return elem.innerHTML = "", elem.classList.add("hide"), false;
- html += '' + globalize.translate("LabelMetadataSavers") + " ";
+ var html = '';
+ var elem = page.querySelector('.metadataSavers');
+ if (!metadataSavers.length) return elem.innerHTML = '', elem.classList.add('hide'), false;
+ html += '' + globalize.translate('LabelMetadataSavers') + ' ';
html += '';
for (var i = 0; i < metadataSavers.length; i++) {
var plugin = metadataSavers[i];
- html += '" + plugin.Name + " ";
+ html += '' + plugin.Name + ' ';
}
- html += "
";
- html += '' + globalize.translate("LabelMetadataSaversHelp") + "
";
+ html += '';
+ html += '' + globalize.translate('LabelMetadataSaversHelp') + '
';
elem.innerHTML = html;
- elem.classList.remove("hide");
+ elem.classList.remove('hide');
return true;
}
function getMetadataFetchersForTypeHtml(availableTypeOptions, libraryOptionsForType) {
- var html = "";
+ var html = '';
var plugins = availableTypeOptions.MetadataFetchers;
plugins = getOrderedPlugins(plugins, libraryOptionsForType.MetadataFetcherOrder || []);
if (!plugins.length) return html;
html += '';
}
- html += "";
- html += '' + globalize.translate("LabelMetadataDownloadersHelp") + "
";
- html += "";
+ html += '';
+ html += '' + globalize.translate('LabelMetadataDownloadersHelp') + '
';
+ html += '';
return html;
}
@@ -138,62 +138,62 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
}
function renderMetadataFetchers(page, availableOptions, libraryOptions) {
- var html = "";
- var elem = page.querySelector(".metadataFetchers");
+ var html = '';
+ var elem = page.querySelector('.metadataFetchers');
for (var i = 0; i < availableOptions.TypeOptions.length; i++) {
var availableTypeOptions = availableOptions.TypeOptions[i];
html += getMetadataFetchersForTypeHtml(availableTypeOptions, getTypeOptions(libraryOptions, availableTypeOptions.Type) || {});
}
elem.innerHTML = html;
if (html) {
- elem.classList.remove("hide");
- page.querySelector(".fldAutoRefreshInterval").classList.remove("hide");
- page.querySelector(".fldMetadataLanguage").classList.remove("hide");
- page.querySelector(".fldMetadataCountry").classList.remove("hide");
+ elem.classList.remove('hide');
+ page.querySelector('.fldAutoRefreshInterval').classList.remove('hide');
+ page.querySelector('.fldMetadataLanguage').classList.remove('hide');
+ page.querySelector('.fldMetadataCountry').classList.remove('hide');
} else {
- elem.classList.add("hide");
- page.querySelector(".fldAutoRefreshInterval").classList.add("hide");
- page.querySelector(".fldMetadataLanguage").classList.add("hide");
- page.querySelector(".fldMetadataCountry").classList.add("hide");
+ elem.classList.add('hide');
+ page.querySelector('.fldAutoRefreshInterval').classList.add('hide');
+ page.querySelector('.fldMetadataLanguage').classList.add('hide');
+ page.querySelector('.fldMetadataCountry').classList.add('hide');
}
return true;
}
function renderSubtitleFetchers(page, availableOptions, libraryOptions) {
- var html = "";
- var elem = page.querySelector(".subtitleFetchers");
+ var html = '';
+ var elem = page.querySelector('.subtitleFetchers');
var plugins = availableOptions.SubtitleFetchers;
plugins = getOrderedPlugins(plugins, libraryOptions.SubtitleFetcherOrder || []);
if (!plugins.length) return html;
- html += '' + globalize.translate("LabelSubtitleDownloaders") + " ";
+ html += '' + globalize.translate('LabelSubtitleDownloaders') + ' ';
html += '';
for (var i = 0; i < plugins.length; i++) {
var plugin = plugins[i];
html += '
';
if (i > 0) {
- html += '
';
+ html += '
';
} else if (plugins.length > 1) {
- html += '
';
+ html += '
';
}
- html += "
";
+ html += '';
}
- html += "";
- html += '' + globalize.translate("SubtitleDownloadersHelp") + "
";
+ html += '';
+ html += '' + globalize.translate('SubtitleDownloadersHelp') + '
';
elem.innerHTML = html;
}
function getImageFetchersForTypeHtml(availableTypeOptions, libraryOptionsForType) {
- var html = "";
+ var html = '';
var plugins = availableTypeOptions.ImageFetchers;
plugins = getOrderedPlugins(plugins, libraryOptionsForType.ImageFetcherOrder || []);
@@ -201,60 +201,60 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
html += '';
html += '
';
- html += '
' + globalize.translate("HeaderTypeImageFetchers", availableTypeOptions.Type) + " ";
+ html += '' + globalize.translate('HeaderTypeImageFetchers', availableTypeOptions.Type) + ' ';
var supportedImageTypes = availableTypeOptions.SupportedImageTypes || [];
- if (supportedImageTypes.length > 1 || 1 === supportedImageTypes.length && "Primary" !== supportedImageTypes[0]) {
- html += '' + globalize.translate("HeaderFetcherSettings") + " ";
+ if (supportedImageTypes.length > 1 || 1 === supportedImageTypes.length && 'Primary' !== supportedImageTypes[0]) {
+ html += '' + globalize.translate('HeaderFetcherSettings') + ' ';
}
- html += "";
+ html += '
';
html += '';
for (var i = 0; i < plugins.length; i++) {
var plugin = plugins[i];
html += '
';
if (i > 0) {
- html += '
';
+ html += '
';
} else if (plugins.length > 1) {
- html += '
';
+ html += '
';
}
- html += "
";
+ html += '';
}
- html += "";
- html += '' + globalize.translate("LabelImageFetchersHelp") + "
";
- html += "";
+ html += '';
+ html += '' + globalize.translate('LabelImageFetchersHelp') + '
';
+ html += '';
return html;
}
function renderImageFetchers(page, availableOptions, libraryOptions) {
- var html = "";
- var elem = page.querySelector(".imageFetchers");
+ var html = '';
+ var elem = page.querySelector('.imageFetchers');
for (var i = 0; i < availableOptions.TypeOptions.length; i++) {
var availableTypeOptions = availableOptions.TypeOptions[i];
html += getImageFetchersForTypeHtml(availableTypeOptions, getTypeOptions(libraryOptions, availableTypeOptions.Type) || {});
}
elem.innerHTML = html;
if (html) {
- elem.classList.remove("hide");
- page.querySelector(".chkDownloadImagesInAdvanceContainer").classList.remove("hide");
- page.querySelector(".chkSaveLocalContainer").classList.remove("hide");
+ elem.classList.remove('hide');
+ page.querySelector('.chkDownloadImagesInAdvanceContainer').classList.remove('hide');
+ page.querySelector('.chkSaveLocalContainer').classList.remove('hide');
} else {
- elem.classList.add("hide");
- page.querySelector(".chkDownloadImagesInAdvanceContainer").classList.add("hide");
- page.querySelector(".chkSaveLocalContainer").classList.add("hide");
+ elem.classList.add('hide');
+ page.querySelector('.chkDownloadImagesInAdvanceContainer').classList.add('hide');
+ page.querySelector('.chkSaveLocalContainer').classList.add('hide');
}
return true;
}
function populateMetadataSettings(parent, contentType, isNewLibrary) {
- var isNewLibrary = parent.classList.contains("newlibrary");
- return ApiClient.getJSON(ApiClient.getUrl("Libraries/AvailableOptions", {
+ var isNewLibrary = parent.classList.contains('newlibrary');
+ return ApiClient.getJSON(ApiClient.getUrl('Libraries/AvailableOptions', {
LibraryContentType: contentType,
IsNewLibrary: isNewLibrary
})).then(function(availableOptions) {
@@ -265,32 +265,32 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
renderMetadataFetchers(parent, availableOptions, {});
renderSubtitleFetchers(parent, availableOptions, {});
renderImageFetchers(parent, availableOptions, {});
- availableOptions.SubtitleFetchers.length ? parent.querySelector(".subtitleDownloadSettings").classList.remove("hide") : parent.querySelector(".subtitleDownloadSettings").classList.add("hide");
+ availableOptions.SubtitleFetchers.length ? parent.querySelector('.subtitleDownloadSettings').classList.remove('hide') : parent.querySelector('.subtitleDownloadSettings').classList.add('hide');
}).catch(function() {
return Promise.resolve();
});
}
function adjustSortableListElement(elem) {
- var btnSortable = elem.querySelector(".btnSortable");
- var inner = btnSortable.querySelector(".material-icons");
+ var btnSortable = elem.querySelector('.btnSortable');
+ var inner = btnSortable.querySelector('.material-icons');
if (elem.previousSibling) {
- btnSortable.title = globalize.translate("ButtonUp");
- btnSortable.classList.add("btnSortableMoveUp");
- btnSortable.classList.remove("btnSortableMoveDown");
- inner.classList.remove("keyboard_arrow_down");
- inner.classList.add("keyboard_arrow_up");
+ btnSortable.title = globalize.translate('ButtonUp');
+ btnSortable.classList.add('btnSortableMoveUp');
+ btnSortable.classList.remove('btnSortableMoveDown');
+ inner.classList.remove('keyboard_arrow_down');
+ inner.classList.add('keyboard_arrow_up');
} else {
- btnSortable.title = globalize.translate("ButtonDown");
- btnSortable.classList.remove("btnSortableMoveUp");
- btnSortable.classList.add("btnSortableMoveDown");
- inner.classList.remove("keyboard_arrow_up");
- inner.classList.add("keyboard_arrow_down");
+ btnSortable.title = globalize.translate('ButtonDown');
+ btnSortable.classList.remove('btnSortableMoveUp');
+ btnSortable.classList.add('btnSortableMoveDown');
+ inner.classList.remove('keyboard_arrow_up');
+ inner.classList.add('keyboard_arrow_down');
}
}
function showImageOptionsForType(type) {
- require(["imageoptionseditor"], function(ImageOptionsEditor) {
+ require(['imageoptionseditor'], function(ImageOptionsEditor) {
var typeOptions = getTypeOptions(currentLibraryOptions, type);
typeOptions || (typeOptions = {
Type: type
@@ -301,34 +301,34 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
}
function onImageFetchersContainerClick(e) {
- var btnImageOptionsForType = dom.parentWithClass(e.target, "btnImageOptionsForType");
+ var btnImageOptionsForType = dom.parentWithClass(e.target, 'btnImageOptionsForType');
if (btnImageOptionsForType) {
- return void showImageOptionsForType(dom.parentWithClass(btnImageOptionsForType, "imageFetcher").getAttribute("data-type"));
+ return void showImageOptionsForType(dom.parentWithClass(btnImageOptionsForType, 'imageFetcher').getAttribute('data-type'));
}
onSortableContainerClick.call(this, e);
}
function onSortableContainerClick(e) {
- var btnSortable = dom.parentWithClass(e.target, "btnSortable");
+ var btnSortable = dom.parentWithClass(e.target, 'btnSortable');
if (btnSortable) {
- var li = dom.parentWithClass(btnSortable, "sortableOption");
- var list = dom.parentWithClass(li, "paperList");
- if (btnSortable.classList.contains("btnSortableMoveDown")) {
+ var li = dom.parentWithClass(btnSortable, 'sortableOption');
+ var list = dom.parentWithClass(li, 'paperList');
+ if (btnSortable.classList.contains('btnSortableMoveDown')) {
var next = li.nextSibling;
next && (li.parentNode.removeChild(li), next.parentNode.insertBefore(li, next.nextSibling));
} else {
var prev = li.previousSibling;
prev && (li.parentNode.removeChild(li), prev.parentNode.insertBefore(li, prev));
}
- Array.prototype.forEach.call(list.querySelectorAll(".sortableOption"), adjustSortableListElement);
+ Array.prototype.forEach.call(list.querySelectorAll('.sortableOption'), adjustSortableListElement);
}
}
function bindEvents(parent) {
- parent.querySelector(".metadataReaders").addEventListener("click", onSortableContainerClick);
- parent.querySelector(".subtitleFetchers").addEventListener("click", onSortableContainerClick);
- parent.querySelector(".metadataFetchers").addEventListener("click", onSortableContainerClick);
- parent.querySelector(".imageFetchers").addEventListener("click", onImageFetchersContainerClick);
+ parent.querySelector('.metadataReaders').addEventListener('click', onSortableContainerClick);
+ parent.querySelector('.subtitleFetchers').addEventListener('click', onSortableContainerClick);
+ parent.querySelector('.metadataFetchers').addEventListener('click', onSortableContainerClick);
+ parent.querySelector('.imageFetchers').addEventListener('click', onImageFetchersContainerClick);
}
function embed(parent, contentType, libraryOptions) {
@@ -337,15 +337,15 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
};
currentAvailableOptions = null;
var isNewLibrary = null === libraryOptions;
- isNewLibrary && parent.classList.add("newlibrary");
+ isNewLibrary && parent.classList.add('newlibrary');
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest;
- xhr.open("GET", "components/libraryoptionseditor/libraryoptionseditor.template.html", true);
+ xhr.open('GET', 'components/libraryoptionseditor/libraryoptionseditor.template.html', true);
xhr.onload = function(e) {
var template = this.response;
parent.innerHTML = globalize.translateDocument(template);
- populateRefreshInterval(parent.querySelector("#selectAutoRefreshInterval"));
- var promises = [populateLanguages(parent), populateCountries(parent.querySelector("#selectCountry"))];
+ populateRefreshInterval(parent.querySelector('#selectAutoRefreshInterval'));
+ var promises = [populateLanguages(parent), populateCountries(parent.querySelector('#selectCountry'))];
Promise.all(promises).then(function() {
return setContentType(parent, contentType).then(function() {
libraryOptions && setLibraryOptions(parent, libraryOptions);
@@ -359,69 +359,69 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
}
function setAdvancedVisible(parent, visible) {
- var elems = parent.querySelectorAll(".advanced");
+ var elems = parent.querySelectorAll('.advanced');
for (var i = 0; i < elems.length; i++) {
- visible ? elems[i].classList.remove("advancedHide") : elems[i].classList.add("advancedHide");
+ visible ? elems[i].classList.remove('advancedHide') : elems[i].classList.add('advancedHide');
}
}
function setContentType(parent, contentType) {
- if (contentType === "homevideos" || contentType === "photos") {
- parent.querySelector(".chkEnablePhotosContainer").classList.remove("hide");
+ if (contentType === 'homevideos' || contentType === 'photos') {
+ parent.querySelector('.chkEnablePhotosContainer').classList.remove('hide');
} else {
- parent.querySelector(".chkEnablePhotosContainer").classList.add("hide");
+ parent.querySelector('.chkEnablePhotosContainer').classList.add('hide');
}
- if (contentType !== "tvshows" && contentType !== "movies" && contentType !== "homevideos" && contentType !== "musicvideos" && contentType !== "mixed") {
- parent.querySelector(".chapterSettingsSection").classList.add("hide");
+ if (contentType !== 'tvshows' && contentType !== 'movies' && contentType !== 'homevideos' && contentType !== 'musicvideos' && contentType !== 'mixed') {
+ parent.querySelector('.chapterSettingsSection').classList.add('hide');
} else {
- parent.querySelector(".chapterSettingsSection").classList.remove("hide");
+ parent.querySelector('.chapterSettingsSection').classList.remove('hide');
}
- if (contentType === "tvshows") {
- parent.querySelector(".chkImportMissingEpisodesContainer").classList.remove("hide");
- parent.querySelector(".chkAutomaticallyGroupSeriesContainer").classList.remove("hide");
- parent.querySelector(".fldSeasonZeroDisplayName").classList.remove("hide");
- parent.querySelector("#txtSeasonZeroName").setAttribute("required", "required");
+ if (contentType === 'tvshows') {
+ parent.querySelector('.chkImportMissingEpisodesContainer').classList.remove('hide');
+ parent.querySelector('.chkAutomaticallyGroupSeriesContainer').classList.remove('hide');
+ parent.querySelector('.fldSeasonZeroDisplayName').classList.remove('hide');
+ parent.querySelector('#txtSeasonZeroName').setAttribute('required', 'required');
} else {
- parent.querySelector(".chkImportMissingEpisodesContainer").classList.add("hide");
- parent.querySelector(".chkAutomaticallyGroupSeriesContainer").classList.add("hide");
- parent.querySelector(".fldSeasonZeroDisplayName").classList.add("hide");
- parent.querySelector("#txtSeasonZeroName").removeAttribute("required");
+ parent.querySelector('.chkImportMissingEpisodesContainer').classList.add('hide');
+ parent.querySelector('.chkAutomaticallyGroupSeriesContainer').classList.add('hide');
+ parent.querySelector('.fldSeasonZeroDisplayName').classList.add('hide');
+ parent.querySelector('#txtSeasonZeroName').removeAttribute('required');
}
- if (contentType === "books" || contentType === "boxsets" || contentType === "playlists" || contentType === "music") {
- parent.querySelector(".chkEnableEmbeddedTitlesContainer").classList.add("hide");
+ if (contentType === 'books' || contentType === 'boxsets' || contentType === 'playlists' || contentType === 'music') {
+ parent.querySelector('.chkEnableEmbeddedTitlesContainer').classList.add('hide');
} else {
- parent.querySelector(".chkEnableEmbeddedTitlesContainer").classList.remove("hide");
+ parent.querySelector('.chkEnableEmbeddedTitlesContainer').classList.remove('hide');
}
- if (contentType === "tvshows") {
- parent.querySelector(".chkEnableEmbeddedEpisodeInfosContainer").classList.remove("hide");
+ if (contentType === 'tvshows') {
+ parent.querySelector('.chkEnableEmbeddedEpisodeInfosContainer').classList.remove('hide');
} else {
- parent.querySelector(".chkEnableEmbeddedEpisodeInfosContainer").classList.add("hide");
+ parent.querySelector('.chkEnableEmbeddedEpisodeInfosContainer').classList.add('hide');
}
return populateMetadataSettings(parent, contentType);
}
function setSubtitleFetchersIntoOptions(parent, options) {
- options.DisabledSubtitleFetchers = Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll(".chkSubtitleFetcher"), function(elem) {
+ options.DisabledSubtitleFetchers = Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll('.chkSubtitleFetcher'), function(elem) {
return !elem.checked;
}), function(elem) {
- return elem.getAttribute("data-pluginname");
+ return elem.getAttribute('data-pluginname');
});
- options.SubtitleFetcherOrder = Array.prototype.map.call(parent.querySelectorAll(".subtitleFetcherItem"), function(elem) {
- return elem.getAttribute("data-pluginname");
+ options.SubtitleFetcherOrder = Array.prototype.map.call(parent.querySelectorAll('.subtitleFetcherItem'), function(elem) {
+ return elem.getAttribute('data-pluginname');
});
}
function setMetadataFetchersIntoOptions(parent, options) {
- var sections = parent.querySelectorAll(".metadataFetcher");
+ var sections = parent.querySelectorAll('.metadataFetcher');
for (var i = 0; i < sections.length; i++) {
var section = sections[i];
- var type = section.getAttribute("data-type");
+ var type = section.getAttribute('data-type');
var typeOptions = getTypeOptions(options, type);
if (!typeOptions) {
typeOptions = {
@@ -429,23 +429,23 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
};
options.TypeOptions.push(typeOptions);
}
- typeOptions.MetadataFetchers = Array.prototype.map.call(Array.prototype.filter.call(section.querySelectorAll(".chkMetadataFetcher"), function(elem) {
+ typeOptions.MetadataFetchers = Array.prototype.map.call(Array.prototype.filter.call(section.querySelectorAll('.chkMetadataFetcher'), function(elem) {
return elem.checked;
}), function(elem) {
- return elem.getAttribute("data-pluginname");
+ return elem.getAttribute('data-pluginname');
});
- typeOptions.MetadataFetcherOrder = Array.prototype.map.call(section.querySelectorAll(".metadataFetcherItem"), function(elem) {
- return elem.getAttribute("data-pluginname");
+ typeOptions.MetadataFetcherOrder = Array.prototype.map.call(section.querySelectorAll('.metadataFetcherItem'), function(elem) {
+ return elem.getAttribute('data-pluginname');
});
}
}
function setImageFetchersIntoOptions(parent, options) {
- var sections = parent.querySelectorAll(".imageFetcher");
+ var sections = parent.querySelectorAll('.imageFetcher');
for (var i = 0; i < sections.length; i++) {
var section = sections[i];
- var type = section.getAttribute("data-type");
+ var type = section.getAttribute('data-type');
var typeOptions = getTypeOptions(options, type);
if (!typeOptions) {
typeOptions = {
@@ -454,14 +454,14 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
options.TypeOptions.push(typeOptions);
}
- typeOptions.ImageFetchers = Array.prototype.map.call(Array.prototype.filter.call(section.querySelectorAll(".chkImageFetcher"), function(elem) {
+ typeOptions.ImageFetchers = Array.prototype.map.call(Array.prototype.filter.call(section.querySelectorAll('.chkImageFetcher'), function(elem) {
return elem.checked;
}), function(elem) {
- return elem.getAttribute("data-pluginname");
+ return elem.getAttribute('data-pluginname');
});
- typeOptions.ImageFetcherOrder = Array.prototype.map.call(section.querySelectorAll(".imageFetcherItem"), function(elem) {
- return elem.getAttribute("data-pluginname");
+ typeOptions.ImageFetcherOrder = Array.prototype.map.call(section.querySelectorAll('.imageFetcherItem'), function(elem) {
+ return elem.getAttribute('data-pluginname');
});
}
}
@@ -485,40 +485,40 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
function getLibraryOptions(parent) {
var options = {
EnableArchiveMediaFiles: false,
- EnablePhotos: parent.querySelector(".chkEnablePhotos").checked,
- EnableRealtimeMonitor: parent.querySelector(".chkEnableRealtimeMonitor").checked,
- ExtractChapterImagesDuringLibraryScan: parent.querySelector(".chkExtractChaptersDuringLibraryScan").checked,
- EnableChapterImageExtraction: parent.querySelector(".chkExtractChapterImages").checked,
- DownloadImagesInAdvance: parent.querySelector("#chkDownloadImagesInAdvance").checked,
+ EnablePhotos: parent.querySelector('.chkEnablePhotos').checked,
+ EnableRealtimeMonitor: parent.querySelector('.chkEnableRealtimeMonitor').checked,
+ ExtractChapterImagesDuringLibraryScan: parent.querySelector('.chkExtractChaptersDuringLibraryScan').checked,
+ EnableChapterImageExtraction: parent.querySelector('.chkExtractChapterImages').checked,
+ DownloadImagesInAdvance: parent.querySelector('#chkDownloadImagesInAdvance').checked,
EnableInternetProviders: true,
- ImportMissingEpisodes: parent.querySelector("#chkImportMissingEpisodes").checked,
- SaveLocalMetadata: parent.querySelector("#chkSaveLocal").checked,
- EnableAutomaticSeriesGrouping: parent.querySelector(".chkAutomaticallyGroupSeries").checked,
- PreferredMetadataLanguage: parent.querySelector("#selectLanguage").value,
- MetadataCountryCode: parent.querySelector("#selectCountry").value,
- SeasonZeroDisplayName: parent.querySelector("#txtSeasonZeroName").value,
- AutomaticRefreshIntervalDays: parseInt(parent.querySelector("#selectAutoRefreshInterval").value),
- EnableEmbeddedTitles: parent.querySelector("#chkEnableEmbeddedTitles").checked,
- EnableEmbeddedEpisodeInfos: parent.querySelector("#chkEnableEmbeddedEpisodeInfos").checked,
- SkipSubtitlesIfEmbeddedSubtitlesPresent: parent.querySelector("#chkSkipIfGraphicalSubsPresent").checked,
- SkipSubtitlesIfAudioTrackMatches: parent.querySelector("#chkSkipIfAudioTrackPresent").checked,
- SaveSubtitlesWithMedia: parent.querySelector("#chkSaveSubtitlesLocally").checked,
- RequirePerfectSubtitleMatch: parent.querySelector("#chkRequirePerfectMatch").checked,
- MetadataSavers: Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll(".chkMetadataSaver"), function(elem) {
+ ImportMissingEpisodes: parent.querySelector('#chkImportMissingEpisodes').checked,
+ SaveLocalMetadata: parent.querySelector('#chkSaveLocal').checked,
+ EnableAutomaticSeriesGrouping: parent.querySelector('.chkAutomaticallyGroupSeries').checked,
+ PreferredMetadataLanguage: parent.querySelector('#selectLanguage').value,
+ MetadataCountryCode: parent.querySelector('#selectCountry').value,
+ SeasonZeroDisplayName: parent.querySelector('#txtSeasonZeroName').value,
+ AutomaticRefreshIntervalDays: parseInt(parent.querySelector('#selectAutoRefreshInterval').value),
+ EnableEmbeddedTitles: parent.querySelector('#chkEnableEmbeddedTitles').checked,
+ EnableEmbeddedEpisodeInfos: parent.querySelector('#chkEnableEmbeddedEpisodeInfos').checked,
+ SkipSubtitlesIfEmbeddedSubtitlesPresent: parent.querySelector('#chkSkipIfGraphicalSubsPresent').checked,
+ SkipSubtitlesIfAudioTrackMatches: parent.querySelector('#chkSkipIfAudioTrackPresent').checked,
+ SaveSubtitlesWithMedia: parent.querySelector('#chkSaveSubtitlesLocally').checked,
+ RequirePerfectSubtitleMatch: parent.querySelector('#chkRequirePerfectMatch').checked,
+ MetadataSavers: Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll('.chkMetadataSaver'), function(elem) {
return elem.checked;
}), function(elem) {
- return elem.getAttribute("data-pluginname");
+ return elem.getAttribute('data-pluginname');
}),
TypeOptions: []
};
- options.LocalMetadataReaderOrder = Array.prototype.map.call(parent.querySelectorAll(".localReaderOption"), function(elem) {
- return elem.getAttribute("data-pluginname");
+ options.LocalMetadataReaderOrder = Array.prototype.map.call(parent.querySelectorAll('.localReaderOption'), function(elem) {
+ return elem.getAttribute('data-pluginname');
});
- options.SubtitleDownloadLanguages = Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll(".chkSubtitleLanguage"), function(elem) {
+ options.SubtitleDownloadLanguages = Array.prototype.map.call(Array.prototype.filter.call(parent.querySelectorAll('.chkSubtitleLanguage'), function(elem) {
return elem.checked;
}), function(elem) {
- return elem.getAttribute("data-lang");
+ return elem.getAttribute('data-lang');
});
setSubtitleFetchersIntoOptions(parent, options);
setMetadataFetchersIntoOptions(parent, options);
@@ -539,29 +539,29 @@ define(["globalize", "dom", "emby-checkbox", "emby-select", "emby-input"], funct
function setLibraryOptions(parent, options) {
currentLibraryOptions = options;
currentAvailableOptions = parent.availableOptions;
- parent.querySelector("#selectLanguage").value = options.PreferredMetadataLanguage || "";
- parent.querySelector("#selectCountry").value = options.MetadataCountryCode || "";
- parent.querySelector("#selectAutoRefreshInterval").value = options.AutomaticRefreshIntervalDays || "0";
- parent.querySelector("#txtSeasonZeroName").value = options.SeasonZeroDisplayName || "Specials";
- parent.querySelector(".chkEnablePhotos").checked = options.EnablePhotos;
- parent.querySelector(".chkEnableRealtimeMonitor").checked = options.EnableRealtimeMonitor;
- parent.querySelector(".chkExtractChaptersDuringLibraryScan").checked = options.ExtractChapterImagesDuringLibraryScan;
- parent.querySelector(".chkExtractChapterImages").checked = options.EnableChapterImageExtraction;
- parent.querySelector("#chkDownloadImagesInAdvance").checked = options.DownloadImagesInAdvance;
- parent.querySelector("#chkSaveLocal").checked = options.SaveLocalMetadata;
- parent.querySelector("#chkImportMissingEpisodes").checked = options.ImportMissingEpisodes;
- parent.querySelector(".chkAutomaticallyGroupSeries").checked = options.EnableAutomaticSeriesGrouping;
- parent.querySelector("#chkEnableEmbeddedTitles").checked = options.EnableEmbeddedTitles;
- parent.querySelector("#chkEnableEmbeddedEpisodeInfos").checked = options.EnableEmbeddedEpisodeInfos;
- parent.querySelector("#chkSkipIfGraphicalSubsPresent").checked = options.SkipSubtitlesIfEmbeddedSubtitlesPresent;
- parent.querySelector("#chkSaveSubtitlesLocally").checked = options.SaveSubtitlesWithMedia;
- parent.querySelector("#chkSkipIfAudioTrackPresent").checked = options.SkipSubtitlesIfAudioTrackMatches;
- parent.querySelector("#chkRequirePerfectMatch").checked = options.RequirePerfectSubtitleMatch;
- Array.prototype.forEach.call(parent.querySelectorAll(".chkMetadataSaver"), function(elem) {
- elem.checked = options.MetadataSavers ? -1 !== options.MetadataSavers.indexOf(elem.getAttribute("data-pluginname")) : "true" === elem.getAttribute("data-defaultenabled");
+ parent.querySelector('#selectLanguage').value = options.PreferredMetadataLanguage || '';
+ parent.querySelector('#selectCountry').value = options.MetadataCountryCode || '';
+ parent.querySelector('#selectAutoRefreshInterval').value = options.AutomaticRefreshIntervalDays || '0';
+ parent.querySelector('#txtSeasonZeroName').value = options.SeasonZeroDisplayName || 'Specials';
+ parent.querySelector('.chkEnablePhotos').checked = options.EnablePhotos;
+ parent.querySelector('.chkEnableRealtimeMonitor').checked = options.EnableRealtimeMonitor;
+ parent.querySelector('.chkExtractChaptersDuringLibraryScan').checked = options.ExtractChapterImagesDuringLibraryScan;
+ parent.querySelector('.chkExtractChapterImages').checked = options.EnableChapterImageExtraction;
+ parent.querySelector('#chkDownloadImagesInAdvance').checked = options.DownloadImagesInAdvance;
+ parent.querySelector('#chkSaveLocal').checked = options.SaveLocalMetadata;
+ parent.querySelector('#chkImportMissingEpisodes').checked = options.ImportMissingEpisodes;
+ parent.querySelector('.chkAutomaticallyGroupSeries').checked = options.EnableAutomaticSeriesGrouping;
+ parent.querySelector('#chkEnableEmbeddedTitles').checked = options.EnableEmbeddedTitles;
+ parent.querySelector('#chkEnableEmbeddedEpisodeInfos').checked = options.EnableEmbeddedEpisodeInfos;
+ parent.querySelector('#chkSkipIfGraphicalSubsPresent').checked = options.SkipSubtitlesIfEmbeddedSubtitlesPresent;
+ parent.querySelector('#chkSaveSubtitlesLocally').checked = options.SaveSubtitlesWithMedia;
+ parent.querySelector('#chkSkipIfAudioTrackPresent').checked = options.SkipSubtitlesIfAudioTrackMatches;
+ parent.querySelector('#chkRequirePerfectMatch').checked = options.RequirePerfectSubtitleMatch;
+ Array.prototype.forEach.call(parent.querySelectorAll('.chkMetadataSaver'), function(elem) {
+ elem.checked = options.MetadataSavers ? -1 !== options.MetadataSavers.indexOf(elem.getAttribute('data-pluginname')) : 'true' === elem.getAttribute('data-defaultenabled');
});
- Array.prototype.forEach.call(parent.querySelectorAll(".chkSubtitleLanguage"), function(elem) {
- elem.checked = !!options.SubtitleDownloadLanguages && -1 !== options.SubtitleDownloadLanguages.indexOf(elem.getAttribute("data-lang"));
+ Array.prototype.forEach.call(parent.querySelectorAll('.chkSubtitleLanguage'), function(elem) {
+ elem.checked = !!options.SubtitleDownloadLanguages && -1 !== options.SubtitleDownloadLanguages.indexOf(elem.getAttribute('data-lang'));
});
renderMetadataReaders(parent, getOrderedPlugins(parent.availableOptions.MetadataReaders, options.LocalMetadataReaderOrder || []));
renderMetadataFetchers(parent, parent.availableOptions, options);
diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js
index bb00cf65c..0743b3528 100644
--- a/src/components/listview/listview.js
+++ b/src/components/listview/listview.js
@@ -73,7 +73,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
var options = {
maxWidth: width * 2,
- type: "Primary"
+ type: 'Primary'
};
if (item.ImageTags && item.ImageTags.Primary) {
@@ -106,7 +106,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
var options = {
maxWidth: width * 2,
- type: "Primary"
+ type: 'Primary'
};
if (item.ChannelId && item.ChannelPrimaryImageTag) {
@@ -219,7 +219,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
}
- var cssClass = "listItem";
+ var cssClass = 'listItem';
if (options.border || (options.highlight !== false && !layoutManager.tv)) {
cssClass += ' listItem-border';
@@ -236,7 +236,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
var downloadWidth = 80;
if (isLargeStyle) {
- cssClass += " listItem-largeImage";
+ cssClass += ' listItem-largeImage';
downloadWidth = 500;
}
@@ -355,7 +355,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
});
if (options.showIndexNumber && item.IndexNumber != null) {
- displayName = item.IndexNumber + ". " + displayName;
+ displayName = item.IndexNumber + '. ' + displayName;
}
if (options.showParentTitle && options.parentTitleWithTitle) {
diff --git a/src/components/loading/loading.js b/src/components/loading/loading.js
index d6c00347c..9a9aa3ca7 100644
--- a/src/components/loading/loading.js
+++ b/src/components/loading/loading.js
@@ -19,7 +19,7 @@ define(['components/loading/loadingLegacy', 'browser', 'css!./loading'], functio
if (!elem) {
- elem = document.createElement("div");
+ elem = document.createElement('div');
loadingElem = elem;
elem.classList.add('docspinner');
diff --git a/src/components/loading/loadingLegacy.js b/src/components/loading/loadingLegacy.js
index 757cea016..d766a4aca 100644
--- a/src/components/loading/loadingLegacy.js
+++ b/src/components/loading/loadingLegacy.js
@@ -7,7 +7,7 @@ define(['require', 'css!./loadingLegacy'], function (require) {
show: function () {
var elem = loadingElem;
if (!elem) {
- elem = document.createElement("img");
+ elem = document.createElement('img');
elem.src = require.toUrl('.').split('?')[0] + '/loader.gif';
loadingElem = elem;
diff --git a/src/components/logoscreensaver/plugin.js b/src/components/logoscreensaver/plugin.js
index 2becfad0c..f9dd90198 100644
--- a/src/components/logoscreensaver/plugin.js
+++ b/src/components/logoscreensaver/plugin.js
@@ -1,12 +1,12 @@
-define(["pluginManager"], function (pluginManager) {
+define(['pluginManager'], function (pluginManager) {
return function () {
var self = this;
- self.name = "Logo ScreenSaver";
- self.type = "screensaver";
- self.id = "logoscreensaver";
+ self.name = 'Logo ScreenSaver';
+ self.type = 'screensaver';
+ self.id = 'logoscreensaver';
self.supportsAnonymous = true;
var interval;
@@ -24,7 +24,7 @@ define(["pluginManager"], function (pluginManager) {
rotateOut
];
- var elem = document.querySelector(".logoScreenSaverImage");
+ var elem = document.querySelector('.logoScreenSaverImage');
if (elem && elem.animate) {
var random = getRandomInt(0, animations.length - 1);
@@ -39,96 +39,96 @@ define(["pluginManager"], function (pluginManager) {
function bounceInLeft(elem, iterations) {
var keyframes = [
- { transform: "translate3d(-3000px, 0, 0)", opacity: "0", offset: 0 },
- { transform: "translate3d(25px, 0, 0)", opacity: "1", offset: 0.6 },
- { transform: "translate3d(-100px, 0, 0)", offset: 0.75 },
- { transform: "translate3d(5px, 0, 0)", offset: 0.9 },
- { transform: "none", opacity: "1", offset: 1 }];
- var timing = { duration: 900, iterations: iterations, easing: "cubic-bezier(0.215, 0.610, 0.355, 1.000)" };
+ { transform: 'translate3d(-3000px, 0, 0)', opacity: '0', offset: 0 },
+ { transform: 'translate3d(25px, 0, 0)', opacity: '1', offset: 0.6 },
+ { transform: 'translate3d(-100px, 0, 0)', offset: 0.75 },
+ { transform: 'translate3d(5px, 0, 0)', offset: 0.9 },
+ { transform: 'none', opacity: '1', offset: 1 }];
+ var timing = { duration: 900, iterations: iterations, easing: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)' };
return elem.animate(keyframes, timing);
}
function bounceInRight(elem, iterations) {
var keyframes = [
- { transform: "translate3d(3000px, 0, 0)", opacity: "0", offset: 0 },
- { transform: "translate3d(-25px, 0, 0)", opacity: "1", offset: 0.6 },
- { transform: "translate3d(100px, 0, 0)", offset: 0.75 },
- { transform: "translate3d(-5px, 0, 0)", offset: 0.9 },
- { transform: "none", opacity: "1", offset: 1 }];
- var timing = { duration: 900, iterations: iterations, easing: "cubic-bezier(0.215, 0.610, 0.355, 1.000)" };
+ { transform: 'translate3d(3000px, 0, 0)', opacity: '0', offset: 0 },
+ { transform: 'translate3d(-25px, 0, 0)', opacity: '1', offset: 0.6 },
+ { transform: 'translate3d(100px, 0, 0)', offset: 0.75 },
+ { transform: 'translate3d(-5px, 0, 0)', offset: 0.9 },
+ { transform: 'none', opacity: '1', offset: 1 }];
+ var timing = { duration: 900, iterations: iterations, easing: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)' };
return elem.animate(keyframes, timing);
}
function shake(elem, iterations) {
var keyframes = [
- { transform: "translate3d(0, 0, 0)", offset: 0 },
- { transform: "translate3d(-10px, 0, 0)", offset: 0.1 },
- { transform: "translate3d(10px, 0, 0)", offset: 0.2 },
- { transform: "translate3d(-10px, 0, 0)", offset: 0.3 },
- { transform: "translate3d(10px, 0, 0)", offset: 0.4 },
- { transform: "translate3d(-10px, 0, 0)", offset: 0.5 },
- { transform: "translate3d(10px, 0, 0)", offset: 0.6 },
- { transform: "translate3d(-10px, 0, 0)", offset: 0.7 },
- { transform: "translate3d(10px, 0, 0)", offset: 0.8 },
- { transform: "translate3d(-10px, 0, 0)", offset: 0.9 },
- { transform: "translate3d(0, 0, 0)", offset: 1 }];
+ { transform: 'translate3d(0, 0, 0)', offset: 0 },
+ { transform: 'translate3d(-10px, 0, 0)', offset: 0.1 },
+ { transform: 'translate3d(10px, 0, 0)', offset: 0.2 },
+ { transform: 'translate3d(-10px, 0, 0)', offset: 0.3 },
+ { transform: 'translate3d(10px, 0, 0)', offset: 0.4 },
+ { transform: 'translate3d(-10px, 0, 0)', offset: 0.5 },
+ { transform: 'translate3d(10px, 0, 0)', offset: 0.6 },
+ { transform: 'translate3d(-10px, 0, 0)', offset: 0.7 },
+ { transform: 'translate3d(10px, 0, 0)', offset: 0.8 },
+ { transform: 'translate3d(-10px, 0, 0)', offset: 0.9 },
+ { transform: 'translate3d(0, 0, 0)', offset: 1 }];
var timing = { duration: 900, iterations: iterations };
return elem.animate(keyframes, timing);
}
function swing(elem, iterations) {
var keyframes = [
- { transform: "translate(0%)", offset: 0 },
- { transform: "rotate3d(0, 0, 1, 15deg)", offset: 0.2 },
- { transform: "rotate3d(0, 0, 1, -10deg)", offset: 0.4 },
- { transform: "rotate3d(0, 0, 1, 5deg)", offset: 0.6 },
- { transform: "rotate3d(0, 0, 1, -5deg)", offset: 0.8 },
- { transform: "rotate3d(0, 0, 1, 0deg)", offset: 1 }];
+ { transform: 'translate(0%)', offset: 0 },
+ { transform: 'rotate3d(0, 0, 1, 15deg)', offset: 0.2 },
+ { transform: 'rotate3d(0, 0, 1, -10deg)', offset: 0.4 },
+ { transform: 'rotate3d(0, 0, 1, 5deg)', offset: 0.6 },
+ { transform: 'rotate3d(0, 0, 1, -5deg)', offset: 0.8 },
+ { transform: 'rotate3d(0, 0, 1, 0deg)', offset: 1 }];
var timing = { duration: 900, iterations: iterations };
return elem.animate(keyframes, timing);
}
function tada(elem, iterations) {
var keyframes = [
- { transform: "scale3d(1, 1, 1)", offset: 0 },
- { transform: "scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)", offset: 0.1 },
- { transform: "scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)", offset: 0.2 },
- { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)", offset: 0.3 },
- { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)", offset: 0.4 },
- { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)", offset: 0.5 },
- { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)", offset: 0.6 },
- { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)", offset: 0.7 },
- { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)", offset: 0.8 },
- { transform: "scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)", offset: 0.9 },
- { transform: "scale3d(1, 1, 1)", offset: 1 }];
+ { transform: 'scale3d(1, 1, 1)', offset: 0 },
+ { transform: 'scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)', offset: 0.1 },
+ { transform: 'scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg)', offset: 0.2 },
+ { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)', offset: 0.3 },
+ { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)', offset: 0.4 },
+ { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)', offset: 0.5 },
+ { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)', offset: 0.6 },
+ { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)', offset: 0.7 },
+ { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg)', offset: 0.8 },
+ { transform: 'scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg)', offset: 0.9 },
+ { transform: 'scale3d(1, 1, 1)', offset: 1 }];
var timing = { duration: 900, iterations: iterations };
return elem.animate(keyframes, timing);
}
function wobble(elem, iterations) {
var keyframes = [
- { transform: "translate(0%)", offset: 0 },
- { transform: "translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)", offset: 0.15 },
- { transform: "translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)", offset: 0.45 },
- { transform: "translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)", offset: 0.6 },
- { transform: "translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)", offset: 0.75 },
- { transform: "translateX(0%)", offset: 1 }];
+ { transform: 'translate(0%)', offset: 0 },
+ { transform: 'translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg)', offset: 0.15 },
+ { transform: 'translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg)', offset: 0.45 },
+ { transform: 'translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg)', offset: 0.6 },
+ { transform: 'translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg)', offset: 0.75 },
+ { transform: 'translateX(0%)', offset: 1 }];
var timing = { duration: 900, iterations: iterations };
return elem.animate(keyframes, timing);
}
function rotateIn(elem, iterations) {
- var transformOrigin = elem.style["transform-origin"];
- var keyframes = [{ transform: "rotate3d(0, 0, 1, -200deg)", opacity: "0", transformOrigin: "center", offset: 0 },
- { transform: "none", opacity: "1", transformOrigin: "center", offset: 1 }];
+ var transformOrigin = elem.style['transform-origin'];
+ var keyframes = [{ transform: 'rotate3d(0, 0, 1, -200deg)', opacity: '0', transformOrigin: 'center', offset: 0 },
+ { transform: 'none', opacity: '1', transformOrigin: 'center', offset: 1 }];
var timing = { duration: 900, iterations: iterations };
return elem.animate(keyframes, timing);
}
function rotateOut(elem, iterations) {
- var transformOrigin = elem.style["transform-origin"];
- var keyframes = [{ transform: "none", opacity: "1", transformOrigin: "center", offset: 0 },
- { transform: "rotate3d(0, 0, 1, 200deg)", opacity: "0", transformOrigin: "center", offset: 1 }];
+ var transformOrigin = elem.style['transform-origin'];
+ var keyframes = [{ transform: 'none', opacity: '1', transformOrigin: 'center', offset: 0 },
+ { transform: 'rotate3d(0, 0, 1, 200deg)', opacity: '0', transformOrigin: 'center', offset: 1 }];
var timing = { duration: 900, iterations: iterations };
return elem.animate(keyframes, timing);
@@ -136,8 +136,8 @@ define(["pluginManager"], function (pluginManager) {
function fadeOut(elem, iterations) {
var keyframes = [
- { opacity: "1", offset: 0 },
- { opacity: "0", offset: 1 }];
+ { opacity: '1', offset: 0 },
+ { opacity: '0', offset: 1 }];
var timing = { duration: 400, iterations: iterations };
return elem.animate(keyframes, timing);
}
@@ -151,13 +151,13 @@ define(["pluginManager"], function (pluginManager) {
self.show = function () {
- require(["css!" + pluginManager.mapPath(self, "style.css")], function () {
+ require(['css!' + pluginManager.mapPath(self, 'style.css')], function () {
- var elem = document.querySelector(".logoScreenSaver");
+ var elem = document.querySelector('.logoScreenSaver');
if (!elem) {
- elem = document.createElement("div");
- elem.classList.add("logoScreenSaver");
+ elem = document.createElement('div');
+ elem.classList.add('logoScreenSaver');
document.body.appendChild(elem);
elem.innerHTML = ' ';
@@ -172,7 +172,7 @@ define(["pluginManager"], function (pluginManager) {
stopInterval();
- var elem = document.querySelector(".logoScreenSaver");
+ var elem = document.querySelector('.logoScreenSaver');
if (elem) {
diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js
index db3b896f0..0c9a87e80 100644
--- a/src/components/mediainfo/mediainfo.js
+++ b/src/components/mediainfo/mediainfo.js
@@ -57,7 +57,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
miscInfo.push(text);
} catch (e) {
- console.error("error parsing date: " + item.StartDate);
+ console.error('error parsing date: ' + item.StartDate);
}
}
@@ -109,7 +109,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
var minutes;
var count;
- var showFolderRuntime = item.Type === "MusicAlbum" || item.MediaType === 'MusicArtist' || item.MediaType === 'Playlist' || item.MediaType === 'MusicGenre';
+ var showFolderRuntime = item.Type === 'MusicAlbum' || item.MediaType === 'MusicArtist' || item.MediaType === 'Playlist' || item.MediaType === 'MusicGenre';
if (showFolderRuntime) {
@@ -123,7 +123,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
if (item.RunTimeTicks) {
miscInfo.push(datetime.getDisplayRunningTime(item.RunTimeTicks));
}
- } else if (item.Type === "PhotoAlbum" || item.Type === "BoxSet") {
+ } else if (item.Type === 'PhotoAlbum' || item.Type === 'BoxSet') {
count = item.ChildCount;
@@ -133,7 +133,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
}
}
- if ((item.Type === "Episode" || item.MediaType === 'Photo') && options.originalAirDate !== false) {
+ if ((item.Type === 'Episode' || item.MediaType === 'Photo') && options.originalAirDate !== false) {
if (item.PremiereDate) {
@@ -143,7 +143,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
text = datetime.toLocaleDateString(date);
miscInfo.push(text);
} catch (e) {
- console.error("error parsing date: " + item.PremiereDate);
+ console.error('error parsing date: ' + item.PremiereDate);
}
}
}
@@ -171,18 +171,18 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
text = datetime.toLocaleDateString(date);
miscInfo.push(text);
- if (item.Type !== "Recording") {
+ if (item.Type !== 'Recording') {
text = datetime.getDisplayTime(date);
miscInfo.push(text);
}
} catch (e) {
- console.error("error parsing date: " + item.StartDate);
+ console.error('error parsing date: ' + item.StartDate);
}
}
- if (options.year !== false && item.ProductionYear && item.Type === "Series") {
+ if (options.year !== false && item.ProductionYear && item.Type === 'Series') {
- if (item.Status === "Continuing") {
+ if (item.Status === 'Continuing') {
miscInfo.push(globalize.translate('SeriesYearToPresent', item.ProductionYear));
} else if (item.ProductionYear) {
@@ -196,11 +196,11 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
var endYear = datetime.parseISO8601Date(item.EndDate).getFullYear();
if (endYear !== item.ProductionYear) {
- text += "-" + datetime.parseISO8601Date(item.EndDate).getFullYear();
+ text += '-' + datetime.parseISO8601Date(item.EndDate).getFullYear();
}
} catch (e) {
- console.error("error parsing date: " + item.EndDate);
+ console.error('error parsing date: ' + item.EndDate);
}
}
@@ -248,7 +248,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
text = globalize.translate('OriginalAirDateValue', datetime.toLocaleDateString(date));
miscInfo.push(text);
} catch (e) {
- console.error("error parsing date: " + item.PremiereDate);
+ console.error('error parsing date: ' + item.PremiereDate);
}
} else if (item.ProductionYear) {
miscInfo.push(item.ProductionYear);
@@ -256,7 +256,7 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
}
if (options.year !== false) {
- if (item.Type !== "Series" && item.Type !== "Episode" && item.Type !== "Person" && item.MediaType !== 'Photo' && item.Type !== 'Program' && item.Type !== 'Season') {
+ if (item.Type !== 'Series' && item.Type !== 'Episode' && item.Type !== 'Person' && item.MediaType !== 'Photo' && item.Type !== 'Program' && item.Type !== 'Season') {
if (item.ProductionYear) {
@@ -267,15 +267,15 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
text = datetime.parseISO8601Date(item.PremiereDate).getFullYear();
miscInfo.push(text);
} catch (e) {
- console.error("error parsing date: " + item.PremiereDate);
+ console.error('error parsing date: ' + item.PremiereDate);
}
}
}
}
- if (item.RunTimeTicks && item.Type !== "Series" && item.Type !== 'Program' && !showFolderRuntime && options.runtime !== false) {
+ if (item.RunTimeTicks && item.Type !== 'Series' && item.Type !== 'Program' && !showFolderRuntime && options.runtime !== false) {
- if (item.Type === "Audio") {
+ if (item.Type === 'Audio') {
miscInfo.push(datetime.getDisplayRunningTime(item.RunTimeTicks));
@@ -284,11 +284,11 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
minutes = minutes || 1;
- miscInfo.push(Math.round(minutes) + " mins");
+ miscInfo.push(Math.round(minutes) + ' mins');
}
}
- if (item.OfficialRating && item.Type !== "Season" && item.Type !== "Episode") {
+ if (item.OfficialRating && item.Type !== 'Season' && item.Type !== 'Episode') {
miscInfo.push({
text: item.OfficialRating,
cssClass: 'mediaInfoOfficialRating'
@@ -296,11 +296,11 @@ define(['datetime', 'globalize', 'appRouter', 'itemHelper', 'indicators', 'mater
}
if (item.Video3DFormat) {
- miscInfo.push("3D");
+ miscInfo.push('3D');
}
if (item.MediaType === 'Photo' && item.Width && item.Height) {
- miscInfo.push(item.Width + "x" + item.Height);
+ miscInfo.push(item.Width + 'x' + item.Height);
}
if (options.container !== false && item.Type === 'Audio' && item.Container) {
diff --git a/src/components/medialibrarycreator/medialibrarycreator.js b/src/components/medialibrarycreator/medialibrarycreator.js
index 0146cb350..450f5a64e 100644
--- a/src/components/medialibrarycreator/medialibrarycreator.js
+++ b/src/components/medialibrarycreator/medialibrarycreator.js
@@ -1,5 +1,5 @@
-define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionseditor/libraryoptionseditor", "globalize", "emby-toggle", "emby-input", "emby-select", "paper-icon-button-light", "listViewStyle", "formDialogStyle", "emby-button", "flexStyles"], function (loading, dialogHelper, dom, $, libraryoptionseditor, globalize) {
- "use strict";
+define(['loading', 'dialogHelper', 'dom', 'jQuery', 'components/libraryoptionseditor/libraryoptionseditor', 'globalize', 'emby-toggle', 'emby-input', 'emby-select', 'paper-icon-button-light', 'listViewStyle', 'formDialogStyle', 'emby-button', 'flexStyles'], function (loading, dialogHelper, dom, $, libraryoptionseditor, globalize) {
+ 'use strict';
function onAddLibrary() {
if (isCreating) {
@@ -7,10 +7,10 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
}
if (pathInfos.length == 0) {
- require(["alert"], function (alert) {
+ require(['alert'], function (alert) {
alert({
- text: globalize.translate("PleaseAddAtLeastOneFolder"),
- type: "error"
+ text: globalize.translate('PleaseAddAtLeastOneFolder'),
+ type: 'error'
});
});
@@ -19,15 +19,15 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
isCreating = true;
loading.show();
- var dlg = dom.parentWithClass(this, "dlg-librarycreator");
- var name = $("#txtValue", dlg).val();
- var type = $("#selectCollectionType", dlg).val();
+ var dlg = dom.parentWithClass(this, 'dlg-librarycreator');
+ var name = $('#txtValue', dlg).val();
+ var type = $('#selectCollectionType', dlg).val();
- if (type == "mixed") {
+ if (type == 'mixed') {
type = null;
}
- var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions"));
+ var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector('.libraryOptions'));
libraryOptions.PathInfos = pathInfos;
ApiClient.addVirtualFolder(name, type, currentOptions.refresh, libraryOptions).then(function () {
hasChanges = true;
@@ -35,8 +35,8 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
loading.hide();
dialogHelper.close(dlg);
}, function () {
- require(["toast"], function (toast) {
- toast(globalize.translate("ErrorAddingMediaPathToVirtualFolder"));
+ require(['toast'], function (toast) {
+ toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder'));
});
isCreating = false;
@@ -47,50 +47,50 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
function getCollectionTypeOptionsHtml(collectionTypeOptions) {
return collectionTypeOptions.map(function (i) {
- return '' + i.name + " ";
- }).join("");
+ return '' + i.name + ' ';
+ }).join('');
}
function initEditor(page, collectionTypeOptions) {
- $("#selectCollectionType", page).html(getCollectionTypeOptionsHtml(collectionTypeOptions)).val("").on("change", function () {
+ $('#selectCollectionType', page).html(getCollectionTypeOptionsHtml(collectionTypeOptions)).val('').on('change', function () {
var value = this.value;
- var dlg = $(this).parents(".dialog")[0];
- libraryoptionseditor.setContentType(dlg.querySelector(".libraryOptions"), value == "mixed" ? "" : value);
+ var dlg = $(this).parents('.dialog')[0];
+ libraryoptionseditor.setContentType(dlg.querySelector('.libraryOptions'), value == 'mixed' ? '' : value);
if (value) {
- dlg.querySelector(".libraryOptions").classList.remove("hide");
+ dlg.querySelector('.libraryOptions').classList.remove('hide');
} else {
- dlg.querySelector(".libraryOptions").classList.add("hide");
+ dlg.querySelector('.libraryOptions').classList.add('hide');
}
- if (value != "mixed") {
+ if (value != 'mixed') {
var index = this.selectedIndex;
if (index != -1) {
- var name = this.options[index].innerHTML.replace("*", "").replace("&", "&");
- $("#txtValue", dlg).val(name);
+ var name = this.options[index].innerHTML.replace('*', '').replace('&', '&');
+ $('#txtValue', dlg).val(name);
var folderOption = collectionTypeOptions.filter(function (i) {
return i.value == value;
})[0];
- $(".collectionTypeFieldDescription", dlg).html(folderOption.message || "");
+ $('.collectionTypeFieldDescription', dlg).html(folderOption.message || '');
}
}
});
- page.querySelector(".btnAddFolder").addEventListener("click", onAddButtonClick);
- page.querySelector(".btnSubmit").addEventListener("click", onAddLibrary);
- page.querySelector(".folderList").addEventListener("click", onRemoveClick);
- page.querySelector(".chkAdvanced").addEventListener("change", onToggleAdvancedChange);
+ page.querySelector('.btnAddFolder').addEventListener('click', onAddButtonClick);
+ page.querySelector('.btnSubmit').addEventListener('click', onAddLibrary);
+ page.querySelector('.folderList').addEventListener('click', onRemoveClick);
+ page.querySelector('.chkAdvanced').addEventListener('change', onToggleAdvancedChange);
}
function onToggleAdvancedChange() {
- var dlg = dom.parentWithClass(this, "dlg-librarycreator");
- libraryoptionseditor.setAdvancedVisible(dlg.querySelector(".libraryOptions"), this.checked);
+ var dlg = dom.parentWithClass(this, 'dlg-librarycreator');
+ libraryoptionseditor.setAdvancedVisible(dlg.querySelector('.libraryOptions'), this.checked);
}
function onAddButtonClick() {
- var page = dom.parentWithClass(this, "dlg-librarycreator");
+ var page = dom.parentWithClass(this, 'dlg-librarycreator');
- require(["directorybrowser"], function (directoryBrowser) {
+ require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser();
picker.show({
enableNetworkSharePath: true,
@@ -106,30 +106,30 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
}
function getFolderHtml(pathInfo, index) {
- var html = "";
+ var html = '';
html += '';
- html += '
';
- html += '
' + pathInfo.Path + "
";
+ html += '
';
+ html += '
' + pathInfo.Path + '
';
if (pathInfo.NetworkPath) {
- html += '
' + pathInfo.NetworkPath + "
";
+ html += '
' + pathInfo.NetworkPath + '
';
}
- html += "
";
+ html += '
';
html += '
';
- html += "
";
+ html += '';
return html;
}
function renderPaths(page) {
- var foldersHtml = pathInfos.map(getFolderHtml).join("");
- var folderList = page.querySelector(".folderList");
+ var foldersHtml = pathInfos.map(getFolderHtml).join('');
+ var folderList = page.querySelector('.folderList');
folderList.innerHTML = foldersHtml;
if (foldersHtml) {
- folderList.classList.remove("hide");
+ folderList.classList.remove('hide');
} else {
- folderList.classList.add("hide");
+ folderList.classList.add('hide');
}
}
@@ -154,14 +154,14 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
}
function onRemoveClick(e) {
- var button = dom.parentWithClass(e.target, "btnRemovePath");
- var index = parseInt(button.getAttribute("data-index"));
+ var button = dom.parentWithClass(e.target, 'btnRemovePath');
+ var index = parseInt(button.getAttribute('data-index'));
var location = pathInfos[index].Path;
var locationLower = location.toLowerCase();
pathInfos = pathInfos.filter(function (p) {
return p.Path.toLowerCase() != locationLower;
});
- renderPaths(dom.parentWithClass(button, "dlg-librarycreator"));
+ renderPaths(dom.parentWithClass(button, 'dlg-librarycreator'));
}
function onDialogClosed() {
@@ -169,9 +169,9 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
}
function initLibraryOptions(dlg) {
- libraryoptionseditor.embed(dlg.querySelector(".libraryOptions")).then(function () {
- $("#selectCollectionType", dlg).trigger("change");
- onToggleAdvancedChange.call(dlg.querySelector(".chkAdvanced"));
+ libraryoptionseditor.embed(dlg.querySelector('.libraryOptions')).then(function () {
+ $('#selectCollectionType', dlg).trigger('change');
+ onToggleAdvancedChange.call(dlg.querySelector('.chkAdvanced'));
});
}
@@ -182,25 +182,25 @@ define(["loading", "dialogHelper", "dom", "jQuery", "components/libraryoptionsed
currentResolve = resolve;
hasChanges = false;
var xhr = new XMLHttpRequest();
- xhr.open("GET", "components/medialibrarycreator/medialibrarycreator.template.html", true);
+ xhr.open('GET', 'components/medialibrarycreator/medialibrarycreator.template.html', true);
xhr.onload = function (e) {
var template = this.response;
var dlg = dialogHelper.createDialog({
- size: "medium-tall",
+ size: 'medium-tall',
modal: false,
removeOnClose: true,
scrollY: false
});
- dlg.classList.add("ui-body-a");
- dlg.classList.add("background-theme-a");
- dlg.classList.add("dlg-librarycreator");
- dlg.classList.add("formDialog");
+ dlg.classList.add('ui-body-a');
+ dlg.classList.add('background-theme-a');
+ dlg.classList.add('dlg-librarycreator');
+ dlg.classList.add('formDialog');
dlg.innerHTML = globalize.translateDocument(template);
initEditor(dlg, options.collectionTypeOptions);
- dlg.addEventListener("close", onDialogClosed);
+ dlg.addEventListener('close', onDialogClosed);
dialogHelper.open(dlg);
- dlg.querySelector(".btnCancel").addEventListener("click", function () {
+ dlg.querySelector('.btnCancel').addEventListener('click', function () {
dialogHelper.close(dlg);
});
pathInfos = [];
diff --git a/src/components/medialibraryeditor/medialibraryeditor.js b/src/components/medialibraryeditor/medialibraryeditor.js
index 55c2e150c..314150962 100644
--- a/src/components/medialibraryeditor/medialibraryeditor.js
+++ b/src/components/medialibraryeditor/medialibraryeditor.js
@@ -1,5 +1,5 @@
-define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionseditor/libraryoptionseditor", "globalize", "emby-button", "listViewStyle", "paper-icon-button-light", "formDialogStyle", "emby-toggle", "flexStyles"], function (jQuery, loading, dialogHelper, dom, libraryoptionseditor, globalize) {
- "use strict";
+define(['jQuery', 'loading', 'dialogHelper', 'dom', 'components/libraryoptionseditor/libraryoptionseditor', 'globalize', 'emby-button', 'listViewStyle', 'paper-icon-button-light', 'formDialogStyle', 'emby-toggle', 'flexStyles'], function (jQuery, loading, dialogHelper, dom, libraryoptionseditor, globalize) {
+ 'use strict';
function onEditLibrary() {
if (isCreating) {
@@ -8,8 +8,8 @@ define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionsed
isCreating = true;
loading.show();
- var dlg = dom.parentWithClass(this, "dlg-libraryeditor");
- var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector(".libraryOptions"));
+ var dlg = dom.parentWithClass(this, 'dlg-libraryeditor');
+ var libraryOptions = libraryoptionseditor.getLibraryOptions(dlg.querySelector('.libraryOptions'));
libraryOptions = Object.assign(currentOptions.library.LibraryOptions || {}, libraryOptions);
ApiClient.updateVirtualFolderOptions(currentOptions.library.ItemId, libraryOptions).then(function () {
hasChanges = true;
@@ -30,8 +30,8 @@ define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionsed
hasChanges = true;
refreshLibraryFromServer(page);
}, function () {
- require(["toast"], function (toast) {
- toast(globalize.translate("ErrorAddingMediaPathToVirtualFolder"));
+ require(['toast'], function (toast) {
+ toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder'));
});
});
}
@@ -45,8 +45,8 @@ define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionsed
hasChanges = true;
refreshLibraryFromServer(page);
}, function () {
- require(["toast"], function (toast) {
- toast(globalize.translate("ErrorAddingMediaPathToVirtualFolder"));
+ require(['toast'], function (toast) {
+ toast(globalize.translate('ErrorAddingMediaPathToVirtualFolder'));
});
});
}
@@ -55,20 +55,20 @@ define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionsed
var button = btnRemovePath;
var virtualFolder = currentOptions.library;
- require(["confirm"], function (confirm) {
+ require(['confirm'], function (confirm) {
confirm({
- title: globalize.translate("HeaderRemoveMediaLocation"),
- text: globalize.translate("MessageConfirmRemoveMediaLocation"),
- confirmText: globalize.translate("ButtonDelete"),
- primary: "delete"
+ title: globalize.translate('HeaderRemoveMediaLocation'),
+ text: globalize.translate('MessageConfirmRemoveMediaLocation'),
+ confirmText: globalize.translate('ButtonDelete'),
+ primary: 'delete'
}).then(function () {
var refreshAfterChange = currentOptions.refresh;
ApiClient.removeMediaPath(virtualFolder.Name, location, refreshAfterChange).then(function () {
hasChanges = true;
- refreshLibraryFromServer(dom.parentWithClass(button, "dlg-libraryeditor"));
+ refreshLibraryFromServer(dom.parentWithClass(button, 'dlg-libraryeditor'));
}, function () {
- require(["toast"], function (toast) {
- toast(globalize.translate("DefaultErrorMessage"));
+ require(['toast'], function (toast) {
+ toast(globalize.translate('DefaultErrorMessage'));
});
});
});
@@ -76,39 +76,39 @@ define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionsed
}
function onListItemClick(e) {
- var listItem = dom.parentWithClass(e.target, "listItem");
+ var listItem = dom.parentWithClass(e.target, 'listItem');
if (listItem) {
- var index = parseInt(listItem.getAttribute("data-index"));
+ var index = parseInt(listItem.getAttribute('data-index'));
var pathInfos = (currentOptions.library.LibraryOptions || {}).PathInfos || [];
var pathInfo = null == index ? {} : pathInfos[index] || {};
var originalPath = pathInfo.Path || (null == index ? null : currentOptions.library.Locations[index]);
- var btnRemovePath = dom.parentWithClass(e.target, "btnRemovePath");
+ var btnRemovePath = dom.parentWithClass(e.target, 'btnRemovePath');
if (btnRemovePath) {
onRemoveClick(btnRemovePath, originalPath);
return;
}
- showDirectoryBrowser(dom.parentWithClass(listItem, "dlg-libraryeditor"), originalPath, pathInfo.NetworkPath);
+ showDirectoryBrowser(dom.parentWithClass(listItem, 'dlg-libraryeditor'), originalPath, pathInfo.NetworkPath);
}
}
function getFolderHtml(pathInfo, index) {
- var html = "";
+ var html = '';
html += '';
- html += '
';
+ html += '
';
html += '
';
html += pathInfo.Path;
- html += " ";
+ html += '';
if (pathInfo.NetworkPath) {
- html += '
' + pathInfo.NetworkPath + "
";
+ html += '
' + pathInfo.NetworkPath + '
';
}
- html += "
";
+ html += '
';
html += '
';
- html += "
";
+ html += '';
return html;
}
@@ -137,20 +137,20 @@ define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionsed
}
if (options.library.CollectionType === 'boxsets') {
- page.querySelector(".folders").classList.add("hide");
+ page.querySelector('.folders').classList.add('hide');
} else {
- page.querySelector(".folders").classList.remove("hide");
+ page.querySelector('.folders').classList.remove('hide');
}
- page.querySelector(".folderList").innerHTML = pathInfos.map(getFolderHtml).join("");
+ page.querySelector('.folderList').innerHTML = pathInfos.map(getFolderHtml).join('');
}
function onAddButtonClick() {
- showDirectoryBrowser(dom.parentWithClass(this, "dlg-libraryeditor"));
+ showDirectoryBrowser(dom.parentWithClass(this, 'dlg-libraryeditor'));
}
function showDirectoryBrowser(context, originalPath, networkPath) {
- require(["directorybrowser"], function (directoryBrowser) {
+ require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser();
picker.show({
enableNetworkSharePath: true,
@@ -173,18 +173,18 @@ define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionsed
}
function onToggleAdvancedChange() {
- var dlg = dom.parentWithClass(this, "dlg-libraryeditor");
- libraryoptionseditor.setAdvancedVisible(dlg.querySelector(".libraryOptions"), this.checked);
+ var dlg = dom.parentWithClass(this, 'dlg-libraryeditor');
+ libraryoptionseditor.setAdvancedVisible(dlg.querySelector('.libraryOptions'), this.checked);
}
function initEditor(dlg, options) {
renderLibrary(dlg, options);
- dlg.querySelector(".btnAddFolder").addEventListener("click", onAddButtonClick);
- dlg.querySelector(".folderList").addEventListener("click", onListItemClick);
- dlg.querySelector(".chkAdvanced").addEventListener("change", onToggleAdvancedChange);
- dlg.querySelector(".btnSubmit").addEventListener("click", onEditLibrary);
- libraryoptionseditor.embed(dlg.querySelector(".libraryOptions"), options.library.CollectionType, options.library.LibraryOptions).then(function () {
- onToggleAdvancedChange.call(dlg.querySelector(".chkAdvanced"));
+ dlg.querySelector('.btnAddFolder').addEventListener('click', onAddButtonClick);
+ dlg.querySelector('.folderList').addEventListener('click', onListItemClick);
+ dlg.querySelector('.chkAdvanced').addEventListener('change', onToggleAdvancedChange);
+ dlg.querySelector('.btnSubmit').addEventListener('click', onEditLibrary);
+ libraryoptionseditor.embed(dlg.querySelector('.libraryOptions'), options.library.CollectionType, options.library.LibraryOptions).then(function () {
+ onToggleAdvancedChange.call(dlg.querySelector('.chkAdvanced'));
});
}
@@ -199,26 +199,26 @@ define(["jQuery", "loading", "dialogHelper", "dom", "components/libraryoptionsed
currentDeferred = deferred;
hasChanges = false;
var xhr = new XMLHttpRequest();
- xhr.open("GET", "components/medialibraryeditor/medialibraryeditor.template.html", true);
+ xhr.open('GET', 'components/medialibraryeditor/medialibraryeditor.template.html', true);
xhr.onload = function (e) {
var template = this.response;
var dlg = dialogHelper.createDialog({
- size: "medium-tall",
+ size: 'medium-tall',
modal: false,
removeOnClose: true,
scrollY: false
});
- dlg.classList.add("dlg-libraryeditor");
- dlg.classList.add("ui-body-a");
- dlg.classList.add("background-theme-a");
- dlg.classList.add("formDialog");
+ dlg.classList.add('dlg-libraryeditor');
+ dlg.classList.add('ui-body-a');
+ dlg.classList.add('background-theme-a');
+ dlg.classList.add('formDialog');
dlg.innerHTML = globalize.translateDocument(template);
- dlg.querySelector(".formDialogHeaderTitle").innerHTML = options.library.Name;
+ dlg.querySelector('.formDialogHeaderTitle').innerHTML = options.library.Name;
initEditor(dlg, options);
- dlg.addEventListener("close", onDialogClosed);
+ dlg.addEventListener('close', onDialogClosed);
dialogHelper.open(dlg);
- dlg.querySelector(".btnCancel").addEventListener("click", function () {
+ dlg.querySelector('.btnCancel').addEventListener('click', function () {
dialogHelper.close(dlg);
});
refreshLibraryFromServer(dlg);
diff --git a/src/components/metadataeditor/metadataeditor.js b/src/components/metadataeditor/metadataeditor.js
index db81423cf..7f1e50b5f 100644
--- a/src/components/metadataeditor/metadataeditor.js
+++ b/src/components/metadataeditor/metadataeditor.js
@@ -142,9 +142,9 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
Status: form.querySelector('#selectStatus').value,
AirDays: getSelectedAirDays(form),
AirTime: form.querySelector('#txtAirTime').value,
- Genres: getListValues(form.querySelector("#listGenres")),
- Tags: getListValues(form.querySelector("#listTags")),
- Studios: getListValues(form.querySelector("#listStudios")).map(function (element) {
+ Genres: getListValues(form.querySelector('#listGenres')),
+ Tags: getListValues(form.querySelector('#listTags')),
+ Studios: getListValues(form.querySelector('#listStudios')).map(function (element) {
return { Name: element };
}),
@@ -158,7 +158,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
OfficialRating: form.querySelector('#selectOfficialRating').value,
CustomRating: form.querySelector('#selectCustomRating').value,
People: currentItem.People,
- LockData: form.querySelector("#chkLockData").checked,
+ LockData: form.querySelector('#chkLockData').checked,
LockedFields: Array.prototype.filter.call(form.querySelectorAll('.selectLockedField'), function (c) {
return !c.checked;
}).map(function (c) {
@@ -177,14 +177,14 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
item.PreferredMetadataLanguage = form.querySelector('#selectLanguage').value;
item.PreferredMetadataCountryCode = form.querySelector('#selectCountry').value;
- if (currentItem.Type === "Person") {
+ if (currentItem.Type === 'Person') {
var placeOfBirth = form.querySelector('#txtPlaceOfBirth').value;
item.ProductionLocations = placeOfBirth ? [placeOfBirth] : [];
}
- if (currentItem.Type === "Series") {
+ if (currentItem.Type === 'Series') {
// 600000000
var seriesRuntime = form.querySelector('#txtSeriesRuntime').value;
@@ -356,7 +356,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
form.removeEventListener('submit', onSubmit);
form.addEventListener('submit', onSubmit);
- context.querySelector("#btnAddPerson").addEventListener('click', function (event, data) {
+ context.querySelector('#btnAddPerson').addEventListener('click', function (event, data) {
editPerson(context, {}, -1);
});
@@ -403,7 +403,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
function populateCountries(select, allCountries) {
- var html = "";
+ var html = '';
html += " ";
@@ -411,7 +411,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
var culture = allCountries[i];
- html += "" + culture.DisplayName + " ";
+ html += "" + culture.DisplayName + ' ';
}
select.innerHTML = html;
@@ -419,7 +419,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
function populateLanguages(select, languages) {
- var html = "";
+ var html = '';
html += " ";
@@ -427,7 +427,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
var culture = languages[i];
- html += "" + culture.DisplayName + " ";
+ html += "" + culture.DisplayName + ' ';
}
select.innerHTML = html;
@@ -462,12 +462,12 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
var idInfo = externalIds[i];
- var id = "txt1" + idInfo.Key;
+ var id = 'txt1' + idInfo.Key;
var formatString = idInfo.UrlFormatString || '';
var fullName = idInfo.Name;
if (idInfo.Type) {
- fullName = idInfo.Name + " " + globalize.translate(idInfo.Type);
+ fullName = idInfo.Name + ' ' + globalize.translate(idInfo.Type);
}
var labelText = globalize.translate('LabelDynamicExternalId', fullName);
@@ -544,37 +544,37 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
hideElement('#fldPath', context);
}
- if (item.Type === "Series" || item.Type === "Movie" || item.Type === "Trailer") {
+ if (item.Type === 'Series' || item.Type === 'Movie' || item.Type === 'Trailer') {
showElement('#fldOriginalName', context);
} else {
hideElement('#fldOriginalName', context);
}
- if (item.Type === "Series") {
+ if (item.Type === 'Series') {
showElement('#fldSeriesRuntime', context);
} else {
hideElement('#fldSeriesRuntime', context);
}
- if (item.Type === "Series" || item.Type === "Person") {
+ if (item.Type === 'Series' || item.Type === 'Person') {
showElement('#fldEndDate', context);
} else {
hideElement('#fldEndDate', context);
}
- if (item.Type === "MusicAlbum") {
+ if (item.Type === 'MusicAlbum') {
showElement('#albumAssociationMessage', context);
} else {
hideElement('#albumAssociationMessage', context);
}
- if (item.Type === "Movie" || item.Type === "Trailer") {
+ if (item.Type === 'Movie' || item.Type === 'Trailer') {
showElement('#fldCriticRating', context);
} else {
hideElement('#fldCriticRating', context);
}
- if (item.Type === "Series") {
+ if (item.Type === 'Series') {
showElement('#fldStatus', context);
showElement('#fldAirDays', context);
showElement('#fldAirTime', context);
@@ -584,19 +584,19 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
hideElement('#fldAirTime', context);
}
- if (item.MediaType === "Video" && item.Type !== "TvChannel") {
+ if (item.MediaType === 'Video' && item.Type !== 'TvChannel') {
showElement('#fld3dFormat', context);
} else {
hideElement('#fld3dFormat', context);
}
- if (item.Type === "Audio") {
+ if (item.Type === 'Audio') {
showElement('#fldAlbumArtist', context);
} else {
hideElement('#fldAlbumArtist', context);
}
- if (item.Type === "Audio" || item.Type === "MusicVideo") {
+ if (item.Type === 'Audio' || item.Type === 'MusicVideo') {
showElement('#fldArtist', context);
showElement('#fldAlbum', context);
} else {
@@ -604,29 +604,29 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
hideElement('#fldAlbum', context);
}
- if (item.Type === "Episode" && item.ParentIndexNumber === 0) {
+ if (item.Type === 'Episode' && item.ParentIndexNumber === 0) {
showElement('#collapsibleSpecialEpisodeInfo', context);
} else {
hideElement('#collapsibleSpecialEpisodeInfo', context);
}
- if (item.Type === "Person" ||
- item.Type === "Genre" ||
- item.Type === "Studio" ||
- item.Type === "MusicGenre" ||
- item.Type === "TvChannel" ||
- item.Type === "Book") {
+ if (item.Type === 'Person' ||
+ item.Type === 'Genre' ||
+ item.Type === 'Studio' ||
+ item.Type === 'MusicGenre' ||
+ item.Type === 'TvChannel' ||
+ item.Type === 'Book') {
hideElement('#peopleCollapsible', context);
} else {
showElement('#peopleCollapsible', context);
}
- if (item.Type === "Person" || item.Type === "Genre" || item.Type === "Studio" || item.Type === "MusicGenre" || item.Type === "TvChannel") {
+ if (item.Type === 'Person' || item.Type === 'Genre' || item.Type === 'Studio' || item.Type === 'MusicGenre' || item.Type === 'TvChannel') {
hideElement('#fldCommunityRating', context);
hideElement('#genresCollapsible', context);
hideElement('#studiosCollapsible', context);
- if (item.Type === "TvChannel") {
+ if (item.Type === 'TvChannel') {
showElement('#fldOfficialRating', context);
} else {
hideElement('#fldOfficialRating', context);
@@ -642,7 +642,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
showElement('#tagsCollapsible', context);
- if (item.Type === "TvChannel") {
+ if (item.Type === 'TvChannel') {
hideElement('#metadataSettingsCollapsible', context);
hideElement('#fldPremiereDate', context);
hideElement('#fldDateAdded', context);
@@ -654,39 +654,39 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
showElement('#fldYear', context);
}
- if (item.Type === "TvChannel") {
+ if (item.Type === 'TvChannel') {
hideElement('.overviewContainer', context);
} else {
showElement('.overviewContainer', context);
}
- if (item.Type === "Person") {
+ if (item.Type === 'Person') {
//todo
context.querySelector('#txtProductionYear').label(globalize.translate('LabelBirthYear'));
- context.querySelector("#txtPremiereDate").label(globalize.translate('LabelBirthDate'));
- context.querySelector("#txtEndDate").label(globalize.translate('LabelDeathDate'));
+ context.querySelector('#txtPremiereDate').label(globalize.translate('LabelBirthDate'));
+ context.querySelector('#txtEndDate').label(globalize.translate('LabelDeathDate'));
showElement('#fldPlaceOfBirth');
} else {
context.querySelector('#txtProductionYear').label(globalize.translate('LabelYear'));
- context.querySelector("#txtPremiereDate").label(globalize.translate('LabelReleaseDate'));
- context.querySelector("#txtEndDate").label(globalize.translate('LabelEndDate'));
+ context.querySelector('#txtPremiereDate').label(globalize.translate('LabelReleaseDate'));
+ context.querySelector('#txtEndDate').label(globalize.translate('LabelEndDate'));
hideElement('#fldPlaceOfBirth');
}
- if (item.MediaType === "Video" && item.Type !== "TvChannel") {
+ if (item.MediaType === 'Video' && item.Type !== 'TvChannel') {
showElement('#fldOriginalAspectRatio');
} else {
hideElement('#fldOriginalAspectRatio');
}
- if (item.Type === "Audio" || item.Type === "Episode" || item.Type === "Season") {
+ if (item.Type === 'Audio' || item.Type === 'Episode' || item.Type === 'Season') {
showElement('#fldIndexNumber');
- if (item.Type === "Episode") {
+ if (item.Type === 'Episode') {
context.querySelector('#txtIndexNumber').label(globalize.translate('LabelEpisodeNumber'));
- } else if (item.Type === "Season") {
+ } else if (item.Type === 'Season') {
context.querySelector('#txtIndexNumber').label(globalize.translate('LabelSeasonNumber'));
- } else if (item.Type === "Audio") {
+ } else if (item.Type === 'Audio') {
context.querySelector('#txtIndexNumber').label(globalize.translate('LabelTrackNumber'));
} else {
context.querySelector('#txtIndexNumber').label(globalize.translate('LabelNumber'));
@@ -695,12 +695,12 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
hideElement('#fldIndexNumber');
}
- if (item.Type === "Audio" || item.Type === "Episode") {
+ if (item.Type === 'Audio' || item.Type === 'Episode') {
showElement('#fldParentIndexNumber');
- if (item.Type === "Episode") {
+ if (item.Type === 'Episode') {
context.querySelector('#txtParentIndexNumber').label(globalize.translate('LabelSeasonNumber'));
- } else if (item.Type === "Audio") {
+ } else if (item.Type === 'Audio') {
context.querySelector('#txtParentIndexNumber').label(globalize.translate('LabelDiscNumber'));
} else {
context.querySelector('#txtParentIndexNumber').label(globalize.translate('LabelParentNumber'));
@@ -709,12 +709,12 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
hideElement('#fldParentIndexNumber', context);
}
- if (item.Type === "BoxSet") {
+ if (item.Type === 'BoxSet') {
showElement('#fldDisplayOrder', context);
hideElement('.seriesDisplayOrderDescription', context);
context.querySelector('#selectDisplayOrder').innerHTML = '' + globalize.translate('SortName') + ' ' + globalize.translate('ReleaseDate') + ' ';
- } else if (item.Type === "Series") {
+ } else if (item.Type === 'Series') {
showElement('#fldDisplayOrder', context);
showElement('.seriesDisplayOrderDescription', context);
@@ -731,19 +731,19 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
populateRatings(parentalRatingOptions, select, item.OfficialRating);
- select.value = item.OfficialRating || "";
+ select.value = item.OfficialRating || '';
select = context.querySelector('#selectCustomRating');
populateRatings(parentalRatingOptions, select, item.CustomRating);
- select.value = item.CustomRating || "";
+ select.value = item.CustomRating || '';
var selectStatus = context.querySelector('#selectStatus');
populateStatus(selectStatus);
- selectStatus.value = item.Status || "";
+ selectStatus.value = item.Status || '';
- context.querySelector('#select3dFormat', context).value = item.Video3DFormat || "";
+ context.querySelector('#select3dFormat', context).value = item.Video3DFormat || '';
Array.prototype.forEach.call(context.querySelectorAll('.chkAirDay', context), function (el) {
el.checked = (item.AirDays || []).indexOf(el.getAttribute('data-day')) !== -1;
@@ -759,7 +759,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
populateListView(context.querySelector('#listTags'), item.Tags);
var lockData = (item.LockData || false);
- var chkLockData = context.querySelector("#chkLockData");
+ var chkLockData = context.querySelector('#chkLockData');
chkLockData.checked = lockData;
if (chkLockData.checked) {
hideElement('.providerSettingsContainer', context);
@@ -769,23 +769,23 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
fillMetadataSettings(context, item, item.LockedFields);
context.querySelector('#txtPath').value = item.Path || '';
- context.querySelector('#txtName').value = item.Name || "";
- context.querySelector('#txtOriginalName').value = item.OriginalTitle || "";
+ context.querySelector('#txtName').value = item.Name || '';
+ context.querySelector('#txtOriginalName').value = item.OriginalTitle || '';
context.querySelector('#txtOverview').value = item.Overview || '';
context.querySelector('#txtTagline').value = (item.Taglines && item.Taglines.length ? item.Taglines[0] : '');
- context.querySelector('#txtSortName').value = item.ForcedSortName || "";
- context.querySelector('#txtCommunityRating').value = item.CommunityRating || "";
+ context.querySelector('#txtSortName').value = item.ForcedSortName || '';
+ context.querySelector('#txtCommunityRating').value = item.CommunityRating || '';
- context.querySelector('#txtCriticRating').value = item.CriticRating || "";
+ context.querySelector('#txtCriticRating').value = item.CriticRating || '';
context.querySelector('#txtIndexNumber').value = item.IndexNumber == null ? '' : item.IndexNumber;
context.querySelector('#txtParentIndexNumber').value = item.ParentIndexNumber == null ? '' : item.ParentIndexNumber;
- context.querySelector('#txtAirsBeforeSeason').value = ('AirsBeforeSeasonNumber' in item) ? item.AirsBeforeSeasonNumber : "";
- context.querySelector('#txtAirsAfterSeason').value = ('AirsAfterSeasonNumber' in item) ? item.AirsAfterSeasonNumber : "";
- context.querySelector('#txtAirsBeforeEpisode').value = ('AirsBeforeEpisodeNumber' in item) ? item.AirsBeforeEpisodeNumber : "";
+ context.querySelector('#txtAirsBeforeSeason').value = ('AirsBeforeSeasonNumber' in item) ? item.AirsBeforeSeasonNumber : '';
+ context.querySelector('#txtAirsAfterSeason').value = ('AirsAfterSeasonNumber' in item) ? item.AirsAfterSeasonNumber : '';
+ context.querySelector('#txtAirsBeforeEpisode').value = ('AirsBeforeEpisodeNumber' in item) ? item.AirsBeforeEpisodeNumber : '';
- context.querySelector('#txtAlbum').value = item.Album || "";
+ context.querySelector('#txtAlbum').value = item.Album || '';
context.querySelector('#txtAlbumArtist').value = (item.AlbumArtists || []).map(function (a) {
return a.Name;
@@ -839,17 +839,17 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
context.querySelector('#txtEndDate').value = '';
}
- context.querySelector('#txtProductionYear').value = item.ProductionYear || "";
+ context.querySelector('#txtProductionYear').value = item.ProductionYear || '';
context.querySelector('#txtAirTime').value = item.AirTime || '';
var placeofBirth = item.ProductionLocations && item.ProductionLocations.length ? item.ProductionLocations[0] : '';
context.querySelector('#txtPlaceOfBirth').value = placeofBirth;
- context.querySelector('#txtOriginalAspectRatio').value = item.AspectRatio || "";
+ context.querySelector('#txtOriginalAspectRatio').value = item.AspectRatio || '';
- context.querySelector('#selectLanguage').value = item.PreferredMetadataLanguage || "";
- context.querySelector('#selectCountry').value = item.PreferredMetadataCountryCode || "";
+ context.querySelector('#selectLanguage').value = item.PreferredMetadataLanguage || '';
+ context.querySelector('#selectCountry').value = item.PreferredMetadataCountryCode || '';
if (item.RunTimeTicks) {
@@ -857,13 +857,13 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
context.querySelector('#txtSeriesRuntime').value = Math.round(minutes);
} else {
- context.querySelector('#txtSeriesRuntime', context).value = "";
+ context.querySelector('#txtSeriesRuntime', context).value = '';
}
}
function populateRatings(allParentalRatings, select, currentValue) {
- var html = "";
+ var html = '';
html += " ";
@@ -893,18 +893,18 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
rating = ratings[i];
- html += "" + rating.Name + " ";
+ html += "" + rating.Name + ' ';
}
select.innerHTML = html;
}
function populateStatus(select) {
- var html = "";
+ var html = '';
html += " ";
- html += "" + globalize.translate('Continuing') + " ";
- html += "" + globalize.translate('Ended') + " ";
+ html += "" + globalize.translate('Continuing') + ' ';
+ html += "" + globalize.translate('Ended') + ' ';
select.innerHTML = html;
}
@@ -999,30 +999,30 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
lockedFields = lockedFields || [];
var lockedFieldsList = [
- { name: globalize.translate('Name'), value: "Name" },
- { name: globalize.translate('Overview'), value: "Overview" },
- { name: globalize.translate('Genres'), value: "Genres" },
- { name: globalize.translate('ParentalRating'), value: "OfficialRating" },
- { name: globalize.translate('People'), value: "Cast" }
+ { name: globalize.translate('Name'), value: 'Name' },
+ { name: globalize.translate('Overview'), value: 'Overview' },
+ { name: globalize.translate('Genres'), value: 'Genres' },
+ { name: globalize.translate('ParentalRating'), value: 'OfficialRating' },
+ { name: globalize.translate('People'), value: 'Cast' }
];
- if (item.Type === "Person") {
- lockedFieldsList.push({ name: globalize.translate('BirthLocation'), value: "ProductionLocations" });
+ if (item.Type === 'Person') {
+ lockedFieldsList.push({ name: globalize.translate('BirthLocation'), value: 'ProductionLocations' });
} else {
- lockedFieldsList.push({ name: globalize.translate('ProductionLocations'), value: "ProductionLocations" });
+ lockedFieldsList.push({ name: globalize.translate('ProductionLocations'), value: 'ProductionLocations' });
}
- if (item.Type === "Series") {
- lockedFieldsList.push({ name: globalize.translate('Runtime'), value: "Runtime" });
+ if (item.Type === 'Series') {
+ lockedFieldsList.push({ name: globalize.translate('Runtime'), value: 'Runtime' });
}
- lockedFieldsList.push({ name: globalize.translate('Studios'), value: "Studios" });
- lockedFieldsList.push({ name: globalize.translate('Tags'), value: "Tags" });
+ lockedFieldsList.push({ name: globalize.translate('Studios'), value: 'Studios' });
+ lockedFieldsList.push({ name: globalize.translate('Tags'), value: 'Tags' });
var html = '';
- html += "" + globalize.translate('HeaderEnabledFields') + " ";
- html += "" + globalize.translate('HeaderEnabledFieldsHelp') + "
";
+ html += '' + globalize.translate('HeaderEnabledFields') + ' ';
+ html += '' + globalize.translate('HeaderEnabledFieldsHelp') + '
';
html += getLockedFieldsHtml(lockedFieldsList, lockedFields);
container.innerHTML = html;
}
@@ -1051,7 +1051,7 @@ define(['itemHelper', 'dom', 'layoutManager', 'dialogHelper', 'datetime', 'loadi
setFieldVisibilities(context, item);
fillItemInfo(context, item, metadataEditorInfo.ParentalRatingOptions);
- if (item.MediaType === "Video" && item.Type !== "Episode" && item.Type !== "TvChannel") {
+ if (item.MediaType === 'Video' && item.Type !== 'Episode' && item.Type !== 'TvChannel') {
showElement('#fldTagline', context);
} else {
hideElement('#fldTagline', context);
diff --git a/src/components/multiselect/multiselect.js b/src/components/multiselect/multiselect.js
index 67d2f4d47..70a0924bc 100644
--- a/src/components/multiselect/multiselect.js
+++ b/src/components/multiselect/multiselect.js
@@ -1,5 +1,5 @@
-define(["browser", "appStorage", "apphost", "loading", "connectionManager", "globalize", "appRouter", "dom", "css!./multiselect"], function (browser, appStorage, appHost, loading, connectionManager, globalize, appRouter, dom) {
- "use strict";
+define(['browser', 'appStorage', 'apphost', 'loading', 'connectionManager', 'globalize', 'appRouter', 'dom', 'css!./multiselect'], function (browser, appStorage, appHost, loading, connectionManager, globalize, appRouter, dom) {
+ 'use strict';
var selectedItems = [];
var selectedElements = [];
@@ -15,12 +15,12 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
selectedItems = [];
selectedElements = [];
- var elems = document.querySelectorAll(".itemSelectionPanel");
+ var elems = document.querySelectorAll('.itemSelectionPanel');
for (var i = 0, length = elems.length; i < length; i++) {
var parent = elems[i].parentNode;
parent.removeChild(elems[i]);
- parent.classList.remove("withMultiSelect");
+ parent.classList.remove('withMultiSelect');
}
}
}
@@ -28,13 +28,13 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
function onItemSelectionPanelClick(e, itemSelectionPanel) {
// toggle the checkbox, if it wasn't clicked on
- if (!dom.parentWithClass(e.target, "chkItemSelect")) {
- var chkItemSelect = itemSelectionPanel.querySelector(".chkItemSelect");
+ if (!dom.parentWithClass(e.target, 'chkItemSelect')) {
+ var chkItemSelect = itemSelectionPanel.querySelector('.chkItemSelect');
if (chkItemSelect) {
- if (chkItemSelect.classList.contains("checkedInitial")) {
- chkItemSelect.classList.remove("checkedInitial");
+ if (chkItemSelect.classList.contains('checkedInitial')) {
+ chkItemSelect.classList.remove('checkedInitial');
} else {
var newValue = !chkItemSelect.checked;
chkItemSelect.checked = newValue;
@@ -50,7 +50,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
function updateItemSelection(chkItemSelect, selected) {
- var id = dom.parentWithAttribute(chkItemSelect, "data-id").getAttribute("data-id");
+ var id = dom.parentWithAttribute(chkItemSelect, 'data-id').getAttribute('data-id');
if (selected) {
@@ -73,7 +73,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
}
if (selectedItems.length) {
- var itemSelectionCount = document.querySelector(".itemSelectionCount");
+ var itemSelectionCount = document.querySelector('.itemSelectionCount');
if (itemSelectionCount) {
itemSelectionCount.innerHTML = selectedItems.length;
}
@@ -88,27 +88,27 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
function showSelection(item, isChecked) {
- var itemSelectionPanel = item.querySelector(".itemSelectionPanel");
+ var itemSelectionPanel = item.querySelector('.itemSelectionPanel');
if (!itemSelectionPanel) {
- itemSelectionPanel = document.createElement("div");
- itemSelectionPanel.classList.add("itemSelectionPanel");
+ itemSelectionPanel = document.createElement('div');
+ itemSelectionPanel.classList.add('itemSelectionPanel');
- var parent = item.querySelector(".cardBox") || item.querySelector(".cardContent");
- parent.classList.add("withMultiSelect");
+ var parent = item.querySelector('.cardBox') || item.querySelector('.cardContent');
+ parent.classList.add('withMultiSelect');
parent.appendChild(itemSelectionPanel);
- var cssClass = "chkItemSelect";
+ var cssClass = 'chkItemSelect';
if (isChecked && !browser.firefox) {
// In firefox, the initial tap hold doesnt' get treated as a click
// In other browsers it does, so we need to make sure that initial click is ignored
- cssClass += " checkedInitial";
+ cssClass += ' checkedInitial';
}
- var checkedAttribute = isChecked ? " checked" : "";
+ var checkedAttribute = isChecked ? ' checked' : '';
itemSelectionPanel.innerHTML = ' ';
- var chkItemSelect = itemSelectionPanel.querySelector(".chkItemSelect");
- chkItemSelect.addEventListener("change", onSelectionChange);
+ var chkItemSelect = itemSelectionPanel.querySelector('.chkItemSelect');
+ chkItemSelect.addEventListener('change', onSelectionChange);
}
}
@@ -118,27 +118,27 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
if (!selectionCommandsPanel) {
- selectionCommandsPanel = document.createElement("div");
- selectionCommandsPanel.classList.add("selectionCommandsPanel");
+ selectionCommandsPanel = document.createElement('div');
+ selectionCommandsPanel.classList.add('selectionCommandsPanel');
document.body.appendChild(selectionCommandsPanel);
currentSelectionCommandsPanel = selectionCommandsPanel;
- var html = "";
+ var html = '';
html += ' ';
html += ' ';
- const moreIcon = "more_horiz";
+ const moreIcon = 'more_horiz';
html += ' ';
selectionCommandsPanel.innerHTML = html;
- selectionCommandsPanel.querySelector(".btnCloseSelectionPanel").addEventListener("click", hideSelections);
+ selectionCommandsPanel.querySelector('.btnCloseSelectionPanel').addEventListener('click', hideSelections);
- var btnSelectionPanelOptions = selectionCommandsPanel.querySelector(".btnSelectionPanelOptions");
+ var btnSelectionPanelOptions = selectionCommandsPanel.querySelector('.btnSelectionPanelOptions');
- dom.addEventListener(btnSelectionPanelOptions, "click", showMenuForSelectedItems, { passive: true });
+ dom.addEventListener(btnSelectionPanelOptions, 'click', showMenuForSelectedItems, { passive: true });
}
}
@@ -146,7 +146,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
return new Promise(function (resolve, reject) {
- require(["alert"], function (alert) {
+ require(['alert'], function (alert) {
alert(options).then(resolve, resolve);
});
});
@@ -156,15 +156,15 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
return new Promise(function (resolve, reject) {
- var msg = globalize.translate("ConfirmDeleteItem");
- var title = globalize.translate("HeaderDeleteItem");
+ var msg = globalize.translate('ConfirmDeleteItem');
+ var title = globalize.translate('HeaderDeleteItem');
if (itemIds.length > 1) {
- msg = globalize.translate("ConfirmDeleteItems");
- title = globalize.translate("HeaderDeleteItems");
+ msg = globalize.translate('ConfirmDeleteItems');
+ title = globalize.translate('HeaderDeleteItems');
}
- require(["confirm"], function (confirm) {
+ require(['confirm'], function (confirm) {
confirm(msg, title).then(function () {
var promises = itemIds.map(function (itemId) {
@@ -173,7 +173,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
Promise.all(promises).then(resolve, function () {
- alertText(globalize.translate("ErrorDeletingItem")).then(reject, reject);
+ alertText(globalize.translate('ErrorDeletingItem')).then(reject, reject);
});
}, reject);
@@ -190,58 +190,58 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
var menuItems = [];
menuItems.push({
- name: globalize.translate("AddToCollection"),
- id: "addtocollection",
- icon: "add"
+ name: globalize.translate('AddToCollection'),
+ id: 'addtocollection',
+ icon: 'add'
});
menuItems.push({
- name: globalize.translate("AddToPlaylist"),
- id: "playlist",
- icon: "playlist_add"
+ name: globalize.translate('AddToPlaylist'),
+ id: 'playlist',
+ icon: 'playlist_add'
});
// TODO: Be more dynamic based on what is selected
if (user.Policy.EnableContentDeletion) {
menuItems.push({
- name: globalize.translate("Delete"),
- id: "delete",
- icon: "delete"
+ name: globalize.translate('Delete'),
+ id: 'delete',
+ icon: 'delete'
});
}
- if (user.Policy.EnableContentDownloading && appHost.supports("filedownload")) {
+ if (user.Policy.EnableContentDownloading && appHost.supports('filedownload')) {
menuItems.push({
- name: globalize.translate("ButtonDownload"),
- id: "download",
- icon: "file_download"
+ name: globalize.translate('ButtonDownload'),
+ id: 'download',
+ icon: 'file_download'
});
}
if (user.Policy.IsAdministrator) {
menuItems.push({
- name: globalize.translate("GroupVersions"),
- id: "groupvideos",
- icon: "call_merge"
+ name: globalize.translate('GroupVersions'),
+ id: 'groupvideos',
+ icon: 'call_merge'
});
}
menuItems.push({
- name: globalize.translate("MarkPlayed"),
- id: "markplayed",
- icon: "check_box"
+ name: globalize.translate('MarkPlayed'),
+ id: 'markplayed',
+ icon: 'check_box'
});
menuItems.push({
- name: globalize.translate("MarkUnplayed"),
- id: "markunplayed",
- icon: "check_box_outline_blank"
+ name: globalize.translate('MarkUnplayed'),
+ id: 'markunplayed',
+ icon: 'check_box_outline_blank'
});
menuItems.push({
- name: globalize.translate("RefreshMetadata"),
- id: "refresh",
- icon: "refresh"
+ name: globalize.translate('RefreshMetadata'),
+ id: 'refresh',
+ icon: 'refresh'
});
require(['actionsheet'], function (actionsheet) {
@@ -253,8 +253,8 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
var serverId = apiClient.serverInfo().Id;
switch (id) {
- case "addtocollection":
- require(["collectionEditor"], function (collectionEditor) {
+ case 'addtocollection':
+ require(['collectionEditor'], function (collectionEditor) {
new collectionEditor().show({
items: items,
serverId: serverId
@@ -263,8 +263,8 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
hideSelections();
dispatchNeedsRefresh();
break;
- case "playlist":
- require(["playlistEditor"], function (playlistEditor) {
+ case 'playlist':
+ require(['playlistEditor'], function (playlistEditor) {
new playlistEditor().show({
items: items,
serverId: serverId
@@ -273,30 +273,30 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
hideSelections();
dispatchNeedsRefresh();
break;
- case "delete":
+ case 'delete':
deleteItems(apiClient, items).then(dispatchNeedsRefresh);
hideSelections();
dispatchNeedsRefresh();
break;
- case "groupvideos":
+ case 'groupvideos':
combineVersions(apiClient, items);
break;
- case "markplayed":
+ case 'markplayed':
items.forEach(function (itemId) {
apiClient.markPlayed(apiClient.getCurrentUserId(), itemId);
});
hideSelections();
dispatchNeedsRefresh();
break;
- case "markunplayed":
+ case 'markunplayed':
items.forEach(function (itemId) {
apiClient.markUnplayed(apiClient.getCurrentUserId(), itemId);
});
hideSelections();
dispatchNeedsRefresh();
break;
- case "refresh":
- require(["refreshDialog"], function (refreshDialog) {
+ case 'refresh':
+ require(['refreshDialog'], function (refreshDialog) {
new refreshDialog({
itemIds: items,
serverId: serverId
@@ -321,7 +321,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
[].forEach.call(selectedElements, function (i) {
- var container = dom.parentWithAttribute(i, "is", "emby-itemscontainer");
+ var container = dom.parentWithAttribute(i, 'is', 'emby-itemscontainer');
if (container && elems.indexOf(container) === -1) {
elems.push(container);
@@ -337,9 +337,9 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
if (selection.length < 2) {
- require(["alert"], function (alert) {
+ require(['alert'], function (alert) {
alert({
- text: globalize.translate("PleaseSelectTwoItems")
+ text: globalize.translate('PleaseSelectTwoItems')
});
});
return;
@@ -349,8 +349,8 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
apiClient.ajax({
- type: "POST",
- url: apiClient.getUrl("Videos/MergeVersions", { Ids: selection.join(",") })
+ type: 'POST',
+ url: apiClient.getUrl('Videos/MergeVersions', { Ids: selection.join(',') })
}).then(function () {
@@ -362,8 +362,8 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
function showSelections(initialCard) {
- require(["emby-checkbox"], function () {
- var cards = document.querySelectorAll(".card");
+ require(['emby-checkbox'], function () {
+ var cards = document.querySelectorAll('.card');
for (var i = 0, length = cards.length; i < length; i++) {
showSelection(cards[i], initialCard === cards[i]);
}
@@ -379,9 +379,9 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
if (selectedItems.length) {
- var card = dom.parentWithClass(target, "card");
+ var card = dom.parentWithClass(target, 'card');
if (card) {
- var itemSelectionPanel = card.querySelector(".itemSelectionPanel");
+ var itemSelectionPanel = card.querySelector('.itemSelectionPanel');
if (itemSelectionPanel) {
return onItemSelectionPanelClick(e, itemSelectionPanel);
}
@@ -393,7 +393,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
}
}
- document.addEventListener("viewbeforehide", hideSelections);
+ document.addEventListener('viewbeforehide', hideSelections);
return function (options) {
@@ -403,7 +403,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
function onTapHold(e) {
- var card = dom.parentWithClass(e.target, "card");
+ var card = dom.parentWithClass(e.target, 'card');
if (card) {
@@ -440,7 +440,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
var element = touch.target;
if (element) {
- var card = dom.parentWithClass(element, "card");
+ var card = dom.parentWithClass(element, 'card');
if (card) {
@@ -509,7 +509,7 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
return;
}
- var card = dom.parentWithClass(touchTarget, "card");
+ var card = dom.parentWithClass(touchTarget, 'card');
touchTarget = null;
if (card) {
@@ -522,27 +522,27 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
// mobile safari doesn't allow contextmenu override
if (browser.touch && !browser.safari) {
- element.addEventListener("contextmenu", onTapHold);
+ element.addEventListener('contextmenu', onTapHold);
} else {
- dom.addEventListener(element, "touchstart", onTouchStart, {
+ dom.addEventListener(element, 'touchstart', onTouchStart, {
passive: true
});
- dom.addEventListener(element, "touchmove", onTouchMove, {
+ dom.addEventListener(element, 'touchmove', onTouchMove, {
passive: true
});
- dom.addEventListener(element, "touchend", onTouchEnd, {
+ dom.addEventListener(element, 'touchend', onTouchEnd, {
passive: true
});
- dom.addEventListener(element, "touchcancel", onTouchEnd, {
+ dom.addEventListener(element, 'touchcancel', onTouchEnd, {
passive: true
});
- dom.addEventListener(element, "mousedown", onMouseDown, {
+ dom.addEventListener(element, 'mousedown', onMouseDown, {
passive: true
});
- dom.addEventListener(element, "mouseleave", onMouseOut, {
+ dom.addEventListener(element, 'mouseleave', onMouseOut, {
passive: true
});
- dom.addEventListener(element, "mouseup", onMouseOut, {
+ dom.addEventListener(element, 'mouseup', onMouseOut, {
passive: true
});
}
@@ -551,38 +551,38 @@ define(["browser", "appStorage", "apphost", "loading", "connectionManager", "glo
initTapHold(container);
if (options.bindOnClick !== false) {
- container.addEventListener("click", onContainerClick);
+ container.addEventListener('click', onContainerClick);
}
self.onContainerClick = onContainerClick;
self.destroy = function () {
- container.removeEventListener("click", onContainerClick);
- container.removeEventListener("contextmenu", onTapHold);
+ container.removeEventListener('click', onContainerClick);
+ container.removeEventListener('contextmenu', onTapHold);
var element = container;
- dom.removeEventListener(element, "touchstart", onTouchStart, {
+ dom.removeEventListener(element, 'touchstart', onTouchStart, {
passive: true
});
- dom.removeEventListener(element, "touchmove", onTouchMove, {
+ dom.removeEventListener(element, 'touchmove', onTouchMove, {
passive: true
});
- dom.removeEventListener(element, "touchend", onTouchEnd, {
+ dom.removeEventListener(element, 'touchend', onTouchEnd, {
passive: true
});
// this fires in safari due to magnifying class
//dom.removeEventListener(element, "touchcancel", onTouchEnd, {
// passive: true
//});
- dom.removeEventListener(element, "mousedown", onMouseDown, {
+ dom.removeEventListener(element, 'mousedown', onMouseDown, {
passive: true
});
- dom.removeEventListener(element, "mouseleave", onMouseOut, {
+ dom.removeEventListener(element, 'mouseleave', onMouseOut, {
passive: true
});
- dom.removeEventListener(element, "mouseup", onMouseOut, {
+ dom.removeEventListener(element, 'mouseup', onMouseOut, {
passive: true
});
};
diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js
index 4b00171ae..3ac891b5e 100644
--- a/src/components/notifications/notifications.js
+++ b/src/components/notifications/notifications.js
@@ -6,7 +6,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
document.removeEventListener('keydown', onOneDocumentClick);
// don't request notification permissions if they're already granted or denied
- if (window.Notification && window.Notification.permission === "default") {
+ if (window.Notification && window.Notification.permission === 'default') {
/* eslint-disable-next-line compat/compat */
Notification.requestPermission();
}
@@ -97,10 +97,10 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
}
var notification = {
- title: "New " + item.Type,
+ title: 'New ' + item.Type,
body: body,
vibrate: true,
- tag: "newItem" + item.Id,
+ tag: 'newItem' + item.Id,
data: {
//options: {
// url: LibraryBrowser.getHref(item)
@@ -115,7 +115,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
notification.icon = apiClient.getScaledImageUrl(item.Id, {
width: 80,
tag: imageTags.Primary,
- type: "Primary"
+ type: 'Primary'
});
}
@@ -139,11 +139,11 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
Recursive: true,
Limit: 3,
- Filters: "IsNotFolder",
- SortBy: "DateCreated",
- SortOrder: "Descending",
+ Filters: 'IsNotFolder',
+ SortBy: 'DateCreated',
+ SortOrder: 'Descending',
Ids: newItems.join(','),
- MediaTypes: "Audio,Video",
+ MediaTypes: 'Audio,Video',
EnableTotalRecordCount: false
}).then(function (result) {
@@ -171,7 +171,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
}
var notification = {
- tag: "install" + installation.Id,
+ tag: 'install' + installation.Id,
data: {}
};
@@ -216,25 +216,25 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
});
events.on(serverNotifications, 'PackageInstallationCompleted', function (e, apiClient, data) {
- showPackageInstallNotification(apiClient, data, "completed");
+ showPackageInstallNotification(apiClient, data, 'completed');
});
events.on(serverNotifications, 'PackageInstallationFailed', function (e, apiClient, data) {
- showPackageInstallNotification(apiClient, data, "failed");
+ showPackageInstallNotification(apiClient, data, 'failed');
});
events.on(serverNotifications, 'PackageInstallationCancelled', function (e, apiClient, data) {
- showPackageInstallNotification(apiClient, data, "cancelled");
+ showPackageInstallNotification(apiClient, data, 'cancelled');
});
events.on(serverNotifications, 'PackageInstalling', function (e, apiClient, data) {
- showPackageInstallNotification(apiClient, data, "progress");
+ showPackageInstallNotification(apiClient, data, 'progress');
});
events.on(serverNotifications, 'ServerShuttingDown', function (e, apiClient, data) {
var serverId = apiClient.serverInfo().Id;
var notification = {
- tag: "restart" + serverId,
+ tag: 'restart' + serverId,
title: globalize.translate('ServerNameIsShuttingDown', apiClient.serverInfo().Name)
};
showNotification(notification, 0, apiClient);
@@ -243,7 +243,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
events.on(serverNotifications, 'ServerRestarting', function (e, apiClient, data) {
var serverId = apiClient.serverInfo().Id;
var notification = {
- tag: "restart" + serverId,
+ tag: 'restart' + serverId,
title: globalize.translate('ServerNameIsRestarting', apiClient.serverInfo().Name)
};
showNotification(notification, 0, apiClient);
@@ -253,7 +253,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
var serverId = apiClient.serverInfo().Id;
var notification = {
- tag: "restart" + serverId,
+ tag: 'restart' + serverId,
title: globalize.translate('PleaseRestartServerName', apiClient.serverInfo().Name)
};
diff --git a/src/components/nowplayingbar/nowplayingbar.js b/src/components/nowplayingbar/nowplayingbar.js
index 0b369f1f3..546029a98 100644
--- a/src/components/nowplayingbar/nowplayingbar.js
+++ b/src/components/nowplayingbar/nowplayingbar.js
@@ -368,7 +368,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
var timeText = positionTicks == null ? '--:--' : datetime.getDisplayRunningTime(positionTicks);
if (runtimeTicks) {
- timeText += " / " + datetime.getDisplayRunningTime(runtimeTicks);
+ timeText += ' / ' + datetime.getDisplayRunningTime(runtimeTicks);
}
currentTimeElement.innerHTML = timeText;
@@ -440,7 +440,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
}
options = options || {};
- options.type = options.type || "Primary";
+ options.type = options.type || 'Primary';
if (options.type === 'Primary') {
@@ -478,7 +478,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
}
options = options || {};
- options.type = options.type || "Primary";
+ options.type = options.type || 'Primary';
if (item.ImageTags && item.ImageTags[options.type]) {
diff --git a/src/components/photoplayer/plugin.js b/src/components/photoplayer/plugin.js
index 06d2e3b39..4dc00809d 100644
--- a/src/components/photoplayer/plugin.js
+++ b/src/components/photoplayer/plugin.js
@@ -1,5 +1,5 @@
define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager) {
- "use strict";
+ 'use strict';
function PhotoPlayer() {
diff --git a/src/components/playback/experimentalwarnings.js b/src/components/playback/experimentalwarnings.js
index 02a7b82ca..632e38208 100644
--- a/src/components/playback/experimentalwarnings.js
+++ b/src/components/playback/experimentalwarnings.js
@@ -1,5 +1,5 @@
define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (connectionManager, globalize, userSettings, appHost) {
- "use strict";
+ 'use strict';
function getRequirePromise(deps) {
@@ -44,15 +44,15 @@ define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (
}
function showBlurayMessage() {
- return showMessage(globalize.translate("UnsupportedPlayback"), 'blurayexpirementalinfo', 'nativeblurayplayback');
+ return showMessage(globalize.translate('UnsupportedPlayback'), 'blurayexpirementalinfo', 'nativeblurayplayback');
}
function showDvdMessage() {
- return showMessage(globalize.translate("UnsupportedPlayback"), 'dvdexpirementalinfo', 'nativedvdplayback');
+ return showMessage(globalize.translate('UnsupportedPlayback'), 'dvdexpirementalinfo', 'nativedvdplayback');
}
function showIsoMessage() {
- return showMessage(globalize.translate("UnsupportedPlayback"), 'isoexpirementalinfo', 'nativeisoplayback');
+ return showMessage(globalize.translate('UnsupportedPlayback'), 'isoexpirementalinfo', 'nativeisoplayback');
}
function ExpirementalPlaybackWarnings() {
diff --git a/src/components/playback/mediasession.js b/src/components/playback/mediasession.js
index c03420c85..937f08dbf 100644
--- a/src/components/playback/mediasession.js
+++ b/src/components/playback/mediasession.js
@@ -1,5 +1,5 @@
define(['playbackManager', 'nowPlayingHelper', 'events', 'connectionManager'], function (playbackManager, nowPlayingHelper, events, connectionManager) {
- "use strict";
+ 'use strict';
// no support for mediaSession
if (!navigator.mediaSession && !window.NativeShell) {
@@ -18,7 +18,7 @@ define(['playbackManager', 'nowPlayingHelper', 'events', 'connectionManager'], f
}
options = options || {};
- options.type = options.type || "Primary";
+ options.type = options.type || 'Primary';
if (options.type === 'Primary') {
@@ -52,7 +52,7 @@ define(['playbackManager', 'nowPlayingHelper', 'events', 'connectionManager'], f
function imageUrl(item, options) {
options = options || {};
- options.type = options.type || "Primary";
+ options.type = options.type || 'Primary';
if (item.ImageTags && item.ImageTags[options.type]) {
diff --git a/src/components/playback/nowplayinghelper.js b/src/components/playback/nowplayinghelper.js
index b1af977ab..9bba23c29 100644
--- a/src/components/playback/nowplayinghelper.js
+++ b/src/components/playback/nowplayinghelper.js
@@ -18,10 +18,10 @@ define([], function () {
if (nowPlayingItem.MediaType === 'Video') {
if (nowPlayingItem.IndexNumber != null) {
- topText = nowPlayingItem.IndexNumber + " - " + topText;
+ topText = nowPlayingItem.IndexNumber + ' - ' + topText;
}
if (nowPlayingItem.ParentIndexNumber != null) {
- topText = nowPlayingItem.ParentIndexNumber + "." + topText;
+ topText = nowPlayingItem.ParentIndexNumber + '.' + topText;
}
}
diff --git a/src/components/playback/playaccessvalidation.js b/src/components/playback/playaccessvalidation.js
index 46a6f7546..5148d2b82 100644
--- a/src/components/playback/playaccessvalidation.js
+++ b/src/components/playback/playaccessvalidation.js
@@ -1,5 +1,5 @@
define(['connectionManager', 'globalize'], function (connectionManager, globalize) {
- "use strict";
+ 'use strict';
function getRequirePromise(deps) {
return new Promise(function (resolve, reject) {
diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js
index 031231285..ee85f9acb 100644
--- a/src/components/playback/playbackmanager.js
+++ b/src/components/playback/playbackmanager.js
@@ -128,8 +128,8 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
} else {
query.Limit = query.Limit || 300;
- query.Fields = "Chapters";
- query.ExcludeLocationTypes = "Virtual";
+ query.Fields = 'Chapters';
+ query.ExcludeLocationTypes = 'Virtual';
query.EnableTotalRecordCount = false;
query.CollapseBoxSetItems = false;
@@ -164,7 +164,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
function backdropImageUrl(apiClient, item, options) {
options = options || {};
- options.type = options.type || "Backdrop";
+ options.type = options.type || 'Backdrop';
// If not resizing, get the original image
if (!options.maxWidth && !options.width && !options.maxHeight && !options.height) {
@@ -221,15 +221,15 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
}
function getParam(name, url) {
- name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
- var regexS = "[\\?&]" + name + "=([^]*)";
- var regex = new RegExp(regexS, "i");
+ name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
+ var regexS = '[\\?&]' + name + '=([^]*)';
+ var regex = new RegExp(regexS, 'i');
var results = regex.exec(url);
if (results == null) {
- return "";
+ return '';
} else {
- return decodeURIComponent(results[1].replace(/\+/g, " "));
+ return decodeURIComponent(results[1].replace(/\+/g, ' '));
}
}
@@ -616,8 +616,8 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
url: apiClient.getUrl('LiveStreams/Open', query),
type: 'POST',
data: JSON.stringify(postData),
- contentType: "application/json",
- dataType: "json"
+ contentType: 'application/json',
+ dataType: 'json'
});
}
@@ -1129,17 +1129,17 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
var itemType = item.Type;
- if (itemType === "PhotoAlbum" || itemType === "MusicGenre" || itemType === "Season" || itemType === "Series" || itemType === "BoxSet" || itemType === "MusicAlbum" || itemType === "MusicArtist" || itemType === "Playlist") {
+ if (itemType === 'PhotoAlbum' || itemType === 'MusicGenre' || itemType === 'Season' || itemType === 'Series' || itemType === 'BoxSet' || itemType === 'MusicAlbum' || itemType === 'MusicArtist' || itemType === 'Playlist') {
return true;
}
- if (item.LocationType === "Virtual") {
- if (itemType !== "Program") {
+ if (item.LocationType === 'Virtual') {
+ if (itemType !== 'Program') {
return false;
}
}
- if (itemType === "Program") {
+ if (itemType === 'Program') {
if (!item.EndDate || !item.StartDate) {
return false;
@@ -1877,36 +1877,36 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
var queryOptions = options.queryOptions || {};
- if (firstItem.Type === "Program") {
+ if (firstItem.Type === 'Program') {
promise = getItemsForPlayback(serverId, {
Ids: firstItem.ChannelId
});
- } else if (firstItem.Type === "Playlist") {
+ } else if (firstItem.Type === 'Playlist') {
promise = getItemsForPlayback(serverId, {
ParentId: firstItem.Id,
SortBy: options.shuffle ? 'Random' : null
});
- } else if (firstItem.Type === "MusicArtist") {
+ } else if (firstItem.Type === 'MusicArtist') {
promise = getItemsForPlayback(serverId, {
ArtistIds: firstItem.Id,
- Filters: "IsNotFolder",
+ Filters: 'IsNotFolder',
Recursive: true,
SortBy: options.shuffle ? 'Random' : 'SortName',
- MediaTypes: "Audio"
+ MediaTypes: 'Audio'
});
- } else if (firstItem.MediaType === "Photo") {
+ } else if (firstItem.MediaType === 'Photo') {
promise = getItemsForPlayback(serverId, {
ParentId: firstItem.ParentId,
- Filters: "IsNotFolder",
+ Filters: 'IsNotFolder',
// Setting this to true may cause some incorrect sorting
Recursive: false,
SortBy: options.shuffle ? 'Random' : 'SortName',
- MediaTypes: "Photo,Video",
+ MediaTypes: 'Photo,Video',
Limit: 500
}).then(function (result) {
@@ -1927,40 +1927,40 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
return Promise.resolve(result);
});
- } else if (firstItem.Type === "PhotoAlbum") {
+ } else if (firstItem.Type === 'PhotoAlbum') {
promise = getItemsForPlayback(serverId, {
ParentId: firstItem.Id,
- Filters: "IsNotFolder",
+ Filters: 'IsNotFolder',
// Setting this to true may cause some incorrect sorting
Recursive: false,
SortBy: options.shuffle ? 'Random' : 'SortName',
- MediaTypes: "Photo,Video",
+ MediaTypes: 'Photo,Video',
Limit: 1000
});
- } else if (firstItem.Type === "MusicGenre") {
+ } else if (firstItem.Type === 'MusicGenre') {
promise = getItemsForPlayback(serverId, {
GenreIds: firstItem.Id,
- Filters: "IsNotFolder",
+ Filters: 'IsNotFolder',
Recursive: true,
SortBy: options.shuffle ? 'Random' : 'SortName',
- MediaTypes: "Audio"
+ MediaTypes: 'Audio'
});
} else if (firstItem.IsFolder) {
promise = getItemsForPlayback(serverId, mergePlaybackQueries({
ParentId: firstItem.Id,
- Filters: "IsNotFolder",
+ Filters: 'IsNotFolder',
Recursive: true,
// These are pre-sorted
SortBy: options.shuffle ? 'Random' : (['BoxSet'].indexOf(firstItem.Type) === -1 ? 'SortName' : null),
- MediaTypes: "Audio,Video"
+ MediaTypes: 'Audio,Video'
}, queryOptions));
- } else if (firstItem.Type === "Episode" && items.length === 1 && getPlayer(firstItem, options).supportsProgress !== false) {
+ } else if (firstItem.Type === 'Episode' && items.length === 1 && getPlayer(firstItem, options).supportsProgress !== false) {
promise = new Promise(function (resolve, reject) {
var apiClient = connectionManager.getApiClient(firstItem.ServerId);
@@ -1976,7 +1976,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
IsVirtualUnaired: false,
IsMissing: false,
UserId: apiClient.getCurrentUserId(),
- Fields: "Chapters"
+ Fields: 'Chapters'
}).then(function (episodesResult) {
@@ -2213,7 +2213,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
return Promise.reject();
}
- if (firstItem.MediaType === "Photo") {
+ if (firstItem.MediaType === 'Photo') {
return playPhotos(items, options, user);
}
@@ -3851,23 +3851,23 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
if (player.isLocalPlayer) {
var list = [
- "GoHome",
- "GoToSettings",
- "VolumeUp",
- "VolumeDown",
- "Mute",
- "Unmute",
- "ToggleMute",
- "SetVolume",
- "SetAudioStreamIndex",
- "SetSubtitleStreamIndex",
- "SetMaxStreamingBitrate",
- "DisplayContent",
- "GoToSearch",
- "DisplayMessage",
- "SetRepeatMode",
- "PlayMediaSource",
- "PlayTrailers"
+ 'GoHome',
+ 'GoToSettings',
+ 'VolumeUp',
+ 'VolumeDown',
+ 'Mute',
+ 'Unmute',
+ 'ToggleMute',
+ 'SetVolume',
+ 'SetAudioStreamIndex',
+ 'SetSubtitleStreamIndex',
+ 'SetMaxStreamingBitrate',
+ 'DisplayContent',
+ 'GoToSearch',
+ 'DisplayMessage',
+ 'SetRepeatMode',
+ 'PlayMediaSource',
+ 'PlayTrailers'
];
if (apphost.supports('fullscreenchange')) {
diff --git a/src/components/playback/playbackorientation.js b/src/components/playback/playbackorientation.js
index 5836298ea..654ac2984 100644
--- a/src/components/playback/playbackorientation.js
+++ b/src/components/playback/playbackorientation.js
@@ -1,5 +1,5 @@
define(['playbackManager', 'layoutManager', 'events'], function (playbackManager, layoutManager, events) {
- "use strict";
+ 'use strict';
var orientationLocked;
diff --git a/src/components/playback/playerSelectionMenu.js b/src/components/playback/playerSelectionMenu.js
index 97e6e4623..329cc11f9 100644
--- a/src/components/playback/playerSelectionMenu.js
+++ b/src/components/playback/playerSelectionMenu.js
@@ -99,7 +99,7 @@ define(['appSettings', 'events', 'browser', 'loading', 'playbackManager', 'appRo
var name = t.name;
if (t.appName && t.appName !== t.name) {
- name += " - " + t.appName;
+ name += ' - ' + t.appName;
}
return {
diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js
index 086f98c2d..b89631f63 100644
--- a/src/components/playback/playersettingsmenu.js
+++ b/src/components/playback/playersettingsmenu.js
@@ -4,7 +4,7 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob
function showQualityMenu(player, btn) {
var videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) {
- return stream.Type === "Video";
+ return stream.Type === 'Video';
})[0];
var videoWidth = videoStream ? videoStream.Width : null;
@@ -87,7 +87,7 @@ define(['connectionManager', 'actionsheet', 'datetime', 'playbackManager', 'glob
var currentMaxBitrate = playbackManager.getMaxStreamingBitrate(player);
var videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) {
- return stream.Type === "Video";
+ return stream.Type === 'Video';
})[0];
var videoWidth = videoStream ? videoStream.Width : null;
diff --git a/src/components/playback/playqueuemanager.js b/src/components/playback/playqueuemanager.js
index 429c4027f..565cb6993 100644
--- a/src/components/playback/playqueuemanager.js
+++ b/src/components/playback/playqueuemanager.js
@@ -6,7 +6,7 @@ define([], function () {
if (!item.PlaylistItemId) {
- item.PlaylistItemId = "playlistItem" + currentId;
+ item.PlaylistItemId = 'playlistItem' + currentId;
currentId++;
}
}
diff --git a/src/components/playbacksettings/playbacksettings.js b/src/components/playbacksettings/playbacksettings.js
index d249b5b98..259386397 100644
--- a/src/components/playbacksettings/playbacksettings.js
+++ b/src/components/playbacksettings/playbacksettings.js
@@ -1,5 +1,5 @@
define(['require', 'browser', 'appSettings', 'apphost', 'focusManager', 'qualityoptions', 'globalize', 'loading', 'connectionManager', 'dom', 'events', 'emby-select', 'emby-checkbox'], function (require, browser, appSettings, appHost, focusManager, qualityoptions, globalize, loading, connectionManager, dom, events) {
- "use strict";
+ 'use strict';
function fillSkipLengths(select) {
@@ -17,15 +17,15 @@ define(['require', 'browser', 'appSettings', 'apphost', 'focusManager', 'quality
function populateLanguages(select, languages) {
- var html = "";
+ var html = '';
- html += "" + globalize.translate('AnyLanguage') + " ";
+ html += "" + globalize.translate('AnyLanguage') + ' ';
for (var i = 0, length = languages.length; i < length; i++) {
var culture = languages[i];
- html += "" + culture.DisplayName + " ";
+ html += "" + culture.DisplayName + ' ';
}
select.innerHTML = html;
@@ -154,12 +154,12 @@ define(['require', 'browser', 'appSettings', 'apphost', 'focusManager', 'quality
populateLanguages(context.querySelector('#selectAudioLanguage'), allCultures);
- context.querySelector('#selectAudioLanguage', context).value = user.Configuration.AudioLanguagePreference || "";
+ context.querySelector('#selectAudioLanguage', context).value = user.Configuration.AudioLanguagePreference || '';
context.querySelector('.chkEpisodeAutoPlay').checked = user.Configuration.EnableNextEpisodeAutoPlay || false;
});
// hide cinema mode options if disabled at server level
- apiClient.getNamedConfiguration("cinemamode").then(function (cinemaConfig) {
+ apiClient.getNamedConfiguration('cinemamode').then(function (cinemaConfig) {
if (cinemaConfig.EnableIntrosForMovies || cinemaConfig.EnableIntrosForEpisodes) {
context.querySelector('.cinemaModeOptions').classList.remove('hide');
diff --git a/src/components/playerstats/playerstats.js b/src/components/playerstats/playerstats.js
index 74c36597b..c0fb369c6 100644
--- a/src/components/playerstats/playerstats.js
+++ b/src/components/playerstats/playerstats.js
@@ -132,7 +132,7 @@ define(['events', 'globalize', 'playbackManager', 'connectionManager', 'playMeth
if (videoCodec) {
sessionStats.push({
- label: globalize.translate("LabelVideoCodec"),
+ label: globalize.translate('LabelVideoCodec'),
value: session.TranscodingInfo.IsVideoDirect ? (videoCodec.toUpperCase() + ' (direct)') : videoCodec.toUpperCase()
});
}
@@ -140,7 +140,7 @@ define(['events', 'globalize', 'playbackManager', 'connectionManager', 'playMeth
if (audioCodec) {
sessionStats.push({
- label: globalize.translate("LabelAudioCodec"),
+ label: globalize.translate('LabelAudioCodec'),
value: session.TranscodingInfo.IsAudioDirect ? (audioCodec.toUpperCase() + ' (direct)') : audioCodec.toUpperCase()
});
}
@@ -157,28 +157,28 @@ define(['events', 'globalize', 'playbackManager', 'connectionManager', 'playMeth
if (totalBitrate) {
sessionStats.push({
- label: globalize.translate("LabelBitrate"),
+ label: globalize.translate('LabelBitrate'),
value: getDisplayBitrate(totalBitrate)
});
}
if (session.TranscodingInfo.CompletionPercentage) {
sessionStats.push({
- label: globalize.translate("LabelTranscodingProgress"),
+ label: globalize.translate('LabelTranscodingProgress'),
value: session.TranscodingInfo.CompletionPercentage.toFixed(1) + '%'
});
}
if (session.TranscodingInfo.Framerate) {
sessionStats.push({
- label: globalize.translate("LabelTranscodingFramerate"),
+ label: globalize.translate('LabelTranscodingFramerate'),
value: session.TranscodingInfo.Framerate + ' fps'
});
}
if (session.TranscodingInfo.TranscodeReasons && session.TranscodingInfo.TranscodeReasons.length) {
sessionStats.push({
- label: globalize.translate("LabelReasonForTranscoding"),
+ label: globalize.translate('LabelReasonForTranscoding'),
value: session.TranscodingInfo.TranscodeReasons.map(translateReason).join(' ')
});
}
@@ -216,14 +216,14 @@ define(['events', 'globalize', 'playbackManager', 'connectionManager', 'playMeth
if (mediaSource.Container) {
sessionStats.push({
- label: globalize.translate("LabelProfileContainer"),
+ label: globalize.translate('LabelProfileContainer'),
value: mediaSource.Container
});
}
if (mediaFileSize) {
sessionStats.push({
- label: globalize.translate("LabelSize"),
+ label: globalize.translate('LabelSize'),
value: getReadableSize(mediaFileSize)
});
}
@@ -231,7 +231,7 @@ define(['events', 'globalize', 'playbackManager', 'connectionManager', 'playMeth
if (totalBitrate) {
sessionStats.push({
- label: globalize.translate("LabelBitrate"),
+ label: globalize.translate('LabelBitrate'),
value: getDisplayBitrate(totalBitrate)
});
}
@@ -267,14 +267,14 @@ define(['events', 'globalize', 'playbackManager', 'connectionManager', 'playMeth
if (videoInfos.length) {
sessionStats.push({
- label: globalize.translate("LabelVideoCodec"),
+ label: globalize.translate('LabelVideoCodec'),
value: videoInfos.join(' ')
});
}
if (videoStream.BitRate) {
sessionStats.push({
- label: globalize.translate("LabelVideoBitrate"),
+ label: globalize.translate('LabelVideoBitrate'),
value: getDisplayBitrate(videoStream.BitRate)
});
}
@@ -291,35 +291,35 @@ define(['events', 'globalize', 'playbackManager', 'connectionManager', 'playMeth
if (audioInfos.length) {
sessionStats.push({
- label: globalize.translate("LabelAudioCodec"),
+ label: globalize.translate('LabelAudioCodec'),
value: audioInfos.join(' ')
});
}
if (audioStream.BitRate) {
sessionStats.push({
- label: globalize.translate("LabelAudioBitrate"),
+ label: globalize.translate('LabelAudioBitrate'),
value: getDisplayBitrate(audioStream.BitRate)
});
}
if (audioChannels) {
sessionStats.push({
- label: globalize.translate("LabelAudioChannels"),
+ label: globalize.translate('LabelAudioChannels'),
value: audioChannels
});
}
if (audioStream.SampleRate) {
sessionStats.push({
- label: globalize.translate("LabelAudioSampleRate"),
+ label: globalize.translate('LabelAudioSampleRate'),
value: audioStream.SampleRate + ' Hz'
});
}
if (audioStream.BitDepth) {
sessionStats.push({
- label: globalize.translate("LabelAudioBitDepth"),
+ label: globalize.translate('LabelAudioBitDepth'),
value: audioStream.BitDepth
});
}
@@ -346,12 +346,12 @@ define(['events', 'globalize', 'playbackManager', 'connectionManager', 'playMeth
};
baseCategory.stats.unshift({
- label: globalize.translate("LabelPlayMethod"),
+ label: globalize.translate('LabelPlayMethod'),
value: displayPlayMethod
});
baseCategory.stats.unshift({
- label: globalize.translate("LabelPlayer"),
+ label: globalize.translate('LabelPlayer'),
value: player.name
});
diff --git a/src/components/playlisteditor/playlisteditor.js b/src/components/playlisteditor/playlisteditor.js
index 93beb182d..56d7142ad 100644
--- a/src/components/playlisteditor/playlisteditor.js
+++ b/src/components/playlisteditor/playlisteditor.js
@@ -23,7 +23,7 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackMan
function createPlaylist(apiClient, dlg) {
loading.show();
- var url = apiClient.getUrl("Playlists", {
+ var url = apiClient.getUrl('Playlists', {
Name: dlg.querySelector('#txtNewPlaylistName').value,
Ids: dlg.querySelector('.fldSelectedItemIds').value || '',
userId: apiClient.getCurrentUserId()
@@ -31,9 +31,9 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackMan
});
apiClient.ajax({
- type: "POST",
+ type: 'POST',
url: url,
- dataType: "json"
+ dataType: 'json'
}).then(function (result) {
loading.hide();
@@ -63,13 +63,13 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackMan
loading.show();
- var url = apiClient.getUrl("Playlists/" + id + "/Items", {
+ var url = apiClient.getUrl('Playlists/' + id + '/Items', {
Ids: itemIds,
userId: apiClient.getCurrentUserId()
});
apiClient.ajax({
- type: "POST",
+ type: 'POST',
url: url
}).then(function () {
@@ -93,7 +93,7 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'playbackMan
var options = {
Recursive: true,
- IncludeItemTypes: "Playlist",
+ IncludeItemTypes: 'Playlist',
SortBy: 'SortName',
EnableTotalRecordCount: false
};
diff --git a/src/components/prompt/prompt.js b/src/components/prompt/prompt.js
index 41d40c4a4..a76083cf0 100644
--- a/src/components/prompt/prompt.js
+++ b/src/components/prompt/prompt.js
@@ -1,4 +1,4 @@
-define(["browser", 'dialogHelper', 'layoutManager', 'scrollHelper', 'globalize', 'dom', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle'], function(browser, dialogHelper, layoutManager, scrollHelper, globalize, dom, require) {
+define(['browser', 'dialogHelper', 'layoutManager', 'scrollHelper', 'globalize', 'dom', 'require', 'material-icons', 'emby-button', 'paper-icon-button-light', 'emby-input', 'formDialogStyle'], function(browser, dialogHelper, layoutManager, scrollHelper, globalize, dom, require) {
'use strict';
function replaceAll(str, find, replace) {
diff --git a/src/components/recordingcreator/recordingcreator.js b/src/components/recordingcreator/recordingcreator.js
index a51fac430..ae26d0deb 100644
--- a/src/components/recordingcreator/recordingcreator.js
+++ b/src/components/recordingcreator/recordingcreator.js
@@ -36,14 +36,14 @@ define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'c
if (imageTags.Primary) {
return apiClient.getScaledImageUrl(item.Id, {
- type: "Primary",
+ type: 'Primary',
maxHeight: imageHeight,
tag: item.ImageTags.Primary
});
} else if (imageTags.Thumb) {
return apiClient.getScaledImageUrl(item.Id, {
- type: "Thumb",
+ type: 'Thumb',
maxHeight: imageHeight,
tag: item.ImageTags.Thumb
});
diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js
index a9f0a4550..a4f25a774 100644
--- a/src/components/remotecontrol/remotecontrol.js
+++ b/src/components/remotecontrol/remotecontrol.js
@@ -1,5 +1,5 @@
-define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageLoader", "playbackManager", "nowPlayingHelper", "events", "connectionManager", "apphost", "globalize", "layoutManager", "userSettings", "cardBuilder", "cardStyle", "emby-itemscontainer", "css!./remotecontrol.css", "emby-ratingbutton"], function (browser, datetime, backdrop, libraryBrowser, listView, imageLoader, playbackManager, nowPlayingHelper, events, connectionManager, appHost, globalize, layoutManager, userSettings, cardBuilder) {
- "use strict";
+define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageLoader', 'playbackManager', 'nowPlayingHelper', 'events', 'connectionManager', 'apphost', 'globalize', 'layoutManager', 'userSettings', 'cardBuilder', 'cardStyle', 'emby-itemscontainer', 'css!./remotecontrol.css', 'emby-ratingbutton'], function (browser, datetime, backdrop, libraryBrowser, listView, imageLoader, playbackManager, nowPlayingHelper, events, connectionManager, appHost, globalize, layoutManager, userSettings, cardBuilder) {
+ 'use strict';
function showAudioMenu(context, player, button, item) {
var currentIndex = playbackManager.getAudioStreamIndex(player);
@@ -17,7 +17,7 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
return menuItem;
});
- require(["actionsheet"], function (actionsheet) {
+ require(['actionsheet'], function (actionsheet) {
actionsheet.show({
items: menuItems,
positionTo: button,
@@ -45,11 +45,11 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
});
menuItems.unshift({
id: -1,
- name: globalize.translate("ButtonOff"),
+ name: globalize.translate('ButtonOff'),
selected: null == currentIndex
});
- require(["actionsheet"], function (actionsheet) {
+ require(['actionsheet'], function (actionsheet) {
actionsheet.show({
items: menuItems,
positionTo: button,
@@ -63,22 +63,22 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function getNowPlayingNameHtml(nowPlayingItem, includeNonNameInfo) {
return nowPlayingHelper.getNowPlayingNames(nowPlayingItem, includeNonNameInfo).map(function (i) {
return i.text;
- }).join(" ");
+ }).join(' ');
}
function seriesImageUrl(item, options) {
- if ("Episode" !== item.Type) {
+ if ('Episode' !== item.Type) {
return null;
}
options = options || {};
- options.type = options.type || "Primary";
- if ("Primary" === options.type && item.SeriesPrimaryImageTag) {
+ options.type = options.type || 'Primary';
+ if ('Primary' === options.type && item.SeriesPrimaryImageTag) {
options.tag = item.SeriesPrimaryImageTag;
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
}
- if ("Thumb" === options.type) {
+ if ('Thumb' === options.type) {
if (item.SeriesThumbImageTag) {
options.tag = item.SeriesThumbImageTag;
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
@@ -95,7 +95,7 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function imageUrl(item, options) {
options = options || {};
- options.type = options.type || "Primary";
+ options.type = options.type || 'Primary';
if (item.ImageTags && item.ImageTags[options.type]) {
options.tag = item.ImageTags[options.type];
@@ -112,49 +112,49 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function updateNowPlayingInfo(context, state, serverId) {
var item = state.NowPlayingItem;
- var displayName = item ? getNowPlayingNameHtml(item).replace(" ", " - ") : "";
+ var displayName = item ? getNowPlayingNameHtml(item).replace(' ', ' - ') : '';
if (typeof item !== 'undefined') {
var nowPlayingServerId = (item.ServerId || serverId);
- if (item.Type == "Audio" || item.MediaStreams[0].Type == "Audio") {
+ if (item.Type == 'Audio' || item.MediaStreams[0].Type == 'Audio') {
var songName = item.Name;
if (item.Album != null && item.Artists != null) {
var albumName = item.Album;
var artistName;
if (item.ArtistItems != null) {
artistName = item.ArtistItems[0].Name;
- context.querySelector(".nowPlayingAlbum").innerHTML = '${albumName} `;
- context.querySelector(".nowPlayingArtist").innerHTML = '${artistName} `;
- context.querySelector(".contextMenuAlbum").innerHTML = ' ` + globalize.translate("ViewAlbum") + ' ';
- context.querySelector(".contextMenuArtist").innerHTML = ' ` + globalize.translate("ViewArtist") + ' ';
+ context.querySelector('.nowPlayingAlbum').innerHTML = '${albumName} `;
+ context.querySelector('.nowPlayingArtist').innerHTML = '${artistName} `;
+ context.querySelector('.contextMenuAlbum').innerHTML = ' ` + globalize.translate('ViewAlbum') + ' ';
+ context.querySelector('.contextMenuArtist').innerHTML = ' ` + globalize.translate('ViewArtist') + ' ';
} else {
artistName = item.Artists;
- context.querySelector(".nowPlayingAlbum").innerHTML = albumName;
- context.querySelector(".nowPlayingArtist").innerHTML = artistName;
+ context.querySelector('.nowPlayingAlbum').innerHTML = albumName;
+ context.querySelector('.nowPlayingArtist').innerHTML = artistName;
}
}
- context.querySelector(".nowPlayingSongName").innerHTML = songName;
- } else if (item.Type == "Episode") {
+ context.querySelector('.nowPlayingSongName').innerHTML = songName;
+ } else if (item.Type == 'Episode') {
if (item.SeasonName != null) {
var seasonName = item.SeasonName;
- context.querySelector(".nowPlayingSeason").innerHTML = '${seasonName} `;
+ context.querySelector('.nowPlayingSeason').innerHTML = '${seasonName} `;
}
if (item.SeriesName != null) {
var seriesName = item.SeriesName;
if (item.SeriesId !=null) {
- context.querySelector(".nowPlayingSerie").innerHTML = '${seriesName} `;
+ context.querySelector('.nowPlayingSerie').innerHTML = '${seriesName} `;
} else {
- context.querySelector(".nowPlayingSerie").innerHTML = seriesName;
+ context.querySelector('.nowPlayingSerie').innerHTML = seriesName;
}
}
- context.querySelector(".nowPlayingEpisode").innerHTML = item.Name;
+ context.querySelector('.nowPlayingEpisode').innerHTML = item.Name;
} else {
- context.querySelector(".nowPlayingPageTitle").innerHTML = displayName;
+ context.querySelector('.nowPlayingPageTitle').innerHTML = displayName;
}
- if (displayName.length > 0 && item.Type != "Audio" && item.Type != "Episode") {
- context.querySelector(".nowPlayingPageTitle").classList.remove("hide");
+ if (displayName.length > 0 && item.Type != 'Audio' && item.Type != 'Episode') {
+ context.querySelector('.nowPlayingPageTitle').classList.remove('hide');
} else {
- context.querySelector(".nowPlayingPageTitle").classList.add("hide");
+ context.querySelector('.nowPlayingPageTitle').classList.add('hide');
}
var url = item ? seriesImageUrl(item, {
@@ -163,20 +163,20 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
maxHeight: 300 * 2
}) : null;
- console.debug("updateNowPlayingInfo");
+ console.debug('updateNowPlayingInfo');
setImageUrl(context, state, url);
if (item) {
backdrop.setBackdrops([item]);
var apiClient = connectionManager.getApiClient(item.ServerId);
apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (fullItem) {
var userData = fullItem.UserData || {};
- var likes = null == userData.Likes ? "" : userData.Likes;
- context.querySelector(".nowPlayingPageUserDataButtonsTitle").innerHTML = ' ';
- context.querySelector(".nowPlayingPageUserDataButtons").innerHTML = ' ';
+ var likes = null == userData.Likes ? '' : userData.Likes;
+ context.querySelector('.nowPlayingPageUserDataButtonsTitle').innerHTML = ' ';
+ context.querySelector('.nowPlayingPageUserDataButtons').innerHTML = ' ';
});
} else {
backdrop.clear();
- context.querySelector(".nowPlayingPageUserDataButtons").innerHTML = "";
+ context.querySelector('.nowPlayingPageUserDataButtons').innerHTML = '';
}
}
}
@@ -184,16 +184,16 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function setImageUrl(context, state, url) {
currentImgUrl = url;
var item = state.NowPlayingItem;
- var imgContainer = context.querySelector(".nowPlayingPageImageContainer");
+ var imgContainer = context.querySelector('.nowPlayingPageImageContainer');
if (url) {
imgContainer.innerHTML = ' ';
- if (item.Type == "Audio") {
- context.querySelector(".nowPlayingPageImage").classList.add("nowPlayingPageImageAudio");
- context.querySelector(".nowPlayingPageImageContainer").classList.remove("nowPlayingPageImageAudio");
+ if (item.Type == 'Audio') {
+ context.querySelector('.nowPlayingPageImage').classList.add('nowPlayingPageImageAudio');
+ context.querySelector('.nowPlayingPageImageContainer').classList.remove('nowPlayingPageImageAudio');
} else {
- context.querySelector(".nowPlayingPageImageContainer").classList.add("nowPlayingPageImagePoster");
- context.querySelector(".nowPlayingPageImage").classList.remove("nowPlayingPageImageAudio");
+ context.querySelector('.nowPlayingPageImageContainer').classList.add('nowPlayingPageImagePoster');
+ context.querySelector('.nowPlayingPageImage').classList.remove('nowPlayingPageImageAudio');
}
} else {
imgContainer.innerHTML = '
';
@@ -202,17 +202,17 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function buttonVisible(btn, enabled) {
if (enabled) {
- btn.classList.remove("hide");
+ btn.classList.remove('hide');
} else {
- btn.classList.add("hide");
+ btn.classList.add('hide');
}
}
function updateSupportedCommands(context, commands) {
- var all = context.querySelectorAll(".btnCommand");
+ var all = context.querySelectorAll('.btnCommand');
for (var i = 0, length = all.length; i < length; i++) {
- var enableButton = -1 !== commands.indexOf(all[i].getAttribute("data-command"));
+ var enableButton = -1 !== commands.indexOf(all[i].getAttribute('data-command'));
all[i].disabled = !enableButton;
}
}
@@ -222,16 +222,16 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function toggleRepeat(player) {
if (player) {
switch (playbackManager.getRepeatMode(player)) {
- case "RepeatNone":
- playbackManager.setRepeatMode("RepeatAll", player);
+ case 'RepeatNone':
+ playbackManager.setRepeatMode('RepeatAll', player);
break;
- case "RepeatAll":
- playbackManager.setRepeatMode("RepeatOne", player);
+ case 'RepeatAll':
+ playbackManager.setRepeatMode('RepeatOne', player);
break;
- case "RepeatOne":
- playbackManager.setRepeatMode("RepeatNone", player);
+ case 'RepeatOne':
+ playbackManager.setRepeatMode('RepeatNone', player);
}
}
}
@@ -243,41 +243,41 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
var supportedCommands = playerInfo.supportedCommands;
currentPlayerSupportedCommands = supportedCommands;
var playState = state.PlayState || {};
- var isSupportedCommands = supportedCommands.includes("DisplayMessage") || supportedCommands.includes("SendString") || supportedCommands.includes("Select");
- buttonVisible(context.querySelector(".btnToggleFullscreen"), item && "Video" == item.MediaType && supportedCommands.includes("ToggleFullscreen"));
+ var isSupportedCommands = supportedCommands.includes('DisplayMessage') || supportedCommands.includes('SendString') || supportedCommands.includes('Select');
+ buttonVisible(context.querySelector('.btnToggleFullscreen'), item && 'Video' == item.MediaType && supportedCommands.includes('ToggleFullscreen'));
updateAudioTracksDisplay(player, context);
updateSubtitleTracksDisplay(player, context);
- if (supportedCommands.includes("DisplayMessage") && !currentPlayer.isLocalPlayer) {
- context.querySelector(".sendMessageSection").classList.remove("hide");
+ if (supportedCommands.includes('DisplayMessage') && !currentPlayer.isLocalPlayer) {
+ context.querySelector('.sendMessageSection').classList.remove('hide');
} else {
- context.querySelector(".sendMessageSection").classList.add("hide");
+ context.querySelector('.sendMessageSection').classList.add('hide');
}
- if (supportedCommands.includes("SendString") && !currentPlayer.isLocalPlayer) {
- context.querySelector(".sendTextSection").classList.remove("hide");
+ if (supportedCommands.includes('SendString') && !currentPlayer.isLocalPlayer) {
+ context.querySelector('.sendTextSection').classList.remove('hide');
} else {
- context.querySelector(".sendTextSection").classList.add("hide");
+ context.querySelector('.sendTextSection').classList.add('hide');
}
- if (supportedCommands.includes("Select") && !currentPlayer.isLocalPlayer) {
- context.querySelector(".navigationSection").classList.remove("hide");
+ if (supportedCommands.includes('Select') && !currentPlayer.isLocalPlayer) {
+ context.querySelector('.navigationSection').classList.remove('hide');
} else {
- context.querySelector(".navigationSection").classList.add("hide");
+ context.querySelector('.navigationSection').classList.add('hide');
}
if (isSupportedCommands && !currentPlayer.isLocalPlayer) {
- context.querySelector(".remoteControlSection").classList.remove("hide");
+ context.querySelector('.remoteControlSection').classList.remove('hide');
} else {
- context.querySelector(".remoteControlSection").classList.add("hide");
+ context.querySelector('.remoteControlSection').classList.add('hide');
}
- buttonVisible(context.querySelector(".btnStop"), null != item);
- buttonVisible(context.querySelector(".btnNextTrack"), null != item);
- buttonVisible(context.querySelector(".btnPreviousTrack"), null != item);
- buttonVisible(context.querySelector(".btnRewind"), null != item);
- buttonVisible(context.querySelector(".btnFastForward"), null != item);
- var positionSlider = context.querySelector(".nowPlayingPositionSlider");
+ buttonVisible(context.querySelector('.btnStop'), null != item);
+ buttonVisible(context.querySelector('.btnNextTrack'), null != item);
+ buttonVisible(context.querySelector('.btnPreviousTrack'), null != item);
+ buttonVisible(context.querySelector('.btnRewind'), null != item);
+ buttonVisible(context.querySelector('.btnFastForward'), null != item);
+ var positionSlider = context.querySelector('.nowPlayingPositionSlider');
if (positionSlider && item && item.RunTimeTicks) {
positionSlider.setKeyboardSteps(userSettings.skipBackLength() * 1000000 / item.RunTimeTicks,
@@ -294,10 +294,10 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
updateTimeDisplay(playState.PositionTicks, item ? item.RunTimeTicks : null);
updatePlayerVolumeState(context, playState.IsMuted, playState.VolumeLevel);
- if (item && "Video" == item.MediaType) {
- context.classList.remove("hideVideoButtons");
+ if (item && 'Video' == item.MediaType) {
+ context.classList.remove('hideVideoButtons');
} else {
- context.classList.add("hideVideoButtons");
+ context.classList.add('hideVideoButtons');
}
updateRepeatModeDisplay(playState.RepeatMode);
@@ -306,27 +306,27 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function updateAudioTracksDisplay(player, context) {
var supportedCommands = currentPlayerSupportedCommands;
- buttonVisible(context.querySelector(".btnAudioTracks"), playbackManager.audioTracks(player).length > 1 && -1 != supportedCommands.indexOf("SetAudioStreamIndex"));
+ buttonVisible(context.querySelector('.btnAudioTracks'), playbackManager.audioTracks(player).length > 1 && -1 != supportedCommands.indexOf('SetAudioStreamIndex'));
}
function updateSubtitleTracksDisplay(player, context) {
var supportedCommands = currentPlayerSupportedCommands;
- buttonVisible(context.querySelector(".btnSubtitles"), playbackManager.subtitleTracks(player).length && -1 != supportedCommands.indexOf("SetSubtitleStreamIndex"));
+ buttonVisible(context.querySelector('.btnSubtitles'), playbackManager.subtitleTracks(player).length && -1 != supportedCommands.indexOf('SetSubtitleStreamIndex'));
}
function updateRepeatModeDisplay(repeatMode) {
var context = dlg;
- var toggleRepeatButton = context.querySelector(".repeatToggleButton");
+ var toggleRepeatButton = context.querySelector('.repeatToggleButton');
- if ("RepeatAll" == repeatMode) {
+ if ('RepeatAll' == repeatMode) {
toggleRepeatButton.innerHTML = " ";
- toggleRepeatButton.classList.add("repeatButton-active");
- } else if ("RepeatOne" == repeatMode) {
+ toggleRepeatButton.classList.add('repeatButton-active');
+ } else if ('RepeatOne' == repeatMode) {
toggleRepeatButton.innerHTML = " ";
- toggleRepeatButton.classList.add("repeatButton-active");
+ toggleRepeatButton.classList.add('repeatButton-active');
} else {
toggleRepeatButton.innerHTML = " ";
- toggleRepeatButton.classList.remove("repeatButton-active");
+ toggleRepeatButton.classList.remove('repeatButton-active');
}
}
@@ -336,46 +336,46 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
var showMuteButton = true;
var showVolumeSlider = true;
- if (-1 === supportedCommands.indexOf("Mute")) {
+ if (-1 === supportedCommands.indexOf('Mute')) {
showMuteButton = false;
}
- if (-1 === supportedCommands.indexOf("SetVolume")) {
+ if (-1 === supportedCommands.indexOf('SetVolume')) {
showVolumeSlider = false;
}
- if (currentPlayer.isLocalPlayer && appHost.supports("physicalvolumecontrol")) {
+ if (currentPlayer.isLocalPlayer && appHost.supports('physicalvolumecontrol')) {
showMuteButton = false;
showVolumeSlider = false;
}
- const buttonMute = view.querySelector(".buttonMute");
- const buttonMuteIcon = buttonMute.querySelector(".material-icons");
+ const buttonMute = view.querySelector('.buttonMute');
+ const buttonMuteIcon = buttonMute.querySelector('.material-icons');
- buttonMuteIcon.classList.remove("volume_off", "volume_up");
+ buttonMuteIcon.classList.remove('volume_off', 'volume_up');
if (isMuted) {
- buttonMute.setAttribute("title", globalize.translate("Unmute"));
- buttonMuteIcon.classList.add("volume_off");
+ buttonMute.setAttribute('title', globalize.translate('Unmute'));
+ buttonMuteIcon.classList.add('volume_off');
} else {
- buttonMute.setAttribute("title", globalize.translate("Mute"));
- buttonMuteIcon.classList.add("volume_up");
+ buttonMute.setAttribute('title', globalize.translate('Mute'));
+ buttonMuteIcon.classList.add('volume_up');
}
if (showMuteButton) {
- buttonMute.classList.remove("hide");
+ buttonMute.classList.remove('hide');
} else {
- buttonMute.classList.add("hide");
+ buttonMute.classList.add('hide');
}
- var nowPlayingVolumeSlider = context.querySelector(".nowPlayingVolumeSlider");
- var nowPlayingVolumeSliderContainer = context.querySelector(".nowPlayingVolumeSliderContainer");
+ var nowPlayingVolumeSlider = context.querySelector('.nowPlayingVolumeSlider');
+ var nowPlayingVolumeSliderContainer = context.querySelector('.nowPlayingVolumeSliderContainer');
if (nowPlayingVolumeSlider) {
if (showVolumeSlider) {
- nowPlayingVolumeSliderContainer.classList.remove("hide");
+ nowPlayingVolumeSliderContainer.classList.remove('hide');
} else {
- nowPlayingVolumeSliderContainer.classList.add("hide");
+ nowPlayingVolumeSliderContainer.classList.add('hide');
}
if (!nowPlayingVolumeSlider.dragging) {
@@ -386,18 +386,18 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function updatePlayPauseState(isPaused, isActive) {
var context = dlg;
- var btnPlayPause = context.querySelector(".btnPlayPause");
- const btnPlayPauseIcon = btnPlayPause.querySelector(".material-icons");
+ var btnPlayPause = context.querySelector('.btnPlayPause');
+ const btnPlayPauseIcon = btnPlayPause.querySelector('.material-icons');
- btnPlayPauseIcon.classList.remove("play_circle_filled", "pause_circle_filled");
- btnPlayPauseIcon.classList.add(isPaused ? "play_circle_filled" : "pause_circle_filled");
+ btnPlayPauseIcon.classList.remove('play_circle_filled', 'pause_circle_filled');
+ btnPlayPauseIcon.classList.add(isPaused ? 'play_circle_filled' : 'pause_circle_filled');
buttonVisible(btnPlayPause, isActive);
}
function updateTimeDisplay(positionTicks, runtimeTicks) {
var context = dlg;
- var positionSlider = context.querySelector(".nowPlayingPositionSlider");
+ var positionSlider = context.querySelector('.nowPlayingPositionSlider');
if (positionSlider && !positionSlider.dragging) {
if (runtimeTicks) {
@@ -409,8 +409,8 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
}
}
- context.querySelector(".positionTime").innerHTML = null == positionTicks ? "--:--" : datetime.getDisplayRunningTime(positionTicks);
- context.querySelector(".runtime").innerHTML = null != runtimeTicks ? datetime.getDisplayRunningTime(runtimeTicks) : "--:--";
+ context.querySelector('.positionTime').innerHTML = null == positionTicks ? '--:--' : datetime.getDisplayRunningTime(positionTicks);
+ context.querySelector('.runtime').innerHTML = null != runtimeTicks ? datetime.getDisplayRunningTime(runtimeTicks) : '--:--';
}
function getPlaylistItems(player) {
@@ -419,27 +419,27 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function loadPlaylist(context, player) {
getPlaylistItems(player).then(function (items) {
- var html = "";
+ var html = '';
html += listView.getListViewHtml({
items: items,
smallIcon: true,
- action: "setplaylistindex",
+ action: 'setplaylistindex',
enableUserDataButtons: false,
rightButtons: [{
- icon: "remove_circle_outline",
- title: globalize.translate("ButtonRemove"),
- id: "remove"
+ icon: 'remove_circle_outline',
+ title: globalize.translate('ButtonRemove'),
+ id: 'remove'
}],
dragHandle: true
});
if (items.length) {
- context.querySelector(".btnTogglePlaylist").classList.remove("hide");
+ context.querySelector('.btnTogglePlaylist').classList.remove('hide');
} else {
- context.querySelector(".btnTogglePlaylist").classList.add("hide");
+ context.querySelector('.btnTogglePlaylist').classList.add('hide');
}
- var itemsContainer = context.querySelector(".playlist");
+ var itemsContainer = context.querySelector('.playlist');
itemsContainer.innerHTML = html;
var playlistItemId = playbackManager.getCurrentPlaylistItemId(player);
@@ -447,20 +447,20 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
var img = itemsContainer.querySelector('.listItem[data-playlistItemId="' + playlistItemId + '"] .listItemImage');
if (img) {
- img.classList.remove("lazy");
- img.classList.add("playlistIndexIndicatorImage");
+ img.classList.remove('lazy');
+ img.classList.add('playlistIndexIndicatorImage');
}
}
imageLoader.lazyChildren(itemsContainer);
- context.querySelector(".playlist").classList.add("hide");
- context.querySelector(".contextMenu").classList.add("hide");
- context.querySelector(".btnSavePlaylist").classList.add("hide");
+ context.querySelector('.playlist').classList.add('hide');
+ context.querySelector('.contextMenu').classList.add('hide');
+ context.querySelector('.btnSavePlaylist').classList.add('hide');
});
}
function onPlaybackStart(e, state) {
- console.debug("remotecontrol event: " + e.type);
+ console.debug('remotecontrol event: ' + e.type);
var player = this;
onStateChanged.call(player, e, state);
}
@@ -488,7 +488,7 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
}
function onPlaybackStopped(e, state) {
- console.debug("remotecontrol event: " + e.type);
+ console.debug('remotecontrol event: ' + e.type);
var player = this;
if (!state.NextMediaType) {
@@ -528,16 +528,16 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
var player = currentPlayer;
if (player) {
- events.off(player, "playbackstart", onPlaybackStart);
- events.off(player, "statechange", onStateChanged);
- events.off(player, "repeatmodechange", onRepeatModeChange);
- events.off(player, "playlistitemremove", onPlaylistUpdate);
- events.off(player, "playlistitemmove", onPlaylistUpdate);
- events.off(player, "playbackstop", onPlaybackStopped);
- events.off(player, "volumechange", onVolumeChanged);
- events.off(player, "pause", onPlayPauseStateChanged);
- events.off(player, "unpause", onPlayPauseStateChanged);
- events.off(player, "timeupdate", onTimeUpdate);
+ events.off(player, 'playbackstart', onPlaybackStart);
+ events.off(player, 'statechange', onStateChanged);
+ events.off(player, 'repeatmodechange', onRepeatModeChange);
+ events.off(player, 'playlistitemremove', onPlaylistUpdate);
+ events.off(player, 'playlistitemmove', onPlaylistUpdate);
+ events.off(player, 'playbackstop', onPlaybackStopped);
+ events.off(player, 'volumechange', onVolumeChanged);
+ events.off(player, 'pause', onPlayPauseStateChanged);
+ events.off(player, 'unpause', onPlayPauseStateChanged);
+ events.off(player, 'timeupdate', onTimeUpdate);
currentPlayer = null;
}
}
@@ -546,18 +546,18 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
if (releaseCurrentPlayer(), currentPlayer = player, player) {
var state = playbackManager.getPlayerState(player);
onStateChanged.call(player, {
- type: "init"
+ type: 'init'
}, state);
- events.on(player, "playbackstart", onPlaybackStart);
- events.on(player, "statechange", onStateChanged);
- events.on(player, "repeatmodechange", onRepeatModeChange);
- events.on(player, "playlistitemremove", onPlaylistItemRemoved);
- events.on(player, "playlistitemmove", onPlaylistUpdate);
- events.on(player, "playbackstop", onPlaybackStopped);
- events.on(player, "volumechange", onVolumeChanged);
- events.on(player, "pause", onPlayPauseStateChanged);
- events.on(player, "unpause", onPlayPauseStateChanged);
- events.on(player, "timeupdate", onTimeUpdate);
+ events.on(player, 'playbackstart', onPlaybackStart);
+ events.on(player, 'statechange', onStateChanged);
+ events.on(player, 'repeatmodechange', onRepeatModeChange);
+ events.on(player, 'playlistitemremove', onPlaylistItemRemoved);
+ events.on(player, 'playlistitemmove', onPlaylistUpdate);
+ events.on(player, 'playbackstop', onPlaybackStopped);
+ events.on(player, 'volumechange', onVolumeChanged);
+ events.on(player, 'pause', onPlayPauseStateChanged);
+ events.on(player, 'unpause', onPlayPauseStateChanged);
+ events.on(player, 'timeupdate', onTimeUpdate);
var playerInfo = playbackManager.getPlayerInfo();
var supportedCommands = playerInfo.supportedCommands;
currentPlayerSupportedCommands = supportedCommands;
@@ -567,11 +567,11 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function onBtnCommandClick() {
if (currentPlayer) {
- if (this.classList.contains("repeatToggleButton")) {
+ if (this.classList.contains('repeatToggleButton')) {
toggleRepeat(currentPlayer);
} else {
playbackManager.sendCommand({
- Name: this.getAttribute("data-command")
+ Name: this.getAttribute('data-command')
}, currentPlayer);
}
}
@@ -586,7 +586,7 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
}
function savePlaylist() {
- require(["playlistEditor"], function (playlistEditor) {
+ require(['playlistEditor'], function (playlistEditor) {
getSaveablePlaylistItems().then(function (items) {
var serverId = items.length ? items[0].ServerId : ApiClient.serverId();
new playlistEditor().show({
@@ -595,67 +595,67 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
}),
serverId: serverId,
enableAddToPlayQueue: false,
- defaultValue: "new"
+ defaultValue: 'new'
});
});
});
}
function bindEvents(context) {
- var btnCommand = context.querySelectorAll(".btnCommand");
+ var btnCommand = context.querySelectorAll('.btnCommand');
for (var i = 0, length = btnCommand.length; i < length; i++) {
- btnCommand[i].addEventListener("click", onBtnCommandClick);
+ btnCommand[i].addEventListener('click', onBtnCommandClick);
}
- context.querySelector(".btnToggleFullscreen").addEventListener("click", function (e) {
+ context.querySelector('.btnToggleFullscreen').addEventListener('click', function (e) {
if (currentPlayer) {
playbackManager.sendCommand({
- Name: e.target.getAttribute("data-command")
+ Name: e.target.getAttribute('data-command')
}, currentPlayer);
}
});
- context.querySelector(".btnAudioTracks").addEventListener("click", function (e) {
+ context.querySelector('.btnAudioTracks').addEventListener('click', function (e) {
if (currentPlayer && lastPlayerState && lastPlayerState.NowPlayingItem) {
showAudioMenu(context, currentPlayer, e.target, lastPlayerState.NowPlayingItem);
}
});
- context.querySelector(".btnSubtitles").addEventListener("click", function (e) {
+ context.querySelector('.btnSubtitles').addEventListener('click', function (e) {
if (currentPlayer && lastPlayerState && lastPlayerState.NowPlayingItem) {
showSubtitleMenu(context, currentPlayer, e.target, lastPlayerState.NowPlayingItem);
}
});
- context.querySelector(".btnStop").addEventListener("click", function () {
+ context.querySelector('.btnStop').addEventListener('click', function () {
if (currentPlayer) {
playbackManager.stop(currentPlayer);
}
});
- context.querySelector(".btnPlayPause").addEventListener("click", function () {
+ context.querySelector('.btnPlayPause').addEventListener('click', function () {
if (currentPlayer) {
playbackManager.playPause(currentPlayer);
}
});
- context.querySelector(".btnNextTrack").addEventListener("click", function () {
+ context.querySelector('.btnNextTrack').addEventListener('click', function () {
if (currentPlayer) {
playbackManager.nextTrack(currentPlayer);
}
});
- context.querySelector(".btnRewind").addEventListener("click", function () {
+ context.querySelector('.btnRewind').addEventListener('click', function () {
if (currentPlayer) {
playbackManager.rewind(currentPlayer);
}
});
- context.querySelector(".btnFastForward").addEventListener("click", function () {
+ context.querySelector('.btnFastForward').addEventListener('click', function () {
if (currentPlayer) {
playbackManager.fastForward(currentPlayer);
}
});
- context.querySelector(".btnPreviousTrack").addEventListener("click", function () {
+ context.querySelector('.btnPreviousTrack').addEventListener('click', function () {
if (currentPlayer) {
playbackManager.previousTrack(currentPlayer);
}
});
- context.querySelector(".nowPlayingPositionSlider").addEventListener("change", function () {
+ context.querySelector('.nowPlayingPositionSlider').addEventListener('change', function () {
var value = this.value;
if (currentPlayer) {
@@ -664,11 +664,11 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
}
});
- context.querySelector(".nowPlayingPositionSlider").getBubbleText = function (value) {
+ context.querySelector('.nowPlayingPositionSlider').getBubbleText = function (value) {
var state = lastPlayerState;
if (!state || !state.NowPlayingItem || !currentRuntimeTicks) {
- return "--:--";
+ return '--:--';
}
var ticks = currentRuntimeTicks;
@@ -681,41 +681,41 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
playbackManager.setVolume(this.value, currentPlayer);
}
- context.querySelector(".nowPlayingVolumeSlider").addEventListener("change", setVolume);
- context.querySelector(".nowPlayingVolumeSlider").addEventListener("mousemove", setVolume);
- context.querySelector(".nowPlayingVolumeSlider").addEventListener("touchmove", setVolume);
- context.querySelector(".buttonMute").addEventListener("click", function () {
+ context.querySelector('.nowPlayingVolumeSlider').addEventListener('change', setVolume);
+ context.querySelector('.nowPlayingVolumeSlider').addEventListener('mousemove', setVolume);
+ context.querySelector('.nowPlayingVolumeSlider').addEventListener('touchmove', setVolume);
+ context.querySelector('.buttonMute').addEventListener('click', function () {
playbackManager.toggleMute(currentPlayer);
});
- var playlistContainer = context.querySelector(".playlist");
- playlistContainer.addEventListener("action-remove", function (e) {
+ var playlistContainer = context.querySelector('.playlist');
+ playlistContainer.addEventListener('action-remove', function (e) {
playbackManager.removeFromPlaylist([e.detail.playlistItemId], currentPlayer);
});
- playlistContainer.addEventListener("itemdrop", function (e) {
+ playlistContainer.addEventListener('itemdrop', function (e) {
var newIndex = e.detail.newIndex;
var playlistItemId = e.detail.playlistItemId;
playbackManager.movePlaylistItem(playlistItemId, newIndex, currentPlayer);
});
- context.querySelector(".btnSavePlaylist").addEventListener("click", savePlaylist);
- context.querySelector(".btnTogglePlaylist").addEventListener("click", function () {
- if (context.querySelector(".playlist").classList.contains("hide")) {
- context.querySelector(".playlist").classList.remove("hide");
- context.querySelector(".btnSavePlaylist").classList.remove("hide");
- context.querySelector(".contextMenu").classList.add("hide");
- context.querySelector(".volumecontrol").classList.add("hide");
+ context.querySelector('.btnSavePlaylist').addEventListener('click', savePlaylist);
+ context.querySelector('.btnTogglePlaylist').addEventListener('click', function () {
+ if (context.querySelector('.playlist').classList.contains('hide')) {
+ context.querySelector('.playlist').classList.remove('hide');
+ context.querySelector('.btnSavePlaylist').classList.remove('hide');
+ context.querySelector('.contextMenu').classList.add('hide');
+ context.querySelector('.volumecontrol').classList.add('hide');
} else {
- context.querySelector(".playlist").classList.add("hide");
- context.querySelector(".btnSavePlaylist").classList.add("hide");
- context.querySelector(".volumecontrol").classList.remove("hide");
+ context.querySelector('.playlist').classList.add('hide');
+ context.querySelector('.btnSavePlaylist').classList.add('hide');
+ context.querySelector('.volumecontrol').classList.remove('hide');
}
});
- context.querySelector(".btnToggleContextMenu").addEventListener("click", function () {
- if (context.querySelector(".contextMenu").classList.contains("hide")) {
- context.querySelector(".contextMenu").classList.remove("hide");
- context.querySelector(".btnSavePlaylist").classList.add("hide");
- context.querySelector(".playlist").classList.add("hide");
+ context.querySelector('.btnToggleContextMenu').addEventListener('click', function () {
+ if (context.querySelector('.contextMenu').classList.contains('hide')) {
+ context.querySelector('.contextMenu').classList.remove('hide');
+ context.querySelector('.btnSavePlaylist').classList.add('hide');
+ context.querySelector('.playlist').classList.add('hide');
} else {
- context.querySelector(".contextMenu").classList.add("hide");
+ context.querySelector('.contextMenu').classList.add('hide');
}
});
}
@@ -727,16 +727,16 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function onMessageSubmit(e) {
var form = e.target;
playbackManager.sendCommand({
- Name: "DisplayMessage",
+ Name: 'DisplayMessage',
Arguments: {
- Header: form.querySelector("#txtMessageTitle").value,
- Text: form.querySelector("#txtMessageText", form).value
+ Header: form.querySelector('#txtMessageTitle').value,
+ Text: form.querySelector('#txtMessageText', form).value
}
}, currentPlayer);
- form.querySelector("input").value = "";
+ form.querySelector('input').value = '';
- require(["toast"], function (toast) {
- toast("Message sent.");
+ require(['toast'], function (toast) {
+ toast('Message sent.');
});
e.preventDefault();
@@ -747,15 +747,15 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
function onSendStringSubmit(e) {
var form = e.target;
playbackManager.sendCommand({
- Name: "SendString",
+ Name: 'SendString',
Arguments: {
- String: form.querySelector("#txtTypeText", form).value
+ String: form.querySelector('#txtTypeText', form).value
}
}, currentPlayer);
- form.querySelector("input").value = "";
+ form.querySelector('input').value = '';
- require(["toast"], function (toast) {
- toast("Text sent.");
+ require(['toast'], function (toast) {
+ toast('Text sent.');
});
e.preventDefault();
@@ -777,20 +777,20 @@ define(["browser", "datetime", "backdrop", "libraryBrowser", "listView", "imageL
}
bindEvents(context);
- context.querySelector(".sendMessageForm").addEventListener("submit", onMessageSubmit);
- context.querySelector(".typeTextForm").addEventListener("submit", onSendStringSubmit);
- events.on(playbackManager, "playerchange", onPlayerChange);
+ context.querySelector('.sendMessageForm').addEventListener('submit', onMessageSubmit);
+ context.querySelector('.typeTextForm').addEventListener('submit', onSendStringSubmit);
+ events.on(playbackManager, 'playerchange', onPlayerChange);
if (layoutManager.tv) {
- var positionSlider = context.querySelector(".nowPlayingPositionSlider");
- positionSlider.classList.add("focusable");
+ var positionSlider = context.querySelector('.nowPlayingPositionSlider');
+ positionSlider.classList.add('focusable');
positionSlider.enableKeyboardDragging();
}
}
function onDialogClosed(e) {
releaseCurrentPlayer();
- events.off(playbackManager, "playerchange", onPlayerChange);
+ events.off(playbackManager, 'playerchange', onPlayerChange);
lastPlayerState = null;
}
diff --git a/src/components/sanitizefilename.js b/src/components/sanitizefilename.js
index adfb852e1..de7b1a078 100644
--- a/src/components/sanitizefilename.js
+++ b/src/components/sanitizefilename.js
@@ -16,8 +16,8 @@ function isLowSurrogate(codePoint) {
}
function getByteLength(string) {
- if (typeof string !== "string") {
- throw new Error("Input must be string");
+ if (typeof string !== 'string') {
+ throw new Error('Input must be string');
}
const charLength = string.length;
@@ -49,8 +49,8 @@ function getByteLength(string) {
}
function truncate(string, byteLength) {
- if (typeof string !== "string") {
- throw new Error("Input must be string");
+ if (typeof string !== 'string') {
+ throw new Error('Input must be string');
}
const charLength = string.length;
diff --git a/src/components/scrollManager.js b/src/components/scrollManager.js
index 6a626cd25..f7bd41ff8 100644
--- a/src/components/scrollManager.js
+++ b/src/components/scrollManager.js
@@ -5,9 +5,9 @@
* @module components/scrollManager
*/
-import dom from "dom";
-import browser from "browser";
-import layoutManager from "layoutManager";
+import dom from 'dom';
+import browser from 'browser';
+import layoutManager from 'layoutManager';
/**
* Scroll time in ms.
@@ -27,20 +27,20 @@ import layoutManager from "layoutManager";
* @return {number} Minimum vertical scroll.
*/
function minimumScrollY() {
- const topMenu = document.querySelector(".headerTop");
+ const topMenu = document.querySelector('.headerTop');
if (topMenu) {
return topMenu.clientHeight;
}
return 0;
}
- const supportsSmoothScroll = "scrollBehavior" in document.documentElement.style;
+ const supportsSmoothScroll = 'scrollBehavior' in document.documentElement.style;
let supportsScrollToOptions = false;
try {
- const elem = document.createElement("div");
+ const elem = document.createElement('div');
- const opts = Object.defineProperty({}, "behavior", {
+ const opts = Object.defineProperty({}, 'behavior', {
// eslint-disable-next-line getter-return
get: function () {
supportsScrollToOptions = true;
@@ -49,7 +49,7 @@ import layoutManager from "layoutManager";
elem.scrollTo(opts);
} catch (e) {
- console.error("error checking ScrollToOptions support");
+ console.error('error checking ScrollToOptions support');
}
/**
@@ -210,21 +210,21 @@ import layoutManager from "layoutManager";
*/
function getScrollableParent(element, vertical) {
if (element) {
- let nameScroll = "scrollWidth";
- let nameClient = "clientWidth";
- let nameClass = "scrollX";
+ let nameScroll = 'scrollWidth';
+ let nameClient = 'clientWidth';
+ let nameClass = 'scrollX';
if (vertical) {
- nameScroll = "scrollHeight";
- nameClient = "clientHeight";
- nameClass = "scrollY";
+ nameScroll = 'scrollHeight';
+ nameClient = 'clientHeight';
+ nameClass = 'scrollY';
}
let parent = element.parentElement;
while (parent) {
// Skip 'emby-scroller' because it scrolls by itself
- if (!parent.classList.contains("emby-scroller") &&
+ if (!parent.classList.contains('emby-scroller') &&
parent[nameScroll] > parent[nameClient] && parent.classList.contains(nameClass)) {
return parent;
}
@@ -316,7 +316,7 @@ import layoutManager from "layoutManager";
* @param {ScrollToOptions} options - Scroll options.
*/
function scrollToHelper(scroller, options) {
- if ("scrollTo" in scroller) {
+ if ('scrollTo' in scroller) {
if (!supportsScrollToOptions) {
const scrollX = (options.left !== undefined ? options.left : scroller.scrollLeft);
const scrollY = (options.top !== undefined ? options.top : scroller.scrollTop);
@@ -324,7 +324,7 @@ import layoutManager from "layoutManager";
} else {
scroller.scrollTo(options);
}
- } else if ("scrollLeft" in scroller) {
+ } else if ('scrollLeft' in scroller) {
if (options.left !== undefined) {
scroller.scrollLeft = options.left;
}
@@ -344,7 +344,7 @@ import layoutManager from "layoutManager";
* @param {boolean} smooth - Smooth scrolling.
*/
function builtinScroll(xScroller, scrollX, yScroller, scrollY, smooth) {
- const scrollBehavior = smooth ? "smooth" : "instant";
+ const scrollBehavior = smooth ? 'smooth' : 'instant';
if (xScroller !== yScroller) {
scrollToHelper(xScroller, {left: scrollX, behavior: scrollBehavior});
@@ -500,7 +500,7 @@ import layoutManager from "layoutManager";
const offsetParent = element.offsetParent;
// In Firefox offsetParent.offsetParent is BODY
- const isFixed = offsetParent && (!offsetParent.offsetParent || window.getComputedStyle(offsetParent).position === "fixed");
+ const isFixed = offsetParent && (!offsetParent.offsetParent || window.getComputedStyle(offsetParent).position === 'fixed');
// Scroll fixed elements to nearest edge (or do not scroll at all)
if (isFixed) {
@@ -537,7 +537,7 @@ import layoutManager from "layoutManager";
}
if (isEnabled()) {
- dom.addEventListener(window, "focusin", function(e) {
+ dom.addEventListener(window, 'focusin', function(e) {
setTimeout(function() {
scrollToElement(e.target, useSmoothScroll());
}, 0);
diff --git a/src/components/search/searchresults.js b/src/components/search/searchresults.js
index 02f1feefe..d4de2349a 100644
--- a/src/components/search/searchresults.js
+++ b/src/components/search/searchresults.js
@@ -5,8 +5,8 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
var options = {
- SortBy: "IsFavoriteOrLiked,Random",
- IncludeItemTypes: "Movie,Series,MusicArtist",
+ SortBy: 'IsFavoriteOrLiked,Random',
+ IncludeItemTypes: 'Movie,Series,MusicArtist',
Limit: 20,
Recursive: true,
ImageTypeLimit: 0,
@@ -165,7 +165,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "LiveTvProgram",
+ IncludeItemTypes: 'LiveTvProgram',
IsMovie: true,
IsKids: false,
IsNews: false
@@ -194,7 +194,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "Movie"
+ IncludeItemTypes: 'Movie'
}, context, '.movieResults', {
@@ -212,7 +212,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "Series"
+ IncludeItemTypes: 'Series'
}, context, '.seriesResults', {
@@ -231,7 +231,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "LiveTvProgram",
+ IncludeItemTypes: 'LiveTvProgram',
IsSeries: true,
IsSports: false,
IsKids: false,
@@ -262,7 +262,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "Episode"
+ IncludeItemTypes: 'Episode'
}, context, '.episodeResults', {
@@ -363,7 +363,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "LiveTvProgram",
+ IncludeItemTypes: 'LiveTvProgram',
IsMovie: instance.options.collectionType === 'livetv' ? false : null,
IsSeries: instance.options.collectionType === 'livetv' ? false : null,
IsSports: instance.options.collectionType === 'livetv' ? false : null,
@@ -394,8 +394,8 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- MediaTypes: "Video",
- ExcludeItemTypes: "Movie,Episode"
+ MediaTypes: 'Video',
+ ExcludeItemTypes: 'Movie,Episode'
}, context, '.videoResults', {
@@ -439,7 +439,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "MusicAlbum"
+ IncludeItemTypes: 'MusicAlbum'
}, context, '.albumResults', {
@@ -456,7 +456,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "Audio"
+ IncludeItemTypes: 'Audio'
}, context, '.songResults', {
@@ -475,7 +475,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- MediaTypes: "Photo"
+ MediaTypes: 'Photo'
}, context, '.photoResults', {
@@ -492,7 +492,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "PhotoAlbum"
+ IncludeItemTypes: 'PhotoAlbum'
}, context, '.photoAlbumResults', {
@@ -508,7 +508,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "Book"
+ IncludeItemTypes: 'Book'
}, context, '.bookResults', {
@@ -525,7 +525,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "AudioBook"
+ IncludeItemTypes: 'AudioBook'
}, context, '.audioBookResults', {
@@ -541,7 +541,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
IncludeGenres: false,
IncludeStudios: false,
IncludeArtists: false,
- IncludeItemTypes: "Playlist"
+ IncludeItemTypes: 'Playlist'
}, context, '.playlistResults', {
diff --git a/src/components/serverNotifications.js b/src/components/serverNotifications.js
index 555492527..e60f98475 100644
--- a/src/components/serverNotifications.js
+++ b/src/components/serverNotifications.js
@@ -142,12 +142,12 @@ define(['connectionManager', 'playbackManager', 'events', 'inputManager', 'focus
function onMessageReceived(e, msg) {
var apiClient = this;
- if (msg.MessageType === "Play") {
+ if (msg.MessageType === 'Play') {
notifyApp();
var serverId = apiClient.serverInfo().Id;
- if (msg.Data.PlayCommand === "PlayNext") {
+ if (msg.Data.PlayCommand === 'PlayNext') {
playbackManager.queueNext({ ids: msg.Data.ItemIds, serverId: serverId });
- } else if (msg.Data.PlayCommand === "PlayLast") {
+ } else if (msg.Data.PlayCommand === 'PlayLast') {
playbackManager.queue({ ids: msg.Data.ItemIds, serverId: serverId });
} else {
playbackManager.play({
@@ -160,7 +160,7 @@ define(['connectionManager', 'playbackManager', 'events', 'inputManager', 'focus
serverId: serverId
});
}
- } else if (msg.MessageType === "Playstate") {
+ } else if (msg.MessageType === 'Playstate') {
if (msg.Data.Command === 'Stop') {
inputManager.trigger('stop');
} else if (msg.Data.Command === 'Pause') {
@@ -178,10 +178,10 @@ define(['connectionManager', 'playbackManager', 'events', 'inputManager', 'focus
} else {
notifyApp();
}
- } else if (msg.MessageType === "GeneralCommand") {
+ } else if (msg.MessageType === 'GeneralCommand') {
var cmd = msg.Data;
processGeneralCommand(cmd, apiClient);
- } else if (msg.MessageType === "UserDataChanged") {
+ } else if (msg.MessageType === 'UserDataChanged') {
if (msg.Data.UserId === apiClient.getCurrentUserId()) {
for (var i = 0, length = msg.Data.UserDataList.length; i < length; i++) {
events.trigger(serverNotifications, 'UserDataChanged', [apiClient, msg.Data.UserDataList[i]]);
@@ -192,8 +192,8 @@ define(['connectionManager', 'playbackManager', 'events', 'inputManager', 'focus
}
}
function bindEvents(apiClient) {
- events.off(apiClient, "message", onMessageReceived);
- events.on(apiClient, "message", onMessageReceived);
+ events.off(apiClient, 'message', onMessageReceived);
+ events.on(apiClient, 'message', onMessageReceived);
}
connectionManager.getApiClients().forEach(bindEvents);
diff --git a/src/components/serverRestartDialog.js b/src/components/serverRestartDialog.js
index ef012fe44..4c52d5f01 100644
--- a/src/components/serverRestartDialog.js
+++ b/src/components/serverRestartDialog.js
@@ -12,7 +12,7 @@ define(['loading', 'events', 'dialogHelper', 'dom', 'layoutManager', 'scrollHelp
}
// Don't use apiclient method because we don't want it reporting authentication under the old version
- apiClient.getJSON(apiClient.getUrl("System/Info")).then(function (info) {
+ apiClient.getJSON(apiClient.getUrl('System/Info')).then(function (info) {
// If this is back to false, the restart completed
if (!info.IsShuttingDown) {
diff --git a/src/components/serviceworker/notifications.js b/src/components/serviceworker/notifications.js
index 33f54bb64..5f96d01a4 100644
--- a/src/components/serviceworker/notifications.js
+++ b/src/components/serviceworker/notifications.js
@@ -20,7 +20,7 @@
case 'restart':
return apiClient.restartServer();
default:
- clients.openWindow("/");
+ clients.openWindow('/');
return Promise.resolve();
}
});
@@ -35,7 +35,7 @@
var action = event.action;
if (!action) {
- clients.openWindow("/");
+ clients.openWindow('/');
event.waitUntil(Promise.resolve());
return;
}
diff --git a/src/components/sessionplayer.js b/src/components/sessionplayer.js
index bbb22a965..489b57493 100644
--- a/src/components/sessionplayer.js
+++ b/src/components/sessionplayer.js
@@ -79,7 +79,7 @@ define(['playbackManager', 'events', 'serverNotifications', 'connectionManager']
instance.isUpdating = true;
var apiClient = getCurrentApiClient(instance);
- apiClient.sendMessage("SessionsStop");
+ apiClient.sendMessage('SessionsStop');
if (instance.pollInterval) {
clearInterval(instance.pollInterval);
instance.pollInterval = null;
@@ -158,7 +158,7 @@ define(['playbackManager', 'events', 'serverNotifications', 'connectionManager']
instance.isUpdating = true;
var apiClient = getCurrentApiClient(instance);
- apiClient.sendMessage("SessionsStart", "100,800");
+ apiClient.sendMessage('SessionsStart', '100,800');
if (instance.pollInterval) {
clearInterval(instance.pollInterval);
instance.pollInterval = null;
diff --git a/src/components/skinManager.js b/src/components/skinManager.js
index d5b045c44..871b6d999 100644
--- a/src/components/skinManager.js
+++ b/src/components/skinManager.js
@@ -24,25 +24,25 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr
function getThemes() {
return [{
- name: "Apple TV",
- id: "appletv"
+ name: 'Apple TV',
+ id: 'appletv'
}, {
- name: "Blue Radiance",
- id: "blueradiance"
+ name: 'Blue Radiance',
+ id: 'blueradiance'
}, {
- name: "Dark",
- id: "dark",
+ name: 'Dark',
+ id: 'dark',
isDefault: true,
isDefaultServerDashboard: true
}, {
- name: "Light",
- id: "light"
+ name: 'Light',
+ id: 'light'
}, {
- name: "Purple Haze",
- id: "purplehaze"
+ name: 'Purple Haze',
+ id: 'purplehaze'
}, {
- name: "Windows Media Center",
- id: "wmc"
+ name: 'Windows Media Center',
+ id: 'wmc'
}];
}
@@ -91,7 +91,7 @@ define(['apphost', 'userSettings', 'browser', 'events', 'pluginManager', 'backdr
function onThemeLoaded() {
document.documentElement.classList.remove('preload');
try {
- var color = getComputedStyle(document.querySelector('.skinHeader')).getPropertyValue("background-color");
+ var color = getComputedStyle(document.querySelector('.skinHeader')).getPropertyValue('background-color');
if (color) {
appHost.setThemeColor(color);
}
diff --git a/src/components/slideshow/slideshow.js b/src/components/slideshow/slideshow.js
index b88564ba8..cee43560e 100644
--- a/src/components/slideshow/slideshow.js
+++ b/src/components/slideshow/slideshow.js
@@ -14,7 +14,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
*/
function getImageUrl(item, options, apiClient) {
options = options || {};
- options.type = options.type || "Primary";
+ options.type = options.type || 'Primary';
if (typeof (item) === 'string') {
return apiClient.getScaledImageUrl(item, options);
@@ -45,7 +45,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
*/
function getBackdropImageUrl(item, options, apiClient) {
options = options || {};
- options.type = options.type || "Backdrop";
+ options.type = options.type || 'Backdrop';
// If not resizing, get the original image
if (!options.maxWidth && !options.width && !options.maxHeight && !options.height) {
@@ -76,7 +76,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
if (item.MediaType === 'Photo' && user && user.Policy.EnableContentDownloading) {
return apiClient.getItemDownloadUrl(item.Id);
}
- imageOptions.type = "Primary";
+ imageOptions.type = 'Primary';
return getImageUrl(item, imageOptions, apiClient);
}
}
@@ -226,7 +226,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
function onAutoplayStart() {
var btnSlideshowPause = dialog.querySelector('.btnSlideshowPause .material-icons');
if (btnSlideshowPause) {
- btnSlideshowPause.classList.replace("play_arrow", "pause");
+ btnSlideshowPause.classList.replace('play_arrow', 'pause');
}
}
@@ -236,7 +236,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
function onAutoplayStop() {
var btnSlideshowPause = dialog.querySelector('.btnSlideshowPause .material-icons');
if (btnSlideshowPause) {
- btnSlideshowPause.classList.replace("pause", "play_arrow");
+ btnSlideshowPause.classList.replace('pause', 'play_arrow');
}
}
@@ -418,7 +418,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
* Toggles the autoplay feature of the Swiper instance.
*/
function playPause() {
- var paused = !dialog.querySelector('.btnSlideshowPause .material-icons').classList.contains("pause");
+ var paused = !dialog.querySelector('.btnSlideshowPause .material-icons').classList.contains('pause');
if (paused) {
play();
} else {
diff --git a/src/components/subtitleeditor/subtitleeditor.js b/src/components/subtitleeditor/subtitleeditor.js
index 10c34784f..8ce1fd580 100644
--- a/src/components/subtitleeditor/subtitleeditor.js
+++ b/src/components/subtitleeditor/subtitleeditor.js
@@ -48,7 +48,7 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
var apiClient = connectionManager.getApiClient(currentItem.ServerId);
apiClient.ajax({
- type: "POST",
+ type: 'POST',
url: apiClient.getUrl(url)
}).then(function () {
@@ -87,7 +87,7 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
apiClient.ajax({
- type: "DELETE",
+ type: 'DELETE',
url: apiClient.getUrl(url)
}).then(function () {
diff --git a/src/components/subtitlesettings/subtitleappearancehelper.js b/src/components/subtitlesettings/subtitleappearancehelper.js
index fdc64f0df..bec8156ac 100644
--- a/src/components/subtitlesettings/subtitleappearancehelper.js
+++ b/src/components/subtitlesettings/subtitleappearancehelper.js
@@ -1,5 +1,5 @@
define([], function () {
- "use strict";
+ 'use strict';
function getTextStyles(settings, isCue) {
diff --git a/src/components/subtitlesettings/subtitlesettings.js b/src/components/subtitlesettings/subtitlesettings.js
index 2c8692919..d728360d0 100644
--- a/src/components/subtitlesettings/subtitlesettings.js
+++ b/src/components/subtitlesettings/subtitlesettings.js
@@ -1,13 +1,13 @@
define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loading', 'connectionManager', 'subtitleAppearanceHelper', 'dom', 'events', 'listViewStyle', 'emby-select', 'emby-input', 'emby-checkbox', 'flexStyles'], function (require, globalize, appSettings, appHost, focusManager, loading, connectionManager, subtitleAppearanceHelper, dom, events) {
- "use strict";
+ 'use strict';
function populateLanguages(select, languages) {
- var html = "";
+ var html = '';
- html += "" + globalize.translate('AnyLanguage') + " ";
+ html += "" + globalize.translate('AnyLanguage') + ' ';
for (var i = 0, length = languages.length; i < length; i++) {
var culture = languages[i];
- html += "" + culture.DisplayName + " ";
+ html += "" + culture.DisplayName + ' ';
}
select.innerHTML = html;
@@ -37,8 +37,8 @@ define(['require', 'globalize', 'appSettings', 'apphost', 'focusManager', 'loadi
populateLanguages(selectSubtitleLanguage, allCultures);
- selectSubtitleLanguage.value = user.Configuration.SubtitleLanguagePreference || "";
- context.querySelector('#selectSubtitlePlaybackMode').value = user.Configuration.SubtitleMode || "";
+ selectSubtitleLanguage.value = user.Configuration.SubtitleLanguagePreference || '';
+ context.querySelector('#selectSubtitlePlaybackMode').value = user.Configuration.SubtitleMode || '';
context.querySelector('#selectSubtitlePlaybackMode').dispatchEvent(new CustomEvent('change', {}));
diff --git a/src/components/subtitlesync/subtitlesync.js b/src/components/subtitlesync/subtitlesync.js
index 29d110f12..492702918 100644
--- a/src/components/subtitlesync/subtitlesync.js
+++ b/src/components/subtitlesync/subtitlesync.js
@@ -1,5 +1,5 @@
define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html', 'css!./subtitlesync'], function (playbackManager, layoutManager, template, css) {
- "use strict";
+ 'use strict';
var player;
var subtitleSyncSlider;
@@ -13,35 +13,35 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
document.body.appendChild(parent);
parent.innerHTML = template;
- subtitleSyncSlider = parent.querySelector(".subtitleSyncSlider");
- subtitleSyncTextField = parent.querySelector(".subtitleSyncTextField");
- subtitleSyncCloseButton = parent.querySelector(".subtitleSync-closeButton");
- subtitleSyncContainer = parent.querySelector(".subtitleSyncContainer");
+ subtitleSyncSlider = parent.querySelector('.subtitleSyncSlider');
+ subtitleSyncTextField = parent.querySelector('.subtitleSyncTextField');
+ subtitleSyncCloseButton = parent.querySelector('.subtitleSync-closeButton');
+ subtitleSyncContainer = parent.querySelector('.subtitleSyncContainer');
if (layoutManager.tv) {
- subtitleSyncSlider.classList.add("focusable");
+ subtitleSyncSlider.classList.add('focusable');
// HACK: Delay to give time for registered element attach (Firefox)
setTimeout(function () {
subtitleSyncSlider.enableKeyboardDragging();
}, 0);
}
- subtitleSyncContainer.classList.add("hide");
+ subtitleSyncContainer.classList.add('hide');
subtitleSyncTextField.updateOffset = function(offset) {
- this.textContent = offset + "s";
+ this.textContent = offset + 's';
};
- subtitleSyncTextField.addEventListener("keypress", function(event) {
+ subtitleSyncTextField.addEventListener('keypress', function(event) {
- if (event.key === "Enter") {
+ if (event.key === 'Enter') {
// if input key is enter search for float pattern
var inputOffset = /[-+]?\d+\.?\d*/g.exec(this.textContent);
if (inputOffset) {
inputOffset = inputOffset[0];
// replace current text by considered offset
- this.textContent = inputOffset + "s";
+ this.textContent = inputOffset + 's';
inputOffset = parseFloat(inputOffset);
// set new offset
@@ -50,7 +50,7 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
subtitleSyncSlider.updateOffset(
getPercentageFromOffset(inputOffset));
} else {
- this.textContent = (playbackManager.getPlayerSubtitleOffset(player) || 0) + "s";
+ this.textContent = (playbackManager.getPlayerSubtitleOffset(player) || 0) + 's';
}
this.hasFocus = false;
event.preventDefault();
@@ -68,7 +68,7 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
this.value = percent === undefined ? 50 : percent;
};
- subtitleSyncSlider.addEventListener("change", function () {
+ subtitleSyncSlider.addEventListener('change', function () {
// set new offset
playbackManager.setSubtitleOffset(getOffsetFromPercentage(this.value), player);
// synchronize with textField value
@@ -76,7 +76,7 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
getOffsetFromPercentage(this.value));
});
- subtitleSyncSlider.addEventListener("touchmove", function () {
+ subtitleSyncSlider.addEventListener('touchmove', function () {
// set new offset
playbackManager.setSubtitleOffset(getOffsetFromPercentage(this.value), player);
// synchronize with textField value
@@ -87,13 +87,13 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
subtitleSyncSlider.getBubbleHtml = function (value) {
var newOffset = getOffsetFromPercentage(value);
return '' +
- (newOffset > 0 ? "+" : "") + parseFloat(newOffset) + "s" +
- " ";
+ (newOffset > 0 ? '+' : '') + parseFloat(newOffset) + 's' +
+ '';
};
- subtitleSyncCloseButton.addEventListener("click", function() {
+ subtitleSyncCloseButton.addEventListener('click', function() {
playbackManager.disableShowingSubtitleOffset(player);
- SubtitleSync.prototype.toggle("forceToHide");
+ SubtitleSync.prototype.toggle('forceToHide');
});
instance.element = parent;
@@ -122,7 +122,7 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
}
SubtitleSync.prototype.destroy = function() {
- SubtitleSync.prototype.toggle("forceToHide");
+ SubtitleSync.prototype.toggle('forceToHide');
if (player) {
playbackManager.disableShowingSubtitleOffset(player);
playbackManager.setSubtitleOffset(0, player);
@@ -147,21 +147,21 @@ define(['playbackManager', 'layoutManager', 'text!./subtitlesync.template.html',
// if no subtitle offset is defined
if (!playbackManager.getPlayerSubtitleOffset(player)) {
// set default offset to '0' = 50%
- subtitleSyncSlider.value = "50";
- subtitleSyncTextField.textContent = "0s";
+ subtitleSyncSlider.value = '50';
+ subtitleSyncTextField.textContent = '0s';
playbackManager.setSubtitleOffset(0, player);
}
// show subtitle sync
- subtitleSyncContainer.classList.remove("hide");
+ subtitleSyncContainer.classList.remove('hide');
break; // stop here
} // else continue and hide
- case "hide":
+ case 'hide':
// only break if element has focus
if (subtitleSyncTextField.hasFocus) {
break;
}
- case "forceToHide":
- subtitleSyncContainer.classList.add("hide");
+ case 'forceToHide':
+ subtitleSyncContainer.classList.add('hide');
break;
}
/* eslint-enable no-fallthrough */
diff --git a/src/components/toast/toast.js b/src/components/toast/toast.js
index 22eb53396..7b8e49e4d 100644
--- a/src/components/toast/toast.js
+++ b/src/components/toast/toast.js
@@ -26,7 +26,7 @@ define(['css!./toast'], function () {
};
}
- var elem = document.createElement("div");
+ var elem = document.createElement('div');
elem.classList.add('toast');
elem.innerHTML = options.text;
diff --git a/src/components/tunerpicker.js b/src/components/tunerpicker.js
index 310f75808..e7c92851a 100644
--- a/src/components/tunerpicker.js
+++ b/src/components/tunerpicker.js
@@ -1,38 +1,38 @@
-define(["dialogHelper", "dom", "layoutManager", "connectionManager", "globalize", "loading", "browser", "focusManager", "scrollHelper", "material-icons", "formDialogStyle", "emby-button", "emby-itemscontainer", "cardStyle"], function (dialogHelper, dom, layoutManager, connectionManager, globalize, loading, browser, focusManager, scrollHelper) {
- "use strict";
+define(['dialogHelper', 'dom', 'layoutManager', 'connectionManager', 'globalize', 'loading', 'browser', 'focusManager', 'scrollHelper', 'material-icons', 'formDialogStyle', 'emby-button', 'emby-itemscontainer', 'cardStyle'], function (dialogHelper, dom, layoutManager, connectionManager, globalize, loading, browser, focusManager, scrollHelper) {
+ 'use strict';
var enableFocusTransform = !browser.slow && !browser.edge;
function getEditorHtml() {
- var html = "";
+ var html = '';
html += '';
html += '
';
html += '
';
- html += "
" + globalize.translate("DetectingDevices") + "... ";
- html += "
" + globalize.translate("MessagePleaseWait") + "
";
- html += "
";
- html += '";
+ html += '
' + globalize.translate('DetectingDevices') + '... ';
+ html += '
' + globalize.translate('MessagePleaseWait') + '
';
+ html += '
';
+ html += '';
html += '
';
- html += "
";
- html += "
";
- return html += "";
+ html += '';
+ html += '';
+ return html += '';
}
function getDeviceHtml(device) {
var padderClass;
- var html = "";
- var cssClass = "card scalableCard";
- var cardBoxCssClass = "cardBox visualCardBox";
- cssClass += " backdropCard backdropCard-scalable";
- padderClass = "cardPadder-backdrop";
+ var html = '';
+ var cssClass = 'card scalableCard';
+ var cardBoxCssClass = 'cardBox visualCardBox';
+ cssClass += ' backdropCard backdropCard-scalable';
+ padderClass = 'cardPadder-backdrop';
// TODO move card creation code to Card component
if (layoutManager.tv) {
- cssClass += " show-focus";
+ cssClass += ' show-focus';
if (enableFocusTransform) {
- cssClass += " show-animation";
+ cssClass += ' show-animation';
}
}
@@ -42,55 +42,55 @@ define(["dialogHelper", "dom", "layoutManager", "connectionManager", "globalize"
html += '
';
html += '';
html += '
';
- html += "
";
- html += "";
+ html += '';
+ html += '';
html += '";
- html += "";
- return html += "";
+ html += device.Url || ' ';
+ html += '';
+ html += '';
+ html += '';
+ return html += '';
}
function getTunerName(providerId) {
switch (providerId = providerId.toLowerCase()) {
- case "m3u":
- return "M3U";
+ case 'm3u':
+ return 'M3U';
- case "hdhomerun":
- return "HDHomerun";
+ case 'hdhomerun':
+ return 'HDHomerun';
- case "hauppauge":
- return "Hauppauge";
+ case 'hauppauge':
+ return 'Hauppauge';
- case "satip":
- return "DVB";
+ case 'satip':
+ return 'DVB';
default:
- return "Unknown";
+ return 'Unknown';
}
}
function renderDevices(view, devices) {
var i;
var length;
- var html = "";
+ var html = '';
for (i = 0, length = devices.length; i < length; i++) {
html += getDeviceHtml(devices[i]);
}
if (devices.length) {
- view.querySelector(".devicesHeader").classList.remove("hide");
+ view.querySelector('.devicesHeader').classList.remove('hide');
} else {
- html = " " + globalize.translate("NoNewDevicesFound") + "
";
- view.querySelector(".devicesHeader").classList.add("hide");
+ html = ' ' + globalize.translate('NoNewDevicesFound') + '
';
+ view.querySelector('.devicesHeader').classList.add('hide');
}
- var elem = view.querySelector(".results");
+ var elem = view.querySelector('.results');
elem.innerHTML = html;
if (layoutManager.tv) {
@@ -100,13 +100,13 @@ define(["dialogHelper", "dom", "layoutManager", "connectionManager", "globalize"
function discoverDevices(view, apiClient) {
loading.show();
- view.querySelector(".loadingContent").classList.remove("hide");
- return ApiClient.getJSON(ApiClient.getUrl("LiveTv/Tuners/Discvover", {
+ view.querySelector('.loadingContent').classList.remove('hide');
+ return ApiClient.getJSON(ApiClient.getUrl('LiveTv/Tuners/Discvover', {
NewDevicesOnly: true
})).then(function (devices) {
currentDevices = devices;
renderDevices(view, devices);
- view.querySelector(".loadingContent").classList.add("hide");
+ view.querySelector('.loadingContent').classList.add('hide');
loading.hide();
});
}
@@ -119,31 +119,31 @@ define(["dialogHelper", "dom", "layoutManager", "connectionManager", "globalize"
};
if (layoutManager.tv) {
- dialogOptions.size = "fullscreen";
+ dialogOptions.size = 'fullscreen';
} else {
- dialogOptions.size = "small";
+ dialogOptions.size = 'small';
}
var dlg = dialogHelper.createDialog(dialogOptions);
- dlg.classList.add("formDialog");
- var html = "";
+ dlg.classList.add('formDialog');
+ var html = '';
html += '";
+ html += globalize.translate('HeaderLiveTvTunerSetup');
+ html += '';
+ html += '';
html += getEditorHtml();
dlg.innerHTML = html;
- dlg.querySelector(".btnCancel").addEventListener("click", function () {
+ dlg.querySelector('.btnCancel').addEventListener('click', function () {
dialogHelper.close(dlg);
});
var deviceResult;
- dlg.querySelector(".results").addEventListener("click", function (e) {
- var tunerCard = dom.parentWithClass(e.target, "card");
+ dlg.querySelector('.results').addEventListener('click', function (e) {
+ var tunerCard = dom.parentWithClass(e.target, 'card');
if (tunerCard) {
- var deviceId = tunerCard.getAttribute("data-id");
+ var deviceId = tunerCard.getAttribute('data-id');
deviceResult = currentDevices.filter(function (d) {
return d.DeviceId === deviceId;
})[0];
@@ -152,14 +152,14 @@ define(["dialogHelper", "dom", "layoutManager", "connectionManager", "globalize"
});
if (layoutManager.tv) {
- scrollHelper.centerFocus.on(dlg.querySelector(".formDialogContent"), false);
+ scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false);
}
var apiClient = connectionManager.getApiClient(options.serverId);
discoverDevices(dlg, apiClient);
if (layoutManager.tv) {
- scrollHelper.centerFocus.off(dlg.querySelector(".formDialogContent"), false);
+ scrollHelper.centerFocus.off(dlg.querySelector('.formDialogContent'), false);
}
return dialogHelper.open(dlg).then(function () {
diff --git a/src/components/tvproviders/schedulesdirect.js b/src/components/tvproviders/schedulesdirect.js
index 649ac5017..be1cdf575 100644
--- a/src/components/tvproviders/schedulesdirect.js
+++ b/src/components/tvproviders/schedulesdirect.js
@@ -1,31 +1,31 @@
-define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emby-input", "emby-select", "emby-button", "flexStyles"], function ($, loading, globalize) {
- "use strict";
+define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'listViewStyle', 'emby-input', 'emby-select', 'emby-button', 'flexStyles'], function ($, loading, globalize) {
+ 'use strict';
return function (page, providerId, options) {
function reload() {
loading.show();
- ApiClient.getNamedConfiguration("livetv").then(function (config) {
+ ApiClient.getNamedConfiguration('livetv').then(function (config) {
var info = config.ListingProviders.filter(function (i) {
return i.Id === providerId;
})[0] || {};
listingsId = info.ListingsId;
- $("#selectListing", page).val(info.ListingsId || "");
- page.querySelector(".txtUser").value = info.Username || "";
- page.querySelector(".txtPass").value = "";
- page.querySelector(".txtZipCode").value = info.ZipCode || "";
+ $('#selectListing', page).val(info.ListingsId || '');
+ page.querySelector('.txtUser').value = info.Username || '';
+ page.querySelector('.txtPass').value = '';
+ page.querySelector('.txtZipCode').value = info.ZipCode || '';
if (info.Username && info.Password) {
- page.querySelector(".listingsSection").classList.remove("hide");
+ page.querySelector('.listingsSection').classList.remove('hide');
} else {
- page.querySelector(".listingsSection").classList.add("hide");
+ page.querySelector('.listingsSection').classList.add('hide');
}
- page.querySelector(".chkAllTuners").checked = info.EnableAllTuners;
+ page.querySelector('.chkAllTuners').checked = info.EnableAllTuners;
if (info.EnableAllTuners) {
- page.querySelector(".selectTunersSection").classList.add("hide");
+ page.querySelector('.selectTunersSection').classList.add('hide');
} else {
- page.querySelector(".selectTunersSection").classList.remove("hide");
+ page.querySelector('.selectTunersSection').classList.remove('hide');
}
setCountry(info);
@@ -34,7 +34,7 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
}
function setCountry(info) {
- ApiClient.getJSON(ApiClient.getUrl("LiveTv/ListingProviders/SchedulesDirect/Countries")).then(function (result) {
+ ApiClient.getJSON(ApiClient.getUrl('LiveTv/ListingProviders/SchedulesDirect/Countries')).then(function (result) {
var i;
var length;
var countryList = [];
@@ -42,7 +42,7 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
for (var region in result) {
var countries = result[region];
- if (countries.length && "ZZZ" !== region) {
+ if (countries.length && 'ZZZ' !== region) {
for (i = 0, length = countries.length; i < length; i++) {
countryList.push({
name: countries[i].fullName,
@@ -63,13 +63,13 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
return 0;
});
- $("#selectCountry", page).html(countryList.map(function (c) {
- return '' + c.name + " ";
- }).join("")).val(info.Country || "");
- $(page.querySelector(".txtZipCode")).trigger("change");
+ $('#selectCountry', page).html(countryList.map(function (c) {
+ return '' + c.name + ' ';
+ }).join('')).val(info.Country || '');
+ $(page.querySelector('.txtZipCode')).trigger('change');
}, function () { // ApiClient.getJSON() error handler
Dashboard.alert({
- message: globalize.translate("ErrorGettingTvLineups")
+ message: globalize.translate('ErrorGettingTvLineups')
});
});
loading.hide();
@@ -77,11 +77,11 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
function sha256(str) {
if (!self.TextEncoder) {
- return Promise.resolve("");
+ return Promise.resolve('');
}
- var buffer = new TextEncoder("utf-8").encode(str);
- return crypto.subtle.digest("SHA-256", buffer).then(function (hash) {
+ var buffer = new TextEncoder('utf-8').encode(str);
+ return crypto.subtle.digest('SHA-256', buffer).then(function (hash) {
return hex(hash);
});
}
@@ -93,22 +93,22 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
for (var i = 0; i < view.byteLength; i += 4) {
var value = view.getUint32(i);
var stringValue = value.toString(16);
- var paddedValue = ("00000000" + stringValue).slice(-"00000000".length);
+ var paddedValue = ('00000000' + stringValue).slice(-'00000000'.length);
hexCodes.push(paddedValue);
}
- return hexCodes.join("");
+ return hexCodes.join('');
}
function submitLoginForm() {
loading.show();
- sha256(page.querySelector(".txtPass").value).then(function (passwordHash) {
+ sha256(page.querySelector('.txtPass').value).then(function (passwordHash) {
var info = {
- Type: "SchedulesDirect",
- Username: page.querySelector(".txtUser").value,
+ Type: 'SchedulesDirect',
+ Username: page.querySelector('.txtUser').value,
EnableAllTuners: true,
Password: passwordHash,
- Pw: page.querySelector(".txtPass").value
+ Pw: page.querySelector('.txtPass').value
};
var id = providerId;
@@ -117,56 +117,56 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
}
ApiClient.ajax({
- type: "POST",
- url: ApiClient.getUrl("LiveTv/ListingProviders", {
+ type: 'POST',
+ url: ApiClient.getUrl('LiveTv/ListingProviders', {
ValidateLogin: true
}),
data: JSON.stringify(info),
- contentType: "application/json",
- dataType: "json"
+ contentType: 'application/json',
+ dataType: 'json'
}).then(function (result) {
Dashboard.processServerConfigurationUpdateResult();
providerId = result.Id;
reload();
}, function () {
Dashboard.alert({ // ApiClient.ajax() error handler
- message: globalize.translate("ErrorSavingTvProvider")
+ message: globalize.translate('ErrorSavingTvProvider')
});
});
});
}
function submitListingsForm() {
- var selectedListingsId = $("#selectListing", page).val();
+ var selectedListingsId = $('#selectListing', page).val();
if (!selectedListingsId) {
return void Dashboard.alert({
- message: globalize.translate("ErrorPleaseSelectLineup")
+ message: globalize.translate('ErrorPleaseSelectLineup')
});
}
loading.show();
var id = providerId;
- ApiClient.getNamedConfiguration("livetv").then(function (config) {
+ ApiClient.getNamedConfiguration('livetv').then(function (config) {
var info = config.ListingProviders.filter(function (i) {
return i.Id === id;
})[0];
- info.ZipCode = page.querySelector(".txtZipCode").value;
- info.Country = $("#selectCountry", page).val();
+ info.ZipCode = page.querySelector('.txtZipCode').value;
+ info.Country = $('#selectCountry', page).val();
info.ListingsId = selectedListingsId;
- info.EnableAllTuners = page.querySelector(".chkAllTuners").checked;
- info.EnabledTuners = info.EnableAllTuners ? [] : $(".chkTuner", page).get().filter(function (i) {
+ info.EnableAllTuners = page.querySelector('.chkAllTuners').checked;
+ info.EnabledTuners = info.EnableAllTuners ? [] : $('.chkTuner', page).get().filter(function (i) {
return i.checked;
}).map(function (i) {
- return i.getAttribute("data-id");
+ return i.getAttribute('data-id');
});
ApiClient.ajax({
- type: "POST",
- url: ApiClient.getUrl("LiveTv/ListingProviders", {
+ type: 'POST',
+ url: ApiClient.getUrl('LiveTv/ListingProviders', {
ValidateListings: true
}),
data: JSON.stringify(info),
- contentType: "application/json"
+ contentType: 'application/json'
}).then(function (result) {
loading.hide();
@@ -174,11 +174,11 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
Dashboard.processServerConfigurationUpdateResult();
}
- Events.trigger(self, "submitted");
+ Events.trigger(self, 'submitted');
}, function () {
loading.hide();
Dashboard.alert({
- message: globalize.translate("ErrorAddingListingsToSchedulesDirect")
+ message: globalize.translate('ErrorAddingListingsToSchedulesDirect')
});
});
});
@@ -186,79 +186,79 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
function refreshListings(value) {
if (!value) {
- return void $("#selectListing", page).html("");
+ return void $('#selectListing', page).html('');
}
loading.show();
ApiClient.ajax({
- type: "GET",
- url: ApiClient.getUrl("LiveTv/ListingProviders/Lineups", {
+ type: 'GET',
+ url: ApiClient.getUrl('LiveTv/ListingProviders/Lineups', {
Id: providerId,
Location: value,
- Country: $("#selectCountry", page).val()
+ Country: $('#selectCountry', page).val()
}),
- dataType: "json"
+ dataType: 'json'
}).then(function (result) {
- $("#selectListing", page).html(result.map(function (o) {
- return '' + o.Name + " ";
+ $('#selectListing', page).html(result.map(function (o) {
+ return '' + o.Name + ' ';
}));
if (listingsId) {
- $("#selectListing", page).val(listingsId);
+ $('#selectListing', page).val(listingsId);
}
loading.hide();
}, function (result) {
Dashboard.alert({
- message: globalize.translate("ErrorGettingTvLineups")
+ message: globalize.translate('ErrorGettingTvLineups')
});
- refreshListings("");
+ refreshListings('');
loading.hide();
});
}
function getTunerName(providerId) {
switch (providerId = providerId.toLowerCase()) {
- case "m3u":
- return "M3U Playlist";
- case "hdhomerun":
- return "HDHomerun";
- case "satip":
- return "DVB";
+ case 'm3u':
+ return 'M3U Playlist';
+ case 'hdhomerun':
+ return 'HDHomerun';
+ case 'satip':
+ return 'DVB';
default:
- return "Unknown";
+ return 'Unknown';
}
}
function refreshTunerDevices(page, providerInfo, devices) {
- var html = "";
+ var html = '';
for (var i = 0, length = devices.length; i < length; i++) {
var device = devices[i];
html += '';
var enabledTuners = providerInfo.EnabledTuners || [];
var isChecked = providerInfo.EnableAllTuners || -1 !== enabledTuners.indexOf(device.Id);
- var checkedAttribute = isChecked ? " checked" : "";
- html += '
";
+ var checkedAttribute = isChecked ? ' checked' : '';
+ html += '
';
html += '
';
html += '
';
html += device.FriendlyName || getTunerName(device.Type);
- html += "
";
+ html += '
';
html += '
';
html += device.Url;
- html += "
";
- html += "
";
- html += "";
+ html += '';
+ html += '';
+ html += '';
}
- page.querySelector(".tunerList").innerHTML = html;
+ page.querySelector('.tunerList').innerHTML = html;
}
var listingsId;
var self = this;
self.submit = function () {
- page.querySelector(".btnSubmitListingsContainer").click();
+ page.querySelector('.btnSubmitListingsContainer').click();
};
self.init = function () {
@@ -267,30 +267,30 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "listViewStyle", "emb
// Only hide the buttons if explicitly set to false; default to showing if undefined or null
// FIXME: rename this option to clarify logic
var hideCancelButton = options.showCancelButton === false;
- page.querySelector(".btnCancel").classList.toggle("hide", hideCancelButton);
+ page.querySelector('.btnCancel').classList.toggle('hide', hideCancelButton);
var hideSubmitButton = options.showSubmitButton === false;
- page.querySelector(".btnSubmitListings").classList.toggle("hide", hideSubmitButton);
+ page.querySelector('.btnSubmitListings').classList.toggle('hide', hideSubmitButton);
- $(".formLogin", page).on("submit", function () {
+ $('.formLogin', page).on('submit', function () {
submitLoginForm();
return false;
});
- $(".formListings", page).on("submit", function () {
+ $('.formListings', page).on('submit', function () {
submitListingsForm();
return false;
});
- $(".txtZipCode", page).on("change", function () {
+ $('.txtZipCode', page).on('change', function () {
refreshListings(this.value);
});
- page.querySelector(".chkAllTuners").addEventListener("change", function (e) {
+ page.querySelector('.chkAllTuners').addEventListener('change', function (e) {
if (e.target.checked) {
- page.querySelector(".selectTunersSection").classList.add("hide");
+ page.querySelector('.selectTunersSection').classList.add('hide');
} else {
- page.querySelector(".selectTunersSection").classList.remove("hide");
+ page.querySelector('.selectTunersSection').classList.remove('hide');
}
});
- $(".createAccountHelp", page).html(globalize.translate("MessageCreateAccountAt", 'http://www.schedulesdirect.org '));
+ $('.createAccountHelp', page).html(globalize.translate('MessageCreateAccountAt', 'http://www.schedulesdirect.org '));
reload();
};
};
diff --git a/src/components/tvproviders/xmltv.js b/src/components/tvproviders/xmltv.js
index 991ed49a4..4c39b1443 100644
--- a/src/components/tvproviders/xmltv.js
+++ b/src/components/tvproviders/xmltv.js
@@ -1,5 +1,5 @@
-define(["jQuery", "loading", "globalize", "emby-checkbox", "emby-input", "listViewStyle", "paper-icon-button-light"], function ($, loading, globalize) {
- "use strict";
+define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'emby-input', 'listViewStyle', 'paper-icon-button-light'], function ($, loading, globalize) {
+ 'use strict';
return function (page, providerId, options) {
function getListingProvider(config, id) {
@@ -15,26 +15,26 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "emby-input", "listVi
return getListingProvider();
}
- return ApiClient.getJSON(ApiClient.getUrl("LiveTv/ListingProviders/Default"));
+ return ApiClient.getJSON(ApiClient.getUrl('LiveTv/ListingProviders/Default'));
}
function reload() {
loading.show();
- ApiClient.getNamedConfiguration("livetv").then(function (config) {
+ ApiClient.getNamedConfiguration('livetv').then(function (config) {
getListingProvider(config, providerId).then(function (info) {
- page.querySelector(".txtPath").value = info.Path || "";
- page.querySelector(".txtKids").value = (info.KidsCategories || []).join("|");
- page.querySelector(".txtNews").value = (info.NewsCategories || []).join("|");
- page.querySelector(".txtSports").value = (info.SportsCategories || []).join("|");
- page.querySelector(".txtMovies").value = (info.MovieCategories || []).join("|");
- page.querySelector(".txtMoviePrefix").value = info.MoviePrefix || "";
- page.querySelector(".txtUserAgent").value = info.UserAgent || "";
- page.querySelector(".chkAllTuners").checked = info.EnableAllTuners;
+ page.querySelector('.txtPath').value = info.Path || '';
+ page.querySelector('.txtKids').value = (info.KidsCategories || []).join('|');
+ page.querySelector('.txtNews').value = (info.NewsCategories || []).join('|');
+ page.querySelector('.txtSports').value = (info.SportsCategories || []).join('|');
+ page.querySelector('.txtMovies').value = (info.MovieCategories || []).join('|');
+ page.querySelector('.txtMoviePrefix').value = info.MoviePrefix || '';
+ page.querySelector('.txtUserAgent').value = info.UserAgent || '';
+ page.querySelector('.chkAllTuners').checked = info.EnableAllTuners;
- if (page.querySelector(".chkAllTuners").checked) {
- page.querySelector(".selectTunersSection").classList.add("hide");
+ if (page.querySelector('.chkAllTuners').checked) {
+ page.querySelector('.selectTunersSection').classList.add('hide');
} else {
- page.querySelector(".selectTunersSection").classList.remove("hide");
+ page.querySelector('.selectTunersSection').classList.remove('hide');
}
refreshTunerDevices(page, info, config.TunerHosts);
@@ -47,7 +47,7 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "emby-input", "listVi
var value = txtInput.value;
if (value) {
- return value.split("|");
+ return value.split('|');
}
return [];
@@ -56,31 +56,31 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "emby-input", "listVi
function submitListingsForm() {
loading.show();
var id = providerId;
- ApiClient.getNamedConfiguration("livetv").then(function (config) {
+ ApiClient.getNamedConfiguration('livetv').then(function (config) {
var info = config.ListingProviders.filter(function (provider) {
return provider.Id === id;
})[0] || {};
- info.Type = "xmltv";
- info.Path = page.querySelector(".txtPath").value;
- info.MoviePrefix = page.querySelector(".txtMoviePrefix").value || null;
- info.UserAgent = page.querySelector(".txtUserAgent").value || null;
- info.MovieCategories = getCategories(page.querySelector(".txtMovies"));
- info.KidsCategories = getCategories(page.querySelector(".txtKids"));
- info.NewsCategories = getCategories(page.querySelector(".txtNews"));
- info.SportsCategories = getCategories(page.querySelector(".txtSports"));
- info.EnableAllTuners = page.querySelector(".chkAllTuners").checked;
- info.EnabledTuners = info.EnableAllTuners ? [] : $(".chkTuner", page).get().filter(function (tuner) {
+ info.Type = 'xmltv';
+ info.Path = page.querySelector('.txtPath').value;
+ info.MoviePrefix = page.querySelector('.txtMoviePrefix').value || null;
+ info.UserAgent = page.querySelector('.txtUserAgent').value || null;
+ info.MovieCategories = getCategories(page.querySelector('.txtMovies'));
+ info.KidsCategories = getCategories(page.querySelector('.txtKids'));
+ info.NewsCategories = getCategories(page.querySelector('.txtNews'));
+ info.SportsCategories = getCategories(page.querySelector('.txtSports'));
+ info.EnableAllTuners = page.querySelector('.chkAllTuners').checked;
+ info.EnabledTuners = info.EnableAllTuners ? [] : $('.chkTuner', page).get().filter(function (tuner) {
return tuner.checked;
}).map(function (tuner) {
- return tuner.getAttribute("data-id");
+ return tuner.getAttribute('data-id');
});
ApiClient.ajax({
- type: "POST",
- url: ApiClient.getUrl("LiveTv/ListingProviders", {
+ type: 'POST',
+ url: ApiClient.getUrl('LiveTv/ListingProviders', {
ValidateListings: true
}),
data: JSON.stringify(info),
- contentType: "application/json"
+ contentType: 'application/json'
}).then(function (result) {
loading.hide();
@@ -88,11 +88,11 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "emby-input", "listVi
Dashboard.processServerConfigurationUpdateResult();
}
- Events.trigger(self, "submitted");
+ Events.trigger(self, 'submitted');
}, function () {
loading.hide();
Dashboard.alert({
- message: globalize.translate("ErrorAddingXmlTvFile")
+ message: globalize.translate('ErrorAddingXmlTvFile')
});
});
});
@@ -100,51 +100,51 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "emby-input", "listVi
function getTunerName(providerId) {
switch (providerId = providerId.toLowerCase()) {
- case "m3u":
- return "M3U Playlist";
- case "hdhomerun":
- return "HDHomerun";
- case "satip":
- return "DVB";
+ case 'm3u':
+ return 'M3U Playlist';
+ case 'hdhomerun':
+ return 'HDHomerun';
+ case 'satip':
+ return 'DVB';
default:
- return "Unknown";
+ return 'Unknown';
}
}
function refreshTunerDevices(page, providerInfo, devices) {
- var html = "";
+ var html = '';
for (var i = 0, length = devices.length; i < length; i++) {
var device = devices[i];
html += '';
var enabledTuners = providerInfo.EnabledTuners || [];
var isChecked = providerInfo.EnableAllTuners || -1 !== enabledTuners.indexOf(device.Id);
- var checkedAttribute = isChecked ? " checked" : "";
- html += '
";
+ var checkedAttribute = isChecked ? ' checked' : '';
+ html += '
';
html += '
';
html += '
';
html += device.FriendlyName || getTunerName(device.Type);
- html += "
";
+ html += '
';
html += '
';
html += device.Url;
- html += "
";
- html += "
";
- html += "";
+ html += '';
+ html += '';
+ html += '';
}
- page.querySelector(".tunerList").innerHTML = html;
+ page.querySelector('.tunerList').innerHTML = html;
}
function onSelectPathClick(e) {
- var page = $(e.target).parents(".xmltvForm")[0];
+ var page = $(e.target).parents('.xmltvForm')[0];
- require(["directorybrowser"], function (directoryBrowser) {
+ require(['directorybrowser'], function (directoryBrowser) {
var picker = new directoryBrowser();
picker.show({
includeFiles: true,
callback: function (path) {
if (path) {
- var txtPath = page.querySelector(".txtPath");
+ var txtPath = page.querySelector('.txtPath');
txtPath.value = path;
txtPath.focus();
}
@@ -157,7 +157,7 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "emby-input", "listVi
var self = this;
self.submit = function () {
- page.querySelector(".btnSubmitListings").click();
+ page.querySelector('.btnSubmitListings').click();
};
self.init = function () {
@@ -166,21 +166,21 @@ define(["jQuery", "loading", "globalize", "emby-checkbox", "emby-input", "listVi
// Only hide the buttons if explicitly set to false; default to showing if undefined or null
// FIXME: rename this option to clarify logic
var hideCancelButton = options.showCancelButton === false;
- page.querySelector(".btnCancel").classList.toggle("hide", hideCancelButton);
+ page.querySelector('.btnCancel').classList.toggle('hide', hideCancelButton);
var hideSubmitButton = options.showSubmitButton === false;
- page.querySelector(".btnSubmitListings").classList.toggle("hide", hideSubmitButton);
+ page.querySelector('.btnSubmitListings').classList.toggle('hide', hideSubmitButton);
- $("form", page).on("submit", function () {
+ $('form', page).on('submit', function () {
submitListingsForm();
return false;
});
- page.querySelector("#btnSelectPath").addEventListener("click", onSelectPathClick);
- page.querySelector(".chkAllTuners").addEventListener("change", function (evt) {
+ page.querySelector('#btnSelectPath').addEventListener('click', onSelectPathClick);
+ page.querySelector('.chkAllTuners').addEventListener('change', function (evt) {
if (evt.target.checked) {
- page.querySelector(".selectTunersSection").classList.add("hide");
+ page.querySelector('.selectTunersSection').classList.add('hide');
} else {
- page.querySelector(".selectTunersSection").classList.remove("hide");
+ page.querySelector('.selectTunersSection').classList.remove('hide');
}
});
reload();
diff --git a/src/components/upnextdialog/upnextdialog.js b/src/components/upnextdialog/upnextdialog.js
index 225859e0b..3e9c9f9c5 100644
--- a/src/components/upnextdialog/upnextdialog.js
+++ b/src/components/upnextdialog/upnextdialog.js
@@ -10,7 +10,7 @@ define(['dom', 'playbackManager', 'connectionManager', 'events', 'mediaInfo', 'l
}
options = options || {};
- options.type = options.type || "Primary";
+ options.type = options.type || 'Primary';
if (options.type === 'Primary') {
@@ -44,7 +44,7 @@ define(['dom', 'playbackManager', 'connectionManager', 'events', 'mediaInfo', 'l
function imageUrl(item, options) {
options = options || {};
- options.type = options.type || "Primary";
+ options.type = options.type || 'Primary';
if (item.ImageTags && item.ImageTags[options.type]) {
diff --git a/src/components/userdatabuttons/userdatabuttons.js b/src/components/userdatabuttons/userdatabuttons.js
index c7890a2fc..86b990213 100644
--- a/src/components/userdatabuttons/userdatabuttons.js
+++ b/src/components/userdatabuttons/userdatabuttons.js
@@ -90,10 +90,10 @@ define(['connectionManager', 'globalize', 'dom', 'itemHelper', 'paper-icon-butto
return html;
}
- var btnCssClass = "btnUserData";
+ var btnCssClass = 'btnUserData';
if (cssClass) {
- btnCssClass += " " + cssClass;
+ btnCssClass += ' ' + cssClass;
}
var iconCssClass = options.iconCssClass;
diff --git a/src/components/viewContainer.js b/src/components/viewContainer.js
index 607e7029d..6c83e4a3b 100644
--- a/src/components/viewContainer.js
+++ b/src/components/viewContainer.js
@@ -1,16 +1,16 @@
-define(["browser", "dom", "layoutManager", "css!components/viewManager/viewContainer"], function (browser, dom, layoutManager) {
- "use strict";
+define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewContainer'], function (browser, dom, layoutManager) {
+ 'use strict';
function setControllerClass(view, options) {
if (options.controllerFactory) {
return Promise.resolve();
}
- var controllerUrl = view.getAttribute("data-controller");
+ var controllerUrl = view.getAttribute('data-controller');
if (controllerUrl) {
- if (0 === controllerUrl.indexOf("__plugin/")) {
- controllerUrl = controllerUrl.substring("__plugin/".length);
+ if (0 === controllerUrl.indexOf('__plugin/')) {
+ controllerUrl = controllerUrl.substring('__plugin/'.length);
}
controllerUrl = Dashboard.getConfigurationResourceUrl(controllerUrl);
@@ -38,21 +38,21 @@ define(["browser", "dom", "layoutManager", "css!components/viewManager/viewConta
pageIndex = 0;
}
- var isPluginpage = -1 !== options.url.toLowerCase().indexOf("/configurationpage");
+ var isPluginpage = -1 !== options.url.toLowerCase().indexOf('/configurationpage');
var newViewInfo = normalizeNewView(options, isPluginpage);
var newView = newViewInfo.elem;
var modulesToLoad = [];
if (isPluginpage) {
- modulesToLoad.push("legacyDashboard");
+ modulesToLoad.push('legacyDashboard');
}
if (newViewInfo.hasjQuerySelect) {
- modulesToLoad.push("legacySelectMenu");
+ modulesToLoad.push('legacySelectMenu');
}
if (newViewInfo.hasjQueryChecked) {
- modulesToLoad.push("fnchecked");
+ modulesToLoad.push('fnchecked');
}
return new Promise(function (resolve) {
@@ -65,12 +65,12 @@ define(["browser", "dom", "layoutManager", "css!components/viewManager/viewConta
var view = newView;
- if ("string" == typeof view) {
- view = document.createElement("div");
+ if ('string' == typeof view) {
+ view = document.createElement('div');
view.innerHTML = newView;
}
- view.classList.add("mainAnimatedPage");
+ view.classList.add('mainAnimatedPage');
if (currentPage) {
if (newViewInfo.hasScript && window.$) {
@@ -88,17 +88,17 @@ define(["browser", "dom", "layoutManager", "css!components/viewManager/viewConta
}
if (options.type) {
- view.setAttribute("data-type", options.type);
+ view.setAttribute('data-type', options.type);
}
var properties = [];
if (options.fullscreen) {
- properties.push("fullscreen");
+ properties.push('fullscreen');
}
if (properties.length) {
- view.setAttribute("data-properties", properties.join(","));
+ view.setAttribute('data-properties', properties.join(','));
}
allPages[pageIndex] = view;
@@ -133,11 +133,11 @@ define(["browser", "dom", "layoutManager", "css!components/viewManager/viewConta
function parseHtml(html, hasScript) {
if (hasScript) {
- html = replaceAll(html, "\x3c!--