'
});
});
diff --git a/src/controllers/livetv/livetvrecordings.js b/src/controllers/livetv/livetvrecordings.js
index d5cfe66672..d832ca1339 100644
--- a/src/controllers/livetv/livetvrecordings.js
+++ b/src/controllers/livetv/livetvrecordings.js
@@ -24,7 +24,6 @@ define(['layoutManager', 'loading', 'cardBuilder', 'apphost', 'imageLoader', 'sc
recordingItems.classList.add('vertical-wrap');
}
- appHost.supports('imageanalysis');
recordingItems.innerHTML = cardBuilder.getCardsHtml(Object.assign({
items: recordings,
shape: scrollX ? 'autooverflow' : 'auto',
diff --git a/src/controllers/livetv/livetvschedule.js b/src/controllers/livetv/livetvschedule.js
index a6f509c6f1..9668d59d9f 100644
--- a/src/controllers/livetv/livetvschedule.js
+++ b/src/controllers/livetv/livetvschedule.js
@@ -30,17 +30,14 @@ define(['layoutManager', 'cardBuilder', 'apphost', 'imageLoader', 'loading', 'sc
recordingItems.classList.add('vertical-wrap');
}
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- var cardLayout = appHost.preferVisualCards || supportsImageAnalysis;
- cardLayout = false;
recordingItems.innerHTML = cardBuilder.getCardsHtml(Object.assign({
items: recordings,
shape: enableScrollX() ? 'autooverflow' : 'auto',
showTitle: true,
showParentTitle: true,
coverImage: true,
- cardLayout: cardLayout,
- centerText: !cardLayout,
+ cardLayout: appHost.preferVisualCards,
+ centerText: !appHost.preferVisualCards,
allowBottomPadding: !enableScrollX(),
preferThumb: 'auto'
}, cardOptions || {}));
diff --git a/src/controllers/livetv/livetvseriestimers.js b/src/controllers/livetv/livetvseriestimers.js
index 27daca1983..c5d0da60d7 100644
--- a/src/controllers/livetv/livetvseriestimers.js
+++ b/src/controllers/livetv/livetvseriestimers.js
@@ -3,7 +3,6 @@ define(['datetime', 'cardBuilder', 'imageLoader', 'apphost', 'loading', 'paper-i
function renderTimers(context, timers) {
var html = '';
- appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({
items: timers,
shape: 'auto',
diff --git a/src/controllers/movies/moviegenres.js b/src/controllers/movies/moviegenres.js
index ab410c1bd4..8c86ccf379 100644
--- a/src/controllers/movies/moviegenres.js
+++ b/src/controllers/movies/moviegenres.js
@@ -75,7 +75,6 @@ define(['layoutManager', 'loading', 'libraryBrowser', 'cardBuilder', 'lazyLoader
ParentId: params.topParentId
};
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
- var supportsImageAnalysis = appHost.supports('imageanalysis');
if (viewStyle == 'Thumb') {
cardBuilder.buildCards(result.Items, {
diff --git a/src/controllers/movies/moviesrecommended.js b/src/controllers/movies/moviesrecommended.js
index d948c1cef7..4ffe7888cf 100644
--- a/src/controllers/movies/moviesrecommended.js
+++ b/src/controllers/movies/moviesrecommended.js
@@ -346,8 +346,6 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
function loadTab(page, index) {
currentTabIndex = index;
getTabController(page, index, function (controller) {
- initialTabIndex = null;
-
if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index);
controller.renderTab();
@@ -370,10 +368,8 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
}
}
- var isViewRestored;
var self = this;
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
- var initialTabIndex = currentTabIndex;
var suggestionsTabIndex = 1;
self.initTab = function () {
@@ -389,7 +385,8 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
var tabControllers = [];
var renderedTabs = [];
view.addEventListener('viewshow', function (e) {
- if (isViewRestored = e.detail.isRestored, initTabs(), !view.getAttribute('data-title')) {
+ initTabs();
+ if (!view.getAttribute('data-title')) {
var parentId = params.topParentId;
if (parentId) {
diff --git a/src/controllers/music/musicrecommended.js b/src/controllers/music/musicrecommended.js
index 3f025799f6..0eecef0bfb 100644
--- a/src/controllers/music/musicrecommended.js
+++ b/src/controllers/music/musicrecommended.js
@@ -41,8 +41,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
};
ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
var elem = page.querySelector('#recentlyAddedSongs');
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- supportsImageAnalysis = false;
+
elem.innerHTML = cardBuilder.getCardsHtml({
items: items,
showUnplayedIndicator: false,
@@ -51,10 +50,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showTitle: true,
showParentTitle: true,
lazy: true,
- centerText: !supportsImageAnalysis,
- overlayPlayButton: !supportsImageAnalysis,
+ centerText: true,
+ overlayPlayButton: true,
allowBottomPadding: !enableScrollX(),
- cardLayout: supportsImageAnalysis,
+ cardLayout: false,
coverImage: true
});
imageLoader.lazyChildren(elem);
@@ -90,8 +89,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
var itemsContainer = elem.querySelector('.itemsContainer');
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- supportsImageAnalysis = false;
itemsContainer.innerHTML = cardBuilder.getCardsHtml({
items: result.Items,
showUnplayedIndicator: false,
@@ -100,10 +97,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showParentTitle: true,
action: 'instantmix',
lazy: true,
- centerText: !supportsImageAnalysis,
- overlayMoreButton: !supportsImageAnalysis,
+ centerText: true,
+ overlayMoreButton: true,
allowBottomPadding: !enableScrollX(),
- cardLayout: supportsImageAnalysis,
+ cardLayout: false,
coverImage: true
});
imageLoader.lazyChildren(itemsContainer);
@@ -134,8 +131,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
var itemsContainer = elem.querySelector('.itemsContainer');
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- supportsImageAnalysis = false;
itemsContainer.innerHTML = cardBuilder.getCardsHtml({
items: result.Items,
showUnplayedIndicator: false,
@@ -144,10 +139,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showParentTitle: true,
action: 'instantmix',
lazy: true,
- centerText: !supportsImageAnalysis,
- overlayMoreButton: !supportsImageAnalysis,
+ centerText: true,
+ overlayMoreButton: true,
allowBottomPadding: !enableScrollX(),
- cardLayout: supportsImageAnalysis,
+ cardLayout: false,
coverImage: true
});
imageLoader.lazyChildren(itemsContainer);
@@ -339,8 +334,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
function loadTab(page, index) {
currentTabIndex = index;
getTabController(page, index, function (controller) {
- initialTabIndex = null;
-
if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index);
controller.renderTab();
@@ -356,10 +349,8 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}
}
- var isViewRestored;
var self = this;
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
- var initialTabIndex = currentTabIndex;
self.initTab = function () {
var tabContent = view.querySelector(".pageTabContent[data-index='0']");
@@ -377,7 +368,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
var tabControllers = [];
var renderedTabs = [];
view.addEventListener('viewshow', function (e) {
- isViewRestored = e.detail.isRestored;
initTabs();
if (!view.getAttribute('data-title')) {
var parentId = params.topParentId;
diff --git a/src/controllers/shows/tvgenres.js b/src/controllers/shows/tvgenres.js
index d686a62197..52906fb774 100644
--- a/src/controllers/shows/tvgenres.js
+++ b/src/controllers/shows/tvgenres.js
@@ -85,8 +85,6 @@ import 'emby-button';
ParentId: params.topParentId
};
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
- const supportsImageAnalysis = appHost.supports('imageanalysis');
-
if (viewStyle == 'Thumb') {
cardBuilder.buildCards(result.Items, {
itemsContainer: elem,
diff --git a/src/controllers/shows/tvlatest.js b/src/controllers/shows/tvlatest.js
index c08f3d5a15..bcc870e366 100644
--- a/src/controllers/shows/tvlatest.js
+++ b/src/controllers/shows/tvlatest.js
@@ -1,7 +1,6 @@
import loading from 'loading';
import groupedcards from 'components/groupedcards';
import cardBuilder from 'cardBuilder';
-import appHost from 'apphost';
import imageLoader from 'imageLoader';
/* eslint-disable indent */
@@ -23,8 +22,7 @@ import imageLoader from 'imageLoader';
function loadLatest(context, params, promise) {
promise.then(function (items) {
- let html = '';
- appHost.supports('imageanalysis');
+ var html = '';
html += cardBuilder.getCardsHtml({
items: items,
shape: 'backdrop',
diff --git a/src/controllers/shows/tvrecommended.js b/src/controllers/shows/tvrecommended.js
index 7edd2ab501..4aab69e978 100644
--- a/src/controllers/shows/tvrecommended.js
+++ b/src/controllers/shows/tvrecommended.js
@@ -269,8 +269,6 @@ import 'emby-button';
function loadTab(page, index) {
currentTabIndex = index;
getTabController(page, index, function (controller) {
- initialTabIndex = null;
-
if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index);
controller.renderTab();
@@ -301,10 +299,8 @@ import 'emby-button';
}
}
- let isViewRestored;
const self = this;
let currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
- let initialTabIndex = currentTabIndex;
self.initTab = function () {
const tabContent = self.tabContent;
@@ -319,7 +315,6 @@ import 'emby-button';
let renderedTabs = [];
setScrollClasses(view.querySelector('#resumableItems'), enableScrollX());
view.addEventListener('viewshow', function (e) {
- isViewRestored = e.detail.isRestored;
initTabs();
if (!view.getAttribute('data-title')) {
const parentId = params.topParentId;
diff --git a/src/controllers/shows/tvupcoming.js b/src/controllers/shows/tvupcoming.js
index a2016279b8..f9df3df343 100644
--- a/src/controllers/shows/tvupcoming.js
+++ b/src/controllers/shows/tvupcoming.js
@@ -1,9 +1,7 @@
import layoutManager from 'layoutManager';
import loading from 'loading';
import datetime from 'datetime';
-import libraryBrowser from 'libraryBrowser';
import cardBuilder from 'cardBuilder';
-import appHost from 'apphost';
import imageLoader from 'imageLoader';
import globalize from 'globalize';
import 'scrollStyles';
@@ -106,8 +104,6 @@ import 'emby-itemscontainer';
html += '
';
}
- let supportsImageAnalysis = appHost.supports('imageanalysis');
- supportsImageAnalysis = false;
html += cardBuilder.getCardsHtml({
items: group.items,
showLocationTypeIndicator: false,
@@ -116,11 +112,11 @@ import 'emby-itemscontainer';
preferThumb: true,
lazy: true,
showDetailsMenu: true,
- centerText: !supportsImageAnalysis,
+ centerText: true,
showParentTitle: true,
overlayText: false,
allowBottomPadding: allowBottomPadding,
- cardLayout: supportsImageAnalysis,
+ cardLayout: false,
overlayMoreButton: true,
missingIndicator: false
});
diff --git a/src/controllers/user/home.js b/src/controllers/user/home.js
index e7058fd3ac..f811aa52b9 100644
--- a/src/controllers/user/home.js
+++ b/src/controllers/user/home.js
@@ -1,7 +1,4 @@
import HomescreenSettings from 'homescreenSettings';
-import dom from 'dom';
-import globalize from 'globalize';
-import loading from 'loading';
import * as userSettings from 'userSettings';
import autoFocuser from 'autoFocuser';
import 'listViewStyle';
diff --git a/src/controllers/user/playback.js b/src/controllers/user/playback.js
index 5bcf055cd3..16c50a1980 100644
--- a/src/controllers/user/playback.js
+++ b/src/controllers/user/playback.js
@@ -1,7 +1,4 @@
import PlaybackSettings from 'playbackSettings';
-import dom from 'dom';
-import globalize from 'globalize';
-import loading from 'loading';
import * as userSettings from 'userSettings';
import autoFocuser from 'autoFocuser';
import 'listViewStyle';
diff --git a/src/elements/emby-collapse/emby-collapse.js b/src/elements/emby-collapse/emby-collapse.js
index f980f19af0..733333df77 100644
--- a/src/elements/emby-collapse/emby-collapse.js
+++ b/src/elements/emby-collapse/emby-collapse.js
@@ -11,11 +11,7 @@ import 'emby-button';
elem.classList.remove('hide');
elem.classList.add('expanded');
elem.style.height = 'auto';
- const height = elem.offsetHeight + 'px';
- elem.style.height = '0';
-
- // trigger reflow
- const newHeight = elem.offsetHeight;
+ var height = elem.offsetHeight + 'px';
elem.style.height = height;
setTimeout(function () {
@@ -28,15 +24,12 @@ import 'emby-button';
}, 300);
const icon = button.querySelector('.material-icons');
- //icon.innerHTML = 'expand_less';
icon.classList.add('emby-collapse-expandIconExpanded');
}
function slideUpToHide(button, elem) {
elem.style.height = elem.offsetHeight + 'px';
- // trigger reflow
- const newHeight = elem.offsetHeight;
elem.classList.remove('expanded');
elem.style.height = '0';
@@ -50,7 +43,6 @@ import 'emby-button';
}, 300);
const icon = button.querySelector('.material-icons');
- //icon.innerHTML = 'expand_more';
icon.classList.remove('emby-collapse-expandIconExpanded');
}
diff --git a/src/elements/emby-itemscontainer/emby-itemscontainer.js b/src/elements/emby-itemscontainer/emby-itemscontainer.js
index 1d4a67717a..608449f30f 100644
--- a/src/elements/emby-itemscontainer/emby-itemscontainer.js
+++ b/src/elements/emby-itemscontainer/emby-itemscontainer.js
@@ -18,7 +18,6 @@ import 'webcomponents';
function onClick(e) {
const itemsContainer = this;
- const target = e.target;
let multiSelect = itemsContainer.multiSelect;
if (multiSelect) {
diff --git a/src/elements/emby-progressring/emby-progressring.js b/src/elements/emby-progressring/emby-progressring.js
index 062f64d78b..838816579c 100644
--- a/src/elements/emby-progressring/emby-progressring.js
+++ b/src/elements/emby-progressring/emby-progressring.js
@@ -13,23 +13,22 @@ import 'webcomponents';
import('text!./emby-progressring.template.html').then(({default: template}) => {
instance.innerHTML = template;
- //if (window.MutationObserver) {
- // // create an observer instance
- // var observer = new MutationObserver(function (mutations) {
- // mutations.forEach(function (mutation) {
+ if (window.MutationObserver) {
+ // create an observer instance
+ var observer = new MutationObserver(function (mutations) {
+ mutations.forEach(function (mutation) {
+ instance.setProgress(parseFloat(instance.getAttribute('data-progress') || '0'));
+ });
+ });
- // instance.setProgress(parseFloat(instance.getAttribute('data-progress') || '0'));
- // });
- // });
+ // configuration of the observer:
+ var config = { attributes: true, childList: false, characterData: false };
- // // configuration of the observer:
- // var config = { attributes: true, childList: false, characterData: false };
+ // pass in the target node, as well as the observer options
+ observer.observe(instance, config);
- // // pass in the target node, as well as the observer options
- // observer.observe(instance, config);
-
- // instance.observer = observer;
- //}
+ instance.observer = observer;
+ }
instance.setProgress(parseFloat(instance.getAttribute('data-progress') || '0'));
});
diff --git a/src/elements/emby-radio/emby-radio.js b/src/elements/emby-radio/emby-radio.js
index c8437d77e3..7d53eb6ad4 100644
--- a/src/elements/emby-radio/emby-radio.js
+++ b/src/elements/emby-radio/emby-radio.js
@@ -37,7 +37,6 @@ import 'webcomponents';
this.classList.add('mdl-radio__button');
let labelElement = this.parentNode;
- //labelElement.classList.add('"mdl-radio mdl-js-radio mdl-js-ripple-effect');
labelElement.classList.add('mdl-radio');
labelElement.classList.add('mdl-js-radio');
labelElement.classList.add('mdl-js-ripple-effect');
diff --git a/src/elements/emby-ratingbutton/emby-ratingbutton.js b/src/elements/emby-ratingbutton/emby-ratingbutton.js
index b455495a2e..42cd69775a 100644
--- a/src/elements/emby-ratingbutton/emby-ratingbutton.js
+++ b/src/elements/emby-ratingbutton/emby-ratingbutton.js
@@ -78,7 +78,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) {
icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating');
- //icon.innerHTML = 'thumb_up';
}
button.classList.remove('ratingbutton-withrating');
@@ -87,7 +86,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) {
icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating');
- //icon.innerHTML = 'thumb_down';
}
button.classList.remove('ratingbutton-withrating');
@@ -96,7 +94,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) {
icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating');
- //icon.innerHTML = 'thumbs_up_down';
}
button.classList.remove('ratingbutton-withrating');
}
diff --git a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js
index 239fbcfcda..fcff587392 100644
--- a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js
+++ b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js
@@ -36,6 +36,7 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);
}
function updateScrollButtons(scrollButtons, scrollSize, scrollPos, scrollWidth) {
+ // TODO: Check if hack is really needed
// hack alert add twenty for rounding errors
if (scrollWidth <= scrollSize + 20) {
scrollButtons.scrollButtonsLeft.classList.add('hide');
@@ -122,7 +123,6 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);
const direction = this.getAttribute('data-direction');
const scrollSize = getScrollSize(scroller);
const scrollPos = getScrollPosition(scroller);
- const scrollWidth = getScrollWidth(scroller);
let newPos;
if (direction === 'left') {
diff --git a/src/elements/emby-slider/emby-slider.js b/src/elements/emby-slider/emby-slider.js
index e872f6c78b..682e99b201 100644
--- a/src/elements/emby-slider/emby-slider.js
+++ b/src/elements/emby-slider/emby-slider.js
@@ -146,8 +146,9 @@ import 'emby-input';
return;
}
+ // TODO: Not sure what this is trying to accomplish.
if (enableWidthWithTransform == null) {
- //enableWidthWithTransform = browser.supportsCssAnimation();
+ enableWidthWithTransform = browser.supportsCssAnimation();
}
this.setAttribute('data-embyslider', 'true');
diff --git a/src/elements/emby-tabs/emby-tabs.js b/src/elements/emby-tabs/emby-tabs.js
index f3cd9d38cc..ad96290498 100644
--- a/src/elements/emby-tabs/emby-tabs.js
+++ b/src/elements/emby-tabs/emby-tabs.js
@@ -29,13 +29,6 @@ import 'scrollStyles';
}
}
- function addActivePanelClass(tabs, index) {
- let tabPanel = getTabPanel(tabs, index);
- if (tabPanel) {
- tabPanel.classList.add('is-active');
- }
- }
-
function fadeInRight(elem) {
const pct = browser.mobile ? '4%' : '0.5%';
@@ -263,7 +256,6 @@ import 'scrollStyles';
onClick.call(tabs, {
target: tabButtons[selected]
});
- //tabButtons[selected].click();
}
};
@@ -330,8 +322,6 @@ import 'scrollStyles';
};
EmbyTabs.setTabEnabled = function (index, enabled) {
-
- const tabs = this;
const btn = this.querySelector('.emby-tab-button[data-index="' + index + '"]');
if (enabled) {
diff --git a/src/elements/emby-textarea/emby-textarea.js b/src/elements/emby-textarea/emby-textarea.js
index d98cc8c07e..9036a57f1e 100644
--- a/src/elements/emby-textarea/emby-textarea.js
+++ b/src/elements/emby-textarea/emby-textarea.js
@@ -47,7 +47,6 @@ import 'emby-input';
return;
}
let newHeight = 0;
- let hasGrown = false;
if ((textarea.scrollHeight - offset) > self.maxAllowedHeight) {
textarea.style.overflowY = 'scroll';
diff --git a/src/legacy/focusPreventScroll.js b/src/legacy/focusPreventScroll.js
index 93f53dca29..97d6b0b120 100644
--- a/src/legacy/focusPreventScroll.js
+++ b/src/legacy/focusPreventScroll.js
@@ -1,3 +1,4 @@
+// TODO: Move to external library (https://github.com/calvellido/focus-options-polyfill)
// Polyfill to add support for preventScroll by focus function
if (HTMLElement.prototype.nativeFocus === undefined) {
diff --git a/src/libraries/scroller.js b/src/libraries/scroller.js
index 8c67127eb3..4c4932702e 100644
--- a/src/libraries/scroller.js
+++ b/src/libraries/scroller.js
@@ -872,12 +872,10 @@ define(['browser', 'layoutManager', 'dom', 'focusManager', 'ResizeObserver', 'sc
if (item === undefined) {
this.slideTo(this._pos[location], immediate);
} else {
-
- //if (!transform) {
-
- // item.scrollIntoView();
- // return;
- //}
+ if (!transform) {
+ item.scrollIntoView();
+ return;
+ }
var itemPos = this.getPos(item);
diff --git a/src/plugins/experimentalWarnings/plugin.js b/src/plugins/experimentalWarnings/plugin.js
index 632e38208c..cab4fcfada 100644
--- a/src/plugins/experimentalWarnings/plugin.js
+++ b/src/plugins/experimentalWarnings/plugin.js
@@ -1,14 +1,7 @@
define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (connectionManager, globalize, userSettings, appHost) {
'use strict';
- function getRequirePromise(deps) {
-
- return new Promise(function (resolve, reject) {
-
- require(deps, resolve);
- });
- }
-
+ // TODO: Replace with date-fns
// https://stackoverflow.com/questions/6117814/get-week-of-year-in-javascript-like-in-php
function getWeek(date) {
var d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
@@ -26,6 +19,7 @@ define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (
var now = new Date();
+ // TODO: Use date-fns
userSettingsKey += now.getFullYear() + '-w' + getWeek(now);
if (userSettings.get(userSettingsKey, false) === '1') {
diff --git a/src/plugins/htmlAudioPlayer/plugin.js b/src/plugins/htmlAudioPlayer/plugin.js
index 8265987e28..a4821fa35f 100644
--- a/src/plugins/htmlAudioPlayer/plugin.js
+++ b/src/plugins/htmlAudioPlayer/plugin.js
@@ -140,8 +140,6 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
xhrSetup: function(xhr, url) {
xhr.withCredentials = true;
}
- //appendErrorMaxRetry: 6,
- //debug: true
});
hls.loadSource(val);
hls.attachMedia(elem);
diff --git a/src/plugins/htmlVideoPlayer/plugin.js b/src/plugins/htmlVideoPlayer/plugin.js
index cc312bb956..a9e0e9bfe6 100644
--- a/src/plugins/htmlVideoPlayer/plugin.js
+++ b/src/plugins/htmlVideoPlayer/plugin.js
@@ -1,3 +1,4 @@
+
define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackManager', 'appRouter', 'appSettings', 'connectionManager', 'htmlMediaHelper', 'itemHelper', 'screenfull', 'globalize'], function (browser, require, events, appHost, loading, dom, playbackManager, appRouter, appSettings, connectionManager, htmlMediaHelper, itemHelper, screenfull, globalize) {
'use strict';
/* globals cast */
@@ -17,25 +18,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
}
}
- var _supportsTextTracks;
- function supportsTextTracks() {
-
- if (_supportsTextTracks == null) {
- _supportsTextTracks = document.createElement('video').textTracks != null;
- }
-
- // For now, until ready
- return _supportsTextTracks;
- }
-
- function supportsCanvas() {
- return !!document.createElement('canvas').getContext;
- }
-
- function supportsWebWorkers() {
- return !!window.Worker;
- }
-
function enableNativeTrackSupport(currentSrc, track) {
if (track) {
@@ -129,11 +111,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
return useHtml ? result.replace(/\n/gi, '
') : result;
}
- function setTracks(elem, tracks, item, mediaSource) {
-
- elem.innerHTML = getTracksHtml(tracks, item, mediaSource);
- }
-
function getTextTrackUrl(track, item, format) {
if (itemHelper.isLocalItem(item) && track.Path) {
@@ -148,22 +125,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
return url;
}
- function getTracksHtml(tracks, item, mediaSource) {
- return tracks.map(function (t) {
-
- if (t.DeliveryMethod !== 'External') {
- return '';
- }
-
- var defaultAttribute = mediaSource.DefaultSubtitleStreamIndex === t.Index ? ' default' : '';
-
- var language = t.Language || 'und';
- var label = t.Language || 'und';
- return '
';
-
- }).join('');
- }
-
function getDefaultProfile() {
return new Promise(function (resolve, reject) {
@@ -191,12 +152,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
var videoDialog;
- var winJsPlaybackItem;
-
var subtitleTrackIndexToSetOnPlaying;
var audioTrackIndexToSetOnPlaying;
- var lastCustomTrackMs = 0;
var currentClock;
var currentSubtitlesOctopus;
var currentAssRenderer;
@@ -334,8 +292,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
xhrSetup: function(xhr, xhr_url) {
xhr.withCredentials = true;
}
- //appendErrorMaxRetry: 6,
- //debug: true
});
hls.loadSource(url);
hls.attachMedia(elem);
@@ -350,55 +306,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
});
}
- function onShakaError(event) {
-
- var error = event.detail;
- console.error('Error code', error.code, 'object', error);
- }
-
- function setSrcWithShakaPlayer(instance, elem, options, url) {
-
- return new Promise(function (resolve, reject) {
-
- require(['shaka'], function () {
- /* globals shaka */
-
- var player = new shaka.Player(elem);
-
- //player.configure({
- // abr: {
- // enabled: false
- // },
- // streaming: {
-
- // failureCallback: function () {
- // alert(2);
- // }
- // }
- //});
-
- //shaka.log.setLevel(6);
-
- // Listen for error events.
- player.addEventListener('error', onShakaError);
-
- // Try to load a manifest.
- // This is an asynchronous process.
- player.load(url).then(function () {
-
- // This runs if the asynchronous load is successful.
- resolve();
-
- }, reject);
-
- self._shakaPlayer = player;
-
- // This is needed in setCurrentTrackElement
- self._currentSrc = url;
- });
- });
- }
-
function setCurrentSrcChromecast(instance, elem, options, url) {
elem.autoplay = true;
@@ -441,7 +348,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
var media = event.data.media || {};
var url = media.contentId;
var contentType = media.contentType.toLowerCase();
- var options = media.customData;
var protocol;
var ext = 'm3u8';
@@ -486,12 +392,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
mediaManager.defaultOnLoad = mediaManager.onLoad.bind(mediaManager);
mediaManager.onLoad = onMediaManagerLoadMedia.bind(self);
- //mediaManager.defaultOnPlay = mediaManager.onPlay.bind(mediaManager);
- //mediaManager.onPlay = function (event) {
- // // TODO ???
- // mediaManager.defaultOnPlay(event);
- //};
-
mediaManager.defaultOnStop = mediaManager.onStop.bind(mediaManager);
mediaManager.onStop = function (event) {
playbackManager.stop();
@@ -516,8 +416,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
htmlMediaHelper.destroyFlvPlayer(self);
htmlMediaHelper.destroyCastPlayer(self);
- var tracks = getMediaStreamTextTracks(options.mediaSource);
-
subtitleTrackIndexToSetOnPlaying = options.mediaSource.DefaultSubtitleStreamIndex == null ? -1 : options.mediaSource.DefaultSubtitleStreamIndex;
if (subtitleTrackIndexToSetOnPlaying != null && subtitleTrackIndexToSetOnPlaying >= 0) {
var initialSubtitleStream = options.mediaSource.MediaStreams[subtitleTrackIndexToSetOnPlaying];
@@ -535,14 +433,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
elem.crossOrigin = crossOrigin;
}
- /*if (htmlMediaHelper.enableHlsShakaPlayer(options.item, options.mediaSource, 'Video') && val.indexOf('.m3u8') !== -1) {
-
- setTracks(elem, tracks, options.item, options.mediaSource);
-
- return setSrcWithShakaPlayer(self, elem, options, val);
-
- } else*/ if (browser.chromecast && val.indexOf('.m3u8') !== -1 && options.mediaSource.RunTimeTicks) {
-
+ if (browser.chromecast && val.indexOf('.m3u8') !== -1 && options.mediaSource.RunTimeTicks) {
return setCurrentSrcChromecast(self, elem, options, val);
} else if (htmlMediaHelper.enableHlsJsPlayer(options.mediaSource.RunTimeTicks, 'Video') && val.indexOf('.m3u8') !== -1) {
return setSrcWithHlsJs(self, elem, options, val);
@@ -1062,7 +953,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
destroyCustomTrack(videoElement);
customTrackIndex = track.Index;
renderTracksEvents(videoElement, track, item);
- lastCustomTrackMs = 0;
}
function renderSsaAss(videoElement, track, item) {
diff --git a/src/plugins/logoScreensaver/plugin.js b/src/plugins/logoScreensaver/plugin.js
index f9dd901982..195369f9c9 100644
--- a/src/plugins/logoScreensaver/plugin.js
+++ b/src/plugins/logoScreensaver/plugin.js
@@ -59,23 +59,6 @@ define(['pluginManager'], function (pluginManager) {
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 }];
- var timing = { duration: 900, iterations: iterations };
- return elem.animate(keyframes, timing);
- }
-
function swing(elem, iterations) {
var keyframes = [
{ transform: 'translate(0%)', offset: 0 },
@@ -118,7 +101,6 @@ define(['pluginManager'], function (pluginManager) {
}
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 timing = { duration: 900, iterations: iterations };
@@ -126,7 +108,6 @@ define(['pluginManager'], function (pluginManager) {
}
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 timing = { duration: 900, iterations: iterations };
diff --git a/src/scripts/browser.js b/src/scripts/browser.js
index a377f08fdb..d2f5b2404a 100644
--- a/src/scripts/browser.js
+++ b/src/scripts/browser.js
@@ -101,8 +101,6 @@ define([], function () {
}
var animation = false;
- var animationstring = 'animation';
- var keyframeprefix = '';
var domPrefixes = ['Webkit', 'O', 'Moz'];
var pfx = '';
var elm = document.createElement('div');
@@ -115,8 +113,6 @@ define([], function () {
for (var i = 0; i < domPrefixes.length; i++) {
if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
pfx = domPrefixes[i];
- animationstring = pfx + 'Animation';
- keyframeprefix = '-' + pfx.toLowerCase() + '-';
animation = true;
break;
}
diff --git a/src/scripts/imagehelper.js b/src/scripts/imagehelper.js
index be3fd2834e..03039e1428 100644
--- a/src/scripts/imagehelper.js
+++ b/src/scripts/imagehelper.js
@@ -1,6 +1,5 @@
-/* eslint-disable indent */
-import browser from 'browser';
+/* eslint-disable indent */
export function getDeviceIcon(device) {
var baseUrl = 'assets/img/devices/';
diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js
index f228b46cec..961d89dc05 100644
--- a/src/scripts/libraryMenu.js
+++ b/src/scripts/libraryMenu.js
@@ -229,7 +229,6 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
function openMainDrawer() {
navDrawerInstance.open();
- lastOpenTime = new Date().getTime();
}
function onMainDrawerOpened() {
@@ -575,15 +574,12 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
}
function updateLibraryMenu(user) {
- // FIXME: Potential equivalent might be
- // showBySelector(".lnkSyncToOtherDevices", !!user.Policy.EnableContentDownloading);
if (!user) {
showBySelector('.libraryMenuDownloads', false);
showBySelector('.lnkSyncToOtherDevices', false);
return void showBySelector('.userMenuOptions', false);
}
- // FIXME: Potentially the same as above
if (user.Policy.EnableContentDownloading) {
showBySelector('.lnkSyncToOtherDevices', true);
} else {
@@ -838,7 +834,6 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
var enableLibraryNavDrawerHome = !layoutManager.tv;
var skinHeader = document.querySelector('.skinHeader');
var requiresUserRefresh = true;
- var lastOpenTime = new Date().getTime();
window.LibraryMenu = {
getTopParentId: getTopParentId,
onHardwareMenuButtonClick: function () {
diff --git a/src/scripts/livetvcomponents.js b/src/scripts/livetvcomponents.js
index fd4a46c0f1..fd1b48d0eb 100644
--- a/src/scripts/livetvcomponents.js
+++ b/src/scripts/livetvcomponents.js
@@ -64,10 +64,7 @@ define(['layoutManager', 'datetime', 'cardBuilder', 'apphost'], function (layout
for (i = 0, length = groups.length; i < length; i++) {
var group = groups[i];
- var supportsImageAnalysis = appHost.supports('imageanalysis');
- var cardLayout = appHost.preferVisualCards || supportsImageAnalysis;
- cardLayout = true;
if (group.name) {
html += '
';
html += '
' + group.name + '
';
@@ -86,21 +83,21 @@ define(['layoutManager', 'datetime', 'cardBuilder', 'apphost'], function (layout
html += cardBuilder.getCardsHtml({
items: group.items,
- shape: cardLayout ? getBackdropShape() : enableScrollX() ? 'autoOverflow' : 'autoVertical',
+ shape: getBackdropShape(),
showParentTitleOrTitle: true,
showAirTime: true,
showAirEndTime: true,
- showChannelName: !cardLayout,
- cardLayout: cardLayout,
- centerText: !cardLayout,
+ showChannelName: false,
+ cardLayout: true,
+ centerText: false,
action: 'edit',
cardFooterAside: 'none',
- preferThumb: !!cardLayout || 'auto',
- defaultShape: cardLayout ? null : 'portrait',
+ preferThumb: true,
+ defaultShape: null,
coverImage: true,
allowBottomPadding: false,
overlayText: false,
- showChannelLogo: cardLayout
+ showChannelLogo: true
});
html += '';
diff --git a/src/scripts/site.js b/src/scripts/site.js
index 6e1af0c493..f150f935c8 100644
--- a/src/scripts/site.js
+++ b/src/scripts/site.js
@@ -14,7 +14,7 @@ function getWindowLocationSearch(win) {
return search || '';
}
-function getParameterByName(name, url) {
+window.getParameterByName = function (name, url) {
'use strict';
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
@@ -27,7 +27,7 @@ function getParameterByName(name, url) {
}
return decodeURIComponent(results[1].replace(/\+/g, ' '));
-}
+};
function pageClassOn(eventName, className, fn) {
'use strict';
@@ -41,7 +41,7 @@ function pageClassOn(eventName, className, fn) {
});
}
-function pageIdOn(eventName, id, fn) {
+window.pageIdOn = function(eventName, id, fn) {
'use strict';
document.addEventListener(eventName, function (event) {
@@ -51,7 +51,7 @@ function pageIdOn(eventName, id, fn) {
fn.call(target, event);
}
});
-}
+};
var Dashboard = {
getCurrentUser: function () {
@@ -236,9 +236,7 @@ var Dashboard = {
var AppInfo = {};
-!function () {
- 'use strict';
-
+function initClient() {
function defineConnectionManager(connectionManager) {
window.ConnectionManager = connectionManager;
define('connectionManager', [], function () {
@@ -1127,7 +1125,9 @@ var AppInfo = {};
})();
return onWebComponentsReady();
-}();
+}
+
+initClient();
pageClassOn('viewshow', 'standalonePage', function () {
document.querySelector('.skinHeader').classList.add('noHeaderRight');
diff --git a/src/strings/ar.json b/src/strings/ar.json
index e7217b425b..b069301f92 100644
--- a/src/strings/ar.json
+++ b/src/strings/ar.json
@@ -227,7 +227,6 @@
"HeaderPassword": "كلمة السر",
"HeaderPasswordReset": "إعادة تهيئة كلمة السر",
"HeaderPaths": "مسارات",
- "HeaderPendingInvitations": "الدعوات المعلقة",
"HeaderPeople": "الناس",
"HeaderPinCodeReset": "أعد تهيئة الرمز الشخصي",
"HeaderPlayAll": "تشغيل الكل",
diff --git a/src/strings/bg-bg.json b/src/strings/bg-bg.json
index 71fdf80e32..619ccbe825 100644
--- a/src/strings/bg-bg.json
+++ b/src/strings/bg-bg.json
@@ -224,7 +224,6 @@
"HeaderParentalRatings": "Родителска оценка",
"HeaderPassword": "Парола",
"HeaderPaths": "Пътища",
- "HeaderPendingInvitations": "Чакащи покани",
"HeaderPeople": "Хора",
"HeaderPlayAll": "Пускане на всичко",
"HeaderPlayOn": "Пускане на",
diff --git a/src/strings/ca.json b/src/strings/ca.json
index 680be3ef77..8c0fa300cc 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -212,7 +212,6 @@
"HeaderPassword": "Contrasenya",
"HeaderPasswordReset": "Reiniciar Contrasenya",
"HeaderPaths": "Directoris",
- "HeaderPendingInvitations": "Invitacions Pendents",
"HeaderPeople": "Gent",
"HeaderPlayAll": "Reprodueix Tot",
"HeaderPlaybackError": "Error de Reproducció",
diff --git a/src/strings/cs.json b/src/strings/cs.json
index 5299165415..d0e8f83a98 100644
--- a/src/strings/cs.json
+++ b/src/strings/cs.json
@@ -341,7 +341,6 @@
"HeaderPassword": "Heslo",
"HeaderPasswordReset": "Obnova hesla",
"HeaderPaths": "Cesty",
- "HeaderPendingInvitations": "Čekající pozvánky",
"HeaderPeople": "Lidé",
"HeaderPinCodeReset": "Obnovit Pin kód",
"HeaderPlayAll": "Přehrát vše",
diff --git a/src/strings/da.json b/src/strings/da.json
index 5e29e1574c..fce7ba8551 100644
--- a/src/strings/da.json
+++ b/src/strings/da.json
@@ -296,7 +296,6 @@
"HeaderPassword": "Adgangskode",
"HeaderPasswordReset": "Nulstil adgangskode",
"HeaderPaths": "Stier",
- "HeaderPendingInvitations": "Ventende invitationer",
"HeaderPeople": "Mennesker",
"HeaderPinCodeReset": "Nulstil pinkode",
"HeaderPlayAll": "Afspil Alle",
diff --git a/src/strings/de.json b/src/strings/de.json
index eda47a1c0d..40b0b6fdb9 100644
--- a/src/strings/de.json
+++ b/src/strings/de.json
@@ -381,7 +381,6 @@
"HeaderPassword": "Passwort",
"HeaderPasswordReset": "Passwort zurücksetzen",
"HeaderPaths": "Pfade",
- "HeaderPendingInvitations": "Ausstehende Einladungen",
"HeaderPeople": "Personen",
"HeaderPhotoAlbums": "Fotoalben",
"HeaderPinCodeReset": "PIN Code zurücksetzen",
diff --git a/src/strings/el.json b/src/strings/el.json
index 24fd7c0934..43caa0975c 100644
--- a/src/strings/el.json
+++ b/src/strings/el.json
@@ -350,7 +350,6 @@
"HeaderPassword": "Κωδικός",
"HeaderPasswordReset": "Επαναφορά του κωδικού πρόσβασης",
"HeaderPaths": "Διαδρομή",
- "HeaderPendingInvitations": "Εκκρεμείς προσκλήσεις",
"HeaderPhotoAlbums": "Άλμπουμ φωτογραφιών",
"HeaderPinCodeReset": "Επαναφορά Pin Code",
"HeaderPlayAll": "Αναπαραγωγή Όλων",
diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json
index a357f5c15e..7a25a5a822 100644
--- a/src/strings/en-gb.json
+++ b/src/strings/en-gb.json
@@ -446,7 +446,6 @@
"HeaderPassword": "Password",
"HeaderPasswordReset": "Password Reset",
"HeaderPaths": "Paths",
- "HeaderPendingInvitations": "Pending Invitations",
"CopyStreamURL": "Copy Stream URL",
"CopyStreamURLSuccess": "URL copied successfully.",
"XmlDocumentAttributeListHelp": "These attributes are applied to the root element of every XML response.",
diff --git a/src/strings/en-us.json b/src/strings/en-us.json
index c1ea50431d..6024363f05 100644
--- a/src/strings/en-us.json
+++ b/src/strings/en-us.json
@@ -438,7 +438,6 @@
"HeaderPassword": "Password",
"HeaderPasswordReset": "Password Reset",
"HeaderPaths": "Paths",
- "HeaderPendingInvitations": "Pending Invitations",
"HeaderPeople": "People",
"HeaderPhotoAlbums": "Photo Albums",
"HeaderPinCodeReset": "Reset Pin Code",
diff --git a/src/strings/es-ar.json b/src/strings/es-ar.json
index d4030f13ff..2b1dbd1a9e 100644
--- a/src/strings/es-ar.json
+++ b/src/strings/es-ar.json
@@ -534,7 +534,6 @@
"HeaderPinCodeReset": "Restablecer código PIN",
"HeaderPhotoAlbums": "Álbumes de fotos",
"HeaderPeople": "Personas",
- "HeaderPendingInvitations": "Invitaciones pendientes",
"HeaderPaths": "Rutas",
"HeaderPasswordReset": "Restablecer contraseña",
"HeaderPassword": "Contraseña",
diff --git a/src/strings/es-mx.json b/src/strings/es-mx.json
index ca4973bd71..68e9136aff 100644
--- a/src/strings/es-mx.json
+++ b/src/strings/es-mx.json
@@ -392,7 +392,6 @@
"HeaderPassword": "Contraseña",
"HeaderPasswordReset": "Restablecer contraseña",
"HeaderPaths": "Rutas",
- "HeaderPendingInvitations": "Invitaciones pendientes",
"HeaderPeople": "Personas",
"HeaderPhotoAlbums": "Álbumes de fotos",
"HeaderPinCodeReset": "Restablecer código PIN",
diff --git a/src/strings/es.json b/src/strings/es.json
index 640a51d634..038d34ea1e 100644
--- a/src/strings/es.json
+++ b/src/strings/es.json
@@ -340,7 +340,6 @@
"HeaderPassword": "Contraseña",
"HeaderPasswordReset": "Reestablecer contraseña",
"HeaderPaths": "Ruta",
- "HeaderPendingInvitations": "Invitaciones pendientes",
"HeaderPeople": "Gente",
"HeaderPinCodeReset": "Restablecer código PIN",
"HeaderPlayAll": "Reproducir todo",
diff --git a/src/strings/es_419.json b/src/strings/es_419.json
index 871f43a372..d730a75b9e 100644
--- a/src/strings/es_419.json
+++ b/src/strings/es_419.json
@@ -1096,7 +1096,6 @@
"HeaderPinCodeReset": "Restablecer código PIN",
"HeaderPhotoAlbums": "Álbumes de fotos",
"HeaderPeople": "Personas",
- "HeaderPendingInvitations": "Invitaciones pendientes",
"HeaderPaths": "Rutas",
"HeaderPasswordReset": "Restablecer contraseña",
"HeaderPassword": "Contraseña",
diff --git a/src/strings/fa.json b/src/strings/fa.json
index 877c0af490..f2719b5be4 100644
--- a/src/strings/fa.json
+++ b/src/strings/fa.json
@@ -329,7 +329,6 @@
"HeaderPinCodeReset": "بازنشانی پین کد",
"HeaderPhotoAlbums": "آلبومهای عکس",
"HeaderPeople": "افراد",
- "HeaderPendingInvitations": "دعوتهای در انتظار",
"HeaderPasswordReset": "بازنشانی گذرواژه",
"HeaderPassword": "گذرواژه",
"HeaderParentalRatings": "رتبه بندی والدین",
diff --git a/src/strings/fi.json b/src/strings/fi.json
index b50ed369e1..a6a072ea16 100644
--- a/src/strings/fi.json
+++ b/src/strings/fi.json
@@ -480,7 +480,6 @@
"HeaderPreferredMetadataLanguage": "Ensisijainen metadatan kieli",
"HeaderPinCodeReset": "Nollaa PIN-koodi",
"HeaderPhotoAlbums": "Kuva-albumit",
- "HeaderPendingInvitations": "Odottavat kutsut",
"HeaderPaths": "Polut",
"HeaderPasswordReset": "Salasanan nollaus",
"HeaderNextVideoPlayingInValue": "Seuraava video alkaa {0}",
diff --git a/src/strings/fr.json b/src/strings/fr.json
index c71afef661..a7b2549108 100644
--- a/src/strings/fr.json
+++ b/src/strings/fr.json
@@ -387,7 +387,6 @@
"HeaderPassword": "Mot de passe",
"HeaderPasswordReset": "Mot de passe réinitialisé",
"HeaderPaths": "Chemins",
- "HeaderPendingInvitations": "Invitations en attente",
"HeaderPeople": "Personnes",
"HeaderPhotoAlbums": "Albums photo",
"HeaderPinCodeReset": "Réinitialiser le code PIN",
diff --git a/src/strings/he.json b/src/strings/he.json
index 31bc228bb2..3231737657 100644
--- a/src/strings/he.json
+++ b/src/strings/he.json
@@ -616,7 +616,6 @@
"HeaderPinCodeReset": "איפוס קוד סיכה",
"HeaderPhotoAlbums": "אלבומי תמונות",
"HeaderPeople": "אנשים",
- "HeaderPendingInvitations": "הזמנות ממתינות",
"HeaderPasswordReset": "איפוס סיסמה",
"HeaderPassword": "סיסמה",
"HeaderOtherItems": "פריטים אחרים",
diff --git a/src/strings/hr.json b/src/strings/hr.json
index 1693302c67..f7f6978d39 100644
--- a/src/strings/hr.json
+++ b/src/strings/hr.json
@@ -256,7 +256,6 @@
"HeaderPassword": "Lozinka",
"HeaderPasswordReset": "Poništenje lozinke",
"HeaderPaths": "Putanje",
- "HeaderPendingInvitations": "Neriješeni pozivi",
"HeaderPinCodeReset": "Poništi PIN",
"HeaderPlayback": "Reprodukcija medija",
"HeaderPleaseSignIn": "Molim, prijavite se",
diff --git a/src/strings/hu.json b/src/strings/hu.json
index 5559e2f10a..7aa44d906e 100644
--- a/src/strings/hu.json
+++ b/src/strings/hu.json
@@ -762,7 +762,6 @@
"HeaderNextVideoPlayingInValue": "Következő videó lejátszása {0}",
"HeaderOtherItems": "Egyéb elemek",
"HeaderPasswordReset": "Jelszó visszaállítása",
- "HeaderPendingInvitations": "Függő meghívók",
"HeaderPhotoAlbums": "Fényképalbumok",
"HeaderPlaybackError": "Lejátszási hiba",
"HeaderProfileInformation": "Profil információ",
diff --git a/src/strings/it.json b/src/strings/it.json
index 69919fbd76..854e5fa489 100644
--- a/src/strings/it.json
+++ b/src/strings/it.json
@@ -371,7 +371,6 @@
"HeaderParentalRatings": "Valutazioni genitori",
"HeaderPasswordReset": "Reset della Password",
"HeaderPaths": "Percorsi",
- "HeaderPendingInvitations": "Inviti in sospeso",
"HeaderPeople": "Persone",
"HeaderPhotoAlbums": "Album foto",
"HeaderPinCodeReset": "Resetta il codice PIN",
diff --git a/src/strings/ja.json b/src/strings/ja.json
index b93b3175e4..118bd739e6 100644
--- a/src/strings/ja.json
+++ b/src/strings/ja.json
@@ -412,7 +412,6 @@
"HeaderPassword": "パスワード",
"HeaderPasswordReset": "パスワードリセット",
"HeaderPaths": "パス",
- "HeaderPendingInvitations": "保留中の招待状",
"HeaderPeople": "人",
"HeaderPhotoAlbums": "フォトアルバム",
"HeaderPinCodeReset": "PINコードのリセット",
diff --git a/src/strings/kk.json b/src/strings/kk.json
index 5532af90f5..0757d71def 100644
--- a/src/strings/kk.json
+++ b/src/strings/kk.json
@@ -409,7 +409,6 @@
"HeaderPassword": "Paról",
"HeaderPasswordReset": "Paróldi ysyrý",
"HeaderPaths": "Joldar",
- "HeaderPendingInvitations": "Bógelis shaqyrýlar",
"HeaderPeople": "Adamdar",
"HeaderPhotoAlbums": "Fotoálbomdar",
"HeaderPinCodeReset": "PIN-kodty ysyrý",
diff --git a/src/strings/ko.json b/src/strings/ko.json
index 660b3d34a0..8e68c4fb48 100644
--- a/src/strings/ko.json
+++ b/src/strings/ko.json
@@ -195,7 +195,6 @@
"HeaderPassword": "비밀번호",
"HeaderPasswordReset": "비밀번호 재설정",
"HeaderPaths": "경로",
- "HeaderPendingInvitations": "초대 보류",
"HeaderPinCodeReset": "PIN 코드 초기화",
"HeaderPlayAll": "모두 재생",
"HeaderPlayback": "미디어 재생",
diff --git a/src/strings/lt-lt.json b/src/strings/lt-lt.json
index c8c2b6e448..af8962c474 100644
--- a/src/strings/lt-lt.json
+++ b/src/strings/lt-lt.json
@@ -985,7 +985,6 @@
"HeaderOnNow": "Gyvai dabar",
"HeaderOtherItems": "Kiti elementai",
"HeaderParentalRatings": "Amžiaus kategorijos",
- "HeaderPendingInvitations": "Laukiantys kvietimai",
"HeaderPeople": "Žmonės",
"HeaderPhotoAlbums": "Nuotraukų albumai",
"HeaderPinCodeReset": "Nustatyti PIN kodą iš naujo",
diff --git a/src/strings/lv.json b/src/strings/lv.json
index 18346bbda0..693d4e50cb 100644
--- a/src/strings/lv.json
+++ b/src/strings/lv.json
@@ -1112,7 +1112,6 @@
"LabelAirsBeforeEpisode": "Tiešraidē pirms epizodes:",
"LabelAirsAfterSeason": "Tiešraidē pēc sezonas:",
"HeaderSubtitleProfilesHelp": "Subtitru profili apraksta ierīces atbalstītos subtitru formātus.",
- "HeaderPendingInvitations": "Gaidošie Uzaicinājumi",
"HeaderKeepSeries": "Paturēt Sēriju",
"HeaderFavoritePlaylists": "Atskaņošanas Sarakstu Favorīti",
"ApiKeysCaption": "Saraksts ar pašlaik iespējotajām API atslēgām",
diff --git a/src/strings/nb.json b/src/strings/nb.json
index d729b0c025..96405b31e0 100644
--- a/src/strings/nb.json
+++ b/src/strings/nb.json
@@ -304,7 +304,6 @@
"HeaderPassword": "Passord",
"HeaderPasswordReset": "Tilbakestill passord",
"HeaderPaths": "Filbaner",
- "HeaderPendingInvitations": "Ventende invitasjoner",
"HeaderPeople": "Personer",
"HeaderPinCodeReset": "Tilbakestill PIN-kode",
"HeaderPlayAll": "Spill alle",
diff --git a/src/strings/nl.json b/src/strings/nl.json
index 6e3adba10f..c407f81680 100644
--- a/src/strings/nl.json
+++ b/src/strings/nl.json
@@ -372,7 +372,6 @@
"HeaderPassword": "Wachtwoord",
"HeaderPasswordReset": "Wachtwoord resetten",
"HeaderPaths": "Paden",
- "HeaderPendingInvitations": "Uitstaande uitnodigingen",
"HeaderPeople": "Personen",
"HeaderPhotoAlbums": "Foto-albums",
"HeaderPinCodeReset": "Reset Pincode",
diff --git a/src/strings/pl.json b/src/strings/pl.json
index 8ced01561c..9e21c5113d 100644
--- a/src/strings/pl.json
+++ b/src/strings/pl.json
@@ -398,7 +398,6 @@
"HeaderPassword": "Hasło",
"HeaderPasswordReset": "Czyszczenie hasła",
"HeaderPaths": "Foldery",
- "HeaderPendingInvitations": "Oczekujące Zaproszenia",
"HeaderPeople": "Osoby",
"HeaderPhotoAlbums": "Albumy fotografii",
"HeaderPinCodeReset": "Wyczyść kod PIN",
diff --git a/src/strings/pt-br.json b/src/strings/pt-br.json
index 1f3c160c12..c8690bd742 100644
--- a/src/strings/pt-br.json
+++ b/src/strings/pt-br.json
@@ -385,7 +385,6 @@
"HeaderPassword": "Senha",
"HeaderPasswordReset": "Redefinição de Senha",
"HeaderPaths": "Locais",
- "HeaderPendingInvitations": "Convites pendentes",
"HeaderPeople": "Pessoas",
"HeaderPhotoAlbums": "Álbuns de Fotos",
"HeaderPinCodeReset": "Redefinir Código Pin",
diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json
index b482189ffb..07b1f1aceb 100644
--- a/src/strings/pt-pt.json
+++ b/src/strings/pt-pt.json
@@ -192,7 +192,6 @@
"HeaderPassword": "Palavra-passe",
"HeaderPasswordReset": "Redefinição de Palavra-Passe",
"HeaderPaths": "Localizações",
- "HeaderPendingInvitations": "Convites Pendentes",
"HeaderPeople": "Pessoas",
"HeaderPinCodeReset": "Redefinir Código PIN",
"HeaderPlayAll": "Reproduzir Todos",
diff --git a/src/strings/pt.json b/src/strings/pt.json
index 9d6f3faf37..dba5a7ab52 100644
--- a/src/strings/pt.json
+++ b/src/strings/pt.json
@@ -568,7 +568,6 @@
"HeaderPinCodeReset": "Redefinir Código PIN",
"HeaderPhotoAlbums": "Álbuns de Fotografias",
"HeaderPeople": "Pessoas",
- "HeaderPendingInvitations": "Convites Pendentes",
"HeaderPaths": "Localizações",
"HeaderPasswordReset": "Redefinição de Palavra-Passe",
"HeaderPassword": "Palavra-passe",
diff --git a/src/strings/ro.json b/src/strings/ro.json
index 5ed9fda846..ff443fae68 100644
--- a/src/strings/ro.json
+++ b/src/strings/ro.json
@@ -476,7 +476,6 @@
"HeaderParentalRatings": "Evaluări parentale",
"HeaderPassword": "Parolă",
"HeaderPasswordReset": "Resetare Parolă",
- "HeaderPendingInvitations": "Invitații in așteptare",
"HeaderPeople": "Persoane",
"HeaderPhotoAlbums": "Albume Fotografii",
"HeaderPinCodeReset": "Resetare cod PIN",
diff --git a/src/strings/ru.json b/src/strings/ru.json
index 9212ee4fb4..29fb03210a 100644
--- a/src/strings/ru.json
+++ b/src/strings/ru.json
@@ -402,7 +402,6 @@
"HeaderPassword": "Пароль",
"HeaderPasswordReset": "Сброс пароля",
"HeaderPaths": "Пути",
- "HeaderPendingInvitations": "Отложенные приглашения",
"HeaderPeople": "Люди",
"HeaderPhotoAlbums": "Фотоальбомы",
"HeaderPinCodeReset": "Сброс PIN-кода",
diff --git a/src/strings/sk.json b/src/strings/sk.json
index a99d686523..52c1e21bb5 100644
--- a/src/strings/sk.json
+++ b/src/strings/sk.json
@@ -252,7 +252,6 @@
"HeaderPassword": "Heslo",
"HeaderPasswordReset": "Obnoviť heslo",
"HeaderPaths": "Cesty",
- "HeaderPendingInvitations": "Čakajúce pozvánky",
"HeaderPeople": "Ľudia",
"HeaderPhotoAlbums": "Albumy fotografií",
"HeaderPinCodeReset": "Obnoviť PIN kód",
diff --git a/src/strings/sl-si.json b/src/strings/sl-si.json
index b6059809be..ee28cbec81 100644
--- a/src/strings/sl-si.json
+++ b/src/strings/sl-si.json
@@ -332,7 +332,6 @@
"HeaderPinCodeReset": "Ponastavi PIN kodo",
"HeaderPhotoAlbums": "Foto albumi",
"HeaderPeople": "Osebe",
- "HeaderPendingInvitations": "Povabila na čakanju",
"HeaderPasswordReset": "Ponastavi geslo",
"HeaderPassword": "Geslo",
"HeaderParentalRatings": "Ocena za starše",
diff --git a/src/strings/sv.json b/src/strings/sv.json
index 621172f7ea..0ca152dcc5 100644
--- a/src/strings/sv.json
+++ b/src/strings/sv.json
@@ -363,7 +363,6 @@
"HeaderPassword": "Lösenord",
"HeaderPasswordReset": "Återställning av lösenordet",
"HeaderPaths": "Sökvägar",
- "HeaderPendingInvitations": "Väntande inbjudningar",
"HeaderPeople": "Personer",
"HeaderPhotoAlbums": "Fotoalbum",
"HeaderPinCodeReset": "Återställ pinkod",
diff --git a/src/strings/tr.json b/src/strings/tr.json
index 3e3c94d742..169a71cea8 100644
--- a/src/strings/tr.json
+++ b/src/strings/tr.json
@@ -582,7 +582,6 @@
"HeaderPinCodeReset": "Pin Kodunu Sıfırla",
"HeaderPhotoAlbums": "Fotoğraf Albümleri",
"HeaderPeople": "Kişiler",
- "HeaderPendingInvitations": "Bekleyen Davetiyeler",
"HeaderPasswordReset": "Şifre Sıfırlama",
"HeaderPassword": "Şifre",
"HeaderParentalRatings": "Ebeveyn Derecelendirmeleri",
diff --git a/src/strings/vi.json b/src/strings/vi.json
index a5b319a86f..4e51ce8d2d 100644
--- a/src/strings/vi.json
+++ b/src/strings/vi.json
@@ -443,7 +443,6 @@
"HeaderPinCodeReset": "Đặt Lại Mã PIN",
"HeaderPhotoAlbums": "Album Ảnh",
"HeaderPeople": "Nhân Vật",
- "HeaderPendingInvitations": "Những Lời Mời Đang Chờ",
"HeaderPaths": "Đường Dẫn",
"HeaderPasswordReset": "Đặt Lại Mật Khẩu",
"HeaderPassword": "Mật Khẩu",
diff --git a/src/strings/zh-cn.json b/src/strings/zh-cn.json
index 0b2767fda3..06acfddab5 100644
--- a/src/strings/zh-cn.json
+++ b/src/strings/zh-cn.json
@@ -367,7 +367,6 @@
"HeaderPassword": "密码",
"HeaderPasswordReset": "密码重置",
"HeaderPaths": "路径",
- "HeaderPendingInvitations": "等待邀请",
"HeaderPeople": "人物",
"HeaderPhotoAlbums": "相册",
"HeaderPinCodeReset": "重置PIN码",
diff --git a/src/strings/zh-tw.json b/src/strings/zh-tw.json
index 4c090dcf25..c58316f2ca 100644
--- a/src/strings/zh-tw.json
+++ b/src/strings/zh-tw.json
@@ -821,7 +821,6 @@
"ValueSpecialEpisodeName": "特典 - {0}",
"AuthProviderHelp": "選擇用於驗證使用者密碼的身份驗證提供者。",
"HeaderParentalRatings": "家長評級",
- "HeaderPendingInvitations": "等待邀請",
"HeaderProfile": "設定檔",
"HeaderProfileInformation": "設定檔信息",
"HeaderProfileServerSettingsHelp": "這些數值將控制 Jellyfin 伺服器如何呈現給設備。",
diff --git a/src/userprofiles.html b/src/userprofiles.html
index 98237645dd..0a72f40ed7 100644
--- a/src/userprofiles.html
+++ b/src/userprofiles.html
@@ -1,5 +1,4 @@
-
-
-
-
${HeaderPendingInvitations}
-
-
-
-