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}