ソースを参照

AMBARI-7531. Configs: configs button bar floats and unable to access save button.(xiwang)

Xi Wang 11 年 前
コミット
cc9adeeb1e
1 ファイル変更15 行追加4 行削除
  1. 15 4
      ambari-web/app/views/common/configs/config_history_flow.js

+ 15 - 4
ambari-web/app/views/common/configs/config_history_flow.js

@@ -256,22 +256,25 @@ App.ConfigHistoryFlowView = Em.View.extend({
    * initialize event to keep info bar position at the top of the page
    */
   keepInfoBarAtTop: function () {
-    var defaultTop;
+    var defaultTop, defaultLeft;
     var self = this;
     //reset defaultTop value in closure
     $(window).unbind('scroll');
 
     $(window).on('scroll', function (event) {
       var infoBar = $('#config_history_flow>.version-info-bar-wrapper');
+      var versionSlider = $('#config_history_flow>.version-slider');
       var scrollTop = $(window).scrollTop();
-
+      var scrollLeft = $(window).scrollLeft();
       if (infoBar.length === 0) {
         $(window).unbind('scroll');
         return;
       }
       //290 - default "top" property in px
       defaultTop = defaultTop || (infoBar.get(0).getBoundingClientRect() && infoBar.get(0).getBoundingClientRect().top) || 290;
-      self.setInfoBarPosition(infoBar, defaultTop, scrollTop);
+      // keep the version info bar always aligned to version slider
+      defaultLeft = (versionSlider.get(0).getBoundingClientRect() && versionSlider.get(0).getBoundingClientRect().left);
+      self.setInfoBarPosition(infoBar, defaultTop, scrollTop, defaultLeft, scrollLeft);
     })
   },
   /**
@@ -279,8 +282,10 @@ App.ConfigHistoryFlowView = Em.View.extend({
    * @param infoBar
    * @param defaultTop
    * @param scrollTop
+   * @param defaultLeft
+   * @param scrollLeft
    */
-  setInfoBarPosition: function (infoBar, defaultTop, scrollTop) {
+  setInfoBarPosition: function (infoBar, defaultTop, scrollTop, defaultLeft, scrollLeft) {
     if (scrollTop > defaultTop) {
       infoBar.css('top', '10px');
     } else if (scrollTop > 0) {
@@ -288,7 +293,13 @@ App.ConfigHistoryFlowView = Em.View.extend({
     } else {
       infoBar.css('top', 'auto');
     }
+    if (scrollLeft > 0) {
+      infoBar.css('left', defaultLeft);
+    } else {
+      infoBar.css('left', 'auto');
+    }
   },
+
   /**
    *  define the first element in viewport
    *  change visibility of arrows