Browse Source

HUE-1487 [hbase] Add column for should support binary

Kevin Wang 12 năm trước cách đây
mục cha
commit
4bf6431779

+ 21 - 18
apps/hbase/src/hbase/templates/app.mako

@@ -72,7 +72,7 @@ ${ commonheader(None, "hbase", user) | n,unicode }
           % if user.is_superuser:
             <button class="btn" data-bind="enable: $data.selected().length > 0, click: $data.dropSelected, clickBubble: false"><i class="icon-trash"></i> Drop Columns</button>
           % endif
-          <a href="#new_column_modal" data-bind="click:function(){$('#new_column_row_key').val($data.row);app.focusModel($data);logGA('new_column_modal');}" class="btn" data-toggle="modal" title="${_('Add New Column/Cell')}"><i class="icon-plus"></i></a>
+          <a href="#new_column_modal" data-bind="click:function(){app.focusModel($data);launchModal('new_column_modal', $data);}" class="btn" title="${_('Add New Column/Cell')}"><i class="icon-plus"></i></a>
         </span>
       </h5>
       <ul class="smartview-cells" data-bind="event: {scroll: onScroll}">
@@ -289,24 +289,27 @@ ${ commonheader(None, "hbase", user) | n,unicode }
 
     <!-- New Column Modal -->
     <form id="new_column_modal" action="putColumn" method="POST" class="modal hide fade ajaxSubmit" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
-      <div class="modal-header">
-        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-        <h3>${_('Create New Column')} - <span data-bind="text: pageTitle"></span></h3>
-      </div>
-      <div class="modal-body controls">
-        <input type="hidden" data-bind="value: app.cluster"/>
-        <input type="hidden" data-bind="value: app.views.tabledata.name"/>
-        <input id="new_column_row_key" type="hidden"/>
-        <label class="control-label">${_('Column Name')}</label>
-        <input type="text" placeholder = "family:column_name">
-        <label class="control-label">${_('Cell Value')}</label>
-        <input type="text" placeholder = "${_('Cell Value')}">
-      </div>
-      <div class="modal-footer">
-        <button class="btn" data-dismiss="modal" aria-hidden="true">${_('Cancel')}</button>
-        <input type="submit" class="btn btn-primary" value="Submit">
-      </div>
     </form>
+    <script id="new_column_modal_template" type="text/html">
+      <div class="modal-header">
+          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+          <h3>${_('Create New Column')}</h3>
+        </div>
+        <div class="modal-body controls">
+          <input type="hidden" data-bind="value: app.cluster"/>
+          <input type="hidden" data-bind="value: app.views.tabledata.name"/>
+          <input type="hidden" data-bind="value: $data.row"/>
+          <label class="control-label">${_('Column Name')}</label>
+          <input id="new_column_name" type="text" placeholder = "family:column_name">
+          <label class="control-label">${_('Cell Value')}</label>
+          <textarea placeholder = "${_('Cell Value')}"></textarea>
+        </div>
+        <div class="modal-footer">
+          <button class="btn" data-dismiss="modal" aria-hidden="true">${_('Cancel')}</button>
+          <a id="column-upload-btn" class="btn fileChooserBtn" aria-hidden="true"><i class="icon-upload"></i> ${_('Upload')}</a>
+          <input type="submit" class="btn btn-primary" value="Submit">
+        </div>
+    </script>
 
     <!-- Cell Edit Modal -->
     <form id="cell_edit_modal" action="putColumn" method="POST" class="modal hide fade ajaxSubmit">

+ 1 - 1
apps/hbase/static/js/controls.js

@@ -512,7 +512,7 @@ var ColumnRow = function(options) {
     function doDrop() {
       logGA('filter_columns');
       self.parent.isLoading(true);
-      return API.queryTable('deleteColumn', self.parent.row, self.name).done(function(data) {
+      return API.queryTable('deleteColumn', prepForTransport(self.parent.row), prepForTransport(self.name)).done(function(data) {
         self.parent.items.remove(self);
         if(self.parent.items().length > 0)
           self.parent.reload(); //change later

+ 19 - 0
apps/hbase/static/js/utils.js

@@ -122,6 +122,25 @@ function launchModal(modal, data) {
         }
       });
       break;
+    case 'new_column_modal':
+      var uploader = new qq.FileUploaderBasic({
+        button: document.getElementById("column-upload-btn"),
+        action: '',
+        fileFieldLabel: 'hbase_file',
+        multiple: false,
+        onComplete:function (id, fileName, response) {
+          if(response.status == null) {
+            data.reload();
+            element.modal('hide');
+          } else {
+            $.jHueNotify.error($(response.response).find('div.alert strong').text());
+          }
+        },
+        onSubmit: function() {
+          uploader._handler._options.action = '/hbase/api/putUpload/"' + app.cluster() + '"/"' + app.views.tabledata.name() + '"/' + prepForTransport(data.row) + '/"' + element.find('#new_column_name').val() + '"';
+        }
+      });
+      break;
   }
   element.modal('show');
 logGA(modal.slice(0, modal.indexOf('_modal') != -1 ? modal.indexOf('_modal') : modal.length));