瀏覽代碼

HUE-1195 [beeswax] "Go to column" popup prevents ability to select&copy values from results

Fixed bug that prevented the selection of any value from the result table
Enrico Berti 12 年之前
父節點
當前提交
f286941
共有 1 個文件被更改,包括 25 次插入9 次删除
  1. 25 9
      desktop/core/static/js/Source/jHue/jquery.tableextender.js

+ 25 - 9
desktop/core/static/js/Source/jHue/jquery.tableextender.js

@@ -75,15 +75,19 @@
     jHueTableExtenderNavigator.appendTo($("body"));
 
     $(_this.element).find("tbody").click(function (event) {
-      $(".rowSelected").removeClass("rowSelected");
-      $(".columnSelected").removeClass("columnSelected");
-      $(".cellSelected").removeClass("cellSelected");
-      $(event.target.parentNode).addClass("rowSelected");
-      $(event.target.parentNode).find("td").addClass("rowSelected");
-      jHueTableExtenderNavigator
-          .css("left", (event.clientX + jHueTableExtenderNavigator.width() > $(window).width() - 10 ? event.clientX - jHueTableExtenderNavigator.width() - 10 : event.clientX) + "px")
-          .css("top", (event.clientY + 10) + "px").show();
-      jHueTableExtenderNavigator.find("input").focus();
+      if ($.trim(getSelection()) == "") {
+        window.setTimeout(function () {
+          $(".rowSelected").removeClass("rowSelected");
+          $(".columnSelected").removeClass("columnSelected");
+          $(".cellSelected").removeClass("cellSelected");
+          $(event.target.parentNode).addClass("rowSelected");
+          $(event.target.parentNode).find("td").addClass("rowSelected");
+          jHueTableExtenderNavigator
+              .css("left", (event.clientX + jHueTableExtenderNavigator.width() > $(window).width() - 10 ? event.clientX - jHueTableExtenderNavigator.width() - 10 : event.clientX) + "px")
+              .css("top", (event.clientY + 10) + "px").show();
+          jHueTableExtenderNavigator.find("input").focus();
+        }, 100);
+      }
     });
 
     var source = [];
@@ -179,6 +183,18 @@
 
   };
 
+  function getSelection() {
+    var t = '';
+    if (window.getSelection) {
+      t = window.getSelection();
+    } else if (document.getSelection) {
+      t = document.getSelection();
+    } else if (document.selection) {
+      t = document.selection.createRange().text;
+    }
+    return t.toString();
+  }
+
   $.fn[pluginName] = function (options) {
     return this.each(function () {
       if (!$.data(this, 'plugin_' + pluginName)) {