1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

Remove dead code

This commit is contained in:
MrTimscampi 2020-07-19 16:15:11 +02:00
parent 704b2fe9da
commit dfbb7dfc16
114 changed files with 98 additions and 741 deletions

View file

@ -39,6 +39,8 @@ module.exports = {
'no-multi-spaces': ['error'], 'no-multi-spaces': ['error'],
'no-multiple-empty-lines': ['error', { 'max': 1 }], 'no-multiple-empty-lines': ['error', { 'max': 1 }],
'no-trailing-spaces': ['error'], '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'], 'one-var': ['error', 'never'],
'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }], 'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
'semi': ['error'], 'semi': ['error'],
@ -98,9 +100,8 @@ module.exports = {
}, },
rules: { rules: {
// TODO: Fix warnings and remove these rules // TODO: Fix warnings and remove these rules
'no-redeclare': ['warn'], 'no-redeclare': ['off'],
'no-unused-vars': ['warn'], 'no-useless-escape': ['off'],
'no-useless-escape': ['warn'],
// TODO: Remove after ES6 migration is complete // TODO: Remove after ES6 migration is complete
'import/no-unresolved': ['off'] 'import/no-unresolved': ['off']
}, },

View file

@ -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 selectedId;
let timeout; let timeout;

View file

@ -69,6 +69,7 @@ import 'listViewStyle';
const minDate = new Date(); const minDate = new Date();
const hasUserId = 'false' !== elem.getAttribute('data-useractivity'); const hasUserId = 'false' !== elem.getAttribute('data-useractivity');
// TODO: Use date-fns
if (hasUserId) { if (hasUserId) {
minDate.setTime(minDate.getTime() - 24 * 60 * 60 * 1000); // one day back minDate.setTime(minDate.getTime() - 24 * 60 * 60 * 1000); // one day back
} else { } else {

View file

@ -153,15 +153,10 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
}; };
if (!isBackNav) { if (!isBackNav) {
// Don't force a new view for home due to the back menu
//if (route.type !== 'home') {
onNewViewNeeded(); onNewViewNeeded();
return; return;
//}
} }
viewManager.tryRestoreView(currentRequest, function () { viewManager.tryRestoreView(currentRequest, function () {
// done
currentRouteInfo = { currentRouteInfo = {
route: route, route: route,
path: ctx.path path: ctx.path
@ -309,8 +304,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
page({ page({
click: options.click !== false, click: options.click !== false,
hashbang: options.hashbang !== false, hashbang: options.hashbang !== false
enableHistory: enableHistory()
}); });
}).catch().then(function() { }).catch().then(function() {
loading.hide(); loading.hide();
@ -319,10 +313,6 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
function enableHistory() { function enableHistory() {
//if (browser.edgeUwp) {
// return false;
//}
// shows status bar on navigation // shows status bar on navigation
if (browser.xboxOne) { if (browser.xboxOne) {
return false; return false;

View file

@ -257,12 +257,6 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g
features.push('fullscreenchange'); 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) { if (browser.tv || browser.xboxOne || browser.ps4 || browser.mobile) {
features.push('physicalvolumecontrol'); features.push('physicalvolumecontrol');
} }

View file

@ -249,6 +249,7 @@ import 'flexStyles';
html += '</h3>'; html += '</h3>';
if (appHost.supports('externallinks')) { if (appHost.supports('externallinks')) {
// TODO: Change to Jellyfin docs
html += `<a is="emby-linkbutton" class="button-link btnHelp flex align-items-center" href="https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Collections" target="_blank" style="margin-left:auto;margin-right:.5em;padding:.25em;" title="${globalize.translate('Help')}"><span class="material-icons info"></span><span style="margin-left:.25em;">${globalize.translate('Help')}</span></a>`; html += `<a is="emby-linkbutton" class="button-link btnHelp flex align-items-center" href="https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Collections" target="_blank" style="margin-left:auto;margin-right:.5em;padding:.25em;" title="${globalize.translate('Help')}"><span class="material-icons info"></span><span style="margin-left:.25em;">${globalize.translate('Help')}</span></a>`;
} }

View file

@ -45,9 +45,9 @@ import 'flexStyles';
dlg.classList.add('dialog-fullscreen-lowres'); dlg.classList.add('dialog-fullscreen-lowres');
} }
//dlg.querySelector('.btnCancel').addEventListener('click', function (e) { dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
// dialogHelper.close(dlg); dialogHelper.close(dlg);
//}); });
if (options.title) { if (options.title) {
dlg.querySelector('.formDialogHeaderTitle').innerHTML = options.title || ''; dlg.querySelector('.formDialogHeaderTitle').innerHTML = options.title || '';

View file

@ -154,8 +154,7 @@ define(['loading', 'libraryBrowser', 'cardBuilder', 'dom', 'apphost', 'imageLoad
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap padded-left padded-right">'; html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap padded-left padded-right">';
} }
var supportsImageAnalysis = appHost.supports('imageanalysis'); var cardLayout = appHost.preferVisualCards && section.autoCardLayout && section.showTitle;
var cardLayout = (appHost.preferVisualCards || supportsImageAnalysis) && section.autoCardLayout && section.showTitle;
cardLayout = false; cardLayout = false;
html += cardBuilder.getCardsHtml(result.Items, { html += cardBuilder.getCardsHtml(result.Items, {
preferThumb: section.preferThumb, preferThumb: section.preferThumb,

View file

@ -39,34 +39,11 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost',
} }
function renderDynamicFilters(context, result, options) { 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) { renderOptions(context, '.genreFilters', 'chkGenreFilter', result.Genres, function (i) {
// Switching from | to , // Switching from | to ,
var delimeter = (options.settings.GenreIds || '').indexOf('|') === -1 ? ',' : '|'; var delimeter = (options.settings.GenreIds || '').indexOf('|') === -1 ? ',' : '|';
return (delimeter + (options.settings.GenreIds || '') + delimeter).indexOf(delimeter + i.Id + delimeter) !== -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) { function loadDynamicFilters(context, options) {
@ -81,11 +58,7 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost',
}); });
apiClient.getFilters(filterMenuOptions).then(function (result) { apiClient.getFilters(filterMenuOptions).then(function (result) {
renderDynamicFilters(context, result, options); renderDynamicFilters(context, result, options);
}, function () {
// older server
}); });
} }
@ -314,13 +287,7 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'apphost',
var submitted; var submitted;
dlg.querySelector('form').addEventListener('change', function () { dlg.querySelector('form').addEventListener('change', function () {
submitted = true; submitted = true;
//if (options.onChange) {
// saveValues(dlg, options.settings, options.settingsKey);
// options.onChange();
//}
}, true); }, true);
dialogHelper.open(dlg).then(function () { dialogHelper.open(dlg).then(function () {

View file

@ -272,14 +272,10 @@ define(['dom', 'scrollManager'], function (dom, scrollManager) {
var rect = getOffset(activeElement); var rect = getOffset(activeElement);
// Get elements and work out x/y points // Get elements and work out x/y points
var cache = [];
var point1x = parseFloat(rect.left) || 0; var point1x = parseFloat(rect.left) || 0;
var point1y = parseFloat(rect.top) || 0; var point1y = parseFloat(rect.top) || 0;
var point2x = parseFloat(point1x + rect.width - 1) || point1x; var point2x = parseFloat(point1x + rect.width - 1) || point1x;
var point2y = parseFloat(point1y + rect.height - 1) || point1y; 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 sourceMidX = rect.left + (rect.width / 2);
var sourceMidY = rect.top + (rect.height / 2); var sourceMidY = rect.top + (rect.height / 2);
@ -301,10 +297,6 @@ define(['dom', 'scrollManager'], function (dom, scrollManager) {
continue; continue;
} }
//if (!isCurrentlyFocusableInternal(curr)) {
// continue;
//}
var elementRect = getOffset(curr); var elementRect = getOffset(curr);
// not currently visible // not currently visible

View file

@ -43,11 +43,9 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
if (guideProgramName) { if (guideProgramName) {
if (pctOfWidth > 0 && pctOfWidth <= 100) { if (pctOfWidth > 0 && pctOfWidth <= 100) {
//guideProgramName.style.marginLeft = pctOfWidth + '%';
guideProgramName.style.transform = 'translateX(' + pctOfWidth + '%)'; guideProgramName.style.transform = 'translateX(' + pctOfWidth + '%)';
caret.classList.remove('hide'); caret.classList.remove('hide');
} else { } else {
//guideProgramName.style.marginLeft = '0';
guideProgramName.style.transform = 'none'; guideProgramName.style.transform = 'none';
caret.classList.add('hide'); caret.classList.add('hide');
} }
@ -121,7 +119,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
var cellCurationMinutes = 30; var cellCurationMinutes = 30;
var cellDurationMs = cellCurationMinutes * 60 * 1000; var cellDurationMs = cellCurationMinutes * 60 * 1000;
var msPerDay = 86400000; var msPerDay = 86400000;
var totalRendererdMs = msPerDay;
var currentDate; var currentDate;
var currentStartIndex = 0; var currentStartIndex = 0;
@ -577,7 +574,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
html += '</div>'; html += '</div>';
if (program.IsHD && options.showHdIcon) { if (program.IsHD && options.showHdIcon) {
//html += '<span class="guideHdIcon material-icons programIcon hd"></span>';
if (layoutManager.tv) { if (layoutManager.tv) {
html += '<div class="programIcon guide-programTextIcon guide-programTextIcon-tv">HD</div>'; html += '<div class="programIcon guide-programTextIcon guide-programTextIcon-tv">HD</div>';
} else { } else {
@ -866,6 +862,7 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
var dateTabsHtml = ''; var dateTabsHtml = '';
var tabIndex = 0; var tabIndex = 0;
// TODO: Use date-fns
var date = new Date(); var date = new Date();
if (currentDate) { if (currentDate) {
@ -873,7 +870,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
} }
date.setHours(nowHours, 0, 0, 0); date.setHours(nowHours, 0, 0, 0);
//start.setHours(0, 0, 0, 0);
var startTimeOfDayMs = (start.getHours() * 60 * 60 * 1000); var startTimeOfDayMs = (start.getHours() * 60 * 60 * 1000);
startTimeOfDayMs += start.getMinutes() * 60 * 1000; startTimeOfDayMs += start.getMinutes() * 60 * 1000;
@ -951,8 +947,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
var focusableElements; var focusableElements;
var newRow; var newRow;
var scrollX = false;
switch (e.detail.command) { switch (e.detail.command) {
case 'up': case 'up':
@ -1018,7 +1012,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
focusManager.moveLeft(target, { focusManager.moveLeft(target, {
container: container container: container
}); });
scrollX = true;
break; break;
case 'right': case 'right':
container = programCell ? dom.parentWithClass(programCell, 'channelPrograms') : null; container = programCell ? dom.parentWithClass(programCell, 'channelPrograms') : null;
@ -1027,7 +1020,6 @@ define(['require', 'inputManager', 'browser', 'globalize', 'connectionManager',
focusManager.moveRight(target, { focusManager.moveRight(target, {
container: container container: container
}); });
scrollX = true;
break; break;
default: default:
return; return;

View file

@ -148,9 +148,7 @@ import 'emby-checkbox';
let html = ''; let html = '';
let index = 0; html += result.Items.map((view) => {
html += result.Items.map(view => {
let currentHtml = ''; let currentHtml = '';
@ -171,7 +169,6 @@ import 'emby-checkbox';
currentHtml += '</div>'; currentHtml += '</div>';
index++;
return currentHtml; return currentHtml;
}).join(''); }).join('');
@ -305,8 +302,6 @@ import 'emby-checkbox';
const viewItem = dom.parentWithClass(target, 'viewItem'); const viewItem = dom.parentWithClass(target, 'viewItem');
if (viewItem) { if (viewItem) {
const ul = dom.parentWithClass(viewItem, 'paperList');
if (target.classList.contains('btnViewItemDown')) { if (target.classList.contains('btnViewItemDown')) {
const next = viewItem.nextSibling; const next = viewItem.nextSibling;

View file

@ -1,13 +1,9 @@
import connectionManager from 'connectionManager'; import connectionManager from 'connectionManager';
import cardBuilder from 'cardBuilder'; import cardBuilder from 'cardBuilder';
import appSettings from 'appSettings';
import dom from 'dom'; import dom from 'dom';
import appHost from 'apphost';
import layoutManager from 'layoutManager'; import layoutManager from 'layoutManager';
import imageLoader from 'imageLoader'; import imageLoader from 'imageLoader';
import globalize from 'globalize'; import globalize from 'globalize';
import itemShortcuts from 'itemShortcuts';
import itemHelper from 'itemHelper';
import appRouter from 'appRouter'; import appRouter from 'appRouter';
import imageHelper from 'scripts/imagehelper'; import imageHelper from 'scripts/imagehelper';
import 'paper-icon-button-light'; import 'paper-icon-button-light';
@ -215,14 +211,6 @@ import 'css!./homesections';
imageLoader.lazyChildren(elem); 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) { function getFetchLatestItemsFn(serverId, parentId, collectionType) {
return function () { return function () {
const apiClient = connectionManager.getApiClient(serverId); 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) { export function loadLibraryTiles(elem, apiClient, user, userSettings, shape, userViews, allSections) {
let html = ''; let html = '';
if (userViews.length) { if (userViews.length) {
@ -549,7 +529,6 @@ import 'css!./homesections';
} }
function getOnNowItemsHtml(items) { function getOnNowItemsHtml(items) {
const cardLayout = false;
return cardBuilder.getCardsHtml({ return cardBuilder.getCardsHtml({
items: items, items: items,
preferThumb: 'auto', preferThumb: 'auto',
@ -576,7 +555,6 @@ import 'css!./homesections';
return Promise.resolve(); return Promise.resolve();
} }
const userId = user.Id;
return apiClient.getLiveTvRecommendedPrograms({ return apiClient.getLiveTvRecommendedPrograms({
userId: apiClient.getCurrentUserId(), userId: apiClient.getCurrentUserId(),
IsAiring: true, IsAiring: true,
@ -766,7 +744,6 @@ import 'css!./homesections';
function getLatestRecordingItemsHtml(activeRecordingsOnly) { function getLatestRecordingItemsHtml(activeRecordingsOnly) {
return function (items) { return function (items) {
const cardLayout = false;
return cardBuilder.getCardsHtml({ return cardBuilder.getCardsHtml({
items: items, items: items,
shape: enableScrollX() ? 'autooverflow' : 'auto', shape: enableScrollX() ? 'autooverflow' : 'auto',

View file

@ -33,32 +33,6 @@ import events from 'events';
return false; 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) { export function enableHlsJsPlayer(runTimeTicks, mediaType) {
if (window.MediaSource == null) { if (window.MediaSource == null) {
@ -170,7 +144,6 @@ import events from 'events';
var seconds = (ticks || 0) / 10000000; var seconds = (ticks || 0) / 10000000;
if (seconds) { if (seconds) {
var src = (instance.currentSrc() || '').toLowerCase();
// Appending #t=xxx to the query string doesn't seem to work with HLS // Appending #t=xxx to the query string doesn't seem to work with HLS
// For plain video files, not all browsers support it either // For plain video files, not all browsers support it either

View file

@ -270,7 +270,6 @@ define(['dom', 'loading', 'apphost', 'dialogHelper', 'connectionManager', 'image
// end footer // end footer
html += '</div>'; html += '</div>';
//html += '</div>';
html += '</' + tagName + '>'; html += '</' + tagName + '>';

View file

@ -270,8 +270,6 @@ import 'emby-playstatebutton';
} }
if (!clickEntireItem && options.dragHandle) { if (!clickEntireItem && options.dragHandle) {
//html += '<button is="paper-icon-button-light" class="listViewDragHandle listItemButton"><span class="material-icons drag_handle"></span></button>';
// Firefox and Edge are not allowing the button to be draggable
html += '<span class="listViewDragHandle material-icons listItemIcon listItemIcon-transparent drag_handle"></span>'; html += '<span class="listViewDragHandle material-icons listItemIcon listItemIcon-transparent drag_handle"></span>';
} }

View file

@ -16,9 +16,6 @@ import 'emby-button';
return false; return false;
} }
function getTabsContainerElem() {
}
function ensureElements(enableInFooter) { function ensureElements(enableInFooter) {
if (enableInFooter) { if (enableInFooter) {
@ -27,7 +24,6 @@ import 'emby-button';
footerTabsContainer.classList.add('footerTabs'); footerTabsContainer.classList.add('footerTabs');
footerTabsContainer.classList.add('sectionTabs'); footerTabsContainer.classList.add('sectionTabs');
footerTabsContainer.classList.add('hide'); footerTabsContainer.classList.add('hide');
//appFooter.add(footerTabsContainer);
} }
} }
@ -75,7 +71,6 @@ import 'emby-button';
} }
// implement without hammer // implement without hammer
const pageCount = getTabContainersFn().length;
const onSwipeLeft = function (e, target) { const onSwipeLeft = function (e, target) {
if (allowSwipe(target) && view.contains(target)) { if (allowSwipe(target) && view.contains(target)) {
tabsElem.selectNext(); tabsElem.selectNext();
@ -193,12 +188,6 @@ import 'emby-button';
const newPanel = tabContainers[e.detail.selectedTabIndex]; 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) { if (newPanel) {
newPanel.classList.add('is-active'); newPanel.classList.add('is-active');
} }
@ -221,10 +210,6 @@ import 'emby-button';
} }
} }
//if (enableSwipe !== false) {
// libraryBrowser.configureSwipeTabs(ownerpage, tabs);
//}
return { return {
tabsContainer: tabsContainerElem, tabsContainer: tabsContainerElem,
tabs: tabsContainerElem.querySelector('[is="emby-tabs"]'), tabs: tabsContainerElem.querySelector('[is="emby-tabs"]'),

View file

@ -568,10 +568,6 @@ import 'emby-button';
}); });
} }
//if (mediaSource.Container) {
// html += '<div class="mediaInfoIcon mediaInfoText">' + mediaSource.Container + '</div>';
//}
const resolutionText = getResolutionText(videoStream); const resolutionText = getResolutionText(videoStream);
if (resolutionText) { if (resolutionText) {
list.push({ list.push({

View file

@ -580,10 +580,9 @@ import 'css!./multiSelect';
dom.removeEventListener(element, 'touchend', onTouchEnd, { dom.removeEventListener(element, 'touchend', onTouchEnd, {
passive: true passive: true
}); });
// this fires in safari due to magnifying class dom.removeEventListener(element, 'touchcancel', onTouchEnd, {
//dom.removeEventListener(element, "touchcancel", onTouchEnd, { passive: true
// passive: true });
//});
dom.removeEventListener(element, 'mousedown', onMouseDown, { dom.removeEventListener(element, 'mousedown', onMouseDown, {
passive: true passive: true
}); });

View file

@ -101,11 +101,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir
body: body, body: body,
vibrate: true, vibrate: true,
tag: 'newItem' + item.Id, tag: 'newItem' + item.Id,
data: { data: {}
//options: {
// url: LibraryBrowser.getHref(item)
//}
}
}; };
var imageTags = item.ImageTags || {}; var imageTags = item.ImageTags || {};

View file

@ -777,7 +777,6 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
var players = []; var players = [];
var currentTargetInfo; var currentTargetInfo;
var lastLocalPlayer;
var currentPairingId = null; var currentPairingId = null;
this._playNextAfterEnded = true; this._playNextAfterEnded = true;
@ -1031,10 +1030,6 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
console.debug('Active player: ' + JSON.stringify(targetInfo)); console.debug('Active player: ' + JSON.stringify(targetInfo));
} }
if (player && player.isLocalPlayer) {
lastLocalPlayer = player;
}
if (previousPlayer) { if (previousPlayer) {
self.endPlayerUpdates(previousPlayer); self.endPlayerUpdates(previousPlayer);
} }
@ -4076,8 +4071,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
this.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index), player); this.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index), player);
break; break;
case 'SetMaxStreamingBitrate': case 'SetMaxStreamingBitrate':
// todo this.setMaxStreamingBitrate(parseInt(cmd.Arguments.Bitrate), player);
//this.setMaxStreamingBitrate(parseInt(cmd.Arguments.Bitrate), player);
break; break;
case 'ToggleFullscreen': case 'ToggleFullscreen':
this.toggleFullscreen(player); this.toggleFullscreen(player);

View file

@ -182,7 +182,6 @@ function disconnectFromPlayer(currentDeviceName) {
dialog({ dialog({
buttons: menuItems, buttons: menuItems,
//positionTo: positionTo,
text: globalize.translate('ConfirmEndPlayerSession', currentDeviceName) text: globalize.translate('ConfirmEndPlayerSession', currentDeviceName)
}).then(function (id) { }).then(function (id) {

View file

@ -88,8 +88,6 @@ function showRepeatModeMenu(player, btn) {
function getQualitySecondaryText(player) { function getQualitySecondaryText(player) {
var state = playbackManager.getPlayerState(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) { var videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) {
return stream.Type === 'Video'; return stream.Type === 'Video';
@ -106,20 +104,6 @@ function getQualitySecondaryText(player) {
enableAuto: true 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) { var selectedOption = options.filter(function (o) {
return o.selected; return o.selected;
}); });
@ -168,7 +152,6 @@ function showAspectRatioMenu(player, btn) {
function showWithUser(options, player, user) { function showWithUser(options, player, user) {
var supportedCommands = playbackManager.getSupportedCommands(player); var supportedCommands = playbackManager.getSupportedCommands(player);
var mediaType = options.mediaType;
var menuItems = []; var menuItems = [];
if (supportedCommands.indexOf('SetAspectRatio') !== -1) { if (supportedCommands.indexOf('SetAspectRatio') !== -1) {

View file

@ -132,7 +132,6 @@ import 'css!./playerstats';
let audioChannels; let audioChannels;
if (session.TranscodingInfo) { if (session.TranscodingInfo) {
videoCodec = session.TranscodingInfo.VideoCodec; videoCodec = session.TranscodingInfo.VideoCodec;
audioCodec = session.TranscodingInfo.AudioCodec; audioCodec = session.TranscodingInfo.AudioCodec;
totalBitrate = session.TranscodingInfo.Bitrate; totalBitrate = session.TranscodingInfo.Bitrate;
@ -140,7 +139,6 @@ import 'css!./playerstats';
} }
if (videoCodec) { if (videoCodec) {
sessionStats.push({ sessionStats.push({
label: globalize.translate('LabelVideoCodec'), label: globalize.translate('LabelVideoCodec'),
value: session.TranscodingInfo.IsVideoDirect ? (videoCodec.toUpperCase() + ' (direct)') : videoCodec.toUpperCase() value: session.TranscodingInfo.IsVideoDirect ? (videoCodec.toUpperCase() + ' (direct)') : videoCodec.toUpperCase()
@ -148,20 +146,18 @@ import 'css!./playerstats';
} }
if (audioCodec) { if (audioCodec) {
sessionStats.push({ sessionStats.push({
label: globalize.translate('LabelAudioCodec'), label: globalize.translate('LabelAudioCodec'),
value: session.TranscodingInfo.IsAudioDirect ? (audioCodec.toUpperCase() + ' (direct)') : audioCodec.toUpperCase() value: session.TranscodingInfo.IsAudioDirect ? (audioCodec.toUpperCase() + ' (direct)') : audioCodec.toUpperCase()
}); });
} }
//if (audioChannels) { if (audioChannels) {
sessionStats.push({
// sessionStats.push({ label: globalize.translate('LabelAudioChannels'),
// label: 'Audio channels:', value: audioChannels
// value: audioChannels });
// }); }
//}
if (displayPlayMethod === 'Transcode') { if (displayPlayMethod === 'Transcode') {
if (totalBitrate) { if (totalBitrate) {

View file

@ -14,7 +14,6 @@ define(['globalize'], function (globalize) {
} }
var maxAllowedWidth = videoWidth || 4096; var maxAllowedWidth = videoWidth || 4096;
//var maxAllowedHeight = videoHeight || 2304;
var qualityOptions = []; var qualityOptions = [];

View file

@ -19,9 +19,6 @@ define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'c
} }
function renderTimer(context, item, apiClient) { function renderTimer(context, item, apiClient) {
var program = item.ProgramInfo || {};
context.querySelector('#txtPrePaddingMinutes').value = item.PrePaddingSeconds / 60; context.querySelector('#txtPrePaddingMinutes').value = item.PrePaddingSeconds / 60;
context.querySelector('#txtPostPaddingMinutes').value = item.PostPaddingSeconds / 60; context.querySelector('#txtPostPaddingMinutes').value = item.PostPaddingSeconds / 60;

View file

@ -20,8 +20,6 @@ define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'c
function renderTimer(context, item, apiClient) { function renderTimer(context, item, apiClient) {
var program = item.ProgramInfo || {};
context.querySelector('#txtPrePaddingMinutes').value = item.PrePaddingSeconds / 60; context.querySelector('#txtPrePaddingMinutes').value = item.PrePaddingSeconds / 60;
context.querySelector('#txtPostPaddingMinutes').value = item.PostPaddingSeconds / 60; context.querySelector('#txtPostPaddingMinutes').value = item.PostPaddingSeconds / 60;

View file

@ -222,7 +222,6 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
} }
function setImageUrl(context, state, url) { function setImageUrl(context, state, url) {
currentImgUrl = url;
var item = state.NowPlayingItem; var item = state.NowPlayingItem;
var imgContainer = context.querySelector('.nowPlayingPageImageContainer'); var imgContainer = context.querySelector('.nowPlayingPageImageContainer');
@ -257,7 +256,6 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
} }
} }
var currentImgUrl;
return function () { return function () {
function toggleRepeat() { function toggleRepeat() {
switch (playbackManager.getRepeatMode()) { switch (playbackManager.getRepeatMode()) {
@ -909,7 +907,6 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
} }
function onShow(context, tab) { function onShow(context, tab) {
currentImgUrl = null;
bindToPlayer(context, playbackManager.getCurrentPlayer()); bindToPlayer(context, playbackManager.getCurrentPlayer());
} }

View file

@ -1,3 +1,4 @@
// TODO: Check if needed and move to external dependency
// From https://github.com/parshap/node-sanitize-filename // From https://github.com/parshap/node-sanitize-filename
const illegalRe = /[\/\?<>\\:\*\|":]/g; const illegalRe = /[\/\?<>\\:\*\|":]/g;

View file

@ -130,8 +130,6 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
var hideTimeout; var hideTimeout;
/** Last coordinates of the mouse pointer. */ /** Last coordinates of the mouse pointer. */
var lastMouseMoveData; var lastMouseMoveData;
/** Visibility status of the OSD. */
var _osdOpen = false;
// Use autoplay on Chromecast since it is non-interactive. // Use autoplay on Chromecast since it is non-interactive.
if (browser.chromecast) options.interactive = false; if (browser.chromecast) options.interactive = false;
@ -363,8 +361,6 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
function getSwiperSlideHtmlFromItem(item) { function getSwiperSlideHtmlFromItem(item) {
return getSwiperSlideHtmlFromSlide({ return getSwiperSlideHtmlFromSlide({
originalImage: getImgUrl(item, currentOptions.user), originalImage: getImgUrl(item, currentOptions.user),
//title: item.Name,
//description: item.Overview
Id: item.Id, Id: item.Id,
ServerId: item.ServerId ServerId: item.ServerId
}); });
@ -545,7 +541,6 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
return; return;
} }
_osdOpen = true;
element.classList.remove('hide'); element.classList.remove('hide');
var onFinish = function () { var onFinish = function () {
@ -578,7 +573,6 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
var onFinish = function () { var onFinish = function () {
element.classList.add('hide'); element.classList.add('hide');
_osdOpen = false;
}; };
if (!element.animate) { if (!element.animate) {

View file

@ -90,13 +90,7 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'layoutMana
var submitted; var submitted;
dlg.querySelector('form').addEventListener('change', function () { dlg.querySelector('form').addEventListener('change', function () {
submitted = true; submitted = true;
//if (options.onChange) {
// saveValues(dlg, options.settings, options.settingsKey);
// options.onChange();
//}
}, true); }, true);
dialogHelper.open(dlg).then(function () { dialogHelper.open(dlg).then(function () {
@ -106,11 +100,8 @@ define(['require', 'dom', 'focusManager', 'dialogHelper', 'loading', 'layoutMana
} }
if (submitted) { if (submitted) {
//if (!options.onChange) {
saveValues(dlg, options.settings, options.settingsKey); saveValues(dlg, options.settings, options.settingsKey);
resolve(); resolve();
//}
return; return;
} }

View file

@ -4,43 +4,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
var currentItem; var currentItem;
var hasChanges; 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) { function downloadRemoteSubtitles(context, id) {
var url = 'Items/' + currentItem.Id + '/RemoteSearch/Subtitles/' + id; var url = 'Items/' + currentItem.Id + '/RemoteSearch/Subtitles/' + id;
@ -170,14 +133,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
elem.classList.add('hide'); elem.classList.add('hide');
} }
elem.innerHTML = html; elem.innerHTML = html;
//('.btnViewSubtitles', elem).on('click', function () {
// var index = this.getAttribute('data-index');
// showLocalSubtitles(context, index);
//});
} }
function fillLanguages(context, apiClient, languages) { function fillLanguages(context, apiClient, languages) {
@ -250,8 +205,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
html += '<div class="listItemBody ' + bodyClass + '">'; html += '<div class="listItemBody ' + bodyClass + '">';
//html += '<a class="btnViewSubtitle" href="#" data-subid="' + result.Id + '">';
html += '<div>' + (result.Name) + '</div>'; html += '<div>' + (result.Name) + '</div>';
html += '<div class="secondary listItemBodyText">'; html += '<div class="secondary listItemBodyText">';
@ -272,8 +225,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
html += '<div class="secondary listItemBodyText"><div class="inline-flex align-items-center justify-content-center" style="background:#3388cc;color:#fff;padding: .3em 1em;border-radius:1000em;">' + globalize.translate('PerfectMatch') + '</div></div>'; html += '<div class="secondary listItemBodyText"><div class="inline-flex align-items-center justify-content-center" style="background:#3388cc;color:#fff;padding: .3em 1em;border-radius:1000em;">' + globalize.translate('PerfectMatch') + '</div></div>';
} }
//html += '</a>';
html += '</div>'; html += '</div>';
if (!layoutManager.tv) { if (!layoutManager.tv) {
@ -290,12 +241,6 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
var elem = context.querySelector('.subtitleResults'); var elem = context.querySelector('.subtitleResults');
elem.innerHTML = html; elem.innerHTML = html;
//('.btnViewSubtitle', elem).on('click', function () {
// var id = this.getAttribute('data-subid');
// showRemoteSubtitles(context, id);
//});
loading.hide(); loading.hide();
} }
@ -369,11 +314,10 @@ define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'userSettings',
} }
function onSubtitleResultsClick(e) { function onSubtitleResultsClick(e) {
var btnOptions = dom.parentWithClass(e.target, 'btnOptions');
var subtitleId; var subtitleId;
var context; var context;
var btnOptions = dom.parentWithClass(e.target, 'btnOptions');
if (btnOptions) { if (btnOptions) {
subtitleId = btnOptions.getAttribute('data-subid'); subtitleId = btnOptions.getAttribute('data-subid');
context = dom.parentWithClass(btnOptions, 'subtitleEditorDialog'); context = dom.parentWithClass(btnOptions, 'subtitleEditorDialog');

View file

@ -286,9 +286,6 @@ define(['playbackManager', 'userSettings', 'alphaPicker', 'alphaNumericShortcuts
bindAll(view.querySelectorAll('.btnShuffle'), 'click', shuffle.bind(this)); bindAll(view.querySelectorAll('.btnShuffle'), 'click', shuffle.bind(this));
} }
function getSettingValue(key, defaultValue) {
}
ItemsTab.prototype.getViewSettings = function () { ItemsTab.prototype.getViewSettings = function () {
var basekey = this.getSettingsKey(); var basekey = this.getSettingsKey();
@ -507,16 +504,10 @@ define(['playbackManager', 'userSettings', 'alphaPicker', 'alphaNumericShortcuts
}; };
ItemsTab.prototype.getFilterMenuOptions = function () { ItemsTab.prototype.getFilterMenuOptions = function () {
return {};
var params = this.params;
return {
};
}; };
ItemsTab.prototype.getItemTypes = function () { ItemsTab.prototype.getItemTypes = function () {
return []; return [];
}; };

View file

@ -100,12 +100,12 @@ define(['playbackManager', 'userSettings', 'connectionManager'], function (playb
}, true); }, true);
//Events.on(playbackManager, 'playbackstart', function (e, player) { Events.on(playbackManager, 'playbackstart', function (e, player) {
// var item = playbackManager.currentItem(player); var item = playbackManager.currentItem(player);
// // User played something manually // User played something manually
// if (currentThemeIds.indexOf(item.Id) == -1) { if (currentThemeIds.indexOf(item.Id) == -1) {
// currentOwnerId = null; currentOwnerId = null;
// } }
//}); });
}); });

View file

@ -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'); var tooltipFavorite = globalize.translate('Favorite');
if (userData.IsFavorite) { if (userData.IsFavorite) {

View file

@ -21,11 +21,10 @@ define(['viewContainer', 'focusManager', 'queryString', 'layoutManager'], functi
if (!newView.initComplete) { if (!newView.initComplete) {
newView.initComplete = true; newView.initComplete = true;
var controller;
if (typeof options.controllerFactory === 'function') { 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') { } 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) { if (!options.controllerFactory || dispatchPageEvents) {

View file

@ -95,11 +95,6 @@ import 'emby-button';
} }
} }
function showGeneralError() {
loading.hide();
alertText(globalize.translate('DefaultErrorMessage'));
}
function alertText(text) { function alertText(text) {
alertTextWithOptions({ alertTextWithOptions({
text: text text: text

View file

@ -34,7 +34,6 @@ define(['loading', 'libraryMenu', 'globalize', 'cardStyle', 'emby-button', 'emby
var availablePlugins = options.availablePlugins; var availablePlugins = options.availablePlugins;
var installedPlugins = options.installedPlugins; var installedPlugins = options.installedPlugins;
var categories = [];
availablePlugins.forEach(function (plugin, index, array) { availablePlugins.forEach(function (plugin, index, array) {
plugin.category = plugin.category || 'General'; plugin.category = plugin.category || 'General';
plugin.categoryDisplayName = getHeaderText(plugin.category); plugin.categoryDisplayName = getHeaderText(plugin.category);

View file

@ -155,102 +155,12 @@ import 'flexStyles';
page.querySelector('.localUsers').innerHTML = getUserSectionHtml(users, true); 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 += "<div data-id='" + user.Id + "' class='card squareCard scalableCard squareCard-scalable'>";
html += '<div class="cardBox cardBox-bottompadded visualCardBox">';
html += '<div class="cardScalable visualCardBox-cardScalable">';
html += '<div class="cardPadder cardPadder-square"></div>';
html += '<a class="cardContent cardImageContainer" is="emby-linkbutton" href="#">';
if (user.ImageUrl) {
html += '<div class="cardImage" style="background-image:url(\'' + user.ImageUrl + "');\">";
html += '</div>';
} else {
html += '<span class="cardImageIcon material-icons person"></span>';
}
html += '</a>';
html += '</div>';
html += '<div class="cardFooter visualCardBox-cardFooter">';
html += '<div class="cardText" style="text-align:right; float:right;padding:0;">';
html += '<button type="button" is="paper-icon-button-light" class="btnUserMenu"><span class="material-icons more_vert"></span></button>';
html += '</div>';
html += '<div class="cardText" style="padding-top:10px;padding-bottom:10px;">';
html += user.UserName;
html += '</div>';
html += '</div>';
html += '</div>';
return html + '</div>';
}
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) { function loadData(page) {
loading.show(); loading.show();
ApiClient.getUsers().then(function (users) { ApiClient.getUsers().then(function (users) {
renderUsers(page, users); renderUsers(page, users);
loading.hide(); 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 () { pageIdOn('pageinit', 'userProfilesPage', function () {
@ -265,14 +175,8 @@ import 'flexStyles';
showUserMenu(btnUserMenu); 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 () { pageIdOn('pagebeforeshow', 'userProfilesPage', function () {
loadData(this); loadData(this);
}); });

View file

@ -170,8 +170,7 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap
function getItemsHtmlFn(section) { function getItemsHtmlFn(section) {
return function (items) { return function (items) {
var supportsImageAnalysis = appHost.supports('imageanalysis'); var cardLayout = appHost.preferVisualCards && section.autoCardLayout && section.showTitle;
var cardLayout = (appHost.preferVisualCards || supportsImageAnalysis) && section.autoCardLayout && section.showTitle;
cardLayout = false; cardLayout = false;
var serverId = this.apiClient.serverId(); var serverId = this.apiClient.serverId();
var leadingButtons = layoutManager.tv ? [{ var leadingButtons = layoutManager.tv ? [{

View file

@ -1678,6 +1678,7 @@ define(['loading', 'appRouter', 'layoutManager', 'connectionManager', 'userSetti
require(['alert'], function (alert) { require(['alert'], function (alert) {
alert.default({ alert.default({
text: globalize.translate('AddItemToCollectionHelp'), text: globalize.translate('AddItemToCollectionHelp'),
// TODO: Change to Jellyfin docs
html: globalize.translate('AddItemToCollectionHelp') + '<br/><br/><a is="emby-linkbutton" class="button-link" target="_blank" href="https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Collections">' + globalize.translate('ButtonLearnMore') + '</a>' html: globalize.translate('AddItemToCollectionHelp') + '<br/><br/><a is="emby-linkbutton" class="button-link" target="_blank" href="https://web.archive.org/web/20181216120305/https://github.com/MediaBrowser/Wiki/wiki/Collections">' + globalize.translate('ButtonLearnMore') + '</a>'
}); });
}); });

View file

@ -24,7 +24,6 @@ define(['layoutManager', 'loading', 'cardBuilder', 'apphost', 'imageLoader', 'sc
recordingItems.classList.add('vertical-wrap'); recordingItems.classList.add('vertical-wrap');
} }
appHost.supports('imageanalysis');
recordingItems.innerHTML = cardBuilder.getCardsHtml(Object.assign({ recordingItems.innerHTML = cardBuilder.getCardsHtml(Object.assign({
items: recordings, items: recordings,
shape: scrollX ? 'autooverflow' : 'auto', shape: scrollX ? 'autooverflow' : 'auto',

View file

@ -30,17 +30,14 @@ define(['layoutManager', 'cardBuilder', 'apphost', 'imageLoader', 'loading', 'sc
recordingItems.classList.add('vertical-wrap'); recordingItems.classList.add('vertical-wrap');
} }
var supportsImageAnalysis = appHost.supports('imageanalysis');
var cardLayout = appHost.preferVisualCards || supportsImageAnalysis;
cardLayout = false;
recordingItems.innerHTML = cardBuilder.getCardsHtml(Object.assign({ recordingItems.innerHTML = cardBuilder.getCardsHtml(Object.assign({
items: recordings, items: recordings,
shape: enableScrollX() ? 'autooverflow' : 'auto', shape: enableScrollX() ? 'autooverflow' : 'auto',
showTitle: true, showTitle: true,
showParentTitle: true, showParentTitle: true,
coverImage: true, coverImage: true,
cardLayout: cardLayout, cardLayout: appHost.preferVisualCards,
centerText: !cardLayout, centerText: !appHost.preferVisualCards,
allowBottomPadding: !enableScrollX(), allowBottomPadding: !enableScrollX(),
preferThumb: 'auto' preferThumb: 'auto'
}, cardOptions || {})); }, cardOptions || {}));

View file

@ -3,7 +3,6 @@ define(['datetime', 'cardBuilder', 'imageLoader', 'apphost', 'loading', 'paper-i
function renderTimers(context, timers) { function renderTimers(context, timers) {
var html = ''; var html = '';
appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: timers, items: timers,
shape: 'auto', shape: 'auto',

View file

@ -75,7 +75,6 @@ define(['layoutManager', 'loading', 'libraryBrowser', 'cardBuilder', 'lazyLoader
ParentId: params.topParentId ParentId: params.topParentId
}; };
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) { ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
var supportsImageAnalysis = appHost.supports('imageanalysis');
if (viewStyle == 'Thumb') { if (viewStyle == 'Thumb') {
cardBuilder.buildCards(result.Items, { cardBuilder.buildCards(result.Items, {

View file

@ -346,8 +346,6 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
function loadTab(page, index) { function loadTab(page, index) {
currentTabIndex = index; currentTabIndex = index;
getTabController(page, index, function (controller) { getTabController(page, index, function (controller) {
initialTabIndex = null;
if (renderedTabs.indexOf(index) == -1) { if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index); renderedTabs.push(index);
controller.renderTab(); controller.renderTab();
@ -370,10 +368,8 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
} }
} }
var isViewRestored;
var self = this; var self = this;
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId)); var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
var initialTabIndex = currentTabIndex;
var suggestionsTabIndex = 1; var suggestionsTabIndex = 1;
self.initTab = function () { self.initTab = function () {
@ -389,7 +385,8 @@ define(['events', 'layoutManager', 'inputManager', 'userSettings', 'libraryMenu'
var tabControllers = []; var tabControllers = [];
var renderedTabs = []; var renderedTabs = [];
view.addEventListener('viewshow', function (e) { 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; var parentId = params.topParentId;
if (parentId) { if (parentId) {

View file

@ -41,8 +41,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
}; };
ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) { ApiClient.getJSON(ApiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
var elem = page.querySelector('#recentlyAddedSongs'); var elem = page.querySelector('#recentlyAddedSongs');
var supportsImageAnalysis = appHost.supports('imageanalysis');
supportsImageAnalysis = false;
elem.innerHTML = cardBuilder.getCardsHtml({ elem.innerHTML = cardBuilder.getCardsHtml({
items: items, items: items,
showUnplayedIndicator: false, showUnplayedIndicator: false,
@ -51,10 +50,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showTitle: true, showTitle: true,
showParentTitle: true, showParentTitle: true,
lazy: true, lazy: true,
centerText: !supportsImageAnalysis, centerText: true,
overlayPlayButton: !supportsImageAnalysis, overlayPlayButton: true,
allowBottomPadding: !enableScrollX(), allowBottomPadding: !enableScrollX(),
cardLayout: supportsImageAnalysis, cardLayout: false,
coverImage: true coverImage: true
}); });
imageLoader.lazyChildren(elem); imageLoader.lazyChildren(elem);
@ -90,8 +89,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
} }
var itemsContainer = elem.querySelector('.itemsContainer'); var itemsContainer = elem.querySelector('.itemsContainer');
var supportsImageAnalysis = appHost.supports('imageanalysis');
supportsImageAnalysis = false;
itemsContainer.innerHTML = cardBuilder.getCardsHtml({ itemsContainer.innerHTML = cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
showUnplayedIndicator: false, showUnplayedIndicator: false,
@ -100,10 +97,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showParentTitle: true, showParentTitle: true,
action: 'instantmix', action: 'instantmix',
lazy: true, lazy: true,
centerText: !supportsImageAnalysis, centerText: true,
overlayMoreButton: !supportsImageAnalysis, overlayMoreButton: true,
allowBottomPadding: !enableScrollX(), allowBottomPadding: !enableScrollX(),
cardLayout: supportsImageAnalysis, cardLayout: false,
coverImage: true coverImage: true
}); });
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
@ -134,8 +131,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
} }
var itemsContainer = elem.querySelector('.itemsContainer'); var itemsContainer = elem.querySelector('.itemsContainer');
var supportsImageAnalysis = appHost.supports('imageanalysis');
supportsImageAnalysis = false;
itemsContainer.innerHTML = cardBuilder.getCardsHtml({ itemsContainer.innerHTML = cardBuilder.getCardsHtml({
items: result.Items, items: result.Items,
showUnplayedIndicator: false, showUnplayedIndicator: false,
@ -144,10 +139,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
showParentTitle: true, showParentTitle: true,
action: 'instantmix', action: 'instantmix',
lazy: true, lazy: true,
centerText: !supportsImageAnalysis, centerText: true,
overlayMoreButton: !supportsImageAnalysis, overlayMoreButton: true,
allowBottomPadding: !enableScrollX(), allowBottomPadding: !enableScrollX(),
cardLayout: supportsImageAnalysis, cardLayout: false,
coverImage: true coverImage: true
}); });
imageLoader.lazyChildren(itemsContainer); imageLoader.lazyChildren(itemsContainer);
@ -339,8 +334,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
function loadTab(page, index) { function loadTab(page, index) {
currentTabIndex = index; currentTabIndex = index;
getTabController(page, index, function (controller) { getTabController(page, index, function (controller) {
initialTabIndex = null;
if (renderedTabs.indexOf(index) == -1) { if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index); renderedTabs.push(index);
controller.renderTab(); controller.renderTab();
@ -356,10 +349,8 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
} }
} }
var isViewRestored;
var self = this; var self = this;
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId)); var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
var initialTabIndex = currentTabIndex;
self.initTab = function () { self.initTab = function () {
var tabContent = view.querySelector(".pageTabContent[data-index='0']"); var tabContent = view.querySelector(".pageTabContent[data-index='0']");
@ -377,7 +368,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
var tabControllers = []; var tabControllers = [];
var renderedTabs = []; var renderedTabs = [];
view.addEventListener('viewshow', function (e) { view.addEventListener('viewshow', function (e) {
isViewRestored = e.detail.isRestored;
initTabs(); initTabs();
if (!view.getAttribute('data-title')) { if (!view.getAttribute('data-title')) {
var parentId = params.topParentId; var parentId = params.topParentId;

View file

@ -85,8 +85,6 @@ import 'emby-button';
ParentId: params.topParentId ParentId: params.topParentId
}; };
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) { ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
const supportsImageAnalysis = appHost.supports('imageanalysis');
if (viewStyle == 'Thumb') { if (viewStyle == 'Thumb') {
cardBuilder.buildCards(result.Items, { cardBuilder.buildCards(result.Items, {
itemsContainer: elem, itemsContainer: elem,

View file

@ -1,7 +1,6 @@
import loading from 'loading'; import loading from 'loading';
import groupedcards from 'components/groupedcards'; import groupedcards from 'components/groupedcards';
import cardBuilder from 'cardBuilder'; import cardBuilder from 'cardBuilder';
import appHost from 'apphost';
import imageLoader from 'imageLoader'; import imageLoader from 'imageLoader';
/* eslint-disable indent */ /* eslint-disable indent */
@ -23,8 +22,7 @@ import imageLoader from 'imageLoader';
function loadLatest(context, params, promise) { function loadLatest(context, params, promise) {
promise.then(function (items) { promise.then(function (items) {
let html = ''; var html = '';
appHost.supports('imageanalysis');
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: items, items: items,
shape: 'backdrop', shape: 'backdrop',

View file

@ -269,8 +269,6 @@ import 'emby-button';
function loadTab(page, index) { function loadTab(page, index) {
currentTabIndex = index; currentTabIndex = index;
getTabController(page, index, function (controller) { getTabController(page, index, function (controller) {
initialTabIndex = null;
if (renderedTabs.indexOf(index) == -1) { if (renderedTabs.indexOf(index) == -1) {
renderedTabs.push(index); renderedTabs.push(index);
controller.renderTab(); controller.renderTab();
@ -301,10 +299,8 @@ import 'emby-button';
} }
} }
let isViewRestored;
const self = this; const self = this;
let currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId)); let currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
let initialTabIndex = currentTabIndex;
self.initTab = function () { self.initTab = function () {
const tabContent = self.tabContent; const tabContent = self.tabContent;
@ -319,7 +315,6 @@ import 'emby-button';
let renderedTabs = []; let renderedTabs = [];
setScrollClasses(view.querySelector('#resumableItems'), enableScrollX()); setScrollClasses(view.querySelector('#resumableItems'), enableScrollX());
view.addEventListener('viewshow', function (e) { view.addEventListener('viewshow', function (e) {
isViewRestored = e.detail.isRestored;
initTabs(); initTabs();
if (!view.getAttribute('data-title')) { if (!view.getAttribute('data-title')) {
const parentId = params.topParentId; const parentId = params.topParentId;

View file

@ -1,9 +1,7 @@
import layoutManager from 'layoutManager'; import layoutManager from 'layoutManager';
import loading from 'loading'; import loading from 'loading';
import datetime from 'datetime'; import datetime from 'datetime';
import libraryBrowser from 'libraryBrowser';
import cardBuilder from 'cardBuilder'; import cardBuilder from 'cardBuilder';
import appHost from 'apphost';
import imageLoader from 'imageLoader'; import imageLoader from 'imageLoader';
import globalize from 'globalize'; import globalize from 'globalize';
import 'scrollStyles'; import 'scrollStyles';
@ -106,8 +104,6 @@ import 'emby-itemscontainer';
html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap padded-left padded-right">'; html += '<div is="emby-itemscontainer" class="itemsContainer vertical-wrap padded-left padded-right">';
} }
let supportsImageAnalysis = appHost.supports('imageanalysis');
supportsImageAnalysis = false;
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: group.items, items: group.items,
showLocationTypeIndicator: false, showLocationTypeIndicator: false,
@ -116,11 +112,11 @@ import 'emby-itemscontainer';
preferThumb: true, preferThumb: true,
lazy: true, lazy: true,
showDetailsMenu: true, showDetailsMenu: true,
centerText: !supportsImageAnalysis, centerText: true,
showParentTitle: true, showParentTitle: true,
overlayText: false, overlayText: false,
allowBottomPadding: allowBottomPadding, allowBottomPadding: allowBottomPadding,
cardLayout: supportsImageAnalysis, cardLayout: false,
overlayMoreButton: true, overlayMoreButton: true,
missingIndicator: false missingIndicator: false
}); });

View file

@ -1,7 +1,4 @@
import HomescreenSettings from 'homescreenSettings'; import HomescreenSettings from 'homescreenSettings';
import dom from 'dom';
import globalize from 'globalize';
import loading from 'loading';
import * as userSettings from 'userSettings'; import * as userSettings from 'userSettings';
import autoFocuser from 'autoFocuser'; import autoFocuser from 'autoFocuser';
import 'listViewStyle'; import 'listViewStyle';

View file

@ -1,7 +1,4 @@
import PlaybackSettings from 'playbackSettings'; import PlaybackSettings from 'playbackSettings';
import dom from 'dom';
import globalize from 'globalize';
import loading from 'loading';
import * as userSettings from 'userSettings'; import * as userSettings from 'userSettings';
import autoFocuser from 'autoFocuser'; import autoFocuser from 'autoFocuser';
import 'listViewStyle'; import 'listViewStyle';

View file

@ -11,11 +11,7 @@ import 'emby-button';
elem.classList.remove('hide'); elem.classList.remove('hide');
elem.classList.add('expanded'); elem.classList.add('expanded');
elem.style.height = 'auto'; elem.style.height = 'auto';
const height = elem.offsetHeight + 'px'; var height = elem.offsetHeight + 'px';
elem.style.height = '0';
// trigger reflow
const newHeight = elem.offsetHeight;
elem.style.height = height; elem.style.height = height;
setTimeout(function () { setTimeout(function () {
@ -28,15 +24,12 @@ import 'emby-button';
}, 300); }, 300);
const icon = button.querySelector('.material-icons'); const icon = button.querySelector('.material-icons');
//icon.innerHTML = 'expand_less';
icon.classList.add('emby-collapse-expandIconExpanded'); icon.classList.add('emby-collapse-expandIconExpanded');
} }
function slideUpToHide(button, elem) { function slideUpToHide(button, elem) {
elem.style.height = elem.offsetHeight + 'px'; elem.style.height = elem.offsetHeight + 'px';
// trigger reflow
const newHeight = elem.offsetHeight;
elem.classList.remove('expanded'); elem.classList.remove('expanded');
elem.style.height = '0'; elem.style.height = '0';
@ -50,7 +43,6 @@ import 'emby-button';
}, 300); }, 300);
const icon = button.querySelector('.material-icons'); const icon = button.querySelector('.material-icons');
//icon.innerHTML = 'expand_more';
icon.classList.remove('emby-collapse-expandIconExpanded'); icon.classList.remove('emby-collapse-expandIconExpanded');
} }

View file

@ -18,7 +18,6 @@ import 'webcomponents';
function onClick(e) { function onClick(e) {
const itemsContainer = this; const itemsContainer = this;
const target = e.target;
let multiSelect = itemsContainer.multiSelect; let multiSelect = itemsContainer.multiSelect;
if (multiSelect) { if (multiSelect) {

View file

@ -13,23 +13,22 @@ import 'webcomponents';
import('text!./emby-progressring.template.html').then(({default: template}) => { import('text!./emby-progressring.template.html').then(({default: template}) => {
instance.innerHTML = template; instance.innerHTML = template;
//if (window.MutationObserver) { if (window.MutationObserver) {
// // create an observer instance // create an observer instance
// var observer = new MutationObserver(function (mutations) { var observer = new MutationObserver(function (mutations) {
// mutations.forEach(function (mutation) { 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: // pass in the target node, as well as the observer options
// var config = { attributes: true, childList: false, characterData: false }; observer.observe(instance, config);
// // pass in the target node, as well as the observer options instance.observer = observer;
// observer.observe(instance, config); }
// instance.observer = observer;
//}
instance.setProgress(parseFloat(instance.getAttribute('data-progress') || '0')); instance.setProgress(parseFloat(instance.getAttribute('data-progress') || '0'));
}); });

View file

@ -37,7 +37,6 @@ import 'webcomponents';
this.classList.add('mdl-radio__button'); this.classList.add('mdl-radio__button');
let labelElement = this.parentNode; 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-radio');
labelElement.classList.add('mdl-js-radio'); labelElement.classList.add('mdl-js-radio');
labelElement.classList.add('mdl-js-ripple-effect'); labelElement.classList.add('mdl-js-ripple-effect');

View file

@ -78,7 +78,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) { if (icon) {
icon.classList.add('favorite'); icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating'); icon.classList.remove('ratingbutton-icon-withrating');
//icon.innerHTML = 'thumb_up';
} }
button.classList.remove('ratingbutton-withrating'); button.classList.remove('ratingbutton-withrating');
@ -87,7 +86,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) { if (icon) {
icon.classList.add('favorite'); icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating'); icon.classList.remove('ratingbutton-icon-withrating');
//icon.innerHTML = 'thumb_down';
} }
button.classList.remove('ratingbutton-withrating'); button.classList.remove('ratingbutton-withrating');
@ -96,7 +94,6 @@ import EmbyButtonPrototype from 'emby-button';
if (icon) { if (icon) {
icon.classList.add('favorite'); icon.classList.add('favorite');
icon.classList.remove('ratingbutton-icon-withrating'); icon.classList.remove('ratingbutton-icon-withrating');
//icon.innerHTML = 'thumbs_up_down';
} }
button.classList.remove('ratingbutton-withrating'); button.classList.remove('ratingbutton-withrating');
} }

View file

@ -36,6 +36,7 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);
} }
function updateScrollButtons(scrollButtons, scrollSize, scrollPos, scrollWidth) { function updateScrollButtons(scrollButtons, scrollSize, scrollPos, scrollWidth) {
// TODO: Check if hack is really needed
// hack alert add twenty for rounding errors // hack alert add twenty for rounding errors
if (scrollWidth <= scrollSize + 20) { if (scrollWidth <= scrollSize + 20) {
scrollButtons.scrollButtonsLeft.classList.add('hide'); scrollButtons.scrollButtonsLeft.classList.add('hide');
@ -122,7 +123,6 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);
const direction = this.getAttribute('data-direction'); const direction = this.getAttribute('data-direction');
const scrollSize = getScrollSize(scroller); const scrollSize = getScrollSize(scroller);
const scrollPos = getScrollPosition(scroller); const scrollPos = getScrollPosition(scroller);
const scrollWidth = getScrollWidth(scroller);
let newPos; let newPos;
if (direction === 'left') { if (direction === 'left') {

View file

@ -146,8 +146,9 @@ import 'emby-input';
return; return;
} }
// TODO: Not sure what this is trying to accomplish.
if (enableWidthWithTransform == null) { if (enableWidthWithTransform == null) {
//enableWidthWithTransform = browser.supportsCssAnimation(); enableWidthWithTransform = browser.supportsCssAnimation();
} }
this.setAttribute('data-embyslider', 'true'); this.setAttribute('data-embyslider', 'true');

View file

@ -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) { function fadeInRight(elem) {
const pct = browser.mobile ? '4%' : '0.5%'; const pct = browser.mobile ? '4%' : '0.5%';
@ -263,7 +256,6 @@ import 'scrollStyles';
onClick.call(tabs, { onClick.call(tabs, {
target: tabButtons[selected] target: tabButtons[selected]
}); });
//tabButtons[selected].click();
} }
}; };
@ -330,8 +322,6 @@ import 'scrollStyles';
}; };
EmbyTabs.setTabEnabled = function (index, enabled) { EmbyTabs.setTabEnabled = function (index, enabled) {
const tabs = this;
const btn = this.querySelector('.emby-tab-button[data-index="' + index + '"]'); const btn = this.querySelector('.emby-tab-button[data-index="' + index + '"]');
if (enabled) { if (enabled) {

View file

@ -47,7 +47,6 @@ import 'emby-input';
return; return;
} }
let newHeight = 0; let newHeight = 0;
let hasGrown = false;
if ((textarea.scrollHeight - offset) > self.maxAllowedHeight) { if ((textarea.scrollHeight - offset) > self.maxAllowedHeight) {
textarea.style.overflowY = 'scroll'; textarea.style.overflowY = 'scroll';

View file

@ -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 // Polyfill to add support for preventScroll by focus function
if (HTMLElement.prototype.nativeFocus === undefined) { if (HTMLElement.prototype.nativeFocus === undefined) {

View file

@ -872,12 +872,10 @@ define(['browser', 'layoutManager', 'dom', 'focusManager', 'ResizeObserver', 'sc
if (item === undefined) { if (item === undefined) {
this.slideTo(this._pos[location], immediate); this.slideTo(this._pos[location], immediate);
} else { } else {
if (!transform) {
//if (!transform) { item.scrollIntoView();
return;
// item.scrollIntoView(); }
// return;
//}
var itemPos = this.getPos(item); var itemPos = this.getPos(item);

View file

@ -1,14 +1,7 @@
define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (connectionManager, globalize, userSettings, appHost) { define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (connectionManager, globalize, userSettings, appHost) {
'use strict'; 'use strict';
function getRequirePromise(deps) { // TODO: Replace with date-fns
return new Promise(function (resolve, reject) {
require(deps, resolve);
});
}
// https://stackoverflow.com/questions/6117814/get-week-of-year-in-javascript-like-in-php // https://stackoverflow.com/questions/6117814/get-week-of-year-in-javascript-like-in-php
function getWeek(date) { function getWeek(date) {
var d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())); 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(); var now = new Date();
// TODO: Use date-fns
userSettingsKey += now.getFullYear() + '-w' + getWeek(now); userSettingsKey += now.getFullYear() + '-w' + getWeek(now);
if (userSettings.get(userSettingsKey, false) === '1') { if (userSettings.get(userSettingsKey, false) === '1') {

View file

@ -140,8 +140,6 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
xhrSetup: function(xhr, url) { xhrSetup: function(xhr, url) {
xhr.withCredentials = true; xhr.withCredentials = true;
} }
//appendErrorMaxRetry: 6,
//debug: true
}); });
hls.loadSource(val); hls.loadSource(val);
hls.attachMedia(elem); hls.attachMedia(elem);

View file

@ -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) { 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'; 'use strict';
/* globals cast */ /* 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) { function enableNativeTrackSupport(currentSrc, track) {
if (track) { if (track) {
@ -129,11 +111,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
return useHtml ? result.replace(/\n/gi, '<br>') : result; return useHtml ? result.replace(/\n/gi, '<br>') : result;
} }
function setTracks(elem, tracks, item, mediaSource) {
elem.innerHTML = getTracksHtml(tracks, item, mediaSource);
}
function getTextTrackUrl(track, item, format) { function getTextTrackUrl(track, item, format) {
if (itemHelper.isLocalItem(item) && track.Path) { if (itemHelper.isLocalItem(item) && track.Path) {
@ -148,22 +125,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
return url; 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 '<track id="textTrack' + t.Index + '" label="' + label + '" kind="subtitles" src="' + getTextTrackUrl(t, item) + '" srclang="' + language + '"' + defaultAttribute + '></track>';
}).join('');
}
function getDefaultProfile() { function getDefaultProfile() {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
@ -191,12 +152,9 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
var videoDialog; var videoDialog;
var winJsPlaybackItem;
var subtitleTrackIndexToSetOnPlaying; var subtitleTrackIndexToSetOnPlaying;
var audioTrackIndexToSetOnPlaying; var audioTrackIndexToSetOnPlaying;
var lastCustomTrackMs = 0;
var currentClock; var currentClock;
var currentSubtitlesOctopus; var currentSubtitlesOctopus;
var currentAssRenderer; var currentAssRenderer;
@ -334,8 +292,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
xhrSetup: function(xhr, xhr_url) { xhrSetup: function(xhr, xhr_url) {
xhr.withCredentials = true; xhr.withCredentials = true;
} }
//appendErrorMaxRetry: 6,
//debug: true
}); });
hls.loadSource(url); hls.loadSource(url);
hls.attachMedia(elem); 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) { function setCurrentSrcChromecast(instance, elem, options, url) {
elem.autoplay = true; elem.autoplay = true;
@ -441,7 +348,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
var media = event.data.media || {}; var media = event.data.media || {};
var url = media.contentId; var url = media.contentId;
var contentType = media.contentType.toLowerCase(); var contentType = media.contentType.toLowerCase();
var options = media.customData;
var protocol; var protocol;
var ext = 'm3u8'; var ext = 'm3u8';
@ -486,12 +392,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
mediaManager.defaultOnLoad = mediaManager.onLoad.bind(mediaManager); mediaManager.defaultOnLoad = mediaManager.onLoad.bind(mediaManager);
mediaManager.onLoad = onMediaManagerLoadMedia.bind(self); 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.defaultOnStop = mediaManager.onStop.bind(mediaManager);
mediaManager.onStop = function (event) { mediaManager.onStop = function (event) {
playbackManager.stop(); playbackManager.stop();
@ -516,8 +416,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
htmlMediaHelper.destroyFlvPlayer(self); htmlMediaHelper.destroyFlvPlayer(self);
htmlMediaHelper.destroyCastPlayer(self); htmlMediaHelper.destroyCastPlayer(self);
var tracks = getMediaStreamTextTracks(options.mediaSource);
subtitleTrackIndexToSetOnPlaying = options.mediaSource.DefaultSubtitleStreamIndex == null ? -1 : options.mediaSource.DefaultSubtitleStreamIndex; subtitleTrackIndexToSetOnPlaying = options.mediaSource.DefaultSubtitleStreamIndex == null ? -1 : options.mediaSource.DefaultSubtitleStreamIndex;
if (subtitleTrackIndexToSetOnPlaying != null && subtitleTrackIndexToSetOnPlaying >= 0) { if (subtitleTrackIndexToSetOnPlaying != null && subtitleTrackIndexToSetOnPlaying >= 0) {
var initialSubtitleStream = options.mediaSource.MediaStreams[subtitleTrackIndexToSetOnPlaying]; var initialSubtitleStream = options.mediaSource.MediaStreams[subtitleTrackIndexToSetOnPlaying];
@ -535,14 +433,7 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
elem.crossOrigin = crossOrigin; elem.crossOrigin = crossOrigin;
} }
/*if (htmlMediaHelper.enableHlsShakaPlayer(options.item, options.mediaSource, 'Video') && val.indexOf('.m3u8') !== -1) { if (browser.chromecast && val.indexOf('.m3u8') !== -1 && options.mediaSource.RunTimeTicks) {
setTracks(elem, tracks, options.item, options.mediaSource);
return setSrcWithShakaPlayer(self, elem, options, val);
} else*/ if (browser.chromecast && val.indexOf('.m3u8') !== -1 && options.mediaSource.RunTimeTicks) {
return setCurrentSrcChromecast(self, elem, options, val); return setCurrentSrcChromecast(self, elem, options, val);
} else if (htmlMediaHelper.enableHlsJsPlayer(options.mediaSource.RunTimeTicks, 'Video') && val.indexOf('.m3u8') !== -1) { } else if (htmlMediaHelper.enableHlsJsPlayer(options.mediaSource.RunTimeTicks, 'Video') && val.indexOf('.m3u8') !== -1) {
return setSrcWithHlsJs(self, elem, options, val); return setSrcWithHlsJs(self, elem, options, val);
@ -1062,7 +953,6 @@ define(['browser', 'require', 'events', 'apphost', 'loading', 'dom', 'playbackMa
destroyCustomTrack(videoElement); destroyCustomTrack(videoElement);
customTrackIndex = track.Index; customTrackIndex = track.Index;
renderTracksEvents(videoElement, track, item); renderTracksEvents(videoElement, track, item);
lastCustomTrackMs = 0;
} }
function renderSsaAss(videoElement, track, item) { function renderSsaAss(videoElement, track, item) {

View file

@ -59,23 +59,6 @@ define(['pluginManager'], function (pluginManager) {
return elem.animate(keyframes, timing); 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) { function swing(elem, iterations) {
var keyframes = [ var keyframes = [
{ transform: 'translate(0%)', offset: 0 }, { transform: 'translate(0%)', offset: 0 },
@ -118,7 +101,6 @@ define(['pluginManager'], function (pluginManager) {
} }
function rotateIn(elem, iterations) { function rotateIn(elem, iterations) {
var transformOrigin = elem.style['transform-origin'];
var keyframes = [{ transform: 'rotate3d(0, 0, 1, -200deg)', opacity: '0', transformOrigin: 'center', offset: 0 }, var keyframes = [{ transform: 'rotate3d(0, 0, 1, -200deg)', opacity: '0', transformOrigin: 'center', offset: 0 },
{ transform: 'none', opacity: '1', transformOrigin: 'center', offset: 1 }]; { transform: 'none', opacity: '1', transformOrigin: 'center', offset: 1 }];
var timing = { duration: 900, iterations: iterations }; var timing = { duration: 900, iterations: iterations };
@ -126,7 +108,6 @@ define(['pluginManager'], function (pluginManager) {
} }
function rotateOut(elem, iterations) { function rotateOut(elem, iterations) {
var transformOrigin = elem.style['transform-origin'];
var keyframes = [{ transform: 'none', opacity: '1', transformOrigin: 'center', offset: 0 }, var keyframes = [{ transform: 'none', opacity: '1', transformOrigin: 'center', offset: 0 },
{ transform: 'rotate3d(0, 0, 1, 200deg)', opacity: '0', transformOrigin: 'center', offset: 1 }]; { transform: 'rotate3d(0, 0, 1, 200deg)', opacity: '0', transformOrigin: 'center', offset: 1 }];
var timing = { duration: 900, iterations: iterations }; var timing = { duration: 900, iterations: iterations };

View file

@ -101,8 +101,6 @@ define([], function () {
} }
var animation = false; var animation = false;
var animationstring = 'animation';
var keyframeprefix = '';
var domPrefixes = ['Webkit', 'O', 'Moz']; var domPrefixes = ['Webkit', 'O', 'Moz'];
var pfx = ''; var pfx = '';
var elm = document.createElement('div'); var elm = document.createElement('div');
@ -115,8 +113,6 @@ define([], function () {
for (var i = 0; i < domPrefixes.length; i++) { for (var i = 0; i < domPrefixes.length; i++) {
if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) { if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {
pfx = domPrefixes[i]; pfx = domPrefixes[i];
animationstring = pfx + 'Animation';
keyframeprefix = '-' + pfx.toLowerCase() + '-';
animation = true; animation = true;
break; break;
} }

View file

@ -1,6 +1,5 @@
/* eslint-disable indent */
import browser from 'browser'; /* eslint-disable indent */
export function getDeviceIcon(device) { export function getDeviceIcon(device) {
var baseUrl = 'assets/img/devices/'; var baseUrl = 'assets/img/devices/';

View file

@ -229,7 +229,6 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
function openMainDrawer() { function openMainDrawer() {
navDrawerInstance.open(); navDrawerInstance.open();
lastOpenTime = new Date().getTime();
} }
function onMainDrawerOpened() { function onMainDrawerOpened() {
@ -575,15 +574,12 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
} }
function updateLibraryMenu(user) { function updateLibraryMenu(user) {
// FIXME: Potential equivalent might be
// showBySelector(".lnkSyncToOtherDevices", !!user.Policy.EnableContentDownloading);
if (!user) { if (!user) {
showBySelector('.libraryMenuDownloads', false); showBySelector('.libraryMenuDownloads', false);
showBySelector('.lnkSyncToOtherDevices', false); showBySelector('.lnkSyncToOtherDevices', false);
return void showBySelector('.userMenuOptions', false); return void showBySelector('.userMenuOptions', false);
} }
// FIXME: Potentially the same as above
if (user.Policy.EnableContentDownloading) { if (user.Policy.EnableContentDownloading) {
showBySelector('.lnkSyncToOtherDevices', true); showBySelector('.lnkSyncToOtherDevices', true);
} else { } else {
@ -838,7 +834,6 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
var enableLibraryNavDrawerHome = !layoutManager.tv; var enableLibraryNavDrawerHome = !layoutManager.tv;
var skinHeader = document.querySelector('.skinHeader'); var skinHeader = document.querySelector('.skinHeader');
var requiresUserRefresh = true; var requiresUserRefresh = true;
var lastOpenTime = new Date().getTime();
window.LibraryMenu = { window.LibraryMenu = {
getTopParentId: getTopParentId, getTopParentId: getTopParentId,
onHardwareMenuButtonClick: function () { onHardwareMenuButtonClick: function () {

View file

@ -64,10 +64,7 @@ define(['layoutManager', 'datetime', 'cardBuilder', 'apphost'], function (layout
for (i = 0, length = groups.length; i < length; i++) { for (i = 0, length = groups.length; i < length; i++) {
var group = groups[i]; var group = groups[i];
var supportsImageAnalysis = appHost.supports('imageanalysis');
var cardLayout = appHost.preferVisualCards || supportsImageAnalysis;
cardLayout = true;
if (group.name) { if (group.name) {
html += '<div class="verticalSection">'; html += '<div class="verticalSection">';
html += '<h2 class="sectionTitle sectionTitle-cards padded-left">' + group.name + '</h2>'; html += '<h2 class="sectionTitle sectionTitle-cards padded-left">' + group.name + '</h2>';
@ -86,21 +83,21 @@ define(['layoutManager', 'datetime', 'cardBuilder', 'apphost'], function (layout
html += cardBuilder.getCardsHtml({ html += cardBuilder.getCardsHtml({
items: group.items, items: group.items,
shape: cardLayout ? getBackdropShape() : enableScrollX() ? 'autoOverflow' : 'autoVertical', shape: getBackdropShape(),
showParentTitleOrTitle: true, showParentTitleOrTitle: true,
showAirTime: true, showAirTime: true,
showAirEndTime: true, showAirEndTime: true,
showChannelName: !cardLayout, showChannelName: false,
cardLayout: cardLayout, cardLayout: true,
centerText: !cardLayout, centerText: false,
action: 'edit', action: 'edit',
cardFooterAside: 'none', cardFooterAside: 'none',
preferThumb: !!cardLayout || 'auto', preferThumb: true,
defaultShape: cardLayout ? null : 'portrait', defaultShape: null,
coverImage: true, coverImage: true,
allowBottomPadding: false, allowBottomPadding: false,
overlayText: false, overlayText: false,
showChannelLogo: cardLayout showChannelLogo: true
}); });
html += '</div>'; html += '</div>';

View file

@ -14,7 +14,7 @@ function getWindowLocationSearch(win) {
return search || ''; return search || '';
} }
function getParameterByName(name, url) { window.getParameterByName = function (name, url) {
'use strict'; 'use strict';
name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
@ -27,7 +27,7 @@ function getParameterByName(name, url) {
} }
return decodeURIComponent(results[1].replace(/\+/g, ' ')); return decodeURIComponent(results[1].replace(/\+/g, ' '));
} };
function pageClassOn(eventName, className, fn) { function pageClassOn(eventName, className, fn) {
'use strict'; 'use strict';
@ -41,7 +41,7 @@ function pageClassOn(eventName, className, fn) {
}); });
} }
function pageIdOn(eventName, id, fn) { window.pageIdOn = function(eventName, id, fn) {
'use strict'; 'use strict';
document.addEventListener(eventName, function (event) { document.addEventListener(eventName, function (event) {
@ -51,7 +51,7 @@ function pageIdOn(eventName, id, fn) {
fn.call(target, event); fn.call(target, event);
} }
}); });
} };
var Dashboard = { var Dashboard = {
getCurrentUser: function () { getCurrentUser: function () {
@ -236,9 +236,7 @@ var Dashboard = {
var AppInfo = {}; var AppInfo = {};
!function () { function initClient() {
'use strict';
function defineConnectionManager(connectionManager) { function defineConnectionManager(connectionManager) {
window.ConnectionManager = connectionManager; window.ConnectionManager = connectionManager;
define('connectionManager', [], function () { define('connectionManager', [], function () {
@ -1127,7 +1125,9 @@ var AppInfo = {};
})(); })();
return onWebComponentsReady(); return onWebComponentsReady();
}(); }
initClient();
pageClassOn('viewshow', 'standalonePage', function () { pageClassOn('viewshow', 'standalonePage', function () {
document.querySelector('.skinHeader').classList.add('noHeaderRight'); document.querySelector('.skinHeader').classList.add('noHeaderRight');

View file

@ -227,7 +227,6 @@
"HeaderPassword": "كلمة السر", "HeaderPassword": "كلمة السر",
"HeaderPasswordReset": "إعادة تهيئة كلمة السر", "HeaderPasswordReset": "إعادة تهيئة كلمة السر",
"HeaderPaths": "مسارات", "HeaderPaths": "مسارات",
"HeaderPendingInvitations": "الدعوات المعلقة",
"HeaderPeople": "الناس", "HeaderPeople": "الناس",
"HeaderPinCodeReset": "أعد تهيئة الرمز الشخصي", "HeaderPinCodeReset": "أعد تهيئة الرمز الشخصي",
"HeaderPlayAll": "تشغيل الكل", "HeaderPlayAll": "تشغيل الكل",

View file

@ -224,7 +224,6 @@
"HeaderParentalRatings": "Родителска оценка", "HeaderParentalRatings": "Родителска оценка",
"HeaderPassword": "Парола", "HeaderPassword": "Парола",
"HeaderPaths": "Пътища", "HeaderPaths": "Пътища",
"HeaderPendingInvitations": "Чакащи покани",
"HeaderPeople": "Хора", "HeaderPeople": "Хора",
"HeaderPlayAll": "Пускане на всичко", "HeaderPlayAll": "Пускане на всичко",
"HeaderPlayOn": "Пускане на", "HeaderPlayOn": "Пускане на",

View file

@ -212,7 +212,6 @@
"HeaderPassword": "Contrasenya", "HeaderPassword": "Contrasenya",
"HeaderPasswordReset": "Reiniciar Contrasenya", "HeaderPasswordReset": "Reiniciar Contrasenya",
"HeaderPaths": "Directoris", "HeaderPaths": "Directoris",
"HeaderPendingInvitations": "Invitacions Pendents",
"HeaderPeople": "Gent", "HeaderPeople": "Gent",
"HeaderPlayAll": "Reprodueix Tot", "HeaderPlayAll": "Reprodueix Tot",
"HeaderPlaybackError": "Error de Reproducció", "HeaderPlaybackError": "Error de Reproducció",

View file

@ -341,7 +341,6 @@
"HeaderPassword": "Heslo", "HeaderPassword": "Heslo",
"HeaderPasswordReset": "Obnova hesla", "HeaderPasswordReset": "Obnova hesla",
"HeaderPaths": "Cesty", "HeaderPaths": "Cesty",
"HeaderPendingInvitations": "Čekající pozvánky",
"HeaderPeople": "Lidé", "HeaderPeople": "Lidé",
"HeaderPinCodeReset": "Obnovit Pin kód", "HeaderPinCodeReset": "Obnovit Pin kód",
"HeaderPlayAll": "Přehrát vše", "HeaderPlayAll": "Přehrát vše",

View file

@ -296,7 +296,6 @@
"HeaderPassword": "Adgangskode", "HeaderPassword": "Adgangskode",
"HeaderPasswordReset": "Nulstil adgangskode", "HeaderPasswordReset": "Nulstil adgangskode",
"HeaderPaths": "Stier", "HeaderPaths": "Stier",
"HeaderPendingInvitations": "Ventende invitationer",
"HeaderPeople": "Mennesker", "HeaderPeople": "Mennesker",
"HeaderPinCodeReset": "Nulstil pinkode", "HeaderPinCodeReset": "Nulstil pinkode",
"HeaderPlayAll": "Afspil Alle", "HeaderPlayAll": "Afspil Alle",

View file

@ -381,7 +381,6 @@
"HeaderPassword": "Passwort", "HeaderPassword": "Passwort",
"HeaderPasswordReset": "Passwort zurücksetzen", "HeaderPasswordReset": "Passwort zurücksetzen",
"HeaderPaths": "Pfade", "HeaderPaths": "Pfade",
"HeaderPendingInvitations": "Ausstehende Einladungen",
"HeaderPeople": "Personen", "HeaderPeople": "Personen",
"HeaderPhotoAlbums": "Fotoalben", "HeaderPhotoAlbums": "Fotoalben",
"HeaderPinCodeReset": "PIN Code zurücksetzen", "HeaderPinCodeReset": "PIN Code zurücksetzen",

View file

@ -350,7 +350,6 @@
"HeaderPassword": "Κωδικός", "HeaderPassword": "Κωδικός",
"HeaderPasswordReset": "Επαναφορά του κωδικού πρόσβασης", "HeaderPasswordReset": "Επαναφορά του κωδικού πρόσβασης",
"HeaderPaths": "Διαδρομή", "HeaderPaths": "Διαδρομή",
"HeaderPendingInvitations": "Εκκρεμείς προσκλήσεις",
"HeaderPhotoAlbums": "Άλμπουμ φωτογραφιών", "HeaderPhotoAlbums": "Άλμπουμ φωτογραφιών",
"HeaderPinCodeReset": "Επαναφορά Pin Code", "HeaderPinCodeReset": "Επαναφορά Pin Code",
"HeaderPlayAll": "Αναπαραγωγή Όλων", "HeaderPlayAll": "Αναπαραγωγή Όλων",

View file

@ -446,7 +446,6 @@
"HeaderPassword": "Password", "HeaderPassword": "Password",
"HeaderPasswordReset": "Password Reset", "HeaderPasswordReset": "Password Reset",
"HeaderPaths": "Paths", "HeaderPaths": "Paths",
"HeaderPendingInvitations": "Pending Invitations",
"CopyStreamURL": "Copy Stream URL", "CopyStreamURL": "Copy Stream URL",
"CopyStreamURLSuccess": "URL copied successfully.", "CopyStreamURLSuccess": "URL copied successfully.",
"XmlDocumentAttributeListHelp": "These attributes are applied to the root element of every XML response.", "XmlDocumentAttributeListHelp": "These attributes are applied to the root element of every XML response.",

View file

@ -438,7 +438,6 @@
"HeaderPassword": "Password", "HeaderPassword": "Password",
"HeaderPasswordReset": "Password Reset", "HeaderPasswordReset": "Password Reset",
"HeaderPaths": "Paths", "HeaderPaths": "Paths",
"HeaderPendingInvitations": "Pending Invitations",
"HeaderPeople": "People", "HeaderPeople": "People",
"HeaderPhotoAlbums": "Photo Albums", "HeaderPhotoAlbums": "Photo Albums",
"HeaderPinCodeReset": "Reset Pin Code", "HeaderPinCodeReset": "Reset Pin Code",

View file

@ -534,7 +534,6 @@
"HeaderPinCodeReset": "Restablecer código PIN", "HeaderPinCodeReset": "Restablecer código PIN",
"HeaderPhotoAlbums": "Álbumes de fotos", "HeaderPhotoAlbums": "Álbumes de fotos",
"HeaderPeople": "Personas", "HeaderPeople": "Personas",
"HeaderPendingInvitations": "Invitaciones pendientes",
"HeaderPaths": "Rutas", "HeaderPaths": "Rutas",
"HeaderPasswordReset": "Restablecer contraseña", "HeaderPasswordReset": "Restablecer contraseña",
"HeaderPassword": "Contraseña", "HeaderPassword": "Contraseña",

View file

@ -392,7 +392,6 @@
"HeaderPassword": "Contraseña", "HeaderPassword": "Contraseña",
"HeaderPasswordReset": "Restablecer contraseña", "HeaderPasswordReset": "Restablecer contraseña",
"HeaderPaths": "Rutas", "HeaderPaths": "Rutas",
"HeaderPendingInvitations": "Invitaciones pendientes",
"HeaderPeople": "Personas", "HeaderPeople": "Personas",
"HeaderPhotoAlbums": "Álbumes de fotos", "HeaderPhotoAlbums": "Álbumes de fotos",
"HeaderPinCodeReset": "Restablecer código PIN", "HeaderPinCodeReset": "Restablecer código PIN",

View file

@ -340,7 +340,6 @@
"HeaderPassword": "Contraseña", "HeaderPassword": "Contraseña",
"HeaderPasswordReset": "Reestablecer contraseña", "HeaderPasswordReset": "Reestablecer contraseña",
"HeaderPaths": "Ruta", "HeaderPaths": "Ruta",
"HeaderPendingInvitations": "Invitaciones pendientes",
"HeaderPeople": "Gente", "HeaderPeople": "Gente",
"HeaderPinCodeReset": "Restablecer código PIN", "HeaderPinCodeReset": "Restablecer código PIN",
"HeaderPlayAll": "Reproducir todo", "HeaderPlayAll": "Reproducir todo",

View file

@ -1096,7 +1096,6 @@
"HeaderPinCodeReset": "Restablecer código PIN", "HeaderPinCodeReset": "Restablecer código PIN",
"HeaderPhotoAlbums": "Álbumes de fotos", "HeaderPhotoAlbums": "Álbumes de fotos",
"HeaderPeople": "Personas", "HeaderPeople": "Personas",
"HeaderPendingInvitations": "Invitaciones pendientes",
"HeaderPaths": "Rutas", "HeaderPaths": "Rutas",
"HeaderPasswordReset": "Restablecer contraseña", "HeaderPasswordReset": "Restablecer contraseña",
"HeaderPassword": "Contraseña", "HeaderPassword": "Contraseña",

View file

@ -329,7 +329,6 @@
"HeaderPinCodeReset": "بازنشانی پین کد", "HeaderPinCodeReset": "بازنشانی پین کد",
"HeaderPhotoAlbums": "آلبوم‌های عکس", "HeaderPhotoAlbums": "آلبوم‌های عکس",
"HeaderPeople": "افراد", "HeaderPeople": "افراد",
"HeaderPendingInvitations": "دعوت‌های در انتظار",
"HeaderPasswordReset": "بازنشانی گذرواژه", "HeaderPasswordReset": "بازنشانی گذرواژه",
"HeaderPassword": "گذرواژه", "HeaderPassword": "گذرواژه",
"HeaderParentalRatings": "رتبه بندی والدین", "HeaderParentalRatings": "رتبه بندی والدین",

View file

@ -480,7 +480,6 @@
"HeaderPreferredMetadataLanguage": "Ensisijainen metadatan kieli", "HeaderPreferredMetadataLanguage": "Ensisijainen metadatan kieli",
"HeaderPinCodeReset": "Nollaa PIN-koodi", "HeaderPinCodeReset": "Nollaa PIN-koodi",
"HeaderPhotoAlbums": "Kuva-albumit", "HeaderPhotoAlbums": "Kuva-albumit",
"HeaderPendingInvitations": "Odottavat kutsut",
"HeaderPaths": "Polut", "HeaderPaths": "Polut",
"HeaderPasswordReset": "Salasanan nollaus", "HeaderPasswordReset": "Salasanan nollaus",
"HeaderNextVideoPlayingInValue": "Seuraava video alkaa {0}", "HeaderNextVideoPlayingInValue": "Seuraava video alkaa {0}",

View file

@ -387,7 +387,6 @@
"HeaderPassword": "Mot de passe", "HeaderPassword": "Mot de passe",
"HeaderPasswordReset": "Mot de passe réinitialisé", "HeaderPasswordReset": "Mot de passe réinitialisé",
"HeaderPaths": "Chemins", "HeaderPaths": "Chemins",
"HeaderPendingInvitations": "Invitations en attente",
"HeaderPeople": "Personnes", "HeaderPeople": "Personnes",
"HeaderPhotoAlbums": "Albums photo", "HeaderPhotoAlbums": "Albums photo",
"HeaderPinCodeReset": "Réinitialiser le code PIN", "HeaderPinCodeReset": "Réinitialiser le code PIN",

View file

@ -616,7 +616,6 @@
"HeaderPinCodeReset": "איפוס קוד סיכה", "HeaderPinCodeReset": "איפוס קוד סיכה",
"HeaderPhotoAlbums": "אלבומי תמונות", "HeaderPhotoAlbums": "אלבומי תמונות",
"HeaderPeople": "אנשים", "HeaderPeople": "אנשים",
"HeaderPendingInvitations": "הזמנות ממתינות",
"HeaderPasswordReset": "איפוס סיסמה", "HeaderPasswordReset": "איפוס סיסמה",
"HeaderPassword": "סיסמה", "HeaderPassword": "סיסמה",
"HeaderOtherItems": "פריטים אחרים", "HeaderOtherItems": "פריטים אחרים",

View file

@ -256,7 +256,6 @@
"HeaderPassword": "Lozinka", "HeaderPassword": "Lozinka",
"HeaderPasswordReset": "Poništenje lozinke", "HeaderPasswordReset": "Poništenje lozinke",
"HeaderPaths": "Putanje", "HeaderPaths": "Putanje",
"HeaderPendingInvitations": "Neriješeni pozivi",
"HeaderPinCodeReset": "Poništi PIN", "HeaderPinCodeReset": "Poništi PIN",
"HeaderPlayback": "Reprodukcija medija", "HeaderPlayback": "Reprodukcija medija",
"HeaderPleaseSignIn": "Molim, prijavite se", "HeaderPleaseSignIn": "Molim, prijavite se",

View file

@ -762,7 +762,6 @@
"HeaderNextVideoPlayingInValue": "Következő videó lejátszása {0}", "HeaderNextVideoPlayingInValue": "Következő videó lejátszása {0}",
"HeaderOtherItems": "Egyéb elemek", "HeaderOtherItems": "Egyéb elemek",
"HeaderPasswordReset": "Jelszó visszaállítása", "HeaderPasswordReset": "Jelszó visszaállítása",
"HeaderPendingInvitations": "Függő meghívók",
"HeaderPhotoAlbums": "Fényképalbumok", "HeaderPhotoAlbums": "Fényképalbumok",
"HeaderPlaybackError": "Lejátszási hiba", "HeaderPlaybackError": "Lejátszási hiba",
"HeaderProfileInformation": "Profil információ", "HeaderProfileInformation": "Profil információ",

View file

@ -371,7 +371,6 @@
"HeaderParentalRatings": "Valutazioni genitori", "HeaderParentalRatings": "Valutazioni genitori",
"HeaderPasswordReset": "Reset della Password", "HeaderPasswordReset": "Reset della Password",
"HeaderPaths": "Percorsi", "HeaderPaths": "Percorsi",
"HeaderPendingInvitations": "Inviti in sospeso",
"HeaderPeople": "Persone", "HeaderPeople": "Persone",
"HeaderPhotoAlbums": "Album foto", "HeaderPhotoAlbums": "Album foto",
"HeaderPinCodeReset": "Resetta il codice PIN", "HeaderPinCodeReset": "Resetta il codice PIN",

View file

@ -412,7 +412,6 @@
"HeaderPassword": "パスワード", "HeaderPassword": "パスワード",
"HeaderPasswordReset": "パスワードリセット", "HeaderPasswordReset": "パスワードリセット",
"HeaderPaths": "パス", "HeaderPaths": "パス",
"HeaderPendingInvitations": "保留中の招待状",
"HeaderPeople": "人", "HeaderPeople": "人",
"HeaderPhotoAlbums": "フォトアルバム", "HeaderPhotoAlbums": "フォトアルバム",
"HeaderPinCodeReset": "PINコードのリセット", "HeaderPinCodeReset": "PINコードのリセット",

View file

@ -409,7 +409,6 @@
"HeaderPassword": "Paról", "HeaderPassword": "Paról",
"HeaderPasswordReset": "Paróldi ysyrý", "HeaderPasswordReset": "Paróldi ysyrý",
"HeaderPaths": "Joldar", "HeaderPaths": "Joldar",
"HeaderPendingInvitations": "Bógelis shaqyrýlar",
"HeaderPeople": "Adamdar", "HeaderPeople": "Adamdar",
"HeaderPhotoAlbums": "Fotoálbomdar", "HeaderPhotoAlbums": "Fotoálbomdar",
"HeaderPinCodeReset": "PIN-kodty ysyrý", "HeaderPinCodeReset": "PIN-kodty ysyrý",

View file

@ -195,7 +195,6 @@
"HeaderPassword": "비밀번호", "HeaderPassword": "비밀번호",
"HeaderPasswordReset": "비밀번호 재설정", "HeaderPasswordReset": "비밀번호 재설정",
"HeaderPaths": "경로", "HeaderPaths": "경로",
"HeaderPendingInvitations": "초대 보류",
"HeaderPinCodeReset": "PIN 코드 초기화", "HeaderPinCodeReset": "PIN 코드 초기화",
"HeaderPlayAll": "모두 재생", "HeaderPlayAll": "모두 재생",
"HeaderPlayback": "미디어 재생", "HeaderPlayback": "미디어 재생",

View file

@ -985,7 +985,6 @@
"HeaderOnNow": "Gyvai dabar", "HeaderOnNow": "Gyvai dabar",
"HeaderOtherItems": "Kiti elementai", "HeaderOtherItems": "Kiti elementai",
"HeaderParentalRatings": "Amžiaus kategorijos", "HeaderParentalRatings": "Amžiaus kategorijos",
"HeaderPendingInvitations": "Laukiantys kvietimai",
"HeaderPeople": "Žmonės", "HeaderPeople": "Žmonės",
"HeaderPhotoAlbums": "Nuotraukų albumai", "HeaderPhotoAlbums": "Nuotraukų albumai",
"HeaderPinCodeReset": "Nustatyti PIN kodą iš naujo", "HeaderPinCodeReset": "Nustatyti PIN kodą iš naujo",

View file

@ -1112,7 +1112,6 @@
"LabelAirsBeforeEpisode": "Tiešraidē pirms epizodes:", "LabelAirsBeforeEpisode": "Tiešraidē pirms epizodes:",
"LabelAirsAfterSeason": "Tiešraidē pēc sezonas:", "LabelAirsAfterSeason": "Tiešraidē pēc sezonas:",
"HeaderSubtitleProfilesHelp": "Subtitru profili apraksta ierīces atbalstītos subtitru formātus.", "HeaderSubtitleProfilesHelp": "Subtitru profili apraksta ierīces atbalstītos subtitru formātus.",
"HeaderPendingInvitations": "Gaidošie Uzaicinājumi",
"HeaderKeepSeries": "Paturēt Sēriju", "HeaderKeepSeries": "Paturēt Sēriju",
"HeaderFavoritePlaylists": "Atskaņošanas Sarakstu Favorīti", "HeaderFavoritePlaylists": "Atskaņošanas Sarakstu Favorīti",
"ApiKeysCaption": "Saraksts ar pašlaik iespējotajām API atslēgām", "ApiKeysCaption": "Saraksts ar pašlaik iespējotajām API atslēgām",

View file

@ -304,7 +304,6 @@
"HeaderPassword": "Passord", "HeaderPassword": "Passord",
"HeaderPasswordReset": "Tilbakestill passord", "HeaderPasswordReset": "Tilbakestill passord",
"HeaderPaths": "Filbaner", "HeaderPaths": "Filbaner",
"HeaderPendingInvitations": "Ventende invitasjoner",
"HeaderPeople": "Personer", "HeaderPeople": "Personer",
"HeaderPinCodeReset": "Tilbakestill PIN-kode", "HeaderPinCodeReset": "Tilbakestill PIN-kode",
"HeaderPlayAll": "Spill alle", "HeaderPlayAll": "Spill alle",

View file

@ -372,7 +372,6 @@
"HeaderPassword": "Wachtwoord", "HeaderPassword": "Wachtwoord",
"HeaderPasswordReset": "Wachtwoord resetten", "HeaderPasswordReset": "Wachtwoord resetten",
"HeaderPaths": "Paden", "HeaderPaths": "Paden",
"HeaderPendingInvitations": "Uitstaande uitnodigingen",
"HeaderPeople": "Personen", "HeaderPeople": "Personen",
"HeaderPhotoAlbums": "Foto-albums", "HeaderPhotoAlbums": "Foto-albums",
"HeaderPinCodeReset": "Reset Pincode", "HeaderPinCodeReset": "Reset Pincode",

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