jenkins-bot has submitted this change and it was merged.

Change subject: entitytermsview: Fix table header and toolbar
......................................................................


entitytermsview: Fix table header and toolbar

Bug: T86520

Change-Id: Ia094cf1907e7d973edbbdf1402e8046cf2817ef7
---
M 
lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguagelistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguageview.js
M lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js
M lib/resources/jquery.wikibase/resources.php
M 
lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsforlanguagelistview.css
M 
lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsview.css
M 
lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
M lib/resources/jquery.wikibase/toolbar/controller/resources.php
M repo/includes/View/FingerprintView.php
M repo/resources/jquery/jquery.sticknode.js
M repo/resources/templates.php
11 files changed, 198 insertions(+), 109 deletions(-)

Approvals:
  Adrian Lang: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguagelistview.js
 
b/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguagelistview.js
index ce67f3b..9f94836 100644
--- 
a/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguagelistview.js
+++ 
b/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguagelistview.js
@@ -57,6 +57,7 @@
                        '' // entitytermsforlanguageview
                ],
                templateShortCuts: {
+                       $header: 
'.wikibase-entitytermsforlanguagelistview-header',
                        $listview: 
'.wikibase-entitytermsforlanguagelistview-listview'
                },
                value: [],
@@ -150,13 +151,21 @@
                                        };
                                }
                        } ),
-                       value: self.options.value || null
+                       value: self.options.value || null,
+                       listItemNodeName: 'TR'
                } );
        },
 
        /**
         * @return {boolean}
         */
+       isEmpty: function() {
+               return !!this.$listview.data( 'listview' ).items().length;
+       },
+
+       /**
+        * @return {boolean}
+        */
        isValid: function() {
                var listview = this.$listview.data( 'listview' ),
                        lia = listview.listItemAdapter(),
diff --git 
a/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguageview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguageview.js
index 3fe720b..fa52362 100644
--- 
a/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguageview.js
+++ 
b/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsforlanguageview.js
@@ -51,6 +51,8 @@
        options: {
                template: 'wikibase-entitytermsforlanguageview',
                templateParams: [
+                       'tr',
+                       'td',
                        function() {
                                return this.options.value.language;
                        },
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js
index 245b66d..d301e7b 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js
@@ -5,12 +5,12 @@
 ( function( mw, $ ) {
        'use strict';
 
-       var PARENT = $.ui.TemplatedWidget;
+       var PARENT = $.ui.EditableTemplatedWidget;
 
 /**
  * Encapsulates a entitytermsforlanguagelistview widget.
  * @since 0.5
- * @extends jQuery.ui.TemplatedWidget
+ * @extends jQuery.ui.EditableTemplatedWidget
  *
  * @option {Object[]} value
  *         Object representing the widget's value.
@@ -77,11 +77,6 @@
        },
 
        /**
-        * @type {boolean}
-        */
-       _isInEditMode: false,
-
-       /**
         * @type {jQuery}
         */
        $entitytermsforlanguagelistview: null,
@@ -104,22 +99,6 @@
                }
 
                PARENT.prototype._create.call( this );
-
-               this.element.addClass( 'wikibase-entitytermsview' );
-
-               this.$entitytermsforlanguagelistview
-                       = this.element.find( 
'.wikibase-entitytermsforlanguagelistview' );
-
-               if( !this.$entitytermsforlanguagelistview.length ) {
-                       this.$entitytermsforlanguagelistview = $( '<div/>' )
-                               .appendTo( 
this.$entitytermsforlanguagelistviewContainer );
-               }
-
-               this._createEntitytermsforlanguagelistview();
-
-               // TODO: Remove as soon as drop-down edit buttons are 
implemented. The language list may
-               // then be shown (without directly switching to edit mode) 
using the drop down menu.
-               this._createEntitytermsforlanguagelistviewToggler();
 
                var self = this;
 
@@ -164,6 +143,8 @@
                                } );
                        }
                );
