diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 2119d2095..3b5f35665 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -73,9 +73,13 @@ class AppRouter { async show(path, options) { if (this.promiseShow) await this.promiseShow; - // ensure the path does not start with '#!' since the router adds this - if (path.startsWith('#!')) { - path = path.substring(2); + // ensure the path does not start with '#' since the router adds this + if (path.startsWith('#')) { + path = path.substring(1); + } + // Support legacy '#!' routes since people may have old bookmarks, etc. + if (path.startsWith('!')) { + path = path.substring(1); } if (path.indexOf('/') !== 0 && path.indexOf('://') === -1) { @@ -515,27 +519,27 @@ class AppRouter { const serverId = item.ServerId || options.serverId; if (item === 'settings') { - return '#!/mypreferencesmenu.html'; + return '#/mypreferencesmenu.html'; } if (item === 'wizard') { - return '#!/wizardstart.html'; + return '#/wizardstart.html'; } if (item === 'manageserver') { - return '#!/dashboard.html'; + return '#/dashboard.html'; } if (item === 'recordedtv') { - return '#!/livetv.html?tab=3&serverId=' + options.serverId; + return '#/livetv.html?tab=3&serverId=' + options.serverId; } if (item === 'nextup') { - return '#!/list.html?type=nextup&serverId=' + options.serverId; + return '#/list.html?type=nextup&serverId=' + options.serverId; } if (item === 'list') { - let url = '#!/list.html?serverId=' + options.serverId + '&type=' + options.itemTypes; + let url = '#/list.html?serverId=' + options.serverId + '&type=' + options.itemTypes; if (options.isFavorite) { url += '&IsFavorite=true'; @@ -546,61 +550,61 @@ class AppRouter { if (item === 'livetv') { if (options.section === 'programs') { - return '#!/livetv.html?tab=0&serverId=' + options.serverId; + return '#/livetv.html?tab=0&serverId=' + options.serverId; } if (options.section === 'guide') { - return '#!/livetv.html?tab=1&serverId=' + options.serverId; + return '#/livetv.html?tab=1&serverId=' + options.serverId; } 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 (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 (options.section === 'sports') { - return '#!/list.html?type=Programs&IsSports=true&serverId=' + options.serverId; + return '#/list.html?type=Programs&IsSports=true&serverId=' + options.serverId; } 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 (options.section === 'news') { - return '#!/list.html?type=Programs&IsNews=true&serverId=' + options.serverId; + return '#/list.html?type=Programs&IsNews=true&serverId=' + options.serverId; } 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 (options.section === 'channels') { - return '#!/livetv.html?tab=2&serverId=' + options.serverId; + return '#/livetv.html?tab=2&serverId=' + options.serverId; } if (options.section === 'dvrschedule') { - return '#!/livetv.html?tab=4&serverId=' + options.serverId; + return '#/livetv.html?tab=4&serverId=' + options.serverId; } 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 (itemType == 'SeriesTimer') { - return '#!/details?seriesTimerId=' + id + '&serverId=' + serverId; + return '#/details?seriesTimerId=' + id + '&serverId=' + serverId; } if (item.CollectionType == 'livetv') { - return '#!/livetv.html'; + return '#/livetv.html'; } if (item.Type === 'Genre') { - url = '#!/list.html?genreId=' + item.Id + '&serverId=' + serverId; + url = '#/list.html?genreId=' + item.Id + '&serverId=' + serverId; if (context === 'livetv') { url += '&type=Programs'; @@ -614,7 +618,7 @@ class AppRouter { } if (item.Type === 'MusicGenre') { - url = '#!/list.html?musicGenreId=' + item.Id + '&serverId=' + serverId; + url = '#/list.html?musicGenreId=' + item.Id + '&serverId=' + serverId; if (options.parentId) { url += '&parentId=' + options.parentId; @@ -624,7 +628,7 @@ class AppRouter { } if (item.Type === 'Studio') { - url = '#!/list.html?studioId=' + item.Id + '&serverId=' + serverId; + url = '#/list.html?studioId=' + item.Id + '&serverId=' + serverId; if (options.parentId) { url += '&parentId=' + options.parentId; @@ -635,7 +639,7 @@ class AppRouter { if (context !== 'folders' && !itemHelper.isLocalItem(item)) { if (item.CollectionType == 'movies') { - url = '#!/movies.html?topParentId=' + item.Id; + url = '#/movies.html?topParentId=' + item.Id; if (options && options.section === 'latest') { url += '&tab=1'; @@ -645,7 +649,7 @@ class AppRouter { } if (item.CollectionType == 'tvshows') { - url = '#!/tv.html?topParentId=' + item.Id; + url = '#/tv.html?topParentId=' + item.Id; if (options && options.section === 'latest') { url += '&tab=1'; @@ -655,7 +659,7 @@ class AppRouter { } if (item.CollectionType == 'music') { - url = '#!/music.html?topParentId=' + item.Id; + url = '#/music.html?topParentId=' + item.Id; if (options?.section === 'latest') { url += '&tab=1'; @@ -668,24 +672,24 @@ class AppRouter { const itemTypes = ['Playlist', 'TvChannel', 'Program', 'BoxSet', 'MusicAlbum', 'MusicGenre', 'Person', 'Recording', 'MusicArtist']; if (itemTypes.indexOf(itemType) >= 0) { - return '#!/details?id=' + id + '&serverId=' + serverId; + return '#/details?id=' + id + '&serverId=' + serverId; } const contextSuffix = context ? '&context=' + context : ''; if (itemType == 'Series' || itemType == 'Season' || itemType == 'Episode') { - return '#!/details?id=' + id + contextSuffix + '&serverId=' + serverId; + return '#/details?id=' + id + contextSuffix + '&serverId=' + serverId; } if (item.IsFolder) { if (id) { - return '#!/list.html?parentId=' + id + '&serverId=' + serverId; + return '#/list.html?parentId=' + id + '&serverId=' + serverId; } return '#'; } - return '#!/details?id=' + id + '&serverId=' + serverId; + return '#/details?id=' + id + '&serverId=' + serverId; } showLocalLogin(serverId) { diff --git a/src/components/dashboard/users/UserCardBox.tsx b/src/components/dashboard/users/UserCardBox.tsx index ebfbc5998..28d38cce5 100644 --- a/src/components/dashboard/users/UserCardBox.tsx +++ b/src/components/dashboard/users/UserCardBox.tsx @@ -9,7 +9,7 @@ const createLinkElement = ({ user, renderImgUrl }: { user: UserDto, renderImgUrl __html: ` ${renderImgUrl} ` diff --git a/src/components/favoriteitems.js b/src/components/favoriteitems.js index c82910743..67137b917 100644 --- a/src/components/favoriteitems.js +++ b/src/components/favoriteitems.js @@ -148,7 +148,7 @@ import '../elements/emby-itemscontainer/emby-itemscontainer'; html += '
'; if (!layoutManager.tv && options.Limit && result.Items.length >= options.Limit) { - html += ''; + html += ''; html += '

'; html += globalize.translate(section.name); html += '

'; diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js index ea9b6e2fe..ad11b2719 100644 --- a/src/components/remotecontrol/remotecontrol.js +++ b/src/components/remotecontrol/remotecontrol.js @@ -147,7 +147,7 @@ function updateNowPlayingInfo(context, state, serverId) { for (const artist of item.ArtistItems) { const artistName = escapeHtml(artist.Name); const artistId = artist.Id; - artistsSeries += `
${escapeHtml(artistName)}`; + artistsSeries += `${escapeHtml(artistName)}`; if (artist !== item.ArtistItems.slice(-1)[0]) { artistsSeries += ', '; } @@ -165,7 +165,7 @@ function updateNowPlayingInfo(context, state, serverId) { } } if (item.Album != null) { - albumName = '` + escapeHtml(item.Album) + ''; + albumName = '` + escapeHtml(item.Album) + ''; } context.querySelector('.nowPlayingAlbum').innerHTML = albumName; context.querySelector('.nowPlayingArtist').innerHTML = artistsSeries; @@ -173,12 +173,12 @@ function updateNowPlayingInfo(context, state, serverId) { } else if (item.Type == 'Episode') { if (item.SeasonName != null) { const seasonName = item.SeasonName; - context.querySelector('.nowPlayingSeason').innerHTML = '${escapeHtml(seasonName)}`; + context.querySelector('.nowPlayingSeason').innerHTML = '${escapeHtml(seasonName)}`; } if (item.SeriesName != null) { const seriesName = item.SeriesName; if (item.SeriesId != null) { - context.querySelector('.nowPlayingSerie').innerHTML = '${escapeHtml(seriesName)}`; + context.querySelector('.nowPlayingSerie').innerHTML = '${escapeHtml(seriesName)}`; } else { context.querySelector('.nowPlayingSerie').innerText = seriesName; } diff --git a/src/controllers/dashboard/dashboard.html b/src/controllers/dashboard/dashboard.html index 1077a1ef5..da3a59533 100644 --- a/src/controllers/dashboard/dashboard.html +++ b/src/controllers/dashboard/dashboard.html @@ -3,7 +3,7 @@
- +

${TabServer}

@@ -35,7 +35,7 @@
- +

${HeaderActiveDevices}

@@ -46,7 +46,7 @@
- +

${HeaderActivity}

@@ -63,7 +63,7 @@
- +

${Alerts}

@@ -72,7 +72,7 @@
- +

${HeaderPaths}

diff --git a/src/controllers/dashboard/devices/devices.js b/src/controllers/dashboard/devices/devices.js index bb2665f06..100fb1ff5 100644 --- a/src/controllers/dashboard/devices/devices.js +++ b/src/controllers/dashboard/devices/devices.js @@ -98,7 +98,7 @@ import confirm from '../../../components/confirm/confirm'; deviceHtml += '
'; deviceHtml += '
'; deviceHtml += '
'; - deviceHtml += ``; + deviceHtml += ``; const iconUrl = imageHelper.getDeviceIcon(device); if (iconUrl) { diff --git a/src/controllers/dashboard/dlna/profiles.html b/src/controllers/dashboard/dlna/profiles.html index c1170621d..6eb60d1c3 100644 --- a/src/controllers/dashboard/dlna/profiles.html +++ b/src/controllers/dashboard/dlna/profiles.html @@ -8,7 +8,7 @@
diff --git a/src/controllers/dashboard/dlna/profiles.js b/src/controllers/dashboard/dlna/profiles.js index 63c61aa3c..9a79883e9 100644 --- a/src/controllers/dashboard/dlna/profiles.js +++ b/src/controllers/dashboard/dlna/profiles.js @@ -42,7 +42,7 @@ import confirm from '../../../components/confirm/confirm'; html += '
'; html += ''; html += ''; @@ -80,10 +80,10 @@ import confirm from '../../../components/confirm/confirm'; function getTabs() { return [{ - href: '#!/dlnasettings.html', + href: '#/dlnasettings.html', name: globalize.translate('Settings') }, { - href: '#!/dlnaprofiles.html', + href: '#/dlnaprofiles.html', name: globalize.translate('TabProfiles') }]; } diff --git a/src/controllers/dashboard/dlna/settings.js b/src/controllers/dashboard/dlna/settings.js index c5f0f545e..9988d7d61 100644 --- a/src/controllers/dashboard/dlna/settings.js +++ b/src/controllers/dashboard/dlna/settings.js @@ -39,10 +39,10 @@ import Dashboard from '../../../utils/dashboard'; function getTabs() { return [{ - href: '#!/dlnasettings.html', + href: '#/dlnasettings.html', name: globalize.translate('Settings') }, { - href: '#!/dlnaprofiles.html', + href: '#/dlnaprofiles.html', name: globalize.translate('TabProfiles') }]; } diff --git a/src/controllers/dashboard/encodingsettings.js b/src/controllers/dashboard/encodingsettings.js index c819cbb62..308fc0cba 100644 --- a/src/controllers/dashboard/encodingsettings.js +++ b/src/controllers/dashboard/encodingsettings.js @@ -153,13 +153,13 @@ import alert from '../../components/alert'; function getTabs() { return [{ - href: '#!/encodingsettings.html', + href: '#/encodingsettings.html', name: globalize.translate('Transcoding') }, { - href: '#!/playbackconfiguration.html', + href: '#/playbackconfiguration.html', name: globalize.translate('ButtonResume') }, { - href: '#!/streamingsettings.html', + href: '#/streamingsettings.html', name: globalize.translate('TabStreaming') }]; } diff --git a/src/controllers/dashboard/library.js b/src/controllers/dashboard/library.js index 3df7637de..8a43d7b69 100644 --- a/src/controllers/dashboard/library.js +++ b/src/controllers/dashboard/library.js @@ -360,16 +360,16 @@ import cardBuilder from '../../components/cardbuilder/cardBuilder'; function getTabs() { return [{ - href: '#!/library.html', + href: '#/library.html', name: globalize.translate('HeaderLibraries') }, { - href: '#!/librarydisplay.html', + href: '#/librarydisplay.html', name: globalize.translate('Display') }, { - href: '#!/metadataimages.html', + href: '#/metadataimages.html', name: globalize.translate('Metadata') }, { - href: '#!/metadatanfo.html', + href: '#/metadatanfo.html', name: globalize.translate('TabNfoSettings') }]; } diff --git a/src/controllers/dashboard/librarydisplay.js b/src/controllers/dashboard/librarydisplay.js index b9d37b593..469115838 100644 --- a/src/controllers/dashboard/librarydisplay.js +++ b/src/controllers/dashboard/librarydisplay.js @@ -9,16 +9,16 @@ import Dashboard from '../../utils/dashboard'; function getTabs() { return [{ - href: '#!/library.html', + href: '#/library.html', name: globalize.translate('HeaderLibraries') }, { - href: '#!/librarydisplay.html', + href: '#/librarydisplay.html', name: globalize.translate('Display') }, { - href: '#!/metadataimages.html', + href: '#/metadataimages.html', name: globalize.translate('Metadata') }, { - href: '#!/metadatanfo.html', + href: '#/metadatanfo.html', name: globalize.translate('TabNfoSettings') }]; } diff --git a/src/controllers/dashboard/metadataImages.js b/src/controllers/dashboard/metadataImages.js index 64512607b..304f22014 100644 --- a/src/controllers/dashboard/metadataImages.js +++ b/src/controllers/dashboard/metadataImages.js @@ -54,16 +54,16 @@ import Dashboard from '../../utils/dashboard'; function getTabs() { return [{ - href: '#!/library.html', + href: '#/library.html', name: globalize.translate('HeaderLibraries') }, { - href: '#!/librarydisplay.html', + href: '#/librarydisplay.html', name: globalize.translate('Display') }, { - href: '#!/metadataimages.html', + href: '#/metadataimages.html', name: globalize.translate('Metadata') }, { - href: '#!/metadatanfo.html', + href: '#/metadatanfo.html', name: globalize.translate('TabNfoSettings') }]; } diff --git a/src/controllers/dashboard/metadatanfo.js b/src/controllers/dashboard/metadatanfo.js index 02d74bf30..33cad75f7 100644 --- a/src/controllers/dashboard/metadatanfo.js +++ b/src/controllers/dashboard/metadatanfo.js @@ -48,16 +48,16 @@ import alert from '../../components/alert'; function getTabs() { return [{ - href: '#!/library.html', + href: '#/library.html', name: globalize.translate('HeaderLibraries') }, { - href: '#!/librarydisplay.html', + href: '#/librarydisplay.html', name: globalize.translate('Display') }, { - href: '#!/metadataimages.html', + href: '#/metadataimages.html', name: globalize.translate('Metadata') }, { - href: '#!/metadatanfo.html', + href: '#/metadatanfo.html', name: globalize.translate('TabNfoSettings') }]; } diff --git a/src/controllers/dashboard/playback.js b/src/controllers/dashboard/playback.js index 392d643cf..90df29812 100644 --- a/src/controllers/dashboard/playback.js +++ b/src/controllers/dashboard/playback.js @@ -33,13 +33,13 @@ import Dashboard from '../../utils/dashboard'; function getTabs() { return [{ - href: '#!/encodingsettings.html', + href: '#/encodingsettings.html', name: globalize.translate('Transcoding') }, { - href: '#!/playbackconfiguration.html', + href: '#/playbackconfiguration.html', name: globalize.translate('ButtonResume') }, { - href: '#!/streamingsettings.html', + href: '#/streamingsettings.html', name: globalize.translate('TabStreaming') }]; } diff --git a/src/controllers/dashboard/plugins/available/index.js b/src/controllers/dashboard/plugins/available/index.js index e24d4a144..02ad0bac1 100644 --- a/src/controllers/dashboard/plugins/available/index.js +++ b/src/controllers/dashboard/plugins/available/index.js @@ -92,7 +92,7 @@ function populateList(options) { function getPluginHtml(plugin, options, installedPlugins) { let html = ''; - let href = plugin.externalUrl ? plugin.externalUrl : '#!/addplugin.html?name=' + encodeURIComponent(plugin.name) + '&guid=' + plugin.guid; + let href = plugin.externalUrl ? plugin.externalUrl : '#/addplugin.html?name=' + encodeURIComponent(plugin.name) + '&guid=' + plugin.guid; if (options.context) { href += '&context=' + options.context; @@ -134,13 +134,13 @@ function getPluginHtml(plugin, options, installedPlugins) { function getTabs() { return [{ - href: '#!/installedplugins.html', + href: '#/installedplugins.html', name: globalize.translate('TabMyPlugins') }, { - href: '#!/availableplugins.html', + href: '#/availableplugins.html', name: globalize.translate('TabCatalog') }, { - href: '#!/repositories.html', + href: '#/repositories.html', name: globalize.translate('TabRepositories') }]; } diff --git a/src/controllers/dashboard/plugins/installed/index.js b/src/controllers/dashboard/plugins/installed/index.js index d8fe9881e..16d965435 100644 --- a/src/controllers/dashboard/plugins/installed/index.js +++ b/src/controllers/dashboard/plugins/installed/index.js @@ -127,7 +127,7 @@ function populateList(page, plugins, pluginConfigurationPages) { } else { html += '
'; html += '

' + globalize.translate('MessageNoPluginsInstalled') + '

'; - html += '

'; + html += '

'; html += globalize.translate('MessageBrowsePluginCatalog'); html += '

'; html += '
'; @@ -212,13 +212,13 @@ function reloadList(page) { function getTabs() { return [{ - href: '#!/installedplugins.html', + href: '#/installedplugins.html', name: globalize.translate('TabMyPlugins') }, { - href: '#!/availableplugins.html', + href: '#/availableplugins.html', name: globalize.translate('TabCatalog') }, { - href: '#!/repositories.html', + href: '#/repositories.html', name: globalize.translate('TabRepositories') }]; } diff --git a/src/controllers/dashboard/plugins/repositories/index.js b/src/controllers/dashboard/plugins/repositories/index.js index eff2de40c..14ceff290 100644 --- a/src/controllers/dashboard/plugins/repositories/index.js +++ b/src/controllers/dashboard/plugins/repositories/index.js @@ -104,13 +104,13 @@ function getRepositoryElement(repository) { function getTabs() { return [{ - href: '#!/installedplugins.html', + href: '#/installedplugins.html', name: globalize.translate('TabMyPlugins') }, { - href: '#!/availableplugins.html', + href: '#/availableplugins.html', name: globalize.translate('TabCatalog') }, { - href: '#!/repositories.html', + href: '#/repositories.html', name: globalize.translate('TabRepositories') }]; } diff --git a/src/controllers/dashboard/streaming.js b/src/controllers/dashboard/streaming.js index 0439fb787..bc640a1f6 100644 --- a/src/controllers/dashboard/streaming.js +++ b/src/controllers/dashboard/streaming.js @@ -24,13 +24,13 @@ import Dashboard from '../../utils/dashboard'; function getTabs() { return [{ - href: '#!/encodingsettings.html', + href: '#/encodingsettings.html', name: globalize.translate('Transcoding') }, { - href: '#!/playbackconfiguration.html', + href: '#/playbackconfiguration.html', name: globalize.translate('ButtonResume') }, { - href: '#!/streamingsettings.html', + href: '#/streamingsettings.html', name: globalize.translate('TabStreaming') }]; } diff --git a/src/controllers/livetv.html b/src/controllers/livetv.html index 47642eef1..f60ade03d 100644 --- a/src/controllers/livetv.html +++ b/src/controllers/livetv.html @@ -3,7 +3,7 @@
- +

${HeaderOnNow}

@@ -12,7 +12,7 @@
- +

${Shows}

@@ -21,7 +21,7 @@
- +

${Movies}

@@ -30,7 +30,7 @@
- +

${Sports}

@@ -39,7 +39,7 @@
- +

${HeaderForKids}

@@ -48,7 +48,7 @@
- +

${News}

diff --git a/src/controllers/livetvstatus.js b/src/controllers/livetvstatus.js index 0d73ebc08..1de366a02 100644 --- a/src/controllers/livetvstatus.js +++ b/src/controllers/livetvstatus.js @@ -219,9 +219,9 @@ function getProviderName(providerId) { function getProviderConfigurationUrl(providerId) { switch (providerId = providerId.toLowerCase()) { case 'xmltv': - return '#!/livetvguideprovider.html?type=xmltv'; + return '#/livetvguideprovider.html?type=xmltv'; case 'schedulesdirect': - return '#!/livetvguideprovider.html?type=schedulesdirect'; + return '#/livetvguideprovider.html?type=schedulesdirect'; } } diff --git a/src/controllers/session/selectServer/index.html b/src/controllers/session/selectServer/index.html index 410b73d66..5dada38f7 100644 --- a/src/controllers/session/selectServer/index.html +++ b/src/controllers/session/selectServer/index.html @@ -9,7 +9,7 @@
diff --git a/src/controllers/user/menu/index.html b/src/controllers/user/menu/index.html index 9b3b588e7..185dad7c7 100644 --- a/src/controllers/user/menu/index.html +++ b/src/controllers/user/menu/index.html @@ -77,7 +77,7 @@

${HeaderAdmin}

- +
@@ -85,7 +85,7 @@
- +
diff --git a/src/controllers/user/menu/index.js b/src/controllers/user/menu/index.js index 5449bc91d..0dce21803 100644 --- a/src/controllers/user/menu/index.js +++ b/src/controllers/user/menu/index.js @@ -26,13 +26,13 @@ export default function (view, params) { const userId = params.userId || Dashboard.getCurrentUserId(); const page = this; - page.querySelector('.lnkMyProfile').setAttribute('href', '#!/myprofile.html?userId=' + userId); - page.querySelector('.lnkDisplayPreferences').setAttribute('href', '#!/mypreferencesdisplay.html?userId=' + userId); - page.querySelector('.lnkHomePreferences').setAttribute('href', '#!/mypreferenceshome.html?userId=' + userId); - page.querySelector('.lnkPlaybackPreferences').setAttribute('href', '#!/mypreferencesplayback.html?userId=' + userId); - page.querySelector('.lnkSubtitlePreferences').setAttribute('href', '#!/mypreferencessubtitles.html?userId=' + userId); - page.querySelector('.lnkQuickConnectPreferences').setAttribute('href', '#!/mypreferencesquickconnect.html'); - page.querySelector('.lnkControlsPreferences').setAttribute('href', '#!/mypreferencescontrols.html?userId=' + userId); + page.querySelector('.lnkMyProfile').setAttribute('href', '#/myprofile.html?userId=' + userId); + page.querySelector('.lnkDisplayPreferences').setAttribute('href', '#/mypreferencesdisplay.html?userId=' + userId); + page.querySelector('.lnkHomePreferences').setAttribute('href', '#/mypreferenceshome.html?userId=' + userId); + page.querySelector('.lnkPlaybackPreferences').setAttribute('href', '#/mypreferencesplayback.html?userId=' + userId); + page.querySelector('.lnkSubtitlePreferences').setAttribute('href', '#/mypreferencessubtitles.html?userId=' + userId); + page.querySelector('.lnkQuickConnectPreferences').setAttribute('href', '#/mypreferencesquickconnect.html'); + page.querySelector('.lnkControlsPreferences').setAttribute('href', '#/mypreferencescontrols.html?userId=' + userId); const supportsClientSettings = appHost.supports('clientsettings'); page.querySelector('.clientSettings').classList.toggle('hide', !supportsClientSettings); diff --git a/src/scripts/itembynamedetailpage.js b/src/scripts/itembynamedetailpage.js index 0c3bef5c8..3fb575bc4 100644 --- a/src/scripts/itembynamedetailpage.js +++ b/src/scripts/itembynamedetailpage.js @@ -301,26 +301,26 @@ function loadItems(element, item, type, query, listOptions) { function getMoreItemsHref(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 (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 (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 (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 (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; } - return '#!/list.html?type=' + type + '&parentId=' + item.Id + '&serverId=' + item.ServerId; + return '#/list.html?type=' + type + '&parentId=' + item.Id + '&serverId=' + item.ServerId; } function addCurrentItemToQuery(query, item) { diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index d12b81376..91dfb8b0d 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -293,7 +293,7 @@ import '../assets/css/flexstyles.scss'; function refreshLibraryInfoInDrawer(user) { let html = ''; html += '
'; - html += `
${globalize.translate('Home')}`; + html += `${globalize.translate('Home')}`; // placeholder for custom menu links html += '
'; @@ -306,8 +306,8 @@ import '../assets/css/flexstyles.scss'; html += '

'; html += globalize.translate('HeaderAdmin'); html += '

'; - html += `${globalize.translate('TabDashboard')}`; - html += `${globalize.translate('Metadata')}`; + html += `${globalize.translate('TabDashboard')}`; + html += `${globalize.translate('Metadata')}`; html += '
'; } @@ -408,28 +408,28 @@ import '../assets/css/flexstyles.scss'; name: globalize.translate('TabServer') }, { name: globalize.translate('TabDashboard'), - href: '#!/dashboard.html', + href: '#/dashboard.html', pageIds: ['dashboardPage'], icon: 'dashboard' }, { name: globalize.translate('General'), - href: '#!/dashboardgeneral.html', + href: '#/dashboardgeneral.html', pageIds: ['dashboardGeneralPage'], icon: 'settings' }, { name: globalize.translate('HeaderUsers'), - href: '#!/userprofiles.html', + href: '#/userprofiles.html', pageIds: ['userProfilesPage', 'newUserPage', 'editUserPage', 'userLibraryAccessPage', 'userParentalControlPage', 'userPasswordPage'], icon: 'people' }, { name: globalize.translate('HeaderLibraries'), - href: '#!/library.html', + href: '#/library.html', pageIds: ['mediaLibraryPage', 'librarySettingsPage', 'libraryDisplayPage', 'metadataImagesConfigurationPage', 'metadataNfoPage'], icon: 'folder' }, { name: globalize.translate('TitlePlayback'), icon: 'play_arrow', - href: '#!/encodingsettings.html', + href: '#/encodingsettings.html', pageIds: ['encodingSettingsPage', 'playbackConfigurationPage', 'streamingSettingsPage'] }]; addPluginPagesToMainMenu(links, pluginItems, 'server'); @@ -439,19 +439,19 @@ import '../assets/css/flexstyles.scss'; }); links.push({ name: globalize.translate('HeaderDevices'), - href: '#!/devices.html', + href: '#/devices.html', pageIds: ['devicesPage', 'devicePage'], icon: 'devices' }); links.push({ name: globalize.translate('HeaderActivity'), - href: '#!/serveractivity.html', + href: '#/serveractivity.html', pageIds: ['serverActivityPage'], icon: 'assessment' }); links.push({ name: globalize.translate('DLNA'), - href: '#!/dlnasettings.html', + href: '#/dlnasettings.html', pageIds: ['dlnaSettingsPage', 'dlnaProfilesPage', 'dlnaProfilePage'], icon: 'input' }); @@ -461,13 +461,13 @@ import '../assets/css/flexstyles.scss'; }); links.push({ name: globalize.translate('LiveTV'), - href: '#!/livetvstatus.html', + href: '#/livetvstatus.html', pageIds: ['liveTvStatusPage', 'liveTvTunerPage'], icon: 'live_tv' }); links.push({ name: globalize.translate('HeaderDVR'), - href: '#!/livetvsettings.html', + href: '#/livetvsettings.html', pageIds: ['liveTvSettingsPage'], icon: 'dvr' }); @@ -479,36 +479,36 @@ import '../assets/css/flexstyles.scss'; links.push({ name: globalize.translate('TabNetworking'), icon: 'cloud', - href: '#!/networking.html', + href: '#/networking.html', pageIds: ['networkingPage'] }); links.push({ name: globalize.translate('HeaderApiKeys'), icon: 'vpn_key', - href: '#!/apikeys.html', + href: '#/apikeys.html', pageIds: ['apiKeysPage'] }); links.push({ name: globalize.translate('TabLogs'), - href: '#!/log.html', + href: '#/log.html', pageIds: ['logPage'], icon: 'bug_report' }); links.push({ name: globalize.translate('TabNotifications'), icon: 'notifications', - href: '#!/notificationsettings.html', + href: '#/notificationsettings.html', pageIds: ['notificationSettingsPage', 'notificationSettingPage'] }); links.push({ name: globalize.translate('TabPlugins'), icon: 'shopping_cart', - href: '#!/installedplugins.html', + href: '#/installedplugins.html', pageIds: ['pluginsPage', 'pluginCatalogPage'] }); links.push({ name: globalize.translate('TabScheduledTasks'), - href: '#!/scheduledtasks.html', + href: '#/scheduledtasks.html', pageIds: ['scheduledTasksPage', 'scheduledTaskPage'], icon: 'schedule' }); @@ -593,7 +593,7 @@ import '../assets/css/flexstyles.scss'; function createDashboardMenu(apiClient) { return getToolsMenuHtml(apiClient).then(function (toolsMenuHtml) { let html = ''; - html += ''; html += toolsMenuHtml; @@ -624,7 +624,7 @@ import '../assets/css/flexstyles.scss'; guideView.Name = globalize.translate('Guide'); guideView.ImageTags = {}; guideView.icon = 'dvr'; - guideView.url = '#!/livetv.html?tab=1'; + guideView.url = '#/livetv.html?tab=1'; list.push(guideView); } }