浏览代码

HUE-7150 [presentation] Skip storing the left and right assist status when toggling presentation mode

Enrico Berti 8 年之前
父节点
当前提交
0c43870

+ 21 - 8
desktop/core/src/desktop/templates/hue.mako

@@ -1129,15 +1129,22 @@ ${ smart_unicode(login_modal(request).content) | n,unicode }
       function SidePanelViewModel () {
       function SidePanelViewModel () {
         var self = this;
         var self = this;
         self.apiHelper = ApiHelper.getInstance();
         self.apiHelper = ApiHelper.getInstance();
-        self.leftAssistVisible = ko.observable();
-        self.leftAssistVisible.subscribe(function () {
+        self.assistWithoutStorage = ko.observable(false);
+        self.leftAssistVisible = ko.observable(self.apiHelper.getFromTotalStorage('assist', 'left_assist_panel_visible', true));
+        self.leftAssistVisible.subscribe(function (val) {
+          if (!self.assistWithoutStorage()){
+            self.apiHelper.setInTotalStorage('assist', 'left_assist_panel_visible', val);
+          }
           window.setTimeout(function () {
           window.setTimeout(function () {
             huePubSub.publish('split.panel.resized');
             huePubSub.publish('split.panel.resized');
           }, 0);
           }, 0);
         });
         });
 
 
-        self.rightAssistVisible = ko.observable();
-        self.rightAssistVisible.subscribe(function () {
+        self.rightAssistVisible = ko.observable(self.apiHelper.getFromTotalStorage('assist', 'right_assist_panel_visible', true));
+        self.rightAssistVisible.subscribe(function (val) {
+          if (!self.assistWithoutStorage()){
+            self.apiHelper.setInTotalStorage('assist', 'right_assist_panel_visible', val);
+          }
           window.setTimeout(function () {
           window.setTimeout(function () {
             huePubSub.publish('reposition.scroll.anchor.up');
             huePubSub.publish('reposition.scroll.anchor.up');
             huePubSub.publish('nicescroll.resize');
             huePubSub.publish('nicescroll.resize');
@@ -1180,22 +1187,28 @@ ${ smart_unicode(login_modal(request).content) | n,unicode }
         huePubSub.publish('get.current.app.view.model');
         huePubSub.publish('get.current.app.view.model');
 
 
         var previousVisibilityValues = {};
         var previousVisibilityValues = {};
-        huePubSub.subscribe('side.panels.hide', function(){
+        huePubSub.subscribe('side.panels.hide', function(withoutStorage){
           previousVisibilityValues = {
           previousVisibilityValues = {
             left: self.leftAssistVisible(),
             left: self.leftAssistVisible(),
             right: self.rightAssistVisible()
             right: self.rightAssistVisible()
           };
           };
+          self.assistWithoutStorage(withoutStorage);
           self.leftAssistVisible(false);
           self.leftAssistVisible(false);
           self.rightAssistVisible(false);
           self.rightAssistVisible(false);
+          window.setTimeout(function(){
+            self.assistWithoutStorage(false);
+          }, 0);
         });
         });
 
 
-        huePubSub.subscribe('side.panels.show', function(){
+        huePubSub.subscribe('side.panels.show', function(withoutStorage){
+          self.assistWithoutStorage(withoutStorage);
           self.leftAssistVisible(previousVisibilityValues.left);
           self.leftAssistVisible(previousVisibilityValues.left);
           self.rightAssistVisible(previousVisibilityValues.right);
           self.rightAssistVisible(previousVisibilityValues.right);
+          window.setTimeout(function(){
+            self.assistWithoutStorage(false);
+          }, 0);
         });
         });
 
 
-        self.apiHelper.withTotalStorage('assist', 'left_assist_panel_visible', self.leftAssistVisible, true);
-        self.apiHelper.withTotalStorage('assist', 'right_assist_panel_visible', self.rightAssistVisible, true);
       }
       }
 
 
       var sidePanelViewModel = new SidePanelViewModel();
       var sidePanelViewModel = new SidePanelViewModel();

+ 14 - 4
desktop/libs/notebook/src/notebook/static/notebook/js/notebook.ko.js

@@ -2815,12 +2815,22 @@ var EditorViewModel = (function() {
 
 
     self.assistAvailable = ko.observable(options.assistAvailable);
     self.assistAvailable = ko.observable(options.assistAvailable);
 
 
-    self.isLeftPanelVisible = ko.observable();
-    ApiHelper.getInstance().withTotalStorage('assist', 'assist_panel_visible', self.isLeftPanelVisible, true);
+    self.assistWithoutStorage = ko.observable(false);
+
+    self.isLeftPanelVisible = ko.observable(ApiHelper.getInstance().getFromTotalStorage('assist', 'assist_panel_visible', true));
+    self.isLeftPanelVisible.subscribe(function (val) {
+      if (!self.assistWithoutStorage()){
+        ApiHelper.getInstance().setInTotalStorage('assist', 'assist_panel_visible', val);
+      }
+    });
 
 
     self.isRightPanelAvailable = ko.observable(options.assistAvailable && HAS_OPTIMIZER);
     self.isRightPanelAvailable = ko.observable(options.assistAvailable && HAS_OPTIMIZER);
-    self.isRightPanelVisible = ko.observable();
-    ApiHelper.getInstance().withTotalStorage('assist', 'right_assist_panel_visible', self.isRightPanelVisible, true);
+    self.isRightPanelVisible = ko.observable(ApiHelper.getInstance().getFromTotalStorage('assist', 'right_assist_panel_visible', true));
+    self.isRightPanelVisible.subscribe(function (val) {
+      if (!self.assistWithoutStorage()){
+        ApiHelper.getInstance().setInTotalStorage('assist', 'right_assist_panel_visible', val);
+      }
+    });
 
 
     huePubSub.subscribe('assist.highlight.risk.suggestions', function () {
     huePubSub.subscribe('assist.highlight.risk.suggestions', function () {
       if (self.isRightPanelAvailable() && !self.isRightPanelVisible()) {
       if (self.isRightPanelAvailable() && !self.isRightPanelVisible()) {

+ 10 - 2
desktop/libs/notebook/src/notebook/templates/editor_components.mako

@@ -3168,10 +3168,14 @@ ${ sqlSyntaxDropdown.sqlSyntaxDropdown() }
           isAssistAvailable = viewModel.assistAvailable();
           isAssistAvailable = viewModel.assistAvailable();
           wasLeftPanelVisible = viewModel.isLeftPanelVisible();
           wasLeftPanelVisible = viewModel.isLeftPanelVisible();
           wasRightPanelVisible = viewModel.isRightPanelVisible();
           wasRightPanelVisible = viewModel.isRightPanelVisible();
-          huePubSub.publish('side.panels.hide');
+          huePubSub.publish('side.panels.hide', true);
+          viewModel.assistWithoutStorage(true);
           viewModel.assistAvailable(false);
           viewModel.assistAvailable(false);
           viewModel.isLeftPanelVisible(false);
           viewModel.isLeftPanelVisible(false);
           viewModel.isRightPanelVisible(false);
           viewModel.isRightPanelVisible(false);
+          window.setTimeout(function(){
+            viewModel.assistWithoutStorage(false);
+          }, 0);
           $(".navigator").hide();
           $(".navigator").hide();
           $(".add-snippet").hide();
           $(".add-snippet").hide();
           % if conf.CUSTOM.BANNER_TOP_HTML.get():
           % if conf.CUSTOM.BANNER_TOP_HTML.get():
@@ -3182,10 +3186,14 @@ ${ sqlSyntaxDropdown.sqlSyntaxDropdown() }
           redrawFixedHeaders(200);
           redrawFixedHeaders(200);
           $(window).bind("keydown", "esc", exitPlayerMode);
           $(window).bind("keydown", "esc", exitPlayerMode);
         } else {
         } else {
-          huePubSub.publish('side.panels.show');
+          huePubSub.publish('side.panels.show', true);
+          viewModel.assistWithoutStorage(true);
           viewModel.isLeftPanelVisible(wasLeftPanelVisible);
           viewModel.isLeftPanelVisible(wasLeftPanelVisible);
           viewModel.isRightPanelVisible(wasRightPanelVisible);
           viewModel.isRightPanelVisible(wasRightPanelVisible);
           viewModel.assistAvailable(isAssistAvailable);
           viewModel.assistAvailable(isAssistAvailable);
+          window.setTimeout(function(){
+            viewModel.assistWithoutStorage(false);
+          }, 0);
           $(".navigator").show();
           $(".navigator").show();
           $(".add-snippet").show();
           $(".add-snippet").show();
           % if conf.CUSTOM.BANNER_TOP_HTML.get():
           % if conf.CUSTOM.BANNER_TOP_HTML.get():