+
+               this.draw();
        },
 
        /**
@@ -187,6 +168,49 @@
                this.element.off( '.' + this.widgetName );
                this.element.removeClass( 'wikibase-entitytermsview' );
                PARENT.prototype.destroy.call( this );
+       },
+
+       /**
+        * @inheritdoc
+        */
+       draw: function() {
+               var self = this,
+                       deferred = $.Deferred();
+
+               this.$entitytermsforlanguagelistview
+                       = this.element.find( 
'.wikibase-entitytermsforlanguagelistview' );
+
+               if( !this.$entitytermsforlanguagelistview.length ) {
+                       this.$entitytermsforlanguagelistview = $( '<div/>' )
+                               .appendTo( 
this.$entitytermsforlanguagelistviewContainer );
+               }
+
+               if( !this._getEntitytermsforlanguagelistview() ) {
+                       this._createEntitytermsforlanguagelistview();
+               }
+
+               if(
+                       !this.element
+                               .find( 
'.wikibase-entitytermsview-entitytermsforlanguagelistview-toggler' )
+                               .length
+               ) {
+                       // TODO: Remove as soon as drop-down edit buttons are 
implemented. The language list may
+                       // then be shown (without directly switching to edit 
mode) using the drop down menu.
+                       this._createEntitytermsforlanguagelistviewToggler();
+               }
+
+               if( !this._$notification ) {
+                       this.notification()
+                               .appendTo( 
this._getEntitytermsforlanguagelistview().$header )
+                               .on( 'closeableupdate.' + this.widgetName, 
function() {
+                                       var sticknode = self.element.data( 
'sticknode' );
+                                       if( sticknode ) {
+                                               sticknode.refresh();
+                                       }
+                               } );
+               }
+
+               return deferred.resolve().promise();
        },
 
        /**
@@ -273,6 +297,11 @@
                        entityId: this.options.entityId,
                        entityChangersFactory: 
this.options.entityChangersFactory
                } );
+
+               this.$entitytermsforlanguagelistview.data( 
'entitytermsforlanguagelistview' )
+                       .$header.sticknode( {
+                               $container: this.$entitytermsforlanguagelistview
+                       } );
        },
 
        /**
@@ -289,30 +318,25 @@
                return 
this._getEntitytermsforlanguagelistview().isInitialValue();
        },
 
+       /**
+        * @inheritdoc
+        */
        startEditing: function() {
-               if( this._isInEditMode ) {
-                       return;
-               }
-
-               this._isInEditMode = true;
-               this.element.addClass( 'wb-edit' );
-
                this._getEntitytermsforlanguagelistview().startEditing();
 
-               this._trigger( 'afterstartediting' );
+               return PARENT.prototype.startEditing.call( this );
        },
 
        /**
-        * @param {boolean} [dropValue]
+        * @inheritdoc
         */
        stopEditing: function( dropValue ) {
-               var self = this;
+               var self = this,
+                       deferred = $.Deferred();
 
-               if( !this._isInEditMode || ( !this.isValid() || 
this.isInitialValue() ) && !dropValue ) {
-                       return;
+               if( !this.isInEditMode() || ( !this.isValid() || 
this.isInitialValue() ) && !dropValue ) {
+                       return deferred.resolve().promise();
                }
-
-               dropValue = !!dropValue;
 
                this._trigger( 'stopediting', null, [dropValue] );
 
@@ -324,64 +348,61 @@
                        function( event, dropValue ) {
                                self._afterStopEditing( dropValue );
                                self.$entitytermsforlanguagelistview.off( 
'.entitytermsviewstopediting' );
+                               deferred.resolve();
                        }
                )
                .one(
                        
'entitytermsforlanguagelistviewtoggleerror.entitytermsviewstopediting',
-                       function( event, dropValue ) {
+                       function( event, error ) {
                                self.enable();
                                self.$entitytermsforlanguagelistview.off( 
'.entitytermsviewstopediting' );
+                               deferred.reject( error );
                        }
                );
 
                this._getEntitytermsforlanguagelistview().stopEditing( 
dropValue );
+
+               return deferred.promise();
+       },
+
+       /**
+        * @inheritdoc
+        */
+       _save: function() {
+               // Currently unused.
+               // TODO: Implement function directly saving all (updated) 
entity terms instead of deferring
+               // the functionality to sub-components.
        },
 
        /**
         * @param {boolean} dropValue
         */
        _afterStopEditing: function( dropValue ) {
+               this.notification();
                if( !dropValue ) {
                        this.options.value = this.value();
                }
-               this._isInEditMode = false;
-               this.enable();
-               this.element.removeClass( 'wb-edit' );
-               this._trigger( 'afterstopediting', null, [dropValue] );
-       },
-
-       cancelEditing: function() {
-               this.stopEditing( true );
+               return PARENT.prototype._afterStopEditing.apply( this, 
arguments );
        },
 
        /**
-        * @see jQuery.ui.TemplatedWidget.focus
+        * @inheritdoc
         */
        focus: function() {
                this._getEntitytermsforlanguagelistview().focus();
        },
 
        /**
-        * Applies/Removes error state.
-        *
-        * @param {Error} [error]
+        * @inheritdoc
         */
-       setError: function( error ) {
-               if( error ) {
-                       this.element.addClass( 'wb-error' );
-                       this._trigger( 'toggleerror', null, [error] );
-               } else {
-                       this.removeError();
-                       this._trigger( 'toggleerror' );
-               }
-       },
-
        removeError: function() {
                this.element.removeClass( 'wb-error' );
                this._getEntitytermsforlanguagelistview().removeError();
        },
 
        /**
+        * @inheritdoc
+        *
         * @param {Object[]} [value]
         * @return {Object[]|*}
         */
@@ -394,7 +415,14 @@
        },
 
        /**
-        * @see jQuery.ui.TemplatedWidget._setOption
+        * @inheritdoc
+        */
+       isEmpty: function() {
+               return this._getEntitytermsforlanguagelistview().isEmpty();
+       },
+
+       /**
+        * @inheritdoc
         */
        _setOption: function( key, value ) {
                if( key === 'value' ) {
@@ -408,6 +436,25 @@
                }
 
                return response;
+       },
+
+       /**
+        * @inheritdoc
+        */
+       notification: function( $content, additionalCssClasses ) {
+               if( !this._$notification ) {
+                       var $closeable = $( '<div/>' ).closeable();
+
+                       this._$notification = $( '<tr/>' ).append( $( '<td/>' 
).append( $closeable ) );
+
+                       this._$notification.data( 'closeable', $closeable.data( 
'closeable' ) );
+               }
+
+               var $headerTr = 
this._getEntitytermsforlanguagelistview().$header.children( 'tr' ).first();
+               this._$notification.children( 'td' ).attr( 'colspan', 
$headerTr.children().length );
+
+               this._$notification.data( 'closeable' ).setContent( $content, 
additionalCssClasses );
+               return this._$notification;
        }
 } );
 
