diff --git a/web/pgadmin/misc/file_manager/__init__.py b/web/pgadmin/misc/file_manager/__init__.py index 39aa39315..6004750e8 100644 --- a/web/pgadmin/misc/file_manager/__init__.py +++ b/web/pgadmin/misc/file_manager/__init__.py @@ -385,6 +385,10 @@ class Filemanager(object): folders_only = False title = gettext("Storage Manager") + # Using os.path.join to make sure we have trailing '/' or '\' + homedir = '/' if (config.SERVER_MODE) \ + else os.path.join(os.path.expanduser('~'), '') + # get last visited directory, if not present then traverse in reverse # order to find closest parent directory last_dir = blueprint.last_directory_visited.get() @@ -400,6 +404,9 @@ class Filemanager(object): else: last_dir = u"/" + if not config.SERVER_MODE and last_dir == u"/" or last_dir == "/": + last_dir = homedir + if check_dir_exists: if len(last_dir) > 1 and \ (last_dir.endswith('/') or last_dir.endswith('\\')): @@ -428,6 +435,7 @@ class Filemanager(object): configs = { # for JS json compatibility "fileroot": last_dir.replace('\\', '\\\\'), + "homedir": homedir.replace('\\', '\\\\'), "dialog_type": fm_type, "title": title, "upload": { diff --git a/web/pgadmin/misc/file_manager/static/js/utility.js b/web/pgadmin/misc/file_manager/static/js/utility.js index 353baf560..7f2a1cf41 100644 --- a/web/pgadmin/misc/file_manager/static/js/utility.js +++ b/web/pgadmin/misc/file_manager/static/js/utility.js @@ -1133,7 +1133,7 @@ define([ $('.storage_dialog #uploader .input-path').prop('disabled', false); }); }; - + var homedir='/'; // Enable/Disable level up button var enab_dis_level_up = function() { $('.file_manager #uploader .input-path').show(); @@ -1144,13 +1144,9 @@ define([ $level_up = $('.file_manager').find('button.level-up'), $home_btn = $('.file_manager').find('button.home'); - if (b === '/') { - $level_up.attr('disabled', 'disabled'); - $home_btn.attr('disabled', 'disabled'); - } else { - $home_btn.removeAttr('disabled'); - $level_up.removeAttr('disabled'); - } + (b === '/') ? $level_up.attr('disabled', 'disabled') : $level_up.removeAttr('disabled'); + (b === homedir) ? $home_btn.attr('disabled', 'disabled') : $home_btn.removeAttr('disabled'); + }, 100); }; @@ -1202,6 +1198,7 @@ define([ // load user configuration file if (cfg.readyState == 4) { this.config = config = JSON.parse(cfg.responseText); + homedir=config.options.homedir; } // set main url to filemanager and its capabilites @@ -1343,8 +1340,7 @@ define([ $('.delete_item, .fileinfo .fm_dimmer').hide(); }); - // Disable home button on load - $('.file_manager').find('button.home').attr('disabled', 'disabled'); + // Disable button on load $('.file_manager').find('button.rename').attr('disabled', 'disabled'); // stop click event on dimmer click @@ -1382,7 +1378,7 @@ define([ $('.file_manager .home').on('click', function() { var currentViewMode = $('.fileinfo').data('view'); $('.fileinfo').data('view', currentViewMode); - getFolderInfo('/'); + getFolderInfo(homedir); enab_dis_level_up(); }); diff --git a/web/pgadmin/misc/file_manager/templates/file_manager/js/file_manager_config.json b/web/pgadmin/misc/file_manager/templates/file_manager/js/file_manager_config.json index b29fcfb5f..2a3c1a631 100644 --- a/web/pgadmin/misc/file_manager/templates/file_manager/js/file_manager_config.json +++ b/web/pgadmin/misc/file_manager/templates/file_manager/js/file_manager_config.json @@ -11,7 +11,8 @@ "capabilities": [{% for i in data.capabilities %}{% if loop.index != 1 %}, {% endif %}"{{i}}"{% endfor %}], "allowed_file_types": [{% for i in data.supported_types %}{% if loop.index != 1 %}, {% endif %}"{{i}}"{% endfor %}], "platform_type": "{{ data.platform_type }}", - "show_volumes": {% if data.show_volumes %}true{% else %}false{% endif %} + "show_volumes": {% if data.show_volumes %}true{% else %}false{% endif %}, + "homedir": "{{ data.homedir }}" }, "security": { "uploadPolicy": "{{ data.security.uploadPolicy }}",