瀏覽代碼

HUE-2214 [fb] Add replication factor in menu and do not show compress action in S3

Romain Rigaux 8 年之前
父節點
當前提交
dcdcfde

+ 2 - 1
apps/filebrowser/src/filebrowser/conf.py

@@ -17,6 +17,7 @@
 
 from django.utils.translation import ugettext_lazy as _
 
+from desktop.conf import is_hue4
 from desktop.lib.conf import Config, coerce_bool
 
 
@@ -50,5 +51,5 @@ ENABLE_EXTRACT_UPLOADED_ARCHIVE = Config(
   key="enable_extract_uploaded_archive",
   help=_("Flag to enable the extraction of a uploaded archive in HDFS."),
   type=bool,
-  default=False
+  default=is_hue4()
 )

+ 7 - 4
apps/filebrowser/src/filebrowser/templates/listdir.mako

@@ -68,8 +68,6 @@ ${ fb_components.menubar() }
               isCurrentDirSelected().length == 0"><i class="fa fa-fw fa-random"></i> ${_('Move')}</a></li>
               <li><a href="javascript: void(0)" title="${_('Copy')}" data-bind="click: copy, enable: selectedFiles().length > 0 &&
               isCurrentDirSelected().length == 0"><i class="fa fa-fw fa-files-o"></i> ${_('Copy')}</a></li>
-              <li><a href="javascript: void(0)" title="${_('Set Replication Factor')}" data-bind="visible: !inTrash() && !isS3() && selectedFiles().length == 1 && selectedFile().type == 'file', click: setReplicationFactor"
-              ><i class="fa fa-fw fa-hdd-o"></i>${_('Set replication factor')}</a></li>
               % if show_download_button:
               <li>
                 <a href="javascript: void(0)" title="${_('Download')}" data-bind="visible: !inTrash() && selectedFiles().length == 1 && selectedFile().type == 'file', click: downloadFile">
@@ -96,8 +94,13 @@ ${ fb_components.menubar() }
                   <i class="fa fa-fw fa-pie-chart"></i> ${_('Summary')}
                 </a>
               </li>
+              <li>
+                <a href="javascript: void(0)" title="${_('Set Replication')}" data-bind="visible: !inTrash() && !isS3() && selectedFiles().length == 1 && selectedFile().type == 'file', click: setReplicationFactor">
+                  <i class="fa fa-fw fa-hdd-o"></i>${_('Set replication')}
+                </a>
+              </li>
               % if ENABLE_EXTRACT_UPLOADED_ARCHIVE.get():
-                <li><a href="javascript: void(0)" title="${_('Compress selection into a single archive')}" data-bind="click: confirmCompressFiles, enable: selectedFiles().length > 0">
+                <li><a href="javascript: void(0)" title="${_('Compress selection into a single archive')}" data-bind="click: confirmCompressFiles, enable: selectedFiles().length > 0, visible: !isS3()">
                   <i class="fa fa-fw fa-file-archive-o"></i> ${_('Compress')}</a>
                 </li>
               % endif
@@ -128,7 +131,7 @@ ${ fb_components.menubar() }
             </button>
             % if ENABLE_EXTRACT_UPLOADED_ARCHIVE.get():
               <button class="btn extractArchiveBtn" title="${_('Extract')}"
-                data-bind="visible: selectedFiles().length == 1 && isArchive(), click: confirmExtractArchive">
+                data-bind="visible: selectedFiles().length == 1 && isArchive() && !isS3(), click: confirmExtractArchive">
                 <i class="fa fa-play"></i> ${_('Extract')}
               </button>
             % endif

+ 9 - 4
apps/filebrowser/src/filebrowser/templates/listdir_components.mako

@@ -238,7 +238,7 @@ from filebrowser.conf import ENABLE_EXTRACT_UPLOADED_ARCHIVE
   </form>
 
   <!-- set replication factor modal -->
-  <form id="setReplicationFactorForm" action="/filebrowser/set_replication_factor?next=${current_request_path | n,unicode }"  method="POST" enctype="multipart/form-data" class="form-inline form-padding-fix">
+  <form id="setReplicationFactorForm" action="/filebrowser/set_replication?next=${current_request_path | n,unicode }"  method="POST" enctype="multipart/form-data" class="form-inline form-padding-fix">
     ${ csrf_token(request) | n,unicode }
     <div id="setReplicationModal" class="modal hide fade">
       <div class="modal-header">
@@ -246,7 +246,7 @@ from filebrowser.conf import ENABLE_EXTRACT_UPLOADED_ARCHIVE
         <h3>${_('Setting replication factor for :')} <span id="setReplFileName">file name</span></h3>
       </div>
       <div class="modal-body">