diff --git a/lib/resources/jquery.wikibase/resources.php 
b/lib/resources/jquery.wikibase/resources.php
index fb9642f..bc4edf7 100644
--- a/lib/resources/jquery.wikibase/resources.php
+++ b/lib/resources/jquery.wikibase/resources.php
@@ -181,7 +181,8 @@
                        ),
                        'dependencies' => array(
                                'jquery.cookie',
-                               'jquery.ui.TemplatedWidget',
+                               'jquery.ui.closeable',
+                               'jquery.ui.EditableTemplatedWidget',
                                'jquery.ui.toggler',
                                
'jquery.wikibase.entitytermsforlanguagelistview',
                                'mediawiki.api',
diff --git 
a/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsforlanguagelistview.css
 
b/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsforlanguagelistview.css
index 7b1857f..dd8ce1a 100644
--- 
a/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsforlanguagelistview.css
+++ 
b/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsforlanguagelistview.css
@@ -4,6 +4,7 @@
  */
 .wikibase-entitytermsforlanguagelistview {
        border: 1px solid #C9C9C9;
+       border-spacing: 0;
        display: table;
        padding-bottom: 1em;
        table-layout: fixed;
@@ -14,18 +15,13 @@
        border-color: #2779AA;
 }
 
-.wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-header {
-       display: table-header-group;
-}
-
-.wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-header 
.wikibase-entitytermsforlanguagelistview-header-row {
-       display: table-row;
+.wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-header tr td {
+       padding: 0;
 }
 
 .wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-header 
.wikibase-entitytermsforlanguagelistview-header-row 
.wikibase-entitytermsforlanguagelistview-cell {
        background-color: #E8E8E8;
        border-right: 1px solid white;
-       display: table-cell;
        padding-left: 0.4em;
        vertical-align: top;
 }
@@ -49,19 +45,10 @@
        width: 35%;
 }
 
-.wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-listview {
-       display: table-row-group;
-}
-
-.wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-listview 
.wikibase-entitytermsforlanguageview {
-       display: table-row;
-}
-
 .wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-listview 
.wikibase-entitytermsforlanguageview 
.wikibase-entitytermsforlanguageview-language,
 .wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-listview 
.wikibase-entitytermsforlanguageview .wikibase-entitytermsforlanguageview-label,
 .wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-listview 
.wikibase-entitytermsforlanguageview 
.wikibase-entitytermsforlanguageview-aliases,
 .wikibase-entitytermsforlanguagelistview 
.wikibase-entitytermsforlanguagelistview-listview 
.wikibase-entitytermsforlanguageview 
.wikibase-entitytermsforlanguageview-description {
-       display: table-cell;
        line-height: 136%;
        overflow: hidden;
        padding-left: 0.4em;
diff --git 
a/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsview.css
 
b/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsview.css
index ca760a1..9075e89 100644
--- 
a/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsview.css
+++ 
b/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsview.css
@@ -54,11 +54,11 @@
 }
 
 
-.wikibase-entitytermsview > .wikibase-toolbar-container {
-       line-height: 3;
+.wikibase-entitytermsview .wikibase-toolbar-container {
+       width: auto;
 }
 
-.wikibase-entitytermsview .wikibase-toolbar-container 
.wikibase-toolbar-container  {
+.wikibase-entitytermsview .wikibase-toolbar-container 
.wikibase-toolbar-container {
        position: relative;
 }
 
diff --git 
a/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
 
b/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
index 169a80a..745c8a2 100644
--- 
a/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
+++ 
b/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
@@ -26,6 +26,19 @@
                                interactionWidget: entitytermsview
                        } );
 
+                       $entitytermsview.data( 'edittoolbar' ).option( 
'$container' )
+                       .sticknode( {
+                               $container: 
entitytermsview.$entitytermsforlanguagelistview,
+                               autoWidth: true,
+                               zIndex: 2
+                       } )
+                       .on( 'sticknodeupdate', function( event ) {
+                               if( !$( event.target ).data( 'sticknode' 
).isFixed() ) {
+                                       $entitytermsview.data( 'edittoolbar' )
+                                               .option( '$container' ).css( 
'width', 'auto' );
+                               }
+                       } );
+
                        $entitytermsview.on( 'keyup.edittoolbar', function( 
event ) {
                                if( entitytermsview.option( 'disabled' ) ) {
                                        return;
@@ -45,6 +58,9 @@
                                enable = entitytermsview.isValid() && 
!entitytermsview.isInitialValue();
 
                        btnSave[enable ? 'enable' : 'disable']();
+
+                       $entitytermsview.data( 'edittoolbar' )
+                               .option( '$container' ).data( 'sticknode' 
).refresh();
                },
                entitytermsviewafterstopediting: function( event ) {
                        var $entitytermsview = $( event.target ),
@@ -67,6 +83,9 @@
                                        duration: 'fast'
                                } );
                        }
+
+                       $entitytermsview.data( 'edittoolbar' )
+                               .option( '$container' ).data( 'sticknode' 
).refresh();
                },
                entitytermsviewdisable: function( event ) {
                        var $entitytermsview = $( event.target ),
diff --git a/lib/resources/jquery.wikibase/toolbar/controller/resources.php 
b/lib/resources/jquery.wikibase/toolbar/controller/resources.php
index ba7c9ce..f2c8548 100644
--- a/lib/resources/jquery.wikibase/toolbar/controller/resources.php
+++ b/lib/resources/jquery.wikibase/toolbar/controller/resources.php
@@ -84,6 +84,7 @@
                                'definitions/edittoolbar/entitytermsview.js',
                        ),
                        'dependencies' => array(
+                               'jquery.sticknode',
                                'jquery.wikibase.entitytermsview',
                                'jquery.wikibase.edittoolbar',
                                'jquery.wikibase.toolbarcontroller',
diff --git a/repo/includes/View/FingerprintView.php 
b/repo/includes/View/FingerprintView.php
index 8902e01..a50f5c8 100644
--- a/repo/includes/View/FingerprintView.php
+++ b/repo/includes/View/FingerprintView.php
@@ -208,6 +208,8 @@
                $hasDescription = $descriptions->hasTermForLanguage( 
$languageCode );
 
                return $this->templateFactory->render( 
'wikibase-entitytermsforlanguageview',
+                       'tr',
+                       'td',
                        $languageCode,
                        $this->templateFactory->render( 
'wikibase-entitytermsforlanguageview-language',
                                is_null( $title )
diff --git a/repo/resources/jquery/jquery.sticknode.js 
b/repo/resources/jquery/jquery.sticknode.js
index 6103edd..d4362d0 100644
--- a/repo/resources/jquery/jquery.sticknode.js
+++ b/repo/resources/jquery/jquery.sticknode.js
@@ -19,14 +19,19 @@
  * clipping.
  *
  * @param {Object} [options]
- *        - {jQuery} $container
- *          Node specifying the bottom boundary for the node the plugin is 
initialized on. If the
- *          node the plugin is initialized on clips out of the container, it 
is reset to static
- *          position.
+ * @param {jQuery} [options.$container]
+ *        Node specifying the bottom boundary for the node the plugin is 
initialized on. If the
+ *        node the plugin is initialized on clips out of the container, it is 
reset to static
+ *        position.
+ * @param {boolean} [options.autoWidth=false]
+ *        When not fixed, apply "auto" width attribute instead of width 
computed from the unfixed
+ *        state.
+ * @param {number} [options.zIndex=1]
+ *        Custom z-index attribute.
  * @return {jQuery}
  *
  * @event sticknodeupdate
- *        Triggered when the node the widget is initialized on updates its 
positioning behaviour.
+ *        Triggered when the node the widget is initialized and updates its 
positioning behaviour.
  *        - {jQuery.Event}
  */
 $.fn.sticknode = function( options ) {
@@ -84,7 +89,9 @@
        this.$node.data( PLUGIN_NAME, this );
 
        this._options = $.extend( {
-               $container: null
+               $container: null,
+               autoWidth: false,
+               zIndex: 1
        }, options );
 
        this._initialAttributes = {};
@@ -191,6 +198,8 @@
                        width: this.$node.css( 'width' )
                };
 
+               var width = this.$node.width();
+
                // Cannot fix the clone instead of the original node since the 
clone does not feature event
                // bindings.
                this._$clone = this.$node.clone()
@@ -200,9 +209,20 @@
                this.$node
                .css( 'left', this._initialAttributes.offset.left + 'px' )
                .css( 'top', this.$node.outerHeight() - this.$node.outerHeight( 
true ) )
-               .css( 'width', this.$node.width() )
+               .css( 'width', width )
                .css( 'position', 'fixed' )
-               .css( 'z-index', '1' );
+               .css( 'z-index', this._options.zIndex );
+
+               if( this._$clone.css( 'display' ) === 'table-header-group' ) {
+                       var $original = this._$clone.find( '*' );
+
+                       this.$node.find( '*' ).each( function( i ) {
+                               var $node = $( this );
+                               if( $node.css( 'display' ) === 'table-cell' ) {
+                                       $node.width( $original.eq( i ).width() 
+ 'px' );
+                               }
+                       } );
+               }
        },
 
        _unfix: function() {
@@ -218,7 +238,7 @@
                this.$node
                .css( 'left', this._initialAttributes.left )
                .css( 'top', this._initialAttributes.top )
-               .css( 'width', this._initialAttributes.width )
+               .css( 'width', this._options.autoWidth ? 'auto' : 
this._initialAttributes.top )
                .css( 'position', this._initialAttributes.position );
 
                this._initialAttributes.offset = null;
@@ -275,6 +295,7 @@
                if( this.isFixed() ) {
                        this._unfix();
                        this._fix();
+                       this.$node.triggerHandler( PLUGIN_NAME + 'update' );
                }
        }
 } );
