mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Move dashboard controllers to app dir
This commit is contained in:
parent
91d8a3fffd
commit
ea18af4bdd
45 changed files with 246 additions and 222 deletions
|
@ -1,36 +1,36 @@
|
||||||
import escapeHtml from 'escape-html';
|
import escapeHtml from 'escape-html';
|
||||||
|
|
||||||
import datetime from '../../scripts/datetime';
|
import datetime from 'scripts/datetime';
|
||||||
import Events from '../../utils/events.ts';
|
import Events from 'utils/events.ts';
|
||||||
import itemHelper from '../../components/itemHelper';
|
import itemHelper from 'components/itemHelper';
|
||||||
import serverNotifications from '../../scripts/serverNotifications';
|
import serverNotifications from 'scripts/serverNotifications';
|
||||||
import dom from '../../scripts/dom';
|
import dom from 'scripts/dom';
|
||||||
import globalize from '../../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import { formatDistanceToNow } from 'date-fns';
|
import { formatDistanceToNow } from 'date-fns';
|
||||||
import { getLocaleWithSuffix } from '../../utils/dateFnsLocale.ts';
|
import { getLocaleWithSuffix } from 'utils/dateFnsLocale.ts';
|
||||||
import loading from '../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import playMethodHelper from '../../components/playback/playmethodhelper';
|
import playMethodHelper from 'components/playback/playmethodhelper';
|
||||||
import cardBuilder from '../../components/cardbuilder/cardBuilder';
|
import cardBuilder from 'components/cardbuilder/cardBuilder';
|
||||||
import imageLoader from '../../components/images/imageLoader';
|
import imageLoader from 'components/images/imageLoader';
|
||||||
import ActivityLog from '../../components/activitylog';
|
import ActivityLog from 'components/activitylog';
|
||||||
import imageHelper from '../../utils/image';
|
import imageHelper from 'utils/image';
|
||||||
import indicators from '../../components/indicators/indicators';
|
import indicators from 'components/indicators/indicators';
|
||||||
import taskButton from '../../scripts/taskbutton';
|
import taskButton from 'scripts/taskbutton';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
import ServerConnections from '../../components/ServerConnections';
|
import ServerConnections from 'components/ServerConnections';
|
||||||
import alert from '../../components/alert';
|
import alert from 'components/alert';
|
||||||
import confirm from '../../components/confirm/confirm';
|
import confirm from 'components/confirm/confirm';
|
||||||
import { getDefaultBackgroundClass } from '../../components/cardbuilder/cardBuilderUtils';
|
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
|
||||||
|
|
||||||
import { getSystemInfoQuery } from 'hooks/useSystemInfo';
|
import { getSystemInfoQuery } from 'hooks/useSystemInfo';
|
||||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||||
import { queryClient } from 'utils/query/queryClient';
|
import { queryClient } from 'utils/query/queryClient';
|
||||||
|
|
||||||
import '../../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
import 'elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
|
|
||||||
import '../../components/listview/listview.scss';
|
import 'components/listview/listview.scss';
|
||||||
import '../../styles/flexstyles.scss';
|
import 'styles/flexstyles.scss';
|
||||||
import './dashboard.scss';
|
import './dashboard.scss';
|
||||||
|
|
||||||
function showPlaybackInfo(btn, session) {
|
function showPlaybackInfo(btn, session) {
|
||||||
|
@ -72,7 +72,7 @@ function showPlaybackInfo(btn, session) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function showSendMessageForm(btn, session) {
|
function showSendMessageForm(btn, session) {
|
||||||
import('../../components/prompt/prompt').then(({ default: prompt }) => {
|
import('components/prompt/prompt').then(({ default: prompt }) => {
|
||||||
prompt({
|
prompt({
|
||||||
title: globalize.translate('HeaderSendMessage'),
|
title: globalize.translate('HeaderSendMessage'),
|
||||||
label: globalize.translate('LabelMessageText'),
|
label: globalize.translate('LabelMessageText'),
|
||||||
|
@ -89,7 +89,7 @@ function showSendMessageForm(btn, session) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function showOptionsMenu(btn, session) {
|
function showOptionsMenu(btn, session) {
|
||||||
import('../../components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
import('components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
||||||
const menuItems = [];
|
const menuItems = [];
|
||||||
|
|
||||||
if (session.ServerId && session.DeviceId !== ServerConnections.deviceId()) {
|
if (session.ServerId && session.DeviceId !== ServerConnections.deviceId()) {
|
|
@ -1,9 +1,9 @@
|
||||||
import loading from '../../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import dom from '../../../scripts/dom';
|
import dom from 'scripts/dom';
|
||||||
import '../../../elements/emby-input/emby-input';
|
import 'elements/emby-input/emby-input';
|
||||||
import '../../../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import Dashboard from '../../../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
import { getParameterByName } from '../../../utils/url.ts';
|
import { getParameterByName } from 'utils/url.ts';
|
||||||
|
|
||||||
function load(page, device, deviceOptions) {
|
function load(page, device, deviceOptions) {
|
||||||
page.querySelector('#txtCustomName', page).value = deviceOptions?.CustomName || '';
|
page.querySelector('#txtCustomName', page).value = deviceOptions?.CustomName || '';
|
|
@ -1,16 +1,17 @@
|
||||||
import escapeHtml from 'escape-html';
|
|
||||||
import loading from '../../../components/loading/loading';
|
|
||||||
import dom from '../../../scripts/dom';
|
|
||||||
import globalize from '../../../lib/globalize';
|
|
||||||
import imageHelper from '../../../utils/image';
|
|
||||||
import { formatDistanceToNow } from 'date-fns';
|
import { formatDistanceToNow } from 'date-fns';
|
||||||
import { getLocaleWithSuffix } from '../../../utils/dateFnsLocale.ts';
|
import escapeHtml from 'escape-html';
|
||||||
import '../../../elements/emby-button/emby-button';
|
|
||||||
import '../../../elements/emby-itemscontainer/emby-itemscontainer';
|
import loading from 'components/loading/loading';
|
||||||
import '../../../components/cardbuilder/card.scss';
|
import dom from 'scripts/dom';
|
||||||
import Dashboard from '../../../utils/dashboard';
|
import globalize from 'lib/globalize';
|
||||||
import confirm from '../../../components/confirm/confirm';
|
import imageHelper from 'utils/image';
|
||||||
import { getDefaultBackgroundClass } from '../../../components/cardbuilder/cardBuilderUtils';
|
import { getLocaleWithSuffix } from 'utils/dateFnsLocale.ts';
|
||||||
|
import 'elements/emby-button/emby-button';
|
||||||
|
import 'elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
|
import 'components/cardbuilder/card.scss';
|
||||||
|
import Dashboard from 'utils/dashboard';
|
||||||
|
import confirm from 'components/confirm/confirm';
|
||||||
|
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
|
||||||
|
|
||||||
// Local cache of loaded
|
// Local cache of loaded
|
||||||
let deviceIds = [];
|
let deviceIds = [];
|
||||||
|
@ -66,7 +67,7 @@ function showDeviceMenu(view, btn, deviceId) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
import('../../../components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
import('components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
||||||
actionsheet.show({
|
actionsheet.show({
|
||||||
items: menuItems,
|
items: menuItems,
|
||||||
positionTo: btn,
|
positionTo: btn,
|
|
@ -1,9 +1,9 @@
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
import loading from '../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import globalize from '../../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import dom from '../../scripts/dom';
|
import dom from 'scripts/dom';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
import alert from '../../components/alert';
|
import alert from 'components/alert';
|
||||||
|
|
||||||
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) {
|
||||||
|
@ -263,7 +263,7 @@ $(document).on('pageinit', '#encodingSettingsPage', function () {
|
||||||
setDecodingCodecsVisible(page, this.value);
|
setDecodingCodecsVisible(page, this.value);
|
||||||
});
|
});
|
||||||
$('#btnSelectTranscodingTempPath', page).on('click.selectDirectory', function () {
|
$('#btnSelectTranscodingTempPath', page).on('click.selectDirectory', function () {
|
||||||
import('../../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
callback: function (path) {
|
callback: function (path) {
|
||||||
|
@ -280,7 +280,7 @@ $(document).on('pageinit', '#encodingSettingsPage', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$('#btnSelectFallbackFontPath', page).on('click.selectDirectory', function () {
|
$('#btnSelectFallbackFontPath', page).on('click.selectDirectory', function () {
|
||||||
import('../../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
includeDirectories: true,
|
includeDirectories: true,
|
|
@ -1,14 +1,14 @@
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
|
|
||||||
import loading from '../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import globalize from '../../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import '../../elements/emby-checkbox/emby-checkbox';
|
import 'elements/emby-checkbox/emby-checkbox';
|
||||||
import '../../elements/emby-textarea/emby-textarea';
|
import 'elements/emby-textarea/emby-textarea';
|
||||||
import '../../elements/emby-input/emby-input';
|
import 'elements/emby-input/emby-input';
|
||||||
import '../../elements/emby-select/emby-select';
|
import 'elements/emby-select/emby-select';
|
||||||
import '../../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
import alert from '../../components/alert';
|
import alert from 'components/alert';
|
||||||
|
|
||||||
function loadPage(page, config, languageOptions, systemInfo) {
|
function loadPage(page, config, languageOptions, systemInfo) {
|
||||||
page.querySelector('#txtServerName').value = systemInfo.ServerName;
|
page.querySelector('#txtServerName').value = systemInfo.ServerName;
|
||||||
|
@ -53,7 +53,7 @@ function onSubmit() {
|
||||||
|
|
||||||
export default function (view) {
|
export default function (view) {
|
||||||
$('#btnSelectCachePath', view).on('click.selectDirectory', function () {
|
$('#btnSelectCachePath', view).on('click.selectDirectory', function () {
|
||||||
import('../../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
callback: function (path) {
|
callback: function (path) {
|
||||||
|
@ -70,7 +70,7 @@ export default function (view) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$('#btnSelectMetadataPath', view).on('click.selectDirectory', function () {
|
$('#btnSelectMetadataPath', view).on('click.selectDirectory', function () {
|
||||||
import('../../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
path: view.querySelector('#txtMetadataPath').value,
|
path: view.querySelector('#txtMetadataPath').value,
|
|
@ -1,17 +1,18 @@
|
||||||
import escapeHtml from 'escape-html';
|
import escapeHtml from 'escape-html';
|
||||||
import taskButton from '../../scripts/taskbutton';
|
|
||||||
import loading from '../../components/loading/loading';
|
import taskButton from 'scripts/taskbutton';
|
||||||
import globalize from '../../lib/globalize';
|
import loading from 'components/loading/loading';
|
||||||
import dom from '../../scripts/dom';
|
import globalize from 'lib/globalize';
|
||||||
import imageHelper from '../../utils/image';
|
import dom from 'scripts/dom';
|
||||||
import '../../components/cardbuilder/card.scss';
|
import imageHelper from 'utils/image';
|
||||||
import '../../elements/emby-itemrefreshindicator/emby-itemrefreshindicator';
|
import 'components/cardbuilder/card.scss';
|
||||||
import Dashboard, { pageClassOn, pageIdOn } from '../../utils/dashboard';
|
import 'elements/emby-itemrefreshindicator/emby-itemrefreshindicator';
|
||||||
import confirm from '../../components/confirm/confirm';
|
import Dashboard, { pageClassOn, pageIdOn } from 'utils/dashboard';
|
||||||
import { getDefaultBackgroundClass } from '../../components/cardbuilder/cardBuilderUtils';
|
import confirm from 'components/confirm/confirm';
|
||||||
|
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
|
||||||
|
|
||||||
function addVirtualFolder(page) {
|
function addVirtualFolder(page) {
|
||||||
import('../../components/mediaLibraryCreator/mediaLibraryCreator').then(({ default: MediaLibraryCreator }) => {
|
import('components/mediaLibraryCreator/mediaLibraryCreator').then(({ default: MediaLibraryCreator }) => {
|
||||||
new MediaLibraryCreator({
|
new MediaLibraryCreator({
|
||||||
collectionTypeOptions: getCollectionTypeOptions().filter(function (f) {
|
collectionTypeOptions: getCollectionTypeOptions().filter(function (f) {
|
||||||
return !f.hidden;
|
return !f.hidden;
|
||||||
|
@ -26,7 +27,7 @@ function addVirtualFolder(page) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function editVirtualFolder(page, virtualFolder) {
|
function editVirtualFolder(page, virtualFolder) {
|
||||||
import('../../components/mediaLibraryEditor/mediaLibraryEditor').then(({ default: MediaLibraryEditor }) => {
|
import('components/mediaLibraryEditor/mediaLibraryEditor').then(({ default: MediaLibraryEditor }) => {
|
||||||
new MediaLibraryEditor({
|
new MediaLibraryEditor({
|
||||||
refresh: shouldRefreshLibraryAfterChanges(page),
|
refresh: shouldRefreshLibraryAfterChanges(page),
|
||||||
library: virtualFolder
|
library: virtualFolder
|
||||||
|
@ -60,7 +61,7 @@ function deleteVirtualFolder(page, virtualFolder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function refreshVirtualFolder(page, virtualFolder) {
|
function refreshVirtualFolder(page, virtualFolder) {
|
||||||
import('../../components/refreshdialog/refreshdialog').then(({ default: RefreshDialog }) => {
|
import('components/refreshdialog/refreshdialog').then(({ default: RefreshDialog }) => {
|
||||||
new RefreshDialog({
|
new RefreshDialog({
|
||||||
itemIds: [virtualFolder.ItemId],
|
itemIds: [virtualFolder.ItemId],
|
||||||
serverId: ApiClient.serverId(),
|
serverId: ApiClient.serverId(),
|
||||||
|
@ -70,7 +71,7 @@ function refreshVirtualFolder(page, virtualFolder) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function renameVirtualFolder(page, virtualFolder) {
|
function renameVirtualFolder(page, virtualFolder) {
|
||||||
import('../../components/prompt/prompt').then(({ default: prompt }) => {
|
import('components/prompt/prompt').then(({ default: prompt }) => {
|
||||||
prompt({
|
prompt({
|
||||||
label: globalize.translate('LabelNewName'),
|
label: globalize.translate('LabelNewName'),
|
||||||
description: globalize.translate('MessageRenameMediaFolder'),
|
description: globalize.translate('MessageRenameMediaFolder'),
|
||||||
|
@ -117,7 +118,7 @@ function showCardMenu(page, elem, virtualFolders) {
|
||||||
icon: 'delete'
|
icon: 'delete'
|
||||||
});
|
});
|
||||||
|
|
||||||
import('../../components/actionSheet/actionSheet').then((actionsheet) => {
|
import('components/actionSheet/actionSheet').then((actionsheet) => {
|
||||||
actionsheet.show({
|
actionsheet.show({
|
||||||
items: menuItems,
|
items: menuItems,
|
||||||
positionTo: elem,
|
positionTo: elem,
|
||||||
|
@ -206,7 +207,7 @@ function reloadVirtualFolders(page, virtualFolders) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function editImages(page, virtualFolder) {
|
function editImages(page, virtualFolder) {
|
||||||
import('../../components/imageeditor/imageeditor').then((imageEditor) => {
|
import('components/imageeditor/imageeditor').then((imageEditor) => {
|
||||||
imageEditor.show({
|
imageEditor.show({
|
||||||
itemId: virtualFolder.ItemId,
|
itemId: virtualFolder.ItemId,
|
||||||
serverId: ApiClient.serverId()
|
serverId: ApiClient.serverId()
|
|
@ -1,7 +1,7 @@
|
||||||
import loading from '../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import '../../elements/emby-checkbox/emby-checkbox';
|
import 'elements/emby-checkbox/emby-checkbox';
|
||||||
import '../../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
|
|
||||||
export default function(view) {
|
export default function(view) {
|
||||||
function loadData() {
|
function loadData() {
|
|
@ -1,15 +1,15 @@
|
||||||
import loading from '../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import globalize from '../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import Dashboard, { pageIdOn } from '../utils/dashboard';
|
import Dashboard, { pageIdOn } from 'utils/dashboard';
|
||||||
import { getParameterByName } from '../utils/url.ts';
|
import { getParameterByName } from 'utils/url';
|
||||||
import Events from '../utils/events.ts';
|
import Events from 'utils/events';
|
||||||
|
|
||||||
function onListingsSubmitted() {
|
function onListingsSubmitted() {
|
||||||
Dashboard.navigate('dashboard/livetv');
|
Dashboard.navigate('dashboard/livetv');
|
||||||
}
|
}
|
||||||
|
|
||||||
function init(page, type, providerId) {
|
function init(page, type, providerId) {
|
||||||
import(`../components/tvproviders/${type}`).then(({ default: ProviderFactory }) => {
|
import(`components/tvproviders/${type}`).then(({ default: ProviderFactory }) => {
|
||||||
const instance = new ProviderFactory(page, providerId, {});
|
const instance = new ProviderFactory(page, providerId, {});
|
||||||
Events.on(instance, 'submitted', onListingsSubmitted);
|
Events.on(instance, 'submitted', onListingsSubmitted);
|
||||||
instance.init();
|
instance.init();
|
||||||
|
@ -17,7 +17,7 @@ function init(page, type, providerId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadTemplate(page, type, providerId) {
|
function loadTemplate(page, type, providerId) {
|
||||||
import(`../components/tvproviders/${type}.template.html`).then(({ default: html }) => {
|
import(`components/tvproviders/${type}.template.html`).then(({ default: html }) => {
|
||||||
page.querySelector('.providerTemplate').innerHTML = globalize.translateHtml(html);
|
page.querySelector('.providerTemplate').innerHTML = globalize.translateHtml(html);
|
||||||
init(page, type, providerId);
|
init(page, type, providerId);
|
||||||
});
|
});
|
|
@ -1,9 +1,10 @@
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
import loading from '../components/loading/loading';
|
|
||||||
import globalize from '../lib/globalize';
|
import loading from 'components/loading/loading';
|
||||||
import '../elements/emby-button/emby-button';
|
import globalize from 'lib/globalize';
|
||||||
import Dashboard from '../utils/dashboard';
|
import 'elements/emby-button/emby-button';
|
||||||
import alert from '../components/alert';
|
import Dashboard from 'utils/dashboard';
|
||||||
|
import alert from 'components/alert';
|
||||||
|
|
||||||
function loadPage(page, config) {
|
function loadPage(page, config) {
|
||||||
page.querySelector('.liveTvSettingsForm').classList.remove('hide');
|
page.querySelector('.liveTvSettingsForm').classList.remove('hide');
|
||||||
|
@ -64,7 +65,7 @@ $(document).on('pageinit', '#liveTvSettingsPage', function () {
|
||||||
const page = this;
|
const page = this;
|
||||||
$('.liveTvSettingsForm').off('submit', onSubmit).on('submit', onSubmit);
|
$('.liveTvSettingsForm').off('submit', onSubmit).on('submit', onSubmit);
|
||||||
$('#btnSelectRecordingPath', page).on('click.selectDirectory', function () {
|
$('#btnSelectRecordingPath', page).on('click.selectDirectory', function () {
|
||||||
import('../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
callback: function (path) {
|
callback: function (path) {
|
||||||
|
@ -79,7 +80,7 @@ $(document).on('pageinit', '#liveTvSettingsPage', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$('#btnSelectMovieRecordingPath', page).on('click.selectDirectory', function () {
|
$('#btnSelectMovieRecordingPath', page).on('click.selectDirectory', function () {
|
||||||
import('../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
callback: function (path) {
|
callback: function (path) {
|
||||||
|
@ -94,7 +95,7 @@ $(document).on('pageinit', '#liveTvSettingsPage', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$('#btnSelectSeriesRecordingPath', page).on('click.selectDirectory', function () {
|
$('#btnSelectSeriesRecordingPath', page).on('click.selectDirectory', function () {
|
||||||
import('../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
callback: function (path) {
|
callback: function (path) {
|
||||||
|
@ -109,7 +110,7 @@ $(document).on('pageinit', '#liveTvSettingsPage', function () {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
$('#btnSelectPostProcessorPath', page).on('click.selectDirectory', function () {
|
$('#btnSelectPostProcessorPath', page).on('click.selectDirectory', function () {
|
||||||
import('../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
includeFiles: true,
|
includeFiles: true,
|
|
@ -1,19 +1,20 @@
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
import globalize from '../lib/globalize';
|
|
||||||
import taskButton from '../scripts/taskbutton';
|
import globalize from 'lib/globalize';
|
||||||
import dom from '../scripts/dom';
|
import taskButton from 'scripts/taskbutton';
|
||||||
import layoutManager from '../components/layoutManager';
|
import dom from 'scripts/dom';
|
||||||
import loading from '../components/loading/loading';
|
import layoutManager from 'components/layoutManager';
|
||||||
import browser from '../scripts/browser';
|
import loading from 'components/loading/loading';
|
||||||
import '../components/listview/listview.scss';
|
import browser from 'scripts/browser';
|
||||||
import '../styles/flexstyles.scss';
|
import 'components/listview/listview.scss';
|
||||||
import '../elements/emby-itemscontainer/emby-itemscontainer';
|
import 'styles/flexstyles.scss';
|
||||||
import '../components/cardbuilder/card.scss';
|
import 'elements/emby-itemscontainer/emby-itemscontainer';
|
||||||
|
import 'components/cardbuilder/card.scss';
|
||||||
import 'material-design-icons-iconfont';
|
import 'material-design-icons-iconfont';
|
||||||
import '../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import Dashboard from '../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
import confirm from '../components/confirm/confirm';
|
import confirm from 'components/confirm/confirm';
|
||||||
import { getDefaultBackgroundClass } from '../components/cardbuilder/cardBuilderUtils';
|
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
|
||||||
|
|
||||||
const enableFocusTransform = !browser.slow && !browser.edge;
|
const enableFocusTransform = !browser.slow && !browser.edge;
|
||||||
|
|
||||||
|
@ -153,7 +154,7 @@ function showProviderOptions(page, providerId, button) {
|
||||||
id: 'map'
|
id: 'map'
|
||||||
});
|
});
|
||||||
|
|
||||||
import('../components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
import('components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
||||||
actionsheet.show({
|
actionsheet.show({
|
||||||
items: items,
|
items: items,
|
||||||
positionTo: button
|
positionTo: button
|
||||||
|
@ -171,7 +172,7 @@ function showProviderOptions(page, providerId, button) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function mapChannels(page, providerId) {
|
function mapChannels(page, providerId) {
|
||||||
import('../components/channelMapper/channelMapper').then(({ default: ChannelMapper }) => {
|
import('components/channelMapper/channelMapper').then(({ default: ChannelMapper }) => {
|
||||||
new ChannelMapper({
|
new ChannelMapper({
|
||||||
serverId: ApiClient.serverInfo().Id,
|
serverId: ApiClient.serverInfo().Id,
|
||||||
providerId: providerId
|
providerId: providerId
|
||||||
|
@ -243,7 +244,7 @@ function addProvider(button) {
|
||||||
id: 'xmltv'
|
id: 'xmltv'
|
||||||
});
|
});
|
||||||
|
|
||||||
import('../components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
import('components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
||||||
actionsheet.show({
|
actionsheet.show({
|
||||||
items: menuItems,
|
items: menuItems,
|
||||||
positionTo: button,
|
positionTo: button,
|
||||||
|
@ -269,7 +270,7 @@ function showDeviceMenu(button, tunerDeviceId) {
|
||||||
id: 'edit'
|
id: 'edit'
|
||||||
});
|
});
|
||||||
|
|
||||||
import('../components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
import('components/actionSheet/actionSheet').then(({ default: actionsheet }) => {
|
||||||
actionsheet.show({
|
actionsheet.show({
|
||||||
items: items,
|
items: items,
|
||||||
positionTo: button
|
positionTo: button
|
|
@ -1,12 +1,12 @@
|
||||||
import globalize from '../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import loading from '../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import dom from '../scripts/dom';
|
import dom from 'scripts/dom';
|
||||||
import '../elements/emby-input/emby-input';
|
import 'elements/emby-input/emby-input';
|
||||||
import '../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import '../elements/emby-checkbox/emby-checkbox';
|
import 'elements/emby-checkbox/emby-checkbox';
|
||||||
import '../elements/emby-select/emby-select';
|
import 'elements/emby-select/emby-select';
|
||||||
import Dashboard from '../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
import { getParameterByName } from '../utils/url.ts';
|
import { getParameterByName } from 'utils/url';
|
||||||
|
|
||||||
function isM3uVariant(type) {
|
function isM3uVariant(type) {
|
||||||
return ['nextpvr'].indexOf(type || '') !== -1;
|
return ['nextpvr'].indexOf(type || '') !== -1;
|
||||||
|
@ -112,7 +112,7 @@ function submitForm(page) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDetectedDevice() {
|
function getDetectedDevice() {
|
||||||
return import('../components/tunerPicker').then(({ default: TunerPicker }) => {
|
return import('components/tunerPicker').then(({ default: TunerPicker }) => {
|
||||||
return new TunerPicker().show({
|
return new TunerPicker().show({
|
||||||
serverId: ApiClient.serverId()
|
serverId: ApiClient.serverId()
|
||||||
});
|
});
|
||||||
|
@ -235,7 +235,7 @@ export default function (view, params) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
view.querySelector('.btnSelectPath').addEventListener('click', function () {
|
view.querySelector('.btnSelectPath').addEventListener('click', function () {
|
||||||
import('../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
includeFiles: true,
|
includeFiles: true,
|
|
@ -2,11 +2,11 @@ import { ImageResolution } from '@jellyfin/sdk/lib/generated-client/models/image
|
||||||
|
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
|
|
||||||
import loading from '../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import globalize from '../../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
|
|
||||||
import '../../components/listview/listview.scss';
|
import 'components/listview/listview.scss';
|
||||||
|
|
||||||
function populateImageResolutionOptions(select) {
|
function populateImageResolutionOptions(select) {
|
||||||
let html = '';
|
let html = '';
|
|
@ -1,9 +1,10 @@
|
||||||
import escapeHtml from 'escape-html';
|
import escapeHtml from 'escape-html';
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
import loading from '../../components/loading/loading';
|
|
||||||
import globalize from '../../lib/globalize';
|
import loading from 'components/loading/loading';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import globalize from 'lib/globalize';
|
||||||
import alert from '../../components/alert';
|
import Dashboard from 'utils/dashboard';
|
||||||
|
import alert from 'components/alert';
|
||||||
|
|
||||||
function loadPage(page, config, users) {
|
function loadPage(page, config, users) {
|
||||||
let html = '<option value="" selected="selected">' + globalize.translate('None') + '</option>';
|
let html = '<option value="" selected="selected">' + globalize.translate('None') + '</option>';
|
|
@ -1,9 +1,9 @@
|
||||||
import loading from '../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import globalize from '../../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import '../../elements/emby-checkbox/emby-checkbox';
|
import 'elements/emby-checkbox/emby-checkbox';
|
||||||
import '../../elements/emby-select/emby-select';
|
import 'elements/emby-select/emby-select';
|
||||||
import Dashboard from '../../utils/dashboard';
|
import Dashboard from 'utils/dashboard';
|
||||||
import alert from '../../components/alert';
|
import alert from 'components/alert';
|
||||||
|
|
||||||
function onSubmit(e) {
|
function onSubmit(e) {
|
||||||
const form = this;
|
const form = this;
|
||||||
|
@ -159,7 +159,7 @@ export default function (view) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
view.querySelector('#btnSelectCertPath').addEventListener('click', function () {
|
view.querySelector('#btnSelectCertPath').addEventListener('click', function () {
|
||||||
import('../../components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
import('components/directorybrowser/directorybrowser').then(({ default: DirectoryBrowser }) => {
|
||||||
const picker = new DirectoryBrowser();
|
const picker = new DirectoryBrowser();
|
||||||
picker.show({
|
picker.show({
|
||||||
includeFiles: true,
|
includeFiles: true,
|
|
@ -1,6 +1,7 @@
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
import loading from '../../components/loading/loading';
|
|
||||||
import Dashboard from '../../utils/dashboard';
|
import loading from 'components/loading/loading';
|
||||||
|
import Dashboard from 'utils/dashboard';
|
||||||
|
|
||||||
function loadPage(page, config) {
|
function loadPage(page, config) {
|
||||||
page.querySelector('#txtMinResumePct').value = config.MinResumePct;
|
page.querySelector('#txtMinResumePct').value = config.MinResumePct;
|
|
@ -1,11 +1,11 @@
|
||||||
import loading from '../../../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import dom from '../../../../scripts/dom';
|
import dom from 'scripts/dom';
|
||||||
import globalize from '../../../../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import '../../../../components/cardbuilder/card.scss';
|
import 'components/cardbuilder/card.scss';
|
||||||
import '../../../../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import Dashboard, { pageIdOn } from '../../../../utils/dashboard';
|
import Dashboard, { pageIdOn } from 'utils/dashboard';
|
||||||
import confirm from '../../../../components/confirm/confirm';
|
import confirm from 'components/confirm/confirm';
|
||||||
import { getDefaultBackgroundClass } from '../../../../components/cardbuilder/cardBuilderUtils';
|
import { getDefaultBackgroundClass } from 'components/cardbuilder/cardBuilderUtils';
|
||||||
|
|
||||||
function deletePlugin(page, uniqueid, version, name) {
|
function deletePlugin(page, uniqueid, version, name) {
|
||||||
const msg = globalize.translate('UninstallPluginConfirmation', name);
|
const msg = globalize.translate('UninstallPluginConfirmation', name);
|
||||||
|
@ -187,7 +187,7 @@ function showPluginMenu(page, elem) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
import('../../../../components/actionSheet/actionSheet').then((actionsheet) => {
|
import('components/actionSheet/actionSheet').then((actionsheet) => {
|
||||||
actionsheet.show({
|
actionsheet.show({
|
||||||
items: menuItems,
|
items: menuItems,
|
||||||
positionTo: elem,
|
positionTo: elem,
|
|
@ -1,14 +1,14 @@
|
||||||
import loading from '../../../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import globalize from '../../../../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import dialogHelper from '../../../../components/dialogHelper/dialogHelper';
|
import dialogHelper from 'components/dialogHelper/dialogHelper';
|
||||||
import confirm from '../../../../components/confirm/confirm';
|
import confirm from 'components/confirm/confirm';
|
||||||
|
|
||||||
import '../../../../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import '../../../../elements/emby-checkbox/emby-checkbox';
|
import 'elements/emby-checkbox/emby-checkbox';
|
||||||
import '../../../../elements/emby-select/emby-select';
|
import 'elements/emby-select/emby-select';
|
||||||
|
|
||||||
import '../../../../components/formdialog.scss';
|
import 'components/formdialog.scss';
|
||||||
import '../../../../components/listview/listview.scss';
|
import 'components/listview/listview.scss';
|
||||||
|
|
||||||
let repositories = [];
|
let repositories = [];
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import loading from '../../../components/loading/loading';
|
import loading from 'components/loading/loading';
|
||||||
import datetime from '../../../scripts/datetime';
|
import datetime from 'scripts/datetime';
|
||||||
import dom from '../../../scripts/dom';
|
import dom from 'scripts/dom';
|
||||||
import globalize from '../../../lib/globalize';
|
import globalize from 'lib/globalize';
|
||||||
import '../../../elements/emby-input/emby-input';
|
import 'elements/emby-input/emby-input';
|
||||||
import '../../../elements/emby-button/emby-button';
|
import 'elements/emby-button/emby-button';
|
||||||
import '../../../elements/emby-select/emby-select';
|
import 'elements/emby-select/emby-select';
|
||||||
import confirm from '../../../components/confirm/confirm';
|
import confirm from 'components/confirm/confirm';
|
||||||
import { getParameterByName } from '../../../utils/url.ts';
|
import { getParameterByName } from 'utils/url.ts';
|
||||||
|
|
||||||
function fillTimeOfDay(select) {
|
function fillTimeOfDay(select) {
|
||||||
const options = [];
|
const options = [];
|
||||||
|
@ -35,7 +35,7 @@ const ScheduledTaskPage = {
|
||||||
view.querySelector('.taskName').innerHTML = task.Name;
|
view.querySelector('.taskName').innerHTML = task.Name;
|
||||||
view.querySelector('#pTaskDescription').innerHTML = task.Description;
|
view.querySelector('#pTaskDescription').innerHTML = task.Description;
|
||||||
|
|
||||||
import('../../../components/listview/listview.scss').then(() => {
|
import('components/listview/listview.scss').then(() => {
|
||||||
ScheduledTaskPage.loadTaskTriggers(view, task);
|
ScheduledTaskPage.loadTaskTriggers(view, task);
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
import 'jquery';
|
|
||||||
import loading from '../../../components/loading/loading';
|
|
||||||
import globalize from '../../../lib/globalize';
|
|
||||||
import serverNotifications from '../../../scripts/serverNotifications';
|
|
||||||
import { formatDistance, formatDistanceToNow } from 'date-fns';
|
import { formatDistance, formatDistanceToNow } from 'date-fns';
|
||||||
import { getLocale, getLocaleWithSuffix } from '../../../utils/dateFnsLocale.ts';
|
import 'jquery';
|
||||||
import Events from '../../../utils/events.ts';
|
|
||||||
|
|
||||||
import '../../../components/listview/listview.scss';
|
import loading from 'components/loading/loading';
|
||||||
import '../../../elements/emby-button/emby-button';
|
import globalize from 'lib/globalize';
|
||||||
import dom from 'scripts/dom';
|
import dom from 'scripts/dom';
|
||||||
|
import serverNotifications from 'scripts/serverNotifications';
|
||||||
|
import { getLocale, getLocaleWithSuffix } from 'utils/dateFnsLocale.ts';
|
||||||
|
import Events from 'utils/events.ts';
|
||||||
|
|
||||||
|
import 'components/listview/listview.scss';
|
||||||
|
import 'elements/emby-button/emby-button';
|
||||||
|
|
||||||
function reloadList(page) {
|
function reloadList(page) {
|
||||||
ApiClient.getScheduledTasks({
|
ApiClient.getScheduledTasks({
|
|
@ -1,6 +1,7 @@
|
||||||
import 'jquery';
|
import 'jquery';
|
||||||
import loading from '../../components/loading/loading';
|
|
||||||
import Dashboard from '../../utils/dashboard';
|
import loading from 'components/loading/loading';
|
||||||
|
import Dashboard from 'utils/dashboard';
|
||||||
|
|
||||||
function loadPage(page, config) {
|
function loadPage(page, config) {
|
||||||
page.querySelector('#txtRemoteClientBitrateLimit').value = config.RemoteClientBitrateLimit / 1e6 || '';
|
page.querySelector('#txtRemoteClientBitrateLimit').value = config.RemoteClientBitrateLimit / 1e6 || '';
|
|
@ -6,92 +6,92 @@ export const LEGACY_ADMIN_ROUTES: LegacyRoute[] = [
|
||||||
path: '/dashboard',
|
path: '/dashboard',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/dashboard',
|
controller: 'dashboard',
|
||||||
view: 'dashboard/dashboard.html'
|
view: 'dashboard.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'settings',
|
path: 'settings',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/general',
|
controller: 'general',
|
||||||
view: 'dashboard/general.html'
|
view: 'general.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'networking',
|
path: 'networking',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/networking',
|
controller: 'networking',
|
||||||
view: 'dashboard/networking.html'
|
view: 'networking.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'devices',
|
path: 'devices',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/devices/devices',
|
controller: 'devices/devices',
|
||||||
view: 'dashboard/devices/devices.html'
|
view: 'devices/devices.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'devices/edit',
|
path: 'devices/edit',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/devices/device',
|
controller: 'devices/device',
|
||||||
view: 'dashboard/devices/device.html'
|
view: 'devices/device.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'libraries',
|
path: 'libraries',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/library',
|
controller: 'library',
|
||||||
view: 'dashboard/library.html'
|
view: 'library.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'libraries/display',
|
path: 'libraries/display',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/librarydisplay',
|
controller: 'librarydisplay',
|
||||||
view: 'dashboard/librarydisplay.html'
|
view: 'librarydisplay.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'playback/transcoding',
|
path: 'playback/transcoding',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/encodingsettings',
|
controller: 'encodingsettings',
|
||||||
view: 'dashboard/encodingsettings.html'
|
view: 'encodingsettings.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'libraries/metadata',
|
path: 'libraries/metadata',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/metadataImages',
|
controller: 'metadataImages',
|
||||||
view: 'dashboard/metadataimages.html'
|
view: 'metadataimages.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'libraries/nfo',
|
path: 'libraries/nfo',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/metadatanfo',
|
controller: 'metadatanfo',
|
||||||
view: 'dashboard/metadatanfo.html'
|
view: 'metadatanfo.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'playback/resume',
|
path: 'playback/resume',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/playback',
|
controller: 'playback',
|
||||||
view: 'dashboard/playback.html'
|
view: 'playback.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'plugins/catalog',
|
path: 'plugins/catalog',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/plugins/available/index',
|
controller: 'plugins/available/index',
|
||||||
view: 'dashboard/plugins/available/index.html'
|
view: 'plugins/available/index.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'plugins/repositories',
|
path: 'plugins/repositories',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/plugins/repositories/index',
|
controller: 'plugins/repositories/index',
|
||||||
view: 'dashboard/plugins/repositories/index.html'
|
view: 'plugins/repositories/index.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'livetv/guide',
|
path: 'livetv/guide',
|
||||||
|
@ -125,29 +125,29 @@ export const LEGACY_ADMIN_ROUTES: LegacyRoute[] = [
|
||||||
path: 'plugins',
|
path: 'plugins',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/plugins/installed/index',
|
controller: 'plugins/installed/index',
|
||||||
view: 'dashboard/plugins/installed/index.html'
|
view: 'plugins/installed/index.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'tasks/edit',
|
path: 'tasks/edit',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/scheduledtasks/scheduledtask',
|
controller: 'scheduledtasks/scheduledtask',
|
||||||
view: 'dashboard/scheduledtasks/scheduledtask.html'
|
view: 'scheduledtasks/scheduledtask.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'tasks',
|
path: 'tasks',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
controller: 'dashboard/scheduledtasks/scheduledtasks',
|
controller: 'scheduledtasks/scheduledtasks',
|
||||||
view: 'dashboard/scheduledtasks/scheduledtasks.html'
|
view: 'scheduledtasks/scheduledtasks.html'
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
path: 'playback/streaming',
|
path: 'playback/streaming',
|
||||||
pageProps: {
|
pageProps: {
|
||||||
appType: AppType.Dashboard,
|
appType: AppType.Dashboard,
|
||||||
view: 'dashboard/streaming.html',
|
view: 'streaming.html',
|
||||||
controller: 'dashboard/streaming'
|
controller: 'streaming'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -33,17 +33,33 @@ interface ViewOptions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const importController = (
|
||||||
|
appType: AppType,
|
||||||
|
controller: string,
|
||||||
|
view: string
|
||||||
|
) => {
|
||||||
|
if (appType === AppType.Dashboard) {
|
||||||
|
return Promise.all([
|
||||||
|
import(/* webpackChunkName: "[request]" */ `../../apps/dashboard/controllers/${controller}`),
|
||||||
|
import(/* webpackChunkName: "[request]" */ `../../apps/dashboard/controllers/${view}`)
|
||||||
|
.then(html => globalize.translateHtml(html))
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Promise.all([
|
||||||
|
import(/* webpackChunkName: "[request]" */ `../../controllers/${controller}`),
|
||||||
|
import(/* webpackChunkName: "[request]" */ `../../controllers/${view}`)
|
||||||
|
.then(html => globalize.translateHtml(html))
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
|
||||||
const loadView = async (
|
const loadView = async (
|
||||||
appType: AppType,
|
appType: AppType,
|
||||||
controller: string,
|
controller: string,
|
||||||
view: string,
|
view: string,
|
||||||
viewOptions: ViewOptions
|
viewOptions: ViewOptions
|
||||||
) => {
|
) => {
|
||||||
const [ controllerFactory, viewHtml ] = await Promise.all([
|
const [ controllerFactory, viewHtml ] = await importController(appType, controller, view);
|
||||||
import(/* webpackChunkName: "[request]" */ `../../controllers/${controller}`),
|
|
||||||
import(/* webpackChunkName: "[request]" */ `../../controllers/${view}`)
|
|
||||||
.then(html => globalize.translateHtml(html))
|
|
||||||
]);
|
|
||||||
|
|
||||||
viewManager.loadView({
|
viewManager.loadView({
|
||||||
...viewOptions,
|
...viewOptions,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue