define(['dialogHelper', 'dom', 'listViewStyle', 'emby-input', 'emby-button', 'paper-icon-button-light', 'css!./directorybrowser', 'formDialogStyle'], function (dialogHelper, dom) { 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() { Dashboard.hideLoadingMsg(); } function refreshDirectoryBrowser(page, path, fileOptions) { if (path && typeof (path) !== 'string') { throw new Error('invalid path'); } Dashboard.showLoadingMsg(); 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] || ''; page.querySelector('#txtDirectoryPickerPath').value = 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')); } page.querySelector('.results').innerHTML = html; Dashboard.hideLoadingMsg(); }, function () { page.querySelector('#txtDirectoryPickerPath').value = ""; page.querySelector('.results').innerHTML = ''; Dashboard.hideLoadingMsg(); }); } function getItem(cssClass, type, path, name) { var html = ''; html += '