Bartosz Dziewoński has uploaded a new change for review.

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

Change subject: PopupWidget: Only build head and footer if we're going to use it
......................................................................

PopupWidget: Only build head and footer if we're going to use it

Bug: T126781
Change-Id: I6de3628fe31b740bf3deeea4cebbc0dc8127d823
---
M src/widgets/PopupWidget.js
1 file changed, 18 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/oojs/ui refs/changes/75/270875/1

diff --git a/src/widgets/PopupWidget.js b/src/widgets/PopupWidget.js
index e39b68d..1afddde 100644
--- a/src/widgets/PopupWidget.js
+++ b/src/widgets/PopupWidget.js
@@ -68,8 +68,6 @@
        } ) );
 
        // Properties
-       this.$head = $( '<div>' );
-       this.$footer = $( '<div>' );
        this.$anchor = $( '<div>' );
        // If undefined, will be computed lazily in updateDimensions()
        this.$container = config.$container;
@@ -81,30 +79,16 @@
        this.width = config.width !== undefined ? config.width : 320;
        this.height = config.height !== undefined ? config.height : null;
        this.setAlignment( config.align );
-       this.closeButton = new OO.ui.ButtonWidget( { framed: false, icon: 
'close' } );
        this.onMouseDownHandler = this.onMouseDown.bind( this );
        this.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );
-
-       // Events
-       this.closeButton.connect( this, { click: 'onCloseButtonClick' } );
 
        // Initialization
        this.toggleAnchor( config.anchor === undefined || config.anchor );
        this.$body.addClass( 'oo-ui-popupWidget-body' );
        this.$anchor.addClass( 'oo-ui-popupWidget-anchor' );
-       this.$head
-               .addClass( 'oo-ui-popupWidget-head' )
-               .append( this.$label, this.closeButton.$element );
-       this.$footer.addClass( 'oo-ui-popupWidget-footer' );
-       if ( !config.head ) {
-               this.$head.addClass( 'oo-ui-element-hidden' );
-       }
-       if ( !config.$footer ) {
-               this.$footer.addClass( 'oo-ui-element-hidden' );
-       }
        this.$popup
                .addClass( 'oo-ui-popupWidget-popup' )
-               .append( this.$head, this.$body, this.$footer );
+               .append( this.$body );
        this.$element
                .addClass( 'oo-ui-popupWidget' )
                .append( this.$popup, this.$anchor );
@@ -113,13 +97,27 @@
        if ( config.$content instanceof jQuery ) {
                this.$body.append( config.$content );
        }
-       if ( config.$footer instanceof jQuery ) {
-               this.$footer.append( config.$footer );
-       }
+
        if ( config.padded ) {
                this.$body.addClass( 'oo-ui-popupWidget-body-padded' );
        }
 
+       if ( config.head ) {
+               this.closeButton = new OO.ui.ButtonWidget( { framed: false, 
icon: 'close' } );
+               this.closeButton.connect( this, { click: 'onCloseButtonClick' } 
);
+               this.$head = $( '<div>' )
+                       .addClass( 'oo-ui-popupWidget-head' )
+                       .append( this.$label, this.closeButton.$element );
+               this.$popup.prepend( this.$head );
+       }
+
+       if ( config.$footer ) {
+               this.$footer = $( '<div>' )
+                       .addClass( 'oo-ui-popupWidget-footer' )
+                       .append( config.$footer );
+               this.$popup.append( this.$footer );
+       }
+
        // Initially hidden - using #toggle may cause errors if subclasses 
override toggle with methods
        // that reference properties not initialized at that time of parent 
class construction
        // TODO: Find a better way to handle post-constructor setup

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6de3628fe31b740bf3deeea4cebbc0dc8127d823
Gerrit-PatchSet: 1
Gerrit-Project: oojs/ui
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <[email protected]>

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

Reply via email to