Просмотр исходного кода

HUE-2954 [hbase] Fix internet explorer issue with cell editor

This fixes a couple of issues that occur when using IE9/10 with the HBase cell editor. Fixes are based on the comments made by Guo Qing in https://issues.cloudera.org/browse/HUE-2954
Johan Ahlen 10 лет назад
Родитель
Сommit
3c69c63

+ 12 - 9
apps/hbase/src/hbase/static/hbase/js/utils.js

@@ -227,17 +227,17 @@ function editCell($data) {
 }
 
 function parseXML(xml) {
-  var parser, xmlDoc;
-  if (window.DOMParser) {
-    parser = new DOMParser();
-    xmlDoc = parser.parseFromString(xml, "text/xml");
-  }
-  else {
-    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+  if (window.ActiveXObject) {
+    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
     xmlDoc.async = false;
     xmlDoc.loadXML(xml);
+    return xmlDoc.xml;
+  }
+  if (window.DOMParser) {
+    var xmlDoc = new DOMParser().parseFromString(xml, "text/xml");
+    return new XMLSerializer().serializeToString(xmlDoc);
   }
-  return new XMLSerializer().serializeToString(xmlDoc);
+  return xml;
 }
 
 function detectMimeType(data) {
@@ -256,9 +256,12 @@ function detectMimeType(data) {
       }
     },
     'text/xml': function (data) {
+      if(window.ActiveXObject) {
+        return parseXML(data) != "";
+      }
       return parseXML(data).indexOf('parsererror') == -1;
     }
-  }
+  };
   var keys = Object.keys(MIME_TESTS);
   for (var i = 0; i < keys.length; i++) {
     if (MIME_TESTS[keys[i]](data))

+ 2 - 2
apps/hbase/src/hbase/templates/app.mako

@@ -95,7 +95,7 @@ ${ commonheader(None, "hbase", user) | n,unicode }
             % if can_write:
               <a class="corner-btn btn" data-bind="click: $data.drop, clickBubble: false"><i class="fa fa-trash-o"></i></a>
             % endif
-            <a class="corner-btn btn" data-bind="event: { mousedown: function(){ showFullEditor($data) } }"><i class="fa fa-pencil"></i> ${_('Full Editor')}</a>
+            <a class="corner-btn btn" style="z-index:1000" data-bind="click: function() { showFullEditor($data); }, clickBubble: false"><i class="fa fa-pencil"></i> ${_('Full Editor')}</a>
             <div data-bind="visible: ! isLoading()" style="display: none;">
               <pre data-bind="text: ($data.value().length > 146 ? $data.value().substring(0, 144) + '...' : $data.value()).replace(/(\r\n|\n|\r)/gm,''), click: editCell.bind(null, $data), clickBubble: false, visible: ! $data.isLoading() && ! $data.editing()"></pre>
               <textarea data-bind="visible: editing, hasFocus: editing, disable: ! app.views.tabledata.canWrite(), value: value, click: function() {}, clickBubble: false"></textarea>
@@ -408,7 +408,7 @@ ${ commonheader(None, "hbase", user) | n,unicode }
     </script>
 
     <script id="cell_image_template" type="text/html">
-      <img data-bind="attr: {src: 'data:image/' + $data.mime() + ';base64,' + value()}"/>
+      <img data-bind="attr: { src: 'data:' + $data.mime() + ';base64,' + value()}"/>
       <input type="hidden" data-bind="value: value"/>
     </script>