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