diff --git a/repo/resources/templates.php b/repo/resources/templates.php
index 115c7b0..ea04439 100644
--- a/repo/resources/templates.php
+++ b/repo/resources/templates.php
@@ -196,28 +196,28 @@
 
        $templates['wikibase-entitytermsforlanguagelistview'] =
 <<<HTML
-<div class="wikibase-entitytermsforlanguagelistview">
-       <div class="wikibase-entitytermsforlanguagelistview-header">
-               <div class="wikibase-entitytermsforlanguagelistview-header-row">
-                       <div 
class="wikibase-entitytermsforlanguagelistview-cell 
wikibase-entitytermsforlanguagelistview-language">$1</div>
-                       <div 
class="wikibase-entitytermsforlanguagelistview-cell 
wikibase-entitytermsforlanguagelistview-label">$2</div>
-                       <div 
class="wikibase-entitytermsforlanguagelistview-cell 
wikibase-entitytermsforlanguagelistview-aliases">$3</div>
-                       <div 
class="wikibase-entitytermsforlanguagelistview-cell 
wikibase-entitytermsforlanguagelistview-description">$4</div>
-               </div>
-       </div>
-       <div class="wikibase-entitytermsforlanguagelistview-listview"><!-- 
[0,*] wikibase-entitytermsforlanguageview -->$5</div>
-</div>
+<table class="wikibase-entitytermsforlanguagelistview">
+       <thead class="wikibase-entitytermsforlanguagelistview-header">
+               <tr class="wikibase-entitytermsforlanguagelistview-header-row">
+                       <td class="wikibase-entitytermsforlanguagelistview-cell 
wikibase-entitytermsforlanguagelistview-language">$1</td>
+                       <td class="wikibase-entitytermsforlanguagelistview-cell 
wikibase-entitytermsforlanguagelistview-label">$2</td>
+                       <td class="wikibase-entitytermsforlanguagelistview-cell 
wikibase-entitytermsforlanguagelistview-aliases">$3</td>
+                       <td class="wikibase-entitytermsforlanguagelistview-cell 
wikibase-entitytermsforlanguagelistview-description">$4</td>
+               </tr>
+       </thead>
+       <tbody class="wikibase-entitytermsforlanguagelistview-listview"><!-- 
[0,*] wikibase-entitytermsforlanguageview -->$5</tbody>
+</table>
 HTML;
 
        $templates['wikibase-entitytermsforlanguageview'] =
 <<<HTML
