Henning Snater has uploaded a new change for review.

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

Change subject: Moved initializing basic entity widgets to entityview
......................................................................

Moved initializing basic entity widgets to entityview

Widgets for label, description, aliases and site links have been moved to 
entityview.

Change-Id: I41083f9386523e97720ebd44649e8b164c6a716d
---
M lib/resources/Resources.php
M lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
M lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js
M lib/resources/templates.php
M lib/resources/wikibase.css
M repo/includes/EntityView.php
M repo/resources/Resources.php
M repo/resources/themes/default/wikibase.toc.css
M repo/resources/wikibase.ui.entityViewInit.js
9 files changed, 275 insertions(+), 240 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/16/154416/1

diff --git a/lib/resources/Resources.php b/lib/resources/Resources.php
index 0ec5dc9..74ffc62 100644
--- a/lib/resources/Resources.php
+++ b/lib/resources/Resources.php
@@ -787,11 +787,17 @@
                                'jquery.wikibase/jquery.wikibase.entityview.js'
                        ),
                        'dependencies' => array(
-                               'jquery.wikibase.statementview',
-                               'jquery.wikibase.claimlistview',
+                               'jquery.ui.TemplatedWidget',
+                               'jquery.wikibase.aliasesview',
                                'jquery.wikibase.claimgrouplistview',
+                               'jquery.wikibase.claimlistview',
+                               'jquery.wikibase.descriptionview',
+                               'jquery.wikibase.labelview',
                                'jquery.wikibase.toolbarcontroller',
-                       )
+                               'jquery.wikibase.statementview',
+                               'wikibase',
+                               'wikibase.templates',
+                       ),
                ),
 
                'jquery.wikibase.entityselector' => $moduleTemplate + array(
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
index f6de46e..e69a735 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
@@ -1,38 +1,37 @@
 /**
  * @licence GNU GPL v2+
  * @author Daniel Werner < daniel.wer...@wikimedia.de >
+ * @author H. Snater < mediaw...@snater.com >
  */
-( function( wb, $ ) {
+( function( wb, $, mw ) {
        'use strict';
+
+       var PARENT = $.ui.TemplatedWidget;
 
 /**
  * View for displaying an entire wikibase entity.
  * @since 0.3
+ * @extends jQuery.ui.TemplatedWidget
  *
- * @option {wb.datamodel.Entity} value
- *
- * @option {wb.store.EntityStore} entityStore
- * @option {wb.ValueViewBuilder} valueViewBuilder
- * @option {wb.AbstractedRepoApi} abstractedRepoApi
- *
- * TODO: this is far from complete, right now this only serves the 
functionality to display an
- *       entity's claims (and statements in case of an item).
+ * @option {wikibase.datamodel.Entity} [value]
+ * @option {wikibase.store.EntityStore} entityStore
+ * @option {wikibase.ValueViewBuilder} valueViewBuilder
+ * @option {wikibase.AbstractedRepoApi} abstractedRepoApi
  */
-$.widget( 'wikibase.entityview', {
-       widgetName: 'wikibase-entityview',
-
+$.widget( 'wikibase.entityview', PARENT, {
        /**
-        * Section node containing the list of claims of the entity, this node 
has a $.claimlistview
-        * widget initialized.
-        * @type jQuery
-        */
-       $claims: null,
-
-       /**
-        * (Additional) default options
-        * @see jQuery.Widget.options
+        * @see jQuery.ui.TemplatedWidget
         */
        options: {
+               template: 'wikibase-entityview',
+               templateParams: [
+                       '', // entity type
+                       '', // entity id
+                       '', // language code
+                       '', // language direction
+                       '' // content
+               ],
+               templateShortCuts: {},
                value: null,
                entityStore: null,
                valueViewBuilder: null,
@@ -40,29 +39,155 @@
        },
 
        /**
-        * @see jQuery.Widget._create
+        * @type {jQuery}
+        */
+       $label: null,
+
+       /**
+        * @type {jQuery}
+        */
+       $description: null,
+
+       /**
+        * @type {jQuery}
+        */
+       $aliases: null,
+
+       /**
+        * @type {jQuery}
+        */
+       $claims: null,
+
+       /**
+        * @see jQuery.ui.TemplatedWidget._create
+        *
+        * @throws {Error} if a required options is missing.
         */
        _create: function() {
-               if ( !this.option( 'abstractedRepoApi' ) ) {
-                       throw new Error( 'wikibase.entityview requires a 
wikibase.AbstractedRepoApi' );
+               if(
+                       !this.options.abstractedRepoApi
+                       || !this.options.valueViewBuilder
+                       || !this.options.abstractedRepoApi
+               ) {
+                       throw new Error( 'Required option(s) missing' );
                }
 
-               var entity = this.option( 'value' );
+               this._initLabel();
+               this._initDescription();
+               this._initAliases();
+               this._initClaims();
+               this._initSiteLinks();
 
+               this._handleEditModeAffairs();
+       },
+
+       _initLabel: function() {
+               this.$label = $( '.wb-firstHeading .wikibase-labelview', 
this.element );
+               if( !this.$label.length ) {
+                       this.$label = mw.template( 'wikibase-h1',
+                                       this.options.value.getId(),
+                                       $( '<div/>' )
+                               ).appendTo( this.element );
+               }
+
+               this.$label.labelview( {
+                       value: {
+                               language: mw.config.get( 'wgUserLanguage' ),
+                               label: $( '.wikibase-labelview' ).hasClass( 
'wb-empty' )
+                                       ? null
+                                       // FIXME: entity object should not 
contain fallback strings
+                                       : this.options.value.getLabel( 
mw.config.get( 'wgUserLanguage' ) )
+                       },
+                       helpMessage: mw.msg(
+                               'wikibase-description-input-help-message',
+                               wb.getLanguageNameByCode( mw.config.get( 
'wgUserLanguage' ) )
+                       ),
+                       entityId: this.options.value.getId(),
+                       api: this.options.abstractedRepoApi,
+                       showEntityId: true
+               } );
+       },
+
+       _initDescription: function() {
+               this.$description = $( '.wikibase-descriptionview', 
this.element );
+               if( !this.$description.length ) {
+                       this.$description = $( '<div/>' ).appendTo( 
this.element );
+               }
+
+               this.$description.descriptionview( {
+                       value: {
+                               language: mw.config.get( 'wgUserLanguage' ),
+                               description: $( '.wikibase-descriptionview', 
this.element ).hasClass( 'wb-empty' )
+                                       ? null
+                                       // FIXME: entity object should not 
contain fallback strings
+                                       : this.options.value.getDescription( 
mw.config.get( 'wgUserLanguage' ) )
+                       },
+                       helpMessage: mw.msg(
+                               'wikibase-description-input-help-message',
+                               wb.getLanguageNameByCode( mw.config.get( 
'wgUserLanguage' ) )
+                       ),
+                       entityId: this.options.value.getId(),
+                       api: this.options.abstractedRepoApi
+               } );
+       },
+
+       _initAliases: function() {
+               this.$aliases = $( '.wikibase-aliasesview', this.element );
+               if( !this.$aliases.length ) {
+                       this.$aliases = $( '<div/>' ).appendTo( this.element );
+               }
+
+               this.$aliases.aliasesview( {
+                       value: {
+                               language:  mw.config.get( 'wgUserLanguage' ),
+                               aliases: this.options.value.getAliases( 
mw.config.get( 'wgUserLanguage' ) )
+                       },
+                       entityId: this.options.value.getId(),
+                       api: this.options.abstractedRepoApi
+               } );
+       },
+
+       _initClaims: function() {
                this.$claims = $( '.wb-claimgrouplistview', this.element 
).first();
                if( this.$claims.length === 0 ) {
                        this.$claims = $( '<div/>' ).appendTo( this.element );
                }
 
-               this.$claims.claimgrouplistview( {
-                       value: entity.getClaims(),
-                       entityType: entity.getType(),
-                       entityStore: this.option( 'entityStore' ),
-                       valueViewBuilder: this.option( 'valueViewBuilder' ),
-                       abstractedRepoApi: this.option( 'abstractedRepoApi' )
-               } );
+               this.$claims
+               .claimgrouplistview( {
+                       value: this.options.value.getClaims(),
+                       entityType: this.options.value.getType(),
+                       entityStore: this.options.entityStore,
+                       valueViewBuilder: this.options.valueViewBuilder,
+                       abstractedRepoApi: this.options.abstractedRepoApi
+               } )
+               .claimgrouplabelscroll();
 
-               this._handleEditModeAffairs();
+               // This is here to be sure there is never a duplicate id:
+               $( '.wb-claimgrouplistview' )
+               .prev( '.wb-section-heading' )
+               .first()
+               .attr( 'id', 'claims' );
+       },
+
+       _initSiteLinks: function() {
+               var self = this;
+
+               this.$siteLinks = $( '.wikibase-sitelinkgroupview', 
this.element );
+
+               this.$siteLinks.each( function() {
+                       var $siteLinkGroup = $( this );
+
+                       $siteLinkGroup.sitelinkgroupview( {
+                               value: {
+                                       group: $( this ).data( 
'wb-sitelinks-group' ),
+                                       siteLinks: 
self.options.value.getSiteLinks()
+                               },
+                               entityId: self.options.value.getId(),
+                               api: self.options.abstractedRepoApi,
+                               entityStore: self.options.entityStore
+                       } );
+               } );
        },
 
        /**
@@ -137,9 +262,57 @@
                };
 
                // disable/enable all toolbars when starting/ending an edit 
mode:
+               // TODO: Resolve logic
                $( wb )
                .on( 'startItemPageEditMode', toolbarStatesSetter( 'disable' ) )
-               .on( 'stopItemPageEditMode', toolbarStatesSetter( 'enable' ) );
+               .on( 'stopItemPageEditMode', toolbarStatesSetter( 'enable' ) )
+               .on( 'startItemPageEditMode', function( event, target, options 
) {
+                       $( ':wikibase-labelview, :wikibase-descriptionview, 
:wikibase-aliasesview, '
+                               + ':wikibase-sitelinkview' )
+                       .not( target )
+                       .find( ':wikibase-toolbar' )
+                       .each( function() {
+                               $( this ).data( 'toolbar' ).disable();
+                       } );
+               } )
+               .on( 'stopItemPageEditMode', function( event, target, options ) 
{
+                       $( ':wikibase-aliasesview' ).find( ':wikibase-toolbar' 
).each( function() {
+                               $( this ).data( 'toolbar' ).enable();
+                       } );
+                       $( ':wikibase-labelview' ).each( function() {
+                               var $labelview = $( this ),
+                                       labelview = $labelview.data( 
'labelview' );
+
+                               if( labelview.value().label ) {
+                                       $labelview.find( ':wikibase-toolbar' 
).each( function() {
+                                               $( this ).data( 'toolbar' 
).enable();
+                                       } );
+                               }
+                       } );
+                       $( ':wikibase-descriptionview' ).each( function() {
+                               var $descriptionview = $( this ),
+                                       descriptionview = 
$descriptionview.data( 'descriptionview' );
+
+                               if( descriptionview.value().description ) {
+                                       $descriptionview.find( 
':wikibase-toolbar' ).each( function() {
+                                               $( this ).data( 'toolbar' 
).enable();
+                                       } );
+                               }
+                       } );
+
+                       $( ':wikibase-sitelinklistview' ).each( function() {
+                               var $sitelinklistview = $( this ),
+                                       sitelinklistview = 
$sitelinklistview.data( 'sitelinklistview' );
+
+                               if( !sitelinklistview.isFull() ) {
+                                       $sitelinklistview.data( 'addtoolbar' 
).toolbar.enable();
+                               }
+
+                               $sitelinklistview.find( 'tbody 
:wikibase-toolbar' ).each( function() {
+                                       $( this ).data( 'toolbar' ).enable();
+                               } );
+                       } );
+               } );
 
                // if any of the snaks enters edit mode, trigger global edit 
mode. This is necessary for
                // compatibility with old PropertyEditTool which is still used 
for label, description etc.
@@ -186,8 +359,4 @@
        }
 } );
 
-// We have to override this here because $.widget sets it no matter what's in
-// the prototype
-$.wikibase.entityview.prototype.widgetBaseClass = 'wb-entityview';
-
-}( wikibase, jQuery ) );
+}( wikibase, jQuery, mediaWiki ) );
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js
index 21fc55b..4b274a5 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkview.js
@@ -268,7 +268,7 @@
                        siteLink = this.options.value;
 
                try {
-                       entityId = this.element.closest( '.wb-entity' ).attr( 
'id' ).split( '-' ).pop();
+                       entityId = this.element.closest( '.wikibase-entityview' 
).attr( 'id' ).split( '-' ).pop();
                } catch( e ) {
                        entityId = null;
                }
diff --git a/lib/resources/templates.php b/lib/resources/templates.php
index 305552f..41ad80c 100644
--- a/lib/resources/templates.php
+++ b/lib/resources/templates.php
@@ -17,11 +17,11 @@
 return call_user_func( function() {
        $templates = array();
 
-       $templates['wb-entity'] =
+       $templates['wikibase-entityview'] =
 // container reserved for widgets, will be displayed on the right side if 
there is space
 // TODO: no point in inserting this here, is there? Should be generated in JS!
 <<<HTML
-<div id="wb-$1-$2" class="wb-entity wb-$1" lang="$3" dir="$4">$5</div>
+<div id="wb-$1-$2" class="wikibase-entityview wb-$1" lang="$3" 
dir="$4">$5</div>
 <div id="wb-widget-container-$2" class="wb-widget-container"></div>
 HTML;
 
diff --git a/lib/resources/wikibase.css b/lib/resources/wikibase.css
index 8367da0..d11e409 100644
--- a/lib/resources/wikibase.css
+++ b/lib/resources/wikibase.css
@@ -56,14 +56,14 @@
 }
 
 /* entity container */
-.wb-entity {
+.wikibase-entityview {
        width: 100%;
        max-width: 65em;
        float: left; /* float left to let widget container float right next to 
it */
        clear: both; /* wrap around success message */
 }
 
-.wb-entity input {
+.wikibase-entityview input {
        /* prevent browsers from applying their default styles */
        padding: 0 2px;
        border: 1px solid #AAA;
@@ -74,7 +74,7 @@
 
 }
 
-.wb-entity textarea {
+.wikibase-entityview textarea {
        font-family: inherit;
 }
 
diff --git a/repo/includes/EntityView.php b/repo/includes/EntityView.php
index 700f5df..80d5d53 100644
--- a/repo/includes/EntityView.php
+++ b/repo/includes/EntityView.php
@@ -177,7 +177,7 @@
                $entityId = $entityRevision->getEntity()->getId() ?: 'new'; // 
if id is not set, use 'new' suffix for css classes
                $html = '';
 
-               $html .= wfTemplate( 'wb-entity',
+               $html .= wfTemplate( 'wikibase-entityview',
                        $entityRevision->getEntity()->getType(),
                        $entityId,
                        $lang->getCode(),
@@ -193,7 +193,7 @@
                // JavaScript is parsed.
                $html .= Html::inlineScript( '
 if ( $ ) {
-       $( ".wb-entity" ).addClass( "loading" ).after( function() {
+       $( ".wikibase-entityview" ).addClass( "loading" ).after( function() {
                var $div = $( "<div/>" ).addClass( "wb-entity-spinner 
mw-small-spinner" );
                $div.css( "top", $div.height() + "px" );
                $div.css(
@@ -203,7 +203,7 @@
                return $div;
        } );
        window.setTimeout( function() {
-               $( ".wb-entity" ).removeClass( "loading" );
+               $( ".wikibase-entityview" ).removeClass( "loading" );
                $( ".wb-entity-spinner" ).remove();
        }, 7000 );
 }
diff --git a/repo/resources/Resources.php b/repo/resources/Resources.php
index d09d6a3..da39601 100644
--- a/repo/resources/Resources.php
+++ b/repo/resources/Resources.php
@@ -27,10 +27,7 @@
                                'mediawiki.api',
                                'mediawiki.user',
                                'wikibase.ui.PropertyEditTool',
-                               'jquery.wikibase.aliasesview',
-                               'jquery.wikibase.descriptionview',
                                'jquery.wikibase.entityview',
-                               'jquery.wikibase.labelview',
                                'jquery.wikibase.toolbarcontroller',
                                'jquery.wikibase.wbtooltip',
                                'jquery.cookie',
diff --git a/repo/resources/themes/default/wikibase.toc.css 
b/repo/resources/themes/default/wikibase.toc.css
index c6e0b6f..213eebe 100644
--- a/repo/resources/themes/default/wikibase.toc.css
+++ b/repo/resources/themes/default/wikibase.toc.css
@@ -6,7 +6,7 @@
  * @author T. Mättig < thiemo.maet...@wikimedia.de >
  */
 
-.wb-entity #toc {
+.wikibase-entityview #toc {
        background-color: #f8f8f8;
        border-collapse: collapse;
        border-color: #c9c9c9;
@@ -15,17 +15,17 @@
        width: 100%;
 }
 
-.wb-entity #toc #toctitle {
+.wikibase-entityview #toc #toctitle {
        display: none;
 }
 
-.wb-entity #toc ul {
+.wikibase-entityview #toc ul {
        float: left;
        margin: 0 0 0 -.5em;
        padding: .4em 10px;
 }
 
-.wb-entity #toc li {
+.wikibase-entityview #toc li {
        border-right: 1px solid #c9c9c9;
        float: left;
        margin: 0;
@@ -33,11 +33,11 @@
        white-space: nowrap;
 }
 
-.wb-entity #toc li:last-child {
+.wikibase-entityview #toc li:last-child {
        border-right: 0;
 }
 
 /* FIXME: Should be removed if the Typography refresh is stable */
-#content .wb-entity #toc {
+#content .wikibase-entityview #toc {
        margin-top: 1.8em;
 }
diff --git a/repo/resources/wikibase.ui.entityViewInit.js 
b/repo/resources/wikibase.ui.entityViewInit.js
index 1a1a2b2..cdb5732 100644
--- a/repo/resources/wikibase.ui.entityViewInit.js
+++ b/repo/resources/wikibase.ui.entityViewInit.js
@@ -12,7 +12,6 @@
 
 ( function( $, mw, wb, dataTypes, experts, getFormatterStore, getParserStore ) 
{
        'use strict';
-       /* jshint nonew: false */
 
        mw.hook( 'wikipage.content' ).add( function() {
                // Edit sections are re-generated with JS functionality further 
below:
@@ -22,7 +21,7 @@
                // remove all infos about empty values which are displayed in 
non-JS
                $( '.wb-value-empty' ).empty().removeClass( 'wb-value-empty' );
 
-               // Since the DOM is altered for the property edit tools to 
property initialize, the
+               // Since the DOM is altered for the property edit tools to 
initialize properly, the
                // following hook informs about these operations having 
finished.
                // TODO: This hook is not supposed to be permanent. Remove it 
as soon as no more global DOM
                // adjustments are necessary.
@@ -33,39 +32,14 @@
                registerEditRestrictionHandlers();
 
                if( mw.config.get( 'wbEntity' ) !== null ) {
-                       // BUILD CLAIMS VIEW:
-                       // Note: $.entityview() only works for claims right 
now, the goal is to use it for more
-                       var $claims = $( '.wb-claims' ).first(),
-                               $claimsParent = $claims.parent();
+                       var $entityview = $( '.wikibase-entityview' ).first();
 
-                       // The toolbars (defined per 
jquery.wikibase.toolbarcontroller.definition) that should
-                       // be initialized:
-                       var toolbarControllerConfig = {
-                               addtoolbar: [
-                                       'claimgrouplistview',
-                                       'claimlistview',
-                                       'claim-qualifiers-snak',
-                                       'references',
-                                       'referenceview-snakview'
-                               ],
-                               edittoolbar: ['claimview', 'referenceview'],
-                               removetoolbar: ['claim-qualifiers-snak', 
'referenceview-snakview-remove'],
-                               movetoolbar: [
-                                       'claimlistview-claimview',
-                                       'claim-qualifiers-snak',
-                                       'statementview-referenceview',
-                                       'referenceview-snakview'
-                               ]
-                       };
-
-                       // TODO: Initialize toolbarcontroller on entity node 
when initializing entityview on
-                       // the entity node (see FIXME below).
-                       $claims.toolbarcontroller( toolbarControllerConfig ); 
// BUILD TOOLBARS
+                       initToolbarController( $entityview );
 
                        var entityInitializer = new wb.EntityInitializer( 
'wbEntity' );
 
                        entityInitializer.getEntity().done( function( entity ) {
-                               createEntityDom( entity, $claims, 
$claimsParent, repoApi );
+                               createEntityDom( entity, $entityview, repoApi );
                                triggerEditRestrictionHandlers();
                        } );
                }
@@ -198,93 +172,59 @@
                } );
 
                // remove loading spinner after JavaScript has kicked in
-               $( '.wb-entity' ).removeClass( 'loading' );
+               $( '.wikibase-entityview' ).removeClass( 'loading' );
                $( '.wb-entity-spinner' ).remove();
 
        } );
 
        /**
+        * @param {jQuery} $entityview
+        */
+       function initToolbarController( $entityview ) {
+               // The toolbars (defined per 
jquery.wikibase.toolbarcontroller.definition) that should
+               // be initialized:
+               var toolbarControllerConfig = {
+                       addtoolbar: [
+                               'claimgrouplistview',
+                               'claimlistview',
+                               'claim-qualifiers-snak',
+                               'references',
+                               'referenceview-snakview',
+                               'sitelinklistview'
+                       ],
+                       edittoolbar: [
+                               'aliasesview',
+                               'claimview',
+                               'descriptionview',
+                               'labelview',
+                               'referenceview',
+                               'sitelinkview'
+                       ],
+                       removetoolbar: ['claim-qualifiers-snak', 
'referenceview-snakview-remove'],
+                       movetoolbar: [
+                               'claimlistview-claimview',
+                               'claim-qualifiers-snak',
+                               'statementview-referenceview',
+                               'referenceview-snakview'
+                       ]
+               };
+
+               $entityview.toolbarcontroller( toolbarControllerConfig );
+       }
+
+       /**
         * Creates the entity DOM structure.
         *
         * @param {wikibase.datamodel.Entity} entity
-        * @param {jQuery} $claims
-        * @param {jQuery} $claimsParent
+        * @param {jQuery} $entityview
         * @param {wikibase.RepoApi} repoApi
         */
-       function createEntityDom( entity, $claims, $claimsParent, repoApi ) {
-               // FIXME: Initializing entityview on $claims leads to the claim 
section inserted as
-               // child of $claims. It should be direct child of ".wb-entity".
+       function createEntityDom( entity, $entityview, repoApi ) {
                var abstractedRepoApi = new wb.AbstractedRepoApi( repoApi );
                var entityStore = new wb.store.EntityStore( abstractedRepoApi );
                wb.compileEntityStoreFromMwConfig( entityStore );
 
-               // TODO: Integrate into entityview
-               $( '.wikibase-labelview' )
-               .toolbarcontroller( {
-                       edittoolbar: ['labelview']
-               } )
-               .labelview( {
-                       value: {
-                               language: mw.config.get( 'wgUserLanguage' ),
-                               label: $( '.wikibase-labelview' ).hasClass( 
'wb-empty' )
-                                       ? null
-                                       // FIXME: entity object should not 
contain fallback strings
-                                       : entity.getLabel( mw.config.get( 
'wgUserLanguage' ) )
-                       },
-                       helpMessage: mw.msg(
-                               'wikibase-description-input-help-message',
-                               wb.getLanguageNameByCode( mw.config.get( 
'wgUserLanguage' ) )
-                       ),
-                       entityId: entity.getId(),
-                       api: repoApi,
-                       showEntityId: true
-               } )
-               .on( 'labelviewchange', function( event ) {
-                       var $labelview = $( event.target ),
-                               labelview = $labelview.data( 'labelview' ),
-                               label = labelview.value().label;
-
-                       $( 'title' ).text(
-                               mw.msg( 'pagetitle', label && label !== '' ? 
label : mw.config.get( 'wgTitle' ) )
-                       );
-               } );
-
-               $( '.wikibase-descriptionview' )
-               .toolbarcontroller( {
-                       edittoolbar: ['descriptionview']
-               } )
-               .descriptionview( {
-                       value: {
-                               language: mw.config.get( 'wgUserLanguage' ),
-                               description: $( '.wikibase-descriptionview' 
).hasClass( 'wb-empty' )
-                                       ? null
-                                       // FIXME: entity object should not 
contain fallback strings
-                                       : entity.getDescription( mw.config.get( 
'wgUserLanguage' ) )
-                       },
-                       helpMessage: mw.msg(
-                               'wikibase-description-input-help-message',
-                               wb.getLanguageNameByCode( mw.config.get( 
'wgUserLanguage' ) )
-                       ),
-                       entityId: entity.getId(),
-                       api: repoApi
-               } );
-
-               $( '.wikibase-aliasesview' )
-               .toolbarcontroller( {
-                       edittoolbar: ['aliasesview']
-               } )
-               .aliasesview( {
-                       value: {
-                               language:  mw.config.get( 'wgUserLanguage' ),
-                               aliases: entity.getAliases( mw.config.get( 
'wgUserLanguage' ) )
-                       },
-                       entityId: entity.getId(),
-                       api: repoApi
-               } );
-
-               // FIXME: Initializing entityview on $claims leads to the claim 
section inserted as
-               // child of $claims. It should be direct child of ".wb-entity".
-               $claims.entityview( {
+               $entityview.entityview( {
                        value: entity,
                        entityStore: entityStore,
                        valueViewBuilder: new wb.ValueViewBuilder(
@@ -294,84 +234,7 @@
                                mw
                        ),
                        abstractedRepoApi: abstractedRepoApi
-               } ).appendTo( $claimsParent );
-
-               // This is here to be sure there is never a duplicate id
-               $( '.wb-claimgrouplistview' )
-                       .prev( '.wb-section-heading' )
-                       .first()
-                       .attr( 'id', 'claims' );
-
-               $( '.wikibase-sitelinkgroupview' ).each( function() {
-                       $( this ).toolbarcontroller( {
-                               addtoolbar: ['sitelinklistview'],
-                               edittoolbar: ['sitelinkview']
-                       } );
-
-                       // TODO: Implement sitelinkgrouplistview to manage 
sitelinkgroupview widgets
-                       $( this ).sitelinkgroupview( {
-                               value: {
-                                       group: $( this ).data( 
'wb-sitelinks-group' ),
-                                       siteLinks: entity.getSiteLinks()
-                               },
-                               entityId: entity.getId(),
-                               api: repoApi,
-                               entityStore: entityStore
-                       } );
                } );
-
-               // TODO: Resolve this logic, merge with other toolbar 
management done in entityview and move
-               // it to a sensible place.
-               $( wb )
-               .on( 'startItemPageEditMode', function( event, target, options 
) {
-                       $( ':wikibase-labelview, :wikibase-descriptionview, 
:wikibase-aliasesview, '
-                               + ':wikibase-sitelinklistview' )
-                       .not( target )
-                       .find( ':wikibase-toolbar' )
-                       .each( function() {
-                               $( this ).data( 'toolbar' ).disable();
-                       } );
-               } )
-               .on( 'stopItemPageEditMode', function( event, target, options ) 
{
-                       $( ':wikibase-aliasesview' ).find( ':wikibase-toolbar' 
).each( function() {
-                               $( this ).data( 'toolbar' ).enable();
-                       } );
-                       $( ':wikibase-labelview' ).each( function() {
-                               var $labelview = $( this ),
-                                       labelview = $labelview.data( 
'labelview' );
-
-                               if( labelview.value().label ) {
-                                       $labelview.find( ':wikibase-toolbar' 
).each( function() {
-                                               $( this ).data( 'toolbar' 
).enable();
-                                       } );
-                               }
-                       } );
-                       $( ':wikibase-descriptionview' ).each( function() {
-                               var $descriptionview = $( this ),
-                                       descriptionview = 
$descriptionview.data( 'descriptionview' );
-
-                               if( descriptionview.value().description ) {
-                                       $descriptionview.find( 
':wikibase-toolbar' ).each( function() {
-                                               $( this ).data( 'toolbar' 
).enable();
-                                       } );
-                               }
-                       } );
-
-                       $( ':wikibase-sitelinklistview' ).each( function() {
-                               var $sitelinklistview = $( this ),
-                                       sitelinklistview = 
$sitelinklistview.data( 'sitelinklistview' );
-
-                               if( !sitelinklistview.isFull() ) {
-                                       $sitelinklistview.data( 'addtoolbar' 
).toolbar.enable();
-                               }
-
-                               $sitelinklistview.find( 'tbody 
:wikibase-toolbar' ).each( function() {
-                                       $( this ).data( 'toolbar' ).enable();
-                               } );
-                       } );
-               } );
-
-               $( '.wb-entity' ).claimgrouplabelscroll();
 
                $( wb ).on( 'startItemPageEditMode', function( event, origin, 
options ) {
                        // Display anonymous user edit warning:

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I41083f9386523e97720ebd44649e8b164c6a716d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <henning.sna...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to