浏览代码

HUE-5368 [fb] The home link shouldn't refresh the page

Enrico Berti 9 年之前
父节点
当前提交
618e338

+ 1 - 1
apps/filebrowser/src/filebrowser/templates/fb_components.mako

@@ -30,7 +30,7 @@ from aws import get_client
             </span>
           </li>
         %else:
-          <li><a href="${url('filebrowser.views.view', path=urlencode(path))}?default_to_home" class="homeLink"><i class="fa fa-home"></i> ${_('Home')}</a></li>
+          <li><a class="pointer homeLink" data-bind="click: $root.openHome, attr:{'href': '${url('filebrowser.views.view', path=urlencode(path))}?default_to_home'}"><i class="fa fa-home"></i> ${_('Home')}</a></li>
         %endif
         <li>
             <ul id="editBreadcrumb" class="hueBreadcrumb editable-breadcrumbs" data-bind="foreach: breadcrumbs" style="padding-right:40px; padding-top: 12px" title="${_('Edit path')}">

+ 19 - 2
apps/filebrowser/src/filebrowser/templates/listdir_components.mako

@@ -1090,13 +1090,13 @@ from django.utils.translation import ugettext as _
       }
 
       self.getStats = function (callback) {
-        $.getJSON(self.targetPath() + "?pagesize=1&format=json", callback);
+        $.getJSON(self.targetPath() + (self.targetPath().indexOf('?') > 0 ? '&' : '?') + "pagesize=1&format=json", callback);
       };
 
       self.retrieveData = function () {
         self.isLoading(true);
 
-        $.getJSON(self.targetPath() + "?pagesize=" + self.recordsPerPage() + "&pagenum=" + self.targetPageNum() + "&filter=" + self.searchQuery() + "&sortby=" + self.sortBy() + "&descending=" + self.sortDescending() + "&format=json", function (data) {
+        $.getJSON(self.targetPath() + (self.targetPath().indexOf('?') > 0 ? '&' : '?') + "pagesize=" + self.recordsPerPage() + "&pagenum=" + self.targetPageNum() + "&filter=" + self.searchQuery() + "&sortby=" + self.sortBy() + "&descending=" + self.sortDescending() + "&format=json", function (data) {
           if (data.error){
             $(document).trigger("error", data.error);
             self.isLoading(false);
@@ -1220,6 +1220,23 @@ from django.utils.translation import ugettext as _
         self.retrieveData();
       };
 
+      self.openHome = function (vm, e) {
+        var isLeftButton = (e.which || e.button) === 1;
+        if (isLeftButton) {
+          if (! (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey)) {
+            e.stopPropagation();
+            e.preventDefault();
+            viewModel.targetPageNum(1);
+            viewModel.targetPath("${url('filebrowser.views.view', path='')}?default_to_home");
+            location.hash = '';
+            viewModel.retrieveData();
+          }
+          else {
+            window.open("${url('filebrowser.views.view', path='')}?default_to_home");
+          }
+        }
+      }
+
       self.viewFile = function (file) {
         if (file.type == "dir") {
           // Reset page number so that we don't hit a page that doesn't exist