-<div class="wikibase-entitytermsforlanguageview 
wikibase-entitytermsforlanguageview-$1" >
-       <div class="wikibase-entitytermsforlanguageview-language"><!-- 
wikibase-entitytermsforlanguageview-language -->$2</div>
-       <div class="wikibase-entitytermsforlanguageview-label">$3</div>
-       <div class="wikibase-entitytermsforlanguageview-aliases">$4</div>
-       <div class="wikibase-entitytermsforlanguageview-description">$5</div>
-       <!-- ? wikibase-toolbar -->$6
-</div>
+<$1 class="wikibase-entitytermsforlanguageview 
wikibase-entitytermsforlanguageview-$3" >
+       <$2 class="wikibase-entitytermsforlanguageview-language"><!-- 
wikibase-entitytermsforlanguageview-language -->$4</$2>
+       <$2 class="wikibase-entitytermsforlanguageview-label">$5</$2>
+       <$2 class="wikibase-entitytermsforlanguageview-aliases">$6</$2>
+       <$2 class="wikibase-entitytermsforlanguageview-description">$7</$2>
+       <!-- ? wikibase-toolbar -->$8
+</$1>
 HTML;
 
        $templates['wikibase-entitytermsforlanguageview-language'] =

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia094cf1907e7d973edbbdf1402e8046cf2817ef7
Gerrit-PatchSet: 14
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>
Gerrit-Reviewer: Adrian Lang <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to