diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index e68989cf34..13d622dca6 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -15,12 +15,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.2", - "_release": "1.4.2", + "version": "1.4.5", + "_release": "1.4.5", "_resolution": { "type": "version", - "tag": "1.4.2", - "commit": "53a28dd7296648adfda6f62cf45012567b670186" + "tag": "1.4.5", + "commit": "da29c275857fd674c0946c5f3138d3eaef03cbc8" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.0", diff --git a/dashboard-ui/bower_components/emby-webcomponents/listview/listview.css b/dashboard-ui/bower_components/emby-webcomponents/listview/listview.css index c2f0d06f94..5870add036 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/listview/listview.css +++ b/dashboard-ui/bower_components/emby-webcomponents/listview/listview.css @@ -2,7 +2,7 @@ display: flex; align-items: center; text-align: left; - padding: .1em .55em !important; + padding: .1em 1.25em !important; outline: none !important; } @@ -12,7 +12,16 @@ .listItemBody { flex-grow: 1; - padding: .35em .55em; + padding: .35em 1.25em; +} + + .listItemBody h3 { + margin: 0; + font-weight: normal; + } + +.listItemBodyText { + padding: .25em 0; } .listItemImage { @@ -47,6 +56,12 @@ transition: transform .2s ease-out; } -.listItem:focus { - transform: scale(1.025, 1.025); -} \ No newline at end of file + .listItem:focus { + transform: scale(1.025, 1.025); + } + +.paperList { + padding: .5em 0; + margin: 12px auto; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); +} diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingcreator.js b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingcreator.js index 4ae4d9114d..694334d772 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingcreator.js +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingcreator.js @@ -1,4 +1,4 @@ -define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'scrollStyles', 'paper-checkbox', 'emby-collapsible', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'html!./../icons/mediainfo.html', 'html!./../icons/nav.html'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper) { +define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'paper-checkbox', 'emby-collapsible', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'html!./../icons/mediainfo.html', 'html!./../icons/nav.html'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper) { var currentProgramId; var currentServerId; diff --git a/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.js b/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.js new file mode 100644 index 0000000000..3260175128 --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.js @@ -0,0 +1,427 @@ +define(['dialogHelper', 'require', 'layoutManager', 'globalize', 'appStorage', 'connectionManager', 'loading', 'paper-fab', 'listViewStyle', 'paper-icon-button-light', 'css!./../formdialog'], function (dialogHelper, require, layoutManager, globalize, appStorage, connectionManager, loading) { + + var currentItem; + + function showLocalSubtitles(context, index) { + + loading.show(); + + var subtitleContent = context.querySelector('.subtitleContent'); + subtitleContent.innerHTML = ''; + + var apiClient = connectionManager.getApiClient(currentItem.ServerId); + var url = 'Videos/' + currentItem.Id + '/Subtitles/' + index; + + apiClient.ajax({ + + type: 'GET', + url: url + + }).then(function (result) { + + subtitleContent.innerHTML = result; + + loading.hide(); + }); + } + + function showRemoteSubtitles(context, id) { + + loading.show(); + + var url = 'Providers/Subtitles/Subtitles/' + id; + + ApiClient.get(ApiClient.getUrl(url)).then(function (result) { + + // show result + + loading.hide(); + }); + } + + function downloadRemoteSubtitles(context, id) { + + var url = 'Items/' + currentItem.Id + '/RemoteSearch/Subtitles/' + id; + + var apiClient = connectionManager.getApiClient(currentItem.ServerId); + apiClient.ajax({ + + type: "POST", + url: apiClient.getUrl(url) + + }).then(function () { + + require(['toast'], function (toast) { + toast(globalize.translate('MessageDownloadQueued')); + }); + }); + } + + function deleteLocalSubtitle(context, index) { + + var msg = globalize.translate('MessageAreYouSureDeleteSubtitles'); + + require(['confirm'], function (confirm) { + + confirm(msg, globalize.translate('HeaderConfirmDeletion')).then(function () { + + loading.show(); + + var itemId = currentItem.Id; + var url = 'Videos/' + itemId + '/Subtitles/' + index; + + var apiClient = connectionManager.getApiClient(currentItem.ServerId); + + apiClient.ajax({ + + type: "DELETE", + url: apiClient.getUrl(url) + + }).then(function () { + + reload(context, apiClient, itemId); + }); + }); + }); + } + + function fillSubtitleList(context, item) { + + var streams = item.MediaStreams || []; + + var subs = streams.filter(function (s) { + + return s.Type == 'Subtitle'; + }); + + var html = ''; + + if (subs.length) { + + html += '

' + globalize.translate('HeaderCurrentSubtitles') + '

'; + + if (layoutManager.tv) { + html += '
'; + } else { + html += '
'; + } + + html += subs.map(function (s) { + + var itemHtml = ''; + + itemHtml += '
'; + + itemHtml += ''; + + var atts = []; + + atts.push(s.Codec); + if (s.IsDefault) { + + atts.push('Default'); + } + if (s.IsForced) { + + atts.push('Forced'); + } + + itemHtml += '
'; + + itemHtml += '

'; + itemHtml += (s.Language || globalize.translate('LabelUnknownLanaguage')); + itemHtml += '

'; + + itemHtml += '
' + atts.join(' - ') + '
'; + + if (s.Path) { + itemHtml += '
' + (s.Path) + '
'; + } + + itemHtml += ''; + itemHtml += '
'; + + if (s.Path) { + itemHtml += ''; + } + + itemHtml += '
'; + + return itemHtml; + + }).join(''); + + html += '
'; + } + + var elem = context.querySelector('.subtitleList'); + + if (subs.length) { + elem.classList.remove('hide'); + } else { + elem.classList.add('hide'); + } + elem.innerHTML = html; + + //('.btnViewSubtitles', elem).on('click', function () { + + // var index = this.getAttribute('data-index'); + + // showLocalSubtitles(context, index); + + //}); + } + + function fillLanguages(context, apiClient, languages) { + + var selectLanguage = context.querySelector('#selectLanguage'); + + selectLanguage.innerHTML = languages.map(function (l) { + + return ''; + }); + + var lastLanguage = appStorage.getItem('subtitleeditor-language'); + if (lastLanguage) { + selectLanguage.value = lastLanguage; + } + else { + + apiClient.getCurrentUser().then(function (user) { + + var lang = user.Configuration.SubtitleLanguagePreference; + + if (lang) { + selectLanguage.value = lang; + } + }); + } + } + + function renderSearchResults(context, results) { + + var lastProvider = ''; + var html = ''; + + if (!results.length) { + + context.querySelector('.noSearchResults').classList.remove('hide'); + context.querySelector('.subtitleResults').innerHTML = ''; + loading.hide(); + return; + } + + context.querySelector('.noSearchResults').classList.add('hide'); + + for (var i = 0, length = results.length; i < length; i++) { + + var result = results[i]; + + var provider = result.ProviderName; + + if (provider != lastProvider) { + + if (i > 0) { + html += '
'; + } + html += '

' + provider + '

'; + if (layoutManager.tv) { + html += '
'; + } else { + html += '
'; + } + lastProvider = provider; + } + + html += '
'; + + html += ''; + + html += ''; + + html += '
' + /*(result.CommunityRating || 0) + ' / ' +*/ (result.DownloadCount || 0) + '
'; + + html += ''; + + html += '
'; + } + + if (results.length) { + html += '
'; + } + + var elem = context.querySelector('.subtitleResults'); + elem.innerHTML = html; + + //('.btnViewSubtitle', elem).on('click', function () { + + // var id = this.getAttribute('data-subid'); + // showRemoteSubtitles(context, id); + //}); + + loading.hide(); + } + + function searchForSubtitles(context, language) { + + appStorage.setItem('subtitleeditor-language', language); + + loading.show(); + + var apiClient = connectionManager.getApiClient(currentItem.ServerId); + var url = apiClient.getUrl('Items/' + currentItem.Id + '/RemoteSearch/Subtitles/' + language); + + apiClient.getJSON(url).then(function (results) { + + renderSearchResults(context, results); + }); + } + + function reload(context, apiClient, itemId) { + + context.querySelector('.noSearchResults').classList.add('hide'); + + function onGetItem(item) { + currentItem = item; + + fillSubtitleList(context, item); + var file = item.Path || ''; + var index = Math.max(file.lastIndexOf('/'), file.lastIndexOf('\\')); + if (index > -1) { + file = file.substring(index + 1); + } + + if (file) { + context.querySelector('.pathValue').innerHTML = file; + context.querySelector('.originalFile').classList.remove('hide'); + } else { + context.querySelector('.pathValue').innerHTML = ''; + context.querySelector('.originalFile').classList.add('hide'); + } + + loading.hide(); + } + + if (typeof itemId == 'string') { + apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(onGetItem); + } + else { + onGetItem(itemId); + } + } + + function parentWithClass(elem, className) { + + while (!elem.classList || !elem.classList.contains(className)) { + elem = elem.parentNode; + + if (!elem) { + return null; + } + } + + return elem; + } + + function onSearchSubmit(e) { + var form = this; + + var lang = form.querySelector('#selectLanguage', form).value; + + searchForSubtitles(parentWithClass(form, 'dialogContent'), lang); + + e.preventDefault(); + return false; + } + + function onSubtitleListClick(e) { + + var btnDelete = parentWithClass(e.target, 'btnDelete'); + if (btnDelete) { + var index = btnDelete.getAttribute('data-index'); + var context = parentWithClass(btnDelete, 'subtitleEditorDialog'); + deleteLocalSubtitle(context, index); + } + } + + function onSubtitleResultsClick(e) { + + var btnDownload = parentWithClass(e.target, 'btnDownload'); + if (btnDownload) { + var id = btnDownload.getAttribute('data-subid'); + var context = parentWithClass(btnDownload, 'subtitleEditorDialog'); + downloadRemoteSubtitles(context, id); + } + } + + function showEditor(itemId, serverId) { + + loading.show(); + + require(['text!./subtitleeditor.template.html'], function (template) { + + var apiClient = connectionManager.getApiClient(serverId); + + apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(function (item) { + + var dialogOptions = { + removeOnClose: true + }; + + if (layoutManager.tv) { + dialogOptions.size = 'fullscreen'; + } else { + dialogOptions.size = 'small'; + } + + var dlg = dialogHelper.createDialog(dialogOptions); + + dlg.classList.add('formDialog'); + dlg.classList.add('subtitleEditorDialog'); + + dlg.innerHTML = globalize.translateDocument(template); + document.body.appendChild(dlg); + + dlg.querySelector('.pathLabel').innerHTML = globalize.translate('MediaInfoFile'); + + dlg.querySelector('.subtitleSearchForm').addEventListener('submit', onSearchSubmit); + + dialogHelper.open(dlg); + + var editorContent = dlg.querySelector('.dialogContent'); + + dlg.querySelector('.subtitleList').addEventListener('click', onSubtitleListClick); + dlg.querySelector('.subtitleResults').addEventListener('click', onSubtitleResultsClick); + + reload(editorContent, apiClient, item); + + apiClient.getCultures().then(function (languages) { + + fillLanguages(editorContent, apiClient, languages); + }); + + dlg.querySelector('.btnCancel').addEventListener('click', function () { + + dialogHelper.close(dlg); + }); + }); + }); + } + + return { + show: showEditor + }; +}); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.template.html b/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.template.html new file mode 100644 index 0000000000..b94d8c7b2e --- /dev/null +++ b/dashboard-ui/bower_components/emby-webcomponents/subtitleeditor/subtitleeditor.template.html @@ -0,0 +1,26 @@ +
+ +
${Subtitles}
+
+
+
+ +
+

${HeaderSearchForSubtitles}

+ +

+ +
+
+ + +
+ +
+
+
+
+ ${MessageNoSubtitleSearchResultsFound} +
+
+
\ No newline at end of file diff --git a/dashboard-ui/bower_components/polymer/.bower.json b/dashboard-ui/bower_components/polymer/.bower.json index bbad7fe7ba..3e8a4009a3 100644 --- a/dashboard-ui/bower_components/polymer/.bower.json +++ b/dashboard-ui/bower_components/polymer/.bower.json @@ -34,6 +34,6 @@ "commit": "11c987b2eb3c73b388a79fc8aaea8ca01624f514" }, "_source": "git://github.com/Polymer/polymer.git", - "_target": "^1.1.0", + "_target": "^1.0.0", "_originalSource": "Polymer/polymer" } \ No newline at end of file diff --git a/dashboard-ui/components/subtitleeditor/subtitleeditor.js b/dashboard-ui/components/subtitleeditor/subtitleeditor.js deleted file mode 100644 index 5d27051dcf..0000000000 --- a/dashboard-ui/components/subtitleeditor/subtitleeditor.js +++ /dev/null @@ -1,406 +0,0 @@ -define(['dialogHelper', 'appStorage', 'jQuery', 'paper-fab', 'paper-item-body', 'paper-icon-item', 'paper-icon-button-light'], function (dialogHelper, appStorage, $) { - - var currentItem; - - function showLocalSubtitles(page, index) { - - Dashboard.showLoadingMsg(); - - var popup = $('.popupSubtitleViewer', page).popup('open'); - $('.subtitleContent', page).html(''); - - var url = 'Videos/' + currentItem.Id + '/Subtitles/' + index; - - ApiClient.ajax({ - - type: 'GET', - url: url - - }).then(function (result) { - - $('.subtitleContent', page).html(result); - - Dashboard.hideLoadingMsg(); - - popup.popup('reposition', {}); - }); - } - - function showRemoteSubtitles(page, id) { - - Dashboard.showLoadingMsg(); - - var popup = $('.popupSubtitleViewer', page).popup('open'); - $('.subtitleContent', page).html(''); - - var url = 'Providers/Subtitles/Subtitles/' + id; - - ApiClient.get(ApiClient.getUrl(url)).then(function (result) { - - $('.subtitleContent', page).html(result); - - Dashboard.hideLoadingMsg(); - - popup.popup('reposition', {}); - }); - } - - function downloadRemoteSubtitles(page, id) { - - var url = 'Items/' + currentItem.Id + '/RemoteSearch/Subtitles/' + id; - - ApiClient.ajax({ - - type: "POST", - url: ApiClient.getUrl(url) - - }).then(function () { - - require(['toast'], function (toast) { - toast(Globalize.translate('MessageDownloadQueued')); - }); - }); - } - - function deleteLocalSubtitle(page, index) { - - var msg = Globalize.translate('MessageAreYouSureDeleteSubtitles'); - - require(['confirm'], function (confirm) { - - confirm(msg, Globalize.translate('HeaderConfirmDeletion')).then(function () { - - Dashboard.showLoadingMsg(); - - var itemId = currentItem.Id; - var url = 'Videos/' + itemId + '/Subtitles/' + index; - - ApiClient.ajax({ - - type: "DELETE", - url: ApiClient.getUrl(url) - - }).then(function () { - - reload(page, itemId); - }); - }); - }); - } - - function fillSubtitleList(page, item) { - - var streams = item.MediaStreams || []; - - var subs = streams.filter(function (s) { - - return s.Type == 'Subtitle'; - }); - - var html = ''; - - if (subs.length) { - - html += '

' + Globalize.translate('HeaderCurrentSubtitles') + '

'; - html += '
'; - - html += subs.map(function (s) { - - var itemHtml = ''; - - itemHtml += ''; - - itemHtml += ''; - - var atts = []; - - atts.push(s.Codec); - if (s.IsDefault) { - - atts.push('Default'); - } - if (s.IsForced) { - - atts.push('Forced'); - } - - if (atts.length == 3) { - itemHtml += ''; - } - else { - itemHtml += ''; - } - - itemHtml += '
'; - itemHtml += (s.Language || Globalize.translate('LabelUnknownLanaguage')); - itemHtml += '
'; - - itemHtml += '
' + atts.join(' - ') + '
'; - - if (s.Path) { - itemHtml += '
' + (s.Path) + '
'; - } - - html += ''; - itemHtml += '
'; - - if (s.Path) { - itemHtml += ''; - } - - itemHtml += '
'; - - return itemHtml; - - }).join(''); - - html += '
'; - } - - var elem = $('.subtitleList', page).html(html); - - $('.btnViewSubtitles', elem).on('click', function () { - - var index = this.getAttribute('data-index'); - - showLocalSubtitles(page, index); - - }); - - $('.btnDelete', elem).on('click', function () { - - var index = this.getAttribute('data-index'); - - deleteLocalSubtitle(page, index); - - }); - } - - function fillLanguages(page, languages) { - - $('#selectLanguage', page).html(languages.map(function (l) { - - return ''; - - })); - - var lastLanguage = appStorage.getItem('subtitleeditor-language'); - if (lastLanguage) { - $('#selectLanguage', page).val(lastLanguage); - } - else { - - Dashboard.getCurrentUser().then(function (user) { - - var lang = user.Configuration.SubtitleLanguagePreference; - - if (lang) { - $('#selectLanguage', page).val(lang); - } - }); - } - } - - function renderSearchResults(page, results) { - - var lastProvider = ''; - var html = ''; - - if (!results.length) { - - $('.noSearchResults', page).show(); - $('.subtitleResults', page).html(''); - Dashboard.hideLoadingMsg(); - return; - } - - $('.noSearchResults', page).hide(); - - for (var i = 0, length = results.length; i < length; i++) { - - var result = results[i]; - - var provider = result.ProviderName; - - if (provider != lastProvider) { - - if (i > 0) { - html += '
'; - } - html += '

' + provider + '

'; - html += '
'; - lastProvider = provider; - } - - html += ''; - - html += ''; - - if (result.Comment) { - html += ''; - } - else { - html += ''; - } - - //html += ''; - - html += '
' + (result.Name) + '
'; - html += '
' + (result.Format) + '
'; - - if (result.Comment) { - html += '
' + (result.Comment) + '
'; - } - - //html += '
'; - - html += '
'; - - html += '
' + /*(result.CommunityRating || 0) + ' / ' +*/ (result.DownloadCount || 0) + '
'; - - html += ''; - - html += '
'; - } - - if (results.length) { - html += '
'; - } - - var elem = $('.subtitleResults', page).html(html); - - $('.btnViewSubtitle', elem).on('click', function () { - - var id = this.getAttribute('data-subid'); - showRemoteSubtitles(page, id); - }); - - $('.btnDownload', elem).on('click', function () { - - var id = this.getAttribute('data-subid'); - downloadRemoteSubtitles(page, id); - }); - - Dashboard.hideLoadingMsg(); - } - - function searchForSubtitles(page, language) { - - appStorage.setItem('subtitleeditor-language', language); - - Dashboard.showLoadingMsg(); - - var url = ApiClient.getUrl('Items/' + currentItem.Id + '/RemoteSearch/Subtitles/' + language); - - ApiClient.getJSON(url).then(function (results) { - - renderSearchResults(page, results); - }); - } - - function reload(context, itemId) { - - $('.noSearchResults', context).hide(); - - function onGetItem(item) { - currentItem = item; - - fillSubtitleList(context, item); - var file = item.Path || ''; - var index = Math.max(file.lastIndexOf('/'), file.lastIndexOf('\\')); - if (index > -1) { - file = file.substring(index + 1); - } - - if (file) { - context.querySelector('.pathValue').innerHTML = file; - context.querySelector('.originalFile').classList.remove('hide'); - } else { - context.querySelector('.pathValue').innerHTML = ''; - context.querySelector('.originalFile').classList.add('hide'); - } - - Dashboard.hideLoadingMsg(); - } - - if (typeof itemId == 'string') { - ApiClient.getItem(Dashboard.getCurrentUserId(), itemId).then(onGetItem); - } - else { - onGetItem(itemId); - } - } - - function onSearchSubmit() { - var form = this; - - var lang = $('#selectLanguage', form).val(); - - searchForSubtitles($(form).parents('.editorContent'), lang); - - return false; - } - - function showEditor(itemId) { - - Dashboard.showLoadingMsg(); - - var xhr = new XMLHttpRequest(); - xhr.open('GET', 'components/subtitleeditor/subtitleeditor.template.html', true); - - xhr.onload = function (e) { - - var template = this.response; - ApiClient.getItem(Dashboard.getCurrentUserId(), itemId).then(function (item) { - - var dlg = dialogHelper.createDialog({ - size: 'small', - removeOnClose: true - }); - - dlg.classList.add('ui-body-b'); - dlg.classList.add('background-theme-b'); - - var html = ''; - html += '
'; - html += ''; - html += '
'; - html += item.Name; - html += '
'; - html += '
'; - - html += '
'; - html += Globalize.translateDocument(template); - html += '
'; - - dlg.innerHTML = html; - document.body.appendChild(dlg); - - dlg.querySelector('.pathLabel').innerHTML = Globalize.translate('MediaInfoFile'); - - $('.subtitleSearchForm', dlg).off('submit', onSearchSubmit).on('submit', onSearchSubmit); - - dialogHelper.open(dlg); - - var editorContent = dlg.querySelector('.editorContent'); - reload(editorContent, item); - - ApiClient.getCultures().then(function (languages) { - - fillLanguages(editorContent, languages); - }); - - $('.btnCancel', dlg).on('click', function () { - - dialogHelper.close(dlg); - }); - }); - } - - xhr.send(); - } - - return { - show: showEditor - }; -}); \ No newline at end of file diff --git a/dashboard-ui/components/subtitleeditor/subtitleeditor.template.html b/dashboard-ui/components/subtitleeditor/subtitleeditor.template.html deleted file mode 100644 index 2e8bafa10c..0000000000 --- a/dashboard-ui/components/subtitleeditor/subtitleeditor.template.html +++ /dev/null @@ -1,22 +0,0 @@ -
-
-
-
-
-

${HeaderSearchForSubtitles}

- -

- -
-
- - -
- -
-
-
- -
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index 97c77512bb..3e335f5d17 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -804,9 +804,10 @@ editSubtitles: function (itemId) { - require(['components/subtitleeditor/subtitleeditor'], function (SubtitleEditor) { + require(['subtitleEditor'], function (subtitleEditor) { - SubtitleEditor.show(itemId); + var serverId = ApiClient.serverInfo().Id; + subtitleEditor.show(itemId, serverId); }); }, diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index e8adaa46c8..c3396a9011 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1789,6 +1789,7 @@ var AppInfo = {}; define("playlistEditor", [embyWebComponentsBowerPath + "/playlisteditor/playlisteditor"], returnFirstDependency); define("recordingCreator", [embyWebComponentsBowerPath + "/recordingcreator/recordingcreator"], returnFirstDependency); define("recordingEditor", [embyWebComponentsBowerPath + "/recordingcreator/recordingeditor"], returnFirstDependency); + define("subtitleEditor", [embyWebComponentsBowerPath + "/subtitleeditor/subtitleeditor"], returnFirstDependency); define("mediaInfo", [embyWebComponentsBowerPath + "/mediainfo/mediainfo"], returnFirstDependency); define("backdrop", [embyWebComponentsBowerPath + "/backdrop/backdrop"], returnFirstDependency); define("fetchHelper", [embyWebComponentsBowerPath + "/fetchhelper"], returnFirstDependency); @@ -1927,6 +1928,8 @@ var AppInfo = {}; define('native-promise-only', [bowerPath + '/native-promise-only/lib/npo.src']); define("fingerprintjs2", [bowerPath + '/fingerprintjs2/fingerprint2'], returnFirstDependency); define("clearButtonStyle", ['css!' + embyWebComponentsBowerPath + '/clearbutton']); + define("listView", [embyWebComponentsBowerPath + "/listview/listview"], returnFirstDependency); + define("listViewStyle", ['css!' + embyWebComponentsBowerPath + "/listview/listview"], returnFirstDependency); if (Dashboard.isRunningInCordova()) { define('registrationservices', ['cordova/registrationservices'], returnFirstDependency);