diff --git a/dashboard-ui/apiclient/apiclient.js b/dashboard-ui/apiclient/apiclient.js index ee97b79e78..0b699b697c 100644 --- a/dashboard-ui/apiclient/apiclient.js +++ b/dashboard-ui/apiclient/apiclient.js @@ -1800,7 +1800,7 @@ * Adds a virtual folder * @param {String} name */ - self.addVirtualFolder = function (name, type, refreshLibrary, initialPath) { + self.addVirtualFolder = function (name, type, refreshLibrary, initialPaths) { if (!name) { throw new Error("null name"); @@ -1822,9 +1822,10 @@ return self.ajax({ type: "POST", url: url, - data: { - Path: initialPath - } + data: JSON.stringify({ + Paths: initialPaths + }), + contentType: 'application/json' }); }; diff --git a/dashboard-ui/components/imagedownloader/imagedownloader.js b/dashboard-ui/components/imagedownloader/imagedownloader.js index 45c3ca5f89..61b46ca8c1 100644 --- a/dashboard-ui/components/imagedownloader/imagedownloader.js +++ b/dashboard-ui/components/imagedownloader/imagedownloader.js @@ -106,7 +106,7 @@ html += '
'; html += ''; - html += ' totalRecordCount ? 'disabled' : '') + '>'; + html += '= totalRecordCount ? 'disabled' : '') + '>'; html += '
'; } diff --git a/dashboard-ui/components/medialibrarycreator/medialibrarycreator.js b/dashboard-ui/components/medialibrarycreator/medialibrarycreator.js index b7f3789dbd..7614d08019 100644 --- a/dashboard-ui/components/medialibrarycreator/medialibrarycreator.js +++ b/dashboard-ui/components/medialibrarycreator/medialibrarycreator.js @@ -3,21 +3,28 @@ var currentDeferred; var hasChanges; var currentOptions; + var paths = []; function onSubmit() { + if (paths.length == 0) { + Dashboard.alert({ + message: Globalize.translate('PleaseAddAtLeastOneFolder') + }); + return false; + } + var form = this; var dlg = $(form).parents('paper-dialog')[0]; var name = $('#txtValue', form).val(); var type = $('#selectCollectionType', form).val(); - var path = $('#txtPath', form).val(); if (type == 'mixed') { type = null; } - ApiClient.addVirtualFolder(name, type, currentOptions.refresh, path).done(function () { + ApiClient.addVirtualFolder(name, type, currentOptions.refresh, paths).done(function () { hasChanges = true; PaperDialogHelper.close(dlg); @@ -74,26 +81,90 @@ } }); - $('#btnSelectPath').on('click', function () { + $('.btnAddFolder', page).on('click', onAddButtonClick); + $('form', page).off('submit', onSubmit).on('submit', onSubmit); + } - require(['directorybrowser'], function (directoryBrowser) { + function onAddButtonClick() { - var picker = new directoryBrowser(); + var page = $(this).parents('.editorContent')[0]; - picker.show({ + require(['directorybrowser'], function (directoryBrowser) { - callback: function (path) { - if (path) { - $('#txtPath', page).val(path); - } - picker.close(); + var picker = new directoryBrowser(); + + picker.show({ + + callback: function (path) { + + if (path) { + addMediaLocation(page, path); } + picker.close(); + } - }); }); }); + } - $('form', page).off('submit', onSubmit).on('submit', onSubmit); + function getFolderHtml(path, index) { + + var html = ''; + + html += ''; + + html += ''; + + html += ''; + html += path; + html += ''; + + html += ''; + + html += ''; + + return html; + } + + function renderPaths(page) { + var foldersHtml = paths.map(getFolderHtml).join(''); + + var folderList = page.querySelector('.folderList'); + folderList.innerHTML = foldersHtml; + + if (foldersHtml) { + folderList.classList.remove('hide'); + } else { + folderList.classList.add('hide'); + } + + $(page.querySelectorAll('.btnRemovePath')).on('click', onRemoveClick); + } + + function addMediaLocation(page, path) { + + if (paths.filter(function (p) { + + return p.toLowerCase() == path.toLowerCase(); + + }).length == 0) { + paths.push(path); + renderPaths(page); + } + } + + function onRemoveClick() { + + var button = this; + var index = parseInt(button.getAttribute('data-index')); + + var location = paths[index]; + paths = paths.filter(function (p) { + + return p.toLowerCase() != location.toLowerCase(); + }); + var page = $(this).parents('.editorContent')[0]; + renderPaths(page); } function onDialogClosed() { @@ -156,6 +227,8 @@ PaperDialogHelper.close(dlg); }); + + renderPaths(editorContent); }); }); diff --git a/dashboard-ui/components/medialibrarycreator/medialibrarycreator.template.html b/dashboard-ui/components/medialibrarycreator/medialibrarycreator.template.html index d6b39c0f36..921666e3bd 100644 --- a/dashboard-ui/components/medialibrarycreator/medialibrarycreator.template.html +++ b/dashboard-ui/components/medialibrarycreator/medialibrarycreator.template.html @@ -9,11 +9,16 @@
+
- - -
${LabelAdditionalFoldersCanBeAddedHelp}
+

${HeadersFolders}

+ + + ${ButtonAdd} +
+
+

-
-
+
+
${HeaderDeviceAccess}