define(['dialogHelper', 'jQuery', 'paper-item', 'paper-input', 'paper-fab', 'paper-item-body', 'paper-icon-button-light'], function (dialogHelper, $) {
var systemInfo;
function getSystemInfo() {
var deferred = jQuery.Deferred();
if (systemInfo) {
deferred.resolveWith(null, [systemInfo]);
} else {
ApiClient.getPublicSystemInfo().then(function (info) {
systemInfo = info;
deferred.resolveWith(null, [systemInfo]);
});
}
return deferred.promise();
}
function onDialogClosed() {
$(this).remove();
Dashboard.hideLoadingMsg();
}
function refreshDirectoryBrowser(page, path, fileOptions) {
if (path && typeof(path) !== 'string') {
throw new Error('invalid path');
}
Dashboard.showLoadingMsg();
if (path) {
$('.networkHeadline').hide();
} else {
$('.networkHeadline').show();
}
var promises = [];
if (path === "Network") {
promises.push(ApiClient.getNetworkDevices());
}
else if (path) {
promises.push(ApiClient.getDirectoryContents(path, fileOptions));
promises.push(ApiClient.getParentPath(path));
} else {
promises.push(ApiClient.getDrives());
}
Promise.all(promises).then(function (responses) {
var folders = responses[0];
var parentPath = responses[1] || '';
$('#txtDirectoryPickerPath', page).val(path || "");
var html = '';
if (path) {
html += getItem("lnkPath lnkDirectory", "", parentPath, '...');
}
for (var i = 0, length = folders.length; i < length; i++) {
var folder = folders[i];
var cssClass = folder.Type == "File" ? "lnkPath lnkFile" : "lnkPath lnkDirectory";
html += getItem(cssClass, folder.Type, folder.Path, folder.Name);
}
if (!path) {
html += getItem("lnkPath lnkDirectory", "", "Network", Globalize.translate('ButtonNetwork'));
}
$('.results', page).html(html);
Dashboard.hideLoadingMsg();
}, function () {
$('#txtDirectoryPickerPath', page).val("");
$('.results', page).html('');
Dashboard.hideLoadingMsg();
});
}
function getItem(cssClass, type, path, name) {
var html = '';
html += '
' : '';
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') + '';
}
else if (systemInfo.OperatingSystem.toLowerCase() == 'linux') {
html += '
';
html += '
';
html += Globalize.translate('MessageDirectoryPickerLinuxInstruction');
html += '
';
//html += '' + Globalize.translate('ButtonMoreInformation') + '';
}
html += '