diff --git a/dashboard-ui/components/directorybrowser/directorybrowser.js b/dashboard-ui/components/directorybrowser/directorybrowser.js new file mode 100644 index 0000000000..c4c51fbef1 --- /dev/null +++ b/dashboard-ui/components/directorybrowser/directorybrowser.js @@ -0,0 +1,271 @@ +define([], function () { + + var systemInfo; + function getSystemInfo() { + + var deferred = DeferredBuilder.Deferred(); + + if (systemInfo) { + deferred.resolveWith(null, [systemInfo]); + } else { + ApiClient.getPublicSystemInfo().done(function (info) { + systemInfo = info; + deferred.resolveWith(null, [systemInfo]); + }); + } + + return deferred.promise(); + } + + function onDialogClosed() { + + $(this).remove(); + Dashboard.hideLoadingMsg(); + } + + function refreshDirectoryBrowser(page, path, fileOptions) { + + Dashboard.showLoadingMsg(); + + if (path) { + $('.networkHeadline').hide(); + } else { + $('.networkHeadline').show(); + } + + var promise; + + var parentPathPromise = null; + + if (path === "Network") { + promise = ApiClient.getNetworkDevices(); + } + else if (path) { + promise = ApiClient.getDirectoryContents(path, fileOptions); + parentPathPromise = ApiClient.getParentPath(path); + } else { + promise = ApiClient.getDrives(); + } + + if (!parentPathPromise) { + parentPathPromise = $.Deferred(); + parentPathPromise.resolveWith(null, []); + parentPathPromise = parentPathPromise.promise(); + } + + $.when(promise, parentPathPromise).done(function (response1, response2) { + + var folders = response1[0]; + var parentPath = response2 && response2.length ? response2[0] || '' : ''; + + $('#txtDirectoryPickerPath', page).val(path || ""); + + var html = ''; + + if (path) { + + html += ''; + html += ''; + html += '...'; + html += ''; + html += ''; + html += ''; + } + + for (var i = 0, length = folders.length; i < length; i++) { + + var folder = folders[i]; + + var cssClass = folder.Type == "File" ? "lnkPath lnkFile" : "lnkPath lnkDirectory"; + + html += ''; + html += ''; + html += folder.Name; + html += ''; + html += ''; + html += ''; + } + + if (!path) { + html += ''; + html += ''; + html += Globalize.translate('ButtonNetwork'); + html += ''; + html += ''; + html += ''; + } + + $('.results', page).html(html); + + Dashboard.hideLoadingMsg(); + + }).fail(function () { + + $('#txtDirectoryPickerPath', page).val(""); + $('.results', page).html(''); + + Dashboard.hideLoadingMsg(); + }); + } + + function getEditorHtml(options, systemInfo) { + + var html = ''; + + var instruction = options.instruction ? options.instruction + '

' : ''; + + html += '

'; + html += instruction; + html += Globalize.translate('MessageDirectoryPickerInstruction') + .replace('{0}', '\\\\server') + .replace('{1}', '\\\\192.168.1.101'); + + if (systemInfo.OperatingSystem.toLowerCase() == 'bsd') { + + html += '
'; + html += '
'; + html += Globalize.translate('MessageDirectoryPickerBSDInstruction'); + html += '
'; + html += '' + Globalize.translate('ButtonMoreInformation') + ''; + } + + html += '

'; + + html += '
'; + html += '
'; + html += ''; + + html += ''; + html += '
'; + + html += '
'; + + html += '
'; + html += ''; + html += '
'; + + html += '
'; + html += ''; + + return html; + } + + function initEditor(content, options, fileOptions) { + + $(content).on("click", ".lnkPath", function () { + + var path = this.getAttribute('data-path'); + + if ($(this).hasClass('lnkFile')) { + $('#txtDirectoryPickerPath', content).val(path); + } else { + refreshDirectoryBrowser(content, path, fileOptions); + } + + + }).on("click", ".btnRefreshDirectories", function () { + + var path = $('#txtDirectoryPickerPath', content).val(); + + refreshDirectoryBrowser(content, path, fileOptions); + + }).on("change", "#txtDirectoryPickerPath", function () { + + refreshDirectoryBrowser(content, this.value, fileOptions); + }); + + $('form', content).on('submit', function () { + + if (options.callback) { + options.callback(this.querySelector('#txtDirectoryPickerPath').value); + } + + return false; + }); + } + + function directoryBrowser() { + + var self = this; + var currentDialog; + + self.show = function (options) { + + options = options || {}; + + var fileOptions = { + includeDirectories: true + }; + + if (options.includeDirectories != null) { + fileOptions.includeDirectories = options.includeDirectories; + } + + if (options.includeFiles != null) { + fileOptions.includeFiles = options.includeFiles; + } + + getSystemInfo().done(function (systemInfo) { + + require(['components/paperdialoghelper'], function () { + + var dlg = PaperDialogHelper.createDialog({ + theme: 'a', + size: 'medium' + }); + + dlg.classList.add('directoryPicker'); + + var html = ''; + html += '

'; + html += ''; + html += '
' + (options.header || Globalize.translate('HeaderSelectPath')) + '
'; + html += '

'; + + html += '
'; + html += getEditorHtml(options, systemInfo); + html += '
'; + + dlg.innerHTML = html; + document.body.appendChild(dlg); + + var editorContent = dlg.querySelector('.editorContent'); + initEditor(editorContent, options, fileOptions); + + // Has to be assigned a z-index after the call to .open() + $(dlg).on('iron-overlay-opened', function () { + this.querySelector('#txtDirectoryPickerPath input').focus(); + }); + $(dlg).on('iron-overlay-closed', onDialogClosed); + + PaperDialogHelper.openWithHash(dlg, 'directorybrowser'); + + $('.btnCloseDialog', dlg).on('click', function () { + + PaperDialogHelper.close(dlg); + }); + + currentDialog = dlg; + + var txtCurrentPath = $('#txtDirectoryPickerPath', editorContent); + + if (options.path) { + txtCurrentPath.val(options.path); + } + + refreshDirectoryBrowser(editorContent, txtCurrentPath.val()); + }); + + }); + }; + + self.close = function () { + if (currentDialog) { + PaperDialogHelper.close(currentDialog); + } + }; + + } + + return directoryBrowser; +}); \ No newline at end of file diff --git a/dashboard-ui/components/directorybrowser/directorybrowser.template.html b/dashboard-ui/components/directorybrowser/directorybrowser.template.html new file mode 100644 index 0000000000..453c2e78ff --- /dev/null +++ b/dashboard-ui/components/directorybrowser/directorybrowser.template.html @@ -0,0 +1,22 @@ +
+
+
+
+
+

${HeaderSearchForSubtitles}

+ +
+
+ + +
+ +
+
+
+ +
diff --git a/dashboard-ui/components/imagedownloader/imagedownloader.js b/dashboard-ui/components/imagedownloader/imagedownloader.js index 5edbff50cd..d446175ed5 100644 --- a/dashboard-ui/components/imagedownloader/imagedownloader.js +++ b/dashboard-ui/components/imagedownloader/imagedownloader.js @@ -259,7 +259,7 @@ Dashboard.showLoadingMsg(); - ApiClient.ajax({ + HttpClient.send({ type: 'GET', url: 'components/imagedownloader/imagedownloader.template.html' diff --git a/dashboard-ui/components/imageeditor/imageeditor.js b/dashboard-ui/components/imageeditor/imageeditor.js index d372d81de7..f8f62a9e3d 100644 --- a/dashboard-ui/components/imageeditor/imageeditor.js +++ b/dashboard-ui/components/imageeditor/imageeditor.js @@ -221,7 +221,7 @@ Dashboard.showLoadingMsg(); - ApiClient.ajax({ + HttpClient.send({ type: 'GET', url: 'components/imageeditor/imageeditor.template.html' diff --git a/dashboard-ui/components/imageuploader/imageuploader.js b/dashboard-ui/components/imageuploader/imageuploader.js index 981e41b8f7..0056cb6f31 100644 --- a/dashboard-ui/components/imageuploader/imageuploader.js +++ b/dashboard-ui/components/imageuploader/imageuploader.js @@ -123,7 +123,7 @@ function showEditor(itemId) { - ApiClient.ajax({ + HttpClient.send({ type: 'GET', url: 'components/imageuploader/imageuploader.template.html' diff --git a/dashboard-ui/components/itemidentifier/itemidentifier.js b/dashboard-ui/components/itemidentifier/itemidentifier.js index c49c2cc770..93d0a4689a 100644 --- a/dashboard-ui/components/itemidentifier/itemidentifier.js +++ b/dashboard-ui/components/itemidentifier/itemidentifier.js @@ -281,7 +281,7 @@ Dashboard.showLoadingMsg(); - ApiClient.ajax({ + HttpClient.send({ type: 'GET', url: 'components/itemidentifier/itemidentifier.template.html' diff --git a/dashboard-ui/components/metadataeditor/metadataeditor.js b/dashboard-ui/components/metadataeditor/metadataeditor.js index 492dde5caa..96c31fd813 100644 --- a/dashboard-ui/components/metadataeditor/metadataeditor.js +++ b/dashboard-ui/components/metadataeditor/metadataeditor.js @@ -39,7 +39,7 @@ Dashboard.showLoadingMsg(); - ApiClient.ajax({ + HttpClient.send({ type: 'GET', url: 'components/metadataeditor/metadataeditor.template.html' @@ -58,8 +58,6 @@ dlg.setAttribute('noAutoFocus', 'noAutoFocus'); dlg.entryAnimation = 'scale-up-animation'; dlg.exitAnimation = 'fade-out-animation'; - dlg.classList.add('fullscreen-editor-paper-dialog'); - dlg.classList.add('ui-body-b'); dlg.classList.add('smoothScrollY'); var html = ''; diff --git a/dashboard-ui/components/paperdialoghelper.js b/dashboard-ui/components/paperdialoghelper.js index 8cf12032bc..4efbba21cf 100644 --- a/dashboard-ui/components/paperdialoghelper.js +++ b/dashboard-ui/components/paperdialoghelper.js @@ -76,7 +76,10 @@ } } - function createDialog() { + function createDialog(options) { + + options = options || {}; + var dlg = document.createElement('paper-dialog'); dlg.setAttribute('with-backdrop', 'with-backdrop'); @@ -90,9 +93,19 @@ dlg.setAttribute('noAutoFocus', 'noAutoFocus'); dlg.entryAnimation = 'scale-up-animation'; dlg.exitAnimation = 'fade-out-animation'; - dlg.classList.add('fullscreen-editor-paper-dialog'); - dlg.classList.add('ui-body-b'); - dlg.classList.add('background-theme-b'); + + dlg.classList.add('popupEditor'); + + if (options.size == 'medium') { + dlg.classList.add('medium-paper-dialog'); + } else { + dlg.classList.add('fullscreen-paper-dialog'); + } + + var theme = options.theme || 'b'; + + dlg.classList.add('ui-body-' + theme); + dlg.classList.add('background-theme-' + theme); dlg.classList.add('smoothScrollY'); return dlg; diff --git a/dashboard-ui/components/subtitleeditor/subtitleeditor.js b/dashboard-ui/components/subtitleeditor/subtitleeditor.js index 45882a72d0..083dc8da59 100644 --- a/dashboard-ui/components/subtitleeditor/subtitleeditor.js +++ b/dashboard-ui/components/subtitleeditor/subtitleeditor.js @@ -326,7 +326,7 @@ Dashboard.showLoadingMsg(); - ApiClient.ajax({ + HttpClient.send({ type: 'GET', url: 'components/subtitleeditor/subtitleeditor.template.html' diff --git a/dashboard-ui/components/tvguide/tvguide.js b/dashboard-ui/components/tvguide/tvguide.js index f107c7afe0..9fe6fcb704 100644 --- a/dashboard-ui/components/tvguide/tvguide.js +++ b/dashboard-ui/components/tvguide/tvguide.js @@ -471,7 +471,7 @@ }); } - ApiClient.ajax({ + HttpClient.send({ type: 'GET', url: 'components/tvguide/tvguide.template.html' diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index 34389dd126..32fe6fe228 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -894,7 +894,7 @@ paper-input + .fieldDescription { box-shadow: -3px 0 10px 0 #555;*/ } -.background-theme-a { +.background-theme-a, paper-dialog.background-theme-a { background-color: #f7f7f7; } @@ -1061,6 +1061,14 @@ paper-input + .fieldDescription { background: #fff3a5; padding: 1em; border-radius: 5px; + margin-top: 2em; +} + +.directoryPicker paper-item { + min-height: 36px; + border-bottom: 1px solid #eee; + outline: none; + cursor: pointer; } .premiumBanner img { diff --git a/dashboard-ui/scripts/advancedconfigurationpage.js b/dashboard-ui/scripts/advancedconfigurationpage.js index 2804e0a1d5..e1c734e4eb 100644 --- a/dashboard-ui/scripts/advancedconfigurationpage.js +++ b/dashboard-ui/scripts/advancedconfigurationpage.js @@ -102,17 +102,20 @@ $('#btnSelectDashboardSourcePath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtDashboardSourcePath', page).val(path); + callback: function (path) { + + if (path) { + $('#txtDashboardSourcePath', page).val(path); + } + picker.close(); } - picker.close(); - } + }); }); }); diff --git a/dashboard-ui/scripts/autoorganizetv.js b/dashboard-ui/scripts/autoorganizetv.js index 9d9a206077..38f5a70005 100644 --- a/dashboard-ui/scripts/autoorganizetv.js +++ b/dashboard-ui/scripts/autoorganizetv.js @@ -133,21 +133,24 @@ $('#btnSelectWatchFolder', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtWatchFolder', page).val(path); - } - picker.close(); - }, + callback: function (path) { - header: Globalize.translate('HeaderSelectWatchFolder'), + if (path) { + $('#txtWatchFolder', page).val(path); + } + picker.close(); + }, - instruction: Globalize.translate('HeaderSelectWatchFolderHelp') + header: Globalize.translate('HeaderSelectWatchFolder'), + + instruction: Globalize.translate('HeaderSelectWatchFolderHelp') + }); }); }); diff --git a/dashboard-ui/scripts/cinemamodeconfiguration.js b/dashboard-ui/scripts/cinemamodeconfiguration.js index b03cd24032..95a2f318af 100644 --- a/dashboard-ui/scripts/cinemamodeconfiguration.js +++ b/dashboard-ui/scripts/cinemamodeconfiguration.js @@ -57,19 +57,22 @@ $('#btnSelectCustomIntrosPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtCustomIntrosPath', page).val(path); - } - picker.close(); - }, + callback: function (path) { - header: Globalize.translate('HeaderSelectCustomIntrosPath') + if (path) { + $('#txtCustomIntrosPath', page).val(path); + } + picker.close(); + }, + + header: Globalize.translate('HeaderSelectCustomIntrosPath') + }); }); }); diff --git a/dashboard-ui/scripts/dashboardgeneral.js b/dashboard-ui/scripts/dashboardgeneral.js index fe91c88372..99330eab8b 100644 --- a/dashboard-ui/scripts/dashboardgeneral.js +++ b/dashboard-ui/scripts/dashboardgeneral.js @@ -83,21 +83,24 @@ $('#btnSelectCachePath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - page.querySelector('#txtCachePath').value = path; - } - picker.close(); - }, + callback: function (path) { - header: Globalize.translate('HeaderSelectServerCachePath'), + if (path) { + page.querySelector('#txtCachePath').value = path; + } + picker.close(); + }, - instruction: Globalize.translate('HeaderSelectServerCachePathHelp') + header: Globalize.translate('HeaderSelectServerCachePath'), + + instruction: Globalize.translate('HeaderSelectServerCachePathHelp') + }); }); }); diff --git a/dashboard-ui/scripts/dashboardhosting.js b/dashboard-ui/scripts/dashboardhosting.js index f5491caa0c..e416c2b146 100644 --- a/dashboard-ui/scripts/dashboardhosting.js +++ b/dashboard-ui/scripts/dashboardhosting.js @@ -58,22 +58,25 @@ $('#btnSelectCertPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - includeFiles: true, - includeDirectories: true, + picker.show({ - callback: function (path) { + includeFiles: true, + includeDirectories: true, - if (path) { - $('#txtCertificatePath', page).val(path); - } - picker.close(); - }, + callback: function (path) { - header: Globalize.translate('HeaderSelectCertificatePath') + if (path) { + $('#txtCertificatePath', page).val(path); + } + picker.close(); + }, + + header: Globalize.translate('HeaderSelectCertificatePath') + }); }); }); diff --git a/dashboard-ui/scripts/device.js b/dashboard-ui/scripts/device.js index 94f8eae4a7..d9a83af813 100644 --- a/dashboard-ui/scripts/device.js +++ b/dashboard-ui/scripts/device.js @@ -64,19 +64,22 @@ $('#btnSelectUploadPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtUploadPath', page).val(path); - } - picker.close(); - }, + callback: function (path) { - header: Globalize.translate('HeaderSelectUploadPath') + if (path) { + $('#txtUploadPath', page).val(path); + } + picker.close(); + }, + + header: Globalize.translate('HeaderSelectUploadPath') + }); }); }); diff --git a/dashboard-ui/scripts/devicesupload.js b/dashboard-ui/scripts/devicesupload.js index caef5796cf..e43bc999b0 100644 --- a/dashboard-ui/scripts/devicesupload.js +++ b/dashboard-ui/scripts/devicesupload.js @@ -117,19 +117,22 @@ $('#btnSelectUploadPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtUploadPath', page).val(path); - } - picker.close(); - }, + callback: function (path) { - header: Globalize.translate('HeaderSelectUploadPath') + if (path) { + $('#txtUploadPath', page).val(path); + } + picker.close(); + }, + + header: Globalize.translate('HeaderSelectUploadPath') + }); }); }); diff --git a/dashboard-ui/scripts/directorybrowser.js b/dashboard-ui/scripts/directorybrowser.js deleted file mode 100644 index 02cdb1fbc4..0000000000 --- a/dashboard-ui/scripts/directorybrowser.js +++ /dev/null @@ -1,232 +0,0 @@ -(function (window, document, $) { - - function refreshDirectoryBrowser(page, path, fileOptions) { - - Dashboard.showLoadingMsg(); - - if (path) { - $('.networkHeadline').hide(); - } else { - $('.networkHeadline').show(); - } - - var promise; - - var parentPathPromise = null; - - if (path === "Network") { - promise = ApiClient.getNetworkDevices(); - } - else if (path) { - promise = ApiClient.getDirectoryContents(path, fileOptions); - parentPathPromise = ApiClient.getParentPath(path); - } else { - promise = ApiClient.getDrives(); - } - - if (!parentPathPromise) { - parentPathPromise = $.Deferred(); - parentPathPromise.resolveWith(null, []); - parentPathPromise = parentPathPromise.promise(); - } - - $.when(promise, parentPathPromise).done(function (response1, response2) { - - var folders = response1[0]; - var parentPath = response2 && response2.length ? response2[0] || '' : ''; - - $('#txtDirectoryPickerPath', page).val(path || ""); - - var html = ''; - - if (path) { - - html += '
  • ..
  • '; - } - - for (var i = 0, length = folders.length; i < length; i++) { - - var folder = folders[i]; - - var cssClass = folder.Type == "File" ? "lnkPath lnkFile" : "lnkPath lnkDirectory"; - - html += '
  • ' + folder.Name + '
  • '; - } - - if (!path) { - html += '
  • ' + Globalize.translate('ButtonNetwork') + '
  • '; - } - - $('#ulDirectoryPickerList', page).html(html).listview('refresh'); - - Dashboard.hideLoadingMsg(); - - }).fail(function () { - - $('#txtDirectoryPickerPath', page).val(""); - $('#ulDirectoryPickerList', page).html('').listview('refresh'); - - Dashboard.hideLoadingMsg(); - }); - } - - var systemInfo; - function getSystemInfo() { - - var deferred = DeferredBuilder.Deferred(); - - if (systemInfo) { - deferred.resolveWith(null, [systemInfo]); - } else { - ApiClient.getPublicSystemInfo().done(function (info) { - systemInfo = info; - deferred.resolveWith(null, [systemInfo]); - }); - } - - return deferred.promise(); - } - - function show(directoryBrowser, page, options, systemInfo) { - - options = options || {}; - - var fileOptions = { - includeDirectories: true - }; - - if (options.includeDirectories != null) { - fileOptions.includeDirectories = options.includeDirectories; - } - - if (options.includeFiles != null) { - fileOptions.includeFiles = options.includeFiles; - } - - options.header = options.header || Globalize.translate('HeaderSelectPath'); - options.instruction = options.instruction || ""; - - var html = ''; - - $(page).append(html); - - var popup = $('#popupDirectoryPicker').popup().trigger('create').on("popupafteropen", function () { - - $('#popupDirectoryPicker input:first', this).focus(); - - }).popup("open").on("popupafterclose", function () { - - $('form', this).off("submit"); - - $(this).off("click").off("change").off("popupafterclose").remove(); - - }).on("click", ".lnkPath", function () { - - var path = this.getAttribute('data-path'); - - if ($(this).hasClass('lnkFile')) { - $('#txtDirectoryPickerPath', page).val(path); - } else { - refreshDirectoryBrowser(page, path, fileOptions); - } - - - }).on("click", ".btnRefreshDirectories", function () { - - var path = $('#txtDirectoryPickerPath', page).val(); - - refreshDirectoryBrowser(page, path, fileOptions); - - }).on("change", "#txtDirectoryPickerPath", function () { - - refreshDirectoryBrowser(page, this.value, fileOptions); - }); - - var txtCurrentPath = $('#txtDirectoryPickerPath', popup); - - if (options.path) { - txtCurrentPath.val(options.path); - } - - $('form', popup).on('submit', function () { - - if (options.callback) { - options.callback($('#txtDirectoryPickerPath', this).val()); - } - - return false; - }); - - refreshDirectoryBrowser(page, txtCurrentPath.val()); - } - - window.DirectoryBrowser = function (page) { - - var self = this; - - self.show = function (options) { - - getSystemInfo().done(function (systemInfo) { - - require(['jqmpopup'], function() { - show(self, page, options, systemInfo); - }); - }); - }; - - self.close = function () { - $('#popupDirectoryPicker', page).popup("close"); - }; - }; - -})(window, document, jQuery); \ No newline at end of file diff --git a/dashboard-ui/scripts/encodingsettings.js b/dashboard-ui/scripts/encodingsettings.js index 445159218e..d517c730bb 100644 --- a/dashboard-ui/scripts/encodingsettings.js +++ b/dashboard-ui/scripts/encodingsettings.js @@ -47,21 +47,24 @@ $('#btnSelectTranscodingTempPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtTranscodingTempPath', page).val(path); - } - picker.close(); - }, + callback: function (path) { - header: Globalize.translate('HeaderSelectTranscodingPath'), + if (path) { + $('#txtTranscodingTempPath', page).val(path); + } + picker.close(); + }, - instruction: Globalize.translate('HeaderSelectTranscodingPathHelp') + header: Globalize.translate('HeaderSelectTranscodingPath'), + + instruction: Globalize.translate('HeaderSelectTranscodingPathHelp') + }); }); }); diff --git a/dashboard-ui/scripts/livetvsettings.js b/dashboard-ui/scripts/livetvsettings.js index ca74465d29..c7f6473dc7 100644 --- a/dashboard-ui/scripts/livetvsettings.js +++ b/dashboard-ui/scripts/livetvsettings.js @@ -49,17 +49,20 @@ $('#btnSelectRecordingPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtRecordingPath', page).val(path); + callback: function (path) { + + if (path) { + $('#txtRecordingPath', page).val(path); + } + picker.close(); } - picker.close(); - } + }); }); }); diff --git a/dashboard-ui/scripts/medialibrarypage.js b/dashboard-ui/scripts/medialibrarypage.js index e02531f350..ac85749c79 100644 --- a/dashboard-ui/scripts/medialibrarypage.js +++ b/dashboard-ui/scripts/medialibrarypage.js @@ -170,11 +170,17 @@ selectDirectory: function (callback) { - var picker = new DirectoryBrowser($.mobile.activePage); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ callback: callback }); + var picker = new directoryBrowser(); - MediaLibraryPage.directoryPicker = picker; + picker.show({ + + callback: callback + }); + + MediaLibraryPage.directoryPicker = picker; + }); }, getTextValue: function (header, label, initialValue, showCollectionType, callback) { diff --git a/dashboard-ui/scripts/metadataadvanced.js b/dashboard-ui/scripts/metadataadvanced.js index 4119401272..9bb9bb2dc7 100644 --- a/dashboard-ui/scripts/metadataadvanced.js +++ b/dashboard-ui/scripts/metadataadvanced.js @@ -73,22 +73,25 @@ $('#btnSelectMetadataPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); + + picker.show({ - callback: function (path) { + callback: function (path) { + if (path) { + $('#txtMetadataPath', page).val(path); + } + picker.close(); + }, - if (path) { - $('#txtMetadataPath', page).val(path); - } - picker.close(); - }, + header: Globalize.translate('HeaderSelectMetadataPath'), - header: Globalize.translate('HeaderSelectMetadataPath'), - - instruction: Globalize.translate('HeaderSelectMetadataPathHelp') + instruction: Globalize.translate('HeaderSelectMetadataPathHelp') + }); }); + }); $('.advancedMetadataConfigurationForm').on('submit', onSubmit).on('submit', onSubmit); diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index c3af899334..be5917a8bc 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -1944,7 +1944,10 @@ var AppInfo = {}; } var date = new Date(); - if (date.getMonth() == 9 && date.getDate() == 31) { + var month = date.getMonth(); + var day = date.getDate(); + + if (month == 9 && day >= 30) { require(['themes/halloween/theme']); return; } @@ -2041,7 +2044,8 @@ var AppInfo = {}; var paths = { velocity: "bower_components/velocity/velocity.min", - tvguide: 'components/tvguide/tvguide' + tvguide: 'components/tvguide/tvguide', + directorybrowser: 'components/directorybrowser/directorybrowser' }; if (Dashboard.isRunningInCordova()) { @@ -2214,7 +2218,7 @@ var AppInfo = {}; define("fileupload", ["apiclient/fileupload"]); } - var deps =[]; + var deps = []; if (!deviceId) { deps.push('cryptojs-sha1'); diff --git a/dashboard-ui/scripts/streamingsettings.js b/dashboard-ui/scripts/streamingsettings.js index c9d4ac1cb9..25297f60cc 100644 --- a/dashboard-ui/scripts/streamingsettings.js +++ b/dashboard-ui/scripts/streamingsettings.js @@ -29,21 +29,24 @@ $('#btnSelectTranscodingTempPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtTranscodingTempPath', page).val(path); - } - picker.close(); - }, + callback: function (path) { - header: Globalize.translate('HeaderSelectTranscodingPath'), + if (path) { + $('#txtTranscodingTempPath', page).val(path); + } + picker.close(); + }, - instruction: Globalize.translate('HeaderSelectTranscodingPathHelp') + header: Globalize.translate('HeaderSelectTranscodingPath'), + + instruction: Globalize.translate('HeaderSelectTranscodingPathHelp') + }); }); }); diff --git a/dashboard-ui/scripts/syncsettings.js b/dashboard-ui/scripts/syncsettings.js index 5f801af43e..b01e7abed2 100644 --- a/dashboard-ui/scripts/syncsettings.js +++ b/dashboard-ui/scripts/syncsettings.js @@ -35,17 +35,19 @@ $('#btnSelectSyncTempPath', page).on("click.selectDirectory", function () { - var picker = new DirectoryBrowser(page); + require(['directorybrowser'], function (directoryBrowser) { - picker.show({ + var picker = new directoryBrowser(); - callback: function (path) { + picker.show({ - if (path) { - $('#txtSyncTempPath', page).val(path); + callback: function (path) { + if (path) { + $('#txtSyncTempPath', page).val(path); + } + picker.close(); } - picker.close(); - } + }); }); }); diff --git a/dashboard-ui/scripts/usernew.js b/dashboard-ui/scripts/usernew.js index 4fa79b3d55..8e91a28f54 100644 --- a/dashboard-ui/scripts/usernew.js +++ b/dashboard-ui/scripts/usernew.js @@ -106,6 +106,11 @@ ApiClient.updateUserPolicy(user.Id, user.Policy).done(function () { Dashboard.navigate("useredit.html?userId=" + user.Id); }); + + }).fail(function() { + + Dashboard.showError(Globalize.translate('DefaultErrorMessage')); + Dashboard.hideLoadingMsg(); }); } diff --git a/dashboard-ui/themes/halloween/style.css b/dashboard-ui/themes/halloween/style.css index 2371fcb473..e498bb072b 100644 --- a/dashboard-ui/themes/halloween/style.css +++ b/dashboard-ui/themes/halloween/style.css @@ -2,10 +2,13 @@ color: #FF9100; } -.viewMenuBar, .barsMenuButton { +.viewMenuBar { color: #FF9100 !important; } +.barsMenuButton { + color: #FF9100 !important; +} .libraryViewNav .ui-btn-active { border-bottom-color: #FF9100 !important; diff --git a/dashboard-ui/thirdparty/paper-button-style.css b/dashboard-ui/thirdparty/paper-button-style.css index b7c71df0d5..478ba784b7 100644 --- a/dashboard-ui/thirdparty/paper-button-style.css +++ b/dashboard-ui/thirdparty/paper-button-style.css @@ -511,7 +511,7 @@ paper-dialog paper-radio-group paper-radio-button { display: block; } -.fullscreen-editor-paper-dialog { +.fullscreen-paper-dialog, .medium-paper-dialog { position: fixed !important; top: 0 !important; bottom: 0 !important; @@ -519,14 +519,23 @@ paper-dialog paper-radio-group paper-radio-button { right: 0 !important; margin: 0 !important; border-radius: 0 !important; - background-color: #222 !important; max-height: none !important; max-width: none !important; } @media all and (min-width: 1280px) and (min-height: 720px) { - .fullscreen-editor-paper-dialog { + .medium-paper-dialog { + top: 10% !important; + bottom: 10% !important; + left: 10% !important; + right: 10% !important; + } +} + +@media all and (min-width: 1280px) and (min-height: 720px) { + + .fullscreen-paper-dialog { top: 5% !important; bottom: 5% !important; left: 5% !important; @@ -534,12 +543,11 @@ paper-dialog paper-radio-group paper-radio-button { } } -.fullscreen-editor-paper-dialog .dialogHeader { +paper-dialog.popupEditor .dialogHeader { font-weight: inherit !important; - line-height: 1 !important; - line-height: initial !important; + line-height: 36px; padding: 0 1em; - margin-top: 1em; + margin-top: .7em; } .paperToggleContainer { diff --git a/dashboard-ui/vulcanize-in.html b/dashboard-ui/vulcanize-in.html index fea5ec45e4..6004d2591e 100644 --- a/dashboard-ui/vulcanize-in.html +++ b/dashboard-ui/vulcanize-in.html @@ -20,6 +20,7 @@ + diff --git a/dashboard-ui/vulcanize-out.html b/dashboard-ui/vulcanize-out.html index b32995fed9..d7998f942e 100644 --- a/dashboard-ui/vulcanize-out.html +++ b/dashboard-ui/vulcanize-out.html @@ -13244,6 +13244,8 @@ is separate from validation, and `allowed-pattern` does not affect how the input + +