From dfbb7dfc1600daba28f64d84644eef0ffa1f0390 Mon Sep 17 00:00:00 2001 From: MrTimscampi Date: Sun, 19 Jul 2020 16:15:11 +0200 Subject: [PATCH] Remove dead code --- .eslintrc.js | 7 +- src/components/actionSheet/actionSheet.js | 2 - src/components/activitylog.js | 1 + src/components/appRouter.js | 12 +- src/components/apphost.js | 6 - .../collectionEditor/collectionEditor.js | 1 + src/components/dialog/dialog.js | 6 +- src/components/favoriteitems.js | 3 +- src/components/filtermenu/filtermenu.js | 33 ----- src/components/focusManager.js | 8 -- src/components/guide/guide.js | 10 +- .../homeScreenSettings/homeScreenSettings.js | 7 +- src/components/homesections/homesections.js | 23 ---- src/components/htmlMediaHelper.js | 27 ----- .../imageDownloader/imageDownloader.js | 1 - src/components/listview/listview.js | 2 - src/components/maintabsmanager.js | 15 --- src/components/mediainfo/mediainfo.js | 4 - src/components/multiSelect/multiSelect.js | 7 +- src/components/notifications/notifications.js | 6 +- src/components/playback/playbackmanager.js | 8 +- .../playback/playerSelectionMenu.js | 1 - src/components/playback/playersettingsmenu.js | 17 --- src/components/playerstats/playerstats.js | 16 +-- src/components/qualityOptions.js | 1 - .../recordingcreator/recordingeditor.js | 3 - .../recordingcreator/seriesrecordingeditor.js | 2 - src/components/remotecontrol/remotecontrol.js | 3 - src/components/sanitizeFilename.js | 1 + src/components/slideshow/slideshow.js | 6 - src/components/sortmenu/sortmenu.js | 9 -- .../subtitleeditor/subtitleeditor.js | 58 +-------- src/components/tabbedview/itemstab.js | 11 +- src/components/themeMediaPlayer.js | 14 +-- .../userdatabuttons/userdatabuttons.js | 16 --- src/components/viewManager/viewManager.js | 5 +- src/controllers/auth/selectserver.js | 5 - .../dashboard/plugins/available.js | 1 - .../dashboard/users/userprofilespage.js | 98 +-------------- src/controllers/favorites.js | 3 +- src/controllers/itemDetails/index.js | 1 + src/controllers/livetv/livetvrecordings.js | 1 - src/controllers/livetv/livetvschedule.js | 7 +- src/controllers/livetv/livetvseriestimers.js | 1 - src/controllers/movies/moviegenres.js | 1 - src/controllers/movies/moviesrecommended.js | 7 +- src/controllers/music/musicrecommended.js | 30 ++--- src/controllers/shows/tvgenres.js | 2 - src/controllers/shows/tvlatest.js | 4 +- src/controllers/shows/tvrecommended.js | 5 - src/controllers/shows/tvupcoming.js | 8 +- src/controllers/user/home.js | 3 - src/controllers/user/playback.js | 3 - src/elements/emby-collapse/emby-collapse.js | 10 +- .../emby-itemscontainer.js | 1 - .../emby-progressring/emby-progressring.js | 27 ++--- src/elements/emby-radio/emby-radio.js | 1 - .../emby-ratingbutton/emby-ratingbutton.js | 3 - .../emby-scrollbuttons/emby-scrollbuttons.js | 2 +- src/elements/emby-slider/emby-slider.js | 3 +- src/elements/emby-tabs/emby-tabs.js | 10 -- src/elements/emby-textarea/emby-textarea.js | 1 - src/legacy/focusPreventScroll.js | 1 + src/libraries/scroller.js | 10 +- src/plugins/experimentalWarnings/plugin.js | 10 +- src/plugins/htmlAudioPlayer/plugin.js | 2 - src/plugins/htmlVideoPlayer/plugin.js | 114 +----------------- src/plugins/logoScreensaver/plugin.js | 19 --- src/scripts/browser.js | 4 - src/scripts/imagehelper.js | 3 +- src/scripts/libraryMenu.js | 5 - src/scripts/livetvcomponents.js | 17 ++- src/scripts/site.js | 16 +-- src/strings/ar.json | 1 - src/strings/bg-bg.json | 1 - src/strings/ca.json | 1 - src/strings/cs.json | 1 - src/strings/da.json | 1 - src/strings/de.json | 1 - src/strings/el.json | 1 - src/strings/en-gb.json | 1 - src/strings/en-us.json | 1 - src/strings/es-ar.json | 1 - src/strings/es-mx.json | 1 - src/strings/es.json | 1 - src/strings/es_419.json | 1 - src/strings/fa.json | 1 - src/strings/fi.json | 1 - src/strings/fr.json | 1 - src/strings/he.json | 1 - src/strings/hr.json | 1 - src/strings/hu.json | 1 - src/strings/it.json | 1 - src/strings/ja.json | 1 - src/strings/kk.json | 1 - src/strings/ko.json | 1 - src/strings/lt-lt.json | 1 - src/strings/lv.json | 1 - src/strings/nb.json | 1 - src/strings/nl.json | 1 - src/strings/pl.json | 1 - src/strings/pt-br.json | 1 - src/strings/pt-pt.json | 1 - src/strings/pt.json | 1 - src/strings/ro.json | 1 - src/strings/ru.json | 1 - src/strings/sk.json | 1 - src/strings/sl-si.json | 1 - src/strings/sv.json | 1 - src/strings/tr.json | 1 - src/strings/vi.json | 1 - src/strings/zh-cn.json | 1 - src/strings/zh-tw.json | 1 - src/userprofiles.html | 8 -- 114 files changed, 98 insertions(+), 741 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index baf6d0e084..d9080d1ac4 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -39,6 +39,8 @@ module.exports = { 'no-multi-spaces': ['error'], 'no-multiple-empty-lines': ['error', { 'max': 1 }], 'no-trailing-spaces': ['error'], + 'no-unused-expressions': ['error', { 'allowShortCircuit': true, 'allowTernary': true, 'allowTaggedTemplates': true }], + "no-unused-vars": ["error", { "vars": "all", "args": "none", "ignoreRestSiblings": true }], 'one-var': ['error', 'never'], 'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }], 'semi': ['error'], @@ -98,9 +100,8 @@ module.exports = { }, rules: { // TODO: Fix warnings and remove these rules - 'no-redeclare': ['warn'], - 'no-unused-vars': ['warn'], - 'no-useless-escape': ['warn'], + 'no-redeclare': ['off'], + 'no-useless-escape': ['off'], // TODO: Remove after ES6 migration is complete 'import/no-unresolved': ['off'] }, diff --git a/src/components/actionSheet/actionSheet.js b/src/components/actionSheet/actionSheet.js index a68d6a6acd..3f772250e1 100644 --- a/src/components/actionSheet/actionSheet.js +++ b/src/components/actionSheet/actionSheet.js @@ -255,8 +255,6 @@ export function show(options) { }); } - // Seeing an issue in some non-chrome browsers where this is requiring a double click - //var eventName = browser.firefox ? 'mousedown' : 'click'; let selectedId; let timeout; diff --git a/src/components/activitylog.js b/src/components/activitylog.js index 2d5a21756f..623998a402 100644 --- a/src/components/activitylog.js +++ b/src/components/activitylog.js @@ -69,6 +69,7 @@ import 'listViewStyle'; const minDate = new Date(); const hasUserId = 'false' !== elem.getAttribute('data-useractivity'); + // TODO: Use date-fns if (hasUserId) { minDate.setTime(minDate.getTime() - 24 * 60 * 60 * 1000); // one day back } else { diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 8054279c92..8410e9bd67 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -153,15 +153,10 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro }; if (!isBackNav) { - // Don't force a new view for home due to the back menu - //if (route.type !== 'home') { onNewViewNeeded(); return; - //} } viewManager.tryRestoreView(currentRequest, function () { - - // done currentRouteInfo = { route: route, path: ctx.path @@ -309,8 +304,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro page({ click: options.click !== false, - hashbang: options.hashbang !== false, - enableHistory: enableHistory() + hashbang: options.hashbang !== false }); }).catch().then(function() { loading.hide(); @@ -319,10 +313,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro function enableHistory() { - //if (browser.edgeUwp) { - // return false; - //} - // shows status bar on navigation if (browser.xboxOne) { return false; diff --git a/src/components/apphost.js b/src/components/apphost.js index f200b9a642..d447c7ea45 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -257,12 +257,6 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g features.push('fullscreenchange'); } - if (browser.chrome || browser.edge && !browser.slow) { - if (!browser.noAnimation && !browser.edgeUwp && !browser.xboxOne) { - features.push('imageanalysis'); - } - } - if (browser.tv || browser.xboxOne || browser.ps4 || browser.mobile) { features.push('physicalvolumecontrol'); } diff --git a/src/components/collectionEditor/collectionEditor.js b/src/components/collectionEditor/collectionEditor.js index 18cc0d311f..42fd26fc2b 100644 --- a/src/components/collectionEditor/collectionEditor.js +++ b/src/components/collectionEditor/collectionEditor.js @@ -249,6 +249,7 @@ import 'flexStyles'; html += ''; if (appHost.supports('externallinks')) { + // TODO: Change to Jellyfin docs html += `${globalize.translate('Help')}`; } diff --git a/src/components/dialog/dialog.js b/src/components/dialog/dialog.js index 937e96d297..5dd6017d8f 100644 --- a/src/components/dialog/dialog.js +++ b/src/components/dialog/dialog.js @@ -45,9 +45,9 @@ import 'flexStyles'; dlg.classList.add('dialog-fullscreen-lowres'); } - //dlg.querySelector('.btnCancel').addEventListener('click', function (e) { - // dialogHelper.close(dlg); - //}); + dlg.querySelector('.btnCancel').addEventListener('click', function (e) { + dialogHelper.close(dlg); + }); if (options.title) { dlg.querySelector('.formDialogHeaderTitle').innerHTML = options.title || ''; diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js index 38715043e7..358bf04112 100644 --- a/src/components/favoriteitems.js +++ b/src/components/favoriteitems.js @@ -154,8 +154,7 @@ define(['loading', 'libraryBrowser', 'cardBuilder', 'dom', 'apphost', 'imageLoad html += '
'; } - var supportsImageAnalysis = appHost.supports('imageanalysis'); - var cardLayout = (appHost.preferVisualCards || supportsImageAnalysis) && section.autoCardLayout && section.showTitle; + var cardLayout = appHost.preferVisualCards && section.autoCardLayout && section.showTitle; cardLayout = false; html += cardBuilder.getCardsHtml(result.Items, { preferThumb: section.preferThumb, diff --git a/src/components/filtermenu/filtermenu.js b/src/components/filtermenu/filtermenu.js index 936e2b0407..a757e3ee19 100644 --- a/src/components/filtermenu/filtermenu.js +++ b/src/components/filtermenu/filtermenu.js @@ -39,34 +39,11 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost', } function renderDynamicFilters(context, result, options) { - - // If there's a huge number of these they will be really show to render - //if (result.Tags) { - // result.Tags.length = Math.min(result.Tags.length, 50); - //} - renderOptions(context, '.genreFilters', 'chkGenreFilter', result.Genres, function (i) { - // Switching from | to , var delimeter = (options.settings.GenreIds || '').indexOf('|') === -1 ? ',' : '|'; return (delimeter + (options.settings.GenreIds || '') + delimeter).indexOf(delimeter + i.Id + 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, '.yearFilters', 'chkYearFilter', result.Years, function (i) { - - // var delimeter = ','; - // return (delimeter + (query.Years || '') + delimeter).indexOf(delimeter + i + delimeter) != -1; - //}); } function loadDynamicFilters(context, options) { @@ -81,11 +58,7 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost', }); apiClient.getFilters(filterMenuOptions).then(function (result) { - renderDynamicFilters(context, result, options); - }, function () { - - // older server }); } @@ -314,13 +287,7 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost', var submitted; dlg.querySelector('form').addEventListener('change', function () { - submitted = true; - //if (options.onChange) { - // saveValues(dlg, options.settings, options.settingsKey); - // options.onChange(); - //} - }, true); dialogHelper.open(dlg).then(function () { diff --git a/src/components/focusManager.js b/src/components/focusManager.js index f2022cc445..a5dcad38ca 100644 --- a/src/components/focusManager.js +++ b/src/components/focusManager.js @@ -272,14 +272,10 @@ define(['dom', 'scrollManager'], function (dom, scrollManager) { var rect = getOffset(activeElement); // Get elements and work out x/y points - var cache = []; var point1x = parseFloat(rect.left) || 0; var point1y = parseFloat(rect.top) || 0; var point2x = parseFloat(point1x + rect.width - 1) || point1x; var point2y = parseFloat(point1y + rect.height - 1) || point1y; - // Shortcuts to help with compression - var min = Math.min; - var max = Math.max; var sourceMidX = rect.left + (rect.width / 2); var sourceMidY = rect.top + (rect.height / 2); @@ -301,10 +297,6 @@ define(['dom', 'scrollManager'], function (dom, scrollManager) { continue; } - //if (!isCurrentlyFocusableInternal(curr)) { - // continue; - //} - var elementRect = getOffset(curr); // not currently visible diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js index bb4a36497c..9fd78fdf49 100644 --- a/src/components/guide/guide.js +++ b/src/components/guide/guide.js @@ -43,11 +43,9 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', if (guideProgramName) { if (pctOfWidth > 0 && pctOfWidth <= 100) { - //guideProgramName.style.marginLeft = pctOfWidth + '%'; guideProgramName.style.transform = 'translateX(' + pctOfWidth + '%)'; caret.classList.remove('hide'); } else { - //guideProgramName.style.marginLeft = '0'; guideProgramName.style.transform = 'none'; caret.classList.add('hide'); } @@ -121,7 +119,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', var cellCurationMinutes = 30; var cellDurationMs = cellCurationMinutes * 60 * 1000; var msPerDay = 86400000; - var totalRendererdMs = msPerDay; var currentDate; var currentStartIndex = 0; @@ -577,7 +574,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', html += '
'; if (program.IsHD && options.showHdIcon) { - //html += ''; if (layoutManager.tv) { html += '
HD
'; } else { @@ -866,6 +862,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', var dateTabsHtml = ''; var tabIndex = 0; + // TODO: Use date-fns var date = new Date(); if (currentDate) { @@ -873,7 +870,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', } date.setHours(nowHours, 0, 0, 0); - //start.setHours(0, 0, 0, 0); var startTimeOfDayMs = (start.getHours() * 60 * 60 * 1000); startTimeOfDayMs += start.getMinutes() * 60 * 1000; @@ -951,8 +947,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', var focusableElements; var newRow; - var scrollX = false; - switch (e.detail.command) { case 'up': @@ -1018,7 +1012,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', focusManager.moveLeft(target, { container: container }); - scrollX = true; break; case 'right': container = programCell ? dom.parentWithClass(programCell, 'channelPrograms') : null; @@ -1027,7 +1020,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager', focusManager.moveRight(target, { container: container }); - scrollX = true; break; default: return; diff --git a/src/components/homeScreenSettings/homeScreenSettings.js b/src/components/homeScreenSettings/homeScreenSettings.js index 6d6c26fce4..0ac6f7041d 100644 --- a/src/components/homeScreenSettings/homeScreenSettings.js +++ b/src/components/homeScreenSettings/homeScreenSettings.js @@ -148,9 +148,7 @@ import 'emby-checkbox'; let html = ''; - let index = 0; - - html += result.Items.map(view => { + html += result.Items.map((view) => { let currentHtml = ''; @@ -171,7 +169,6 @@ import 'emby-checkbox'; currentHtml += ''; - index++; return currentHtml; }).join(''); @@ -305,8 +302,6 @@ import 'emby-checkbox'; const viewItem = dom.parentWithClass(target, 'viewItem'); if (viewItem) { - const ul = dom.parentWithClass(viewItem, 'paperList'); - if (target.classList.contains('btnViewItemDown')) { const next = viewItem.nextSibling; diff --git a/src/components/homesections/homesections.js b/src/components/homesections/homesections.js index 010b6b1a78..333b87433e 100644 --- a/src/components/homesections/homesections.js +++ b/src/components/homesections/homesections.js @@ -1,13 +1,9 @@ import connectionManager from 'connectionManager'; import cardBuilder from 'cardBuilder'; -import appSettings from 'appSettings'; import dom from 'dom'; -import appHost from 'apphost'; import layoutManager from 'layoutManager'; import imageLoader from 'imageLoader'; import globalize from 'globalize'; -import itemShortcuts from 'itemShortcuts'; -import itemHelper from 'itemHelper'; import appRouter from 'appRouter'; import imageHelper from 'scripts/imagehelper'; import 'paper-icon-button-light'; @@ -215,14 +211,6 @@ import 'css!./homesections'; imageLoader.lazyChildren(elem); } - /** - * Returns a random integer between min (inclusive) and max (inclusive) - * Using Math.round() will give you a non-uniform distribution! - */ - function getRandomInt(min, max) { - return Math.floor(Math.random() * (max - min + 1)) + min; - } - function getFetchLatestItemsFn(serverId, parentId, collectionType) { return function () { const apiClient = connectionManager.getApiClient(serverId); @@ -347,14 +335,6 @@ import 'css!./homesections'; } } - function getRequirePromise(deps) { - return new Promise(function (resolve, reject) { - import(deps).then(() => { - return resolve; - }); - }); - } - export function loadLibraryTiles(elem, apiClient, user, userSettings, shape, userViews, allSections) { let html = ''; if (userViews.length) { @@ -549,7 +529,6 @@ import 'css!./homesections'; } function getOnNowItemsHtml(items) { - const cardLayout = false; return cardBuilder.getCardsHtml({ items: items, preferThumb: 'auto', @@ -576,7 +555,6 @@ import 'css!./homesections'; return Promise.resolve(); } - const userId = user.Id; return apiClient.getLiveTvRecommendedPrograms({ userId: apiClient.getCurrentUserId(), IsAiring: true, @@ -766,7 +744,6 @@ import 'css!./homesections'; function getLatestRecordingItemsHtml(activeRecordingsOnly) { return function (items) { - const cardLayout = false; return cardBuilder.getCardsHtml({ items: items, shape: enableScrollX() ? 'autooverflow' : 'auto', diff --git a/src/components/htmlMediaHelper.js b/src/components/htmlMediaHelper.js index 062c80efa6..fd740d98e5 100644 --- a/src/components/htmlMediaHelper.js +++ b/src/components/htmlMediaHelper.js @@ -33,32 +33,6 @@ import events from 'events'; return false; } - export function enableHlsShakaPlayer(item, mediaSource, mediaType) { - /* eslint-disable-next-line compat/compat */ - if (!!window.MediaSource && !!MediaSource.isTypeSupported) { - - if (canPlayNativeHls()) { - - if (browser.edge && mediaType === 'Video') { - return true; - } - - // simple playback should use the native support - if (mediaSource.RunTimeTicks) { - //if (!browser.edge) { - //return false; - //} - } - - //return false; - } - - return true; - } - - return false; - } - export function enableHlsJsPlayer(runTimeTicks, mediaType) { if (window.MediaSource == null) { @@ -170,7 +144,6 @@ import events from 'events'; var seconds = (ticks || 0) / 10000000; if (seconds) { - var src = (instance.currentSrc() || '').toLowerCase(); // Appending #t=xxx to the query string doesn't seem to work with HLS // For plain video files, not all browsers support it either diff --git a/src/components/imageDownloader/imageDownloader.js b/src/components/imageDownloader/imageDownloader.js index fbe98c532f..6d5b370bb0 100644 --- a/src/components/imageDownloader/imageDownloader.js +++ b/src/components/imageDownloader/imageDownloader.js @@ -270,7 +270,6 @@ define(['dom', 'loading', 'apphost', 'dialogHelper', 'connectionManager', 'image // end footer html += ''; - //html += ''; html += ''; diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js index 922b6abc20..5193e6d1fb 100644 --- a/src/components/listview/listview.js +++ b/src/components/listview/listview.js @@ -270,8 +270,6 @@ import 'emby-playstatebutton'; } if (!clickEntireItem && options.dragHandle) { - //html += ''; - // Firefox and Edge are not allowing the button to be draggable html += ''; } diff --git a/src/components/maintabsmanager.js b/src/components/maintabsmanager.js index 0d31c2958a..79dd883fcd 100644 --- a/src/components/maintabsmanager.js +++ b/src/components/maintabsmanager.js @@ -16,9 +16,6 @@ import 'emby-button'; return false; } - function getTabsContainerElem() { - } - function ensureElements(enableInFooter) { if (enableInFooter) { @@ -27,7 +24,6 @@ import 'emby-button'; footerTabsContainer.classList.add('footerTabs'); footerTabsContainer.classList.add('sectionTabs'); footerTabsContainer.classList.add('hide'); - //appFooter.add(footerTabsContainer); } } @@ -75,7 +71,6 @@ import 'emby-button'; } // implement without hammer - const pageCount = getTabContainersFn().length; const onSwipeLeft = function (e, target) { if (allowSwipe(target) && view.contains(target)) { tabsElem.selectNext(); @@ -193,12 +188,6 @@ import 'emby-button'; const newPanel = tabContainers[e.detail.selectedTabIndex]; - //if (e.detail.previousIndex != null && e.detail.previousIndex != e.detail.selectedTabIndex) { - // if (newPanel.animate && (animateTabs || []).indexOf(e.detail.selectedTabIndex) != -1) { - // fadeInRight(newPanel); - // } - //} - if (newPanel) { newPanel.classList.add('is-active'); } @@ -221,10 +210,6 @@ import 'emby-button'; } } - //if (enableSwipe !== false) { - // libraryBrowser.configureSwipeTabs(ownerpage, tabs); - //} - return { tabsContainer: tabsContainerElem, tabs: tabsContainerElem.querySelector('[is="emby-tabs"]'), diff --git a/src/components/mediainfo/mediainfo.js b/src/components/mediainfo/mediainfo.js index 71acc5bbce..b55b58e63c 100644 --- a/src/components/mediainfo/mediainfo.js +++ b/src/components/mediainfo/mediainfo.js @@ -568,10 +568,6 @@ import 'emby-button'; }); } - //if (mediaSource.Container) { - // html += '
' + mediaSource.Container + '
'; - //} - const resolutionText = getResolutionText(videoStream); if (resolutionText) { list.push({ diff --git a/src/components/multiSelect/multiSelect.js b/src/components/multiSelect/multiSelect.js index 87696909af..3c0495b887 100644 --- a/src/components/multiSelect/multiSelect.js +++ b/src/components/multiSelect/multiSelect.js @@ -580,10 +580,9 @@ import 'css!./multiSelect'; 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, 'touchcancel', onTouchEnd, { + passive: true + }); dom.removeEventListener(element, 'mousedown', onMouseDown, { passive: true }); diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js index c8480e4f15..556d380625 100644 --- a/src/components/notifications/notifications.js +++ b/src/components/notifications/notifications.js @@ -101,11 +101,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir body: body, vibrate: true, tag: 'newItem' + item.Id, - data: { - //options: { - // url: LibraryBrowser.getHref(item) - //} - } + data: {} }; var imageTags = item.ImageTags || {}; diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index fe3ff11250..8bedcb973e 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -777,7 +777,6 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla var players = []; var currentTargetInfo; - var lastLocalPlayer; var currentPairingId = null; this._playNextAfterEnded = true; @@ -1031,10 +1030,6 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla console.debug('Active player: ' + JSON.stringify(targetInfo)); } - if (player && player.isLocalPlayer) { - lastLocalPlayer = player; - } - if (previousPlayer) { self.endPlayerUpdates(previousPlayer); } @@ -4076,8 +4071,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla this.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index), player); break; case 'SetMaxStreamingBitrate': - // todo - //this.setMaxStreamingBitrate(parseInt(cmd.Arguments.Bitrate), player); + this.setMaxStreamingBitrate(parseInt(cmd.Arguments.Bitrate), player); break; case 'ToggleFullscreen': this.toggleFullscreen(player); diff --git a/src/components/playback/playerSelectionMenu.js b/src/components/playback/playerSelectionMenu.js index 298ae0b07e..aa0bba533c 100644 --- a/src/components/playback/playerSelectionMenu.js +++ b/src/components/playback/playerSelectionMenu.js @@ -182,7 +182,6 @@ function disconnectFromPlayer(currentDeviceName) { dialog({ buttons: menuItems, - //positionTo: positionTo, text: globalize.translate('ConfirmEndPlayerSession', currentDeviceName) }).then(function (id) { diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js index 33d252c52a..88147af6cd 100644 --- a/src/components/playback/playersettingsmenu.js +++ b/src/components/playback/playersettingsmenu.js @@ -88,8 +88,6 @@ function showRepeatModeMenu(player, btn) { function getQualitySecondaryText(player) { var state = playbackManager.getPlayerState(player); - var isAutoEnabled = playbackManager.enableAutomaticBitrateDetection(player); - var currentMaxBitrate = playbackManager.getMaxStreamingBitrate(player); var videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) { return stream.Type === 'Video'; @@ -106,20 +104,6 @@ function getQualitySecondaryText(player) { enableAuto: true }); - var menuItems = options.map(function (o) { - var opt = { - name: o.name, - id: o.bitrate, - asideText: o.secondaryText - }; - - if (o.selected) { - opt.selected = true; - } - - return opt; - }); - var selectedOption = options.filter(function (o) { return o.selected; }); @@ -168,7 +152,6 @@ function showAspectRatioMenu(player, btn) { function showWithUser(options, player, user) { var supportedCommands = playbackManager.getSupportedCommands(player); - var mediaType = options.mediaType; var menuItems = []; if (supportedCommands.indexOf('SetAspectRatio') !== -1) { diff --git a/src/components/playerstats/playerstats.js b/src/components/playerstats/playerstats.js index fce37c1507..2aac91f0d9 100644 --- a/src/components/playerstats/playerstats.js +++ b/src/components/playerstats/playerstats.js @@ -132,7 +132,6 @@ import 'css!./playerstats'; let audioChannels; if (session.TranscodingInfo) { - videoCodec = session.TranscodingInfo.VideoCodec; audioCodec = session.TranscodingInfo.AudioCodec; totalBitrate = session.TranscodingInfo.Bitrate; @@ -140,7 +139,6 @@ import 'css!./playerstats'; } if (videoCodec) { - sessionStats.push({ label: globalize.translate('LabelVideoCodec'), value: session.TranscodingInfo.IsVideoDirect ? (videoCodec.toUpperCase() + ' (direct)') : videoCodec.toUpperCase() @@ -148,20 +146,18 @@ import 'css!./playerstats'; } if (audioCodec) { - sessionStats.push({ label: globalize.translate('LabelAudioCodec'), value: session.TranscodingInfo.IsAudioDirect ? (audioCodec.toUpperCase() + ' (direct)') : audioCodec.toUpperCase() }); } - //if (audioChannels) { - - // sessionStats.push({ - // label: 'Audio channels:', - // value: audioChannels - // }); - //} + if (audioChannels) { + sessionStats.push({ + label: globalize.translate('LabelAudioChannels'), + value: audioChannels + }); + } if (displayPlayMethod === 'Transcode') { if (totalBitrate) { diff --git a/src/components/qualityOptions.js b/src/components/qualityOptions.js index 221e13d4ef..c831bbe9b4 100644 --- a/src/components/qualityOptions.js +++ b/src/components/qualityOptions.js @@ -14,7 +14,6 @@ define(['globalize'], function (globalize) { } var maxAllowedWidth = videoWidth || 4096; - //var maxAllowedHeight = videoHeight || 2304; var qualityOptions = []; diff --git a/src/components/recordingcreator/recordingeditor.js b/src/components/recordingcreator/recordingeditor.js index c3f40fcddb..02e8a61b90 100644 --- a/src/components/recordingcreator/recordingeditor.js +++ b/src/components/recordingcreator/recordingeditor.js @@ -19,9 +19,6 @@ define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'c } function renderTimer(context, item, apiClient) { - - var program = item.ProgramInfo || {}; - context.querySelector('#txtPrePaddingMinutes').value = item.PrePaddingSeconds / 60; context.querySelector('#txtPostPaddingMinutes').value = item.PostPaddingSeconds / 60; diff --git a/src/components/recordingcreator/seriesrecordingeditor.js b/src/components/recordingcreator/seriesrecordingeditor.js index a101ce53ec..df786df48c 100644 --- a/src/components/recordingcreator/seriesrecordingeditor.js +++ b/src/components/recordingcreator/seriesrecordingeditor.js @@ -20,8 +20,6 @@ define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'c function renderTimer(context, item, apiClient) { - var program = item.ProgramInfo || {}; - context.querySelector('#txtPrePaddingMinutes').value = item.PrePaddingSeconds / 60; context.querySelector('#txtPostPaddingMinutes').value = item.PostPaddingSeconds / 60; diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js index 874137155c..2a025b497d 100644 --- a/src/components/remotecontrol/remotecontrol.js +++ b/src/components/remotecontrol/remotecontrol.js @@ -222,7 +222,6 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL } function setImageUrl(context, state, url) { - currentImgUrl = url; var item = state.NowPlayingItem; var imgContainer = context.querySelector('.nowPlayingPageImageContainer'); @@ -257,7 +256,6 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL } } - var currentImgUrl; return function () { function toggleRepeat() { switch (playbackManager.getRepeatMode()) { @@ -909,7 +907,6 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL } function onShow(context, tab) { - currentImgUrl = null; bindToPlayer(context, playbackManager.getCurrentPlayer()); } diff --git a/src/components/sanitizeFilename.js b/src/components/sanitizeFilename.js index de7b1a0782..ffea2a0a6c 100644 --- a/src/components/sanitizeFilename.js +++ b/src/components/sanitizeFilename.js @@ -1,3 +1,4 @@ +// TODO: Check if needed and move to external dependency // From https://github.com/parshap/node-sanitize-filename const illegalRe = /[\/\?<>\\:\*\|":]/g; diff --git a/src/components/slideshow/slideshow.js b/src/components/slideshow/slideshow.js index f7026a007e..6a9e4a4cd3 100644 --- a/src/components/slideshow/slideshow.js +++ b/src/components/slideshow/slideshow.js @@ -130,8 +130,6 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f var hideTimeout; /** Last coordinates of the mouse pointer. */ var lastMouseMoveData; - /** Visibility status of the OSD. */ - var _osdOpen = false; // Use autoplay on Chromecast since it is non-interactive. if (browser.chromecast) options.interactive = false; @@ -363,8 +361,6 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f function getSwiperSlideHtmlFromItem(item) { return getSwiperSlideHtmlFromSlide({ originalImage: getImgUrl(item, currentOptions.user), - //title: item.Name, - //description: item.Overview Id: item.Id, ServerId: item.ServerId }); @@ -545,7 +541,6 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f return; } - _osdOpen = true; element.classList.remove('hide'); var onFinish = function () { @@ -578,7 +573,6 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f var onFinish = function () { element.classList.add('hide'); - _osdOpen = false; }; if (!element.animate) { diff --git a/src/components/sortmenu/sortmenu.js b/src/components/sortmenu/sortmenu.js index dbf7ef1a7f..82e47a2cb9 100644 --- a/src/components/sortmenu/sortmenu.js +++ b/src/components/sortmenu/sortmenu.js @@ -90,13 +90,7 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'layoutMana var submitted; dlg.querySelector('form').addEventListener('change', function () { - submitted = true; - //if (options.onChange) { - // saveValues(dlg, options.settings, options.settingsKey); - // options.onChange(); - //} - }, true); dialogHelper.open(dlg).then(function () { @@ -106,11 +100,8 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'layoutMana } if (submitted) { - - //if (!options.onChange) { saveValues(dlg, options.settings, options.settingsKey); resolve(); - //} return; } diff --git a/src/components/subtitleeditor/subtitleeditor.js b/src/components/subtitleeditor/subtitleeditor.js index 9c0992c53c..89b46fed2d 100644 --- a/src/components/subtitleeditor/subtitleeditor.js +++ b/src/components/subtitleeditor/subtitleeditor.js @@ -4,43 +4,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings', var currentItem; var hasChanges; - function showLocalSubtitles(context, index) { - - loading.show(); - - var subtitleContent = context.querySelector('.subtitleContent'); - subtitleContent.innerHTML = ''; - - var apiClient = connectionManager.getApiClient(currentItem.ServerId); - var url = 'Videos/' + currentItem.Id + '/Subtitles/' + index; - - apiClient.ajax({ - - type: 'GET', - url: url - - }).then(function (result) { - - subtitleContent.innerHTML = result; - - loading.hide(); - }); - } - - function showRemoteSubtitles(context, id) { - - loading.show(); - - var url = 'Providers/Subtitles/Subtitles/' + id; - - ApiClient.get(ApiClient.getUrl(url)).then(function (result) { - - // show result - - loading.hide(); - }); - } - function downloadRemoteSubtitles(context, id) { var url = 'Items/' + currentItem.Id + '/RemoteSearch/Subtitles/' + id; @@ -170,14 +133,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings', elem.classList.add('hide'); } elem.innerHTML = html; - - //('.btnViewSubtitles', elem).on('click', function () { - - // var index = this.getAttribute('data-index'); - - // showLocalSubtitles(context, index); - - //}); } function fillLanguages(context, apiClient, languages) { @@ -250,8 +205,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings', html += '
'; - //html += ''; - html += '
' + (result.Name) + '
'; html += '
'; if (!layoutManager.tv) { @@ -290,12 +241,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings', var elem = context.querySelector('.subtitleResults'); elem.innerHTML = html; - //('.btnViewSubtitle', elem).on('click', function () { - - // var id = this.getAttribute('data-subid'); - // showRemoteSubtitles(context, id); - //}); - loading.hide(); } @@ -369,11 +314,10 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings', } function onSubtitleResultsClick(e) { - - var btnOptions = dom.parentWithClass(e.target, 'btnOptions'); var subtitleId; var context; + var btnOptions = dom.parentWithClass(e.target, 'btnOptions'); if (btnOptions) { subtitleId = btnOptions.getAttribute('data-subid'); context = dom.parentWithClass(btnOptions, 'subtitleEditorDialog'); diff --git a/src/components/tabbedview/itemstab.js b/src/components/tabbedview/itemstab.js index d40faef5dc..81f86d5808 100644 --- a/src/components/tabbedview/itemstab.js +++ b/src/components/tabbedview/itemstab.js @@ -286,9 +286,6 @@ define(['playbackManager', 'userSettings', 'alphaPicker', 'alphaNumericShortcuts bindAll(view.querySelectorAll('.btnShuffle'), 'click', shuffle.bind(this)); } - function getSettingValue(key, defaultValue) { - } - ItemsTab.prototype.getViewSettings = function () { var basekey = this.getSettingsKey(); @@ -507,16 +504,10 @@ define(['playbackManager', 'userSettings', 'alphaPicker', 'alphaNumericShortcuts }; ItemsTab.prototype.getFilterMenuOptions = function () { - - var params = this.params; - - return { - - }; + return {}; }; ItemsTab.prototype.getItemTypes = function () { - return []; }; diff --git a/src/components/themeMediaPlayer.js b/src/components/themeMediaPlayer.js index 94012ba823..eafe48230c 100644 --- a/src/components/themeMediaPlayer.js +++ b/src/components/themeMediaPlayer.js @@ -100,12 +100,12 @@ define(['playbackManager', 'userSettings', 'connectionManager'], function (playb }, true); - //Events.on(playbackManager, 'playbackstart', function (e, player) { - // var item = playbackManager.currentItem(player); - // // User played something manually - // if (currentThemeIds.indexOf(item.Id) == -1) { - // currentOwnerId = null; - // } - //}); + Events.on(playbackManager, 'playbackstart', function (e, player) { + var item = playbackManager.currentItem(player); + // User played something manually + if (currentThemeIds.indexOf(item.Id) == -1) { + currentOwnerId = null; + } + }); }); diff --git a/src/components/userdatabuttons/userdatabuttons.js b/src/components/userdatabuttons/userdatabuttons.js index 86b9902133..014655835b 100644 --- a/src/components/userdatabuttons/userdatabuttons.js +++ b/src/components/userdatabuttons/userdatabuttons.js @@ -112,22 +112,6 @@ define(['connectionManager', 'globalize', 'dom', 'itemHelper', 'paper-icon-butto } } - //var tooltipLike = globalize.translate('Like'); - //var tooltipDislike = globalize.translate('Dislike'); - - //if (typeof userData.Likes == "undefined") { - // html += getUserDataButtonHtml('markDislike', itemId, serverId, btnCssClass + ' btnUserData btnDislike', 'thumb-down', tooltipDislike); - // html += getUserDataButtonHtml('markLike', itemId, serverId, btnCssClass + ' btnUserData btnLike', 'thumb-up', tooltipLike); - //} - //else if (userData.Likes) { - // html += getUserDataButtonHtml('markDislike', itemId, serverId, btnCssClass + ' btnUserData btnDislike', 'thumb-down', tooltipDislike); - // html += getUserDataButtonHtml('markLike', itemId, serverId, btnCssClass + ' btnUserData btnLike btnUserDataOn', 'thumb-up', tooltipLike); - //} - //else { - // html += getUserDataButtonHtml('markDislike', itemId, serverId, btnCssClass + ' btnUserData btnDislike btnUserDataOn', 'thumb-down', tooltipDislike); - // html += getUserDataButtonHtml('markLike', itemId, serverId, btnCssClass + ' btnUserData btnLike', 'thumb-up', tooltipLike); - //} - var tooltipFavorite = globalize.translate('Favorite'); if (userData.IsFavorite) { diff --git a/src/components/viewManager/viewManager.js b/src/components/viewManager/viewManager.js index 8e17264f9f..97aaa7ddd7 100644 --- a/src/components/viewManager/viewManager.js +++ b/src/components/viewManager/viewManager.js @@ -21,11 +21,10 @@ define(['viewContainer', 'focusManager', 'queryString', 'layoutManager'], functi if (!newView.initComplete) { newView.initComplete = true; - var controller; if (typeof options.controllerFactory === 'function') { - controller = new options.controllerFactory(newView, eventDetail.detail.params); + new options.controllerFactory(newView, eventDetail.detail.params); } else if (options.controllerFactory && typeof options.controllerFactory.default === 'function') { - controller = new options.controllerFactory.default(newView, eventDetail.detail.params); + new options.controllerFactory.default(newView, eventDetail.detail.params); } if (!options.controllerFactory || dispatchPageEvents) { diff --git a/src/controllers/auth/selectserver.js b/src/controllers/auth/selectserver.js index 3e36b74859..cd2d48372d 100644 --- a/src/controllers/auth/selectserver.js +++ b/src/controllers/auth/selectserver.js @@ -95,11 +95,6 @@ import 'emby-button'; } } - function showGeneralError() { - loading.hide(); - alertText(globalize.translate('DefaultErrorMessage')); - } - function alertText(text) { alertTextWithOptions({ text: text diff --git a/src/controllers/dashboard/plugins/available.js b/src/controllers/dashboard/plugins/available.js index 37df8801b5..1f202d6ff6 100644 --- a/src/controllers/dashboard/plugins/available.js +++ b/src/controllers/dashboard/plugins/available.js @@ -34,7 +34,6 @@ define(['loading', 'libraryMenu', 'globalize', 'cardStyle', 'emby-button', 'emby var availablePlugins = options.availablePlugins; var installedPlugins = options.installedPlugins; - var categories = []; availablePlugins.forEach(function (plugin, index, array) { plugin.category = plugin.category || 'General'; plugin.categoryDisplayName = getHeaderText(plugin.category); diff --git a/src/controllers/dashboard/users/userprofilespage.js b/src/controllers/dashboard/users/userprofilespage.js index dbdec4f752..824baef4cf 100644 --- a/src/controllers/dashboard/users/userprofilespage.js +++ b/src/controllers/dashboard/users/userprofilespage.js @@ -155,102 +155,12 @@ import 'flexStyles'; page.querySelector('.localUsers').innerHTML = getUserSectionHtml(users, true); } - function showPendingUserMenu(elem) { - const menuItems = []; - menuItems.push({ - name: globalize.translate('ButtonCancel'), - id: 'delete', - icon: 'delete' - }); - - import('actionsheet').then(({default: actionsheet}) => { - const card = dom.parentWithClass(elem, 'card'); - const page = dom.parentWithClass(card, 'page'); - const id = card.getAttribute('data-id'); - actionsheet.show({ - items: menuItems, - positionTo: card, - callback: function (menuItemId) { - switch (menuItemId) { - case 'delete': - cancelAuthorization(page, id); - } - } - }); - }); - } - - function getPendingUserHtml(user) { - let html = ''; - html += "
"; - html += '
'; - html += ''; - html += '
'; - html += '
'; - html += ''; - html += '
'; - html += '
'; - html += user.UserName; - html += '
'; - html += '
'; - html += '
'; - return html + '
'; - } - - function renderPendingGuests(page, users) { - if (users.length) { - page.querySelector('.sectionPendingGuests').classList.remove('hide'); - } else { - page.querySelector('.sectionPendingGuests').classList.add('hide'); - } - - page.querySelector('.pending').innerHTML = users.map(getPendingUserHtml).join(''); - } - - // TODO cvium: maybe reuse for invitation system - function cancelAuthorization(page, id) { - loading.show(); - ApiClient.ajax({ - type: 'DELETE', - url: ApiClient.getUrl('Connect/Pending', { - Id: id - }) - }).then(function () { - loadData(page); - }); - } - function loadData(page) { loading.show(); ApiClient.getUsers().then(function (users) { renderUsers(page, users); loading.hide(); }); - // TODO cvium - renderPendingGuests(page, []); - // ApiClient.getJSON(ApiClient.getUrl("Connect/Pending")).then(function (pending) { - // - // }); - } - - function showInvitePopup(page) { - import('components/guestinviter/guestinviter').then(({default: guestinviter}) => { - guestinviter.show().then(function () { - loadData(page); - }); - }); } pageIdOn('pageinit', 'userProfilesPage', function () { @@ -265,14 +175,8 @@ import 'flexStyles'; showUserMenu(btnUserMenu); } }); - page.querySelector('.pending').addEventListener('click', function (e__r) { - const btnUserMenu = dom.parentWithClass(e__r.target, 'btnUserMenu'); - - if (btnUserMenu) { - showPendingUserMenu(btnUserMenu); - } - }); }); + pageIdOn('pagebeforeshow', 'userProfilesPage', function () { loadData(this); }); diff --git a/src/controllers/favorites.js b/src/controllers/favorites.js index b4c7936239..51c4301a71 100644 --- a/src/controllers/favorites.js +++ b/src/controllers/favorites.js @@ -170,8 +170,7 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap function getItemsHtmlFn(section) { return function (items) { - var supportsImageAnalysis = appHost.supports('imageanalysis'); - var cardLayout = (appHost.preferVisualCards || supportsImageAnalysis) && section.autoCardLayout && section.showTitle; + var cardLayout = appHost.preferVisualCards && section.autoCardLayout && section.showTitle; cardLayout = false; var serverId = this.apiClient.serverId(); var leadingButtons = layoutManager.tv ? [{ diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js index 011bc4ac92..ff65000751 100644 --- a/src/controllers/itemDetails/index.js +++ b/src/controllers/itemDetails/index.js @@ -1678,6 +1678,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti require(['alert'], function (alert) { alert.default({ text: globalize.translate('AddItemToCollectionHelp'), + // TODO: Change to Jellyfin docs html: globalize.translate('AddItemToCollectionHelp') + '

' + globalize.translate('ButtonLearnMore') + '' }); }); 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 @@
-
@@ -12,13 +11,6 @@
-
-
-

${HeaderPendingInvitations}

-
-
-
-