-        <label>${_('Replication factor')} <input id="newRepFactorInput" name="replication_factor" value="" type="number" class="input-xlarge"/></label>
+        <label>${_('Replication factor')} <input id="newRepFactorInput" name="replication_factor" value="" type="number" class="input-mini"/></label>
       </div>
       <div class="modal-footer">
         <div id="replicationFactorRequiredAlert" class="hide" style="position: absolute; left: 10px;">
@@ -578,8 +578,13 @@ from filebrowser.conf import ENABLE_EXTRACT_UPLOADED_ARCHIVE
     <li data-bind="css: {'disabled': selectedFiles().length > 1 }, visible: !isS3()">
       <a class="pointer" data-bind="click: function(){ selectedFiles().length == 1 ? showSummary(): void(0)}"><i class="fa fa-fw fa-pie-chart"></i> ${_('Summary')}</a>
     </li>
+    <li>
+      <a href="javascript: void(0)" title="${_('Set Replication')}" data-bind="visible: !inTrash() && !isS3() && selectedFiles().length == 1 && selectedFile().type == 'file', click: setReplicationFactor">
+        <i class="fa fa-fw fa-hdd-o"></i>${_('Set replication')}
+      </a>
+    </li>
     % if ENABLE_EXTRACT_UPLOADED_ARCHIVE.get():
-      <li><a href="javascript: void(0)" title="${_('Compress selection into a single archive')}" data-bind="click: confirmCompressFiles, enable: selectedFiles().length > 0">
+      <li><a href="javascript: void(0)" title="${_('Compress selection into a single archive')}" data-bind="click: confirmCompressFiles, enable: selectedFiles().length > 0, visible: !isS3()">
         <i class="fa fa-fw fa-file-archive-o"></i> ${_('Compress')}</a>
       </li>
     % endif
@@ -1381,7 +1386,7 @@ from filebrowser.conf import ENABLE_EXTRACT_UPLOADED_ARCHIVE
 
         $("#setReplFileName").text(self.selectedFile().path);
 
-        $("#setReplicationFactorForm").attr("action", "/filebrowser/set_replication_factor?next=${url('filebrowser.views.view', path='')}" + self.currentPath());
+        $("#setReplicationFactorForm").attr("action", "/filebrowser/set_replication?next=${url('filebrowser.views.view', path='')}" + self.currentPath());
 
         $('#setReplicationFactorForm').ajaxForm({
           dataType: 'json',

+ 1 - 1
apps/filebrowser/src/filebrowser/urls.py

@@ -47,7 +47,7 @@ urlpatterns = patterns('filebrowser.views',
   url(r'^touch$', 'touch', name='touch'),
   url(r'^move$', 'move', name='move'),
   url(r'^copy$', 'copy', name='copy'),
-  url(r'^set_replication_factor$', 'set_replication_factor', name='set_replication_factor'),
+  url(r'^set_replication$', 'set_replication', name='set_replication'),
   url(r'^rmtree$', 'rmtree', name='rmtree'),
   url(r'^chmod$', 'chmod', name='chmod'),
   url(r'^chown$', 'chown', name='chown'),

+ 4 - 4
apps/filebrowser/src/filebrowser/views.py

@@ -1055,13 +1055,13 @@ def rename(request):
 
     return generic_op(RenameForm, request, smart_rename, ["src_path", "dest_path"], None)
 
-def set_replication_factor(request):
-    def smart_set_replication_factor(src_path, replication_factor):
-        result = request.fs.set_replication_factor(src_path, replication_factor)
+def set_replication(request):
+    def smart_set_replication(src_path, replication_factor):
+        result = request.fs.set_replication(src_path, replication_factor)
         if not result:
             raise PopupException(_("Setting of replication factor failed"))
 
-    return generic_op(SetReplicationFactorForm, request, smart_set_replication_factor, ["src_path", "replication_factor"], None)
+    return generic_op(SetReplicationFactorForm, request, smart_set_replication, ["src_path", "replication_factor"], None)
 
 
 def mkdir(request):

+ 1 - 1
desktop/libs/hadoop/src/hadoop/fs/webhdfs.py

@@ -417,7 +417,7 @@ class WebHdfs(Hdfs):
     for dirent in ls:
       self.rename(Hdfs.join(old_dir, dirent), Hdfs.join(new_dir, dirent))
 
-  def set_replication_factor(self, filename, repl_factor):
+  def set_replication(self, filename, repl_factor):
     """set replication factor(filename, repl_factor)"""
     params = self._getparams()
     params['op'] = 'SETREPLICATION'