mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge branch 'master' into migrate-to-ES6-39
This commit is contained in:
commit
5b91863b49
75 changed files with 2235 additions and 1731 deletions
|
@ -8,5 +8,5 @@ trim_trailing_whitespace = true
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
|
|
||||||
[json]
|
[*.json]
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
|
|
|
@ -46,7 +46,8 @@ module.exports = {
|
||||||
'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
|
'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
|
||||||
'semi': ['error'],
|
'semi': ['error'],
|
||||||
'space-before-blocks': ['error'],
|
'space-before-blocks': ['error'],
|
||||||
'space-infix-ops': 'error'
|
'space-infix-ops': 'error',
|
||||||
|
'yoda': 'error'
|
||||||
},
|
},
|
||||||
overrides: [
|
overrides: [
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
- [MrTimscampi](https://github.com/MrTimscampi)
|
- [MrTimscampi](https://github.com/MrTimscampi)
|
||||||
- [Sarab Singh](https://github.com/sarab97)
|
- [Sarab Singh](https://github.com/sarab97)
|
||||||
- [Andrei Oanca](https://github.com/OancaAndrei)
|
- [Andrei Oanca](https://github.com/OancaAndrei)
|
||||||
|
- [Cromefire_](https://github.com/cromefire)
|
||||||
|
|
||||||
# Emby Contributors
|
# Emby Contributors
|
||||||
|
|
||||||
|
|
23
package.json
23
package.json
|
@ -5,18 +5,18 @@
|
||||||
"repository": "https://github.com/jellyfin/jellyfin-web",
|
"repository": "https://github.com/jellyfin/jellyfin-web",
|
||||||
"license": "GPL-2.0-or-later",
|
"license": "GPL-2.0-or-later",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.10.5",
|
"@babel/core": "^7.11.0",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.10.1",
|
"@babel/plugin-proposal-class-properties": "^7.10.1",
|
||||||
"@babel/plugin-proposal-private-methods": "^7.10.1",
|
"@babel/plugin-proposal-private-methods": "^7.10.1",
|
||||||
"@babel/plugin-transform-modules-amd": "^7.10.5",
|
"@babel/plugin-transform-modules-amd": "^7.10.5",
|
||||||
"@babel/polyfill": "^7.8.7",
|
"@babel/polyfill": "^7.8.7",
|
||||||
"@babel/preset-env": "^7.10.3",
|
"@babel/preset-env": "^7.11.0",
|
||||||
"autoprefixer": "^9.8.5",
|
"autoprefixer": "^9.8.6",
|
||||||
"babel-eslint": "^11.0.0-beta.2",
|
"babel-eslint": "^11.0.0-beta.2",
|
||||||
"babel-loader": "^8.0.6",
|
"babel-loader": "^8.0.6",
|
||||||
"browser-sync": "^2.26.12",
|
"browser-sync": "^2.26.12",
|
||||||
"copy-webpack-plugin": "^5.1.1",
|
"copy-webpack-plugin": "^5.1.1",
|
||||||
"css-loader": "^4.0.0",
|
"css-loader": "^4.1.1",
|
||||||
"cssnano": "^4.1.10",
|
"cssnano": "^4.1.10",
|
||||||
"del": "^5.1.0",
|
"del": "^5.1.0",
|
||||||
"eslint": "^6.8.0",
|
"eslint": "^6.8.0",
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
"stylelint-config-rational-order": "^0.1.2",
|
"stylelint-config-rational-order": "^0.1.2",
|
||||||
"stylelint-no-browser-hacks": "^1.2.1",
|
"stylelint-no-browser-hacks": "^1.2.1",
|
||||||
"stylelint-order": "^4.1.0",
|
"stylelint-order": "^4.1.0",
|
||||||
"webpack": "^4.44.0",
|
"webpack": "^4.44.1",
|
||||||
"webpack-merge": "^4.2.2",
|
"webpack-merge": "^4.2.2",
|
||||||
"webpack-stream": "^5.2.1"
|
"webpack-stream": "^5.2.1"
|
||||||
},
|
},
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
"fast-text-encoding": "^1.0.3",
|
"fast-text-encoding": "^1.0.3",
|
||||||
"flv.js": "^1.5.0",
|
"flv.js": "^1.5.0",
|
||||||
"headroom.js": "^0.11.0",
|
"headroom.js": "^0.11.0",
|
||||||
"hls.js": "^0.14.6",
|
"hls.js": "^0.14.7",
|
||||||
"howler": "^2.2.0",
|
"howler": "^2.2.0",
|
||||||
"intersection-observer": "^0.11.0",
|
"intersection-observer": "^0.11.0",
|
||||||
"jellyfin-apiclient": "^1.4.1",
|
"jellyfin-apiclient": "^1.4.1",
|
||||||
|
@ -140,6 +140,7 @@
|
||||||
"src/components/playback/playerSelectionMenu.js",
|
"src/components/playback/playerSelectionMenu.js",
|
||||||
"src/components/playback/playersettingsmenu.js",
|
"src/components/playback/playersettingsmenu.js",
|
||||||
"src/components/playback/playmethodhelper.js",
|
"src/components/playback/playmethodhelper.js",
|
||||||
|
"src/components/playback/playqueuemanager.js",
|
||||||
"src/components/playback/remotecontrolautoplay.js",
|
"src/components/playback/remotecontrolautoplay.js",
|
||||||
"src/components/playback/volumeosd.js",
|
"src/components/playback/volumeosd.js",
|
||||||
"src/components/playbackSettings/playbackSettings.js",
|
"src/components/playbackSettings/playbackSettings.js",
|
||||||
|
@ -147,8 +148,10 @@
|
||||||
"src/components/playlisteditor/playlisteditor.js",
|
"src/components/playlisteditor/playlisteditor.js",
|
||||||
"src/components/playmenu.js",
|
"src/components/playmenu.js",
|
||||||
"src/components/prompt/prompt.js",
|
"src/components/prompt/prompt.js",
|
||||||
|
"src/components/refreshdialog/refreshdialog.js",
|
||||||
"src/components/sanatizefilename.js",
|
"src/components/sanatizefilename.js",
|
||||||
"src/components/scrollManager.js",
|
"src/components/scrollManager.js",
|
||||||
|
"src/plugins/htmlVideoPlayer/plugin.js",
|
||||||
"src/components/search/searchfields.js",
|
"src/components/search/searchfields.js",
|
||||||
"src/components/search/searchresults.js",
|
"src/components/search/searchresults.js",
|
||||||
"src/components/settingshelper.js",
|
"src/components/settingshelper.js",
|
||||||
|
@ -175,6 +178,12 @@
|
||||||
"src/controllers/dashboard/general.js",
|
"src/controllers/dashboard/general.js",
|
||||||
"src/controllers/dashboard/librarydisplay.js",
|
"src/controllers/dashboard/librarydisplay.js",
|
||||||
"src/controllers/dashboard/logs.js",
|
"src/controllers/dashboard/logs.js",
|
||||||
|
"src/controllers/music/musicalbums.js",
|
||||||
|
"src/controllers/music/musicartists.js",
|
||||||
|
"src/controllers/music/musicgenres.js",
|
||||||
|
"src/controllers/music/musicplaylists.js",
|
||||||
|
"src/controllers/music/musicrecommended.js",
|
||||||
|
"src/controllers/music/songs.js",
|
||||||
"src/controllers/dashboard/mediaLibrary.js",
|
"src/controllers/dashboard/mediaLibrary.js",
|
||||||
"src/controllers/dashboard/metadataImages.js",
|
"src/controllers/dashboard/metadataImages.js",
|
||||||
"src/controllers/dashboard/metadatanfo.js",
|
"src/controllers/dashboard/metadatanfo.js",
|
||||||
|
@ -195,6 +204,7 @@
|
||||||
"src/controllers/playback/queue/index.js",
|
"src/controllers/playback/queue/index.js",
|
||||||
"src/controllers/playback/video/index.js",
|
"src/controllers/playback/video/index.js",
|
||||||
"src/controllers/searchpage.js",
|
"src/controllers/searchpage.js",
|
||||||
|
"src/controllers/livetvtuner.js",
|
||||||
"src/controllers/shows/episodes.js",
|
"src/controllers/shows/episodes.js",
|
||||||
"src/controllers/shows/tvgenres.js",
|
"src/controllers/shows/tvgenres.js",
|
||||||
"src/controllers/shows/tvlatest.js",
|
"src/controllers/shows/tvlatest.js",
|
||||||
|
@ -208,7 +218,6 @@
|
||||||
"src/controllers/user/playback/index.js",
|
"src/controllers/user/playback/index.js",
|
||||||
"src/controllers/user/profile/index.js",
|
"src/controllers/user/profile/index.js",
|
||||||
"src/controllers/user/subtitles/index.js",
|
"src/controllers/user/subtitles/index.js",
|
||||||
"src/controllers/user/subtitles/index.js",
|
|
||||||
"src/controllers/wizard/finish/index.js",
|
"src/controllers/wizard/finish/index.js",
|
||||||
"src/controllers/wizard/remote/index.js",
|
"src/controllers/wizard/remote/index.js",
|
||||||
"src/controllers/wizard/settings/index.js",
|
"src/controllers/wizard/settings/index.js",
|
||||||
|
|
|
@ -646,7 +646,7 @@
|
||||||
.layout-desktop .detailRibbon,
|
.layout-desktop .detailRibbon,
|
||||||
.layout-tv .detailRibbon {
|
.layout-tv .detailRibbon {
|
||||||
margin-top: -7.2em;
|
margin-top: -7.2em;
|
||||||
height: 7.18em;
|
height: 7.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.layout-desktop .noBackdrop .detailRibbon,
|
.layout-desktop .noBackdrop .detailRibbon,
|
||||||
|
|
|
@ -16,7 +16,7 @@ import 'listViewStyle';
|
||||||
let color = '#00a4dc';
|
let color = '#00a4dc';
|
||||||
let icon = 'notifications';
|
let icon = 'notifications';
|
||||||
|
|
||||||
if ('Error' == entry.Severity || 'Fatal' == entry.Severity || 'Warn' == entry.Severity) {
|
if (entry.Severity == 'Error' || entry.Severity == 'Fatal' || entry.Severity == 'Warn') {
|
||||||
color = '#cc0000';
|
color = '#cc0000';
|
||||||
icon = 'notification_important';
|
icon = 'notification_important';
|
||||||
}
|
}
|
||||||
|
@ -60,13 +60,13 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadData(instance, elem, apiClient, startIndex, limit) {
|
function reloadData(instance, elem, apiClient, startIndex, limit) {
|
||||||
if (null == startIndex) {
|
if (startIndex == null) {
|
||||||
startIndex = parseInt(elem.getAttribute('data-activitystartindex') || '0');
|
startIndex = parseInt(elem.getAttribute('data-activitystartindex') || '0');
|
||||||
}
|
}
|
||||||
|
|
||||||
limit = limit || parseInt(elem.getAttribute('data-activitylimit') || '7');
|
limit = limit || parseInt(elem.getAttribute('data-activitylimit') || '7');
|
||||||
const minDate = new Date();
|
const minDate = new Date();
|
||||||
const hasUserId = 'false' !== elem.getAttribute('data-useractivity');
|
const hasUserId = elem.getAttribute('data-useractivity') !== 'false';
|
||||||
|
|
||||||
// TODO: Use date-fns
|
// TODO: Use date-fns
|
||||||
if (hasUserId) {
|
if (hasUserId) {
|
||||||
|
|
|
@ -231,8 +231,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
|
||||||
max /= 8;
|
max /= 8;
|
||||||
max *= 1000000;
|
max *= 1000000;
|
||||||
max *= 0.7;
|
max *= 0.7;
|
||||||
max = parseInt(max);
|
return parseInt(max, 10);
|
||||||
return max;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* eslint-enable compat/compat */
|
/* eslint-enable compat/compat */
|
||||||
|
|
|
@ -47,7 +47,7 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g
|
||||||
profile = window.NativeShell.AppHost.getDeviceProfile(profileBuilder);
|
profile = window.NativeShell.AppHost.getDeviceProfile(profileBuilder);
|
||||||
} else {
|
} else {
|
||||||
var builderOpts = getBaseProfileOptions(item);
|
var builderOpts = getBaseProfileOptions(item);
|
||||||
builderOpts.enableSsaRender = (item && !options.isRetry && 'allcomplexformats' !== appSettings.get('subtitleburnin'));
|
builderOpts.enableSsaRender = (item && !options.isRetry && appSettings.get('subtitleburnin') !== 'allcomplexformats');
|
||||||
profile = profileBuilder(builderOpts);
|
profile = profileBuilder(builderOpts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -370,7 +370,7 @@ define(['appSettings', 'browser', 'events', 'htmlMediaHelper', 'webSettings', 'g
|
||||||
return window.NativeShell.AppHost.supports(command);
|
return window.NativeShell.AppHost.supports(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1 !== supportedFeatures.indexOf(command.toLowerCase());
|
return supportedFeatures.indexOf(command.toLowerCase()) !== -1;
|
||||||
},
|
},
|
||||||
preferVisualCards: browser.android || browser.chrome,
|
preferVisualCards: browser.android || browser.chrome,
|
||||||
getSyncProfile: getSyncProfile,
|
getSyncProfile: getSyncProfile,
|
||||||
|
|
|
@ -104,9 +104,7 @@ import browser from 'browser';
|
||||||
const cardBoxCssClass = 'cardBox';
|
const cardBoxCssClass = 'cardBox';
|
||||||
const cardScalableClass = 'cardScalable';
|
const cardScalableClass = 'cardScalable';
|
||||||
|
|
||||||
const html = `<button type="button" class="${className}"${dataAttributes}><div class="${cardBoxCssClass}"><div class="${cardScalableClass}"><div class="cardPadder-${shape}"></div>${cardImageContainer}</div><div class="innerCardFooter">${nameHtml}</div></div></div></button>`;
|
return `<button type="button" class="${className}"${dataAttributes}><div class="${cardBoxCssClass}"><div class="${cardScalableClass}"><div class="cardPadder-${shape}"></div>${cardImageContainer}</div><div class="innerCardFooter">${nameHtml}</div></div></div></button>`;
|
||||||
|
|
||||||
return html;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function buildChapterCards(item, chapters, options) {
|
export function buildChapterCards(item, chapters, options) {
|
||||||
|
|
|
@ -120,7 +120,7 @@ define(['loading', 'libraryBrowser', 'cardBuilder', 'dom', 'apphost', 'imageLoad
|
||||||
|
|
||||||
var promise;
|
var promise;
|
||||||
|
|
||||||
if ('MusicArtist' === section.types) {
|
if (section.types === 'MusicArtist') {
|
||||||
promise = ApiClient.getArtists(userId, options);
|
promise = ApiClient.getArtists(userId, options);
|
||||||
} else {
|
} else {
|
||||||
options.IncludeItemTypes = section.types;
|
options.IncludeItemTypes = section.types;
|
||||||
|
@ -160,7 +160,7 @@ define(['loading', 'libraryBrowser', 'cardBuilder', 'dom', 'apphost', 'imageLoad
|
||||||
preferThumb: section.preferThumb,
|
preferThumb: section.preferThumb,
|
||||||
shape: section.shape,
|
shape: section.shape,
|
||||||
centerText: section.centerText && !cardLayout,
|
centerText: section.centerText && !cardLayout,
|
||||||
overlayText: false !== section.overlayText,
|
overlayText: section.overlayText !== false,
|
||||||
showTitle: section.showTitle,
|
showTitle: section.showTitle,
|
||||||
showParentTitle: section.showParentTitle,
|
showParentTitle: section.showParentTitle,
|
||||||
scalable: true,
|
scalable: true,
|
||||||
|
@ -192,7 +192,7 @@ define(['loading', 'libraryBrowser', 'cardBuilder', 'dom', 'apphost', 'imageLoad
|
||||||
|
|
||||||
if (types) {
|
if (types) {
|
||||||
sections = sections.filter(function (s) {
|
sections = sections.filter(function (s) {
|
||||||
return -1 !== types.indexOf(s.id);
|
return types.indexOf(s.id) !== -1;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ define(['loading', 'libraryBrowser', 'cardBuilder', 'dom', 'apphost', 'imageLoad
|
||||||
for (i = 0, length = sections.length; i < length; i++) {
|
for (i = 0, length = sections.length; i < length; i++) {
|
||||||
var section = sections[i];
|
var section = sections[i];
|
||||||
elem = page.querySelector('.section' + section.id);
|
elem = page.querySelector('.section' + section.id);
|
||||||
promises.push(loadSection(elem, userId, topParentId, section, 1 === sections.length));
|
promises.push(loadSection(elem, userId, topParentId, section, sections.length === 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
Promise.all(promises).then(function () {
|
Promise.all(promises).then(function () {
|
||||||
|
|
|
@ -21,7 +21,7 @@ import connectionManager from 'connectionManager';
|
||||||
|
|
||||||
if (!actionableParent || actionableParent.classList.contains('cardContent')) {
|
if (!actionableParent || actionableParent.classList.contains('cardContent')) {
|
||||||
apiClient.getJSON(apiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
|
apiClient.getJSON(apiClient.getUrl('Users/' + userId + '/Items/Latest', options)).then(function (items) {
|
||||||
if (1 === items.length) {
|
if (items.length === 1) {
|
||||||
return void appRouter.showItem(items[0]);
|
return void appRouter.showItem(items[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ import 'emby-input';
|
||||||
return {
|
return {
|
||||||
Type: type,
|
Type: type,
|
||||||
MinWidth: 0,
|
MinWidth: 0,
|
||||||
Limit: 'Primary' === type ? 1 : 0
|
Limit: type === 'Primary' ? 1 : 0
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -219,7 +219,7 @@ import 'emby-input';
|
||||||
html += '<div class="flex align-items-center" style="margin:1.5em 0 .5em;">';
|
html += '<div class="flex align-items-center" style="margin:1.5em 0 .5em;">';
|
||||||
html += '<h3 class="checkboxListLabel" style="margin:0;">' + globalize.translate('HeaderTypeImageFetchers', availableTypeOptions.Type) + '</h3>';
|
html += '<h3 class="checkboxListLabel" style="margin:0;">' + globalize.translate('HeaderTypeImageFetchers', availableTypeOptions.Type) + '</h3>';
|
||||||
const supportedImageTypes = availableTypeOptions.SupportedImageTypes || [];
|
const supportedImageTypes = availableTypeOptions.SupportedImageTypes || [];
|
||||||
if (supportedImageTypes.length > 1 || 1 === supportedImageTypes.length && 'Primary' !== supportedImageTypes[0]) {
|
if (supportedImageTypes.length > 1 || supportedImageTypes.length === 1 && supportedImageTypes[0] !== 'Primary') {
|
||||||
html += '<button is="emby-button" class="raised btnImageOptionsForType" type="button" style="margin-left:1.5em;font-size:90%;"><span>' + globalize.translate('HeaderFetcherSettings') + '</span></button>';
|
html += '<button is="emby-button" class="raised btnImageOptionsForType" type="button" style="margin-left:1.5em;font-size:90%;"><span>' + globalize.translate('HeaderFetcherSettings') + '</span></button>';
|
||||||
}
|
}
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
@ -362,7 +362,7 @@ import 'emby-input';
|
||||||
TypeOptions: []
|
TypeOptions: []
|
||||||
};
|
};
|
||||||
currentAvailableOptions = null;
|
currentAvailableOptions = null;
|
||||||
const isNewLibrary = null === libraryOptions;
|
const isNewLibrary = libraryOptions === null;
|
||||||
isNewLibrary && parent.classList.add('newlibrary');
|
isNewLibrary && parent.classList.add('newlibrary');
|
||||||
const response = await fetch('components/libraryoptionseditor/libraryoptionseditor.template.html');
|
const response = await fetch('components/libraryoptionseditor/libraryoptionseditor.template.html');
|
||||||
const template = await response.text();
|
const template = await response.text();
|
||||||
|
@ -578,7 +578,7 @@ import 'emby-input';
|
||||||
parent.querySelector('#chkSkipIfAudioTrackPresent').checked = options.SkipSubtitlesIfAudioTrackMatches;
|
parent.querySelector('#chkSkipIfAudioTrackPresent').checked = options.SkipSubtitlesIfAudioTrackMatches;
|
||||||
parent.querySelector('#chkRequirePerfectMatch').checked = options.RequirePerfectSubtitleMatch;
|
parent.querySelector('#chkRequirePerfectMatch').checked = options.RequirePerfectSubtitleMatch;
|
||||||
Array.prototype.forEach.call(parent.querySelectorAll('.chkMetadataSaver'), elem => {
|
Array.prototype.forEach.call(parent.querySelectorAll('.chkMetadataSaver'), elem => {
|
||||||
elem.checked = options.MetadataSavers ? options.MetadataSavers.includes(elem.getAttribute('data-pluginname')) : 'true' === elem.getAttribute('data-defaultenabled');
|
elem.checked = options.MetadataSavers ? options.MetadataSavers.includes(elem.getAttribute('data-pluginname')) : elem.getAttribute('data-defaultenabled') === 'true';
|
||||||
});
|
});
|
||||||
Array.prototype.forEach.call(parent.querySelectorAll('.chkSubtitleLanguage'), elem => {
|
Array.prototype.forEach.call(parent.querySelectorAll('.chkSubtitleLanguage'), elem => {
|
||||||
elem.checked = !!options.SubtitleDownloadLanguages && options.SubtitleDownloadLanguages.includes(elem.getAttribute('data-lang'));
|
elem.checked = !!options.SubtitleDownloadLanguages && options.SubtitleDownloadLanguages.includes(elem.getAttribute('data-lang'));
|
||||||
|
|
|
@ -98,8 +98,8 @@ import 'flexStyles';
|
||||||
if (listItem) {
|
if (listItem) {
|
||||||
const index = parseInt(listItem.getAttribute('data-index'));
|
const index = parseInt(listItem.getAttribute('data-index'));
|
||||||
const pathInfos = (currentOptions.library.LibraryOptions || {}).PathInfos || [];
|
const pathInfos = (currentOptions.library.LibraryOptions || {}).PathInfos || [];
|
||||||
const pathInfo = null == index ? {} : pathInfos[index] || {};
|
const pathInfo = index == null ? {} : pathInfos[index] || {};
|
||||||
const originalPath = pathInfo.Path || (null == index ? null : currentOptions.library.Locations[index]);
|
const originalPath = pathInfo.Path || (index == null ? null : currentOptions.library.Locations[index]);
|
||||||
const btnRemovePath = dom.parentWithClass(e.target, 'btnRemovePath');
|
const btnRemovePath = dom.parentWithClass(e.target, 'btnRemovePath');
|
||||||
|
|
||||||
if (btnRemovePath) {
|
if (btnRemovePath) {
|
||||||
|
@ -171,7 +171,7 @@ import 'flexStyles';
|
||||||
const picker = new directoryBrowser();
|
const picker = new directoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
enableNetworkSharePath: true,
|
enableNetworkSharePath: true,
|
||||||
pathReadOnly: null != originalPath,
|
pathReadOnly: originalPath != null,
|
||||||
path: originalPath,
|
path: originalPath,
|
||||||
networkSharePath: networkPath,
|
networkSharePath: networkPath,
|
||||||
callback: function (path, networkSharePath) {
|
callback: function (path, networkSharePath) {
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'playQueueManager', 'userSettings', 'globalize', 'connectionManager', 'loading', 'apphost', 'screenfull'], function (events, datetime, appSettings, itemHelper, pluginManager, PlayQueueManager, userSettings, globalize, connectionManager, loading, apphost, screenfull) {
|
define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'playQueueManager', 'userSettings', 'globalize', 'connectionManager', 'loading', 'apphost', 'screenfull'], function (events, datetime, appSettings, itemHelper, pluginManager, PlayQueueManager, userSettings, globalize, connectionManager, loading, apphost, screenfull) {
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
PlayQueueManager = PlayQueueManager.default || PlayQueueManager;
|
||||||
|
|
||||||
function enableLocalPlaylistManagement(player) {
|
function enableLocalPlaylistManagement(player) {
|
||||||
if (player.getPlaylist) {
|
if (player.getPlaylist) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -18,6 +20,11 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
screenfull.on('change', function () {
|
screenfull.on('change', function () {
|
||||||
events.trigger(player, 'fullscreenchange');
|
events.trigger(player, 'fullscreenchange');
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
// iOS Safari
|
||||||
|
document.addEventListener('webkitfullscreenchange', function () {
|
||||||
|
events.trigger(player, 'fullscreenchange');
|
||||||
|
}, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -882,9 +889,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
targets = targets.sort(sortPlayerTargets);
|
return targets.sort(sortPlayerTargets);
|
||||||
|
|
||||||
return targets;
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -1399,6 +1404,11 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
return player.isFullscreen();
|
return player.isFullscreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!screenfull.isEnabled) {
|
||||||
|
// iOS Safari
|
||||||
|
return document.webkitIsFullScreen;
|
||||||
|
}
|
||||||
|
|
||||||
return screenfull.isFullscreen;
|
return screenfull.isFullscreen;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1410,6 +1420,16 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
|
|
||||||
if (screenfull.isEnabled) {
|
if (screenfull.isEnabled) {
|
||||||
screenfull.toggle();
|
screenfull.toggle();
|
||||||
|
} else {
|
||||||
|
// iOS Safari
|
||||||
|
if (document.webkitIsFullScreen && document.webkitCancelFullscreen) {
|
||||||
|
document.webkitCancelFullscreen();
|
||||||
|
} else {
|
||||||
|
const elem = document.querySelector('video');
|
||||||
|
if (elem && elem.webkitEnterFullscreen) {
|
||||||
|
elem.webkitEnterFullscreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3370,8 +3390,8 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
|
|
||||||
PlaybackManager.prototype.getSubtitleUrl = function (textStream, serverId) {
|
PlaybackManager.prototype.getSubtitleUrl = function (textStream, serverId) {
|
||||||
var apiClient = connectionManager.getApiClient(serverId);
|
var apiClient = connectionManager.getApiClient(serverId);
|
||||||
var textStreamUrl = !textStream.IsExternalUrl ? apiClient.getUrl(textStream.DeliveryUrl) : textStream.DeliveryUrl;
|
|
||||||
return textStreamUrl;
|
return !textStream.IsExternalUrl ? apiClient.getUrl(textStream.DeliveryUrl) : textStream.DeliveryUrl;
|
||||||
};
|
};
|
||||||
|
|
||||||
PlaybackManager.prototype.stop = function (player) {
|
PlaybackManager.prototype.stop = function (player) {
|
||||||
|
|
|
@ -1,56 +1,56 @@
|
||||||
define([], function () {
|
/*eslint prefer-const: "error"*/
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var currentId = 0;
|
let currentId = 0;
|
||||||
function addUniquePlaylistItemId(item) {
|
function addUniquePlaylistItemId(item) {
|
||||||
if (!item.PlaylistItemId) {
|
if (!item.PlaylistItemId) {
|
||||||
item.PlaylistItemId = 'playlistItem' + currentId;
|
item.PlaylistItemId = 'playlistItem' + currentId;
|
||||||
currentId++;
|
currentId++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function findPlaylistIndex(playlistItemId, list) {
|
||||||
|
for (let i = 0, length = list.length; i < length; i++) {
|
||||||
|
if (list[i].PlaylistItemId === playlistItemId) {
|
||||||
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function findPlaylistIndex(playlistItemId, list) {
|
return -1;
|
||||||
for (var i = 0, length = list.length; i < length; i++) {
|
}
|
||||||
if (list[i].PlaylistItemId === playlistItemId) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return -1;
|
class PlayQueueManager {
|
||||||
}
|
constructor() {
|
||||||
|
|
||||||
function PlayQueueManager() {
|
|
||||||
this._sortedPlaylist = [];
|
this._sortedPlaylist = [];
|
||||||
this._playlist = [];
|
this._playlist = [];
|
||||||
this._repeatMode = 'RepeatNone';
|
this._repeatMode = 'RepeatNone';
|
||||||
this._shuffleMode = 'Sorted';
|
this._shuffleMode = 'Sorted';
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.getPlaylist = function () {
|
getPlaylist() {
|
||||||
return this._playlist.slice(0);
|
return this._playlist.slice(0);
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.setPlaylist = function (items) {
|
setPlaylist(items) {
|
||||||
items = items.slice(0);
|
items = items.slice(0);
|
||||||
|
|
||||||
for (var i = 0, length = items.length; i < length; i++) {
|
for (let i = 0, length = items.length; i < length; i++) {
|
||||||
addUniquePlaylistItemId(items[i]);
|
addUniquePlaylistItemId(items[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._currentPlaylistItemId = null;
|
this._currentPlaylistItemId = null;
|
||||||
this._playlist = items;
|
this._playlist = items;
|
||||||
this._repeatMode = 'RepeatNone';
|
this._repeatMode = 'RepeatNone';
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.queue = function (items) {
|
queue(items) {
|
||||||
for (var i = 0, length = items.length; i < length; i++) {
|
for (let i = 0, length = items.length; i < length; i++) {
|
||||||
addUniquePlaylistItemId(items[i]);
|
addUniquePlaylistItemId(items[i]);
|
||||||
|
|
||||||
this._playlist.push(items[i]);
|
this._playlist.push(items[i]);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.shufflePlaylist = function () {
|
shufflePlaylist() {
|
||||||
this._sortedPlaylist = [];
|
this._sortedPlaylist = [];
|
||||||
for (const item of this._playlist) {
|
for (const item of this._playlist) {
|
||||||
this._sortedPlaylist.push(item);
|
this._sortedPlaylist.push(item);
|
||||||
|
@ -65,42 +65,31 @@ define([], function () {
|
||||||
}
|
}
|
||||||
this._playlist.unshift(currentPlaylistItem);
|
this._playlist.unshift(currentPlaylistItem);
|
||||||
this._shuffleMode = 'Shuffle';
|
this._shuffleMode = 'Shuffle';
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.sortShuffledPlaylist = function () {
|
sortShuffledPlaylist() {
|
||||||
this._playlist = [];
|
this._playlist = [];
|
||||||
for (let item of this._sortedPlaylist) {
|
for (const item of this._sortedPlaylist) {
|
||||||
this._playlist.push(item);
|
this._playlist.push(item);
|
||||||
}
|
}
|
||||||
this._sortedPlaylist = [];
|
this._sortedPlaylist = [];
|
||||||
this._shuffleMode = 'Sorted';
|
this._shuffleMode = 'Sorted';
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.clearPlaylist = function (clearCurrentItem = false) {
|
clearPlaylist(clearCurrentItem = false) {
|
||||||
const currentPlaylistItem = this._playlist.splice(this.getCurrentPlaylistIndex(), 1)[0];
|
const currentPlaylistItem = this._playlist.splice(this.getCurrentPlaylistIndex(), 1)[0];
|
||||||
this._playlist = [];
|
this._playlist = [];
|
||||||
if (!clearCurrentItem) {
|
if (!clearCurrentItem) {
|
||||||
this._playlist.push(currentPlaylistItem);
|
this._playlist.push(currentPlaylistItem);
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
function arrayInsertAt(destArray, pos, arrayToInsert) {
|
|
||||||
var args = [];
|
|
||||||
args.push(pos); // where to insert
|
|
||||||
args.push(0); // nothing to remove
|
|
||||||
args = args.concat(arrayToInsert); // add on array to insert
|
|
||||||
destArray.splice.apply(destArray, args); // splice it in
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.queueNext = function (items) {
|
queueNext(items) {
|
||||||
var i;
|
for (let i = 0, length = items.length; i < length; i++) {
|
||||||
var length;
|
|
||||||
|
|
||||||
for (i = 0, length = items.length; i < length; i++) {
|
|
||||||
addUniquePlaylistItemId(items[i]);
|
addUniquePlaylistItemId(items[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var currentIndex = this.getCurrentPlaylistIndex();
|
let currentIndex = this.getCurrentPlaylistIndex();
|
||||||
|
|
||||||
if (currentIndex === -1) {
|
if (currentIndex === -1) {
|
||||||
currentIndex = this._playlist.length;
|
currentIndex = this._playlist.length;
|
||||||
|
@ -109,43 +98,43 @@ define([], function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
arrayInsertAt(this._playlist, currentIndex, items);
|
arrayInsertAt(this._playlist, currentIndex, items);
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.getCurrentPlaylistIndex = function () {
|
getCurrentPlaylistIndex() {
|
||||||
return findPlaylistIndex(this.getCurrentPlaylistItemId(), this._playlist);
|
return findPlaylistIndex(this.getCurrentPlaylistItemId(), this._playlist);
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.getCurrentItem = function () {
|
getCurrentItem() {
|
||||||
var index = findPlaylistIndex(this.getCurrentPlaylistItemId(), this._playlist);
|
const index = findPlaylistIndex(this.getCurrentPlaylistItemId(), this._playlist);
|
||||||
|
|
||||||
return index === -1 ? null : this._playlist[index];
|
return index === -1 ? null : this._playlist[index];
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.getCurrentPlaylistItemId = function () {
|
getCurrentPlaylistItemId() {
|
||||||
return this._currentPlaylistItemId;
|
return this._currentPlaylistItemId;
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.setPlaylistState = function (playlistItemId, playlistIndex) {
|
setPlaylistState(playlistItemId, playlistIndex) {
|
||||||
this._currentPlaylistItemId = playlistItemId;
|
this._currentPlaylistItemId = playlistItemId;
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.setPlaylistIndex = function (playlistIndex) {
|
setPlaylistIndex(playlistIndex) {
|
||||||
if (playlistIndex < 0) {
|
if (playlistIndex < 0) {
|
||||||
this.setPlaylistState(null);
|
this.setPlaylistState(null);
|
||||||
} else {
|
} else {
|
||||||
this.setPlaylistState(this._playlist[playlistIndex].PlaylistItemId);
|
this.setPlaylistState(this._playlist[playlistIndex].PlaylistItemId);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.removeFromPlaylist = function (playlistItemIds) {
|
removeFromPlaylist(playlistItemIds) {
|
||||||
if (this._playlist.length <= playlistItemIds.length) {
|
if (this._playlist.length <= playlistItemIds.length) {
|
||||||
return {
|
return {
|
||||||
result: 'empty'
|
result: 'empty'
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
var currentPlaylistItemId = this.getCurrentPlaylistItemId();
|
const currentPlaylistItemId = this.getCurrentPlaylistItemId();
|
||||||
var isCurrentIndex = playlistItemIds.indexOf(currentPlaylistItemId) !== -1;
|
const isCurrentIndex = playlistItemIds.indexOf(currentPlaylistItemId) !== -1;
|
||||||
|
|
||||||
this._sortedPlaylist = this._sortedPlaylist.filter(function (item) {
|
this._sortedPlaylist = this._sortedPlaylist.filter(function (item) {
|
||||||
return !playlistItemIds.includes(item.PlaylistItemId);
|
return !playlistItemIds.includes(item.PlaylistItemId);
|
||||||
|
@ -159,17 +148,13 @@ define([], function () {
|
||||||
result: 'removed',
|
result: 'removed',
|
||||||
isCurrentIndex: isCurrentIndex
|
isCurrentIndex: isCurrentIndex
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
function moveInArray(array, from, to) {
|
|
||||||
array.splice(to, 0, array.splice(from, 1)[0]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.movePlaylistItem = function (playlistItemId, newIndex) {
|
movePlaylistItem(playlistItemId, newIndex) {
|
||||||
var playlist = this.getPlaylist();
|
const playlist = this.getPlaylist();
|
||||||
|
|
||||||
var oldIndex;
|
let oldIndex;
|
||||||
for (var i = 0, length = playlist.length; i < length; i++) {
|
for (let i = 0, length = playlist.length; i < length; i++) {
|
||||||
if (playlist[i].PlaylistItemId === playlistItemId) {
|
if (playlist[i].PlaylistItemId === playlistItemId) {
|
||||||
oldIndex = i;
|
oldIndex = i;
|
||||||
break;
|
break;
|
||||||
|
@ -195,30 +180,30 @@ define([], function () {
|
||||||
playlistItemId: playlistItemId,
|
playlistItemId: playlistItemId,
|
||||||
newIndex: newIndex
|
newIndex: newIndex
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.reset = function () {
|
reset() {
|
||||||
this._sortedPlaylist = [];
|
this._sortedPlaylist = [];
|
||||||
this._playlist = [];
|
this._playlist = [];
|
||||||
this._currentPlaylistItemId = null;
|
this._currentPlaylistItemId = null;
|
||||||
this._repeatMode = 'RepeatNone';
|
this._repeatMode = 'RepeatNone';
|
||||||
this._shuffleMode = 'Sorted';
|
this._shuffleMode = 'Sorted';
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.setRepeatMode = function (value) {
|
setRepeatMode(value) {
|
||||||
const repeatModes = ['RepeatOne', 'RepeatAll', 'RepeatNone'];
|
const repeatModes = ['RepeatOne', 'RepeatAll', 'RepeatNone'];
|
||||||
if (repeatModes.includes(value)) {
|
if (repeatModes.includes(value)) {
|
||||||
this._repeatMode = value;
|
this._repeatMode = value;
|
||||||
} else {
|
} else {
|
||||||
throw new TypeError('invalid value provided for setRepeatMode');
|
throw new TypeError('invalid value provided for setRepeatMode');
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.getRepeatMode = function () {
|
getRepeatMode() {
|
||||||
return this._repeatMode;
|
return this._repeatMode;
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.setShuffleMode = function (value) {
|
setShuffleMode(value) {
|
||||||
switch (value) {
|
switch (value) {
|
||||||
case 'Shuffle':
|
case 'Shuffle':
|
||||||
this.shufflePlaylist();
|
this.shufflePlaylist();
|
||||||
|
@ -229,9 +214,9 @@ define([], function () {
|
||||||
default:
|
default:
|
||||||
throw new TypeError('invalid value provided to setShuffleMode');
|
throw new TypeError('invalid value provided to setShuffleMode');
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.toggleShuffleMode = function () {
|
toggleShuffleMode() {
|
||||||
switch (this._shuffleMode) {
|
switch (this._shuffleMode) {
|
||||||
case 'Shuffle':
|
case 'Shuffle':
|
||||||
this.setShuffleMode('Sorted');
|
this.setShuffleMode('Sorted');
|
||||||
|
@ -242,16 +227,16 @@ define([], function () {
|
||||||
default:
|
default:
|
||||||
throw new TypeError('current value for shufflequeue is invalid');
|
throw new TypeError('current value for shufflequeue is invalid');
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.getShuffleMode = function () {
|
getShuffleMode() {
|
||||||
return this._shuffleMode;
|
return this._shuffleMode;
|
||||||
};
|
}
|
||||||
|
|
||||||
PlayQueueManager.prototype.getNextItemInfo = function () {
|
getNextItemInfo() {
|
||||||
var newIndex;
|
let newIndex;
|
||||||
var playlist = this.getPlaylist();
|
const playlist = this.getPlaylist();
|
||||||
var playlistLength = playlist.length;
|
const playlistLength = playlist.length;
|
||||||
|
|
||||||
switch (this.getRepeatMode()) {
|
switch (this.getRepeatMode()) {
|
||||||
case 'RepeatOne':
|
case 'RepeatOne':
|
||||||
|
@ -272,7 +257,7 @@ define([], function () {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var item = playlist[newIndex];
|
const item = playlist[newIndex];
|
||||||
|
|
||||||
if (!item) {
|
if (!item) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -282,7 +267,19 @@ define([], function () {
|
||||||
item: item,
|
item: item,
|
||||||
index: newIndex
|
index: newIndex
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return PlayQueueManager;
|
function arrayInsertAt(destArray, pos, arrayToInsert) {
|
||||||
});
|
let args = [];
|
||||||
|
args.push(pos); // where to insert
|
||||||
|
args.push(0); // nothing to remove
|
||||||
|
args = args.concat(arrayToInsert); // add on array to insert
|
||||||
|
destArray.splice.apply(destArray, args); // splice it in
|
||||||
|
}
|
||||||
|
|
||||||
|
function moveInArray(array, from, to) {
|
||||||
|
array.splice(to, 0, array.splice(from, 1)[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default PlayQueueManager;
|
||||||
|
|
|
@ -1,94 +1,108 @@
|
||||||
define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionManager', 'appRouter', 'globalize', 'emby-input', 'emby-checkbox', 'paper-icon-button-light', 'emby-select', 'material-icons', 'css!./../formdialog', 'emby-button'], function (dom, shell, dialogHelper, loading, layoutManager, connectionManager, appRouter, globalize) {
|
import dom from 'dom';
|
||||||
'use strict';
|
import dialogHelper from 'dialogHelper';
|
||||||
|
import loading from 'loading';
|
||||||
|
import layoutManager from 'layoutManager';
|
||||||
|
import connectionManager from 'connectionManager';
|
||||||
|
import globalize from 'globalize';
|
||||||
|
import 'emby-input';
|
||||||
|
import 'emby-checkbox';
|
||||||
|
import 'paper-icon-button-light';
|
||||||
|
import 'emby-select';
|
||||||
|
import 'material-icons';
|
||||||
|
import 'css!./../formdialog';
|
||||||
|
import 'emby-button';
|
||||||
|
|
||||||
function getEditorHtml() {
|
/*eslint prefer-const: "error"*/
|
||||||
var html = '';
|
|
||||||
|
|
||||||
html += '<div class="formDialogContent smoothScrollY" style="padding-top:2em;">';
|
function getEditorHtml() {
|
||||||
html += '<div class="dialogContentInner dialog-content-centered">';
|
let html = '';
|
||||||
html += '<form style="margin:auto;">';
|
|
||||||
|
|
||||||
html += '<div class="fldSelectPlaylist selectContainer">';
|
html += '<div class="formDialogContent smoothScrollY" style="padding-top:2em;">';
|
||||||
html += '<select is="emby-select" id="selectMetadataRefreshMode" label="' + globalize.translate('LabelRefreshMode') + '">';
|
html += '<div class="dialogContentInner dialog-content-centered">';
|
||||||
html += '<option value="scan">' + globalize.translate('ScanForNewAndUpdatedFiles') + '</option>';
|
html += '<form style="margin:auto;">';
|
||||||
html += '<option value="missing">' + globalize.translate('SearchForMissingMetadata') + '</option>';
|
|
||||||
html += '<option value="all" selected>' + globalize.translate('ReplaceAllMetadata') + '</option>';
|
|
||||||
html += '</select>';
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
html += '<label class="checkboxContainer hide fldReplaceExistingImages">';
|
html += '<div class="fldSelectPlaylist selectContainer">';
|
||||||
html += '<input type="checkbox" is="emby-checkbox" class="chkReplaceImages" />';
|
html += '<select is="emby-select" id="selectMetadataRefreshMode" label="' + globalize.translate('LabelRefreshMode') + '">';
|
||||||
html += '<span>' + globalize.translate('ReplaceExistingImages') + '</span>';
|
html += '<option value="scan">' + globalize.translate('ScanForNewAndUpdatedFiles') + '</option>';
|
||||||
html += '</label>';
|
html += '<option value="missing">' + globalize.translate('SearchForMissingMetadata') + '</option>';
|
||||||
|
html += '<option value="all" selected>' + globalize.translate('ReplaceAllMetadata') + '</option>';
|
||||||
|
html += '</select>';
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
html += '<div class="fieldDescription">';
|
html += '<label class="checkboxContainer hide fldReplaceExistingImages">';
|
||||||
html += globalize.translate('RefreshDialogHelp');
|
html += '<input type="checkbox" is="emby-checkbox" class="chkReplaceImages" />';
|
||||||
html += '</div>';
|
html += '<span>' + globalize.translate('ReplaceExistingImages') + '</span>';
|
||||||
|
html += '</label>';
|
||||||
|
|
||||||
html += '<input type="hidden" class="fldSelectedItemIds" />';
|
html += '<div class="fieldDescription">';
|
||||||
|
html += globalize.translate('RefreshDialogHelp');
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
html += '<br />';
|
html += '<input type="hidden" class="fldSelectedItemIds" />';
|
||||||
html += '<div class="formDialogFooter">';
|
|
||||||
html += '<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem button-submit">' + globalize.translate('Refresh') + '</button>';
|
|
||||||
html += '</div>';
|
|
||||||
|
|
||||||
html += '</form>';
|
html += '<br />';
|
||||||
html += '</div>';
|
html += '<div class="formDialogFooter">';
|
||||||
html += '</div>';
|
html += '<button is="emby-button" type="submit" class="raised btnSubmit block formDialogFooterItem button-submit">' + globalize.translate('Refresh') + '</button>';
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
return html;
|
html += '</form>';
|
||||||
}
|
html += '</div>';
|
||||||
|
html += '</div>';
|
||||||
|
|
||||||
function centerFocus(elem, horiz, on) {
|
return html;
|
||||||
require(['scrollHelper'], function (scrollHelper) {
|
}
|
||||||
var fn = on ? 'on' : 'off';
|
|
||||||
scrollHelper.centerFocus[fn](elem, horiz);
|
function centerFocus(elem, horiz, on) {
|
||||||
|
import('scrollHelper').then(({default: scrollHelper}) => {
|
||||||
|
const fn = on ? 'on' : 'off';
|
||||||
|
scrollHelper.centerFocus[fn](elem, horiz);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function onSubmit(e) {
|
||||||
|
loading.show();
|
||||||
|
|
||||||
|
const instance = this;
|
||||||
|
const dlg = dom.parentWithClass(e.target, 'dialog');
|
||||||
|
const options = instance.options;
|
||||||
|
|
||||||
|
const apiClient = connectionManager.getApiClient(options.serverId);
|
||||||
|
|
||||||
|
const replaceAllMetadata = dlg.querySelector('#selectMetadataRefreshMode').value === 'all';
|
||||||
|
|
||||||
|
const mode = dlg.querySelector('#selectMetadataRefreshMode').value === 'scan' ? 'Default' : 'FullRefresh';
|
||||||
|
const replaceAllImages = mode === 'FullRefresh' && dlg.querySelector('.chkReplaceImages').checked;
|
||||||
|
|
||||||
|
options.itemIds.forEach(function (itemId) {
|
||||||
|
apiClient.refreshItem(itemId, {
|
||||||
|
|
||||||
|
Recursive: true,
|
||||||
|
ImageRefreshMode: mode,
|
||||||
|
MetadataRefreshMode: mode,
|
||||||
|
ReplaceAllImages: replaceAllImages,
|
||||||
|
ReplaceAllMetadata: replaceAllMetadata
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
|
|
||||||
function onSubmit(e) {
|
dialogHelper.close(dlg);
|
||||||
loading.show();
|
|
||||||
|
|
||||||
var instance = this;
|
import('toast').then(({default: toast}) => {
|
||||||
var dlg = dom.parentWithClass(e.target, 'dialog');
|
toast(globalize.translate('RefreshQueued'));
|
||||||
var options = instance.options;
|
});
|
||||||
|
|
||||||
var apiClient = connectionManager.getApiClient(options.serverId);
|
loading.hide();
|
||||||
|
|
||||||
var replaceAllMetadata = dlg.querySelector('#selectMetadataRefreshMode').value === 'all';
|
e.preventDefault();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
var mode = dlg.querySelector('#selectMetadataRefreshMode').value === 'scan' ? 'Default' : 'FullRefresh';
|
class RefreshDialog {
|
||||||
var replaceAllImages = mode === 'FullRefresh' && dlg.querySelector('.chkReplaceImages').checked;
|
constructor(options) {
|
||||||
|
|
||||||
options.itemIds.forEach(function (itemId) {
|
|
||||||
apiClient.refreshItem(itemId, {
|
|
||||||
|
|
||||||
Recursive: true,
|
|
||||||
ImageRefreshMode: mode,
|
|
||||||
MetadataRefreshMode: mode,
|
|
||||||
ReplaceAllImages: replaceAllImages,
|
|
||||||
ReplaceAllMetadata: replaceAllMetadata
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
dialogHelper.close(dlg);
|
|
||||||
|
|
||||||
require(['toast'], function (toast) {
|
|
||||||
toast(globalize.translate('RefreshQueued'));
|
|
||||||
});
|
|
||||||
|
|
||||||
loading.hide();
|
|
||||||
|
|
||||||
e.preventDefault();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function RefreshDialog(options) {
|
|
||||||
this.options = options;
|
this.options = options;
|
||||||
}
|
}
|
||||||
|
|
||||||
RefreshDialog.prototype.show = function () {
|
show() {
|
||||||
var dialogOptions = {
|
const dialogOptions = {
|
||||||
removeOnClose: true,
|
removeOnClose: true,
|
||||||
scrollY: false
|
scrollY: false
|
||||||
};
|
};
|
||||||
|
@ -99,12 +113,12 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionM
|
||||||
dialogOptions.size = 'small';
|
dialogOptions.size = 'small';
|
||||||
}
|
}
|
||||||
|
|
||||||
var dlg = dialogHelper.createDialog(dialogOptions);
|
const dlg = dialogHelper.createDialog(dialogOptions);
|
||||||
|
|
||||||
dlg.classList.add('formDialog');
|
dlg.classList.add('formDialog');
|
||||||
|
|
||||||
var html = '';
|
let html = '';
|
||||||
var title = globalize.translate('RefreshMetadata');
|
const title = globalize.translate('RefreshMetadata');
|
||||||
|
|
||||||
html += '<div class="formDialogHeader">';
|
html += '<div class="formDialogHeader">';
|
||||||
html += '<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><span class="material-icons arrow_back"></span></button>';
|
html += '<button is="paper-icon-button-light" class="btnCancel autoSize" tabindex="-1"><span class="material-icons arrow_back"></span></button>';
|
||||||
|
@ -150,7 +164,7 @@ define(['dom', 'shell', 'dialogHelper', 'loading', 'layoutManager', 'connectionM
|
||||||
dlg.addEventListener('close', resolve);
|
dlg.addEventListener('close', resolve);
|
||||||
dialogHelper.open(dlg);
|
dialogHelper.open(dlg);
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return RefreshDialog;
|
export default RefreshDialog;
|
||||||
});
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
menuItems.unshift({
|
menuItems.unshift({
|
||||||
id: -1,
|
id: -1,
|
||||||
name: globalize.translate('ButtonOff'),
|
name: globalize.translate('ButtonOff'),
|
||||||
selected: null == currentIndex
|
selected: currentIndex == null
|
||||||
});
|
});
|
||||||
|
|
||||||
require(['actionsheet'], function (actionsheet) {
|
require(['actionsheet'], function (actionsheet) {
|
||||||
|
@ -69,18 +69,18 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
}
|
}
|
||||||
|
|
||||||
function seriesImageUrl(item, options) {
|
function seriesImageUrl(item, options) {
|
||||||
if ('Episode' !== item.Type) {
|
if (item.Type !== 'Episode') {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options.type = options.type || 'Primary';
|
options.type = options.type || 'Primary';
|
||||||
if ('Primary' === options.type && item.SeriesPrimaryImageTag) {
|
if (options.type === 'Primary' && item.SeriesPrimaryImageTag) {
|
||||||
options.tag = item.SeriesPrimaryImageTag;
|
options.tag = item.SeriesPrimaryImageTag;
|
||||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Thumb' === options.type) {
|
if (options.type === 'Thumb') {
|
||||||
if (item.SeriesThumbImageTag) {
|
if (item.SeriesThumbImageTag) {
|
||||||
options.tag = item.SeriesThumbImageTag;
|
options.tag = item.SeriesThumbImageTag;
|
||||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
||||||
|
@ -210,7 +210,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
backdrop.setBackdrops([item]);
|
backdrop.setBackdrops([item]);
|
||||||
apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (fullItem) {
|
apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (fullItem) {
|
||||||
var userData = fullItem.UserData || {};
|
var userData = fullItem.UserData || {};
|
||||||
var likes = null == userData.Likes ? '' : userData.Likes;
|
var likes = userData.Likes == null ? '' : userData.Likes;
|
||||||
context.querySelector('.nowPlayingPageUserDataButtonsTitle').innerHTML = '<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + fullItem.Id + '" data-serverid="' + fullItem.ServerId + '" data-itemtype="' + fullItem.Type + '" data-likes="' + likes + '" data-isfavorite="' + userData.IsFavorite + '"><span class="material-icons favorite"></span></button>';
|
context.querySelector('.nowPlayingPageUserDataButtonsTitle').innerHTML = '<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + fullItem.Id + '" data-serverid="' + fullItem.ServerId + '" data-itemtype="' + fullItem.Type + '" data-likes="' + likes + '" data-isfavorite="' + userData.IsFavorite + '"><span class="material-icons favorite"></span></button>';
|
||||||
context.querySelector('.nowPlayingPageUserDataButtons').innerHTML = '<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + fullItem.Id + '" data-serverid="' + fullItem.ServerId + '" data-itemtype="' + fullItem.Type + '" data-likes="' + likes + '" data-isfavorite="' + userData.IsFavorite + '"><span class="material-icons favorite"></span></button>';
|
context.querySelector('.nowPlayingPageUserDataButtons').innerHTML = '<button is="emby-ratingbutton" type="button" class="listItemButton paper-icon-button-light" data-id="' + fullItem.Id + '" data-serverid="' + fullItem.ServerId + '" data-itemtype="' + fullItem.Type + '" data-likes="' + likes + '" data-isfavorite="' + userData.IsFavorite + '"><span class="material-icons favorite"></span></button>';
|
||||||
});
|
});
|
||||||
|
@ -251,7 +251,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
var all = context.querySelectorAll('.btnCommand');
|
var all = context.querySelectorAll('.btnCommand');
|
||||||
|
|
||||||
for (var i = 0, length = all.length; i < length; i++) {
|
for (var i = 0, length = all.length; i < length; i++) {
|
||||||
var enableButton = -1 !== commands.indexOf(all[i].getAttribute('data-command'));
|
var enableButton = commands.indexOf(all[i].getAttribute('data-command')) !== -1;
|
||||||
all[i].disabled = !enableButton;
|
all[i].disabled = !enableButton;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -278,7 +278,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
currentPlayerSupportedCommands = supportedCommands;
|
currentPlayerSupportedCommands = supportedCommands;
|
||||||
var playState = state.PlayState || {};
|
var playState = state.PlayState || {};
|
||||||
var isSupportedCommands = supportedCommands.includes('DisplayMessage') || supportedCommands.includes('SendString') || supportedCommands.includes('Select');
|
var isSupportedCommands = supportedCommands.includes('DisplayMessage') || supportedCommands.includes('SendString') || supportedCommands.includes('Select');
|
||||||
buttonVisible(context.querySelector('.btnToggleFullscreen'), item && 'Video' == item.MediaType && supportedCommands.includes('ToggleFullscreen'));
|
buttonVisible(context.querySelector('.btnToggleFullscreen'), item && item.MediaType == 'Video' && supportedCommands.includes('ToggleFullscreen'));
|
||||||
updateAudioTracksDisplay(player, context);
|
updateAudioTracksDisplay(player, context);
|
||||||
updateSubtitleTracksDisplay(player, context);
|
updateSubtitleTracksDisplay(player, context);
|
||||||
|
|
||||||
|
@ -306,15 +306,15 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
context.querySelector('.remoteControlSection').classList.add('hide');
|
context.querySelector('.remoteControlSection').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
buttonVisible(context.querySelector('.btnStop'), null != item);
|
buttonVisible(context.querySelector('.btnStop'), item != null);
|
||||||
buttonVisible(context.querySelector('.btnNextTrack'), null != item);
|
buttonVisible(context.querySelector('.btnNextTrack'), item != null);
|
||||||
buttonVisible(context.querySelector('.btnPreviousTrack'), null != item);
|
buttonVisible(context.querySelector('.btnPreviousTrack'), item != null);
|
||||||
if (layoutManager.mobile) {
|
if (layoutManager.mobile) {
|
||||||
buttonVisible(context.querySelector('.btnRewind'), false);
|
buttonVisible(context.querySelector('.btnRewind'), false);
|
||||||
buttonVisible(context.querySelector('.btnFastForward'), false);
|
buttonVisible(context.querySelector('.btnFastForward'), false);
|
||||||
} else {
|
} else {
|
||||||
buttonVisible(context.querySelector('.btnRewind'), null != item);
|
buttonVisible(context.querySelector('.btnRewind'), item != null);
|
||||||
buttonVisible(context.querySelector('.btnFastForward'), null != item);
|
buttonVisible(context.querySelector('.btnFastForward'), item != null);
|
||||||
}
|
}
|
||||||
var positionSlider = context.querySelector('.nowPlayingPositionSlider');
|
var positionSlider = context.querySelector('.nowPlayingPositionSlider');
|
||||||
|
|
||||||
|
@ -325,15 +325,15 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
|
|
||||||
if (positionSlider && !positionSlider.dragging) {
|
if (positionSlider && !positionSlider.dragging) {
|
||||||
positionSlider.disabled = !playState.CanSeek;
|
positionSlider.disabled = !playState.CanSeek;
|
||||||
var isProgressClear = state.MediaSource && null == state.MediaSource.RunTimeTicks;
|
var isProgressClear = state.MediaSource && state.MediaSource.RunTimeTicks == null;
|
||||||
positionSlider.setIsClear(isProgressClear);
|
positionSlider.setIsClear(isProgressClear);
|
||||||
}
|
}
|
||||||
|
|
||||||
updatePlayPauseState(playState.IsPaused, null != item);
|
updatePlayPauseState(playState.IsPaused, item != null);
|
||||||
updateTimeDisplay(playState.PositionTicks, item ? item.RunTimeTicks : null);
|
updateTimeDisplay(playState.PositionTicks, item ? item.RunTimeTicks : null);
|
||||||
updatePlayerVolumeState(context, playState.IsMuted, playState.VolumeLevel);
|
updatePlayerVolumeState(context, playState.IsMuted, playState.VolumeLevel);
|
||||||
|
|
||||||
if (item && 'Video' == item.MediaType) {
|
if (item && item.MediaType == 'Video') {
|
||||||
context.classList.remove('hideVideoButtons');
|
context.classList.remove('hideVideoButtons');
|
||||||
} else {
|
} else {
|
||||||
context.classList.add('hideVideoButtons');
|
context.classList.add('hideVideoButtons');
|
||||||
|
@ -346,12 +346,12 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
|
|
||||||
function updateAudioTracksDisplay(player, context) {
|
function updateAudioTracksDisplay(player, context) {
|
||||||
var supportedCommands = currentPlayerSupportedCommands;
|
var supportedCommands = currentPlayerSupportedCommands;
|
||||||
buttonVisible(context.querySelector('.btnAudioTracks'), playbackManager.audioTracks(player).length > 1 && -1 != supportedCommands.indexOf('SetAudioStreamIndex'));
|
buttonVisible(context.querySelector('.btnAudioTracks'), playbackManager.audioTracks(player).length > 1 && supportedCommands.indexOf('SetAudioStreamIndex') != -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateSubtitleTracksDisplay(player, context) {
|
function updateSubtitleTracksDisplay(player, context) {
|
||||||
var supportedCommands = currentPlayerSupportedCommands;
|
var supportedCommands = currentPlayerSupportedCommands;
|
||||||
buttonVisible(context.querySelector('.btnSubtitles'), playbackManager.subtitleTracks(player).length && -1 != supportedCommands.indexOf('SetSubtitleStreamIndex'));
|
buttonVisible(context.querySelector('.btnSubtitles'), playbackManager.subtitleTracks(player).length && supportedCommands.indexOf('SetSubtitleStreamIndex') != -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateRepeatModeDisplay(repeatMode) {
|
function updateRepeatModeDisplay(repeatMode) {
|
||||||
|
@ -383,11 +383,11 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
var view = context;
|
var view = context;
|
||||||
var supportedCommands = currentPlayerSupportedCommands;
|
var supportedCommands = currentPlayerSupportedCommands;
|
||||||
|
|
||||||
if (-1 === supportedCommands.indexOf('Mute')) {
|
if (supportedCommands.indexOf('Mute') === -1) {
|
||||||
showMuteButton = false;
|
showMuteButton = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (-1 === supportedCommands.indexOf('SetVolume')) {
|
if (supportedCommands.indexOf('SetVolume') === -1) {
|
||||||
showVolumeSlider = false;
|
showVolumeSlider = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -452,8 +452,8 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
context.querySelector('.positionTime').innerHTML = null == positionTicks ? '--:--' : datetime.getDisplayRunningTime(positionTicks);
|
context.querySelector('.positionTime').innerHTML = positionTicks == null ? '--:--' : datetime.getDisplayRunningTime(positionTicks);
|
||||||
context.querySelector('.runtime').innerHTML = null != runtimeTicks ? datetime.getDisplayRunningTime(runtimeTicks) : '--:--';
|
context.querySelector('.runtime').innerHTML = runtimeTicks != null ? datetime.getDisplayRunningTime(runtimeTicks) : '--:--';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPlaylistItems(player) {
|
function getPlaylistItems(player) {
|
||||||
|
|
|
@ -42,7 +42,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'listViewStyle', 'emb
|
||||||
for (var region in result) {
|
for (var region in result) {
|
||||||
var countries = result[region];
|
var countries = result[region];
|
||||||
|
|
||||||
if (countries.length && 'ZZZ' !== region) {
|
if (countries.length && region !== 'ZZZ') {
|
||||||
for (i = 0, length = countries.length; i < length; i++) {
|
for (i = 0, length = countries.length; i < length; i++) {
|
||||||
countryList.push({
|
countryList.push({
|
||||||
name: countries[i].fullName,
|
name: countries[i].fullName,
|
||||||
|
@ -237,7 +237,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'listViewStyle', 'emb
|
||||||
var device = devices[i];
|
var device = devices[i];
|
||||||
html += '<div class="listItem">';
|
html += '<div class="listItem">';
|
||||||
var enabledTuners = providerInfo.EnabledTuners || [];
|
var enabledTuners = providerInfo.EnabledTuners || [];
|
||||||
var isChecked = providerInfo.EnableAllTuners || -1 !== enabledTuners.indexOf(device.Id);
|
var isChecked = providerInfo.EnableAllTuners || enabledTuners.indexOf(device.Id) !== -1;
|
||||||
var checkedAttribute = isChecked ? ' checked' : '';
|
var checkedAttribute = isChecked ? ' checked' : '';
|
||||||
html += '<label class="checkboxContainer listItemCheckboxContainer"><input type="checkbox" is="emby-checkbox" data-id="' + device.Id + '" class="chkTuner" ' + checkedAttribute + '/><span></span></label>';
|
html += '<label class="checkboxContainer listItemCheckboxContainer"><input type="checkbox" is="emby-checkbox" data-id="' + device.Id + '" class="chkTuner" ' + checkedAttribute + '/><span></span></label>';
|
||||||
html += '<div class="listItemBody two-line">';
|
html += '<div class="listItemBody two-line">';
|
||||||
|
|
|
@ -84,7 +84,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'emby-input', 'listVi
|
||||||
}).then(function (result) {
|
}).then(function (result) {
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
|
||||||
if (false !== options.showConfirmation) {
|
if (options.showConfirmation !== false) {
|
||||||
Dashboard.processServerConfigurationUpdateResult();
|
Dashboard.processServerConfigurationUpdateResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox', 'emby-input', 'listVi
|
||||||
var device = devices[i];
|
var device = devices[i];
|
||||||
html += '<div class="listItem">';
|
html += '<div class="listItem">';
|
||||||
var enabledTuners = providerInfo.EnabledTuners || [];
|
var enabledTuners = providerInfo.EnabledTuners || [];
|
||||||
var isChecked = providerInfo.EnableAllTuners || -1 !== enabledTuners.indexOf(device.Id);
|
var isChecked = providerInfo.EnableAllTuners || enabledTuners.indexOf(device.Id) !== -1;
|
||||||
var checkedAttribute = isChecked ? ' checked' : '';
|
var checkedAttribute = isChecked ? ' checked' : '';
|
||||||
html += '<label class="listItemCheckboxContainer"><input type="checkbox" is="emby-checkbox" class="chkTuner" data-id="' + device.Id + '" ' + checkedAttribute + '><span></span></label>';
|
html += '<label class="listItemCheckboxContainer"><input type="checkbox" is="emby-checkbox" class="chkTuner" data-id="' + device.Id + '" ' + checkedAttribute + '><span></span></label>';
|
||||||
html += '<div class="listItemBody two-line">';
|
html += '<div class="listItemBody two-line">';
|
||||||
|
|
|
@ -9,7 +9,7 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||||
var controllerUrl = view.getAttribute('data-controller');
|
var controllerUrl = view.getAttribute('data-controller');
|
||||||
|
|
||||||
if (controllerUrl) {
|
if (controllerUrl) {
|
||||||
if (0 === controllerUrl.indexOf('__plugin/')) {
|
if (controllerUrl.indexOf('__plugin/') === 0) {
|
||||||
controllerUrl = controllerUrl.substring('__plugin/'.length);
|
controllerUrl = controllerUrl.substring('__plugin/'.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,14 +31,14 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||||
function loadView(options) {
|
function loadView(options) {
|
||||||
if (!options.cancel) {
|
if (!options.cancel) {
|
||||||
var selected = selectedPageIndex;
|
var selected = selectedPageIndex;
|
||||||
var previousAnimatable = -1 === selected ? null : allPages[selected];
|
var previousAnimatable = selected === -1 ? null : allPages[selected];
|
||||||
var pageIndex = selected + 1;
|
var pageIndex = selected + 1;
|
||||||
|
|
||||||
if (pageIndex >= pageContainerCount) {
|
if (pageIndex >= pageContainerCount) {
|
||||||
pageIndex = 0;
|
pageIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
var isPluginpage = -1 !== options.url.toLowerCase().indexOf('/configurationpage');
|
var isPluginpage = options.url.toLowerCase().indexOf('/configurationpage') !== -1;
|
||||||
var newViewInfo = normalizeNewView(options, isPluginpage);
|
var newViewInfo = normalizeNewView(options, isPluginpage);
|
||||||
var newView = newViewInfo.elem;
|
var newView = newViewInfo.elem;
|
||||||
var modulesToLoad = [];
|
var modulesToLoad = [];
|
||||||
|
@ -53,7 +53,7 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||||
|
|
||||||
var view = newView;
|
var view = newView;
|
||||||
|
|
||||||
if ('string' == typeof view) {
|
if (typeof view == 'string') {
|
||||||
view = document.createElement('div');
|
view = document.createElement('div');
|
||||||
view.innerHTML = newView;
|
view.innerHTML = newView;
|
||||||
}
|
}
|
||||||
|
@ -133,15 +133,15 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||||
function normalizeNewView(options, isPluginpage) {
|
function normalizeNewView(options, isPluginpage) {
|
||||||
var viewHtml = options.view;
|
var viewHtml = options.view;
|
||||||
|
|
||||||
if (-1 === viewHtml.indexOf('data-role="page"')) {
|
if (viewHtml.indexOf('data-role="page"') === -1) {
|
||||||
return viewHtml;
|
return viewHtml;
|
||||||
}
|
}
|
||||||
|
|
||||||
var hasScript = -1 !== viewHtml.indexOf('<script');
|
var hasScript = viewHtml.indexOf('<script') !== -1;
|
||||||
var elem = parseHtml(viewHtml, hasScript);
|
var elem = parseHtml(viewHtml, hasScript);
|
||||||
|
|
||||||
if (hasScript) {
|
if (hasScript) {
|
||||||
hasScript = null != elem.querySelector('script');
|
hasScript = elem.querySelector('script') != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var hasjQuery = false;
|
var hasjQuery = false;
|
||||||
|
@ -149,9 +149,9 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||||
var hasjQueryChecked = false;
|
var hasjQueryChecked = false;
|
||||||
|
|
||||||
if (isPluginpage) {
|
if (isPluginpage) {
|
||||||
hasjQuery = -1 != viewHtml.indexOf('jQuery') || -1 != viewHtml.indexOf('$(') || -1 != viewHtml.indexOf('$.');
|
hasjQuery = viewHtml.indexOf('jQuery') != -1 || viewHtml.indexOf('$(') != -1 || viewHtml.indexOf('$.') != -1;
|
||||||
hasjQueryChecked = -1 != viewHtml.indexOf('.checked(');
|
hasjQueryChecked = viewHtml.indexOf('.checked(') != -1;
|
||||||
hasjQuerySelect = -1 != viewHtml.indexOf('.selectmenu(');
|
hasjQuerySelect = viewHtml.indexOf('.selectmenu(') != -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -187,7 +187,7 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||||
var url = options.url;
|
var url = options.url;
|
||||||
var index = currentUrls.indexOf(url);
|
var index = currentUrls.indexOf(url);
|
||||||
|
|
||||||
if (-1 !== index) {
|
if (index !== -1) {
|
||||||
var animatable = allPages[index];
|
var animatable = allPages[index];
|
||||||
var view = animatable;
|
var view = animatable;
|
||||||
|
|
||||||
|
@ -197,7 +197,7 @@ define(['browser', 'dom', 'layoutManager', 'css!components/viewManager/viewConta
|
||||||
}
|
}
|
||||||
|
|
||||||
var selected = selectedPageIndex;
|
var selected = selectedPageIndex;
|
||||||
var previousAnimatable = -1 === selected ? null : allPages[selected];
|
var previousAnimatable = selected === -1 ? null : allPages[selected];
|
||||||
return setControllerClass(view, options).then(function () {
|
return setControllerClass(view, options).then(function () {
|
||||||
if (onBeforeChange) {
|
if (onBeforeChange) {
|
||||||
onBeforeChange(view, true, options);
|
onBeforeChange(view, true, options);
|
||||||
|
|
|
@ -313,7 +313,7 @@ import 'emby-itemscontainer';
|
||||||
btnCssClass = session.TranscodingInfo && session.TranscodingInfo.TranscodeReasons && session.TranscodingInfo.TranscodeReasons.length ? '' : ' hide';
|
btnCssClass = session.TranscodingInfo && session.TranscodingInfo.TranscodeReasons && session.TranscodingInfo.TranscodeReasons.length ? '' : ' hide';
|
||||||
html += '<button is="paper-icon-button-light" class="sessionCardButton btnSessionInfo paper-icon-button-light ' + btnCssClass + '" title="' + globalize.translate('ViewPlaybackInfo') + '"><span class="material-icons info"></span></button>';
|
html += '<button is="paper-icon-button-light" class="sessionCardButton btnSessionInfo paper-icon-button-light ' + btnCssClass + '" title="' + globalize.translate('ViewPlaybackInfo') + '"><span class="material-icons info"></span></button>';
|
||||||
|
|
||||||
btnCssClass = session.ServerId && -1 !== session.SupportedCommands.indexOf('DisplayMessage') && session.DeviceId !== connectionManager.deviceId() ? '' : ' hide';
|
btnCssClass = session.ServerId && session.SupportedCommands.indexOf('DisplayMessage') !== -1 && session.DeviceId !== connectionManager.deviceId() ? '' : ' hide';
|
||||||
html += '<button is="paper-icon-button-light" class="sessionCardButton btnSessionSendMessage paper-icon-button-light ' + btnCssClass + '" title="' + globalize.translate('SendMessage') + '"><span class="material-icons message"></span></button>';
|
html += '<button is="paper-icon-button-light" class="sessionCardButton btnSessionSendMessage paper-icon-button-light ' + btnCssClass + '" title="' + globalize.translate('SendMessage') + '"><span class="material-icons message"></span></button>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
|
@ -346,7 +346,7 @@ import 'emby-itemscontainer';
|
||||||
function renderRunningTasks(view, tasks) {
|
function renderRunningTasks(view, tasks) {
|
||||||
let html = '';
|
let html = '';
|
||||||
tasks = tasks.filter(function (task) {
|
tasks = tasks.filter(function (task) {
|
||||||
if ('Idle' != task.State) {
|
if (task.State != 'Idle') {
|
||||||
return !task.IsHidden;
|
return !task.IsHidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -551,7 +551,7 @@ import 'emby-itemscontainer';
|
||||||
row.classList.remove('playingSession');
|
row.classList.remove('playingSession');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (session.ServerId && -1 !== session.SupportedCommands.indexOf('DisplayMessage') && session.DeviceId !== connectionManager.deviceId()) {
|
if (session.ServerId && session.SupportedCommands.indexOf('DisplayMessage') !== -1 && session.DeviceId !== connectionManager.deviceId()) {
|
||||||
row.querySelector('.btnSessionSendMessage').classList.remove('hide');
|
row.querySelector('.btnSessionSendMessage').classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
row.querySelector('.btnSessionSendMessage').classList.add('hide');
|
row.querySelector('.btnSessionSendMessage').classList.add('hide');
|
||||||
|
|
|
@ -29,7 +29,7 @@ import 'listViewStyle';
|
||||||
function renderProfile(page, profile, users) {
|
function renderProfile(page, profile, users) {
|
||||||
$('#txtName', page).val(profile.Name);
|
$('#txtName', page).val(profile.Name);
|
||||||
$('.chkMediaType', page).each(function () {
|
$('.chkMediaType', page).each(function () {
|
||||||
this.checked = -1 != (profile.SupportedMediaTypes || '').split(',').indexOf(this.getAttribute('data-value'));
|
this.checked = (profile.SupportedMediaTypes || '').split(',').indexOf(this.getAttribute('data-value')) != -1;
|
||||||
});
|
});
|
||||||
$('#chkEnableAlbumArtInDidl', page).prop('checked', profile.EnableAlbumArtInDidl);
|
$('#chkEnableAlbumArtInDidl', page).prop('checked', profile.EnableAlbumArtInDidl);
|
||||||
$('#chkEnableSingleImageLimit', page).prop('checked', profile.EnableSingleAlbumArtLimit);
|
$('#chkEnableSingleImageLimit', page).prop('checked', profile.EnableSingleAlbumArtLimit);
|
||||||
|
@ -111,7 +111,7 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function editIdentificationHeader(page, header) {
|
function editIdentificationHeader(page, header) {
|
||||||
isSubProfileNew = null == header;
|
isSubProfileNew = header == null;
|
||||||
header = header || {};
|
header = header || {};
|
||||||
currentSubProfile = header;
|
currentSubProfile = header;
|
||||||
const popup = $('#identificationHeaderPopup', page);
|
const popup = $('#identificationHeaderPopup', page);
|
||||||
|
@ -156,7 +156,7 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function editXmlDocumentAttribute(page, attribute) {
|
function editXmlDocumentAttribute(page, attribute) {
|
||||||
isSubProfileNew = null == attribute;
|
isSubProfileNew = attribute == null;
|
||||||
attribute = attribute || {};
|
attribute = attribute || {};
|
||||||
currentSubProfile = attribute;
|
currentSubProfile = attribute;
|
||||||
const popup = $('#xmlAttributePopup', page);
|
const popup = $('#xmlAttributePopup', page);
|
||||||
|
@ -204,7 +204,7 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function editSubtitleProfile(page, profile) {
|
function editSubtitleProfile(page, profile) {
|
||||||
isSubProfileNew = null == profile;
|
isSubProfileNew = profile == null;
|
||||||
profile = profile || {};
|
profile = profile || {};
|
||||||
currentSubProfile = profile;
|
currentSubProfile = profile;
|
||||||
const popup = $('#subtitleProfilePopup', page);
|
const popup = $('#subtitleProfilePopup', page);
|
||||||
|
@ -266,11 +266,11 @@ import 'listViewStyle';
|
||||||
html += '<a is="emby-linkbutton" href="#" class="lnkEditSubProfile" data-profileindex="' + index + '">';
|
html += '<a is="emby-linkbutton" href="#" class="lnkEditSubProfile" data-profileindex="' + index + '">';
|
||||||
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
||||||
|
|
||||||
if ('Video' == profile.Type) {
|
if (profile.Type == 'Video') {
|
||||||
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
||||||
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
||||||
} else {
|
} else {
|
||||||
if ('Audio' == profile.Type) {
|
if (profile.Type == 'Audio') {
|
||||||
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -298,7 +298,7 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function editDirectPlayProfile(page, directPlayProfile) {
|
function editDirectPlayProfile(page, directPlayProfile) {
|
||||||
isSubProfileNew = null == directPlayProfile;
|
isSubProfileNew = directPlayProfile == null;
|
||||||
directPlayProfile = directPlayProfile || {};
|
directPlayProfile = directPlayProfile || {};
|
||||||
currentSubProfile = directPlayProfile;
|
currentSubProfile = directPlayProfile;
|
||||||
const popup = $('#popupEditDirectPlayProfile', page);
|
const popup = $('#popupEditDirectPlayProfile', page);
|
||||||
|
@ -327,11 +327,11 @@ import 'listViewStyle';
|
||||||
html += '<p>Protocol: ' + (profile.Protocol || 'Http') + '</p>';
|
html += '<p>Protocol: ' + (profile.Protocol || 'Http') + '</p>';
|
||||||
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
||||||
|
|
||||||
if ('Video' == profile.Type) {
|
if (profile.Type == 'Video') {
|
||||||
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
||||||
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
||||||
} else {
|
} else {
|
||||||
if ('Audio' == profile.Type) {
|
if (profile.Type == 'Audio') {
|
||||||
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -354,7 +354,7 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function editTranscodingProfile(page, transcodingProfile) {
|
function editTranscodingProfile(page, transcodingProfile) {
|
||||||
isSubProfileNew = null == transcodingProfile;
|
isSubProfileNew = transcodingProfile == null;
|
||||||
transcodingProfile = transcodingProfile || {};
|
transcodingProfile = transcodingProfile || {};
|
||||||
currentSubProfile = transcodingProfile;
|
currentSubProfile = transcodingProfile;
|
||||||
const popup = $('#transcodingProfilePopup', page);
|
const popup = $('#transcodingProfilePopup', page);
|
||||||
|
@ -365,7 +365,7 @@ import 'listViewStyle';
|
||||||
$('#selectTranscodingProtocol', popup).val(transcodingProfile.Protocol || 'Http');
|
$('#selectTranscodingProtocol', popup).val(transcodingProfile.Protocol || 'Http');
|
||||||
$('#chkEnableMpegtsM2TsMode', popup).prop('checked', transcodingProfile.EnableMpegtsM2TsMode || false);
|
$('#chkEnableMpegtsM2TsMode', popup).prop('checked', transcodingProfile.EnableMpegtsM2TsMode || false);
|
||||||
$('#chkEstimateContentLength', popup).prop('checked', transcodingProfile.EstimateContentLength || false);
|
$('#chkEstimateContentLength', popup).prop('checked', transcodingProfile.EstimateContentLength || false);
|
||||||
$('#chkReportByteRangeRequests', popup).prop('checked', 'Bytes' == transcodingProfile.TranscodeSeekInfo);
|
$('#chkReportByteRangeRequests', popup).prop('checked', transcodingProfile.TranscodeSeekInfo == 'Bytes');
|
||||||
$('.radioTabButton:first', popup).trigger('click');
|
$('.radioTabButton:first', popup).trigger('click');
|
||||||
openPopup(popup[0]);
|
openPopup(popup[0]);
|
||||||
}
|
}
|
||||||
|
@ -443,7 +443,7 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function editContainerProfile(page, containerProfile) {
|
function editContainerProfile(page, containerProfile) {
|
||||||
isSubProfileNew = null == containerProfile;
|
isSubProfileNew = containerProfile == null;
|
||||||
containerProfile = containerProfile || {};
|
containerProfile = containerProfile || {};
|
||||||
currentSubProfile = containerProfile;
|
currentSubProfile = containerProfile;
|
||||||
const popup = $('#containerProfilePopup', page);
|
const popup = $('#containerProfilePopup', page);
|
||||||
|
@ -515,7 +515,7 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function editCodecProfile(page, codecProfile) {
|
function editCodecProfile(page, codecProfile) {
|
||||||
isSubProfileNew = null == codecProfile;
|
isSubProfileNew = codecProfile == null;
|
||||||
codecProfile = codecProfile || {};
|
codecProfile = codecProfile || {};
|
||||||
currentSubProfile = codecProfile;
|
currentSubProfile = codecProfile;
|
||||||
const popup = $('#codecProfilePopup', page);
|
const popup = $('#codecProfilePopup', page);
|
||||||
|
@ -555,11 +555,11 @@ import 'listViewStyle';
|
||||||
html += '<a is="emby-linkbutton" href="#" class="lnkEditSubProfile" data-profileindex="' + i + '">';
|
html += '<a is="emby-linkbutton" href="#" class="lnkEditSubProfile" data-profileindex="' + i + '">';
|
||||||
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueContainer', profile.Container || allText) + '</p>';
|
||||||
|
|
||||||
if ('Video' == profile.Type) {
|
if (profile.Type == 'Video') {
|
||||||
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueVideoCodec', profile.VideoCodec || allText) + '</p>';
|
||||||
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueAudioCodec', profile.AudioCodec || allText) + '</p>';
|
||||||
} else {
|
} else {
|
||||||
if ('Audio' == profile.Type) {
|
if (profile.Type == 'Audio') {
|
||||||
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
html += '<p>' + globalize.translate('ValueCodec', profile.AudioCodec || allText) + '</p>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -595,7 +595,7 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
|
|
||||||
function editResponseProfile(page, responseProfile) {
|
function editResponseProfile(page, responseProfile) {
|
||||||
isSubProfileNew = null == responseProfile;
|
isSubProfileNew = responseProfile == null;
|
||||||
responseProfile = responseProfile || {};
|
responseProfile = responseProfile || {};
|
||||||
currentSubProfile = responseProfile;
|
currentSubProfile = responseProfile;
|
||||||
const popup = $('#responseProfilePopup', page);
|
const popup = $('#responseProfilePopup', page);
|
||||||
|
@ -703,26 +703,26 @@ import 'listViewStyle';
|
||||||
$('.radioTabButton', page).on('click', function () {
|
$('.radioTabButton', page).on('click', function () {
|
||||||
$(this).siblings().removeClass('ui-btn-active');
|
$(this).siblings().removeClass('ui-btn-active');
|
||||||
$(this).addClass('ui-btn-active');
|
$(this).addClass('ui-btn-active');
|
||||||
const value = 'A' == this.tagName ? this.getAttribute('data-value') : this.value;
|
const value = this.tagName == 'A' ? this.getAttribute('data-value') : this.value;
|
||||||
const elem = $('.' + value, page);
|
const elem = $('.' + value, page);
|
||||||
elem.siblings('.tabContent').hide();
|
elem.siblings('.tabContent').hide();
|
||||||
elem.show();
|
elem.show();
|
||||||
});
|
});
|
||||||
$('#selectDirectPlayProfileType', page).on('change', function () {
|
$('#selectDirectPlayProfileType', page).on('change', function () {
|
||||||
if ('Video' == this.value) {
|
if (this.value == 'Video') {
|
||||||
$('#fldDirectPlayVideoCodec', page).show();
|
$('#fldDirectPlayVideoCodec', page).show();
|
||||||
} else {
|
} else {
|
||||||
$('#fldDirectPlayVideoCodec', page).hide();
|
$('#fldDirectPlayVideoCodec', page).hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Photo' == this.value) {
|
if (this.value == 'Photo') {
|
||||||
$('#fldDirectPlayAudioCodec', page).hide();
|
$('#fldDirectPlayAudioCodec', page).hide();
|
||||||
} else {
|
} else {
|
||||||
$('#fldDirectPlayAudioCodec', page).show();
|
$('#fldDirectPlayAudioCodec', page).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('#selectTranscodingProfileType', page).on('change', function () {
|
$('#selectTranscodingProfileType', page).on('change', function () {
|
||||||
if ('Video' == this.value) {
|
if (this.value == 'Video') {
|
||||||
$('#fldTranscodingVideoCodec', page).show();
|
$('#fldTranscodingVideoCodec', page).show();
|
||||||
$('#fldTranscodingProtocol', page).show();
|
$('#fldTranscodingProtocol', page).show();
|
||||||
$('#fldEnableMpegtsM2TsMode', page).show();
|
$('#fldEnableMpegtsM2TsMode', page).show();
|
||||||
|
@ -732,7 +732,7 @@ import 'listViewStyle';
|
||||||
$('#fldEnableMpegtsM2TsMode', page).hide();
|
$('#fldEnableMpegtsM2TsMode', page).hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Photo' == this.value) {
|
if (this.value == 'Photo') {
|
||||||
$('#fldTranscodingAudioCodec', page).hide();
|
$('#fldTranscodingAudioCodec', page).hide();
|
||||||
$('#fldEstimateContentLength', page).hide();
|
$('#fldEstimateContentLength', page).hide();
|
||||||
$('#fldReportByteRangeRequests', page).hide();
|
$('#fldReportByteRangeRequests', page).hide();
|
||||||
|
@ -743,13 +743,13 @@ import 'listViewStyle';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
$('#selectResponseProfileType', page).on('change', function () {
|
$('#selectResponseProfileType', page).on('change', function () {
|
||||||
if ('Video' == this.value) {
|
if (this.value == 'Video') {
|
||||||
$('#fldResponseProfileVideoCodec', page).show();
|
$('#fldResponseProfileVideoCodec', page).show();
|
||||||
} else {
|
} else {
|
||||||
$('#fldResponseProfileVideoCodec', page).hide();
|
$('#fldResponseProfileVideoCodec', page).hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Photo' == this.value) {
|
if (this.value == 'Photo') {
|
||||||
$('#fldResponseProfileAudioCodec', page).hide();
|
$('#fldResponseProfileAudioCodec', page).hide();
|
||||||
} else {
|
} else {
|
||||||
$('#fldResponseProfileAudioCodec', page).show();
|
$('#fldResponseProfileAudioCodec', page).show();
|
||||||
|
|
|
@ -18,13 +18,13 @@ import 'emby-button';
|
||||||
|
|
||||||
function renderUserProfiles(page, profiles) {
|
function renderUserProfiles(page, profiles) {
|
||||||
renderProfiles(page, page.querySelector('.customProfiles'), profiles.filter(function (p) {
|
renderProfiles(page, page.querySelector('.customProfiles'), profiles.filter(function (p) {
|
||||||
return 'User' == p.Type;
|
return p.Type == 'User';
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderSystemProfiles(page, profiles) {
|
function renderSystemProfiles(page, profiles) {
|
||||||
renderProfiles(page, page.querySelector('.systemProfiles'), profiles.filter(function (p) {
|
renderProfiles(page, page.querySelector('.systemProfiles'), profiles.filter(function (p) {
|
||||||
return 'System' == p.Type;
|
return p.Type == 'System';
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ import 'emby-button';
|
||||||
html += '</a>';
|
html += '</a>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
if ('User' == profile.Type) {
|
if (profile.Type == 'User') {
|
||||||
html += '<button type="button" is="paper-icon-button-light" class="btnDeleteProfile" data-profileid="' + profile.Id + '" title="' + globalize.translate('ButtonDelete') + '"><span class="material-icons delete"></span></button>';
|
html += '<button type="button" is="paper-icon-button-light" class="btnDeleteProfile" data-profileid="' + profile.Id + '" title="' + globalize.translate('ButtonDelete') + '"><span class="material-icons delete"></span></button>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ import libraryMenu from 'libraryMenu';
|
||||||
|
|
||||||
function loadPage(page, config, systemInfo) {
|
function loadPage(page, config, systemInfo) {
|
||||||
Array.prototype.forEach.call(page.querySelectorAll('.chkDecodeCodec'), function (c) {
|
Array.prototype.forEach.call(page.querySelectorAll('.chkDecodeCodec'), function (c) {
|
||||||
c.checked = -1 !== (config.HardwareDecodingCodecs || []).indexOf(c.getAttribute('data-codec'));
|
c.checked = (config.HardwareDecodingCodecs || []).indexOf(c.getAttribute('data-codec')) !== -1;
|
||||||
});
|
});
|
||||||
page.querySelector('#chkDecodingColorDepth10Hevc').checked = config.EnableDecodingColorDepth10Hevc;
|
page.querySelector('#chkDecodingColorDepth10Hevc').checked = config.EnableDecodingColorDepth10Hevc;
|
||||||
page.querySelector('#chkDecodingColorDepth10Vp9').checked = config.EnableDecodingColorDepth10Vp9;
|
page.querySelector('#chkDecodingColorDepth10Vp9').checked = config.EnableDecodingColorDepth10Vp9;
|
||||||
|
@ -107,7 +107,7 @@ import libraryMenu from 'libraryMenu';
|
||||||
value = value || '';
|
value = value || '';
|
||||||
let any;
|
let any;
|
||||||
Array.prototype.forEach.call(context.querySelectorAll('.chkDecodeCodec'), function (c) {
|
Array.prototype.forEach.call(context.querySelectorAll('.chkDecodeCodec'), function (c) {
|
||||||
if (-1 === c.getAttribute('data-types').split(',').indexOf(value)) {
|
if (c.getAttribute('data-types').split(',').indexOf(value) === -1) {
|
||||||
dom.parentWithTag(c, 'LABEL').classList.add('hide');
|
dom.parentWithTag(c, 'LABEL').classList.add('hide');
|
||||||
} else {
|
} else {
|
||||||
dom.parentWithTag(c, 'LABEL').classList.remove('hide');
|
dom.parentWithTag(c, 'LABEL').classList.remove('hide');
|
||||||
|
@ -138,7 +138,7 @@ import libraryMenu from 'libraryMenu';
|
||||||
$(document).on('pageinit', '#encodingSettingsPage', function () {
|
$(document).on('pageinit', '#encodingSettingsPage', function () {
|
||||||
const page = this;
|
const page = this;
|
||||||
page.querySelector('#selectVideoDecoder').addEventListener('change', function () {
|
page.querySelector('#selectVideoDecoder').addEventListener('change', function () {
|
||||||
if ('vaapi' == this.value) {
|
if (this.value == 'vaapi') {
|
||||||
page.querySelector('.fldVaapiDevice').classList.remove('hide');
|
page.querySelector('.fldVaapiDevice').classList.remove('hide');
|
||||||
page.querySelector('#txtVaapiDevice').setAttribute('required', 'required');
|
page.querySelector('#txtVaapiDevice').setAttribute('required', 'required');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -48,7 +48,7 @@ import 'emby-button';
|
||||||
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
|
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
|
||||||
});
|
});
|
||||||
ApiClient.getNamedConfiguration('metadata').then(function(config) {
|
ApiClient.getNamedConfiguration('metadata').then(function(config) {
|
||||||
config.UseFileCreationTimeForDateAdded = '1' === $('#selectDateAdded', form).val();
|
config.UseFileCreationTimeForDateAdded = $('#selectDateAdded', form).val() === '1';
|
||||||
ApiClient.updateNamedConfiguration('metadata', config);
|
ApiClient.updateNamedConfiguration('metadata', config);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ import 'emby-button';
|
||||||
libraryMenu.setTabs('librarysetup', 1, getTabs);
|
libraryMenu.setTabs('librarysetup', 1, getTabs);
|
||||||
loadData();
|
loadData();
|
||||||
ApiClient.getSystemInfo().then(function(info) {
|
ApiClient.getSystemInfo().then(function(info) {
|
||||||
if ('Windows' === info.OperatingSystem) {
|
if (info.OperatingSystem === 'Windows') {
|
||||||
view.querySelector('.fldSaveMetadataHidden').classList.remove('hide');
|
view.querySelector('.fldSaveMetadataHidden').classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
view.querySelector('.fldSaveMetadataHidden').classList.add('hide');
|
view.querySelector('.fldSaveMetadataHidden').classList.add('hide');
|
||||||
|
|
|
@ -156,7 +156,7 @@ import 'emby-itemrefreshindicator';
|
||||||
}
|
}
|
||||||
|
|
||||||
function shouldRefreshLibraryAfterChanges(page) {
|
function shouldRefreshLibraryAfterChanges(page) {
|
||||||
return 'mediaLibraryPage' === page.id;
|
return page.id === 'mediaLibraryPage';
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadVirtualFolders(page, virtualFolders) {
|
function reloadVirtualFolders(page, virtualFolders) {
|
||||||
|
@ -286,7 +286,7 @@ import 'emby-itemrefreshindicator';
|
||||||
|
|
||||||
if (hasCardImageContainer) {
|
if (hasCardImageContainer) {
|
||||||
html += '<div class="cardIndicators backdropCardIndicators">';
|
html += '<div class="cardIndicators backdropCardIndicators">';
|
||||||
html += '<div is="emby-itemrefreshindicator"' + (virtualFolder.RefreshProgress || virtualFolder.RefreshStatus && 'Idle' !== virtualFolder.RefreshStatus ? '' : ' class="hide"') + ' data-progress="' + (virtualFolder.RefreshProgress || 0) + '" data-status="' + virtualFolder.RefreshStatus + '"></div>';
|
html += '<div is="emby-itemrefreshindicator"' + (virtualFolder.RefreshProgress || virtualFolder.RefreshStatus && virtualFolder.RefreshStatus !== 'Idle' ? '' : ' class="hide"') + ' data-progress="' + (virtualFolder.RefreshProgress || 0) + '" data-status="' + virtualFolder.RefreshStatus + '"></div>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ import 'emby-select';
|
||||||
}).filter(function (s) {
|
}).filter(function (s) {
|
||||||
return s.length > 0;
|
return s.length > 0;
|
||||||
});
|
});
|
||||||
config.IsRemoteIPFilterBlacklist = 'blacklist' === form.querySelector('#selectExternalAddressFilterMode').value;
|
config.IsRemoteIPFilterBlacklist = form.querySelector('#selectExternalAddressFilterMode').value === 'blacklist';
|
||||||
config.PublicPort = form.querySelector('#txtPublicPort').value;
|
config.PublicPort = form.querySelector('#txtPublicPort').value;
|
||||||
config.PublicHttpsPort = form.querySelector('#txtPublicHttpsPort').value;
|
config.PublicHttpsPort = form.querySelector('#txtPublicHttpsPort').value;
|
||||||
config.HttpServerPortNumber = form.querySelector('#txtPortNumber').value;
|
config.HttpServerPortNumber = form.querySelector('#txtPortNumber').value;
|
||||||
|
@ -110,7 +110,7 @@ import 'emby-select';
|
||||||
page.querySelector('#txtLanNetworks').value = (config.LocalNetworkSubnets || []).join(', ');
|
page.querySelector('#txtLanNetworks').value = (config.LocalNetworkSubnets || []).join(', ');
|
||||||
page.querySelector('#txtExternalAddressFilter').value = (config.RemoteIPFilter || []).join(', ');
|
page.querySelector('#txtExternalAddressFilter').value = (config.RemoteIPFilter || []).join(', ');
|
||||||
page.querySelector('#selectExternalAddressFilterMode').value = config.IsRemoteIPFilterBlacklist ? 'blacklist' : 'whitelist';
|
page.querySelector('#selectExternalAddressFilterMode').value = config.IsRemoteIPFilterBlacklist ? 'blacklist' : 'whitelist';
|
||||||
page.querySelector('#chkRemoteAccess').checked = null == config.EnableRemoteAccess || config.EnableRemoteAccess;
|
page.querySelector('#chkRemoteAccess').checked = config.EnableRemoteAccess == null || config.EnableRemoteAccess;
|
||||||
page.querySelector('#txtHttpsPort').value = config.HttpsPortNumber;
|
page.querySelector('#txtHttpsPort').value = config.HttpsPortNumber;
|
||||||
page.querySelector('#chkEnableHttps').checked = config.EnableHttps;
|
page.querySelector('#chkEnableHttps').checked = config.EnableHttps;
|
||||||
page.querySelector('#chkRequireHttps').checked = config.RequireHttps;
|
page.querySelector('#chkRequireHttps').checked = config.RequireHttps;
|
||||||
|
|
|
@ -106,7 +106,7 @@ define(['jQuery', 'emby-checkbox'], function ($) {
|
||||||
$(document).on('pageinit', '#notificationSettingPage', function () {
|
$(document).on('pageinit', '#notificationSettingPage', function () {
|
||||||
var page = this;
|
var page = this;
|
||||||
$('#selectUsers', page).on('change', function () {
|
$('#selectUsers', page).on('change', function () {
|
||||||
if ('Custom' == this.value) {
|
if (this.value == 'Custom') {
|
||||||
$('.selectCustomUsers', page).show();
|
$('.selectCustomUsers', page).show();
|
||||||
} else {
|
} else {
|
||||||
$('.selectCustomUsers', page).hide();
|
$('.selectCustomUsers', page).hide();
|
||||||
|
|
|
@ -17,13 +17,13 @@ define(['loading', 'libraryMenu', 'globalize', 'cardStyle', 'emby-button', 'emby
|
||||||
|
|
||||||
function getHeaderText(category) {
|
function getHeaderText(category) {
|
||||||
category = category.replace(' ', '');
|
category = category.replace(' ', '');
|
||||||
if ('Channel' === category) {
|
if (category === 'Channel') {
|
||||||
category = 'Channels';
|
category = 'Channels';
|
||||||
} else if ('Theme' === category) {
|
} else if (category === 'Theme') {
|
||||||
category = 'Themes';
|
category = 'Themes';
|
||||||
} else if ('LiveTV' === category) {
|
} else if (category === 'LiveTV') {
|
||||||
category = 'HeaderLiveTV';
|
category = 'HeaderLiveTV';
|
||||||
} else if ('ScreenSaver' === category) {
|
} else if (category === 'ScreenSaver') {
|
||||||
category = 'HeaderScreenSavers';
|
category = 'HeaderScreenSavers';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,16 +84,16 @@ import 'emby-select';
|
||||||
},
|
},
|
||||||
// TODO: Replace this mess with date-fns and remove datetime completely
|
// TODO: Replace this mess with date-fns and remove datetime completely
|
||||||
getTriggerFriendlyName: function (trigger) {
|
getTriggerFriendlyName: function (trigger) {
|
||||||
if ('DailyTrigger' == trigger.Type) {
|
if (trigger.Type == 'DailyTrigger') {
|
||||||
return globalize.translate('DailyAt', ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks));
|
return globalize.translate('DailyAt', ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('WeeklyTrigger' == trigger.Type) {
|
if (trigger.Type == 'WeeklyTrigger') {
|
||||||
// TODO: The day of week isn't localised as well
|
// TODO: The day of week isn't localised as well
|
||||||
return globalize.translate('WeeklyAt', trigger.DayOfWeek, ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks));
|
return globalize.translate('WeeklyAt', trigger.DayOfWeek, ScheduledTaskPage.getDisplayTime(trigger.TimeOfDayTicks));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('SystemEventTrigger' == trigger.Type && 'WakeFromSleep' == trigger.SystemEvent) {
|
if (trigger.Type == 'SystemEventTrigger' && trigger.SystemEvent == 'WakeFromSleep') {
|
||||||
return globalize.translate('OnWakeFromSleep');
|
return globalize.translate('OnWakeFromSleep');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,13 +14,13 @@ import globalize from 'globalize';
|
||||||
let html = '';
|
let html = '';
|
||||||
|
|
||||||
for (const folder of mediaFolders) {
|
for (const folder of mediaFolders) {
|
||||||
isChecked = user.Policy.EnableContentDeletion || -1 != user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id);
|
isChecked = user.Policy.EnableContentDeletion || user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id) != -1;
|
||||||
checkedAttribute = isChecked ? ' checked="checked"' : '';
|
checkedAttribute = isChecked ? ' checked="checked"' : '';
|
||||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const folder of channelsResult.Items) {
|
for (const folder of channelsResult.Items) {
|
||||||
isChecked = user.Policy.EnableContentDeletion || -1 != user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id);
|
isChecked = user.Policy.EnableContentDeletion || user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id) != -1;
|
||||||
checkedAttribute = isChecked ? ' checked="checked"' : '';
|
checkedAttribute = isChecked ? ' checked="checked"' : '';
|
||||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
||||||
}
|
}
|
||||||
|
@ -96,7 +96,7 @@ import globalize from 'globalize';
|
||||||
$('#chkEnableVideoPlaybackTranscoding', page).prop('checked', user.Policy.EnableVideoPlaybackTranscoding);
|
$('#chkEnableVideoPlaybackTranscoding', page).prop('checked', user.Policy.EnableVideoPlaybackTranscoding);
|
||||||
$('#chkEnableVideoPlaybackRemuxing', page).prop('checked', user.Policy.EnablePlaybackRemuxing);
|
$('#chkEnableVideoPlaybackRemuxing', page).prop('checked', user.Policy.EnablePlaybackRemuxing);
|
||||||
$('#chkForceRemoteSourceTranscoding', page).prop('checked', user.Policy.ForceRemoteSourceTranscoding);
|
$('#chkForceRemoteSourceTranscoding', page).prop('checked', user.Policy.ForceRemoteSourceTranscoding);
|
||||||
$('#chkRemoteAccess', page).prop('checked', null == user.Policy.EnableRemoteAccess || user.Policy.EnableRemoteAccess);
|
$('#chkRemoteAccess', page).prop('checked', user.Policy.EnableRemoteAccess == null || user.Policy.EnableRemoteAccess);
|
||||||
$('#chkEnableSyncTranscoding', page).prop('checked', user.Policy.EnableSyncTranscoding);
|
$('#chkEnableSyncTranscoding', page).prop('checked', user.Policy.EnableSyncTranscoding);
|
||||||
$('#chkEnableConversion', page).prop('checked', user.Policy.EnableMediaConversion || false);
|
$('#chkEnableConversion', page).prop('checked', user.Policy.EnableMediaConversion || false);
|
||||||
$('#chkEnableSharing', page).prop('checked', user.Policy.EnablePublicSharing);
|
$('#chkEnableSharing', page).prop('checked', user.Policy.EnablePublicSharing);
|
||||||
|
|
|
@ -18,7 +18,7 @@ import globalize from 'globalize';
|
||||||
|
|
||||||
for (let i = 0, length = mediaFolders.length; i < length; i++) {
|
for (let i = 0, length = mediaFolders.length; i < length; i++) {
|
||||||
const folder = mediaFolders[i];
|
const folder = mediaFolders[i];
|
||||||
const isChecked = user.Policy.EnableAllFolders || -1 != user.Policy.EnabledFolders.indexOf(folder.Id);
|
const isChecked = user.Policy.EnableAllFolders || user.Policy.EnabledFolders.indexOf(folder.Id) != -1;
|
||||||
const checkedAttribute = isChecked ? ' checked="checked"' : '';
|
const checkedAttribute = isChecked ? ' checked="checked"' : '';
|
||||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
html += '<label><input type="checkbox" is="emby-checkbox" class="chkFolder" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ import globalize from 'globalize';
|
||||||
|
|
||||||
for (let i = 0, length = channels.length; i < length; i++) {
|
for (let i = 0, length = channels.length; i < length; i++) {
|
||||||
const folder = channels[i];
|
const folder = channels[i];
|
||||||
const isChecked = user.Policy.EnableAllChannels || -1 != user.Policy.EnabledChannels.indexOf(folder.Id);
|
const isChecked = user.Policy.EnableAllChannels || user.Policy.EnabledChannels.indexOf(folder.Id) != -1;
|
||||||
const checkedAttribute = isChecked ? ' checked="checked"' : '';
|
const checkedAttribute = isChecked ? ' checked="checked"' : '';
|
||||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkChannel" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
html += '<label><input type="checkbox" is="emby-checkbox" class="chkChannel" data-id="' + folder.Id + '" ' + checkedAttribute + '><span>' + folder.Name + '</span></label>';
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ import globalize from 'globalize';
|
||||||
|
|
||||||
for (let i = 0, length = devices.length; i < length; i++) {
|
for (let i = 0, length = devices.length; i < length; i++) {
|
||||||
const device = devices[i];
|
const device = devices[i];
|
||||||
const checkedAttribute = user.Policy.EnableAllDevices || -1 != user.Policy.EnabledDevices.indexOf(device.Id) ? ' checked="checked"' : '';
|
const checkedAttribute = user.Policy.EnableAllDevices || user.Policy.EnabledDevices.indexOf(device.Id) != -1 ? ' checked="checked"' : '';
|
||||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkDevice" data-id="' + device.Id + '" ' + checkedAttribute + '><span>' + device.Name + ' - ' + device.AppName + '</span></label>';
|
html += '<label><input type="checkbox" is="emby-checkbox" class="chkDevice" data-id="' + device.Id + '" ' + checkedAttribute + '><span>' + device.Name + ' - ' + device.AppName + '</span></label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,7 @@ import 'paper-icon-button-light';
|
||||||
|
|
||||||
for (let i = 0, length = items.length; i < length; i++) {
|
for (let i = 0, length = items.length; i < length; i++) {
|
||||||
const item = items[i];
|
const item = items[i];
|
||||||
const checkedAttribute = -1 != user.Policy.BlockUnratedItems.indexOf(item.value) ? ' checked="checked"' : '';
|
const checkedAttribute = user.Policy.BlockUnratedItems.indexOf(item.value) != -1 ? ' checked="checked"' : '';
|
||||||
html += '<label><input type="checkbox" is="emby-checkbox" class="chkUnratedItem" data-itemtype="' + item.value + '" type="checkbox"' + checkedAttribute + '><span>' + item.name + '</span></label>';
|
html += '<label><input type="checkbox" is="emby-checkbox" class="chkUnratedItem" data-itemtype="' + item.value + '" type="checkbox"' + checkedAttribute + '><span>' + item.name + '</span></label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ import 'paper-icon-button-light';
|
||||||
}).then(function (updatedSchedule) {
|
}).then(function (updatedSchedule) {
|
||||||
const schedules = getSchedulesFromPage(page);
|
const schedules = getSchedulesFromPage(page);
|
||||||
|
|
||||||
if (-1 == index) {
|
if (index == -1) {
|
||||||
index = schedules.length;
|
index = schedules.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,7 +234,7 @@ import 'paper-icon-button-light';
|
||||||
}).then(function (value) {
|
}).then(function (value) {
|
||||||
const tags = getBlockedTagsFromPage(page);
|
const tags = getBlockedTagsFromPage(page);
|
||||||
|
|
||||||
if (-1 == tags.indexOf(value)) {
|
if (tags.indexOf(value) == -1) {
|
||||||
tags.push(value);
|
tags.push(value);
|
||||||
loadBlockedTags(page, tags);
|
loadBlockedTags(page, tags);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ import 'emby-button';
|
||||||
let showPasswordSection = true;
|
let showPasswordSection = true;
|
||||||
let showLocalAccessSection = false;
|
let showLocalAccessSection = false;
|
||||||
|
|
||||||
if ('Guest' == user.ConnectLinkType) {
|
if (user.ConnectLinkType == 'Guest') {
|
||||||
page.querySelector('.localAccessSection').classList.add('hide');
|
page.querySelector('.localAccessSection').classList.add('hide');
|
||||||
showPasswordSection = false;
|
showPasswordSection = false;
|
||||||
} else if (user.HasConfiguredPassword) {
|
} else if (user.HasConfiguredPassword) {
|
||||||
|
|
|
@ -129,7 +129,7 @@ import 'flexStyles';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '<div class="cardText cardText-secondary">';
|
html += '<div class="cardText cardText-secondary">';
|
||||||
const lastSeen = getLastSeenText(user.LastActivityDate);
|
const lastSeen = getLastSeenText(user.LastActivityDate);
|
||||||
html += '' != lastSeen ? lastSeen : ' ';
|
html += lastSeen != '' ? lastSeen : ' ';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
|
@ -147,11 +147,11 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap
|
||||||
options.Limit = 20;
|
options.Limit = 20;
|
||||||
var userId = apiClient.getCurrentUserId();
|
var userId = apiClient.getCurrentUserId();
|
||||||
|
|
||||||
if ('MusicArtist' === section.types) {
|
if (section.types === 'MusicArtist') {
|
||||||
return apiClient.getArtists(userId, options);
|
return apiClient.getArtists(userId, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Person' === section.types) {
|
if (section.types === 'Person') {
|
||||||
return apiClient.getPeople(userId, options);
|
return apiClient.getPeople(userId, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ define(['appRouter', 'cardBuilder', 'dom', 'globalize', 'connectionManager', 'ap
|
||||||
preferThumb: section.preferThumb,
|
preferThumb: section.preferThumb,
|
||||||
shape: section.shape,
|
shape: section.shape,
|
||||||
centerText: section.centerText && !cardLayout,
|
centerText: section.centerText && !cardLayout,
|
||||||
overlayText: false !== section.overlayText,
|
overlayText: section.overlayText !== false,
|
||||||
showTitle: section.showTitle,
|
showTitle: section.showTitle,
|
||||||
showYear: section.showYear,
|
showYear: section.showYear,
|
||||||
showParentTitle: section.showParentTitle,
|
showParentTitle: section.showParentTitle,
|
||||||
|
|
|
@ -20,7 +20,7 @@ define(['tabbedView', 'globalize', 'require', 'emby-tabs', 'emby-button', 'emby-
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTabController(index) {
|
function getTabController(index) {
|
||||||
if (null == index) {
|
if (index == null) {
|
||||||
throw new Error('index cannot be null');
|
throw new Error('index cannot be null');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getContextMenuOptions(item, user, button) {
|
function getContextMenuOptions(item, user, button) {
|
||||||
const options = {
|
return {
|
||||||
item: item,
|
item: item,
|
||||||
open: false,
|
open: false,
|
||||||
play: false,
|
play: false,
|
||||||
|
@ -81,8 +81,6 @@ import 'emby-select';
|
||||||
user: user,
|
user: user,
|
||||||
share: true
|
share: true
|
||||||
};
|
};
|
||||||
|
|
||||||
return options;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getProgramScheduleHtml(items) {
|
function getProgramScheduleHtml(items) {
|
||||||
|
@ -130,7 +128,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderTimerEditor(page, item, apiClient, user) {
|
function renderTimerEditor(page, item, apiClient, user) {
|
||||||
if ('Recording' !== item.Type || !user.Policy.EnableLiveTvManagement || !item.TimerId || 'InProgress' !== item.Status) {
|
if (item.Type !== 'Recording' || !user.Policy.EnableLiveTvManagement || !item.TimerId || item.Status !== 'InProgress') {
|
||||||
return void hideAll(page, 'btnCancelTimer');
|
return void hideAll(page, 'btnCancelTimer');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,7 +136,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderSeriesTimerEditor(page, item, apiClient, user) {
|
function renderSeriesTimerEditor(page, item, apiClient, user) {
|
||||||
if ('SeriesTimer' !== item.Type) {
|
if (item.Type !== 'SeriesTimer') {
|
||||||
return void hideAll(page, 'btnCancelSeriesTimer');
|
return void hideAll(page, 'btnCancelSeriesTimer');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +159,7 @@ import 'emby-select';
|
||||||
function renderTrackSelections(page, instance, item, forceReload) {
|
function renderTrackSelections(page, instance, item, forceReload) {
|
||||||
const select = page.querySelector('.selectSource');
|
const select = page.querySelector('.selectSource');
|
||||||
|
|
||||||
if (!item.MediaSources || !itemHelper.supportsMediaSourceSelection(item) || -1 === playbackManager.getSupportedCommands().indexOf('PlayMediaSource') || !playbackManager.canPlay(item)) {
|
if (!item.MediaSources || !itemHelper.supportsMediaSourceSelection(item) || playbackManager.getSupportedCommands().indexOf('PlayMediaSource') === -1 || !playbackManager.canPlay(item)) {
|
||||||
page.querySelector('.trackSelections').classList.add('hide');
|
page.querySelector('.trackSelections').classList.add('hide');
|
||||||
select.innerHTML = '';
|
select.innerHTML = '';
|
||||||
page.querySelector('.selectVideo').innerHTML = '';
|
page.querySelector('.selectVideo').innerHTML = '';
|
||||||
|
@ -240,7 +238,7 @@ import 'emby-select';
|
||||||
return m.Id === mediaSourceId;
|
return m.Id === mediaSourceId;
|
||||||
})[0];
|
})[0];
|
||||||
const tracks = mediaSource.MediaStreams.filter(function (m) {
|
const tracks = mediaSource.MediaStreams.filter(function (m) {
|
||||||
return 'Audio' === m.Type;
|
return m.Type === 'Audio';
|
||||||
});
|
});
|
||||||
const select = page.querySelector('.selectAudio');
|
const select = page.querySelector('.selectAudio');
|
||||||
select.setLabel(globalize.translate('LabelAudio'));
|
select.setLabel(globalize.translate('LabelAudio'));
|
||||||
|
@ -269,19 +267,19 @@ import 'emby-select';
|
||||||
return m.Id === mediaSourceId;
|
return m.Id === mediaSourceId;
|
||||||
})[0];
|
})[0];
|
||||||
const tracks = mediaSource.MediaStreams.filter(function (m) {
|
const tracks = mediaSource.MediaStreams.filter(function (m) {
|
||||||
return 'Subtitle' === m.Type;
|
return m.Type === 'Subtitle';
|
||||||
});
|
});
|
||||||
const select = page.querySelector('.selectSubtitles');
|
const select = page.querySelector('.selectSubtitles');
|
||||||
select.setLabel(globalize.translate('LabelSubtitles'));
|
select.setLabel(globalize.translate('LabelSubtitles'));
|
||||||
const selectedId = null == mediaSource.DefaultSubtitleStreamIndex ? -1 : mediaSource.DefaultSubtitleStreamIndex;
|
const selectedId = mediaSource.DefaultSubtitleStreamIndex == null ? -1 : mediaSource.DefaultSubtitleStreamIndex;
|
||||||
|
|
||||||
const videoTracks = mediaSource.MediaStreams.filter(function (m) {
|
const videoTracks = mediaSource.MediaStreams.filter(function (m) {
|
||||||
return 'Video' === m.Type;
|
return m.Type === 'Video';
|
||||||
});
|
});
|
||||||
|
|
||||||
// This only makes sense on Video items
|
// This only makes sense on Video items
|
||||||
if (videoTracks.length) {
|
if (videoTracks.length) {
|
||||||
let selected = -1 === selectedId ? ' selected' : '';
|
let selected = selectedId === -1 ? ' selected' : '';
|
||||||
select.innerHTML = '<option value="-1">' + globalize.translate('Off') + '</option>' + tracks.map(function (v) {
|
select.innerHTML = '<option value="-1">' + globalize.translate('Off') + '</option>' + tracks.map(function (v) {
|
||||||
selected = v.Index === selectedId ? ' selected' : '';
|
selected = v.Index === selectedId ? ' selected' : '';
|
||||||
return '<option value="' + v.Index + '" ' + selected + '>' + v.DisplayTitle + '</option>';
|
return '<option value="' + v.Index + '" ' + selected + '>' + v.DisplayTitle + '</option>';
|
||||||
|
@ -303,7 +301,7 @@ import 'emby-select';
|
||||||
function reloadPlayButtons(page, item) {
|
function reloadPlayButtons(page, item) {
|
||||||
let canPlay = false;
|
let canPlay = false;
|
||||||
|
|
||||||
if ('Program' == item.Type) {
|
if (item.Type == 'Program') {
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
|
|
||||||
if (now >= datetime.parseISO8601Date(item.StartDate, true) && now < datetime.parseISO8601Date(item.EndDate, true)) {
|
if (now >= datetime.parseISO8601Date(item.StartDate, true) && now < datetime.parseISO8601Date(item.EndDate, true)) {
|
||||||
|
@ -318,9 +316,9 @@ import 'emby-select';
|
||||||
hideAll(page, 'btnShuffle');
|
hideAll(page, 'btnShuffle');
|
||||||
} else if (playbackManager.canPlay(item)) {
|
} else if (playbackManager.canPlay(item)) {
|
||||||
hideAll(page, 'btnPlay', true);
|
hideAll(page, 'btnPlay', true);
|
||||||
const enableInstantMix = -1 !== ['Audio', 'MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type);
|
const enableInstantMix = ['Audio', 'MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type) !== -1;
|
||||||
hideAll(page, 'btnInstantMix', enableInstantMix);
|
hideAll(page, 'btnInstantMix', enableInstantMix);
|
||||||
const enableShuffle = item.IsFolder || -1 !== ['MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type);
|
const enableShuffle = item.IsFolder || ['MusicAlbum', 'MusicGenre', 'MusicArtist'].indexOf(item.Type) !== -1;
|
||||||
hideAll(page, 'btnShuffle', enableShuffle);
|
hideAll(page, 'btnShuffle', enableShuffle);
|
||||||
canPlay = true;
|
canPlay = true;
|
||||||
|
|
||||||
|
@ -385,9 +383,8 @@ import 'emby-select';
|
||||||
});
|
});
|
||||||
html.push('<a style="color:inherit;" class="button-link" is="emby-linkbutton" href="' + href + '">' + artist.Name + '</a>');
|
html.push('<a style="color:inherit;" class="button-link" is="emby-linkbutton" href="' + href + '">' + artist.Name + '</a>');
|
||||||
}
|
}
|
||||||
html = html.join(' / ');
|
|
||||||
|
|
||||||
return html;
|
return html.join(' / ');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -404,10 +401,10 @@ import 'emby-select';
|
||||||
if (item.AlbumArtists) {
|
if (item.AlbumArtists) {
|
||||||
parentNameHtml.push(getArtistLinksHtml(item.AlbumArtists, item.ServerId, context));
|
parentNameHtml.push(getArtistLinksHtml(item.AlbumArtists, item.ServerId, context));
|
||||||
parentNameLast = true;
|
parentNameLast = true;
|
||||||
} else if (item.ArtistItems && item.ArtistItems.length && 'MusicVideo' === item.Type) {
|
} else if (item.ArtistItems && item.ArtistItems.length && item.Type === 'MusicVideo') {
|
||||||
parentNameHtml.push(getArtistLinksHtml(item.ArtistItems, item.ServerId, context));
|
parentNameHtml.push(getArtistLinksHtml(item.ArtistItems, item.ServerId, context));
|
||||||
parentNameLast = true;
|
parentNameLast = true;
|
||||||
} else if (item.SeriesName && 'Episode' === item.Type) {
|
} else if (item.SeriesName && item.Type === 'Episode') {
|
||||||
parentRoute = appRouter.getRouteUrl({
|
parentRoute = appRouter.getRouteUrl({
|
||||||
Id: item.SeriesId,
|
Id: item.SeriesId,
|
||||||
Name: item.SeriesName,
|
Name: item.SeriesName,
|
||||||
|
@ -422,7 +419,7 @@ import 'emby-select';
|
||||||
parentNameHtml.push(item.Name);
|
parentNameHtml.push(item.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.SeriesName && 'Season' === item.Type) {
|
if (item.SeriesName && item.Type === 'Season') {
|
||||||
parentRoute = appRouter.getRouteUrl({
|
parentRoute = appRouter.getRouteUrl({
|
||||||
Id: item.SeriesId,
|
Id: item.SeriesId,
|
||||||
Name: item.SeriesName,
|
Name: item.SeriesName,
|
||||||
|
@ -433,7 +430,7 @@ import 'emby-select';
|
||||||
context: context
|
context: context
|
||||||
});
|
});
|
||||||
parentNameHtml.push('<a style="color:inherit;" class="button-link" is="emby-linkbutton" href="' + parentRoute + '">' + item.SeriesName + '</a>');
|
parentNameHtml.push('<a style="color:inherit;" class="button-link" is="emby-linkbutton" href="' + parentRoute + '">' + item.SeriesName + '</a>');
|
||||||
} else if (null != item.ParentIndexNumber && 'Episode' === item.Type) {
|
} else if (item.ParentIndexNumber != null && item.Type === 'Episode') {
|
||||||
parentRoute = appRouter.getRouteUrl({
|
parentRoute = appRouter.getRouteUrl({
|
||||||
Id: item.SeasonId,
|
Id: item.SeasonId,
|
||||||
Name: item.SeasonName,
|
Name: item.SeasonName,
|
||||||
|
@ -444,9 +441,9 @@ import 'emby-select';
|
||||||
context: context
|
context: context
|
||||||
});
|
});
|
||||||
parentNameHtml.push('<a style="color:inherit;" class="button-link" is="emby-linkbutton" href="' + parentRoute + '">' + item.SeasonName + '</a>');
|
parentNameHtml.push('<a style="color:inherit;" class="button-link" is="emby-linkbutton" href="' + parentRoute + '">' + item.SeasonName + '</a>');
|
||||||
} else if (null != item.ParentIndexNumber && item.IsSeries) {
|
} else if (item.ParentIndexNumber != null && item.IsSeries) {
|
||||||
parentNameHtml.push(item.SeasonName || 'S' + item.ParentIndexNumber);
|
parentNameHtml.push(item.SeasonName || 'S' + item.ParentIndexNumber);
|
||||||
} else if (item.Album && item.AlbumId && ('MusicVideo' === item.Type || 'Audio' === item.Type)) {
|
} else if (item.Album && item.AlbumId && (item.Type === 'MusicVideo' || item.Type === 'Audio')) {
|
||||||
parentRoute = appRouter.getRouteUrl({
|
parentRoute = appRouter.getRouteUrl({
|
||||||
Id: item.AlbumId,
|
Id: item.AlbumId,
|
||||||
Name: item.Album,
|
Name: item.Album,
|
||||||
|
@ -509,7 +506,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function setTrailerButtonVisibility(page, item) {
|
function setTrailerButtonVisibility(page, item) {
|
||||||
if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf('PlayTrailers')) {
|
if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && playbackManager.getSupportedCommands().indexOf('PlayTrailers') !== -1) {
|
||||||
hideAll(page, 'btnPlayTrailer', true);
|
hideAll(page, 'btnPlayTrailer', true);
|
||||||
} else {
|
} else {
|
||||||
hideAll(page, 'btnPlayTrailer');
|
hideAll(page, 'btnPlayTrailer');
|
||||||
|
@ -551,6 +548,14 @@ import 'emby-select';
|
||||||
});
|
});
|
||||||
imageLoader.lazyImage(itemBackdropElement, imgUrl);
|
imageLoader.lazyImage(itemBackdropElement, imgUrl);
|
||||||
hasbackdrop = true;
|
hasbackdrop = true;
|
||||||
|
} else if (item.ImageTags && item.ImageTags.Primary) {
|
||||||
|
imgUrl = apiClient.getScaledImageUrl(item.Id, {
|
||||||
|
type: 'Primary',
|
||||||
|
maxWidth: dom.getScreenWidth(),
|
||||||
|
tag: item.ImageTags.Primary
|
||||||
|
});
|
||||||
|
imageLoader.lazyImage(itemBackdropElement, imgUrl);
|
||||||
|
hasbackdrop = true;
|
||||||
} else {
|
} else {
|
||||||
itemBackdropElement.style.backgroundImage = '';
|
itemBackdropElement.style.backgroundImage = '';
|
||||||
}
|
}
|
||||||
|
@ -580,7 +585,7 @@ import 'emby-select';
|
||||||
setInitialCollapsibleState(page, item, apiClient, params.context, user);
|
setInitialCollapsibleState(page, item, apiClient, params.context, user);
|
||||||
const canPlay = reloadPlayButtons(page, item);
|
const canPlay = reloadPlayButtons(page, item);
|
||||||
|
|
||||||
if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && -1 !== playbackManager.getSupportedCommands().indexOf('PlayTrailers')) {
|
if ((item.LocalTrailerCount || item.RemoteTrailers && item.RemoteTrailers.length) && playbackManager.getSupportedCommands().indexOf('PlayTrailers') !== -1) {
|
||||||
hideAll(page, 'btnPlayTrailer', true);
|
hideAll(page, 'btnPlayTrailer', true);
|
||||||
} else {
|
} else {
|
||||||
hideAll(page, 'btnPlayTrailer');
|
hideAll(page, 'btnPlayTrailer');
|
||||||
|
@ -588,7 +593,7 @@ import 'emby-select';
|
||||||
|
|
||||||
setTrailerButtonVisibility(page, item);
|
setTrailerButtonVisibility(page, item);
|
||||||
|
|
||||||
if ('Program' !== item.Type || canPlay) {
|
if (item.Type !== 'Program' || canPlay) {
|
||||||
hideAll(page, 'mainDetailButtons', true);
|
hideAll(page, 'mainDetailButtons', true);
|
||||||
} else {
|
} else {
|
||||||
hideAll(page, 'mainDetailButtons');
|
hideAll(page, 'mainDetailButtons');
|
||||||
|
@ -596,7 +601,7 @@ import 'emby-select';
|
||||||
|
|
||||||
showRecordingFields(instance, page, item, user);
|
showRecordingFields(instance, page, item, user);
|
||||||
const groupedVersions = (item.MediaSources || []).filter(function (g) {
|
const groupedVersions = (item.MediaSources || []).filter(function (g) {
|
||||||
return 'Grouping' == g.Type;
|
return g.Type == 'Grouping';
|
||||||
});
|
});
|
||||||
|
|
||||||
if (user.Policy.IsAdministrator && groupedVersions.length) {
|
if (user.Policy.IsAdministrator && groupedVersions.length) {
|
||||||
|
@ -613,7 +618,7 @@ import 'emby-select';
|
||||||
|
|
||||||
const itemBirthday = page.querySelector('#itemBirthday');
|
const itemBirthday = page.querySelector('#itemBirthday');
|
||||||
|
|
||||||
if ('Person' == item.Type && item.PremiereDate) {
|
if (item.Type == 'Person' && item.PremiereDate) {
|
||||||
try {
|
try {
|
||||||
const birthday = datetime.parseISO8601Date(item.PremiereDate, true).toDateString();
|
const birthday = datetime.parseISO8601Date(item.PremiereDate, true).toDateString();
|
||||||
itemBirthday.classList.remove('hide');
|
itemBirthday.classList.remove('hide');
|
||||||
|
@ -627,7 +632,7 @@ import 'emby-select';
|
||||||
|
|
||||||
const itemDeathDate = page.querySelector('#itemDeathDate');
|
const itemDeathDate = page.querySelector('#itemDeathDate');
|
||||||
|
|
||||||
if ('Person' == item.Type && item.EndDate) {
|
if (item.Type == 'Person' && item.EndDate) {
|
||||||
try {
|
try {
|
||||||
const deathday = datetime.parseISO8601Date(item.EndDate, true).toDateString();
|
const deathday = datetime.parseISO8601Date(item.EndDate, true).toDateString();
|
||||||
itemDeathDate.classList.remove('hide');
|
itemDeathDate.classList.remove('hide');
|
||||||
|
@ -641,7 +646,7 @@ import 'emby-select';
|
||||||
|
|
||||||
const itemBirthLocation = page.querySelector('#itemBirthLocation');
|
const itemBirthLocation = page.querySelector('#itemBirthLocation');
|
||||||
|
|
||||||
if ('Person' == item.Type && item.ProductionLocations && item.ProductionLocations.length) {
|
if (item.Type == 'Person' && item.ProductionLocations && item.ProductionLocations.length) {
|
||||||
const gmap = '<a is="emby-linkbutton" class="button-link textlink" target="_blank" href="https://maps.google.com/maps?q=' + item.ProductionLocations[0] + '">' + item.ProductionLocations[0] + '</a>';
|
const gmap = '<a is="emby-linkbutton" class="button-link textlink" target="_blank" href="https://maps.google.com/maps?q=' + item.ProductionLocations[0] + '">' + item.ProductionLocations[0] + '</a>';
|
||||||
itemBirthLocation.classList.remove('hide');
|
itemBirthLocation.classList.remove('hide');
|
||||||
itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue', gmap);
|
itemBirthLocation.innerHTML = globalize.translate('BirthPlaceValue', gmap);
|
||||||
|
@ -697,7 +702,7 @@ import 'emby-select';
|
||||||
if (!instance.currentRecordingFields) {
|
if (!instance.currentRecordingFields) {
|
||||||
const recordingFieldsElement = page.querySelector('.recordingFields');
|
const recordingFieldsElement = page.querySelector('.recordingFields');
|
||||||
|
|
||||||
if ('Program' == item.Type && user.Policy.EnableLiveTvManagement) {
|
if (item.Type == 'Program' && user.Policy.EnableLiveTvManagement) {
|
||||||
import('recordingFields').then(({default: recordingFields}) => {
|
import('recordingFields').then(({default: recordingFields}) => {
|
||||||
instance.currentRecordingFields = new recordingFields({
|
instance.currentRecordingFields = new recordingFields({
|
||||||
parent: recordingFieldsElement,
|
parent: recordingFieldsElement,
|
||||||
|
@ -778,7 +783,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function setPeopleHeader(page, item) {
|
function setPeopleHeader(page, item) {
|
||||||
if ('Audio' == item.MediaType || 'MusicAlbum' == item.Type || 'Book' == item.MediaType || 'Photo' == item.MediaType) {
|
if (item.MediaType == 'Audio' || item.Type == 'MusicAlbum' || item.MediaType == 'Book' || item.MediaType == 'Photo') {
|
||||||
page.querySelector('#peopleHeader').innerHTML = globalize.translate('HeaderPeople');
|
page.querySelector('#peopleHeader').innerHTML = globalize.translate('HeaderPeople');
|
||||||
} else {
|
} else {
|
||||||
page.querySelector('#peopleHeader').innerHTML = globalize.translate('HeaderCastAndCrew');
|
page.querySelector('#peopleHeader').innerHTML = globalize.translate('HeaderCastAndCrew');
|
||||||
|
@ -788,7 +793,7 @@ import 'emby-select';
|
||||||
function renderNextUp(page, item, user) {
|
function renderNextUp(page, item, user) {
|
||||||
const section = page.querySelector('.nextUpSection');
|
const section = page.querySelector('.nextUpSection');
|
||||||
|
|
||||||
if ('Series' != item.Type) {
|
if (item.Type != 'Series') {
|
||||||
return void section.classList.add('hide');
|
return void section.classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -806,7 +811,7 @@ import 'emby-select';
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: 'overflowBackdrop',
|
shape: 'overflowBackdrop',
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
displayAsSpecial: 'Season' == item.Type && item.IndexNumber,
|
displayAsSpecial: item.Type == 'Season' && item.IndexNumber,
|
||||||
overlayText: false,
|
overlayText: false,
|
||||||
centerText: true,
|
centerText: true,
|
||||||
overlayPlayButton: true
|
overlayPlayButton: true
|
||||||
|
@ -820,14 +825,14 @@ import 'emby-select';
|
||||||
function setInitialCollapsibleState(page, item, apiClient, context, user) {
|
function setInitialCollapsibleState(page, item, apiClient, context, user) {
|
||||||
page.querySelector('.collectionItems').innerHTML = '';
|
page.querySelector('.collectionItems').innerHTML = '';
|
||||||
|
|
||||||
if ('Playlist' == item.Type) {
|
if (item.Type == 'Playlist') {
|
||||||
page.querySelector('#childrenCollapsible').classList.remove('hide');
|
page.querySelector('#childrenCollapsible').classList.remove('hide');
|
||||||
renderPlaylistItems(page, item);
|
renderPlaylistItems(page, item);
|
||||||
} else if ('Studio' == item.Type || 'Person' == item.Type || 'Genre' == item.Type || 'MusicGenre' == item.Type || 'MusicArtist' == item.Type) {
|
} else if (item.Type == 'Studio' || item.Type == 'Person' || item.Type == 'Genre' || item.Type == 'MusicGenre' || item.Type == 'MusicArtist') {
|
||||||
page.querySelector('#childrenCollapsible').classList.remove('hide');
|
page.querySelector('#childrenCollapsible').classList.remove('hide');
|
||||||
renderItemsByName(page, item);
|
renderItemsByName(page, item);
|
||||||
} else if (item.IsFolder) {
|
} else if (item.IsFolder) {
|
||||||
if ('BoxSet' == item.Type) {
|
if (item.Type == 'BoxSet') {
|
||||||
page.querySelector('#childrenCollapsible').classList.add('hide');
|
page.querySelector('#childrenCollapsible').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -836,7 +841,7 @@ import 'emby-select';
|
||||||
page.querySelector('#childrenCollapsible').classList.add('hide');
|
page.querySelector('#childrenCollapsible').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Series' == item.Type) {
|
if (item.Type == 'Series') {
|
||||||
renderSeriesSchedule(page, item);
|
renderSeriesSchedule(page, item);
|
||||||
renderNextUp(page, item, user);
|
renderNextUp(page, item, user);
|
||||||
} else {
|
} else {
|
||||||
|
@ -845,7 +850,7 @@ import 'emby-select';
|
||||||
|
|
||||||
renderScenes(page, item);
|
renderScenes(page, item);
|
||||||
|
|
||||||
if (item.SpecialFeatureCount && 0 != item.SpecialFeatureCount && 'Series' != item.Type) {
|
if (item.SpecialFeatureCount && item.SpecialFeatureCount != 0 && item.Type != 'Series') {
|
||||||
page.querySelector('#specialsCollapsible').classList.remove('hide');
|
page.querySelector('#specialsCollapsible').classList.remove('hide');
|
||||||
renderSpecials(page, item, user);
|
renderSpecials(page, item, user);
|
||||||
} else {
|
} else {
|
||||||
|
@ -861,7 +866,7 @@ import 'emby-select';
|
||||||
page.querySelector('#additionalPartsCollapsible').classList.add('hide');
|
page.querySelector('#additionalPartsCollapsible').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicAlbum' == item.Type) {
|
if (item.Type == 'MusicAlbum') {
|
||||||
renderMusicVideos(page, item, user);
|
renderMusicVideos(page, item, user);
|
||||||
} else {
|
} else {
|
||||||
page.querySelector('#musicVideosCollapsible').classList.add('hide');
|
page.querySelector('#musicVideosCollapsible').classList.add('hide');
|
||||||
|
@ -1009,7 +1014,7 @@ import 'emby-select';
|
||||||
subtitles: false
|
subtitles: false
|
||||||
});
|
});
|
||||||
|
|
||||||
if (miscInfo.innerHTML && 'SeriesTimer' !== item.Type) {
|
if (miscInfo.innerHTML && item.Type !== 'SeriesTimer') {
|
||||||
miscInfo.classList.remove('hide');
|
miscInfo.classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
miscInfo.classList.add('hide');
|
miscInfo.classList.add('hide');
|
||||||
|
@ -1023,7 +1028,7 @@ import 'emby-select';
|
||||||
interactive: true
|
interactive: true
|
||||||
});
|
});
|
||||||
|
|
||||||
if (miscInfo.innerHTML && 'SeriesTimer' !== item.Type) {
|
if (miscInfo.innerHTML && item.Type !== 'SeriesTimer') {
|
||||||
miscInfo.classList.remove('hide');
|
miscInfo.classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
miscInfo.classList.add('hide');
|
miscInfo.classList.add('hide');
|
||||||
|
@ -1064,7 +1069,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPortraitShape(scrollX) {
|
function getPortraitShape(scrollX) {
|
||||||
if (null == scrollX) {
|
if (scrollX == null) {
|
||||||
scrollX = enableScrollX();
|
scrollX = enableScrollX();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1072,7 +1077,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSquareShape(scrollX) {
|
function getSquareShape(scrollX) {
|
||||||
if (null == scrollX) {
|
if (scrollX == null) {
|
||||||
scrollX = enableScrollX();
|
scrollX = enableScrollX();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1083,7 +1088,7 @@ import 'emby-select';
|
||||||
const section = view.querySelector('.moreFromSeasonSection');
|
const section = view.querySelector('.moreFromSeasonSection');
|
||||||
|
|
||||||
if (section) {
|
if (section) {
|
||||||
if ('Episode' !== item.Type || !item.SeasonId || !item.SeriesId) {
|
if (item.Type !== 'Episode' || !item.SeasonId || !item.SeriesId) {
|
||||||
return void section.classList.add('hide');
|
return void section.classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1127,11 +1132,11 @@ import 'emby-select';
|
||||||
const section = view.querySelector('.moreFromArtistSection');
|
const section = view.querySelector('.moreFromArtistSection');
|
||||||
|
|
||||||
if (section) {
|
if (section) {
|
||||||
if ('MusicArtist' === item.Type) {
|
if (item.Type === 'MusicArtist') {
|
||||||
if (!apiClient.isMinServerVersion('3.4.1.19')) {
|
if (!apiClient.isMinServerVersion('3.4.1.19')) {
|
||||||
return void section.classList.add('hide');
|
return void section.classList.add('hide');
|
||||||
}
|
}
|
||||||
} else if ('MusicAlbum' !== item.Type || !item.AlbumArtists || !item.AlbumArtists.length) {
|
} else if (item.Type !== 'MusicAlbum' || !item.AlbumArtists || !item.AlbumArtists.length) {
|
||||||
return void section.classList.add('hide');
|
return void section.classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1143,7 +1148,7 @@ import 'emby-select';
|
||||||
SortOrder: 'Descending'
|
SortOrder: 'Descending'
|
||||||
};
|
};
|
||||||
|
|
||||||
if ('MusicArtist' === item.Type) {
|
if (item.Type === 'MusicArtist') {
|
||||||
query.ContributingArtistIds = item.Id;
|
query.ContributingArtistIds = item.Id;
|
||||||
} else if (apiClient.isMinServerVersion('3.4.1.18')) {
|
} else if (apiClient.isMinServerVersion('3.4.1.18')) {
|
||||||
query.AlbumArtistIds = item.AlbumArtists[0].Id;
|
query.AlbumArtistIds = item.AlbumArtists[0].Id;
|
||||||
|
@ -1158,7 +1163,7 @@ import 'emby-select';
|
||||||
|
|
||||||
section.classList.remove('hide');
|
section.classList.remove('hide');
|
||||||
|
|
||||||
if ('MusicArtist' === item.Type) {
|
if (item.Type === 'MusicArtist') {
|
||||||
section.querySelector('h2').innerHTML = globalize.translate('HeaderAppearsOn');
|
section.querySelector('h2').innerHTML = globalize.translate('HeaderAppearsOn');
|
||||||
} else {
|
} else {
|
||||||
section.querySelector('h2').innerHTML = globalize.translate('MoreFromValue', item.AlbumArtists[0].Name);
|
section.querySelector('h2').innerHTML = globalize.translate('MoreFromValue', item.AlbumArtists[0].Name);
|
||||||
|
@ -1170,7 +1175,7 @@ import 'emby-select';
|
||||||
shape: 'autooverflow',
|
shape: 'autooverflow',
|
||||||
sectionTitleTagName: 'h2',
|
sectionTitleTagName: 'h2',
|
||||||
scalable: true,
|
scalable: true,
|
||||||
coverImage: 'MusicArtist' === item.Type || 'MusicAlbum' === item.Type,
|
coverImage: item.Type === 'MusicArtist' || item.Type === 'MusicAlbum',
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
showParentTitle: false,
|
showParentTitle: false,
|
||||||
centerText: true,
|
centerText: true,
|
||||||
|
@ -1186,7 +1191,7 @@ import 'emby-select';
|
||||||
const similarCollapsible = page.querySelector('#similarCollapsible');
|
const similarCollapsible = page.querySelector('#similarCollapsible');
|
||||||
|
|
||||||
if (similarCollapsible) {
|
if (similarCollapsible) {
|
||||||
if ('Movie' != item.Type && 'Trailer' != item.Type && 'Series' != item.Type && 'Program' != item.Type && 'Recording' != item.Type && 'MusicAlbum' != item.Type && 'MusicArtist' != item.Type && 'Playlist' != item.Type) {
|
if (item.Type != 'Movie' && item.Type != 'Trailer' && item.Type != 'Series' && item.Type != 'Program' && item.Type != 'Recording' && item.Type != 'MusicAlbum' && item.Type != 'MusicArtist' && item.Type != 'Playlist') {
|
||||||
return void similarCollapsible.classList.add('hide');
|
return void similarCollapsible.classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1198,7 +1203,7 @@ import 'emby-select';
|
||||||
fields: 'PrimaryImageAspectRatio,UserData,CanDelete'
|
fields: 'PrimaryImageAspectRatio,UserData,CanDelete'
|
||||||
};
|
};
|
||||||
|
|
||||||
if ('MusicAlbum' == item.Type && item.AlbumArtists && item.AlbumArtists.length) {
|
if (item.Type == 'MusicAlbum' && item.AlbumArtists && item.AlbumArtists.length) {
|
||||||
options.ExcludeArtistIds = item.AlbumArtists[0].Id;
|
options.ExcludeArtistIds = item.AlbumArtists[0].Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1212,16 +1217,16 @@ import 'emby-select';
|
||||||
html += cardBuilder.getCardsHtml({
|
html += cardBuilder.getCardsHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: 'autooverflow',
|
shape: 'autooverflow',
|
||||||
showParentTitle: 'MusicAlbum' == item.Type,
|
showParentTitle: item.Type == 'MusicAlbum',
|
||||||
centerText: true,
|
centerText: true,
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
context: context,
|
context: context,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
showDetailsMenu: true,
|
showDetailsMenu: true,
|
||||||
coverImage: 'MusicAlbum' == item.Type || 'MusicArtist' == item.Type,
|
coverImage: item.Type == 'MusicAlbum' || item.Type == 'MusicArtist',
|
||||||
overlayPlayButton: true,
|
overlayPlayButton: true,
|
||||||
overlayText: false,
|
overlayText: false,
|
||||||
showYear: 'Movie' === item.Type || 'Trailer' === item.Type || 'Series' === item.Type
|
showYear: item.Type === 'Movie' || item.Type === 'Trailer' || item.Type === 'Series'
|
||||||
});
|
});
|
||||||
const similarContent = similarCollapsible.querySelector('.similarContent');
|
const similarContent = similarCollapsible.querySelector('.similarContent');
|
||||||
similarContent.innerHTML = html;
|
similarContent.innerHTML = html;
|
||||||
|
@ -1232,13 +1237,13 @@ import 'emby-select';
|
||||||
|
|
||||||
function renderSeriesAirTime(page, item, isStatic) {
|
function renderSeriesAirTime(page, item, isStatic) {
|
||||||
const seriesAirTime = page.querySelector('#seriesAirTime');
|
const seriesAirTime = page.querySelector('#seriesAirTime');
|
||||||
if ('Series' != item.Type) {
|
if (item.Type != 'Series') {
|
||||||
seriesAirTime.classList.add('hide');
|
seriesAirTime.classList.add('hide');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let html = '';
|
let html = '';
|
||||||
if (item.AirDays && item.AirDays.length) {
|
if (item.AirDays && item.AirDays.length) {
|
||||||
if (7 == item.AirDays.length) {
|
if (item.AirDays.length == 7) {
|
||||||
html += 'daily';
|
html += 'daily';
|
||||||
} else {
|
} else {
|
||||||
html += item.AirDays.map(function (a) {
|
html += item.AirDays.map(function (a) {
|
||||||
|
@ -1263,7 +1268,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (html) {
|
if (html) {
|
||||||
html = ('Ended' == item.Status ? 'Aired ' : 'Airs ') + html;
|
html = (item.Status == 'Ended' ? 'Aired ' : 'Airs ') + html;
|
||||||
seriesAirTime.innerHTML = html;
|
seriesAirTime.innerHTML = html;
|
||||||
seriesAirTime.classList.remove('hide');
|
seriesAirTime.classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
|
@ -1276,7 +1281,7 @@ import 'emby-select';
|
||||||
const tagElements = [];
|
const tagElements = [];
|
||||||
let tags = item.Tags || [];
|
let tags = item.Tags || [];
|
||||||
|
|
||||||
if ('Program' === item.Type) {
|
if (item.Type === 'Program') {
|
||||||
tags = [];
|
tags = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1300,7 +1305,7 @@ import 'emby-select';
|
||||||
Fields: fields
|
Fields: fields
|
||||||
};
|
};
|
||||||
|
|
||||||
if ('BoxSet' !== item.Type) {
|
if (item.Type !== 'BoxSet') {
|
||||||
query.SortBy = 'SortName';
|
query.SortBy = 'SortName';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1308,19 +1313,19 @@ import 'emby-select';
|
||||||
const apiClient = connectionManager.getApiClient(item.ServerId);
|
const apiClient = connectionManager.getApiClient(item.ServerId);
|
||||||
const userId = apiClient.getCurrentUserId();
|
const userId = apiClient.getCurrentUserId();
|
||||||
|
|
||||||
if ('Series' == item.Type) {
|
if (item.Type == 'Series') {
|
||||||
promise = apiClient.getSeasons(item.Id, {
|
promise = apiClient.getSeasons(item.Id, {
|
||||||
userId: userId,
|
userId: userId,
|
||||||
Fields: fields
|
Fields: fields
|
||||||
});
|
});
|
||||||
} else if ('Season' == item.Type) {
|
} else if (item.Type == 'Season') {
|
||||||
fields += ',Overview';
|
fields += ',Overview';
|
||||||
promise = apiClient.getEpisodes(item.SeriesId, {
|
promise = apiClient.getEpisodes(item.SeriesId, {
|
||||||
seasonId: item.Id,
|
seasonId: item.Id,
|
||||||
userId: userId,
|
userId: userId,
|
||||||
Fields: fields
|
Fields: fields
|
||||||
});
|
});
|
||||||
} else if ('MusicArtist' == item.Type) {
|
} else if (item.Type == 'MusicArtist') {
|
||||||
query.SortBy = 'ProductionYear,SortName';
|
query.SortBy = 'ProductionYear,SortName';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1331,7 +1336,7 @@ import 'emby-select';
|
||||||
let isList = false;
|
let isList = false;
|
||||||
const childrenItemsContainer = page.querySelector('.childrenItemsContainer');
|
const childrenItemsContainer = page.querySelector('.childrenItemsContainer');
|
||||||
|
|
||||||
if ('MusicAlbum' == item.Type) {
|
if (item.Type == 'MusicAlbum') {
|
||||||
html = listView.getListViewHtml({
|
html = listView.getListViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
smallIcon: true,
|
smallIcon: true,
|
||||||
|
@ -1345,7 +1350,7 @@ import 'emby-select';
|
||||||
containerAlbumArtists: item.AlbumArtists
|
containerAlbumArtists: item.AlbumArtists
|
||||||
});
|
});
|
||||||
isList = true;
|
isList = true;
|
||||||
} else if ('Series' == item.Type) {
|
} else if (item.Type == 'Series') {
|
||||||
scrollX = enableScrollX();
|
scrollX = enableScrollX();
|
||||||
html = cardBuilder.getCardsHtml({
|
html = cardBuilder.getCardsHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
|
@ -1356,21 +1361,21 @@ import 'emby-select';
|
||||||
overlayPlayButton: true,
|
overlayPlayButton: true,
|
||||||
allowBottomPadding: !scrollX
|
allowBottomPadding: !scrollX
|
||||||
});
|
});
|
||||||
} else if ('Season' == item.Type || 'Episode' == item.Type) {
|
} else if (item.Type == 'Season' || item.Type == 'Episode') {
|
||||||
if ('Episode' !== item.Type) {
|
if (item.Type !== 'Episode') {
|
||||||
isList = true;
|
isList = true;
|
||||||
}
|
}
|
||||||
scrollX = 'Episode' == item.Type;
|
scrollX = item.Type == 'Episode';
|
||||||
if (result.Items.length < 2 && 'Episode' === item.Type) {
|
if (result.Items.length < 2 && item.Type === 'Episode') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Episode' === item.Type) {
|
if (item.Type === 'Episode') {
|
||||||
html = cardBuilder.getCardsHtml({
|
html = cardBuilder.getCardsHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: 'overflowBackdrop',
|
shape: 'overflowBackdrop',
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
displayAsSpecial: 'Season' == item.Type && item.IndexNumber,
|
displayAsSpecial: item.Type == 'Season' && item.IndexNumber,
|
||||||
playFromHere: true,
|
playFromHere: true,
|
||||||
overlayText: true,
|
overlayText: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
|
@ -1379,7 +1384,7 @@ import 'emby-select';
|
||||||
allowBottomPadding: !scrollX,
|
allowBottomPadding: !scrollX,
|
||||||
includeParentInfoInTitle: false
|
includeParentInfoInTitle: false
|
||||||
});
|
});
|
||||||
} else if ('Season' === item.Type) {
|
} else if (item.Type === 'Season') {
|
||||||
html = listView.getListViewHtml({
|
html = listView.getListViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
showIndexNumber: false,
|
showIndexNumber: false,
|
||||||
|
@ -1396,7 +1401,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('BoxSet' !== item.Type) {
|
if (item.Type !== 'BoxSet') {
|
||||||
page.querySelector('#childrenCollapsible').classList.remove('hide');
|
page.querySelector('#childrenCollapsible').classList.remove('hide');
|
||||||
}
|
}
|
||||||
if (scrollX) {
|
if (scrollX) {
|
||||||
|
@ -1421,7 +1426,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
childrenItemsContainer.innerHTML = html;
|
childrenItemsContainer.innerHTML = html;
|
||||||
imageLoader.lazyChildren(childrenItemsContainer);
|
imageLoader.lazyChildren(childrenItemsContainer);
|
||||||
if ('BoxSet' == item.Type) {
|
if (item.Type == 'BoxSet') {
|
||||||
const collectionItemTypes = [{
|
const collectionItemTypes = [{
|
||||||
name: globalize.translate('HeaderVideos'),
|
name: globalize.translate('HeaderVideos'),
|
||||||
mediaType: 'Video'
|
mediaType: 'Video'
|
||||||
|
@ -1439,17 +1444,17 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if ('Season' == item.Type) {
|
if (item.Type == 'Season') {
|
||||||
page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderEpisodes');
|
page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderEpisodes');
|
||||||
} else if ('Series' == item.Type) {
|
} else if (item.Type == 'Series') {
|
||||||
page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderSeasons');
|
page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderSeasons');
|
||||||
} else if ('MusicAlbum' == item.Type) {
|
} else if (item.Type == 'MusicAlbum') {
|
||||||
page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderTracks');
|
page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderTracks');
|
||||||
} else {
|
} else {
|
||||||
page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderItems');
|
page.querySelector('#childrenTitle').innerHTML = globalize.translate('HeaderItems');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicAlbum' == item.Type || 'Season' == item.Type) {
|
if (item.Type == 'MusicAlbum' || item.Type == 'Season') {
|
||||||
page.querySelector('.childrenSectionHeader').classList.add('hide');
|
page.querySelector('.childrenSectionHeader').classList.add('hide');
|
||||||
page.querySelector('#childrenCollapsible').classList.add('verticalSection-extrabottompadding');
|
page.querySelector('#childrenCollapsible').classList.add('verticalSection-extrabottompadding');
|
||||||
} else {
|
} else {
|
||||||
|
@ -1526,7 +1531,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderChannelGuide(page, apiClient, item) {
|
function renderChannelGuide(page, apiClient, item) {
|
||||||
if ('TvChannel' === item.Type) {
|
if (item.Type === 'TvChannel') {
|
||||||
page.querySelector('.programGuideSection').classList.remove('hide');
|
page.querySelector('.programGuideSection').classList.remove('hide');
|
||||||
apiClient.getLiveTvPrograms({
|
apiClient.getLiveTvPrograms({
|
||||||
ChannelIds: item.Id,
|
ChannelIds: item.Id,
|
||||||
|
@ -1578,19 +1583,19 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function inferContext(item) {
|
function inferContext(item) {
|
||||||
if ('Movie' === item.Type || 'BoxSet' === item.Type) {
|
if (item.Type === 'Movie' || item.Type === 'BoxSet') {
|
||||||
return 'movies';
|
return 'movies';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Series' === item.Type || 'Season' === item.Type || 'Episode' === item.Type) {
|
if (item.Type === 'Series' || item.Type === 'Season' || item.Type === 'Episode') {
|
||||||
return 'tvshows';
|
return 'tvshows';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicArtist' === item.Type || 'MusicAlbum' === item.Type || 'Audio' === item.Type || 'AudioBook' === item.Type) {
|
if (item.Type === 'MusicArtist' || item.Type === 'MusicAlbum' || item.Type === 'Audio' || item.Type === 'AudioBook') {
|
||||||
return 'music';
|
return 'music';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Program' === item.Type) {
|
if (item.Type === 'Program') {
|
||||||
return 'livetv';
|
return 'livetv';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1682,12 +1687,12 @@ import 'emby-select';
|
||||||
html += '</h2>';
|
html += '</h2>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '<div is="emby-itemscontainer" class="itemsContainer collectionItemsContainer vertical-wrap padded-left padded-right">';
|
html += '<div is="emby-itemscontainer" class="itemsContainer collectionItemsContainer vertical-wrap padded-left padded-right">';
|
||||||
const shape = 'MusicAlbum' == type.type ? getSquareShape(false) : getPortraitShape(false);
|
const shape = type.type == 'MusicAlbum' ? getSquareShape(false) : getPortraitShape(false);
|
||||||
html += cardBuilder.getCardsHtml({
|
html += cardBuilder.getCardsHtml({
|
||||||
items: items,
|
items: items,
|
||||||
shape: shape,
|
shape: shape,
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
showYear: 'Video' === type.mediaType || 'Series' === type.type,
|
showYear: type.mediaType === 'Video' || type.type === 'Series',
|
||||||
centerText: true,
|
centerText: true,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
showDetailsMenu: true,
|
showDetailsMenu: true,
|
||||||
|
@ -1757,7 +1762,7 @@ import 'emby-select';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getVideosHtml(items) {
|
function getVideosHtml(items) {
|
||||||
const html = cardBuilder.getCardsHtml({
|
return cardBuilder.getCardsHtml({
|
||||||
items: items,
|
items: items,
|
||||||
shape: 'autooverflow',
|
shape: 'autooverflow',
|
||||||
showTitle: true,
|
showTitle: true,
|
||||||
|
@ -1766,8 +1771,6 @@ import 'emby-select';
|
||||||
centerText: true,
|
centerText: true,
|
||||||
showRuntime: true
|
showRuntime: true
|
||||||
});
|
});
|
||||||
|
|
||||||
return html;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderSpecials(page, item, user) {
|
function renderSpecials(page, item, user) {
|
||||||
|
@ -1875,7 +1878,7 @@ import 'emby-select';
|
||||||
function playCurrentItem(button, mode) {
|
function playCurrentItem(button, mode) {
|
||||||
const item = currentItem;
|
const item = currentItem;
|
||||||
|
|
||||||
if ('Program' === item.Type) {
|
if (item.Type === 'Program') {
|
||||||
const apiClient = connectionManager.getApiClient(item.ServerId);
|
const apiClient = connectionManager.getApiClient(item.ServerId);
|
||||||
return void apiClient.getLiveTvChannel(item.ChannelId, apiClient.getCurrentUserId()).then(function (channel) {
|
return void apiClient.getLiveTvChannel(item.ChannelId, apiClient.getCurrentUserId()).then(function (channel) {
|
||||||
playbackManager.play({
|
playbackManager.play({
|
||||||
|
@ -1951,7 +1954,7 @@ import 'emby-select';
|
||||||
function onWebSocketMessage(e, data) {
|
function onWebSocketMessage(e, data) {
|
||||||
const msg = data;
|
const msg = data;
|
||||||
|
|
||||||
if ('UserDataChanged' === msg.MessageType && currentItem && msg.Data.UserId == apiClient.getCurrentUserId()) {
|
if (msg.MessageType === 'UserDataChanged' && currentItem && msg.Data.UserId == apiClient.getCurrentUserId()) {
|
||||||
const key = currentItem.UserData.Key;
|
const key = currentItem.UserData.Key;
|
||||||
const userData = msg.Data.UserDataList.filter(function (u) {
|
const userData = msg.Data.UserDataList.filter(function (u) {
|
||||||
return u.Key == key;
|
return u.Key == key;
|
||||||
|
|
|
@ -9,7 +9,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
Limit: 300
|
Limit: 300
|
||||||
};
|
};
|
||||||
|
|
||||||
if ('Recordings' === params.type) {
|
if (params.type === 'Recordings') {
|
||||||
query.IsInProgress = false;
|
query.IsInProgress = false;
|
||||||
} else {
|
} else {
|
||||||
query.HasAired = false;
|
query.HasAired = false;
|
||||||
|
@ -19,39 +19,39 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
query.GenreIds = params.genreId;
|
query.GenreIds = params.genreId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsMovie) {
|
if (params.IsMovie === 'true') {
|
||||||
query.IsMovie = true;
|
query.IsMovie = true;
|
||||||
} else if ('false' === params.IsMovie) {
|
} else if (params.IsMovie === 'false') {
|
||||||
query.IsMovie = false;
|
query.IsMovie = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsSeries) {
|
if (params.IsSeries === 'true') {
|
||||||
query.IsSeries = true;
|
query.IsSeries = true;
|
||||||
} else if ('false' === params.IsSeries) {
|
} else if (params.IsSeries === 'false') {
|
||||||
query.IsSeries = false;
|
query.IsSeries = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsNews) {
|
if (params.IsNews === 'true') {
|
||||||
query.IsNews = true;
|
query.IsNews = true;
|
||||||
} else if ('false' === params.IsNews) {
|
} else if (params.IsNews === 'false') {
|
||||||
query.IsNews = false;
|
query.IsNews = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsSports) {
|
if (params.IsSports === 'true') {
|
||||||
query.IsSports = true;
|
query.IsSports = true;
|
||||||
} else if ('false' === params.IsSports) {
|
} else if (params.IsSports === 'false') {
|
||||||
query.IsSports = false;
|
query.IsSports = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsKids) {
|
if (params.IsKids === 'true') {
|
||||||
query.IsKids = true;
|
query.IsKids = true;
|
||||||
} else if ('false' === params.IsKids) {
|
} else if (params.IsKids === 'false') {
|
||||||
query.IsKids = false;
|
query.IsKids = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsAiring) {
|
if (params.IsAiring === 'true') {
|
||||||
query.IsAiring = true;
|
query.IsAiring = true;
|
||||||
} else if ('false' === params.IsAiring) {
|
} else if (params.IsAiring === 'false') {
|
||||||
query.IsAiring = false;
|
query.IsAiring = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,13 +181,13 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var btnSortIcon = instance.btnSortIcon;
|
var btnSortIcon = instance.btnSortIcon;
|
||||||
|
|
||||||
if (btnSortIcon) {
|
if (btnSortIcon) {
|
||||||
setSortButtonIcon(btnSortIcon, 'Descending' === values.sortOrder ? 'arrow_downward' : 'arrow_upward');
|
setSortButtonIcon(btnSortIcon, values.sortOrder === 'Descending' ? 'arrow_downward' : 'arrow_upward');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateItemsContainerForViewType(instance) {
|
function updateItemsContainerForViewType(instance) {
|
||||||
if ('list' === instance.getViewSettings().imageType) {
|
if (instance.getViewSettings().imageType === 'list') {
|
||||||
instance.itemsContainer.classList.remove('vertical-wrap');
|
instance.itemsContainer.classList.remove('vertical-wrap');
|
||||||
instance.itemsContainer.classList.add('vertical-list');
|
instance.itemsContainer.classList.add('vertical-list');
|
||||||
} else {
|
} else {
|
||||||
|
@ -203,11 +203,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
if (alphaPicker) {
|
if (alphaPicker) {
|
||||||
var values = instance.getSortValues();
|
var values = instance.getSortValues();
|
||||||
|
|
||||||
if (null == numItems) {
|
if (numItems == null) {
|
||||||
numItems = 100;
|
numItems = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('SortName' === values.sortBy && 'Ascending' === values.sortOrder && numItems > 40) {
|
if (values.sortBy === 'SortName' && values.sortOrder === 'Ascending' && numItems > 40) {
|
||||||
alphaPicker.classList.remove('hide');
|
alphaPicker.classList.remove('hide');
|
||||||
instance.itemsContainer.parentNode.classList.add('padded-right-withalphapicker');
|
instance.itemsContainer.parentNode.classList.add('padded-right-withalphapicker');
|
||||||
} else {
|
} else {
|
||||||
|
@ -222,19 +222,19 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var apiClient = connectionManager.getApiClient(params.serverId);
|
var apiClient = connectionManager.getApiClient(params.serverId);
|
||||||
|
|
||||||
instance.queryRecursive = false;
|
instance.queryRecursive = false;
|
||||||
if ('Recordings' === params.type) {
|
if (params.type === 'Recordings') {
|
||||||
return apiClient.getLiveTvRecordings(getInitialLiveTvQuery(instance, params));
|
return apiClient.getLiveTvRecordings(getInitialLiveTvQuery(instance, params));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Programs' === params.type) {
|
if (params.type === 'Programs') {
|
||||||
if ('true' === params.IsAiring) {
|
if (params.IsAiring === 'true') {
|
||||||
return apiClient.getLiveTvRecommendedPrograms(getInitialLiveTvQuery(instance, params));
|
return apiClient.getLiveTvRecommendedPrograms(getInitialLiveTvQuery(instance, params));
|
||||||
}
|
}
|
||||||
|
|
||||||
return apiClient.getLiveTvPrograms(getInitialLiveTvQuery(instance, params));
|
return apiClient.getLiveTvPrograms(getInitialLiveTvQuery(instance, params));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('nextup' === params.type) {
|
if (params.type === 'nextup') {
|
||||||
return apiClient.getNextUpEpisodes(modifyQueryWithFilters(instance, {
|
return apiClient.getNextUpEpisodes(modifyQueryWithFilters(instance, {
|
||||||
Limit: limit,
|
Limit: limit,
|
||||||
Fields: 'PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo',
|
Fields: 'PrimaryImageAspectRatio,SeriesInfo,DateCreated,BasicSyncInfo',
|
||||||
|
@ -250,9 +250,9 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
instance.queryRecursive = true;
|
instance.queryRecursive = true;
|
||||||
var method = 'getItems';
|
var method = 'getItems';
|
||||||
|
|
||||||
if ('MusicArtist' === params.type) {
|
if (params.type === 'MusicArtist') {
|
||||||
method = 'getArtists';
|
method = 'getArtists';
|
||||||
} else if ('Person' === params.type) {
|
} else if (params.type === 'Person') {
|
||||||
method = 'getPeople';
|
method = 'getPeople';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,15 +261,15 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
Limit: limit,
|
Limit: limit,
|
||||||
Fields: 'PrimaryImageAspectRatio,SortName',
|
Fields: 'PrimaryImageAspectRatio,SortName',
|
||||||
ImageTypeLimit: 1,
|
ImageTypeLimit: 1,
|
||||||
IncludeItemTypes: 'MusicArtist' === params.type || 'Person' === params.type ? null : params.type,
|
IncludeItemTypes: params.type === 'MusicArtist' || params.type === 'Person' ? null : params.type,
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
IsFavorite: 'true' === params.IsFavorite || null,
|
IsFavorite: params.IsFavorite === 'true' || null,
|
||||||
ArtistIds: params.artistId || null,
|
ArtistIds: params.artistId || null,
|
||||||
SortBy: sortBy
|
SortBy: sortBy
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Genre' === item.Type || 'MusicGenre' === item.Type || 'Studio' === item.Type || 'Person' === item.Type) {
|
if (item.Type === 'Genre' || item.Type === 'MusicGenre' || item.Type === 'Studio' || item.Type === 'Person') {
|
||||||
instance.queryRecursive = true;
|
instance.queryRecursive = true;
|
||||||
var query = {
|
var query = {
|
||||||
StartIndex: startIndex,
|
StartIndex: startIndex,
|
||||||
|
@ -280,25 +280,25 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
SortBy: sortBy
|
SortBy: sortBy
|
||||||
};
|
};
|
||||||
|
|
||||||
if ('Studio' === item.Type) {
|
if (item.Type === 'Studio') {
|
||||||
query.StudioIds = item.Id;
|
query.StudioIds = item.Id;
|
||||||
} else if ('Genre' === item.Type || 'MusicGenre' === item.Type) {
|
} else if (item.Type === 'Genre' || item.Type === 'MusicGenre') {
|
||||||
query.GenreIds = item.Id;
|
query.GenreIds = item.Id;
|
||||||
} else if ('Person' === item.Type) {
|
} else if (item.Type === 'Person') {
|
||||||
query.PersonIds = item.Id;
|
query.PersonIds = item.Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicGenre' === item.Type) {
|
if (item.Type === 'MusicGenre') {
|
||||||
query.IncludeItemTypes = 'MusicAlbum';
|
query.IncludeItemTypes = 'MusicAlbum';
|
||||||
} else if ('GameGenre' === item.Type) {
|
} else if (item.Type === 'GameGenre') {
|
||||||
query.IncludeItemTypes = 'Game';
|
query.IncludeItemTypes = 'Game';
|
||||||
} else if ('movies' === item.CollectionType) {
|
} else if (item.CollectionType === 'movies') {
|
||||||
query.IncludeItemTypes = 'Movie';
|
query.IncludeItemTypes = 'Movie';
|
||||||
} else if ('tvshows' === item.CollectionType) {
|
} else if (item.CollectionType === 'tvshows') {
|
||||||
query.IncludeItemTypes = 'Series';
|
query.IncludeItemTypes = 'Series';
|
||||||
} else if ('Genre' === item.Type) {
|
} else if (item.Type === 'Genre') {
|
||||||
query.IncludeItemTypes = 'Movie,Series,Video';
|
query.IncludeItemTypes = 'Movie,Series,Video';
|
||||||
} else if ('Person' === item.Type) {
|
} else if (item.Type === 'Person') {
|
||||||
query.IncludeItemTypes = params.type;
|
query.IncludeItemTypes = params.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,7 +316,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
}
|
}
|
||||||
|
|
||||||
function getItem(params) {
|
function getItem(params) {
|
||||||
if ('Recordings' === params.type || 'Programs' === params.type || 'nextup' === params.type) {
|
if (params.type === 'Recordings' || params.type === 'Programs' || params.type === 'nextup') {
|
||||||
return Promise.resolve(null);
|
return Promise.resolve(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -412,7 +412,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
function ItemsView(view, params) {
|
function ItemsView(view, params) {
|
||||||
function fetchData() {
|
function fetchData() {
|
||||||
return getItems(self, params, self.currentItem).then(function (result) {
|
return getItems(self, params, self.currentItem).then(function (result) {
|
||||||
if (null == self.totalItemCount) {
|
if (self.totalItemCount == null) {
|
||||||
self.totalItemCount = result.Items ? result.Items.length : result.length;
|
self.totalItemCount = result.Items ? result.Items.length : result.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -424,7 +424,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
function getItemsHtml(items) {
|
function getItemsHtml(items) {
|
||||||
var settings = self.getViewSettings();
|
var settings = self.getViewSettings();
|
||||||
|
|
||||||
if ('list' === settings.imageType) {
|
if (settings.imageType === 'list') {
|
||||||
return listView.getListViewHtml({
|
return listView.getListViewHtml({
|
||||||
items: items
|
items: items
|
||||||
});
|
});
|
||||||
|
@ -438,24 +438,24 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var item = self.currentItem;
|
var item = self.currentItem;
|
||||||
var lines = settings.showTitle ? 2 : 0;
|
var lines = settings.showTitle ? 2 : 0;
|
||||||
|
|
||||||
if ('banner' === settings.imageType) {
|
if (settings.imageType === 'banner') {
|
||||||
shape = 'banner';
|
shape = 'banner';
|
||||||
} else if ('disc' === settings.imageType) {
|
} else if (settings.imageType === 'disc') {
|
||||||
shape = 'square';
|
shape = 'square';
|
||||||
preferDisc = true;
|
preferDisc = true;
|
||||||
} else if ('logo' === settings.imageType) {
|
} else if (settings.imageType === 'logo') {
|
||||||
shape = 'backdrop';
|
shape = 'backdrop';
|
||||||
preferLogo = true;
|
preferLogo = true;
|
||||||
} else if ('thumb' === settings.imageType) {
|
} else if (settings.imageType === 'thumb') {
|
||||||
shape = 'backdrop';
|
shape = 'backdrop';
|
||||||
preferThumb = true;
|
preferThumb = true;
|
||||||
} else if ('nextup' === params.type) {
|
} else if (params.type === 'nextup') {
|
||||||
shape = 'backdrop';
|
shape = 'backdrop';
|
||||||
preferThumb = 'thumb' === settings.imageType;
|
preferThumb = settings.imageType === 'thumb';
|
||||||
} else if ('Programs' === params.type || 'Recordings' === params.type) {
|
} else if (params.type === 'Programs' || params.type === 'Recordings') {
|
||||||
shape = 'true' === params.IsMovie ? 'portrait' : 'autoVertical';
|
shape = params.IsMovie === 'true' ? 'portrait' : 'autoVertical';
|
||||||
preferThumb = 'true' !== params.IsMovie ? 'auto' : false;
|
preferThumb = params.IsMovie !== 'true' ? 'auto' : false;
|
||||||
defaultShape = 'true' === params.IsMovie ? 'portrait' : 'backdrop';
|
defaultShape = params.IsMovie === 'true' ? 'portrait' : 'backdrop';
|
||||||
} else {
|
} else {
|
||||||
shape = 'autoVertical';
|
shape = 'autoVertical';
|
||||||
}
|
}
|
||||||
|
@ -473,46 +473,46 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
overlayMoreButton: true,
|
overlayMoreButton: true,
|
||||||
overlayText: !settings.showTitle,
|
overlayText: !settings.showTitle,
|
||||||
defaultShape: defaultShape,
|
defaultShape: defaultShape,
|
||||||
action: 'Audio' === params.type ? 'playallfromhere' : null
|
action: params.type === 'Audio' ? 'playallfromhere' : null
|
||||||
};
|
};
|
||||||
|
|
||||||
if ('nextup' === params.type) {
|
if (params.type === 'nextup') {
|
||||||
posterOptions.showParentTitle = settings.showTitle;
|
posterOptions.showParentTitle = settings.showTitle;
|
||||||
} else if ('Person' === params.type) {
|
} else if (params.type === 'Person') {
|
||||||
posterOptions.showYear = false;
|
posterOptions.showYear = false;
|
||||||
posterOptions.showParentTitle = false;
|
posterOptions.showParentTitle = false;
|
||||||
lines = 1;
|
lines = 1;
|
||||||
} else if ('Audio' === params.type) {
|
} else if (params.type === 'Audio') {
|
||||||
posterOptions.showParentTitle = settings.showTitle;
|
posterOptions.showParentTitle = settings.showTitle;
|
||||||
} else if ('MusicAlbum' === params.type) {
|
} else if (params.type === 'MusicAlbum') {
|
||||||
posterOptions.showParentTitle = settings.showTitle;
|
posterOptions.showParentTitle = settings.showTitle;
|
||||||
} else if ('Episode' === params.type) {
|
} else if (params.type === 'Episode') {
|
||||||
posterOptions.showParentTitle = settings.showTitle;
|
posterOptions.showParentTitle = settings.showTitle;
|
||||||
} else if ('MusicArtist' === params.type) {
|
} else if (params.type === 'MusicArtist') {
|
||||||
posterOptions.showYear = false;
|
posterOptions.showYear = false;
|
||||||
lines = 1;
|
lines = 1;
|
||||||
} else if ('Programs' === params.type) {
|
} else if (params.type === 'Programs') {
|
||||||
lines = settings.showTitle ? 1 : 0;
|
lines = settings.showTitle ? 1 : 0;
|
||||||
var showParentTitle = settings.showTitle && 'true' !== params.IsMovie;
|
var showParentTitle = settings.showTitle && params.IsMovie !== 'true';
|
||||||
|
|
||||||
if (showParentTitle) {
|
if (showParentTitle) {
|
||||||
lines++;
|
lines++;
|
||||||
}
|
}
|
||||||
|
|
||||||
var showAirTime = settings.showTitle && 'Recordings' !== params.type;
|
var showAirTime = settings.showTitle && params.type !== 'Recordings';
|
||||||
|
|
||||||
if (showAirTime) {
|
if (showAirTime) {
|
||||||
lines++;
|
lines++;
|
||||||
}
|
}
|
||||||
|
|
||||||
var showYear = settings.showTitle && 'true' === params.IsMovie && 'Recordings' === params.type;
|
var showYear = settings.showTitle && params.IsMovie === 'true' && params.type === 'Recordings';
|
||||||
|
|
||||||
if (showYear) {
|
if (showYear) {
|
||||||
lines++;
|
lines++;
|
||||||
}
|
}
|
||||||
|
|
||||||
posterOptions = Object.assign(posterOptions, {
|
posterOptions = Object.assign(posterOptions, {
|
||||||
inheritThumb: 'Recordings' === params.type,
|
inheritThumb: params.type === 'Recordings',
|
||||||
context: 'livetv',
|
context: 'livetv',
|
||||||
showParentTitle: showParentTitle,
|
showParentTitle: showParentTitle,
|
||||||
showAirTime: showAirTime,
|
showAirTime: showAirTime,
|
||||||
|
@ -529,7 +529,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
posterOptions.lines = lines;
|
posterOptions.lines = lines;
|
||||||
posterOptions.items = items;
|
posterOptions.items = items;
|
||||||
|
|
||||||
if (item && 'folders' === item.CollectionType) {
|
if (item && item.CollectionType === 'folders') {
|
||||||
posterOptions.context = 'folders';
|
posterOptions.context = 'folders';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -561,7 +561,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
function setTitle(item) {
|
function setTitle(item) {
|
||||||
Emby.Page.setTitle(getTitle(item) || '');
|
Emby.Page.setTitle(getTitle(item) || '');
|
||||||
|
|
||||||
if (item && 'playlists' === item.CollectionType) {
|
if (item && item.CollectionType === 'playlists') {
|
||||||
hideOrShowAll(view.querySelectorAll('.btnNewItem'), false);
|
hideOrShowAll(view.querySelectorAll('.btnNewItem'), false);
|
||||||
} else {
|
} else {
|
||||||
hideOrShowAll(view.querySelectorAll('.btnNewItem'), true);
|
hideOrShowAll(view.querySelectorAll('.btnNewItem'), true);
|
||||||
|
@ -569,43 +569,43 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTitle(item) {
|
function getTitle(item) {
|
||||||
if ('Recordings' === params.type) {
|
if (params.type === 'Recordings') {
|
||||||
return globalize.translate('Recordings');
|
return globalize.translate('Recordings');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Programs' === params.type) {
|
if (params.type === 'Programs') {
|
||||||
if ('true' === params.IsMovie) {
|
if (params.IsMovie === 'true') {
|
||||||
return globalize.translate('Movies');
|
return globalize.translate('Movies');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsSports) {
|
if (params.IsSports === 'true') {
|
||||||
return globalize.translate('Sports');
|
return globalize.translate('Sports');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsKids) {
|
if (params.IsKids === 'true') {
|
||||||
return globalize.translate('HeaderForKids');
|
return globalize.translate('HeaderForKids');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsAiring) {
|
if (params.IsAiring === 'true') {
|
||||||
return globalize.translate('HeaderOnNow');
|
return globalize.translate('HeaderOnNow');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsSeries) {
|
if (params.IsSeries === 'true') {
|
||||||
return globalize.translate('Shows');
|
return globalize.translate('Shows');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('true' === params.IsNews) {
|
if (params.IsNews === 'true') {
|
||||||
return globalize.translate('News');
|
return globalize.translate('News');
|
||||||
}
|
}
|
||||||
|
|
||||||
return globalize.translate('Programs');
|
return globalize.translate('Programs');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('nextup' === params.type) {
|
if (params.type === 'nextup') {
|
||||||
return globalize.translate('NextUp');
|
return globalize.translate('NextUp');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('favoritemovies' === params.type) {
|
if (params.type === 'favoritemovies') {
|
||||||
return globalize.translate('FavoriteMovies');
|
return globalize.translate('FavoriteMovies');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -613,35 +613,35 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
return item.Name;
|
return item.Name;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Movie' === params.type) {
|
if (params.type === 'Movie') {
|
||||||
return globalize.translate('Movies');
|
return globalize.translate('Movies');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Series' === params.type) {
|
if (params.type === 'Series') {
|
||||||
return globalize.translate('Shows');
|
return globalize.translate('Shows');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Season' === params.type) {
|
if (params.type === 'Season') {
|
||||||
return globalize.translate('Seasons');
|
return globalize.translate('Seasons');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Episode' === params.type) {
|
if (params.type === 'Episode') {
|
||||||
return globalize.translate('Episodes');
|
return globalize.translate('Episodes');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicArtist' === params.type) {
|
if (params.type === 'MusicArtist') {
|
||||||
return globalize.translate('Artists');
|
return globalize.translate('Artists');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicAlbum' === params.type) {
|
if (params.type === 'MusicAlbum') {
|
||||||
return globalize.translate('Albums');
|
return globalize.translate('Albums');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Audio' === params.type) {
|
if (params.type === 'Audio') {
|
||||||
return globalize.translate('Songs');
|
return globalize.translate('Songs');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Video' === params.type) {
|
if (params.type === 'Video') {
|
||||||
return globalize.translate('Videos');
|
return globalize.translate('Videos');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -700,11 +700,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
|
|
||||||
if (params.parentId) {
|
if (params.parentId) {
|
||||||
this.itemsContainer.setAttribute('data-parentid', params.parentId);
|
this.itemsContainer.setAttribute('data-parentid', params.parentId);
|
||||||
} else if ('nextup' === params.type) {
|
} else if (params.type === 'nextup') {
|
||||||
this.itemsContainer.setAttribute('data-monitor', 'videoplayback');
|
this.itemsContainer.setAttribute('data-monitor', 'videoplayback');
|
||||||
} else if ('favoritemovies' === params.type) {
|
} else if (params.type === 'favoritemovies') {
|
||||||
this.itemsContainer.setAttribute('data-monitor', 'markfavorite');
|
this.itemsContainer.setAttribute('data-monitor', 'markfavorite');
|
||||||
} else if ('Programs' === params.type) {
|
} else if (params.type === 'Programs') {
|
||||||
this.itemsContainer.setAttribute('data-refreshinterval', '300000');
|
this.itemsContainer.setAttribute('data-refreshinterval', '300000');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -737,7 +737,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var sortButton = sortButtons[i];
|
var sortButton = sortButtons[i];
|
||||||
sortButton.addEventListener('click', showSortMenu.bind(this));
|
sortButton.addEventListener('click', showSortMenu.bind(this));
|
||||||
|
|
||||||
if ('nextup' !== params.type) {
|
if (params.type !== 'nextup') {
|
||||||
sortButton.classList.remove('hide');
|
sortButton.classList.remove('hide');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -772,19 +772,19 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!isRestored && item && 'PhotoAlbum' !== item.Type) {
|
if (!isRestored && item && item.Type !== 'PhotoAlbum') {
|
||||||
initAlphaPicker();
|
initAlphaPicker();
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemType = item ? item.Type : null;
|
var itemType = item ? item.Type : null;
|
||||||
|
|
||||||
if ('MusicGenre' === itemType || 'Programs' !== params.type && 'Channel' !== itemType) {
|
if (itemType === 'MusicGenre' || params.type !== 'Programs' && itemType !== 'Channel') {
|
||||||
hideOrShowAll(view.querySelectorAll('.btnPlay'), false);
|
hideOrShowAll(view.querySelectorAll('.btnPlay'), false);
|
||||||
} else {
|
} else {
|
||||||
hideOrShowAll(view.querySelectorAll('.btnPlay'), true);
|
hideOrShowAll(view.querySelectorAll('.btnPlay'), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicGenre' === itemType || 'Programs' !== params.type && 'nextup' !== params.type && 'Channel' !== itemType) {
|
if (itemType === 'MusicGenre' || params.type !== 'Programs' && params.type !== 'nextup' && itemType !== 'Channel') {
|
||||||
hideOrShowAll(view.querySelectorAll('.btnShuffle'), false);
|
hideOrShowAll(view.querySelectorAll('.btnShuffle'), false);
|
||||||
} else {
|
} else {
|
||||||
hideOrShowAll(view.querySelectorAll('.btnShuffle'), true);
|
hideOrShowAll(view.querySelectorAll('.btnShuffle'), true);
|
||||||
|
@ -845,14 +845,14 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
ItemsView.prototype.getFilters = function () {
|
ItemsView.prototype.getFilters = function () {
|
||||||
var basekey = this.getSettingsKey();
|
var basekey = this.getSettingsKey();
|
||||||
return {
|
return {
|
||||||
IsPlayed: 'true' === userSettings.getFilter(basekey + '-filter-IsPlayed'),
|
IsPlayed: userSettings.getFilter(basekey + '-filter-IsPlayed') === 'true',
|
||||||
IsUnplayed: 'true' === userSettings.getFilter(basekey + '-filter-IsUnplayed'),
|
IsUnplayed: userSettings.getFilter(basekey + '-filter-IsUnplayed') === 'true',
|
||||||
IsFavorite: 'true' === userSettings.getFilter(basekey + '-filter-IsFavorite'),
|
IsFavorite: userSettings.getFilter(basekey + '-filter-IsFavorite') === 'true',
|
||||||
IsResumable: 'true' === userSettings.getFilter(basekey + '-filter-IsResumable'),
|
IsResumable: userSettings.getFilter(basekey + '-filter-IsResumable') === 'true',
|
||||||
Is4K: 'true' === userSettings.getFilter(basekey + '-filter-Is4K'),
|
Is4K: userSettings.getFilter(basekey + '-filter-Is4K') === 'true',
|
||||||
IsHD: 'true' === userSettings.getFilter(basekey + '-filter-IsHD'),
|
IsHD: userSettings.getFilter(basekey + '-filter-IsHD') === 'true',
|
||||||
IsSD: 'true' === userSettings.getFilter(basekey + '-filter-IsSD'),
|
IsSD: userSettings.getFilter(basekey + '-filter-IsSD') === 'true',
|
||||||
Is3D: 'true' === userSettings.getFilter(basekey + '-filter-Is3D'),
|
Is3D: userSettings.getFilter(basekey + '-filter-Is3D') === 'true',
|
||||||
VideoTypes: userSettings.getFilter(basekey + '-filter-VideoTypes'),
|
VideoTypes: userSettings.getFilter(basekey + '-filter-VideoTypes'),
|
||||||
SeriesStatus: userSettings.getFilter(basekey + '-filter-SeriesStatus'),
|
SeriesStatus: userSettings.getFilter(basekey + '-filter-SeriesStatus'),
|
||||||
HasSubtitles: userSettings.getFilter(basekey + '-filter-HasSubtitles'),
|
HasSubtitles: userSettings.getFilter(basekey + '-filter-HasSubtitles'),
|
||||||
|
@ -868,7 +868,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var basekey = this.getSettingsKey();
|
var basekey = this.getSettingsKey();
|
||||||
return {
|
return {
|
||||||
sortBy: userSettings.getFilter(basekey + '-sortby') || this.getDefaultSortBy(),
|
sortBy: userSettings.getFilter(basekey + '-sortby') || this.getDefaultSortBy(),
|
||||||
sortOrder: 'Descending' === userSettings.getFilter(basekey + '-sortorder') ? 'Descending' : 'Ascending'
|
sortOrder: userSettings.getFilter(basekey + '-sortorder') === 'Descending' ? 'Descending' : 'Ascending'
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -887,7 +887,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var sortBy = [];
|
var sortBy = [];
|
||||||
var params = this.params;
|
var params = this.params;
|
||||||
|
|
||||||
if ('Programs' === params.type) {
|
if (params.type === 'Programs') {
|
||||||
sortBy.push({
|
sortBy.push({
|
||||||
name: globalize.translate('AirDate'),
|
name: globalize.translate('AirDate'),
|
||||||
value: 'StartDate,SortName'
|
value: 'StartDate,SortName'
|
||||||
|
@ -912,7 +912,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
sortBy.push(option);
|
sortBy.push(option);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Programs' !== params.type) {
|
if (params.type !== 'Programs') {
|
||||||
sortBy.push({
|
sortBy.push({
|
||||||
name: globalize.translate('DateAdded'),
|
name: globalize.translate('DateAdded'),
|
||||||
value: 'DateCreated,SortName'
|
value: 'DateCreated,SortName'
|
||||||
|
@ -955,7 +955,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
};
|
};
|
||||||
|
|
||||||
ItemsView.prototype.getNameSortOption = function (params) {
|
ItemsView.prototype.getNameSortOption = function (params) {
|
||||||
if ('Episode' === params.type) {
|
if (params.type === 'Episode') {
|
||||||
return {
|
return {
|
||||||
name: globalize.translate('Name'),
|
name: globalize.translate('Name'),
|
||||||
value: 'SeriesName,SortName'
|
value: 'SeriesName,SortName'
|
||||||
|
@ -969,7 +969,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
};
|
};
|
||||||
|
|
||||||
ItemsView.prototype.getPlayCountSortOption = function () {
|
ItemsView.prototype.getPlayCountSortOption = function () {
|
||||||
if ('Programs' === this.params.type) {
|
if (this.params.type === 'Programs') {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -980,7 +980,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
};
|
};
|
||||||
|
|
||||||
ItemsView.prototype.getDatePlayedSortOption = function () {
|
ItemsView.prototype.getDatePlayedSortOption = function () {
|
||||||
if ('Programs' === this.params.type) {
|
if (this.params.type === 'Programs') {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -991,7 +991,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
};
|
};
|
||||||
|
|
||||||
ItemsView.prototype.getCriticRatingSortOption = function () {
|
ItemsView.prototype.getCriticRatingSortOption = function () {
|
||||||
if ('Programs' === this.params.type) {
|
if (this.params.type === 'Programs') {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1012,8 +1012,8 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var filters = [];
|
var filters = [];
|
||||||
var params = this.params;
|
var params = this.params;
|
||||||
|
|
||||||
if (!('nextup' === params.type)) {
|
if (!(params.type === 'nextup')) {
|
||||||
if ('Programs' === params.type) {
|
if (params.type === 'Programs') {
|
||||||
filters.push('Genres');
|
filters.push('Genres');
|
||||||
} else {
|
} else {
|
||||||
filters.push('IsUnplayed');
|
filters.push('IsUnplayed');
|
||||||
|
@ -1081,7 +1081,7 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var item = (this.params, this.currentItem);
|
var item = (this.params, this.currentItem);
|
||||||
var fields = ['showTitle'];
|
var fields = ['showTitle'];
|
||||||
|
|
||||||
if (!item || 'PhotoAlbum' !== item.Type && 'ChannelFolderItem' !== item.Type) {
|
if (!item || item.Type !== 'PhotoAlbum' && item.Type !== 'ChannelFolderItem') {
|
||||||
fields.push('imageType');
|
fields.push('imageType');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1095,25 +1095,25 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
var item = this.currentItem;
|
var item = this.currentItem;
|
||||||
var showTitle = userSettings.get(basekey + '-showTitle');
|
var showTitle = userSettings.get(basekey + '-showTitle');
|
||||||
|
|
||||||
if ('true' === showTitle) {
|
if (showTitle === 'true') {
|
||||||
showTitle = true;
|
showTitle = true;
|
||||||
} else if ('false' === showTitle) {
|
} else if (showTitle === 'false') {
|
||||||
showTitle = false;
|
showTitle = false;
|
||||||
} else if ('Programs' === params.type || 'Recordings' === params.type || 'Person' === params.type || 'nextup' === params.type || 'Audio' === params.type || 'MusicAlbum' === params.type || 'MusicArtist' === params.type) {
|
} else if (params.type === 'Programs' || params.type === 'Recordings' || params.type === 'Person' || params.type === 'nextup' || params.type === 'Audio' || params.type === 'MusicAlbum' || params.type === 'MusicArtist') {
|
||||||
showTitle = true;
|
showTitle = true;
|
||||||
} else if (item && 'PhotoAlbum' !== item.Type) {
|
} else if (item && item.Type !== 'PhotoAlbum') {
|
||||||
showTitle = true;
|
showTitle = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var imageType = userSettings.get(basekey + '-imageType');
|
var imageType = userSettings.get(basekey + '-imageType');
|
||||||
|
|
||||||
if (!imageType && 'nextup' === params.type) {
|
if (!imageType && params.type === 'nextup') {
|
||||||
imageType = 'thumb';
|
imageType = 'thumb';
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
showTitle: showTitle,
|
showTitle: showTitle,
|
||||||
showYear: 'false' !== userSettings.get(basekey + '-showYear'),
|
showYear: userSettings.get(basekey + '-showYear') !== 'false',
|
||||||
imageType: imageType || 'primary',
|
imageType: imageType || 'primary',
|
||||||
viewType: userSettings.get(basekey + '-viewType') || 'images'
|
viewType: userSettings.get(basekey + '-viewType') || 'images'
|
||||||
};
|
};
|
||||||
|
@ -1122,11 +1122,11 @@ define(['globalize', 'listView', 'layoutManager', 'userSettings', 'focusManager'
|
||||||
ItemsView.prototype.getItemTypes = function () {
|
ItemsView.prototype.getItemTypes = function () {
|
||||||
var params = this.params;
|
var params = this.params;
|
||||||
|
|
||||||
if ('nextup' === params.type) {
|
if (params.type === 'nextup') {
|
||||||
return ['Episode'];
|
return ['Episode'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Programs' === params.type) {
|
if (params.type === 'Programs') {
|
||||||
return ['Program'];
|
return ['Program'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,9 +142,9 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize',
|
||||||
coverImage: true,
|
coverImage: true,
|
||||||
overlayText: false,
|
overlayText: false,
|
||||||
lazy: true,
|
lazy: true,
|
||||||
overlayPlayButton: 'play' === overlayButton,
|
overlayPlayButton: overlayButton === 'play',
|
||||||
overlayMoreButton: 'more' === overlayButton,
|
overlayMoreButton: overlayButton === 'more',
|
||||||
overlayInfoButton: 'info' === overlayButton,
|
overlayInfoButton: overlayButton === 'info',
|
||||||
allowBottomPadding: !enableScrollX(),
|
allowBottomPadding: !enableScrollX(),
|
||||||
showAirTime: true,
|
showAirTime: true,
|
||||||
showAirDateTime: true
|
showAirDateTime: true
|
||||||
|
@ -261,7 +261,7 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize',
|
||||||
require(depends, function (controllerFactory) {
|
require(depends, function (controllerFactory) {
|
||||||
var tabContent;
|
var tabContent;
|
||||||
|
|
||||||
if (0 == index) {
|
if (index == 0) {
|
||||||
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
||||||
self.tabContent = tabContent;
|
self.tabContent = tabContent;
|
||||||
}
|
}
|
||||||
|
@ -271,9 +271,9 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize',
|
||||||
if (!controller) {
|
if (!controller) {
|
||||||
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
||||||
|
|
||||||
if (0 === index) {
|
if (index === 0) {
|
||||||
controller = self;
|
controller = self;
|
||||||
} else if (6 === index) {
|
} else if (index === 6) {
|
||||||
controller = new controllerFactory(view, tabContent, {
|
controller = new controllerFactory(view, tabContent, {
|
||||||
collectionType: 'livetv'
|
collectionType: 'livetv'
|
||||||
});
|
});
|
||||||
|
@ -305,8 +305,8 @@ define(['layoutManager', 'userSettings', 'inputManager', 'loading', 'globalize',
|
||||||
getTabController(page, index, function (controller) {
|
getTabController(page, index, function (controller) {
|
||||||
initialTabIndex = null;
|
initialTabIndex = null;
|
||||||
|
|
||||||
if (-1 == renderedTabs.indexOf(index)) {
|
if (renderedTabs.indexOf(index) == -1) {
|
||||||
if (1 === index) {
|
if (index === 1) {
|
||||||
renderedTabs.push(index);
|
renderedTabs.push(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,232 +1,228 @@
|
||||||
define(['globalize', 'loading', 'libraryMenu', 'dom', 'emby-input', 'emby-button', 'emby-checkbox', 'emby-select'], function (globalize, loading, libraryMenu, dom) {
|
import globalize from 'globalize';
|
||||||
'use strict';
|
import loading from 'loading';
|
||||||
|
import dom from 'dom';
|
||||||
|
import 'emby-input';
|
||||||
|
import 'emby-button';
|
||||||
|
import 'emby-checkbox';
|
||||||
|
import 'emby-select';
|
||||||
|
|
||||||
function isM3uVariant(type) {
|
function isM3uVariant(type) {
|
||||||
return ['nextpvr'].indexOf(type || '') !== -1;
|
return ['nextpvr'].indexOf(type || '') !== -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
function fillTypes(view, currentId) {
|
function fillTypes(view, currentId) {
|
||||||
return ApiClient.getJSON(ApiClient.getUrl('LiveTv/TunerHosts/Types')).then(function (types) {
|
return ApiClient.getJSON(ApiClient.getUrl('LiveTv/TunerHosts/Types')).then(function (types) {
|
||||||
var selectType = view.querySelector('.selectType');
|
const selectType = view.querySelector('.selectType');
|
||||||
var html = '';
|
let html = '';
|
||||||
html += types.map(function (tuner) {
|
html += types.map(function (tuner) {
|
||||||
return '<option value="' + tuner.Id + '">' + tuner.Name + '</option>';
|
return '<option value="' + tuner.Id + '">' + tuner.Name + '</option>';
|
||||||
}).join('');
|
}).join('');
|
||||||
html += '<option value="other">';
|
html += '<option value="other">';
|
||||||
html += globalize.translate('TabOther');
|
html += globalize.translate('TabOther');
|
||||||
html += '</option>';
|
html += '</option>';
|
||||||
selectType.innerHTML = html;
|
selectType.innerHTML = html;
|
||||||
selectType.disabled = null != currentId;
|
selectType.disabled = currentId != null;
|
||||||
selectType.value = '';
|
selectType.value = '';
|
||||||
onTypeChange.call(selectType);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function reload(view, providerId) {
|
|
||||||
view.querySelector('.txtDevicePath').value = '';
|
|
||||||
view.querySelector('.chkFavorite').checked = false;
|
|
||||||
view.querySelector('.txtDevicePath').value = '';
|
|
||||||
|
|
||||||
if (providerId) {
|
|
||||||
ApiClient.getNamedConfiguration('livetv').then(function (config) {
|
|
||||||
var info = config.TunerHosts.filter(function (i) {
|
|
||||||
return i.Id === providerId;
|
|
||||||
})[0];
|
|
||||||
fillTunerHostInfo(view, info);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function fillTunerHostInfo(view, info) {
|
|
||||||
var selectType = view.querySelector('.selectType');
|
|
||||||
var type = info.Type || '';
|
|
||||||
|
|
||||||
if (info.Source && isM3uVariant(info.Source)) {
|
|
||||||
type = info.Source;
|
|
||||||
}
|
|
||||||
|
|
||||||
selectType.value = type;
|
|
||||||
onTypeChange.call(selectType);
|
onTypeChange.call(selectType);
|
||||||
view.querySelector('.txtDevicePath').value = info.Url || '';
|
});
|
||||||
view.querySelector('.txtFriendlyName').value = info.FriendlyName || '';
|
}
|
||||||
view.querySelector('.txtUserAgent').value = info.UserAgent || '';
|
|
||||||
view.querySelector('.fldDeviceId').value = info.DeviceId || '';
|
|
||||||
view.querySelector('.chkFavorite').checked = info.ImportFavoritesOnly;
|
|
||||||
view.querySelector('.chkTranscode').checked = info.AllowHWTranscoding;
|
|
||||||
view.querySelector('.chkStreamLoop').checked = info.EnableStreamLooping;
|
|
||||||
view.querySelector('.txtTunerCount').value = info.TunerCount || '0';
|
|
||||||
}
|
|
||||||
|
|
||||||
function submitForm(page) {
|
function reload(view, providerId) {
|
||||||
loading.show();
|
view.querySelector('.txtDevicePath').value = '';
|
||||||
var info = {
|
view.querySelector('.chkFavorite').checked = false;
|
||||||
Type: page.querySelector('.selectType').value,
|
view.querySelector('.txtDevicePath').value = '';
|
||||||
Url: page.querySelector('.txtDevicePath').value || null,
|
|
||||||
UserAgent: page.querySelector('.txtUserAgent').value || null,
|
|
||||||
FriendlyName: page.querySelector('.txtFriendlyName').value || null,
|
|
||||||
DeviceId: page.querySelector('.fldDeviceId').value || null,
|
|
||||||
TunerCount: page.querySelector('.txtTunerCount').value || 0,
|
|
||||||
ImportFavoritesOnly: page.querySelector('.chkFavorite').checked,
|
|
||||||
AllowHWTranscoding: page.querySelector('.chkTranscode').checked,
|
|
||||||
EnableStreamLooping: page.querySelector('.chkStreamLoop').checked
|
|
||||||
};
|
|
||||||
|
|
||||||
if (isM3uVariant(info.Type)) {
|
if (providerId) {
|
||||||
info.Source = info.Type;
|
ApiClient.getNamedConfiguration('livetv').then(function (config) {
|
||||||
info.Type = 'm3u';
|
const info = config.TunerHosts.filter(function (i) {
|
||||||
}
|
return i.Id === providerId;
|
||||||
|
})[0];
|
||||||
var id = getParameterByName('id');
|
fillTunerHostInfo(view, info);
|
||||||
|
|
||||||
if (id) {
|
|
||||||
info.Id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
ApiClient.ajax({
|
|
||||||
type: 'POST',
|
|
||||||
url: ApiClient.getUrl('LiveTv/TunerHosts'),
|
|
||||||
data: JSON.stringify(info),
|
|
||||||
contentType: 'application/json'
|
|
||||||
}).then(function (result) {
|
|
||||||
Dashboard.processServerConfigurationUpdateResult();
|
|
||||||
Dashboard.navigate('livetvstatus.html');
|
|
||||||
}, function () {
|
|
||||||
loading.hide();
|
|
||||||
Dashboard.alert({
|
|
||||||
message: globalize.translate('ErrorSavingTvProvider')
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getRequirePromise(deps) {
|
function fillTunerHostInfo(view, info) {
|
||||||
return new Promise(function (resolve, reject) {
|
const selectType = view.querySelector('.selectType');
|
||||||
require(deps, resolve);
|
let type = info.Type || '';
|
||||||
});
|
|
||||||
|
if (info.Source && isM3uVariant(info.Source)) {
|
||||||
|
type = info.Source;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDetectedDevice() {
|
selectType.value = type;
|
||||||
return getRequirePromise(['tunerPicker']).then(function (tunerPicker) {
|
onTypeChange.call(selectType);
|
||||||
return new tunerPicker().show({
|
view.querySelector('.txtDevicePath').value = info.Url || '';
|
||||||
serverId: ApiClient.serverId()
|
view.querySelector('.txtFriendlyName').value = info.FriendlyName || '';
|
||||||
});
|
view.querySelector('.txtUserAgent').value = info.UserAgent || '';
|
||||||
});
|
view.querySelector('.fldDeviceId').value = info.DeviceId || '';
|
||||||
}
|
view.querySelector('.chkFavorite').checked = info.ImportFavoritesOnly;
|
||||||
|
view.querySelector('.chkTranscode').checked = info.AllowHWTranscoding;
|
||||||
|
view.querySelector('.chkStreamLoop').checked = info.EnableStreamLooping;
|
||||||
|
view.querySelector('.txtTunerCount').value = info.TunerCount || '0';
|
||||||
|
}
|
||||||
|
|
||||||
function onTypeChange() {
|
function submitForm(page) {
|
||||||
var value = this.value;
|
loading.show();
|
||||||
var view = dom.parentWithClass(this, 'page');
|
const info = {
|
||||||
var mayIncludeUnsupportedDrmChannels = 'hdhomerun' === value;
|
Type: page.querySelector('.selectType').value,
|
||||||
var supportsTranscoding = 'hdhomerun' === value;
|
Url: page.querySelector('.txtDevicePath').value || null,
|
||||||
var supportsFavorites = 'hdhomerun' === value;
|
UserAgent: page.querySelector('.txtUserAgent').value || null,
|
||||||
var supportsTunerIpAddress = 'hdhomerun' === value;
|
FriendlyName: page.querySelector('.txtFriendlyName').value || null,
|
||||||
var supportsTunerFileOrUrl = 'm3u' === value;
|
DeviceId: page.querySelector('.fldDeviceId').value || null,
|
||||||
var supportsStreamLooping = 'm3u' === value;
|
TunerCount: page.querySelector('.txtTunerCount').value || 0,
|
||||||
var supportsTunerCount = 'm3u' === value;
|
ImportFavoritesOnly: page.querySelector('.chkFavorite').checked,
|
||||||
var supportsUserAgent = 'm3u' === value;
|
AllowHWTranscoding: page.querySelector('.chkTranscode').checked,
|
||||||
var suppportsSubmit = 'other' !== value;
|
EnableStreamLooping: page.querySelector('.chkStreamLoop').checked
|
||||||
var supportsSelectablePath = supportsTunerFileOrUrl;
|
|
||||||
var txtDevicePath = view.querySelector('.txtDevicePath');
|
|
||||||
|
|
||||||
if (supportsTunerIpAddress) {
|
|
||||||
txtDevicePath.label(globalize.translate('LabelTunerIpAddress'));
|
|
||||||
view.querySelector('.fldPath').classList.remove('hide');
|
|
||||||
} else if (supportsTunerFileOrUrl) {
|
|
||||||
txtDevicePath.label(globalize.translate('LabelFileOrUrl'));
|
|
||||||
view.querySelector('.fldPath').classList.remove('hide');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.fldPath').classList.add('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportsSelectablePath) {
|
|
||||||
view.querySelector('.btnSelectPath').classList.remove('hide');
|
|
||||||
view.querySelector('.txtDevicePath').setAttribute('required', 'required');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.btnSelectPath').classList.add('hide');
|
|
||||||
view.querySelector('.txtDevicePath').removeAttribute('required');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportsUserAgent) {
|
|
||||||
view.querySelector('.fldUserAgent').classList.remove('hide');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.fldUserAgent').classList.add('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportsFavorites) {
|
|
||||||
view.querySelector('.fldFavorites').classList.remove('hide');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.fldFavorites').classList.add('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportsTranscoding) {
|
|
||||||
view.querySelector('.fldTranscode').classList.remove('hide');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.fldTranscode').classList.add('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportsStreamLooping) {
|
|
||||||
view.querySelector('.fldStreamLoop').classList.remove('hide');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.fldStreamLoop').classList.add('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (supportsTunerCount) {
|
|
||||||
view.querySelector('.fldTunerCount').classList.remove('hide');
|
|
||||||
view.querySelector('.txtTunerCount').setAttribute('required', 'required');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.fldTunerCount').classList.add('hide');
|
|
||||||
view.querySelector('.txtTunerCount').removeAttribute('required');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mayIncludeUnsupportedDrmChannels) {
|
|
||||||
view.querySelector('.drmMessage').classList.remove('hide');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.drmMessage').classList.add('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (suppportsSubmit) {
|
|
||||||
view.querySelector('.button-submit').classList.remove('hide');
|
|
||||||
} else {
|
|
||||||
view.querySelector('.button-submit').classList.add('hide');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return function (view, params) {
|
|
||||||
if (!params.id) {
|
|
||||||
view.querySelector('.btnDetect').classList.remove('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
view.addEventListener('viewshow', function () {
|
|
||||||
var currentId = params.id;
|
|
||||||
fillTypes(view, currentId).then(function () {
|
|
||||||
reload(view, currentId);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
view.querySelector('form').addEventListener('submit', function (e) {
|
|
||||||
submitForm(view);
|
|
||||||
e.preventDefault();
|
|
||||||
e.stopPropagation();
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
view.querySelector('.selectType').addEventListener('change', onTypeChange);
|
|
||||||
view.querySelector('.btnDetect').addEventListener('click', function () {
|
|
||||||
getDetectedDevice().then(function (info) {
|
|
||||||
fillTunerHostInfo(view, info);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
view.querySelector('.btnSelectPath').addEventListener('click', function () {
|
|
||||||
require(['directorybrowser'], function (directoryBrowser) {
|
|
||||||
var picker = new directoryBrowser.default();
|
|
||||||
picker.show({
|
|
||||||
includeFiles: true,
|
|
||||||
callback: function (path) {
|
|
||||||
if (path) {
|
|
||||||
view.querySelector('.txtDevicePath').value = path;
|
|
||||||
}
|
|
||||||
|
|
||||||
picker.close();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
});
|
|
||||||
|
if (isM3uVariant(info.Type)) {
|
||||||
|
info.Source = info.Type;
|
||||||
|
info.Type = 'm3u';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getParameterByName('id')) {
|
||||||
|
info.Id = getParameterByName('id');
|
||||||
|
}
|
||||||
|
|
||||||
|
ApiClient.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: ApiClient.getUrl('LiveTv/TunerHosts'),
|
||||||
|
data: JSON.stringify(info),
|
||||||
|
contentType: 'application/json'
|
||||||
|
}).then(function (result) {
|
||||||
|
Dashboard.processServerConfigurationUpdateResult();
|
||||||
|
Dashboard.navigate('livetvstatus.html');
|
||||||
|
}, function () {
|
||||||
|
loading.hide();
|
||||||
|
Dashboard.alert({
|
||||||
|
message: globalize.translate('ErrorSavingTvProvider')
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDetectedDevice() {
|
||||||
|
return import('tunerPicker').then(({default: tunerPicker}) => {
|
||||||
|
return new tunerPicker().show({
|
||||||
|
serverId: ApiClient.serverId()
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function onTypeChange() {
|
||||||
|
const value = this.value;
|
||||||
|
const view = dom.parentWithClass(this, 'page');
|
||||||
|
const mayIncludeUnsupportedDrmChannels = value === 'hdhomerun';
|
||||||
|
const supportsTranscoding = value === 'hdhomerun';
|
||||||
|
const supportsFavorites = value === 'hdhomerun';
|
||||||
|
const supportsTunerIpAddress = value === 'hdhomerun';
|
||||||
|
const supportsTunerFileOrUrl = value === 'm3u';
|
||||||
|
const supportsStreamLooping = value === 'm3u';
|
||||||
|
const supportsTunerCount = value === 'm3u';
|
||||||
|
const supportsUserAgent = value === 'm3u';
|
||||||
|
const suppportsSubmit = value !== 'other';
|
||||||
|
const supportsSelectablePath = supportsTunerFileOrUrl;
|
||||||
|
const txtDevicePath = view.querySelector('.txtDevicePath');
|
||||||
|
|
||||||
|
if (supportsTunerIpAddress) {
|
||||||
|
txtDevicePath.label(globalize.translate('LabelTunerIpAddress'));
|
||||||
|
view.querySelector('.fldPath').classList.remove('hide');
|
||||||
|
} else if (supportsTunerFileOrUrl) {
|
||||||
|
txtDevicePath.label(globalize.translate('LabelFileOrUrl'));
|
||||||
|
view.querySelector('.fldPath').classList.remove('hide');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.fldPath').classList.add('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supportsSelectablePath) {
|
||||||
|
view.querySelector('.btnSelectPath').classList.remove('hide');
|
||||||
|
view.querySelector('.txtDevicePath').setAttribute('required', 'required');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.btnSelectPath').classList.add('hide');
|
||||||
|
view.querySelector('.txtDevicePath').removeAttribute('required');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supportsUserAgent) {
|
||||||
|
view.querySelector('.fldUserAgent').classList.remove('hide');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.fldUserAgent').classList.add('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supportsFavorites) {
|
||||||
|
view.querySelector('.fldFavorites').classList.remove('hide');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.fldFavorites').classList.add('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supportsTranscoding) {
|
||||||
|
view.querySelector('.fldTranscode').classList.remove('hide');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.fldTranscode').classList.add('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supportsStreamLooping) {
|
||||||
|
view.querySelector('.fldStreamLoop').classList.remove('hide');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.fldStreamLoop').classList.add('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (supportsTunerCount) {
|
||||||
|
view.querySelector('.fldTunerCount').classList.remove('hide');
|
||||||
|
view.querySelector('.txtTunerCount').setAttribute('required', 'required');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.fldTunerCount').classList.add('hide');
|
||||||
|
view.querySelector('.txtTunerCount').removeAttribute('required');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mayIncludeUnsupportedDrmChannels) {
|
||||||
|
view.querySelector('.drmMessage').classList.remove('hide');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.drmMessage').classList.add('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (suppportsSubmit) {
|
||||||
|
view.querySelector('.button-submit').classList.remove('hide');
|
||||||
|
} else {
|
||||||
|
view.querySelector('.button-submit').classList.add('hide');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function (view, params) {
|
||||||
|
if (!params.id) {
|
||||||
|
view.querySelector('.btnDetect').classList.remove('hide');
|
||||||
|
}
|
||||||
|
|
||||||
|
view.addEventListener('viewshow', function () {
|
||||||
|
const currentId = params.id;
|
||||||
|
fillTypes(view, currentId).then(function () {
|
||||||
|
reload(view, currentId);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
view.querySelector('form').addEventListener('submit', function (e) {
|
||||||
|
submitForm(view);
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
view.querySelector('.selectType').addEventListener('change', onTypeChange);
|
||||||
|
view.querySelector('.btnDetect').addEventListener('click', function () {
|
||||||
|
getDetectedDevice().then(function (info) {
|
||||||
|
fillTunerHostInfo(view, info);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
view.querySelector('.btnSelectPath').addEventListener('click', function () {
|
||||||
|
import('directorybrowser').then(({default: directorybrowser}) => {
|
||||||
|
const picker = new directorybrowser();
|
||||||
|
picker.show({
|
||||||
|
includeFiles: true,
|
||||||
|
callback: function (path) {
|
||||||
|
if (path) {
|
||||||
|
view.querySelector('.txtDevicePath').value = path;
|
||||||
|
}
|
||||||
|
|
||||||
|
picker.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ define(['loading', 'events', 'libraryBrowser', 'imageLoader', 'listView', 'cardB
|
||||||
var viewStyle = self.getCurrentViewStyle();
|
var viewStyle = self.getCurrentViewStyle();
|
||||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
|
|
||||||
if ('List' == viewStyle) {
|
if (viewStyle == 'List') {
|
||||||
itemsContainer.classList.add('vertical-list');
|
itemsContainer.classList.add('vertical-list');
|
||||||
itemsContainer.classList.remove('vertical-wrap');
|
itemsContainer.classList.remove('vertical-wrap');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -56,13 +56,13 @@ define(['layoutManager', 'loading', 'libraryBrowser', 'cardBuilder', 'lazyLoader
|
||||||
var elem = entry.target;
|
var elem = entry.target;
|
||||||
var id = elem.getAttribute('data-id');
|
var id = elem.getAttribute('data-id');
|
||||||
var viewStyle = self.getCurrentViewStyle();
|
var viewStyle = self.getCurrentViewStyle();
|
||||||
var limit = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 5 : 9;
|
var limit = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 5 : 9;
|
||||||
|
|
||||||
if (enableScrollX()) {
|
if (enableScrollX()) {
|
||||||
limit = 10;
|
limit = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
var enableImageTypes = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 'Primary,Backdrop,Thumb' : 'Primary';
|
var enableImageTypes = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 'Primary,Backdrop,Thumb' : 'Primary';
|
||||||
var query = {
|
var query = {
|
||||||
SortBy: 'SortName',
|
SortBy: 'SortName',
|
||||||
SortOrder: 'Ascending',
|
SortOrder: 'Ascending',
|
||||||
|
|
|
@ -1,9 +1,18 @@
|
||||||
define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'userSettings', 'globalize', 'emby-itemscontainer'], function (layoutManager, playbackManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, userSettings, globalize) {
|
import playbackManager from 'playbackManager';
|
||||||
'use strict';
|
import loading from 'loading';
|
||||||
|
import events from 'events';
|
||||||
|
import libraryBrowser from 'libraryBrowser';
|
||||||
|
import imageLoader from 'imageLoader';
|
||||||
|
import AlphaPicker from 'alphaPicker';
|
||||||
|
import listView from 'listView';
|
||||||
|
import cardBuilder from 'cardBuilder';
|
||||||
|
import * as userSettings from 'userSettings';
|
||||||
|
import globalize from 'globalize';
|
||||||
|
import 'emby-itemscontainer';
|
||||||
|
|
||||||
libraryBrowser = libraryBrowser.default || libraryBrowser;
|
/* eslint-disable indent */
|
||||||
|
|
||||||
return function (view, params, tabContent) {
|
export default function (view, params, tabContent) {
|
||||||
function playAll() {
|
function playAll() {
|
||||||
ApiClient.getItem(ApiClient.getCurrentUserId(), params.topParentId).then(function (item) {
|
ApiClient.getItem(ApiClient.getCurrentUserId(), params.topParentId).then(function (item) {
|
||||||
playbackManager.play({
|
playbackManager.play({
|
||||||
|
@ -20,7 +29,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPageData() {
|
function getPageData() {
|
||||||
var key = getSavedQueryKey();
|
const key = getSavedQueryKey();
|
||||||
|
|
||||||
if (!pageData) {
|
if (!pageData) {
|
||||||
pageData = {
|
pageData = {
|
||||||
|
@ -61,10 +70,10 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
}
|
}
|
||||||
|
|
||||||
function onViewStyleChange() {
|
function onViewStyleChange() {
|
||||||
var viewStyle = self.getCurrentViewStyle();
|
const viewStyle = self.getCurrentViewStyle();
|
||||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
|
|
||||||
if ('List' == viewStyle) {
|
if (viewStyle == 'List') {
|
||||||
itemsContainer.classList.add('vertical-list');
|
itemsContainer.classList.add('vertical-list');
|
||||||
itemsContainer.classList.remove('vertical-wrap');
|
itemsContainer.classList.remove('vertical-wrap');
|
||||||
} else {
|
} else {
|
||||||
|
@ -78,7 +87,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
isLoading = true;
|
isLoading = true;
|
||||||
var query = getQuery();
|
const query = getQuery();
|
||||||
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
|
ApiClient.getItems(ApiClient.getCurrentUserId(), query).then(function (result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
|
@ -104,8 +113,8 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
|
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
var html;
|
let html;
|
||||||
var pagingHtml = libraryBrowser.getQueryPagingHtml({
|
const pagingHtml = libraryBrowser.getQueryPagingHtml({
|
||||||
startIndex: query.StartIndex,
|
startIndex: query.StartIndex,
|
||||||
limit: query.Limit,
|
limit: query.Limit,
|
||||||
totalRecordCount: result.TotalRecordCount,
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
@ -115,7 +124,7 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
sortButton: false,
|
sortButton: false,
|
||||||
filterButton: false
|
filterButton: false
|
||||||
});
|
});
|
||||||
var viewStyle = self.getCurrentViewStyle();
|
const viewStyle = self.getCurrentViewStyle();
|
||||||
if (viewStyle == 'List') {
|
if (viewStyle == 'List') {
|
||||||
html = listView.getListViewHtml({
|
html = listView.getListViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
|
@ -146,50 +155,48 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
overlayPlayButton: true
|
overlayPlayButton: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
var i;
|
let elems = tabContent.querySelectorAll('.paging');
|
||||||
var length;
|
|
||||||
var elems = tabContent.querySelectorAll('.paging');
|
|
||||||
|
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].innerHTML = pagingHtml;
|
elems[i].innerHTML = pagingHtml;
|
||||||
}
|
}
|
||||||
|
|
||||||
elems = tabContent.querySelectorAll('.btnNextPage');
|
elems = tabContent.querySelectorAll('.btnNextPage');
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].addEventListener('click', onNextPageClick);
|
elems[i].addEventListener('click', onNextPageClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
elems = tabContent.querySelectorAll('.btnPreviousPage');
|
elems = tabContent.querySelectorAll('.btnPreviousPage');
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].addEventListener('click', onPreviousPageClick);
|
elems[i].addEventListener('click', onPreviousPageClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
itemsContainer.innerHTML = html;
|
itemsContainer.innerHTML = html;
|
||||||
imageLoader.lazyChildren(itemsContainer);
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||||
loading.hide();
|
loading.hide();
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
|
|
||||||
require(['autoFocuser'], function (autoFocuser) {
|
import('autoFocuser').then(({default: autoFocuser}) => {
|
||||||
autoFocuser.autoFocus(tabContent);
|
autoFocuser.autoFocus(tabContent);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateFilterControls(tabContent) {
|
function updateFilterControls(tabContent) {
|
||||||
var query = getQuery();
|
const query = getQuery();
|
||||||
self.alphaPicker.value(query.NameStartsWithOrGreater);
|
self.alphaPicker.value(query.NameStartsWithOrGreater);
|
||||||
}
|
}
|
||||||
|
|
||||||
var savedQueryKey;
|
let savedQueryKey;
|
||||||
var pageData;
|
let pageData;
|
||||||
var self = this;
|
const self = this;
|
||||||
var isLoading = false;
|
let isLoading = false;
|
||||||
|
|
||||||
self.showFilterMenu = function () {
|
self.showFilterMenu = function () {
|
||||||
require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) {
|
import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => {
|
||||||
var filterDialog = new filterDialogFactory({
|
const filterDialog = new filterDialogFactory({
|
||||||
query: getQuery(),
|
query: getQuery(),
|
||||||
mode: 'albums',
|
mode: 'albums',
|
||||||
serverId: ApiClient.serverId()
|
serverId: ApiClient.serverId()
|
||||||
|
@ -207,17 +214,17 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
};
|
};
|
||||||
|
|
||||||
function initPage(tabContent) {
|
function initPage(tabContent) {
|
||||||
var alphaPickerElement = tabContent.querySelector('.alphaPicker');
|
const alphaPickerElement = tabContent.querySelector('.alphaPicker');
|
||||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
|
|
||||||
alphaPickerElement.addEventListener('alphavaluechanged', function (e) {
|
alphaPickerElement.addEventListener('alphavaluechanged', function (e) {
|
||||||
var newValue = e.detail.value;
|
const newValue = e.detail.value;
|
||||||
var query = getQuery();
|
const query = getQuery();
|
||||||
query.NameStartsWithOrGreater = newValue;
|
query.NameStartsWithOrGreater = newValue;
|
||||||
query.StartIndex = 0;
|
query.StartIndex = 0;
|
||||||
reloadItems(tabContent);
|
reloadItems(tabContent);
|
||||||
});
|
});
|
||||||
self.alphaPicker = new AlphaPicker.default({
|
self.alphaPicker = new AlphaPicker({
|
||||||
element: alphaPickerElement,
|
element: alphaPickerElement,
|
||||||
valueChangeEvent: 'click'
|
valueChangeEvent: 'click'
|
||||||
});
|
});
|
||||||
|
@ -261,12 +268,12 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
button: e.target
|
button: e.target
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
var btnSelectView = tabContent.querySelector('.btnSelectView');
|
const btnSelectView = tabContent.querySelector('.btnSelectView');
|
||||||
btnSelectView.addEventListener('click', function (e) {
|
btnSelectView.addEventListener('click', function (e) {
|
||||||
libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(','));
|
libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(','));
|
||||||
});
|
});
|
||||||
btnSelectView.addEventListener('layoutchange', function (e) {
|
btnSelectView.addEventListener('layoutchange', function (e) {
|
||||||
var viewStyle = e.detail.viewStyle;
|
const viewStyle = e.detail.viewStyle;
|
||||||
getPageData().view = viewStyle;
|
getPageData().view = viewStyle;
|
||||||
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
|
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
|
||||||
getQuery().StartIndex = 0;
|
getQuery().StartIndex = 0;
|
||||||
|
@ -286,5 +293,6 @@ define(['layoutManager', 'playbackManager', 'loading', 'events', 'libraryBrowser
|
||||||
};
|
};
|
||||||
|
|
||||||
self.destroy = function () {};
|
self.destroy = function () {};
|
||||||
};
|
}
|
||||||
});
|
|
||||||
|
/* eslint-enable indent */
|
||||||
|
|
|
@ -1,15 +1,22 @@
|
||||||
define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', 'alphaPicker', 'listView', 'cardBuilder', 'apphost', 'userSettings', 'emby-itemscontainer'], function (layoutManager, loading, events, libraryBrowser, imageLoader, AlphaPicker, listView, cardBuilder, appHost, userSettings) {
|
import loading from 'loading';
|
||||||
'use strict';
|
import events from 'events';
|
||||||
|
import libraryBrowser from 'libraryBrowser';
|
||||||
|
import imageLoader from 'imageLoader';
|
||||||
|
import AlphaPicker from 'alphaPicker';
|
||||||
|
import listView from 'listView';
|
||||||
|
import cardBuilder from 'cardBuilder';
|
||||||
|
import * as userSettings from 'userSettings';
|
||||||
|
import 'emby-itemscontainer';
|
||||||
|
|
||||||
libraryBrowser = libraryBrowser.default || libraryBrowser;
|
/* eslint-disable indent */
|
||||||
|
|
||||||
return function (view, params, tabContent) {
|
export default function (view, params, tabContent) {
|
||||||
function getPageData(context) {
|
function getPageData(context) {
|
||||||
var key = getSavedQueryKey(context);
|
const key = getSavedQueryKey(context);
|
||||||
var pageData = data[key];
|
let pageData = data[key];
|
||||||
|
|
||||||
if (!pageData) {
|
if (!pageData) {
|
||||||
var queryValues = {
|
const queryValues = {
|
||||||
SortBy: 'SortName',
|
SortBy: 'SortName',
|
||||||
SortOrder: 'Ascending',
|
SortOrder: 'Ascending',
|
||||||
Recursive: true,
|
Recursive: true,
|
||||||
|
@ -47,10 +54,10 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
|
||||||
}
|
}
|
||||||
|
|
||||||
function onViewStyleChange() {
|
function onViewStyleChange() {
|
||||||
var viewStyle = self.getCurrentViewStyle();
|
const viewStyle = self.getCurrentViewStyle();
|
||||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
|
|
||||||
if ('List' == viewStyle) {
|
if (viewStyle == 'List') {
|
||||||
itemsContainer.classList.add('vertical-list');
|
itemsContainer.classList.add('vertical-list');
|
||||||
itemsContainer.classList.remove('vertical-wrap');
|
itemsContainer.classList.remove('vertical-wrap');
|
||||||
} else {
|
} else {
|
||||||
|
@ -64,8 +71,8 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
isLoading = true;
|
isLoading = true;
|
||||||
var query = getQuery(page);
|
const query = getQuery(page);
|
||||||
var promise = self.mode == 'albumartists' ?
|
const promise = self.mode == 'albumartists' ?
|
||||||
ApiClient.getAlbumArtists(ApiClient.getCurrentUserId(), query) :
|
ApiClient.getAlbumArtists(ApiClient.getCurrentUserId(), query) :
|
||||||
ApiClient.getArtists(ApiClient.getCurrentUserId(), query);
|
ApiClient.getArtists(ApiClient.getCurrentUserId(), query);
|
||||||
promise.then(function (result) {
|
promise.then(function (result) {
|
||||||
|
@ -93,8 +100,8 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
|
||||||
|
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
updateFilterControls(page);
|
updateFilterControls(page);
|
||||||
var html;
|
let html;
|
||||||
var pagingHtml = libraryBrowser.getQueryPagingHtml({
|
const pagingHtml = libraryBrowser.getQueryPagingHtml({
|
||||||
startIndex: query.StartIndex,
|
startIndex: query.StartIndex,
|
||||||
limit: query.Limit,
|
limit: query.Limit,
|
||||||
totalRecordCount: result.TotalRecordCount,
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
@ -104,7 +111,7 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
|
||||||
sortButton: false,
|
sortButton: false,
|
||||||
filterButton: false
|
filterButton: false
|
||||||
});
|
});
|
||||||
var viewStyle = self.getCurrentViewStyle();
|
const viewStyle = self.getCurrentViewStyle();
|
||||||
if (viewStyle == 'List') {
|
if (viewStyle == 'List') {
|
||||||
html = listView.getListViewHtml({
|
html = listView.getListViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
|
@ -131,49 +138,47 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
|
||||||
overlayPlayButton: true
|
overlayPlayButton: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
var i;
|
let elems = tabContent.querySelectorAll('.paging');
|
||||||
var length;
|
|
||||||
var elems = tabContent.querySelectorAll('.paging');
|
|
||||||
|
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].innerHTML = pagingHtml;
|
elems[i].innerHTML = pagingHtml;
|
||||||
}
|
}
|
||||||
|
|
||||||
elems = tabContent.querySelectorAll('.btnNextPage');
|
elems = tabContent.querySelectorAll('.btnNextPage');
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].addEventListener('click', onNextPageClick);
|
elems[i].addEventListener('click', onNextPageClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
elems = tabContent.querySelectorAll('.btnPreviousPage');
|
elems = tabContent.querySelectorAll('.btnPreviousPage');
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].addEventListener('click', onPreviousPageClick);
|
elems[i].addEventListener('click', onPreviousPageClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
itemsContainer.innerHTML = html;
|
itemsContainer.innerHTML = html;
|
||||||
imageLoader.lazyChildren(itemsContainer);
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
loading.hide();
|
loading.hide();
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
|
|
||||||
require(['autoFocuser'], function (autoFocuser) {
|
import('autoFocuser').then(({default: autoFocuser}) => {
|
||||||
autoFocuser.autoFocus(tabContent);
|
autoFocuser.autoFocus(tabContent);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateFilterControls(tabContent) {
|
function updateFilterControls(tabContent) {
|
||||||
var query = getQuery(tabContent);
|
const query = getQuery(tabContent);
|
||||||
self.alphaPicker.value(query.NameStartsWithOrGreater);
|
self.alphaPicker.value(query.NameStartsWithOrGreater);
|
||||||
}
|
}
|
||||||
|
|
||||||
var self = this;
|
const self = this;
|
||||||
var data = {};
|
const data = {};
|
||||||
var isLoading = false;
|
let isLoading = false;
|
||||||
|
|
||||||
self.showFilterMenu = function () {
|
self.showFilterMenu = function () {
|
||||||
require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) {
|
import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => {
|
||||||
var filterDialog = new filterDialogFactory({
|
const filterDialog = new filterDialogFactory({
|
||||||
query: getQuery(tabContent),
|
query: getQuery(tabContent),
|
||||||
mode: self.mode,
|
mode: self.mode,
|
||||||
serverId: ApiClient.serverId()
|
serverId: ApiClient.serverId()
|
||||||
|
@ -191,17 +196,17 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
|
||||||
};
|
};
|
||||||
|
|
||||||
function initPage(tabContent) {
|
function initPage(tabContent) {
|
||||||
var alphaPickerElement = tabContent.querySelector('.alphaPicker');
|
const alphaPickerElement = tabContent.querySelector('.alphaPicker');
|
||||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
|
|
||||||
alphaPickerElement.addEventListener('alphavaluechanged', function (e) {
|
alphaPickerElement.addEventListener('alphavaluechanged', function (e) {
|
||||||
var newValue = e.detail.value;
|
const newValue = e.detail.value;
|
||||||
var query = getQuery(tabContent);
|
const query = getQuery(tabContent);
|
||||||
query.NameStartsWithOrGreater = newValue;
|
query.NameStartsWithOrGreater = newValue;
|
||||||
query.StartIndex = 0;
|
query.StartIndex = 0;
|
||||||
reloadItems(tabContent);
|
reloadItems(tabContent);
|
||||||
});
|
});
|
||||||
self.alphaPicker = new AlphaPicker.default({
|
self.alphaPicker = new AlphaPicker({
|
||||||
element: alphaPickerElement,
|
element: alphaPickerElement,
|
||||||
valueChangeEvent: 'click'
|
valueChangeEvent: 'click'
|
||||||
});
|
});
|
||||||
|
@ -213,12 +218,12 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
|
||||||
tabContent.querySelector('.btnFilter').addEventListener('click', function () {
|
tabContent.querySelector('.btnFilter').addEventListener('click', function () {
|
||||||
self.showFilterMenu();
|
self.showFilterMenu();
|
||||||
});
|
});
|
||||||
var btnSelectView = tabContent.querySelector('.btnSelectView');
|
const btnSelectView = tabContent.querySelector('.btnSelectView');
|
||||||
btnSelectView.addEventListener('click', function (e) {
|
btnSelectView.addEventListener('click', function (e) {
|
||||||
libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(','));
|
libraryBrowser.showLayoutMenu(e.target, self.getCurrentViewStyle(), 'List,Poster,PosterCard'.split(','));
|
||||||
});
|
});
|
||||||
btnSelectView.addEventListener('layoutchange', function (e) {
|
btnSelectView.addEventListener('layoutchange', function (e) {
|
||||||
var viewStyle = e.detail.viewStyle;
|
const viewStyle = e.detail.viewStyle;
|
||||||
getPageData(tabContent).view = viewStyle;
|
getPageData(tabContent).view = viewStyle;
|
||||||
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
|
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
|
||||||
getQuery(tabContent).StartIndex = 0;
|
getQuery(tabContent).StartIndex = 0;
|
||||||
|
@ -236,5 +241,6 @@ define(['layoutManager', 'loading', 'events', 'libraryBrowser', 'imageLoader', '
|
||||||
};
|
};
|
||||||
|
|
||||||
self.destroy = function () {};
|
self.destroy = function () {};
|
||||||
};
|
}
|
||||||
});
|
|
||||||
|
/* eslint-enable indent */
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], function (libraryBrowser, cardBuilder, appHost, imageLoader, loading) {
|
import libraryBrowser from 'libraryBrowser';
|
||||||
'use strict';
|
import cardBuilder from 'cardBuilder';
|
||||||
|
import imageLoader from 'imageLoader';
|
||||||
|
import loading from 'loading';
|
||||||
|
|
||||||
libraryBrowser = libraryBrowser.default || libraryBrowser;
|
/* eslint-disable indent */
|
||||||
|
|
||||||
return function (view, params, tabContent) {
|
export default function (view, params, tabContent) {
|
||||||
function getPageData() {
|
function getPageData() {
|
||||||
var key = getSavedQueryKey();
|
const key = getSavedQueryKey();
|
||||||
var pageData = data[key];
|
let pageData = data[key];
|
||||||
|
|
||||||
if (!pageData) {
|
if (!pageData) {
|
||||||
pageData = data[key] = {
|
pageData = data[key] = {
|
||||||
|
@ -36,15 +38,15 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
|
||||||
|
|
||||||
function getPromise() {
|
function getPromise() {
|
||||||
loading.show();
|
loading.show();
|
||||||
var query = getQuery();
|
const query = getQuery();
|
||||||
return ApiClient.getGenres(ApiClient.getCurrentUserId(), query);
|
return ApiClient.getGenres(ApiClient.getCurrentUserId(), query);
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadItems(context, promise) {
|
function reloadItems(context, promise) {
|
||||||
var query = getQuery();
|
const query = getQuery();
|
||||||
promise.then(function (result) {
|
promise.then(function (result) {
|
||||||
var html = '';
|
let html = '';
|
||||||
var viewStyle = self.getCurrentViewStyle();
|
const viewStyle = self.getCurrentViewStyle();
|
||||||
|
|
||||||
if (viewStyle == 'Thumb') {
|
if (viewStyle == 'Thumb') {
|
||||||
html = cardBuilder.getCardsHtml({
|
html = cardBuilder.getCardsHtml({
|
||||||
|
@ -84,13 +86,13 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var elem = context.querySelector('#items');
|
const elem = context.querySelector('#items');
|
||||||
elem.innerHTML = html;
|
elem.innerHTML = html;
|
||||||
imageLoader.lazyChildren(elem);
|
imageLoader.lazyChildren(elem);
|
||||||
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
|
||||||
require(['autoFocuser'], function (autoFocuser) {
|
import('autoFocuser').then(({default: autoFocuser}) => {
|
||||||
autoFocuser.autoFocus(context);
|
autoFocuser.autoFocus(context);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -101,8 +103,8 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
|
||||||
self.renderTab();
|
self.renderTab();
|
||||||
}
|
}
|
||||||
|
|
||||||
var self = this;
|
const self = this;
|
||||||
var data = {};
|
const data = {};
|
||||||
|
|
||||||
self.getViewStyles = function () {
|
self.getViewStyles = function () {
|
||||||
return 'Poster,PosterCard,Thumb,ThumbCard'.split(',');
|
return 'Poster,PosterCard,Thumb,ThumbCard'.split(',');
|
||||||
|
@ -119,7 +121,7 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
|
||||||
};
|
};
|
||||||
|
|
||||||
self.enableViewSelection = true;
|
self.enableViewSelection = true;
|
||||||
var promise;
|
let promise;
|
||||||
|
|
||||||
self.preRender = function () {
|
self.preRender = function () {
|
||||||
promise = getPromise();
|
promise = getPromise();
|
||||||
|
@ -128,5 +130,6 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
|
||||||
self.renderTab = function () {
|
self.renderTab = function () {
|
||||||
reloadItems(tabContent, promise);
|
reloadItems(tabContent, promise);
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
});
|
|
||||||
|
/* eslint-enable indent */
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], function (libraryBrowser, cardBuilder, appHost, imageLoader, loading) {
|
import libraryBrowser from 'libraryBrowser';
|
||||||
'use strict';
|
import cardBuilder from 'cardBuilder';
|
||||||
|
import imageLoader from 'imageLoader';
|
||||||
|
import loading from 'loading';
|
||||||
|
|
||||||
libraryBrowser = libraryBrowser.default || libraryBrowser;
|
/* eslint-disable indent */
|
||||||
|
|
||||||
return function (view, params, tabContent) {
|
export default function (view, params, tabContent) {
|
||||||
function getPageData() {
|
function getPageData() {
|
||||||
var key = getSavedQueryKey();
|
const key = getSavedQueryKey();
|
||||||
var pageData = data[key];
|
let pageData = data[key];
|
||||||
|
|
||||||
if (!pageData) {
|
if (!pageData) {
|
||||||
pageData = data[key] = {
|
pageData = data[key] = {
|
||||||
|
@ -37,14 +39,14 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
|
||||||
|
|
||||||
function getPromise() {
|
function getPromise() {
|
||||||
loading.show();
|
loading.show();
|
||||||
var query = getQuery();
|
const query = getQuery();
|
||||||
return ApiClient.getItems(ApiClient.getCurrentUserId(), query);
|
return ApiClient.getItems(ApiClient.getCurrentUserId(), query);
|
||||||
}
|
}
|
||||||
|
|
||||||
function reloadItems(context, promise) {
|
function reloadItems(context, promise) {
|
||||||
var query = getQuery();
|
const query = getQuery();
|
||||||
promise.then(function (result) {
|
promise.then(function (result) {
|
||||||
var html = '';
|
let html = '';
|
||||||
html = cardBuilder.getCardsHtml({
|
html = cardBuilder.getCardsHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
shape: 'square',
|
shape: 'square',
|
||||||
|
@ -55,26 +57,26 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
|
||||||
allowBottomPadding: true,
|
allowBottomPadding: true,
|
||||||
cardLayout: false
|
cardLayout: false
|
||||||
});
|
});
|
||||||
var elem = context.querySelector('#items');
|
const elem = context.querySelector('#items');
|
||||||
elem.innerHTML = html;
|
elem.innerHTML = html;
|
||||||
imageLoader.lazyChildren(elem);
|
imageLoader.lazyChildren(elem);
|
||||||
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
libraryBrowser.saveQueryValues(getSavedQueryKey(), query);
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
|
||||||
require(['autoFocuser'], function (autoFocuser) {
|
import('autoFocuser').then(({default: autoFocuser}) => {
|
||||||
autoFocuser.autoFocus(context);
|
autoFocuser.autoFocus(context);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var self = this;
|
const self = this;
|
||||||
var data = {};
|
const data = {};
|
||||||
|
|
||||||
self.getCurrentViewStyle = function () {
|
self.getCurrentViewStyle = function () {
|
||||||
return getPageData().view;
|
return getPageData().view;
|
||||||
};
|
};
|
||||||
|
|
||||||
var promise;
|
let promise;
|
||||||
|
|
||||||
self.preRender = function () {
|
self.preRender = function () {
|
||||||
promise = getPromise();
|
promise = getPromise();
|
||||||
|
@ -83,5 +85,6 @@ define(['libraryBrowser', 'cardBuilder', 'apphost', 'imageLoader', 'loading'], f
|
||||||
self.renderTab = function () {
|
self.renderTab = function () {
|
||||||
reloadItems(tabContent, promise);
|
reloadItems(tabContent, promise);
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
});
|
|
||||||
|
/* eslint-enable indent */
|
||||||
|
|
|
@ -1,8 +1,24 @@
|
||||||
define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', 'cardBuilder', 'dom', 'apphost', 'imageLoader', 'libraryMenu', 'playbackManager', 'mainTabsManager', 'globalize', 'scrollStyles', 'emby-itemscontainer', 'emby-tabs', 'emby-button', 'flexStyles'], function (browser, layoutManager, userSettings, inputManager, loading, cardBuilder, dom, appHost, imageLoader, libraryMenu, playbackManager, mainTabsManager, globalize) {
|
import browser from 'browser';
|
||||||
'use strict';
|
import layoutManager from 'layoutManager';
|
||||||
|
import * as userSettings from 'userSettings';
|
||||||
|
import inputManager from 'inputManager';
|
||||||
|
import loading from 'loading';
|
||||||
|
import cardBuilder from 'cardBuilder';
|
||||||
|
import dom from 'dom';
|
||||||
|
import imageLoader from 'imageLoader';
|
||||||
|
import libraryMenu from 'libraryMenu';
|
||||||
|
import * as mainTabsManager from 'mainTabsManager';
|
||||||
|
import globalize from 'globalize';
|
||||||
|
import 'scrollStyles';
|
||||||
|
import 'emby-itemscontainer';
|
||||||
|
import 'emby-tabs';
|
||||||
|
import 'emby-button';
|
||||||
|
import 'flexStyles';
|
||||||
|
|
||||||
|
/* eslint-disable indent */
|
||||||
|
|
||||||
function itemsPerRow() {
|
function itemsPerRow() {
|
||||||
var screenWidth = dom.getWindowSize().innerWidth;
|
const screenWidth = dom.getWindowSize().innerWidth;
|
||||||
|
|
||||||
if (screenWidth >= 1920) {
|
if (screenWidth >= 1920) {
|
||||||
return 9;
|
return 9;
|
||||||
|
@ -29,8 +45,8 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
|
|
||||||
function loadLatest(page, parentId) {
|
function loadLatest(page, parentId) {
|
||||||
loading.show();
|
loading.show();
|
||||||
var userId = ApiClient.getCurrentUserId();
|
const userId = ApiClient.getCurrentUserId();
|
||||||
var options = {
|
const options = {
|
||||||
IncludeItemTypes: 'Audio',
|
IncludeItemTypes: 'Audio',
|
||||||
Limit: enableScrollX() ? 3 * itemsPerRow() : 2 * itemsPerRow(),
|
Limit: enableScrollX() ? 3 * itemsPerRow() : 2 * itemsPerRow(),
|
||||||
Fields: 'PrimaryImageAspectRatio,BasicSyncInfo',
|
Fields: 'PrimaryImageAspectRatio,BasicSyncInfo',
|
||||||
|
@ -41,7 +57,6 @@ 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');
|
||||||
|
|
||||||
elem.innerHTML = cardBuilder.getCardsHtml({
|
elem.innerHTML = cardBuilder.getCardsHtml({
|
||||||
items: items,
|
items: items,
|
||||||
showUnplayedIndicator: false,
|
showUnplayedIndicator: false,
|
||||||
|
@ -59,14 +74,14 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
imageLoader.lazyChildren(elem);
|
imageLoader.lazyChildren(elem);
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
|
||||||
require(['autoFocuser'], function (autoFocuser) {
|
import('autoFocuser').then(({default: autoFocuser}) => {
|
||||||
autoFocuser.autoFocus(page);
|
autoFocuser.autoFocus(page);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadRecentlyPlayed(page, parentId) {
|
function loadRecentlyPlayed(page, parentId) {
|
||||||
var options = {
|
const options = {
|
||||||
SortBy: 'DatePlayed',
|
SortBy: 'DatePlayed',
|
||||||
SortOrder: 'Descending',
|
SortOrder: 'Descending',
|
||||||
IncludeItemTypes: 'Audio',
|
IncludeItemTypes: 'Audio',
|
||||||
|
@ -80,7 +95,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
EnableTotalRecordCount: false
|
EnableTotalRecordCount: false
|
||||||
};
|
};
|
||||||
ApiClient.getItems(ApiClient.getCurrentUserId(), options).then(function (result) {
|
ApiClient.getItems(ApiClient.getCurrentUserId(), options).then(function (result) {
|
||||||
var elem = page.querySelector('#recentlyPlayed');
|
const elem = page.querySelector('#recentlyPlayed');
|
||||||
|
|
||||||
if (result.Items.length) {
|
if (result.Items.length) {
|
||||||
elem.classList.remove('hide');
|
elem.classList.remove('hide');
|
||||||
|
@ -89,6 +104,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemsContainer = elem.querySelector('.itemsContainer');
|
var itemsContainer = elem.querySelector('.itemsContainer');
|
||||||
|
|
||||||
itemsContainer.innerHTML = cardBuilder.getCardsHtml({
|
itemsContainer.innerHTML = cardBuilder.getCardsHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
showUnplayedIndicator: false,
|
showUnplayedIndicator: false,
|
||||||
|
@ -108,7 +124,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadFrequentlyPlayed(page, parentId) {
|
function loadFrequentlyPlayed(page, parentId) {
|
||||||
var options = {
|
const options = {
|
||||||
SortBy: 'PlayCount',
|
SortBy: 'PlayCount',
|
||||||
SortOrder: 'Descending',
|
SortOrder: 'Descending',
|
||||||
IncludeItemTypes: 'Audio',
|
IncludeItemTypes: 'Audio',
|
||||||
|
@ -122,7 +138,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
EnableTotalRecordCount: false
|
EnableTotalRecordCount: false
|
||||||
};
|
};
|
||||||
ApiClient.getItems(ApiClient.getCurrentUserId(), options).then(function (result) {
|
ApiClient.getItems(ApiClient.getCurrentUserId(), options).then(function (result) {
|
||||||
var elem = page.querySelector('#topPlayed');
|
const elem = page.querySelector('#topPlayed');
|
||||||
|
|
||||||
if (result.Items.length) {
|
if (result.Items.length) {
|
||||||
elem.classList.remove('hide');
|
elem.classList.remove('hide');
|
||||||
|
@ -155,7 +171,7 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
loadRecentlyPlayed(tabContent, parentId);
|
loadRecentlyPlayed(tabContent, parentId);
|
||||||
loadFrequentlyPlayed(tabContent, parentId);
|
loadFrequentlyPlayed(tabContent, parentId);
|
||||||
|
|
||||||
require(['components/favoriteitems'], function (favoriteItems) {
|
import('components/favoriteitems').then(({default: favoriteItems}) => {
|
||||||
favoriteItems.render(tabContent, ApiClient.getCurrentUserId(), parentId, ['favoriteArtists', 'favoriteAlbums', 'favoriteSongs']);
|
favoriteItems.render(tabContent, ApiClient.getCurrentUserId(), parentId, ['favoriteArtists', 'favoriteAlbums', 'favoriteSongs']);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -206,10 +222,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return function (view, params) {
|
export default function (view, params) {
|
||||||
function reload() {
|
function reload() {
|
||||||
loading.show();
|
loading.show();
|
||||||
var tabContent = view.querySelector(".pageTabContent[data-index='0']");
|
const tabContent = view.querySelector(".pageTabContent[data-index='0']");
|
||||||
loadSuggestionsTab(view, tabContent, params.topParentId);
|
loadSuggestionsTab(view, tabContent, params.topParentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,46 +268,48 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
}
|
}
|
||||||
|
|
||||||
function getTabController(page, index, callback) {
|
function getTabController(page, index, callback) {
|
||||||
var depends = [];
|
let depends;
|
||||||
|
|
||||||
switch (index) {
|
switch (index) {
|
||||||
case 0:
|
case 0:
|
||||||
|
depends = 'controllers/music/musicrecommended';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
depends.push('controllers/music/musicalbums');
|
depends = 'controllers/music/musicalbums';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
depends.push('controllers/music/musicartists');
|
depends = 'controllers/music/musicartists';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
depends.push('controllers/music/musicplaylists');
|
depends = 'controllers/music/musicplaylists';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
depends.push('controllers/music/songs');
|
depends = 'controllers/music/songs';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
depends.push('controllers/music/musicgenres');
|
depends = 'controllers/music/musicgenres';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 7:
|
case 7:
|
||||||
depends.push('scripts/searchtab');
|
depends = 'scripts/searchtab';
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
require(depends, function (controllerFactory) {
|
import(depends).then(({default: controllerFactory}) => {
|
||||||
var tabContent;
|
let tabContent;
|
||||||
|
|
||||||
if (0 == index) {
|
if (index == 0) {
|
||||||
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
||||||
self.tabContent = tabContent;
|
self.tabContent = tabContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
var controller = tabControllers[index];
|
let controller = tabControllers[index];
|
||||||
|
|
||||||
if (!controller) {
|
if (!controller) {
|
||||||
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
tabContent = view.querySelector(".pageTabContent[data-index='" + index + "']");
|
||||||
|
@ -353,10 +371,10 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
|
var currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId));
|
||||||
|
|
||||||
self.initTab = function () {
|
self.initTab = function () {
|
||||||
var tabContent = view.querySelector(".pageTabContent[data-index='0']");
|
const tabContent = view.querySelector(".pageTabContent[data-index='0']");
|
||||||
var containers = tabContent.querySelectorAll('.itemsContainer');
|
const containers = tabContent.querySelectorAll('.itemsContainer');
|
||||||
|
|
||||||
for (var i = 0, length = containers.length; i < length; i++) {
|
for (let i = 0, length = containers.length; i < length; i++) {
|
||||||
setScrollClasses(containers[i], enableScrollX());
|
setScrollClasses(containers[i], enableScrollX());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -365,12 +383,12 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
reload();
|
reload();
|
||||||
};
|
};
|
||||||
|
|
||||||
var tabControllers = [];
|
const tabControllers = [];
|
||||||
var renderedTabs = [];
|
const renderedTabs = [];
|
||||||
view.addEventListener('viewshow', function (e) {
|
view.addEventListener('viewshow', function (e) {
|
||||||
initTabs();
|
initTabs();
|
||||||
if (!view.getAttribute('data-title')) {
|
if (!view.getAttribute('data-title')) {
|
||||||
var parentId = params.topParentId;
|
const parentId = params.topParentId;
|
||||||
|
|
||||||
if (parentId) {
|
if (parentId) {
|
||||||
ApiClient.getItem(ApiClient.getCurrentUserId(), parentId).then(function (item) {
|
ApiClient.getItem(ApiClient.getCurrentUserId(), parentId).then(function (item) {
|
||||||
|
@ -395,5 +413,6 @@ define(['browser', 'layoutManager', 'userSettings', 'inputManager', 'loading', '
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
});
|
|
||||||
|
/* eslint-enable indent */
|
||||||
|
|
|
@ -1,12 +1,18 @@
|
||||||
define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userSettings', 'globalize', 'emby-itemscontainer'], function (events, libraryBrowser, imageLoader, listView, loading, userSettings, globalize) {
|
import events from 'events';
|
||||||
'use strict';
|
import libraryBrowser from 'libraryBrowser';
|
||||||
|
import imageLoader from 'imageLoader';
|
||||||
|
import listView from 'listView';
|
||||||
|
import loading from 'loading';
|
||||||
|
import * as userSettings from 'userSettings';
|
||||||
|
import globalize from 'globalize';
|
||||||
|
import 'emby-itemscontainer';
|
||||||
|
|
||||||
libraryBrowser = libraryBrowser.default || libraryBrowser;
|
/* eslint-disable indent */
|
||||||
|
|
||||||
return function (view, params, tabContent) {
|
export default function (view, params, tabContent) {
|
||||||
function getPageData(context) {
|
function getPageData(context) {
|
||||||
var key = getSavedQueryKey(context);
|
const key = getSavedQueryKey(context);
|
||||||
var pageData = data[key];
|
let pageData = data[key];
|
||||||
|
|
||||||
if (!pageData) {
|
if (!pageData) {
|
||||||
pageData = data[key] = {
|
pageData = data[key] = {
|
||||||
|
@ -48,7 +54,7 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS
|
||||||
function reloadItems(page) {
|
function reloadItems(page) {
|
||||||
loading.show();
|
loading.show();
|
||||||
isLoading = true;
|
isLoading = true;
|
||||||
var query = getQuery(page);
|
const query = getQuery(page);
|
||||||
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
|
ApiClient.getItems(Dashboard.getCurrentUserId(), query).then(function (result) {
|
||||||
function onNextPageClick() {
|
function onNextPageClick() {
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
|
@ -73,9 +79,7 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS
|
||||||
}
|
}
|
||||||
|
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
var i;
|
const pagingHtml = libraryBrowser.getQueryPagingHtml({
|
||||||
var length;
|
|
||||||
var pagingHtml = libraryBrowser.getQueryPagingHtml({
|
|
||||||
startIndex: query.StartIndex,
|
startIndex: query.StartIndex,
|
||||||
limit: query.Limit,
|
limit: query.Limit,
|
||||||
totalRecordCount: result.TotalRecordCount,
|
totalRecordCount: result.TotalRecordCount,
|
||||||
|
@ -85,49 +89,49 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS
|
||||||
sortButton: false,
|
sortButton: false,
|
||||||
filterButton: false
|
filterButton: false
|
||||||
});
|
});
|
||||||
var html = listView.getListViewHtml({
|
const html = listView.getListViewHtml({
|
||||||
items: result.Items,
|
items: result.Items,
|
||||||
action: 'playallfromhere',
|
action: 'playallfromhere',
|
||||||
smallIcon: true,
|
smallIcon: true,
|
||||||
artist: true,
|
artist: true,
|
||||||
addToListButton: true
|
addToListButton: true
|
||||||
});
|
});
|
||||||
var elems = tabContent.querySelectorAll('.paging');
|
let elems = tabContent.querySelectorAll('.paging');
|
||||||
|
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].innerHTML = pagingHtml;
|
elems[i].innerHTML = pagingHtml;
|
||||||
}
|
}
|
||||||
|
|
||||||
elems = tabContent.querySelectorAll('.btnNextPage');
|
elems = tabContent.querySelectorAll('.btnNextPage');
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].addEventListener('click', onNextPageClick);
|
elems[i].addEventListener('click', onNextPageClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
elems = tabContent.querySelectorAll('.btnPreviousPage');
|
elems = tabContent.querySelectorAll('.btnPreviousPage');
|
||||||
for (i = 0, length = elems.length; i < length; i++) {
|
for (let i = 0, length = elems.length; i < length; i++) {
|
||||||
elems[i].addEventListener('click', onPreviousPageClick);
|
elems[i].addEventListener('click', onPreviousPageClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
var itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
itemsContainer.innerHTML = html;
|
itemsContainer.innerHTML = html;
|
||||||
imageLoader.lazyChildren(itemsContainer);
|
imageLoader.lazyChildren(itemsContainer);
|
||||||
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
libraryBrowser.saveQueryValues(getSavedQueryKey(page), query);
|
||||||
loading.hide();
|
loading.hide();
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
|
|
||||||
require(['autoFocuser'], function (autoFocuser) {
|
import('autoFocuser').then(({default: autoFocuser}) => {
|
||||||
autoFocuser.autoFocus(page);
|
autoFocuser.autoFocus(page);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var self = this;
|
const self = this;
|
||||||
var data = {};
|
const data = {};
|
||||||
var isLoading = false;
|
let isLoading = false;
|
||||||
|
|
||||||
self.showFilterMenu = function () {
|
self.showFilterMenu = function () {
|
||||||
require(['components/filterdialog/filterdialog'], function ({default: filterDialogFactory}) {
|
import('components/filterdialog/filterdialog').then(({default: filterDialogFactory}) => {
|
||||||
var filterDialog = new filterDialogFactory({
|
const filterDialog = new filterDialogFactory({
|
||||||
query: getQuery(tabContent),
|
query: getQuery(tabContent),
|
||||||
mode: 'songs',
|
mode: 'songs',
|
||||||
serverId: ApiClient.serverId()
|
serverId: ApiClient.serverId()
|
||||||
|
@ -195,5 +199,6 @@ define(['events', 'libraryBrowser', 'imageLoader', 'listView', 'loading', 'userS
|
||||||
};
|
};
|
||||||
|
|
||||||
self.destroy = function () {};
|
self.destroy = function () {};
|
||||||
};
|
}
|
||||||
});
|
|
||||||
|
/* eslint-enable indent */
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<span class="xlargePaperIconButton material-icons fiber_manual_record"></span>
|
<span class="xlargePaperIconButton material-icons fiber_manual_record"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button is="paper-icon-button-light" class="btnPreviousTrack autoSize hide">
|
<button is="paper-icon-button-light" class="btnPreviousTrack autoSize hide" title="${PreviousTrack}">
|
||||||
<span class="xlargePaperIconButton material-icons skip_previous"></span>
|
<span class="xlargePaperIconButton material-icons skip_previous"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
<span class="xlargePaperIconButton material-icons fast_forward"></span>
|
<span class="xlargePaperIconButton material-icons fast_forward"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<button is="paper-icon-button-light" class="btnNextTrack autoSize hide">
|
<button is="paper-icon-button-light" class="btnNextTrack autoSize hide" title="${NextTrack}">
|
||||||
<span class="xlargePaperIconButton material-icons skip_next"></span>
|
<span class="xlargePaperIconButton material-icons skip_next"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import playbackManager from 'playbackManager';
|
import playbackManager from 'playbackManager';
|
||||||
import dom from 'dom';
|
import dom from 'dom';
|
||||||
import inputManager from 'inputManager';
|
import inputManager from 'inputManager';
|
||||||
|
import mouseManager from 'mouseManager';
|
||||||
import datetime from 'datetime';
|
import datetime from 'datetime';
|
||||||
import itemHelper from 'itemHelper';
|
import itemHelper from 'itemHelper';
|
||||||
import mediaInfo from 'mediaInfo';
|
import mediaInfo from 'mediaInfo';
|
||||||
|
@ -21,18 +22,18 @@ import 'css!assets/css/videoosd';
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
||||||
function seriesImageUrl(item, options) {
|
function seriesImageUrl(item, options) {
|
||||||
if ('Episode' !== item.Type) {
|
if (item.Type !== 'Episode') {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
options.type = options.type || 'Primary';
|
options.type = options.type || 'Primary';
|
||||||
if ('Primary' === options.type && item.SeriesPrimaryImageTag) {
|
if (options.type === 'Primary' && item.SeriesPrimaryImageTag) {
|
||||||
options.tag = item.SeriesPrimaryImageTag;
|
options.tag = item.SeriesPrimaryImageTag;
|
||||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Thumb' === options.type) {
|
if (options.type === 'Thumb') {
|
||||||
if (item.SeriesThumbImageTag) {
|
if (item.SeriesThumbImageTag) {
|
||||||
options.tag = item.SeriesThumbImageTag;
|
options.tag = item.SeriesThumbImageTag;
|
||||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.SeriesId, options);
|
||||||
|
@ -56,7 +57,7 @@ import 'css!assets/css/videoosd';
|
||||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.PrimaryImageItemId || item.Id, options);
|
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.PrimaryImageItemId || item.Id, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Primary' === options.type && item.AlbumId && item.AlbumPrimaryImageTag) {
|
if (options.type === 'Primary' && item.AlbumId && item.AlbumPrimaryImageTag) {
|
||||||
options.tag = item.AlbumPrimaryImageTag;
|
options.tag = item.AlbumPrimaryImageTag;
|
||||||
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId, options);
|
return connectionManager.getApiClient(item.ServerId).getScaledImageUrl(item.AlbumId, options);
|
||||||
}
|
}
|
||||||
|
@ -103,7 +104,7 @@ import 'css!assets/css/videoosd';
|
||||||
function onDoubleClick(e) {
|
function onDoubleClick(e) {
|
||||||
const clientX = e.clientX;
|
const clientX = e.clientX;
|
||||||
|
|
||||||
if (null != clientX) {
|
if (clientX != null) {
|
||||||
if (clientX < dom.getWindowSize().innerWidth / 2) {
|
if (clientX < dom.getWindowSize().innerWidth / 2) {
|
||||||
playbackManager.rewind(currentPlayer);
|
playbackManager.rewind(currentPlayer);
|
||||||
} else {
|
} else {
|
||||||
|
@ -116,7 +117,7 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDisplayItem(item) {
|
function getDisplayItem(item) {
|
||||||
if ('TvChannel' === item.Type) {
|
if (item.Type === 'TvChannel') {
|
||||||
const apiClient = connectionManager.getApiClient(item.ServerId);
|
const apiClient = connectionManager.getApiClient(item.ServerId);
|
||||||
return apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (refreshedItem) {
|
return apiClient.getItem(apiClient.getCurrentUserId(), item.Id).then(function (refreshedItem) {
|
||||||
return {
|
return {
|
||||||
|
@ -132,7 +133,7 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateRecordingButton(item) {
|
function updateRecordingButton(item) {
|
||||||
if (!item || 'Program' !== item.Type) {
|
if (!item || item.Type !== 'Program') {
|
||||||
if (recordingButtonManager) {
|
if (recordingButtonManager) {
|
||||||
recordingButtonManager.destroy();
|
recordingButtonManager.destroy();
|
||||||
recordingButtonManager = null;
|
recordingButtonManager = null;
|
||||||
|
@ -175,8 +176,8 @@ import 'css!assets/css/videoosd';
|
||||||
const osdTitle = view.querySelector('.osdTitle');
|
const osdTitle = view.querySelector('.osdTitle');
|
||||||
titleElement = osdTitle;
|
titleElement = osdTitle;
|
||||||
let displayName = itemHelper.getDisplayName(displayItem, {
|
let displayName = itemHelper.getDisplayName(displayItem, {
|
||||||
includeParentInfo: 'Program' !== displayItem.Type,
|
includeParentInfo: displayItem.Type !== 'Program',
|
||||||
includeIndexNumber: 'Program' !== displayItem.Type
|
includeIndexNumber: displayItem.Type !== 'Program'
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!displayName) {
|
if (!displayName) {
|
||||||
|
@ -197,8 +198,8 @@ import 'css!assets/css/videoosd';
|
||||||
tomatoes: false,
|
tomatoes: false,
|
||||||
endsAt: false,
|
endsAt: false,
|
||||||
episodeTitle: false,
|
episodeTitle: false,
|
||||||
originalAirDate: 'Program' !== displayItem.Type,
|
originalAirDate: displayItem.Type !== 'Program',
|
||||||
episodeTitleIndexNumber: 'Program' !== displayItem.Type,
|
episodeTitleIndexNumber: displayItem.Type !== 'Program',
|
||||||
programIndicator: false
|
programIndicator: false
|
||||||
});
|
});
|
||||||
const osdMediaInfo = view.querySelector('.osdMediaInfo');
|
const osdMediaInfo = view.querySelector('.osdMediaInfo');
|
||||||
|
@ -270,7 +271,7 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function shouldEnableProgressByTimeOfDay(item) {
|
function shouldEnableProgressByTimeOfDay(item) {
|
||||||
return !('TvChannel' !== item.Type || !item.CurrentProgram);
|
return !(item.Type !== 'TvChannel' || !item.CurrentProgram);
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateNowPlayingInfo(player, state) {
|
function updateNowPlayingInfo(player, state) {
|
||||||
|
@ -367,10 +368,11 @@ import 'css!assets/css/videoosd';
|
||||||
function hideOsd() {
|
function hideOsd() {
|
||||||
slideUpToHide(headerElement);
|
slideUpToHide(headerElement);
|
||||||
hideMainOsdControls();
|
hideMainOsdControls();
|
||||||
|
mouseManager.hideCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggleOsd() {
|
function toggleOsd() {
|
||||||
if ('osd' === currentVisibleMenu) {
|
if (currentVisibleMenu === 'osd') {
|
||||||
hideOsd();
|
hideOsd();
|
||||||
} else if (!currentVisibleMenu) {
|
} else if (!currentVisibleMenu) {
|
||||||
showOsd();
|
showOsd();
|
||||||
|
@ -431,10 +433,11 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function hideMainOsdControls() {
|
function hideMainOsdControls() {
|
||||||
if ('osd' === currentVisibleMenu) {
|
if (currentVisibleMenu === 'osd') {
|
||||||
const elem = osdBottomElement;
|
const elem = osdBottomElement;
|
||||||
clearHideAnimationEventListeners(elem);
|
clearHideAnimationEventListeners(elem);
|
||||||
elem.classList.add('videoOsdBottom-hidden');
|
elem.classList.add('videoOsdBottom-hidden');
|
||||||
|
|
||||||
dom.addEventListener(elem, transitionEndEventName, onHideAnimationComplete, {
|
dom.addEventListener(elem, transitionEndEventName, onHideAnimationComplete, {
|
||||||
once: true
|
once: true
|
||||||
});
|
});
|
||||||
|
@ -460,7 +463,7 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPointerMove(e) {
|
function onPointerMove(e) {
|
||||||
if ('mouse' === (e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse'))) {
|
if ((e.pointerType || (layoutManager.mobile ? 'touch' : 'mouse')) === 'mouse') {
|
||||||
const eventX = e.screenX || 0;
|
const eventX = e.screenX || 0;
|
||||||
const eventY = e.screenY || 0;
|
const eventY = e.screenY || 0;
|
||||||
const obj = lastPointerMoveData;
|
const obj = lastPointerMoveData;
|
||||||
|
@ -488,7 +491,7 @@ import 'css!assets/css/videoosd';
|
||||||
|
|
||||||
switch (e.detail.command) {
|
switch (e.detail.command) {
|
||||||
case 'left':
|
case 'left':
|
||||||
if ('osd' === currentVisibleMenu) {
|
if (currentVisibleMenu === 'osd') {
|
||||||
showOsd();
|
showOsd();
|
||||||
} else {
|
} else {
|
||||||
if (!currentVisibleMenu) {
|
if (!currentVisibleMenu) {
|
||||||
|
@ -500,7 +503,7 @@ import 'css!assets/css/videoosd';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'right':
|
case 'right':
|
||||||
if ('osd' === currentVisibleMenu) {
|
if (currentVisibleMenu === 'osd') {
|
||||||
showOsd();
|
showOsd();
|
||||||
} else if (!currentVisibleMenu) {
|
} else if (!currentVisibleMenu) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
@ -615,7 +618,7 @@ import 'css!assets/css/videoosd';
|
||||||
resetUpNextDialog();
|
resetUpNextDialog();
|
||||||
console.debug('nowplaying event: ' + e.type);
|
console.debug('nowplaying event: ' + e.type);
|
||||||
|
|
||||||
if ('Video' !== state.NextMediaType) {
|
if (state.NextMediaType !== 'Video') {
|
||||||
view.removeEventListener('viewbeforehide', onViewHideStopPlayback);
|
view.removeEventListener('viewbeforehide', onViewHideStopPlayback);
|
||||||
Emby.Page.back();
|
Emby.Page.back();
|
||||||
}
|
}
|
||||||
|
@ -702,7 +705,7 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function showComingUpNextIfNeeded(player, currentItem, currentTimeTicks, runtimeTicks) {
|
function showComingUpNextIfNeeded(player, currentItem, currentTimeTicks, runtimeTicks) {
|
||||||
if (runtimeTicks && currentTimeTicks && !comingUpNextDisplayed && !currentVisibleMenu && 'Episode' === currentItem.Type && userSettings.enableNextVideoInfoOverlay()) {
|
if (runtimeTicks && currentTimeTicks && !comingUpNextDisplayed && !currentVisibleMenu && currentItem.Type === 'Episode' && userSettings.enableNextVideoInfoOverlay()) {
|
||||||
const showAtSecondsLeft = runtimeTicks >= 3e10 ? 40 : runtimeTicks >= 24e9 ? 35 : 30;
|
const showAtSecondsLeft = runtimeTicks >= 3e10 ? 40 : runtimeTicks >= 24e9 ? 35 : 30;
|
||||||
const showAtTicks = runtimeTicks - 1e3 * showAtSecondsLeft * 1e4;
|
const showAtTicks = runtimeTicks - 1e3 * showAtSecondsLeft * 1e4;
|
||||||
const timeRemainingTicks = runtimeTicks - currentTimeTicks;
|
const timeRemainingTicks = runtimeTicks - currentTimeTicks;
|
||||||
|
@ -714,7 +717,7 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function onUpNextHidden() {
|
function onUpNextHidden() {
|
||||||
if ('upnext' === currentVisibleMenu) {
|
if (currentVisibleMenu === 'upnext') {
|
||||||
currentVisibleMenu = null;
|
currentVisibleMenu = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -737,7 +740,7 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshProgramInfoIfNeeded(player, item) {
|
function refreshProgramInfoIfNeeded(player, item) {
|
||||||
if ('TvChannel' === item.Type) {
|
if (item.Type === 'TvChannel') {
|
||||||
const program = item.CurrentProgram;
|
const program = item.CurrentProgram;
|
||||||
|
|
||||||
if (program && program.EndDate) {
|
if (program && program.EndDate) {
|
||||||
|
@ -778,7 +781,7 @@ import 'css!assets/css/videoosd';
|
||||||
updatePlayPauseState(playState.IsPaused);
|
updatePlayPauseState(playState.IsPaused);
|
||||||
const supportedCommands = playbackManager.getSupportedCommands(player);
|
const supportedCommands = playbackManager.getSupportedCommands(player);
|
||||||
currentPlayerSupportedCommands = supportedCommands;
|
currentPlayerSupportedCommands = supportedCommands;
|
||||||
supportsBrightnessChange = -1 !== supportedCommands.indexOf('SetBrightness');
|
supportsBrightnessChange = supportedCommands.indexOf('SetBrightness') !== -1;
|
||||||
updatePlayerVolumeState(player, playState.IsMuted, playState.VolumeLevel);
|
updatePlayerVolumeState(player, playState.IsMuted, playState.VolumeLevel);
|
||||||
|
|
||||||
if (nowPlayingPositionSlider && !nowPlayingPositionSlider.dragging) {
|
if (nowPlayingPositionSlider && !nowPlayingPositionSlider.dragging) {
|
||||||
|
@ -792,13 +795,13 @@ import 'css!assets/css/videoosd';
|
||||||
updateTimeDisplay(playState.PositionTicks, nowPlayingItem.RunTimeTicks, playState.PlaybackStartTimeTicks, playState.BufferedRanges || []);
|
updateTimeDisplay(playState.PositionTicks, nowPlayingItem.RunTimeTicks, playState.PlaybackStartTimeTicks, playState.BufferedRanges || []);
|
||||||
updateNowPlayingInfo(player, state);
|
updateNowPlayingInfo(player, state);
|
||||||
|
|
||||||
if (state.MediaSource && state.MediaSource.SupportsTranscoding && -1 !== supportedCommands.indexOf('SetMaxStreamingBitrate')) {
|
if (state.MediaSource && state.MediaSource.SupportsTranscoding && supportedCommands.indexOf('SetMaxStreamingBitrate') !== -1) {
|
||||||
view.querySelector('.btnVideoOsdSettings').classList.remove('hide');
|
view.querySelector('.btnVideoOsdSettings').classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
view.querySelector('.btnVideoOsdSettings').classList.add('hide');
|
view.querySelector('.btnVideoOsdSettings').classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
const isProgressClear = state.MediaSource && null == state.MediaSource.RunTimeTicks;
|
const isProgressClear = state.MediaSource && state.MediaSource.RunTimeTicks == null;
|
||||||
nowPlayingPositionSlider.setIsClear(isProgressClear);
|
nowPlayingPositionSlider.setIsClear(isProgressClear);
|
||||||
|
|
||||||
if (nowPlayingItem.RunTimeTicks) {
|
if (nowPlayingItem.RunTimeTicks) {
|
||||||
|
@ -806,19 +809,19 @@ import 'css!assets/css/videoosd';
|
||||||
userSettings.skipForwardLength() * 1000000 / nowPlayingItem.RunTimeTicks);
|
userSettings.skipForwardLength() * 1000000 / nowPlayingItem.RunTimeTicks);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (-1 === supportedCommands.indexOf('ToggleFullscreen') || player.isLocalPlayer && layoutManager.tv && playbackManager.isFullscreen(player)) {
|
if (supportedCommands.indexOf('ToggleFullscreen') === -1 || player.isLocalPlayer && layoutManager.tv && playbackManager.isFullscreen(player)) {
|
||||||
view.querySelector('.btnFullscreen').classList.add('hide');
|
view.querySelector('.btnFullscreen').classList.add('hide');
|
||||||
} else {
|
} else {
|
||||||
view.querySelector('.btnFullscreen').classList.remove('hide');
|
view.querySelector('.btnFullscreen').classList.remove('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (-1 === supportedCommands.indexOf('PictureInPicture')) {
|
if (supportedCommands.indexOf('PictureInPicture') === -1) {
|
||||||
view.querySelector('.btnPip').classList.add('hide');
|
view.querySelector('.btnPip').classList.add('hide');
|
||||||
} else {
|
} else {
|
||||||
view.querySelector('.btnPip').classList.remove('hide');
|
view.querySelector('.btnPip').classList.remove('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (-1 === supportedCommands.indexOf('AirPlay')) {
|
if (supportedCommands.indexOf('AirPlay') === -1) {
|
||||||
view.querySelector('.btnAirPlay').classList.add('hide');
|
view.querySelector('.btnAirPlay').classList.add('hide');
|
||||||
} else {
|
} else {
|
||||||
view.querySelector('.btnAirPlay').classList.remove('hide');
|
view.querySelector('.btnAirPlay').classList.remove('hide');
|
||||||
|
@ -866,7 +869,7 @@ import 'css!assets/css/videoosd';
|
||||||
nowPlayingPositionSlider.value = 0;
|
nowPlayingPositionSlider.value = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runtimeTicks && null != positionTicks && currentRuntimeTicks && !enableProgressByTimeOfDay && currentItem.RunTimeTicks && 'Recording' !== currentItem.Type) {
|
if (runtimeTicks && positionTicks != null && currentRuntimeTicks && !enableProgressByTimeOfDay && currentItem.RunTimeTicks && currentItem.Type !== 'Recording') {
|
||||||
endsAtText.innerHTML = ' - ' + mediaInfo.getEndsAtFromPosition(runtimeTicks, positionTicks, true);
|
endsAtText.innerHTML = ' - ' + mediaInfo.getEndsAtFromPosition(runtimeTicks, positionTicks, true);
|
||||||
} else {
|
} else {
|
||||||
endsAtText.innerHTML = '';
|
endsAtText.innerHTML = '';
|
||||||
|
@ -887,11 +890,11 @@ import 'css!assets/css/videoosd';
|
||||||
let showMuteButton = true;
|
let showMuteButton = true;
|
||||||
let showVolumeSlider = true;
|
let showVolumeSlider = true;
|
||||||
|
|
||||||
if (-1 === supportedCommands.indexOf('Mute')) {
|
if (supportedCommands.indexOf('Mute') === -1) {
|
||||||
showMuteButton = false;
|
showMuteButton = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (-1 === supportedCommands.indexOf('SetVolume')) {
|
if (supportedCommands.indexOf('SetVolume') === -1) {
|
||||||
showVolumeSlider = false;
|
showVolumeSlider = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -942,7 +945,7 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateTimeText(elem, ticks, divider) {
|
function updateTimeText(elem, ticks, divider) {
|
||||||
if (null == ticks) {
|
if (ticks == null) {
|
||||||
elem.innerHTML = '';
|
elem.innerHTML = '';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -984,9 +987,9 @@ import 'css!assets/css/videoosd';
|
||||||
}
|
}
|
||||||
|
|
||||||
function onSettingsOption(selectedOption) {
|
function onSettingsOption(selectedOption) {
|
||||||
if ('stats' === selectedOption) {
|
if (selectedOption === 'stats') {
|
||||||
toggleStats();
|
toggleStats();
|
||||||
} else if ('suboffset' === selectedOption) {
|
} else if (selectedOption === 'suboffset') {
|
||||||
const player = currentPlayer;
|
const player = currentPlayer;
|
||||||
if (player) {
|
if (player) {
|
||||||
playbackManager.enableShowingSubtitleOffset(player);
|
playbackManager.enableShowingSubtitleOffset(player);
|
||||||
|
@ -1060,7 +1063,7 @@ import 'css!assets/css/videoosd';
|
||||||
const streams = playbackManager.subtitleTracks(player);
|
const streams = playbackManager.subtitleTracks(player);
|
||||||
let currentIndex = playbackManager.getSubtitleStreamIndex(player);
|
let currentIndex = playbackManager.getSubtitleStreamIndex(player);
|
||||||
|
|
||||||
if (null == currentIndex) {
|
if (currentIndex == null) {
|
||||||
currentIndex = -1;
|
currentIndex = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1131,8 +1134,9 @@ import 'css!assets/css/videoosd';
|
||||||
clickedElement = e.target;
|
clickedElement = e.target;
|
||||||
|
|
||||||
const key = keyboardnavigation.getKeyName(e);
|
const key = keyboardnavigation.getKeyName(e);
|
||||||
|
const isKeyModified = e.ctrlKey || e.altKey || e.metaKey;
|
||||||
|
|
||||||
if (!currentVisibleMenu && 32 === e.keyCode) {
|
if (!currentVisibleMenu && e.keyCode === 32) {
|
||||||
playbackManager.playPause(currentPlayer);
|
playbackManager.playPause(currentPlayer);
|
||||||
showOsd();
|
showOsd();
|
||||||
return;
|
return;
|
||||||
|
@ -1235,8 +1239,10 @@ import 'css!assets/css/videoosd';
|
||||||
case '7':
|
case '7':
|
||||||
case '8':
|
case '8':
|
||||||
case '9': {
|
case '9': {
|
||||||
const percent = parseInt(key, 10) * 10;
|
if (!isKeyModified) {
|
||||||
playbackManager.seekPercent(percent, currentPlayer);
|
const percent = parseInt(key, 10) * 10;
|
||||||
|
playbackManager.seekPercent(percent, currentPlayer);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,21 +3,21 @@ import globalize from 'globalize';
|
||||||
/* eslint-disable indent */
|
/* eslint-disable indent */
|
||||||
|
|
||||||
function processForgotPasswordResult(result) {
|
function processForgotPasswordResult(result) {
|
||||||
if ('ContactAdmin' == result.Action) {
|
if (result.Action == 'ContactAdmin') {
|
||||||
return void Dashboard.alert({
|
return void Dashboard.alert({
|
||||||
message: globalize.translate('MessageContactAdminToResetPassword'),
|
message: globalize.translate('MessageContactAdminToResetPassword'),
|
||||||
title: globalize.translate('HeaderForgotPassword')
|
title: globalize.translate('HeaderForgotPassword')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('InNetworkRequired' == result.Action) {
|
if (result.Action == 'InNetworkRequired') {
|
||||||
return void Dashboard.alert({
|
return void Dashboard.alert({
|
||||||
message: globalize.translate('MessageForgotPasswordInNetworkRequired'),
|
message: globalize.translate('MessageForgotPasswordInNetworkRequired'),
|
||||||
title: globalize.translate('HeaderForgotPassword')
|
title: globalize.translate('HeaderForgotPassword')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('PinCode' == result.Action) {
|
if (result.Action == 'PinCode') {
|
||||||
let msg = globalize.translate('MessageForgotPasswordFileCreated');
|
let msg = globalize.translate('MessageForgotPasswordFileCreated');
|
||||||
msg += '<br/>';
|
msg += '<br/>';
|
||||||
msg += '<br/>';
|
msg += '<br/>';
|
||||||
|
|
|
@ -58,7 +58,7 @@ import 'emby-itemscontainer';
|
||||||
const viewStyle = self.getCurrentViewStyle();
|
const viewStyle = self.getCurrentViewStyle();
|
||||||
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
|
|
||||||
if ('List' == viewStyle) {
|
if (viewStyle == 'List') {
|
||||||
itemsContainer.classList.add('vertical-list');
|
itemsContainer.classList.add('vertical-list');
|
||||||
itemsContainer.classList.remove('vertical-wrap');
|
itemsContainer.classList.remove('vertical-wrap');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -62,13 +62,13 @@ import 'emby-button';
|
||||||
const elem = entry.target;
|
const elem = entry.target;
|
||||||
const id = elem.getAttribute('data-id');
|
const id = elem.getAttribute('data-id');
|
||||||
const viewStyle = self.getCurrentViewStyle();
|
const viewStyle = self.getCurrentViewStyle();
|
||||||
let limit = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 5 : 9;
|
let limit = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 5 : 9;
|
||||||
|
|
||||||
if (enableScrollX()) {
|
if (enableScrollX()) {
|
||||||
limit = 10;
|
limit = 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
const enableImageTypes = 'Thumb' == viewStyle || 'ThumbCard' == viewStyle ? 'Primary,Backdrop,Thumb' : 'Primary';
|
const enableImageTypes = viewStyle == 'Thumb' || viewStyle == 'ThumbCard' ? 'Primary,Backdrop,Thumb' : 'Primary';
|
||||||
const query = {
|
const query = {
|
||||||
SortBy: 'SortName',
|
SortBy: 'SortName',
|
||||||
SortOrder: 'Ascending',
|
SortOrder: 'Ascending',
|
||||||
|
|
|
@ -58,7 +58,7 @@ import 'emby-itemscontainer';
|
||||||
const viewStyle = self.getCurrentViewStyle();
|
const viewStyle = self.getCurrentViewStyle();
|
||||||
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
const itemsContainer = tabContent.querySelector('.itemsContainer');
|
||||||
|
|
||||||
if ('List' == viewStyle) {
|
if (viewStyle == 'List') {
|
||||||
itemsContainer.classList.add('vertical-list');
|
itemsContainer.classList.add('vertical-list');
|
||||||
itemsContainer.classList.remove('vertical-wrap');
|
itemsContainer.classList.remove('vertical-wrap');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -129,7 +129,7 @@
|
||||||
animation: fadein 0.5s;
|
animation: fadein 0.5s;
|
||||||
width: 30%;
|
width: 30%;
|
||||||
height: 30%;
|
height: 30%;
|
||||||
background-image: url(assets/img/banner-light.png);
|
background-image: url(assets/img/icon-transparent.png);
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
|
@ -139,6 +139,14 @@
|
||||||
-webkit-transform: translate(-50%, -50%);
|
-webkit-transform: translate(-50%, -50%);
|
||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media screen
|
||||||
|
and (min-device-width: 992px)
|
||||||
|
and (-webkit-min-device-pixel-ratio: 1) {
|
||||||
|
.splashLogo {
|
||||||
|
background-image: url(assets/img/banner-light.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -183,11 +183,9 @@
|
||||||
width = height * (16.0 / 9.0);
|
width = height * (16.0 / 9.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
const closest = standardWidths.sort(function (a, b) {
|
return standardWidths.sort(function (a, b) {
|
||||||
return Math.abs(width - a) - Math.abs(width - b);
|
return Math.abs(width - a) - Math.abs(width - b);
|
||||||
})[0];
|
})[0];
|
||||||
|
|
||||||
return closest;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -11,7 +11,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.ProgramCount && 'Person' == item.Type) {
|
if (item.ProgramCount && item.Type == 'Person') {
|
||||||
sections.push({
|
sections.push({
|
||||||
name: globalize.translate('HeaderUpcomingOnTV'),
|
name: globalize.translate('HeaderUpcomingOnTV'),
|
||||||
type: 'Program'
|
type: 'Program'
|
||||||
|
@ -65,7 +65,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
var html = '';
|
var html = '';
|
||||||
var sectionClass = 'verticalSection';
|
var sectionClass = 'verticalSection';
|
||||||
|
|
||||||
if ('Audio' === section.type) {
|
if (section.type === 'Audio') {
|
||||||
sectionClass += ' verticalSection-extrabottompadding';
|
sectionClass += ' verticalSection-extrabottompadding';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
listOptions.items = result.Items;
|
listOptions.items = result.Items;
|
||||||
var itemsContainer = element.querySelector('.itemsContainer');
|
var itemsContainer = element.querySelector('.itemsContainer');
|
||||||
|
|
||||||
if ('Audio' == type) {
|
if (type == 'Audio') {
|
||||||
html = listView.getListViewHtml(listOptions);
|
html = listView.getListViewHtml(listOptions);
|
||||||
itemsContainer.classList.remove('vertical-wrap');
|
itemsContainer.classList.remove('vertical-wrap');
|
||||||
itemsContainer.classList.add('vertical-list');
|
itemsContainer.classList.add('vertical-list');
|
||||||
|
@ -288,23 +288,23 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMoreItemsHref(item, type) {
|
function getMoreItemsHref(item, type) {
|
||||||
if ('Genre' == item.Type) {
|
if (item.Type == 'Genre') {
|
||||||
return 'list.html?type=' + type + '&genreId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&genreId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicGenre' == item.Type) {
|
if (item.Type == 'MusicGenre') {
|
||||||
return 'list.html?type=' + type + '&musicGenreId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&musicGenreId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Studio' == item.Type) {
|
if (item.Type == 'Studio') {
|
||||||
return 'list.html?type=' + type + '&studioId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&studioId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicArtist' == item.Type) {
|
if (item.Type == 'MusicArtist') {
|
||||||
return 'list.html?type=' + type + '&artistId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&artistId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Person' == item.Type) {
|
if (item.Type == 'Person') {
|
||||||
return 'list.html?type=' + type + '&personId=' + item.Id + '&serverId=' + item.ServerId;
|
return 'list.html?type=' + type + '&personId=' + item.Id + '&serverId=' + item.ServerId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -354,7 +354,7 @@ define(['connectionManager', 'listView', 'cardBuilder', 'imageLoader', 'libraryB
|
||||||
|
|
||||||
var apiClient = connectionManager.getApiClient(item.ServerId);
|
var apiClient = connectionManager.getApiClient(item.ServerId);
|
||||||
|
|
||||||
if ('MusicArtist' === query.IncludeItemTypes) {
|
if (query.IncludeItemTypes === 'MusicArtist') {
|
||||||
query.IncludeItemTypes = null;
|
query.IncludeItemTypes = null;
|
||||||
return apiClient.getAlbumArtists(apiClient.getCurrentUserId(), query);
|
return apiClient.getAlbumArtists(apiClient.getCurrentUserId(), query);
|
||||||
}
|
}
|
||||||
|
|
|
@ -178,9 +178,9 @@ export function showSortMenu (options) {
|
||||||
html += globalize.translate('HeaderSortOrder');
|
html += globalize.translate('HeaderSortOrder');
|
||||||
html += '</h2>';
|
html += '</h2>';
|
||||||
html += '<div>';
|
html += '<div>';
|
||||||
isChecked = 'Ascending' == options.query.SortOrder ? ' checked' : '';
|
isChecked = options.query.SortOrder == 'Ascending' ? ' checked' : '';
|
||||||
html += '<label class="radio-label-block"><input type="radio" is="emby-radio" name="SortOrder" value="Ascending" class="menuSortOrder" ' + isChecked + ' /><span>' + globalize.translate('OptionAscending') + '</span></label>';
|
html += '<label class="radio-label-block"><input type="radio" is="emby-radio" name="SortOrder" value="Ascending" class="menuSortOrder" ' + isChecked + ' /><span>' + globalize.translate('OptionAscending') + '</span></label>';
|
||||||
isChecked = 'Descending' == options.query.SortOrder ? ' checked' : '';
|
isChecked = options.query.SortOrder == 'Descending' ? ' checked' : '';
|
||||||
html += '<label class="radio-label-block"><input type="radio" is="emby-radio" name="SortOrder" value="Descending" class="menuSortOrder" ' + isChecked + ' /><span>' + globalize.translate('OptionDescending') + '</span></label>';
|
html += '<label class="radio-label-block"><input type="radio" is="emby-radio" name="SortOrder" value="Descending" class="menuSortOrder" ' + isChecked + ' /><span>' + globalize.translate('OptionDescending') + '</span></label>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
|
@ -309,7 +309,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
}
|
}
|
||||||
|
|
||||||
function isUrlInCurrentView(url) {
|
function isUrlInCurrentView(url) {
|
||||||
return -1 !== window.location.href.toString().toLowerCase().indexOf(url.toLowerCase());
|
return window.location.href.toString().toLowerCase().indexOf(url.toLowerCase()) !== -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateDashboardMenuSelectedItem() {
|
function updateDashboardMenuSelectedItem() {
|
||||||
|
@ -323,7 +323,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
|
|
||||||
if (pageIds) {
|
if (pageIds) {
|
||||||
pageIds = pageIds.split('|');
|
pageIds = pageIds.split('|');
|
||||||
selected = -1 != pageIds.indexOf(currentViewId);
|
selected = pageIds.indexOf(currentViewId) != -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var pageUrls = link.getAttribute('data-pageurls');
|
var pageUrls = link.getAttribute('data-pageurls');
|
||||||
|
@ -545,7 +545,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
var view = items[i];
|
var view = items[i];
|
||||||
list.push(view);
|
list.push(view);
|
||||||
|
|
||||||
if ('livetv' == view.CollectionType) {
|
if (view.CollectionType == 'livetv') {
|
||||||
view.ImageTags = {};
|
view.ImageTags = {};
|
||||||
view.icon = 'live_tv';
|
view.icon = 'live_tv';
|
||||||
var guideView = Object.assign({}, view);
|
var guideView = Object.assign({}, view);
|
||||||
|
@ -604,12 +604,10 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
var icon = i.icon || imageHelper.getLibraryIcon(i.CollectionType);
|
var icon = i.icon || imageHelper.getLibraryIcon(i.CollectionType);
|
||||||
var itemId = i.Id;
|
var itemId = i.Id;
|
||||||
|
|
||||||
const linkHtml = `<a is="emby-linkbutton" data-itemid="${itemId}" class="lnkMediaFolder navMenuOption" href="${getItemHref(i, i.CollectionType)}">
|
return `<a is="emby-linkbutton" data-itemid="${itemId}" class="lnkMediaFolder navMenuOption" href="${getItemHref(i, i.CollectionType)}">
|
||||||
<span class="material-icons navMenuOptionIcon ${icon}"></span>
|
<span class="material-icons navMenuOptionIcon ${icon}"></span>
|
||||||
<span class="sectionName navMenuOptionText">${i.Name}</span>
|
<span class="sectionName navMenuOptionText">${i.Name}</span>
|
||||||
</a>`;
|
</a>`;
|
||||||
|
|
||||||
return linkHtml;
|
|
||||||
}).join('');
|
}).join('');
|
||||||
libraryMenuOptions.innerHTML = html;
|
libraryMenuOptions.innerHTML = html;
|
||||||
var elem = libraryMenuOptions;
|
var elem = libraryMenuOptions;
|
||||||
|
@ -673,15 +671,15 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
var lnkMediaFolder = elems[i];
|
var lnkMediaFolder = elems[i];
|
||||||
var itemId = lnkMediaFolder.getAttribute('data-itemid');
|
var itemId = lnkMediaFolder.getAttribute('data-itemid');
|
||||||
|
|
||||||
if (isChannelsPage && 'channels' === itemId) {
|
if (isChannelsPage && itemId === 'channels') {
|
||||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||||
} else if (isLiveTvPage && 'livetv' === itemId) {
|
} else if (isLiveTvPage && itemId === 'livetv') {
|
||||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||||
} else if (isEditorPage && 'editor' === itemId) {
|
} else if (isEditorPage && itemId === 'editor') {
|
||||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||||
} else if (isMySyncPage && 'manageoffline' === itemId && -1 != window.location.href.toString().indexOf('mode=download')) {
|
} else if (isMySyncPage && itemId === 'manageoffline' && window.location.href.toString().indexOf('mode=download') != -1) {
|
||||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||||
} else if (isMySyncPage && 'syncotherdevices' === itemId && -1 == window.location.href.toString().indexOf('mode=download')) {
|
} else if (isMySyncPage && itemId === 'syncotherdevices' && window.location.href.toString().indexOf('mode=download') == -1) {
|
||||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||||
} else if (id && itemId == id) {
|
} else if (id && itemId == id) {
|
||||||
lnkMediaFolder.classList.add('navMenuOption-selected');
|
lnkMediaFolder.classList.add('navMenuOption-selected');
|
||||||
|
@ -755,7 +753,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
}
|
}
|
||||||
|
|
||||||
if (headerBackButton) {
|
if (headerBackButton) {
|
||||||
if ('false' !== page.getAttribute('data-backbutton') && appRouter.canGoBack()) {
|
if (page.getAttribute('data-backbutton') !== 'false' && appRouter.canGoBack()) {
|
||||||
headerBackButton.classList.remove('hide');
|
headerBackButton.classList.remove('hide');
|
||||||
} else {
|
} else {
|
||||||
headerBackButton.classList.add('hide');
|
headerBackButton.classList.add('hide');
|
||||||
|
@ -865,11 +863,11 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
document.title = 'Jellyfin';
|
document.title = 'Jellyfin';
|
||||||
},
|
},
|
||||||
setTitle: function (title) {
|
setTitle: function (title) {
|
||||||
if (null == title) {
|
if (title == null) {
|
||||||
return void LibraryMenu.setDefaultTitle();
|
return void LibraryMenu.setDefaultTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('-' === title) {
|
if (title === '-') {
|
||||||
title = '';
|
title = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -924,7 +922,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', '
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('library' !== currentDrawerType) {
|
if (currentDrawerType !== 'library') {
|
||||||
refreshLibraryDrawer();
|
refreshLibraryDrawer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,22 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function showCursor() {
|
||||||
|
if (isMouseIdle) {
|
||||||
|
isMouseIdle = false;
|
||||||
|
removeIdleClasses();
|
||||||
|
events.trigger(self, 'mouseactive');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function hideCursor() {
|
||||||
|
if (!isMouseIdle) {
|
||||||
|
isMouseIdle = true;
|
||||||
|
addIdleClasses();
|
||||||
|
events.trigger(self, 'mouseidle');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var lastPointerMoveData;
|
var lastPointerMoveData;
|
||||||
function onPointerMove(e) {
|
function onPointerMove(e) {
|
||||||
var eventX = e.screenX;
|
var eventX = e.screenX;
|
||||||
|
@ -61,11 +77,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd
|
||||||
lastMouseInputTime = new Date().getTime();
|
lastMouseInputTime = new Date().getTime();
|
||||||
notifyApp();
|
notifyApp();
|
||||||
|
|
||||||
if (isMouseIdle) {
|
showCursor();
|
||||||
isMouseIdle = false;
|
|
||||||
removeIdleClasses();
|
|
||||||
events.trigger(self, 'mouseactive');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPointerEnter(e) {
|
function onPointerEnter(e) {
|
||||||
|
@ -99,9 +111,7 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd
|
||||||
|
|
||||||
function onMouseInterval() {
|
function onMouseInterval() {
|
||||||
if (!isMouseIdle && mouseIdleTime() >= 5000) {
|
if (!isMouseIdle && mouseIdleTime() >= 5000) {
|
||||||
isMouseIdle = true;
|
hideCursor();
|
||||||
addIdleClasses();
|
|
||||||
events.trigger(self, 'mouseidle');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,5 +167,8 @@ define(['inputManager', 'focusManager', 'browser', 'layoutManager', 'events', 'd
|
||||||
|
|
||||||
events.on(layoutManager, 'modechange', initMouse);
|
events.on(layoutManager, 'modechange', initMouse);
|
||||||
|
|
||||||
|
self.hideCursor = hideCursor;
|
||||||
|
self.showCursor = showCursor;
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
});
|
});
|
||||||
|
|
|
@ -60,7 +60,7 @@ export default function (view, params) {
|
||||||
const viewStyle = getPageData(view).view;
|
const viewStyle = getPageData(view).view;
|
||||||
const itemsContainer = view.querySelector('.itemsContainer');
|
const itemsContainer = view.querySelector('.itemsContainer');
|
||||||
|
|
||||||
if ('List' == viewStyle) {
|
if (viewStyle == 'List') {
|
||||||
itemsContainer.classList.add('vertical-list');
|
itemsContainer.classList.add('vertical-list');
|
||||||
itemsContainer.classList.remove('vertical-wrap');
|
itemsContainer.classList.remove('vertical-wrap');
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -6,7 +6,7 @@ function getWindowLocationSearch(win) {
|
||||||
if (!search) {
|
if (!search) {
|
||||||
var index = window.location.href.indexOf('?');
|
var index = window.location.href.indexOf('?');
|
||||||
|
|
||||||
if (-1 != index) {
|
if (index != -1) {
|
||||||
search = window.location.href.substring(index);
|
search = window.location.href.substring(index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ window.getParameterByName = function (name, url) {
|
||||||
var regex = new RegExp(regexS, 'i');
|
var regex = new RegExp(regexS, 'i');
|
||||||
var results = regex.exec(url || getWindowLocationSearch());
|
var results = regex.exec(url || getWindowLocationSearch());
|
||||||
|
|
||||||
if (null == results) {
|
if (results == null) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ var Dashboard = {
|
||||||
var urlLower = window.location.href.toLowerCase();
|
var urlLower = window.location.href.toLowerCase();
|
||||||
var index = urlLower.lastIndexOf('/web');
|
var index = urlLower.lastIndexOf('/web');
|
||||||
|
|
||||||
if (-1 != index) {
|
if (index != -1) {
|
||||||
return urlLower.substring(0, index);
|
return urlLower.substring(0, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ var Dashboard = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
alert: function (options) {
|
alert: function (options) {
|
||||||
if ('string' == typeof options) {
|
if (typeof options == 'string') {
|
||||||
return void require(['toast'], function (toast) {
|
return void require(['toast'], function (toast) {
|
||||||
toast({
|
toast({
|
||||||
text: options
|
text: options
|
||||||
|
@ -197,7 +197,7 @@ var Dashboard = {
|
||||||
var capabilities = {
|
var capabilities = {
|
||||||
PlayableMediaTypes: ['Audio', 'Video'],
|
PlayableMediaTypes: ['Audio', 'Video'],
|
||||||
SupportedCommands: ['MoveUp', 'MoveDown', 'MoveLeft', 'MoveRight', 'PageUp', 'PageDown', 'PreviousLetter', 'NextLetter', 'ToggleOsd', 'ToggleContextMenu', 'Select', 'Back', 'SendKey', 'SendString', 'GoHome', 'GoToSettings', 'VolumeUp', 'VolumeDown', 'Mute', 'Unmute', 'ToggleMute', 'SetVolume', 'SetAudioStreamIndex', 'SetSubtitleStreamIndex', 'DisplayContent', 'GoToSearch', 'DisplayMessage', 'SetRepeatMode', 'SetShuffleQueue', 'ChannelUp', 'ChannelDown', 'PlayMediaSource', 'PlayTrailers'],
|
SupportedCommands: ['MoveUp', 'MoveDown', 'MoveLeft', 'MoveRight', 'PageUp', 'PageDown', 'PreviousLetter', 'NextLetter', 'ToggleOsd', 'ToggleContextMenu', 'Select', 'Back', 'SendKey', 'SendString', 'GoHome', 'GoToSettings', 'VolumeUp', 'VolumeDown', 'Mute', 'Unmute', 'ToggleMute', 'SetVolume', 'SetAudioStreamIndex', 'SetSubtitleStreamIndex', 'DisplayContent', 'GoToSearch', 'DisplayMessage', 'SetRepeatMode', 'SetShuffleQueue', 'ChannelUp', 'ChannelDown', 'PlayMediaSource', 'PlayTrailers'],
|
||||||
SupportsPersistentIdentifier: 'cordova' === self.appMode || 'android' === self.appMode,
|
SupportsPersistentIdentifier: self.appMode === 'cordova' || self.appMode === 'android',
|
||||||
SupportsMediaControl: true
|
SupportsMediaControl: true
|
||||||
};
|
};
|
||||||
appHost.getPushTokenInfo();
|
appHost.getPushTokenInfo();
|
||||||
|
@ -452,8 +452,8 @@ function initClient() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function onGlobalizeInit(browser, globalize) {
|
function onGlobalizeInit(browser, globalize) {
|
||||||
if ('android' === self.appMode) {
|
if (self.appMode === 'android') {
|
||||||
if (-1 !== self.location.href.toString().toLowerCase().indexOf('start=backgroundsync')) {
|
if (self.location.href.toString().toLowerCase().indexOf('start=backgroundsync') !== -1) {
|
||||||
return onAppReady(browser);
|
return onAppReady(browser);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -863,7 +863,7 @@ function initClient() {
|
||||||
});
|
});
|
||||||
define('appRouter', [componentsPath + '/appRouter', 'itemHelper'], function (appRouter, itemHelper) {
|
define('appRouter', [componentsPath + '/appRouter', 'itemHelper'], function (appRouter, itemHelper) {
|
||||||
function showItem(item, serverId, options) {
|
function showItem(item, serverId, options) {
|
||||||
if ('string' == typeof item) {
|
if (typeof item == 'string') {
|
||||||
require(['connectionManager'], function (connectionManager) {
|
require(['connectionManager'], function (connectionManager) {
|
||||||
var apiClient = connectionManager.currentApiClient();
|
var apiClient = connectionManager.currentApiClient();
|
||||||
apiClient.getItem(apiClient.getCurrentUserId(), item).then(function (item) {
|
apiClient.getItem(apiClient.getCurrentUserId(), item).then(function (item) {
|
||||||
|
@ -871,7 +871,7 @@ function initClient() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (2 == arguments.length) {
|
if (arguments.length == 2) {
|
||||||
options = arguments[1];
|
options = arguments[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -953,27 +953,27 @@ function initClient() {
|
||||||
var itemType = item.Type || (options ? options.itemType : null);
|
var itemType = item.Type || (options ? options.itemType : null);
|
||||||
var serverId = item.ServerId || options.serverId;
|
var serverId = item.ServerId || options.serverId;
|
||||||
|
|
||||||
if ('settings' === item) {
|
if (item === 'settings') {
|
||||||
return 'mypreferencesmenu.html';
|
return 'mypreferencesmenu.html';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('wizard' === item) {
|
if (item === 'wizard') {
|
||||||
return 'wizardstart.html';
|
return 'wizardstart.html';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('manageserver' === item) {
|
if (item === 'manageserver') {
|
||||||
return 'dashboard.html';
|
return 'dashboard.html';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('recordedtv' === item) {
|
if (item === 'recordedtv') {
|
||||||
return 'livetv.html?tab=3&serverId=' + options.serverId;
|
return 'livetv.html?tab=3&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('nextup' === item) {
|
if (item === 'nextup') {
|
||||||
return 'list.html?type=nextup&serverId=' + options.serverId;
|
return 'list.html?type=nextup&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('list' === item) {
|
if (item === 'list') {
|
||||||
var url = 'list.html?serverId=' + options.serverId + '&type=' + options.itemTypes;
|
var url = 'list.html?serverId=' + options.serverId + '&type=' + options.itemTypes;
|
||||||
|
|
||||||
if (options.isFavorite) {
|
if (options.isFavorite) {
|
||||||
|
@ -983,61 +983,61 @@ function initClient() {
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('livetv' === item) {
|
if (item === 'livetv') {
|
||||||
if ('programs' === options.section) {
|
if (options.section === 'programs') {
|
||||||
return 'livetv.html?tab=0&serverId=' + options.serverId;
|
return 'livetv.html?tab=0&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
if ('guide' === options.section) {
|
if (options.section === 'guide') {
|
||||||
return 'livetv.html?tab=1&serverId=' + options.serverId;
|
return 'livetv.html?tab=1&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('movies' === options.section) {
|
if (options.section === 'movies') {
|
||||||
return 'list.html?type=Programs&IsMovie=true&serverId=' + options.serverId;
|
return 'list.html?type=Programs&IsMovie=true&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('shows' === options.section) {
|
if (options.section === 'shows') {
|
||||||
return 'list.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId=' + options.serverId;
|
return 'list.html?type=Programs&IsSeries=true&IsMovie=false&IsNews=false&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('sports' === options.section) {
|
if (options.section === 'sports') {
|
||||||
return 'list.html?type=Programs&IsSports=true&serverId=' + options.serverId;
|
return 'list.html?type=Programs&IsSports=true&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('kids' === options.section) {
|
if (options.section === 'kids') {
|
||||||
return 'list.html?type=Programs&IsKids=true&serverId=' + options.serverId;
|
return 'list.html?type=Programs&IsKids=true&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('news' === options.section) {
|
if (options.section === 'news') {
|
||||||
return 'list.html?type=Programs&IsNews=true&serverId=' + options.serverId;
|
return 'list.html?type=Programs&IsNews=true&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('onnow' === options.section) {
|
if (options.section === 'onnow') {
|
||||||
return 'list.html?type=Programs&IsAiring=true&serverId=' + options.serverId;
|
return 'list.html?type=Programs&IsAiring=true&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('dvrschedule' === options.section) {
|
if (options.section === 'dvrschedule') {
|
||||||
return 'livetv.html?tab=4&serverId=' + options.serverId;
|
return 'livetv.html?tab=4&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('seriesrecording' === options.section) {
|
if (options.section === 'seriesrecording') {
|
||||||
return 'livetv.html?tab=5&serverId=' + options.serverId;
|
return 'livetv.html?tab=5&serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 'livetv.html?serverId=' + options.serverId;
|
return 'livetv.html?serverId=' + options.serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('SeriesTimer' == itemType) {
|
if (itemType == 'SeriesTimer') {
|
||||||
return 'details?seriesTimerId=' + id + '&serverId=' + serverId;
|
return 'details?seriesTimerId=' + id + '&serverId=' + serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('livetv' == item.CollectionType) {
|
if (item.CollectionType == 'livetv') {
|
||||||
return 'livetv.html';
|
return 'livetv.html';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Genre' === item.Type) {
|
if (item.Type === 'Genre') {
|
||||||
url = 'list.html?genreId=' + item.Id + '&serverId=' + serverId;
|
url = 'list.html?genreId=' + item.Id + '&serverId=' + serverId;
|
||||||
|
|
||||||
if ('livetv' === context) {
|
if (context === 'livetv') {
|
||||||
url += '&type=Programs';
|
url += '&type=Programs';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1048,7 +1048,7 @@ function initClient() {
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('MusicGenre' === item.Type) {
|
if (item.Type === 'MusicGenre') {
|
||||||
url = 'list.html?musicGenreId=' + item.Id + '&serverId=' + serverId;
|
url = 'list.html?musicGenreId=' + item.Id + '&serverId=' + serverId;
|
||||||
|
|
||||||
if (options.parentId) {
|
if (options.parentId) {
|
||||||
|
@ -1058,7 +1058,7 @@ function initClient() {
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('Studio' === item.Type) {
|
if (item.Type === 'Studio') {
|
||||||
url = 'list.html?studioId=' + item.Id + '&serverId=' + serverId;
|
url = 'list.html?studioId=' + item.Id + '&serverId=' + serverId;
|
||||||
|
|
||||||
if (options.parentId) {
|
if (options.parentId) {
|
||||||
|
@ -1068,28 +1068,28 @@ function initClient() {
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('folders' !== context && !itemHelper.isLocalItem(item)) {
|
if (context !== 'folders' && !itemHelper.isLocalItem(item)) {
|
||||||
if ('movies' == item.CollectionType) {
|
if (item.CollectionType == 'movies') {
|
||||||
url = 'movies.html?topParentId=' + item.Id;
|
url = 'movies.html?topParentId=' + item.Id;
|
||||||
|
|
||||||
if (options && 'latest' === options.section) {
|
if (options && options.section === 'latest') {
|
||||||
url += '&tab=1';
|
url += '&tab=1';
|
||||||
}
|
}
|
||||||
|
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('tvshows' == item.CollectionType) {
|
if (item.CollectionType == 'tvshows') {
|
||||||
url = 'tv.html?topParentId=' + item.Id;
|
url = 'tv.html?topParentId=' + item.Id;
|
||||||
|
|
||||||
if (options && 'latest' === options.section) {
|
if (options && options.section === 'latest') {
|
||||||
url += '&tab=2';
|
url += '&tab=2';
|
||||||
}
|
}
|
||||||
|
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ('music' == item.CollectionType) {
|
if (item.CollectionType == 'music') {
|
||||||
return 'music.html?topParentId=' + item.Id;
|
return 'music.html?topParentId=' + item.Id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1102,7 +1102,7 @@ function initClient() {
|
||||||
|
|
||||||
var contextSuffix = context ? '&context=' + context : '';
|
var contextSuffix = context ? '&context=' + context : '';
|
||||||
|
|
||||||
if ('Series' == itemType || 'Season' == itemType || 'Episode' == itemType) {
|
if (itemType == 'Series' || itemType == 'Season' || itemType == 'Episode') {
|
||||||
return 'details?id=' + id + contextSuffix + '&serverId=' + serverId;
|
return 'details?id=' + id + contextSuffix + '&serverId=' + serverId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ pageClassOn('viewbeforeshow', 'page', function () {
|
||||||
var theme;
|
var theme;
|
||||||
var context;
|
var context;
|
||||||
|
|
||||||
if ('a' === viewType) {
|
if (viewType === 'a') {
|
||||||
theme = userSettings.dashboardTheme();
|
theme = userSettings.dashboardTheme();
|
||||||
context = 'serverdashboard';
|
context = 'serverdashboard';
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -232,7 +232,7 @@
|
||||||
"HeaderAccessScheduleHelp": "Vytvořte plán přístupu pro limitování přístupu jen určitém čase.",
|
"HeaderAccessScheduleHelp": "Vytvořte plán přístupu pro limitování přístupu jen určitém čase.",
|
||||||
"HeaderActiveDevices": "Aktivní zařízení",
|
"HeaderActiveDevices": "Aktivní zařízení",
|
||||||
"HeaderActiveRecordings": "Aktivní nahrávání",
|
"HeaderActiveRecordings": "Aktivní nahrávání",
|
||||||
"HeaderActivity": "Aktivity",
|
"HeaderActivity": "Aktivita",
|
||||||
"HeaderAddScheduledTaskTrigger": "Přidat Spouštěč",
|
"HeaderAddScheduledTaskTrigger": "Přidat Spouštěč",
|
||||||
"HeaderAddToCollection": "Přidat do Kolekce",
|
"HeaderAddToCollection": "Přidat do Kolekce",
|
||||||
"HeaderAddToPlaylist": "Přidat do playlistu",
|
"HeaderAddToPlaylist": "Přidat do playlistu",
|
||||||
|
@ -244,14 +244,14 @@
|
||||||
"HeaderAlbums": "Alba",
|
"HeaderAlbums": "Alba",
|
||||||
"HeaderAlert": "Upozornění",
|
"HeaderAlert": "Upozornění",
|
||||||
"HeaderApiKey": "Klíč Api",
|
"HeaderApiKey": "Klíč Api",
|
||||||
"HeaderApiKeys": "Klíče Api",
|
"HeaderApiKeys": "Klíče API",
|
||||||
"HeaderApiKeysHelp": "Externí aplikace musí mít klíč k API, aby mohly komunikovat se serverem Jellyfin. Klíče jsou vydávány přihlášením k účtu Jellyfin nebo ruční žádostí o klíč.",
|
"HeaderApiKeysHelp": "Externí aplikace musí mít klíč k API, aby mohly komunikovat se serverem Jellyfin. Klíče jsou vydávány přihlášením k účtu Jellyfin nebo ruční žádostí o klíč.",
|
||||||
"HeaderApp": "Aplikace",
|
"HeaderApp": "Aplikace",
|
||||||
"HeaderAudioBooks": "Audio knihy",
|
"HeaderAudioBooks": "Audio knihy",
|
||||||
"HeaderAudioSettings": "Nastavení zvuku",
|
"HeaderAudioSettings": "Nastavení zvuku",
|
||||||
"HeaderAutomaticUpdates": "Automatické aktualizace",
|
"HeaderAutomaticUpdates": "Automatické aktualizace",
|
||||||
"HeaderBooks": "Knihy",
|
"HeaderBooks": "Knihy",
|
||||||
"HeaderBranding": "Značkování",
|
"HeaderBranding": "Branding",
|
||||||
"HeaderCancelRecording": "Zrušit nahrávání",
|
"HeaderCancelRecording": "Zrušit nahrávání",
|
||||||
"HeaderCancelSeries": "Ukončit Seriál",
|
"HeaderCancelSeries": "Ukončit Seriál",
|
||||||
"HeaderCastAndCrew": "Herci a obsazení",
|
"HeaderCastAndCrew": "Herci a obsazení",
|
||||||
|
@ -578,7 +578,7 @@
|
||||||
"LabelLocalHttpServerPortNumber": "Lokální HTTP port:",
|
"LabelLocalHttpServerPortNumber": "Lokální HTTP port:",
|
||||||
"LabelLocalHttpServerPortNumberHelp": "Číslo portu TCP, ke kterému by se měl HTTP server Jellyfin připojit.",
|
"LabelLocalHttpServerPortNumberHelp": "Číslo portu TCP, ke kterému by se měl HTTP server Jellyfin připojit.",
|
||||||
"LabelLockItemToPreventChanges": "Uzamknout položku pro zabránění budoucích změn",
|
"LabelLockItemToPreventChanges": "Uzamknout položku pro zabránění budoucích změn",
|
||||||
"LabelLoginDisclaimer": "Zřeknutí se následujících práv při přihlášení:",
|
"LabelLoginDisclaimer": "Zřeknutí se zodpovědnosti při přihlášení:",
|
||||||
"LabelLoginDisclaimerHelp": "Zpráva, která se zobrazí v dolní části přihlašovací stránky.",
|
"LabelLoginDisclaimerHelp": "Zpráva, která se zobrazí v dolní části přihlašovací stránky.",
|
||||||
"LabelLogs": "Záznamy:",
|
"LabelLogs": "Záznamy:",
|
||||||
"LabelManufacturer": "Výrobce:",
|
"LabelManufacturer": "Výrobce:",
|
||||||
|
@ -1070,7 +1070,7 @@
|
||||||
"Screenshots": "Snímky obrazovky",
|
"Screenshots": "Snímky obrazovky",
|
||||||
"Search": "Vyhledávání",
|
"Search": "Vyhledávání",
|
||||||
"SearchForCollectionInternetMetadata": "Vyhledat metadata a obrázky na Internetu",
|
"SearchForCollectionInternetMetadata": "Vyhledat metadata a obrázky na Internetu",
|
||||||
"SearchForMissingMetadata": "Hledání chybějících metadat",
|
"SearchForMissingMetadata": "Hledat chybějící metadata",
|
||||||
"SearchForSubtitles": "Vyhledat titulky",
|
"SearchForSubtitles": "Vyhledat titulky",
|
||||||
"SearchResults": "Výsledky vyhledávání",
|
"SearchResults": "Výsledky vyhledávání",
|
||||||
"SendMessage": "Poslat zprávu",
|
"SendMessage": "Poslat zprávu",
|
||||||
|
@ -1129,7 +1129,7 @@
|
||||||
"TabMusic": "Hudba",
|
"TabMusic": "Hudba",
|
||||||
"TabMusicVideos": "Hudební videa",
|
"TabMusicVideos": "Hudební videa",
|
||||||
"TabMyPlugins": "Moje zásuvné moduly",
|
"TabMyPlugins": "Moje zásuvné moduly",
|
||||||
"TabNetworks": "Sítě",
|
"TabNetworks": "Stanice",
|
||||||
"TabNfoSettings": "NFO nastavení",
|
"TabNfoSettings": "NFO nastavení",
|
||||||
"TabNotifications": "Oznámení",
|
"TabNotifications": "Oznámení",
|
||||||
"TabOther": "Další",
|
"TabOther": "Další",
|
||||||
|
@ -1152,7 +1152,7 @@
|
||||||
"TabSuggestions": "Návrhy",
|
"TabSuggestions": "Návrhy",
|
||||||
"TabTrailers": "Upoutávky",
|
"TabTrailers": "Upoutávky",
|
||||||
"TabTranscoding": "Překódování",
|
"TabTranscoding": "Překódování",
|
||||||
"TabUpcoming": "Nové",
|
"TabUpcoming": "Nadcházející",
|
||||||
"TabUsers": "Uživatelé",
|
"TabUsers": "Uživatelé",
|
||||||
"Tags": "Tagy",
|
"Tags": "Tagy",
|
||||||
"TellUsAboutYourself": "Řekněte nám něco o sobě",
|
"TellUsAboutYourself": "Řekněte nám něco o sobě",
|
||||||
|
@ -1505,7 +1505,7 @@
|
||||||
"MusicArtist": "Interpret",
|
"MusicArtist": "Interpret",
|
||||||
"MusicVideo": "Videoklip",
|
"MusicVideo": "Videoklip",
|
||||||
"SubtitleOffset": "Nastavení titulků",
|
"SubtitleOffset": "Nastavení titulků",
|
||||||
"TabNetworking": "Vytváření sítí",
|
"TabNetworking": "Síť",
|
||||||
"MusicLibraryHelp": "Prostudujte si {0}průvodce pojmenováním hudby{1}.",
|
"MusicLibraryHelp": "Prostudujte si {0}průvodce pojmenováním hudby{1}.",
|
||||||
"MoreMediaInfo": "Informace o médiu",
|
"MoreMediaInfo": "Informace o médiu",
|
||||||
"LabelVideoBitrate": "Datový tok videa:",
|
"LabelVideoBitrate": "Datový tok videa:",
|
||||||
|
@ -1524,7 +1524,7 @@
|
||||||
"LabelAudioBitrate": "Datový tok zvuku:",
|
"LabelAudioBitrate": "Datový tok zvuku:",
|
||||||
"LabelAudioBitDepth": "Bitová hloubka zvuku:",
|
"LabelAudioBitDepth": "Bitová hloubka zvuku:",
|
||||||
"HeaderFavoriteBooks": "Oblíbené knihy",
|
"HeaderFavoriteBooks": "Oblíbené knihy",
|
||||||
"FetchingData": "Načtení dalších dat",
|
"FetchingData": "Načítání dalších dat",
|
||||||
"CopyStreamURLSuccess": "Úspěšně zkopírovaná URL.",
|
"CopyStreamURLSuccess": "Úspěšně zkopírovaná URL.",
|
||||||
"CopyStreamURL": "Kopírovat URL adresu streamu",
|
"CopyStreamURL": "Kopírovat URL adresu streamu",
|
||||||
"ButtonAddImage": "Přidat obrázek",
|
"ButtonAddImage": "Přidat obrázek",
|
||||||
|
@ -1565,7 +1565,7 @@
|
||||||
"EveryXMinutes": "Každých {0} minut",
|
"EveryXMinutes": "Každých {0} minut",
|
||||||
"OnWakeFromSleep": "Při probuzení",
|
"OnWakeFromSleep": "Při probuzení",
|
||||||
"DailyAt": "Denně v {0}",
|
"DailyAt": "Denně v {0}",
|
||||||
"PersonRole": "jako {0}",
|
"PersonRole": "{0}",
|
||||||
"ListPaging": "{0}-{1} ze {2}",
|
"ListPaging": "{0}-{1} ze {2}",
|
||||||
"WriteAccessRequired": "Server Jellyfin vyžaduje oprávnění pro zápis do této složky. Zkontrolujte oprávnění a zkuste to znovu.",
|
"WriteAccessRequired": "Server Jellyfin vyžaduje oprávnění pro zápis do této složky. Zkontrolujte oprávnění a zkuste to znovu.",
|
||||||
"PathNotFound": "Cesta nebyla nalezena. Zkontrolujte, zda je platná a zkuste to znovu.",
|
"PathNotFound": "Cesta nebyla nalezena. Zkontrolujte, zda je platná a zkuste to znovu.",
|
||||||
|
@ -1652,5 +1652,7 @@
|
||||||
"Writers": "Scénáristé",
|
"Writers": "Scénáristé",
|
||||||
"ClearQueue": "Vymazat frontu",
|
"ClearQueue": "Vymazat frontu",
|
||||||
"StopPlayback": "Zastavit přehrávání",
|
"StopPlayback": "Zastavit přehrávání",
|
||||||
"ViewAlbumArtist": "Zobrazit interpreta alba"
|
"ViewAlbumArtist": "Zobrazit interpreta alba",
|
||||||
|
"PreviousTrack": "Předchozí",
|
||||||
|
"NextTrack": "Další"
|
||||||
}
|
}
|
||||||
|
|
|
@ -428,7 +428,7 @@
|
||||||
"HeaderSortBy": "Sortiert nach",
|
"HeaderSortBy": "Sortiert nach",
|
||||||
"HeaderSortOrder": "Sortierreihenfolge",
|
"HeaderSortOrder": "Sortierreihenfolge",
|
||||||
"HeaderSpecialEpisodeInfo": "Spezialepisoden Information",
|
"HeaderSpecialEpisodeInfo": "Spezialepisoden Information",
|
||||||
"HeaderSpecialFeatures": "Sonderfunktionen",
|
"HeaderSpecialFeatures": "Extras",
|
||||||
"HeaderStartNow": "Starte jetzt",
|
"HeaderStartNow": "Starte jetzt",
|
||||||
"HeaderStopRecording": "Aufnahme stoppen",
|
"HeaderStopRecording": "Aufnahme stoppen",
|
||||||
"HeaderSubtitleAppearance": "Untertiteldarstellung",
|
"HeaderSubtitleAppearance": "Untertiteldarstellung",
|
||||||
|
|
|
@ -1094,6 +1094,7 @@
|
||||||
"NewEpisodesOnly": "New episodes only",
|
"NewEpisodesOnly": "New episodes only",
|
||||||
"News": "News",
|
"News": "News",
|
||||||
"Next": "Next",
|
"Next": "Next",
|
||||||
|
"NextTrack": "Skip to next",
|
||||||
"NextUp": "Next Up",
|
"NextUp": "Next Up",
|
||||||
"No": "No",
|
"No": "No",
|
||||||
"NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}",
|
"NoCreatedLibraries": "Seems like you haven't created any libraries yet. {0}Would you like to create one now?{1}",
|
||||||
|
@ -1307,6 +1308,7 @@
|
||||||
"Premiere": "Premiere",
|
"Premiere": "Premiere",
|
||||||
"Premieres": "Premieres",
|
"Premieres": "Premieres",
|
||||||
"Previous": "Previous",
|
"Previous": "Previous",
|
||||||
|
"PreviousTrack": "Skip to previous",
|
||||||
"Primary": "Primary",
|
"Primary": "Primary",
|
||||||
"Producer": "Producer",
|
"Producer": "Producer",
|
||||||
"ProductionLocations": "Production locations",
|
"ProductionLocations": "Production locations",
|
||||||
|
|
|
@ -352,7 +352,7 @@
|
||||||
"MessageSyncPlayGroupDoesNotExist": "Fallo al unirse al grupo porque éste no existe.",
|
"MessageSyncPlayGroupDoesNotExist": "Fallo al unirse al grupo porque éste no existe.",
|
||||||
"MessageSyncPlayPlaybackPermissionRequired": "Permiso de reproducción requerido.",
|
"MessageSyncPlayPlaybackPermissionRequired": "Permiso de reproducción requerido.",
|
||||||
"MessageSyncPlayNoGroupsAvailable": "No hay grupos disponibles. Empieza a reproducir algo primero.",
|
"MessageSyncPlayNoGroupsAvailable": "No hay grupos disponibles. Empieza a reproducir algo primero.",
|
||||||
"MessageSyncPlayGroupWait": "<b>{0}</b> está cargando...",
|
"MessageSyncPlayGroupWait": "<b>{0}</b> está cargando…",
|
||||||
"MessageSyncPlayUserLeft": "<b>{0}</b> abandonó el grupo.",
|
"MessageSyncPlayUserLeft": "<b>{0}</b> abandonó el grupo.",
|
||||||
"MessageSyncPlayUserJoined": "<b>{0}</b> se ha unido al grupo.",
|
"MessageSyncPlayUserJoined": "<b>{0}</b> se ha unido al grupo.",
|
||||||
"MessageSyncPlayDisabled": "SyncPlay deshabilitado.",
|
"MessageSyncPlayDisabled": "SyncPlay deshabilitado.",
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
"TabGenres": "Zvrsti",
|
"TabGenres": "Zvrsti",
|
||||||
"TabLatest": "Zadnje",
|
"TabLatest": "Zadnje",
|
||||||
"TabMusic": "Glasba",
|
"TabMusic": "Glasba",
|
||||||
"TabMyPlugins": "Moji Vticniki",
|
"TabMyPlugins": "Moji dodatki",
|
||||||
"TabNetworks": "Omrezja",
|
"TabNetworks": "Omrezja",
|
||||||
"TabPassword": "Geslo",
|
"TabPassword": "Geslo",
|
||||||
"TabPlaylist": "Playlista",
|
"TabPlaylist": "Playlista",
|
||||||
|
@ -70,7 +70,7 @@
|
||||||
"AddToPlayQueue": "Dodaj v čakalno vrsto",
|
"AddToPlayQueue": "Dodaj v čakalno vrsto",
|
||||||
"AddToPlaylist": "Dodaj na seznam predvajanja",
|
"AddToPlaylist": "Dodaj na seznam predvajanja",
|
||||||
"AddedOnValue": "Dodano {0}",
|
"AddedOnValue": "Dodano {0}",
|
||||||
"AdditionalNotificationServices": "Prebrskaj katalog dodatkov za namestitev dodatnih storitev obveščanja.",
|
"AdditionalNotificationServices": "Prebrskajte katalog dodatkov za namestitev dodatnih storitev obveščanja.",
|
||||||
"AirDate": "Datum predvajanja",
|
"AirDate": "Datum predvajanja",
|
||||||
"Aired": "Predvajano",
|
"Aired": "Predvajano",
|
||||||
"Albums": "Albumi",
|
"Albums": "Albumi",
|
||||||
|
@ -135,7 +135,7 @@
|
||||||
"Box": "Ovitek",
|
"Box": "Ovitek",
|
||||||
"BoxRear": "Ovitek (zadnja stran)",
|
"BoxRear": "Ovitek (zadnja stran)",
|
||||||
"Browse": "Brskaj",
|
"Browse": "Brskaj",
|
||||||
"BrowsePluginCatalogMessage": "Poišči razpoložljive dodatke v našem katalogu.",
|
"BrowsePluginCatalogMessage": "Poiščite razpoložljive dodatke v našem katalogu.",
|
||||||
"BurnSubtitlesHelp": "Določi ali naj strežnik vžge podnapise pri prekodiranju videa. Izogibanje temu lahko občutno izboljša delovanje strežnika. Izberite Samodejno za vžig slikovnih formatov podnapisov (VOBSUB, PGS, SUB, IDX, ...) in nekaterih ASS oziroma SSA podnapisov.",
|
"BurnSubtitlesHelp": "Določi ali naj strežnik vžge podnapise pri prekodiranju videa. Izogibanje temu lahko občutno izboljša delovanje strežnika. Izberite Samodejno za vžig slikovnih formatov podnapisov (VOBSUB, PGS, SUB, IDX, ...) in nekaterih ASS oziroma SSA podnapisov.",
|
||||||
"ButtonAccept": "Sprejmi",
|
"ButtonAccept": "Sprejmi",
|
||||||
"ButtonAdd": "Dodaj",
|
"ButtonAdd": "Dodaj",
|
||||||
|
@ -343,7 +343,7 @@
|
||||||
"HeaderMyMediaSmall": "Moja predstavnost (majhno)",
|
"HeaderMyMediaSmall": "Moja predstavnost (majhno)",
|
||||||
"HeaderMyMedia": "Moja predstavnost",
|
"HeaderMyMedia": "Moja predstavnost",
|
||||||
"HeaderMyDevice": "Moja naprava",
|
"HeaderMyDevice": "Moja naprava",
|
||||||
"HeaderMusicVideos": "Glasbeni videi",
|
"HeaderMusicVideos": "Videospoti",
|
||||||
"HeaderMusicQuality": "Kvaliteta glasbe",
|
"HeaderMusicQuality": "Kvaliteta glasbe",
|
||||||
"HeaderMovies": "Filmi",
|
"HeaderMovies": "Filmi",
|
||||||
"HeaderMoreLikeThis": "Podobno",
|
"HeaderMoreLikeThis": "Podobno",
|
||||||
|
@ -410,7 +410,7 @@
|
||||||
"HeaderConnectToServer": "Poveži s strežnikom",
|
"HeaderConnectToServer": "Poveži s strežnikom",
|
||||||
"HeaderConfirmRevokeApiKey": "Prekliči API ključ",
|
"HeaderConfirmRevokeApiKey": "Prekliči API ključ",
|
||||||
"HeaderConfirmProfileDeletion": "Potrdi brisanje profila",
|
"HeaderConfirmProfileDeletion": "Potrdi brisanje profila",
|
||||||
"HeaderConfirmPluginInstallation": "Potrdi namestitev dodatka",
|
"HeaderConfirmPluginInstallation": "Potrdite namestitev dodatka",
|
||||||
"HeaderConfigureRemoteAccess": "Nastavi oddaljen dostop",
|
"HeaderConfigureRemoteAccess": "Nastavi oddaljen dostop",
|
||||||
"HeaderCodecProfileHelp": "Profili kodeka določajo omejitve naprave pri predvajanju specifičnih kodekov. Če je omejitev dosežena bo predstavnost prekodirana, tudi če je kodek nastavljen za neposredno predvajanje.",
|
"HeaderCodecProfileHelp": "Profili kodeka določajo omejitve naprave pri predvajanju specifičnih kodekov. Če je omejitev dosežena bo predstavnost prekodirana, tudi če je kodek nastavljen za neposredno predvajanje.",
|
||||||
"HeaderCodecProfile": "Profil kodeka",
|
"HeaderCodecProfile": "Profil kodeka",
|
||||||
|
@ -460,7 +460,7 @@
|
||||||
"FormatValue": "Format: {0}",
|
"FormatValue": "Format: {0}",
|
||||||
"ForAdditionalLiveTvOptions": "Za dodatne ponudnike TV v živo kliknite zavihek storitve in poglejte možnosti, ki so na voljo.",
|
"ForAdditionalLiveTvOptions": "Za dodatne ponudnike TV v živo kliknite zavihek storitve in poglejte možnosti, ki so na voljo.",
|
||||||
"FolderTypeUnset": "Mešane vsebine",
|
"FolderTypeUnset": "Mešane vsebine",
|
||||||
"FolderTypeMusicVideos": "Glasbeni videi",
|
"FolderTypeMusicVideos": "Videospoti",
|
||||||
"FolderTypeMusic": "Glasba",
|
"FolderTypeMusic": "Glasba",
|
||||||
"FolderTypeMovies": "Filmi",
|
"FolderTypeMovies": "Filmi",
|
||||||
"FolderTypeBooks": "Knjige",
|
"FolderTypeBooks": "Knjige",
|
||||||
|
@ -496,7 +496,7 @@
|
||||||
"EnableThemeVideosHelp": "Predvajaj tematske videe v ozadju med brskanjem knjižnice.",
|
"EnableThemeVideosHelp": "Predvajaj tematske videe v ozadju med brskanjem knjižnice.",
|
||||||
"EnableThemeVideos": "Tematski videi",
|
"EnableThemeVideos": "Tematski videi",
|
||||||
"EnableThemeSongsHelp": "Predvajaj tematske pesmi v ozadju med brskanjem knjižnice.",
|
"EnableThemeSongsHelp": "Predvajaj tematske pesmi v ozadju med brskanjem knjižnice.",
|
||||||
"EnableThemeSongs": "Tematske pesmi",
|
"EnableThemeSongs": "Glavne pesmi",
|
||||||
"EnableStreamLoopingHelp": "Omogoči za prenose v živo ki vsebujejo zgolj nekaj sekund podatkov in jih je treba neprestano znova zahtevati. Če to ni potrebno lahko omogočanje povzroči težave.",
|
"EnableStreamLoopingHelp": "Omogoči za prenose v živo ki vsebujejo zgolj nekaj sekund podatkov in jih je treba neprestano znova zahtevati. Če to ni potrebno lahko omogočanje povzroči težave.",
|
||||||
"EnablePhotosHelp": "Fotografije bodo zaznane in prikazane skupaj z drugo predstavnostjo.",
|
"EnablePhotosHelp": "Fotografije bodo zaznane in prikazane skupaj z drugo predstavnostjo.",
|
||||||
"EnablePhotos": "Prikaži fotografije",
|
"EnablePhotos": "Prikaži fotografije",
|
||||||
|
@ -1186,7 +1186,7 @@
|
||||||
"ValueTimeLimitSingleHour": "Časovna omejitev: 1 ura",
|
"ValueTimeLimitSingleHour": "Časovna omejitev: 1 ura",
|
||||||
"ValueTimeLimitMultiHour": "Časovna omejitev: {0} ur",
|
"ValueTimeLimitMultiHour": "Časovna omejitev: {0} ur",
|
||||||
"ValueSongCount": "{0} pesmi",
|
"ValueSongCount": "{0} pesmi",
|
||||||
"ValueMusicVideoCount": "{0} glasbenih videov",
|
"ValueMusicVideoCount": "{0} videospotov",
|
||||||
"ValueMovieCount": "{0} filmov",
|
"ValueMovieCount": "{0} filmov",
|
||||||
"ValueMinutes": "{0} minut",
|
"ValueMinutes": "{0} minut",
|
||||||
"ValueEpisodeCount": "{0} epizod",
|
"ValueEpisodeCount": "{0} epizod",
|
||||||
|
@ -1194,7 +1194,7 @@
|
||||||
"ValueSeconds": "{0} sekund",
|
"ValueSeconds": "{0} sekund",
|
||||||
"ValueOneSong": "1 skladba",
|
"ValueOneSong": "1 skladba",
|
||||||
"ValueOneSeries": "1 serija",
|
"ValueOneSeries": "1 serija",
|
||||||
"ValueOneMusicVideo": "1 glasbeni video",
|
"ValueOneMusicVideo": "1 videospot",
|
||||||
"ValueOneMovie": "1 film",
|
"ValueOneMovie": "1 film",
|
||||||
"ValueOneEpisode": "1 epizoda",
|
"ValueOneEpisode": "1 epizoda",
|
||||||
"ValueOneAlbum": "1 album",
|
"ValueOneAlbum": "1 album",
|
||||||
|
@ -1392,5 +1392,39 @@
|
||||||
"MessageConfirmAppExit": "Ali želite končati?",
|
"MessageConfirmAppExit": "Ali želite končati?",
|
||||||
"LabelWeb": "Splet:",
|
"LabelWeb": "Splet:",
|
||||||
"LabelLineup": "Postava:",
|
"LabelLineup": "Postava:",
|
||||||
"BoxSet": "Komplet"
|
"BoxSet": "Komplet",
|
||||||
|
"TabMetadata": "Metapodatki",
|
||||||
|
"TabInfo": "Informacije",
|
||||||
|
"TabGuide": "Vodič",
|
||||||
|
"TabFavorites": "Priljubljeni",
|
||||||
|
"TabEpisodes": "Epizode",
|
||||||
|
"TabDisplay": "Prikaz",
|
||||||
|
"TabDirectPlay": "Neposredno predvajanje",
|
||||||
|
"TabDevices": "Naprave",
|
||||||
|
"TabCodecs": "Kodeki",
|
||||||
|
"TabChannels": "Programi",
|
||||||
|
"OptionRegex": "Regex",
|
||||||
|
"OptionProtocolHls": "HTTP pretakanje v živo",
|
||||||
|
"OptionProfileVideoAudio": "Video zvok",
|
||||||
|
"ThemeSongs": "Glavne pesmi",
|
||||||
|
"TabTranscoding": "Prekodiranje",
|
||||||
|
"TabStreaming": "Pretakanje",
|
||||||
|
"TabSongs": "Skladbe",
|
||||||
|
"TabSettings": "Nastavitve",
|
||||||
|
"TabServer": "Strežnik",
|
||||||
|
"TabSeries": "Serije",
|
||||||
|
"TabScheduledTasks": "Načrtovana opravila",
|
||||||
|
"TabResumeSettings": "Nadaljuj",
|
||||||
|
"UninstallPluginHeader": "Odstrani dodatek",
|
||||||
|
"UninstallPluginConfirmation": "Ali ste prepričan, da želite odstraniti {0}?",
|
||||||
|
"ServerRestartNeededAfterPluginInstall": "Po namestitvi dodatka bo potreben ponoven zagon jellyfin strežnika.",
|
||||||
|
"TabResponses": "Odzivi",
|
||||||
|
"TabRecordings": "Posnetki",
|
||||||
|
"TabPlugins": "Dodatki",
|
||||||
|
"TabPlaylists": "Seznami predvajanja",
|
||||||
|
"TabOther": "Ostalo",
|
||||||
|
"TabNotifications": "Obvestila",
|
||||||
|
"TabNfoSettings": "Nastavitve NFO",
|
||||||
|
"TabMusicVideos": "Videospoti",
|
||||||
|
"TabMovies": "Filmi"
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,7 +179,7 @@
|
||||||
"Download": "Ladda ned",
|
"Download": "Ladda ned",
|
||||||
"DownloadsValue": "Nedladdningar: {0}",
|
"DownloadsValue": "Nedladdningar: {0}",
|
||||||
"DrmChannelsNotImported": "Kanaler med DRM kommer inte att importeras.",
|
"DrmChannelsNotImported": "Kanaler med DRM kommer inte att importeras.",
|
||||||
"DropShadow": "Mjuk",
|
"DropShadow": "Skugga",
|
||||||
"EasyPasswordHelp": "Din enkla pin-kod används för att logga in offline på klienter som stödjer det, och kan också användas för enkel inloggning från ditt nätverk.",
|
"EasyPasswordHelp": "Din enkla pin-kod används för att logga in offline på klienter som stödjer det, och kan också användas för enkel inloggning från ditt nätverk.",
|
||||||
"Edit": "Ändra",
|
"Edit": "Ändra",
|
||||||
"EditImages": "Ändra bilder",
|
"EditImages": "Ändra bilder",
|
||||||
|
@ -539,7 +539,7 @@
|
||||||
"LabelEmbedAlbumArtDidl": "Bädda in omslagsbilder i Didl",
|
"LabelEmbedAlbumArtDidl": "Bädda in omslagsbilder i Didl",
|
||||||
"LabelEmbedAlbumArtDidlHelp": "Vissa enheter föredrar den här metoden att ta fram omslagsbilder. Andra kanske avbryter avspelningen om detta val är aktiverat.",
|
"LabelEmbedAlbumArtDidlHelp": "Vissa enheter föredrar den här metoden att ta fram omslagsbilder. Andra kanske avbryter avspelningen om detta val är aktiverat.",
|
||||||
"LabelEnableAutomaticPortMap": "Aktivera automatisk koppling av portar",
|
"LabelEnableAutomaticPortMap": "Aktivera automatisk koppling av portar",
|
||||||
"LabelEnableAutomaticPortMapHelp": "Automatisk länkning av publik port på routern och lokal port på servern via UPnP. Detta kanske inte fungerar med alla routrar och nätverks konfigurationer. Obs. Ingenting kommer att ändras förrän servern startats om.",
|
"LabelEnableAutomaticPortMapHelp": "För automatiskt vidare publika portar från din router till lokala portar på din server via UPnP. Detta fungerar inte med alla router modeller eller nätverkskonfigurationer. Ändringar kommer inte appliceras inte tills server startats om.",
|
||||||
"LabelEnableBlastAliveMessages": "Skicka ut \"jag lever\"-meddelanden",
|
"LabelEnableBlastAliveMessages": "Skicka ut \"jag lever\"-meddelanden",
|
||||||
"LabelEnableBlastAliveMessagesHelp": "Aktivera detta om andra UPnP-enheter på nätverket har problem att upptäcka servern.",
|
"LabelEnableBlastAliveMessagesHelp": "Aktivera detta om andra UPnP-enheter på nätverket har problem att upptäcka servern.",
|
||||||
"LabelEnableDlnaClientDiscoveryInterval": "Intervall för upptäckt av klienter (i sekunder)",
|
"LabelEnableDlnaClientDiscoveryInterval": "Intervall för upptäckt av klienter (i sekunder)",
|
||||||
|
@ -660,7 +660,7 @@
|
||||||
"LabelNumberOfGuideDays": "Antal dagars tablå att hämta:",
|
"LabelNumberOfGuideDays": "Antal dagars tablå att hämta:",
|
||||||
"LabelNumberOfGuideDaysHelp": "Hämtning av en längre periods tablå ger möjlighet att boka inspelningar och se program längre fram i tiden, men ger längre nedladdningstid. \"Auto\" väljer baserat på antalet kanaler.",
|
"LabelNumberOfGuideDaysHelp": "Hämtning av en längre periods tablå ger möjlighet att boka inspelningar och se program längre fram i tiden, men ger längre nedladdningstid. \"Auto\" väljer baserat på antalet kanaler.",
|
||||||
"LabelOptionalNetworkPath": "(Valfri) Delad nätverksmapp:",
|
"LabelOptionalNetworkPath": "(Valfri) Delad nätverksmapp:",
|
||||||
"LabelOptionalNetworkPathHelp": "Om denna mappen delas på ditt nätverk, kan den delade sökvägen tillåta Jellyfin-appar på andra enheter att streama mediafiler direkt.",
|
"LabelOptionalNetworkPathHelp": "Om denna mappen delas på ditt nätverk, kan den delade sökvägen tillåta Jellyfin-appar på andra enheter att streama mediafiler direkt. Som exempel, {0} eller {1}.",
|
||||||
"LabelOriginalAspectRatio": "Ursprungligt bildförhållande:",
|
"LabelOriginalAspectRatio": "Ursprungligt bildförhållande:",
|
||||||
"LabelOriginalTitle": "Original titel:",
|
"LabelOriginalTitle": "Original titel:",
|
||||||
"LabelOverview": "Synopsis:",
|
"LabelOverview": "Synopsis:",
|
||||||
|
@ -850,7 +850,7 @@
|
||||||
"MessageNoAvailablePlugins": "Inga tillägg tillgängliga.",
|
"MessageNoAvailablePlugins": "Inga tillägg tillgängliga.",
|
||||||
"MessageNoMovieSuggestionsAvailable": "Det finns inga filmförslag för tillfället. Efter att ha sett ett antal filmer kan du återkomma hit för att se dina förslag.",
|
"MessageNoMovieSuggestionsAvailable": "Det finns inga filmförslag för tillfället. Efter att ha sett ett antal filmer kan du återkomma hit för att se dina förslag.",
|
||||||
"MessageNoPluginsInstalled": "Inga tillägg har installerats.",
|
"MessageNoPluginsInstalled": "Inga tillägg har installerats.",
|
||||||
"MessageNoTrailersFound": "Hittade inga trailers. Installera Trailer-kanalen och öka biokänslan genom att lägga till ett bibliotek av trailers.",
|
"MessageNoTrailersFound": "Installera Trailer-kanalen och öka biokänslan genom att lägga till ett bibliotek av trailers.",
|
||||||
"MessageNothingHere": "Ingenting här.",
|
"MessageNothingHere": "Ingenting här.",
|
||||||
"MessagePasswordResetForUsers": "Lösenord har tagots bort från följande användare. För att logga in, använd ett blankt lösenord.",
|
"MessagePasswordResetForUsers": "Lösenord har tagots bort från följande användare. För att logga in, använd ett blankt lösenord.",
|
||||||
"MessagePlayAccessRestricted": "Uppspelning av detta innehållet är för närvarande begränsat. Kontakta din server administratör för mer information.",
|
"MessagePlayAccessRestricted": "Uppspelning av detta innehållet är för närvarande begränsat. Kontakta din server administratör för mer information.",
|
||||||
|
@ -891,7 +891,7 @@
|
||||||
"NoNextUpItemsMessage": "Hittade inget. Sätt igång och titta!",
|
"NoNextUpItemsMessage": "Hittade inget. Sätt igång och titta!",
|
||||||
"NoPluginConfigurationMessage": "Detta tillägg har inga inställningar att konfigurera.",
|
"NoPluginConfigurationMessage": "Detta tillägg har inga inställningar att konfigurera.",
|
||||||
"NoSubtitleSearchResultsFound": "Inga resultat hittades.",
|
"NoSubtitleSearchResultsFound": "Inga resultat hittades.",
|
||||||
"NoSubtitles": "Inga undertexter",
|
"NoSubtitles": "Inga",
|
||||||
"NoSubtitlesHelp": "Undertexter kommer inte visas per standard. Det kan fortfarande sättas på manuellt under uppspelning.",
|
"NoSubtitlesHelp": "Undertexter kommer inte visas per standard. Det kan fortfarande sättas på manuellt under uppspelning.",
|
||||||
"None": "Inga",
|
"None": "Inga",
|
||||||
"NumLocationsValue": "{0} mappar",
|
"NumLocationsValue": "{0} mappar",
|
||||||
|
@ -1350,7 +1350,7 @@
|
||||||
"LabelPlayMethod": "Spelmetod:",
|
"LabelPlayMethod": "Spelmetod:",
|
||||||
"LabelPlayerDimensions": "Spelare dimensioner:",
|
"LabelPlayerDimensions": "Spelare dimensioner:",
|
||||||
"LabelPasswordResetProvider": "Lösenords Återställning Leverantör:",
|
"LabelPasswordResetProvider": "Lösenords Återställning Leverantör:",
|
||||||
"LabelBaseUrlHelp": "Du kan lägga till en egen underkategori här för att få tillgång till servern från en mer unik URL.",
|
"LabelBaseUrlHelp": "Lägger till en anpassad undermapp till serverns URL. Som exempel: <code>http://example.com/<b><baseurl></b></code>",
|
||||||
"LabelCorruptedFrames": "Skadade ramar:",
|
"LabelCorruptedFrames": "Skadade ramar:",
|
||||||
"HeaderParentalRatings": "Föräldrabetyg",
|
"HeaderParentalRatings": "Föräldrabetyg",
|
||||||
"HeaderNavigation": "Navigering",
|
"HeaderNavigation": "Navigering",
|
||||||
|
@ -1388,7 +1388,7 @@
|
||||||
"OptionThumbCard": "Miniatyr kort",
|
"OptionThumbCard": "Miniatyr kort",
|
||||||
"OptionThumb": "Miniatyr",
|
"OptionThumb": "Miniatyr",
|
||||||
"OptionSaveMetadataAsHiddenHelp": "Ändring av detta kommer att tilldelas till ny metadata som sparas. Existerande metadata filer kommer att uppdateras nästa gång dom sparas av Jellyfin Server.",
|
"OptionSaveMetadataAsHiddenHelp": "Ändring av detta kommer att tilldelas till ny metadata som sparas. Existerande metadata filer kommer att uppdateras nästa gång dom sparas av Jellyfin Server.",
|
||||||
"OptionResElement": "res element",
|
"OptionResElement": "återskapa element",
|
||||||
"OptionRegex": "Regex",
|
"OptionRegex": "Regex",
|
||||||
"OptionRandom": "Slumpmässig",
|
"OptionRandom": "Slumpmässig",
|
||||||
"OptionProtocolHttp": "HTTP",
|
"OptionProtocolHttp": "HTTP",
|
||||||
|
@ -1499,7 +1499,7 @@
|
||||||
"MessageUnauthorizedUser": "Du har inte behörighet att komma åt servern just nu. Kontakta din serveradministratör för mer information.",
|
"MessageUnauthorizedUser": "Du har inte behörighet att komma åt servern just nu. Kontakta din serveradministratör för mer information.",
|
||||||
"HeaderFavoritePlaylists": "Favoritspellista",
|
"HeaderFavoritePlaylists": "Favoritspellista",
|
||||||
"OnWakeFromSleep": "Vid start från vilande läge",
|
"OnWakeFromSleep": "Vid start från vilande läge",
|
||||||
"UnsupportedPlayback": "Jellyfin kan inte dekryptera inehåll skyddat av DRM men allt inehåll kommer ändå försökas, även skyddade titlar. Vissa filer kan se helt svart ut på grund av kryptering eller andra funktioner som inte stöds, till exempel interaktiva titlar.",
|
"UnsupportedPlayback": "Jellyfin kan inte dekryptera inehåll skyddat av DRM men allt inehåll kommer ändå försökas, även skyddade titlar. Vissa filer kan se helt svarta ut på grund av kryptering eller andra funktioner som inte stöds, till exempel interaktiva titlar.",
|
||||||
"LabelLibraryPageSizeHelp": "Sätter en begränsad sidstorlek i bibliotek. Sätt 0 för att avaktivera begränsad sidstorlek.",
|
"LabelLibraryPageSizeHelp": "Sätter en begränsad sidstorlek i bibliotek. Sätt 0 för att avaktivera begränsad sidstorlek.",
|
||||||
"ApiKeysCaption": "Lista av aktiva API-nycklar",
|
"ApiKeysCaption": "Lista av aktiva API-nycklar",
|
||||||
"DeinterlaceMethodHelp": "Välj metod för borttagning av inflätning vid konvertering av inflätat inehåll.",
|
"DeinterlaceMethodHelp": "Välj metod för borttagning av inflätning vid konvertering av inflätat inehåll.",
|
||||||
|
@ -1518,7 +1518,58 @@
|
||||||
"HeaderSyncPlaySelectGroup": "Gå med i en grupp",
|
"HeaderSyncPlaySelectGroup": "Gå med i en grupp",
|
||||||
"EnableDecodingColorDepth10Vp9": "Aktivera 10-Bitars hårdvaru avcodning för VP9",
|
"EnableDecodingColorDepth10Vp9": "Aktivera 10-Bitars hårdvaru avcodning för VP9",
|
||||||
"EnableDecodingColorDepth10Hevc": "Aktivera 10-Bitars hårdvaru avcodning för HEVC",
|
"EnableDecodingColorDepth10Hevc": "Aktivera 10-Bitars hårdvaru avcodning för HEVC",
|
||||||
"HeaderSyncPlayEnabled": "SyncPlay påslaget",
|
"HeaderSyncPlayEnabled": "SyncPlay aktiverat",
|
||||||
"EnableDetailsBannerHelp": "Visa en bannerbild högst upp på sidan för detaljsidan .",
|
"EnableDetailsBannerHelp": "Visa en bannerbild högst upp på sidan för detaljsidan .",
|
||||||
"EnableDetailsBanner": "Information banner"
|
"EnableDetailsBanner": "Information banner",
|
||||||
|
"LabelRepositoryName": "Förvaringsplats namn",
|
||||||
|
"LabelRepositoryUrlHelp": "Platsen för det förvaringsplats manifest du vill inkludera.",
|
||||||
|
"LabelRepositoryUrl": "Förvaringsplats URL",
|
||||||
|
"HeaderNewRepository": "Ny förvaringsplats",
|
||||||
|
"MessageNoRepositories": "Inga förvaringsplatser.",
|
||||||
|
"LabelSyncPlayAccess": "SyncPlay åtkomst",
|
||||||
|
"LabelSyncPlayAccessNone": "Avstängt för denna användaren",
|
||||||
|
"LabelSyncPlayAccessJoinGroups": "Tillåt användaren att gå med i grupper",
|
||||||
|
"LabelSyncPlayAccessCreateAndJoinGroups": "Tillåt användaren att skapa och gå med i grupper",
|
||||||
|
"LabelSyncPlayLeaveGroupDescription": "Stäng av SyncPlay",
|
||||||
|
"LabelSyncPlayLeaveGroup": "Lämna grupp",
|
||||||
|
"LabelSyncPlayNewGroupDescription": "Skapa ny grupp",
|
||||||
|
"LabelSyncPlayNewGroup": "Ny grupp",
|
||||||
|
"LabelSyncPlaySyncMethod": "Synkningsmetod:",
|
||||||
|
"LabelSyncPlayPlaybackDiff": "Uppspelnings tids skillnad:",
|
||||||
|
"MillisecondsUnit": "ms",
|
||||||
|
"LabelSyncPlayTimeOffset": "Tids skillnad med servern:",
|
||||||
|
"EnableFasterAnimationsHelp": "Använd snabbare animationer och övergångar",
|
||||||
|
"EnableFasterAnimations": "Snabbare animationer",
|
||||||
|
"LabelRequireHttpsHelp": "Om valt, kommer servern automatiskt omdirigera all inkommande trafik över HTTP till HTTPS. Detta har ingen effekt om servern inte lyssnar på HTTPS.",
|
||||||
|
"ClearQueue": "Töm kön",
|
||||||
|
"StopPlayback": "Stoppa uppspelning",
|
||||||
|
"ButtonPlayer": "Spelare",
|
||||||
|
"ButtonCast": "Roller",
|
||||||
|
"EnableBlurhashHelp": "Bilder som fortfarande laddas kommer visas med en suddig platshållare",
|
||||||
|
"EnableBlurhash": "Aktivera suddiga platshållare för bilder",
|
||||||
|
"Writers": "Skribenter",
|
||||||
|
"ViewAlbumArtist": "Visa albums artist",
|
||||||
|
"TabRepositories": "Förvaringsplatser",
|
||||||
|
"SyncPlayAccessHelp": "Välj tillgångsnivån för denna användaren har till SyncPlay funktionen. SyncPlay tillåter en att synka uppspelning med andra enheter.",
|
||||||
|
"ShowMore": "Visa mer",
|
||||||
|
"ShowLess": "Visa mindre",
|
||||||
|
"MessageSyncPlayErrorMedia": "Misslyckades att aktivera SyncPlay! Media fel.",
|
||||||
|
"MessageSyncPlayErrorMissingSession": "Misslyckades att aktivera SyncPlay! Saknar session.",
|
||||||
|
"MessageAddRepository": "Om du vill skapa en förvaringsplats, klicka på knappen bredvid rubriken och fyll i all omfrågad information.",
|
||||||
|
"MessageSyncPlayErrorNoActivePlayer": "Ingen aktiv spelare hittades. SyncPlay har avaktiverats.",
|
||||||
|
"MessageSyncPlayErrorAccessingGroups": "Ett fel uppstod vid hämtning av grupplista.",
|
||||||
|
"MessageSyncPlayLibraryAccessDenied": "Tillgång till detta innehåll är begränsat.",
|
||||||
|
"MessageSyncPlayJoinGroupDenied": "Tillåtelse krävs för att använda SyncPlay.",
|
||||||
|
"MessageSyncPlayCreateGroupDenied": "Tillåtelse krävs för att skapa en grupp.",
|
||||||
|
"MessageSyncPlayGroupDoesNotExist": "Kunde inte gå med i gruppen då den inte finns.",
|
||||||
|
"MessageSyncPlayPlaybackPermissionRequired": "Uppspelningstillåtelse krävs.",
|
||||||
|
"MessageSyncPlayNoGroupsAvailable": "Inga grupper tillgängliga. Börja spela något först.",
|
||||||
|
"MessageSyncPlayGroupWait": "<b>{0}</b> buffrar…",
|
||||||
|
"MessageSyncPlayUserLeft": "<b>{0}</b> har lämnat gruppen.",
|
||||||
|
"MessageSyncPlayUserJoined": "<b>{0}</b> har anslutit till gruppen.",
|
||||||
|
"MessageSyncPlayDisabled": "SyncPlay avaktiverat.",
|
||||||
|
"MessageSyncPlayEnabled": "SyncPlay aktiverat.",
|
||||||
|
"MessageNoGenresAvailable": "Aktivera vissa metadataleverantörer att hämta genrer från internet.",
|
||||||
|
"LabelRepositoryNameHelp": "Ett eget namn för att särskilja denna förvaringsplats från andra tillagda på din server.",
|
||||||
|
"LabelNightly": "Nattlig"
|
||||||
}
|
}
|
||||||
|
|
|
@ -825,5 +825,10 @@
|
||||||
"LabelMaxStreamingBitrate": "Chất lượng phát tối đa:",
|
"LabelMaxStreamingBitrate": "Chất lượng phát tối đa:",
|
||||||
"LabelMaxScreenshotsPerItem": "Số lượng ảnh chụp tối đa mỗi mục:",
|
"LabelMaxScreenshotsPerItem": "Số lượng ảnh chụp tối đa mỗi mục:",
|
||||||
"LabelMaxResumePercentageHelp": "Nội dung sẽ được cho là đã kết thúc nếu ngừng phát sau thời gian này.",
|
"LabelMaxResumePercentageHelp": "Nội dung sẽ được cho là đã kết thúc nếu ngừng phát sau thời gian này.",
|
||||||
"ButtonSyncPlay": "SyncPlay"
|
"ButtonSyncPlay": "SyncPlay",
|
||||||
|
"LabelPasswordConfirm": "Mật khẩu (xác nhận):",
|
||||||
|
"LabelPassword": "Mật khẩu:",
|
||||||
|
"LabelNotificationEnabled": "Bật thông báo này",
|
||||||
|
"LabelNewsCategories": "",
|
||||||
|
"LabelStable": "Ổn Định"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1362,7 +1362,7 @@
|
||||||
"DashboardVersionNumber": "版本:{0}",
|
"DashboardVersionNumber": "版本:{0}",
|
||||||
"DashboardServerName": "服务器:{0}",
|
"DashboardServerName": "服务器:{0}",
|
||||||
"LabelVideo": "视频",
|
"LabelVideo": "视频",
|
||||||
"LabelWeb": "网站:",
|
"LabelWeb": "网页:",
|
||||||
"LeaveBlankToNotSetAPassword": "您可以将此字段留空以设置空密码。",
|
"LeaveBlankToNotSetAPassword": "您可以将此字段留空以设置空密码。",
|
||||||
"LinksValue": "链接:{0}",
|
"LinksValue": "链接:{0}",
|
||||||
"LiveBroadcasts": "直播",
|
"LiveBroadcasts": "直播",
|
||||||
|
|
238
yarn.lock
238
yarn.lock
|
@ -9,28 +9,28 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/highlight" "^7.10.4"
|
"@babel/highlight" "^7.10.4"
|
||||||
|
|
||||||
"@babel/compat-data@^7.10.4":
|
"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0":
|
||||||
version "7.10.4"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.4.tgz#706a6484ee6f910b719b696a9194f8da7d7ac241"
|
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c"
|
||||||
integrity sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw==
|
integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.12.0"
|
browserslist "^4.12.0"
|
||||||
invariant "^2.2.4"
|
invariant "^2.2.4"
|
||||||
semver "^5.5.0"
|
semver "^5.5.0"
|
||||||
|
|
||||||
"@babel/core@>=7.2.2", "@babel/core@>=7.9.0", "@babel/core@^7.10.5":
|
"@babel/core@>=7.2.2", "@babel/core@>=7.9.0", "@babel/core@^7.11.0":
|
||||||
version "7.10.5"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330"
|
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.0.tgz#73b9c33f1658506887f767c26dae07798b30df76"
|
||||||
integrity sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==
|
integrity sha512-mkLq8nwaXmDtFmRkQ8ED/eA2CnVw4zr7dCztKalZXBvdK5EeNUAesrrwUqjQEzFgomJssayzB0aqlOsP1vGLqg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.10.4"
|
"@babel/code-frame" "^7.10.4"
|
||||||
"@babel/generator" "^7.10.5"
|
"@babel/generator" "^7.11.0"
|
||||||
"@babel/helper-module-transforms" "^7.10.5"
|
"@babel/helper-module-transforms" "^7.11.0"
|
||||||
"@babel/helpers" "^7.10.4"
|
"@babel/helpers" "^7.10.4"
|
||||||
"@babel/parser" "^7.10.5"
|
"@babel/parser" "^7.11.0"
|
||||||
"@babel/template" "^7.10.4"
|
"@babel/template" "^7.10.4"
|
||||||
"@babel/traverse" "^7.10.5"
|
"@babel/traverse" "^7.11.0"
|
||||||
"@babel/types" "^7.10.5"
|
"@babel/types" "^7.11.0"
|
||||||
convert-source-map "^1.7.0"
|
convert-source-map "^1.7.0"
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
gensync "^1.0.0-beta.1"
|
gensync "^1.0.0-beta.1"
|
||||||
|
@ -40,12 +40,12 @@
|
||||||
semver "^5.4.1"
|
semver "^5.4.1"
|
||||||
source-map "^0.5.0"
|
source-map "^0.5.0"
|
||||||
|
|
||||||
"@babel/generator@^7.10.5":
|
"@babel/generator@^7.11.0":
|
||||||
version "7.10.5"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69"
|
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.0.tgz#4b90c78d8c12825024568cbe83ee6c9af193585c"
|
||||||
integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==
|
integrity sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.10.5"
|
"@babel/types" "^7.11.0"
|
||||||
jsesc "^2.5.1"
|
jsesc "^2.5.1"
|
||||||
source-map "^0.5.0"
|
source-map "^0.5.0"
|
||||||
|
|
||||||
|
@ -150,17 +150,17 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.10.4"
|
"@babel/types" "^7.10.4"
|
||||||
|
|
||||||
"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5":
|
"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0":
|
||||||
version "7.10.5"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6"
|
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359"
|
||||||
integrity sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==
|
integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-module-imports" "^7.10.4"
|
"@babel/helper-module-imports" "^7.10.4"
|
||||||
"@babel/helper-replace-supers" "^7.10.4"
|
"@babel/helper-replace-supers" "^7.10.4"
|
||||||
"@babel/helper-simple-access" "^7.10.4"
|
"@babel/helper-simple-access" "^7.10.4"
|
||||||
"@babel/helper-split-export-declaration" "^7.10.4"
|
"@babel/helper-split-export-declaration" "^7.11.0"
|
||||||
"@babel/template" "^7.10.4"
|
"@babel/template" "^7.10.4"
|
||||||
"@babel/types" "^7.10.5"
|
"@babel/types" "^7.11.0"
|
||||||
lodash "^4.17.19"
|
lodash "^4.17.19"
|
||||||
|
|
||||||
"@babel/helper-optimise-call-expression@^7.10.4":
|
"@babel/helper-optimise-call-expression@^7.10.4":
|
||||||
|
@ -170,7 +170,7 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.10.4"
|
"@babel/types" "^7.10.4"
|
||||||
|
|
||||||
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0":
|
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
|
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375"
|
||||||
integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
|
integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==
|
||||||
|
@ -211,6 +211,13 @@
|
||||||
"@babel/template" "^7.10.4"
|
"@babel/template" "^7.10.4"
|
||||||
"@babel/types" "^7.10.4"
|
"@babel/types" "^7.10.4"
|
||||||
|
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers@^7.11.0":
|
||||||
|
version "7.11.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729"
|
||||||
|
integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/types" "^7.11.0"
|
||||||
|
|
||||||
"@babel/helper-split-export-declaration@^7.10.4":
|
"@babel/helper-split-export-declaration@^7.10.4":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1"
|
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1"
|
||||||
|
@ -218,6 +225,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/types" "^7.10.4"
|
"@babel/types" "^7.10.4"
|
||||||
|
|
||||||
|
"@babel/helper-split-export-declaration@^7.11.0":
|
||||||
|
version "7.11.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f"
|
||||||
|
integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/types" "^7.11.0"
|
||||||
|
|
||||||
"@babel/helper-validator-identifier@^7.10.4":
|
"@babel/helper-validator-identifier@^7.10.4":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
|
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
|
||||||
|
@ -251,10 +265,10 @@
|
||||||
chalk "^2.0.0"
|
chalk "^2.0.0"
|
||||||
js-tokens "^4.0.0"
|
js-tokens "^4.0.0"
|
||||||
|
|
||||||
"@babel/parser@^7.10.4", "@babel/parser@^7.10.5":
|
"@babel/parser@^7.10.4", "@babel/parser@^7.11.0":
|
||||||
version "7.10.5"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b"
|
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.0.tgz#a9d7e11aead25d3b422d17b2c6502c8dddef6a5d"
|
||||||
integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==
|
integrity sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw==
|
||||||
|
|
||||||
"@babel/plugin-proposal-async-generator-functions@^7.10.4":
|
"@babel/plugin-proposal-async-generator-functions@^7.10.4":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
|
@ -281,6 +295,14 @@
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
|
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
|
||||||
|
|
||||||
|
"@babel/plugin-proposal-export-namespace-from@^7.10.4":
|
||||||
|
version "7.10.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54"
|
||||||
|
integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
|
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
||||||
|
|
||||||
"@babel/plugin-proposal-json-strings@^7.10.4":
|
"@babel/plugin-proposal-json-strings@^7.10.4":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db"
|
||||||
|
@ -289,6 +311,14 @@
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
"@babel/plugin-syntax-json-strings" "^7.8.0"
|
"@babel/plugin-syntax-json-strings" "^7.8.0"
|
||||||
|
|
||||||
|
"@babel/plugin-proposal-logical-assignment-operators@^7.11.0":
|
||||||
|
version "7.11.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8"
|
||||||
|
integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
|
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
||||||
|
|
||||||
"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4":
|
"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a"
|
||||||
|
@ -305,10 +335,10 @@
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
||||||
|
|
||||||
"@babel/plugin-proposal-object-rest-spread@^7.10.4":
|
"@babel/plugin-proposal-object-rest-spread@^7.11.0":
|
||||||
version "7.10.4"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af"
|
||||||
integrity sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==
|
integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
|
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
|
||||||
|
@ -322,12 +352,13 @@
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
"@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
|
"@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
|
||||||
|
|
||||||
"@babel/plugin-proposal-optional-chaining@^7.10.4":
|
"@babel/plugin-proposal-optional-chaining@^7.11.0":
|
||||||
version "7.10.4"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076"
|
||||||
integrity sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ==
|
integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.11.0"
|
||||||
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
|
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
|
||||||
|
|
||||||
"@babel/plugin-proposal-private-methods@^7.10.1", "@babel/plugin-proposal-private-methods@^7.10.4":
|
"@babel/plugin-proposal-private-methods@^7.10.1", "@babel/plugin-proposal-private-methods@^7.10.4":
|
||||||
|
@ -367,6 +398,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.8.0"
|
"@babel/helper-plugin-utils" "^7.8.0"
|
||||||
|
|
||||||
|
"@babel/plugin-syntax-export-namespace-from@^7.8.3":
|
||||||
|
version "7.8.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
|
||||||
|
integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.8.3"
|
||||||
|
|
||||||
"@babel/plugin-syntax-json-strings@^7.8.0":
|
"@babel/plugin-syntax-json-strings@^7.8.0":
|
||||||
version "7.8.3"
|
version "7.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
|
||||||
|
@ -374,6 +412,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.8.0"
|
"@babel/helper-plugin-utils" "^7.8.0"
|
||||||
|
|
||||||
|
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
|
||||||
|
version "7.10.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
|
||||||
|
integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
|
|
||||||
"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
|
"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
|
||||||
version "7.8.3"
|
version "7.8.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
|
||||||
|
@ -622,12 +667,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
|
|
||||||
"@babel/plugin-transform-spread@^7.10.4":
|
"@babel/plugin-transform-spread@^7.11.0":
|
||||||
version "7.10.4"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc"
|
||||||
integrity sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==
|
integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers" "^7.11.0"
|
||||||
|
|
||||||
"@babel/plugin-transform-sticky-regex@^7.10.4":
|
"@babel/plugin-transform-sticky-regex@^7.10.4":
|
||||||
version "7.10.4"
|
version "7.10.4"
|
||||||
|
@ -675,30 +721,34 @@
|
||||||
core-js "^2.6.5"
|
core-js "^2.6.5"
|
||||||
regenerator-runtime "^0.13.4"
|
regenerator-runtime "^0.13.4"
|
||||||
|
|
||||||
"@babel/preset-env@^7.10.3":
|
"@babel/preset-env@^7.11.0":
|
||||||
version "7.10.4"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f"
|
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796"
|
||||||
integrity sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw==
|
integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/compat-data" "^7.10.4"
|
"@babel/compat-data" "^7.11.0"
|
||||||
"@babel/helper-compilation-targets" "^7.10.4"
|
"@babel/helper-compilation-targets" "^7.10.4"
|
||||||
"@babel/helper-module-imports" "^7.10.4"
|
"@babel/helper-module-imports" "^7.10.4"
|
||||||
"@babel/helper-plugin-utils" "^7.10.4"
|
"@babel/helper-plugin-utils" "^7.10.4"
|
||||||
"@babel/plugin-proposal-async-generator-functions" "^7.10.4"
|
"@babel/plugin-proposal-async-generator-functions" "^7.10.4"
|
||||||
"@babel/plugin-proposal-class-properties" "^7.10.4"
|
"@babel/plugin-proposal-class-properties" "^7.10.4"
|
||||||
"@babel/plugin-proposal-dynamic-import" "^7.10.4"
|
"@babel/plugin-proposal-dynamic-import" "^7.10.4"
|
||||||
|
"@babel/plugin-proposal-export-namespace-from" "^7.10.4"
|
||||||
"@babel/plugin-proposal-json-strings" "^7.10.4"
|
"@babel/plugin-proposal-json-strings" "^7.10.4"
|
||||||
|
"@babel/plugin-proposal-logical-assignment-operators" "^7.11.0"
|
||||||
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4"
|
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4"
|
||||||
"@babel/plugin-proposal-numeric-separator" "^7.10.4"
|
"@babel/plugin-proposal-numeric-separator" "^7.10.4"
|
||||||
"@babel/plugin-proposal-object-rest-spread" "^7.10.4"
|
"@babel/plugin-proposal-object-rest-spread" "^7.11.0"
|
||||||
"@babel/plugin-proposal-optional-catch-binding" "^7.10.4"
|
"@babel/plugin-proposal-optional-catch-binding" "^7.10.4"
|
||||||
"@babel/plugin-proposal-optional-chaining" "^7.10.4"
|
"@babel/plugin-proposal-optional-chaining" "^7.11.0"
|
||||||
"@babel/plugin-proposal-private-methods" "^7.10.4"
|
"@babel/plugin-proposal-private-methods" "^7.10.4"
|
||||||
"@babel/plugin-proposal-unicode-property-regex" "^7.10.4"
|
"@babel/plugin-proposal-unicode-property-regex" "^7.10.4"
|
||||||
"@babel/plugin-syntax-async-generators" "^7.8.0"
|
"@babel/plugin-syntax-async-generators" "^7.8.0"
|
||||||
"@babel/plugin-syntax-class-properties" "^7.10.4"
|
"@babel/plugin-syntax-class-properties" "^7.10.4"
|
||||||
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
|
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
|
||||||
|
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
||||||
"@babel/plugin-syntax-json-strings" "^7.8.0"
|
"@babel/plugin-syntax-json-strings" "^7.8.0"
|
||||||
|
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
||||||
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
|
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
|
||||||
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
||||||
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
|
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
|
||||||
|
@ -731,14 +781,14 @@
|
||||||
"@babel/plugin-transform-regenerator" "^7.10.4"
|
"@babel/plugin-transform-regenerator" "^7.10.4"
|
||||||
"@babel/plugin-transform-reserved-words" "^7.10.4"
|
"@babel/plugin-transform-reserved-words" "^7.10.4"
|
||||||
"@babel/plugin-transform-shorthand-properties" "^7.10.4"
|
"@babel/plugin-transform-shorthand-properties" "^7.10.4"
|
||||||
"@babel/plugin-transform-spread" "^7.10.4"
|
"@babel/plugin-transform-spread" "^7.11.0"
|
||||||
"@babel/plugin-transform-sticky-regex" "^7.10.4"
|
"@babel/plugin-transform-sticky-regex" "^7.10.4"
|
||||||
"@babel/plugin-transform-template-literals" "^7.10.4"
|
"@babel/plugin-transform-template-literals" "^7.10.4"
|
||||||
"@babel/plugin-transform-typeof-symbol" "^7.10.4"
|
"@babel/plugin-transform-typeof-symbol" "^7.10.4"
|
||||||
"@babel/plugin-transform-unicode-escapes" "^7.10.4"
|
"@babel/plugin-transform-unicode-escapes" "^7.10.4"
|
||||||
"@babel/plugin-transform-unicode-regex" "^7.10.4"
|
"@babel/plugin-transform-unicode-regex" "^7.10.4"
|
||||||
"@babel/preset-modules" "^0.1.3"
|
"@babel/preset-modules" "^0.1.3"
|
||||||
"@babel/types" "^7.10.4"
|
"@babel/types" "^7.11.0"
|
||||||
browserslist "^4.12.0"
|
browserslist "^4.12.0"
|
||||||
core-js-compat "^3.6.2"
|
core-js-compat "^3.6.2"
|
||||||
invariant "^2.2.2"
|
invariant "^2.2.2"
|
||||||
|
@ -779,25 +829,25 @@
|
||||||
"@babel/parser" "^7.10.4"
|
"@babel/parser" "^7.10.4"
|
||||||
"@babel/types" "^7.10.4"
|
"@babel/types" "^7.10.4"
|
||||||
|
|
||||||
"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5":
|
"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0":
|
||||||
version "7.10.5"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564"
|
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24"
|
||||||
integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==
|
integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.10.4"
|
"@babel/code-frame" "^7.10.4"
|
||||||
"@babel/generator" "^7.10.5"
|
"@babel/generator" "^7.11.0"
|
||||||
"@babel/helper-function-name" "^7.10.4"
|
"@babel/helper-function-name" "^7.10.4"
|
||||||
"@babel/helper-split-export-declaration" "^7.10.4"
|
"@babel/helper-split-export-declaration" "^7.11.0"
|
||||||
"@babel/parser" "^7.10.5"
|
"@babel/parser" "^7.11.0"
|
||||||
"@babel/types" "^7.10.5"
|
"@babel/types" "^7.11.0"
|
||||||
debug "^4.1.0"
|
debug "^4.1.0"
|
||||||
globals "^11.1.0"
|
globals "^11.1.0"
|
||||||
lodash "^4.17.19"
|
lodash "^4.17.19"
|
||||||
|
|
||||||
"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.4":
|
"@babel/types@^7.10.4", "@babel/types@^7.11.0", "@babel/types@^7.4.4":
|
||||||
version "7.10.5"
|
version "7.11.0"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15"
|
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.0.tgz#2ae6bf1ba9ae8c3c43824e5861269871b206e90d"
|
||||||
integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==
|
integrity sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-validator-identifier" "^7.10.4"
|
"@babel/helper-validator-identifier" "^7.10.4"
|
||||||
lodash "^4.17.19"
|
lodash "^4.17.19"
|
||||||
|
@ -1616,14 +1666,14 @@ atob@^2.1.2:
|
||||||
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
|
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
|
||||||
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
|
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
|
||||||
|
|
||||||
autoprefixer@^9.0.0, autoprefixer@^9.6.1, autoprefixer@^9.8.0, autoprefixer@^9.8.5:
|
autoprefixer@^9.0.0, autoprefixer@^9.6.1, autoprefixer@^9.8.0, autoprefixer@^9.8.6:
|
||||||
version "9.8.5"
|
version "9.8.6"
|
||||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.5.tgz#2c225de229ddafe1d1424c02791d0c3e10ccccaa"
|
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f"
|
||||||
integrity sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg==
|
integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==
|
||||||
dependencies:
|
dependencies:
|
||||||
browserslist "^4.12.0"
|
browserslist "^4.12.0"
|
||||||
caniuse-lite "^1.0.30001097"
|
caniuse-lite "^1.0.30001109"
|
||||||
colorette "^1.2.0"
|
colorette "^1.2.1"
|
||||||
normalize-range "^0.1.2"
|
normalize-range "^0.1.2"
|
||||||
num2fraction "^1.2.2"
|
num2fraction "^1.2.2"
|
||||||
postcss "^7.0.32"
|
postcss "^7.0.32"
|
||||||
|
@ -1857,9 +1907,9 @@ blurhash@^1.1.3:
|
||||||
integrity sha512-yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw==
|
integrity sha512-yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw==
|
||||||
|
|
||||||
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
|
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
|
||||||
version "4.11.8"
|
version "4.11.9"
|
||||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
|
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
|
||||||
integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
|
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
|
||||||
|
|
||||||
boolbase@^1.0.0, boolbase@~1.0.0:
|
boolbase@^1.0.0, boolbase@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
|
@ -2282,10 +2332,10 @@ caniuse-db@^1.0.30001090:
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001093.tgz#5a1cae72d94df1156f40f15d9079456e1b29d050"
|
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30001093.tgz#5a1cae72d94df1156f40f15d9079456e1b29d050"
|
||||||
integrity sha512-XqXxHR6Z9IN0BXLKMaTJ1NZ+US74cbKritholD6uaDLUWHiDj0QilpSb708wOcoGz0PmPRsXT/6zE+bjx+QSMw==
|
integrity sha512-XqXxHR6Z9IN0BXLKMaTJ1NZ+US74cbKritholD6uaDLUWHiDj0QilpSb708wOcoGz0PmPRsXT/6zE+bjx+QSMw==
|
||||||
|
|
||||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001088, caniuse-lite@^1.0.30001097:
|
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001088, caniuse-lite@^1.0.30001109:
|
||||||
version "1.0.30001099"
|
version "1.0.30001109"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001099.tgz#540118fcc6842d1fde62f4ee5521d1ec6afdb40e"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz#a9f3f26a0c3753b063d7acbb48dfb9c0e46f2b19"
|
||||||
integrity sha512-sdS9A+sQTk7wKoeuZBN/YMAHVztUfVnjDi4/UV3sDE8xoh7YR12hKW+pIdB3oqKGwr9XaFL2ovfzt9w8eUI5CA==
|
integrity sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ==
|
||||||
|
|
||||||
caseless@~0.12.0:
|
caseless@~0.12.0:
|
||||||
version "0.12.0"
|
version "0.12.0"
|
||||||
|
@ -2624,10 +2674,10 @@ color@^3.0.0:
|
||||||
color-convert "^1.9.1"
|
color-convert "^1.9.1"
|
||||||
color-string "^1.5.2"
|
color-string "^1.5.2"
|
||||||
|
|
||||||
colorette@^1.2.0:
|
colorette@^1.2.1:
|
||||||
version "1.2.0"
|
version "1.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.0.tgz#45306add826d196e8c87236ac05d797f25982e63"
|
resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b"
|
||||||
integrity sha512-soRSroY+OF/8OdA3PTQXwaDJeMc7TfknKKrxeSCencL2a4+Tx5zhxmmv7hdpCjhKBjehzp8+bwe/T68K0hpIjw==
|
integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==
|
||||||
|
|
||||||
combined-stream@^1.0.6, combined-stream@~1.0.6:
|
combined-stream@^1.0.6, combined-stream@~1.0.6:
|
||||||
version "1.0.8"
|
version "1.0.8"
|
||||||
|
@ -2968,10 +3018,10 @@ css-has-pseudo@^0.10.0:
|
||||||
postcss "^7.0.6"
|
postcss "^7.0.6"
|
||||||
postcss-selector-parser "^5.0.0-rc.4"
|
postcss-selector-parser "^5.0.0-rc.4"
|
||||||
|
|
||||||
css-loader@^4.0.0:
|
css-loader@^4.1.1:
|
||||||
version "4.0.0"
|
version "4.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.0.0.tgz#814434d4e1e2d5f430c70e85e78268db7f3cced1"
|
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.1.1.tgz#48342f098784e75bbfc0933dea2853314fb737d8"
|
||||||
integrity sha512-/7d5slKnmY2S39FNifJ7JQ8MhcMM/rDIjAZ2Sc/Z8lnOWOmc10hijg28ovBtljY364pQaF01O2nj5AIBDnJ9vQ==
|
integrity sha512-nZ4OC2g88+wOOdkVQ0yYy7T6uXSkb7I7UyMNnaevQQvVWskTSDRAz08ETl91et4ghVL6jfnzWUt0o2XaY0gyRg==
|
||||||
dependencies:
|
dependencies:
|
||||||
camelcase "^6.0.0"
|
camelcase "^6.0.0"
|
||||||
cssesc "^3.0.0"
|
cssesc "^3.0.0"
|
||||||
|
@ -3631,9 +3681,9 @@ electron-to-chromium@^1.3.483:
|
||||||
integrity sha512-NReBdOugu1yl8ly+0VDtiQ6Yw/1sLjnvflWq0gvY1nfUXU2PbA+1XAVuEb7ModnwL/MfUPjby7e4pAFnSHiy6Q==
|
integrity sha512-NReBdOugu1yl8ly+0VDtiQ6Yw/1sLjnvflWq0gvY1nfUXU2PbA+1XAVuEb7ModnwL/MfUPjby7e4pAFnSHiy6Q==
|
||||||
|
|
||||||
elliptic@^6.0.0:
|
elliptic@^6.0.0:
|
||||||
version "6.5.2"
|
version "6.5.3"
|
||||||
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
|
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
|
||||||
integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==
|
integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
|
||||||
dependencies:
|
dependencies:
|
||||||
bn.js "^4.4.0"
|
bn.js "^4.4.0"
|
||||||
brorand "^1.0.1"
|
brorand "^1.0.1"
|
||||||
|
@ -5417,10 +5467,10 @@ hex-color-regex@^1.1.0:
|
||||||
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
|
resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
|
||||||
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
|
integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
|
||||||
|
|
||||||
hls.js@^0.14.6:
|
hls.js@^0.14.7:
|
||||||
version "0.14.6"
|
version "0.14.7"
|
||||||
resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-0.14.6.tgz#f5ea8412ccd980fec67ec94a40b65adcc0bf75d1"
|
resolved "https://registry.yarnpkg.com/hls.js/-/hls.js-0.14.7.tgz#47fbd2662b13121ab17c07aea06b1c07828240cf"
|
||||||
integrity sha512-6s8L+Pzed3Gyf7wDxQNx9TP9y9clCDIPW8cQdDV7PF7npI75BbCbUZSQQclnt20442Ay1NL3vg2WXeSEYNiuAw==
|
integrity sha512-9JY0D9nwMrfQPRWc8/kEJTKK0TYfDTzIs6Xq+gdCvasRxdvQKQ2T76rdueTkS0AsFV6sQlJN0wxbnI44aRvvUA==
|
||||||
dependencies:
|
dependencies:
|
||||||
eventemitter3 "^4.0.3"
|
eventemitter3 "^4.0.3"
|
||||||
url-toolkit "^2.1.6"
|
url-toolkit "^2.1.6"
|
||||||
|
@ -11953,10 +12003,10 @@ webpack-stream@^5.2.1:
|
||||||
vinyl "^2.1.0"
|
vinyl "^2.1.0"
|
||||||
webpack "^4.26.1"
|
webpack "^4.26.1"
|
||||||
|
|
||||||
webpack@^4.26.1, webpack@^4.44.0:
|
webpack@^4.26.1, webpack@^4.44.1:
|
||||||
version "4.44.0"
|
version "4.44.1"
|
||||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.0.tgz#3b08f88a89470175f036f4a9496b8a0428668802"
|
resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.1.tgz#17e69fff9f321b8f117d1fda714edfc0b939cc21"
|
||||||
integrity sha512-wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw==
|
integrity sha512-4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@webassemblyjs/ast" "1.9.0"
|
"@webassemblyjs/ast" "1.9.0"
|
||||||
"@webassemblyjs/helper-module-context" "1.9.0"
|
"@webassemblyjs/helper-module-context" "1.9.0"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue