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 += '';
+
+ 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 += 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}
+
+
+
+
+
+ ${MessageNoSubtitleSearchResultsFound}
+
+
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
+
+
+
+
+
+
+
+
+
+
+
+