Robert Vogel has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/169349

Change subject: Fixed MaximizablePanel in Chrome
......................................................................

Fixed MaximizablePanel in Chrome

THIS IS A MANUAL MERGE FROM REL1_22
https://gerrit.wikimedia.org/r/#/c/169338/

In Chrome the contents of the Ext.Window derived panel where overlapped
after a 'maximize' command. One had to click on the hidden elements to
reveal them.

The panel no longer gets rendered to the element provided in the
'renderTo' config, but always to the body element. All size and position
operations are still made on 'renderTo'.

Also added logic to update absolute position on window resize

Change-Id: I3e7f46871051ed11bb8131498dce954148e46f18
---
M PermissionManager/resources/BS.panel/Maximizable.js
M PermissionManager/resources/bluespice.permissionManager.css
2 files changed, 36 insertions(+), 11 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BlueSpiceExtensions 
refs/changes/49/169349/1

diff --git a/PermissionManager/resources/BS.panel/Maximizable.js 
b/PermissionManager/resources/BS.panel/Maximizable.js
index 068246d..974d937 100644
--- a/PermissionManager/resources/BS.panel/Maximizable.js
+++ b/PermissionManager/resources/BS.panel/Maximizable.js
@@ -4,11 +4,23 @@
        shadow: false,
        closable: false,
        border: false,
+
        oldX: 0,
        oldY: 0,
+       bsRenderToTarget: null,
+
+       constructor: function( cfg ) {
+               this.bsRenderToTarget = Ext.get(cfg.renderTo);
+
+               cfg.height = cfg.height || this.bsRenderToTarget.getHeight();
+               cfg.width = cfg.width || this.bsRenderToTarget.getWidth();
+
+               cfg.renderTo = Ext.getBody();
+
+               this.callParent( arguments );
+       },
+
        initComponent: function() {
-               this.height = Ext.get(this.renderTo).getHeight();
-               this.width = Ext.get(this.renderTo).getWidth();
                this.maximizeTool = new Ext.panel.Tool({
                        type: 'maximize'
                });
@@ -26,26 +38,29 @@
                ];
 
                this.on('afterrender', this.onAfterRender, this);
+               Ext.get(window).on('resize', this.onWindowResize, this);
 
                this.callParent(arguments);
        },
        onAfterRender: function(sender, eOpts) {
-               this.showAt(sender.container.getXY());
+               this.showAt(this.bsRenderToTarget.getXY());
        },
        onMaximizeToolClick: function() {
-               Ext.get(this.renderTo).addCls('fullscreen');
+               $('html').addClass('bs-maximizable-panel-fullscreen');
+               this.bsRenderToTarget.addCls('fullscreen');
                this.updateSize();
                this.maximizeTool.setVisible(false);
                this.minimizeTool.setVisible(true);
-               this.showAt(Ext.get(this.renderTo).getXY());
+               this.showAt(this.bsRenderToTarget.getXY());
+
        },
        onMinimizeToolClick: function() {
-               Ext.get(this.renderTo).removeCls('fullscreen');
-
+               $('html').removeClass('bs-maximizable-panel-fullscreen');
+               this.bsRenderToTarget.removeCls('fullscreen');
                this.updateSize();
                this.maximizeTool.setVisible(true);
                this.minimizeTool.setVisible(false);
-               this.showAt(Ext.get(this.renderTo).getXY());
+               this.showAt(this.bsRenderToTarget.getXY());
        },
        firstCall: true,
        showAt: function(x, y) {
@@ -57,7 +72,12 @@
                this.callParent(arguments);
        },
        updateSize: function() {
-               this.setHeight(Ext.get(this.renderTo).getHeight());
-               this.setWidth(Ext.get(this.renderTo).getWidth());
+               this.setHeight(this.bsRenderToTarget.getHeight());
+               this.setWidth(this.bsRenderToTarget.getWidth());
+       },
+       onWindowResize: function( event, target, eOpts ) {
+               this.setX( this.bsRenderToTarget.getX() );
+               this.setY( this.bsRenderToTarget.getY() );
+               this.updateSize();
        }
 });
\ No newline at end of file
diff --git a/PermissionManager/resources/bluespice.permissionManager.css 
b/PermissionManager/resources/bluespice.permissionManager.css
index ec85532..cc8e426 100644
--- a/PermissionManager/resources/bluespice.permissionManager.css
+++ b/PermissionManager/resources/bluespice.permissionManager.css
@@ -37,4 +37,9 @@
        text-align: right;
        font-weight: bold;
        border-left-color: #fff;
-}
\ No newline at end of file
+}
+
+/* Part of BS.panel.Maximizable */
+html.bs-maximizable-panel-fullscreen {
+       overflow: hidden;
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/169349
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I3e7f46871051ed11bb8131498dce954148e46f18
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: Robert Vogel <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to