Repository: ambari
Updated Branches:
  refs/heads/trunk 442f73229 -> 187ec69bf


AMBARI-5157. Problems with pop-ups on Job page and Job Details page Firefox 
Browser (alexantonenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/187ec69b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/187ec69b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/187ec69b

Branch: refs/heads/trunk
Commit: 187ec69bf5ab0d978559b31d9740f5da21ab1d1f
Parents: 442f732
Author: Alex Antonenko <[email protected]>
Authored: Thu Mar 20 17:55:15 2014 +0200
Committer: Alex Antonenko <[email protected]>
Committed: Thu Mar 20 17:57:27 2014 +0200

----------------------------------------------------------------------
 .../app/controllers/main/jobs_controller.js     |  4 +--
 .../main/jobs/hive_job_details_tez_dag_view.js  | 28 ++++++++++++++++--
 ambari-web/app/views/main/jobs_view.js          | 30 ++++++++++++++++----
 3 files changed, 52 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/187ec69b/ambari-web/app/controllers/main/jobs_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/jobs_controller.js 
b/ambari-web/app/controllers/main/jobs_controller.js
index 05f9cef..d77a9ed 100644
--- a/ambari-web/app/controllers/main/jobs_controller.js
+++ b/ambari-web/app/controllers/main/jobs_controller.js
@@ -255,8 +255,6 @@ App.MainJobsController = Em.ArrayController.extend({
           + ":" + yarnService.get('ahsWebPort') + 
"/ws/v1/timeline/HIVE_QUERY_ID" + filtersLink;
       App.HttpClient.get(hiveQueriesUrl, App.hiveJobsMapper, {
         complete : function(jqXHR, textStatus) {
-          self.set('loading', false);
-          self.set('loaded', true);
           var sortColumn = self.get('sortingColumn');
           if(sortColumn && sortColumn.get('status')){
             var sortColumnStatus = sortColumn.get('status');
@@ -265,6 +263,8 @@ App.MainJobsController = Em.ArrayController.extend({
             sortColumn.set('status', sortColumnStatus);
             self.set('content',sortColumn.get('parentView').get('content'));
           }
+          self.set('loading', false);
+          self.set('loaded', true);
         }
       }, function (jqXHR, textStatus) {
         App.hiveJobsMapper.map({entities : []});

http://git-wip-us.apache.org/repos/asf/ambari/blob/187ec69b/ambari-web/app/views/main/jobs/hive_job_details_tez_dag_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/jobs/hive_job_details_tez_dag_view.js 
b/ambari-web/app/views/main/jobs/hive_job_details_tez_dag_view.js
index a11ed94..8302b42 100644
--- a/ambari-web/app/views/main/jobs/hive_job_details_tez_dag_view.js
+++ b/ambari-web/app/views/main/jobs/hive_job_details_tez_dag_view.js
@@ -671,8 +671,8 @@ App.MainHiveJobDetailsTezDagView = Em.View.extend({
         }).on('mouseover', function(op) {
           var operatorPlanObj = self.createOperationPlanObj(n.name, op);
           var template = App.HoverOpTable.create({content: operatorPlanObj}) ;
-          $(event.currentTarget).find('.svg-tooltip').attr('title', 
template.renderToBuffer().string()).tooltip('fixTitle').tooltip('show');
-        })
+          $(this).find('.svg-tooltip').attr('title', 
template.renderToBuffer().string()).tooltip('fixTitle').tooltip('show');
+          })
 
         opGroups.append("rect").attr("class", "operation svg-tooltip 
").attr("width", "50").attr("height", "16");
         opGroups.append("text").attr("x", "2").attr("dy", 
"1em").text(function(op) {
@@ -703,6 +703,30 @@ App.MainHiveJobDetailsTezDagView = Em.View.extend({
       return "translate(" + d.x + "," + d.y + ") scale("+d.scale+") ";
     });
     this.vertexMetricsUpdated();
+    $('.svg-tooltip').each(function() {
+      var item = $(this);
+      if (item.prop('tagName') == 'path') {
+        item.hover(function(e) {
+          var offset = $(this).offset();
+          item.prop('offsetWidth', function() {
+            return 2 * (e.pageX - offset.left);
+          });
+          item.prop('offsetHeight', function() {
+            return 2 * (e.pageY - offset.top);
+          });
+        });
+      };
+      if (item.prop('offsetWidth') == undefined) {
+        item.prop('offsetWidth', function() {
+          return item.width();
+        });
+      };
+      if (item.prop('offsetHeight') == undefined) {
+        item.prop('offsetHeight', function() {
+          return item.height();
+        });
+      };
+    });
     $('.svg-tooltip').tooltip({
       placement : 'left'
     });

http://git-wip-us.apache.org/repos/asf/ambari/blob/187ec69b/ambari-web/app/views/main/jobs_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/jobs_view.js 
b/ambari-web/app/views/main/jobs_view.js
index 7d3aca4..4ee2d84 100644
--- a/ambari-web/app/views/main/jobs_view.js
+++ b/ambari-web/app/views/main/jobs_view.js
@@ -167,15 +167,33 @@ App.MainJobsView = App.TableView.extend({
   }.property('content.length', 'filteredContent.length', 
'controller.totalOfJobs'),
 
   pageContentObserver: function () {
-    Ember.run.later(this, function() {
-      $('.job-link').tooltip({
-        template: '<div class="tooltip jobs-tooltip"><div 
class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
+    if (!$.browser.mozilla) {
+      $('.job-link').on('mouseleave', function() {
+        $('.tooltip').remove();
       });
-    }, 1000);
-  }.observes('pageContent', 'pageContent.length', '[email protected]'),
+    };
+    if (!this.get('controller.loading')) {
+      if ($('.tooltip').length) {
+        Ember.run.later(this, function() {
+          if ($('.tooltip').length > 1) {
+            $('.tooltip').first().remove();
+          };
+        }, 500);
+      };
+    };
+  }.observes('controller.loading'),
+
+  init: function() {
+    this._super();
+    App.tooltip($('body'), {
+      selector: '[rel="tooltip"]',
+      template: '<div class="tooltip jobs-tooltip"><div 
class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+      placement: 'bottom'
+    });
+  },
 
   willDestroyElement : function() {
-    $('.job-link').tooltip('destroy');
+    $('.tooltip').remove();
   },
 
   /**

Reply via email to