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

Change subject: Implemented link to toggle language list
......................................................................


Implemented link to toggle language list

Bug: T86193
Change-Id: I3b2afe8d32a0f6ebbfa9a84b31315a8162b5a366
---
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.entitytermsview.css
M 
lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
M repo/i18n/en.json
M repo/i18n/qqq.json
M repo/includes/View/EntityViewPlaceholderExpander.php
7 files changed, 85 insertions(+), 5 deletions(-)

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



diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js
index f76eb42..245b66d 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.entitytermsview.js
@@ -87,6 +87,11 @@
        $entitytermsforlanguagelistview: null,
 
        /**
+        * @type {jQuery}
+        */
+       $entitytermsforlanguagelistviewToggler: null,
+
+       /**
         * @see jQuery.ui.TemplatedWidget._create
         */
        _create: function() {
@@ -111,6 +116,10 @@
                }
 
                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;
 
@@ -173,12 +182,57 @@
                        this.$entitytermsforlanguagelistview.remove();
                }
 
+               this.$entitytermsforlanguagelistviewToggler.remove();
+
                this.element.off( '.' + this.widgetName );
                this.element.removeClass( 'wikibase-entitytermsview' );
                PARENT.prototype.destroy.call( this );
        },
 
        /**
+        * Creates the dedicated toggler for showing/hiding the list of entity 
terms. This function is
+        * supposed to be removed as soon as drop-down edit buttons are 
implemented with the mechanism
+        * toggling the list's visibility while not starting edit mode will be 
part of the drop-down
+        * menu.
+        * @private
+        */
+       _createEntitytermsforlanguagelistviewToggler: function() {
+               var api = new mw.Api();
+
+               this.$entitytermsforlanguagelistviewToggler = $( '<div/>' )
+                       .addClass( 
'wikibase-entitytermsview-entitytermsforlanguagelistview-toggler' )
+                       .text( mw.msg( 
'wikibase-entitytermsview-entitytermsforlanguagelistview-toggler' ) )
+                       .toggler( {
+                               $subject: 
this.$entitytermsforlanguagelistviewContainer
+                       } )
+                       .on( 'toggleranimation.' + this.widgetName, function( 
event, params ) {
+                               if( mw.user.isAnon() ) {
+                                       $.cookie(
+                                               
'wikibase-entitytermsview-showEntitytermslistview',
+                                               params.visible,
+                                               { expires: 365, path: '/' }
+                                       );
+                               } else {
+                                       api.postWithToken( 'options', {
+                                               action: 'options',
+                                               optionname: 
'wikibase-entitytermsview-showEntitytermslistview',
+                                               optionvalue: params.visible ? 
'1' : '0'
+                                       } )
+                                       .done( function() {
+                                               mw.user.options.set(
+                                                       
'wikibase-entitytermsview-showEntitytermslistview',
+                                                       params.visible ? '1' : 
'0'
+                                               );
+                                       } );
+                               }
+                       } );
+
+               this.$entitytermsforlanguagelistviewContainer.before(
+                       this.$entitytermsforlanguagelistviewToggler
+               );
+       },
+
+       /**
         * @return {jQuery.wikibase.entitytermsforlanguagelistview}
         * @private
         */
diff --git a/lib/resources/jquery.wikibase/resources.php 
b/lib/resources/jquery.wikibase/resources.php
index 2ff9c1a..fb9642f 100644
--- a/lib/resources/jquery.wikibase/resources.php
+++ b/lib/resources/jquery.wikibase/resources.php
@@ -180,12 +180,16 @@
                                
'themes/default/jquery.wikibase.entitytermsview.css',
                        ),
                        'dependencies' => array(
+                               'jquery.cookie',
                                'jquery.ui.TemplatedWidget',
+                               'jquery.ui.toggler',
                                
'jquery.wikibase.entitytermsforlanguagelistview',
+                               'mediawiki.api',
                                'mediawiki.user',
                        ),
                        'messages' => array(
                                'wikibase-description-empty',
+                               
'wikibase-entitytermsview-entitytermsforlanguagelistview-toggler',
                                'wikibase-label-empty',
                                'wikibase-terms',
                        ),
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 895e1ab..ca760a1 100644
--- 
a/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsview.css
+++ 
b/lib/resources/jquery.wikibase/themes/default/jquery.wikibase.entitytermsview.css
@@ -47,7 +47,7 @@
 }
 
 .wikibase-entitytermsview 
.wikibase-entitytermsview-entitytermsforlanguagelistview {
-       margin-top: 2em;
+       margin-top: 1em;
 }
 .wikibase-entitytermsview 
.wikibase-entitytermsview-entitytermsforlanguagelistview-collapsed {
        display: none;
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 3f93892..169a80a 100644
--- 
a/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
+++ 
b/lib/resources/jquery.wikibase/toolbar/controller/definitions/edittoolbar/entitytermsview.js
@@ -48,13 +48,24 @@
                },
                entitytermsviewafterstopediting: function( event ) {
                        var $entitytermsview = $( event.target ),
-                               entitytermsview = $entitytermsview.data( 
'entitytermsview' );
+                               entitytermsview = $entitytermsview.data( 
'entitytermsview' ),
+                               showEntitytermslistviewValue = mw.user.isAnon()
+                                       ? $.cookie( 
'wikibase-entitytermsview-showEntitytermslistview' )
+                                       : mw.user.options.get( 
'wikibase-entitytermsview-showEntitytermslistview' ),
+                               showEntitytermslistview = 
showEntitytermslistviewValue === 'true'
+                                       || showEntitytermslistviewValue === '1';
 
                        if(
                                
entitytermsview.$entitytermsforlanguagelistviewContainer.is( ':visible' )
-                               && !mw.user.options.get( 
'wikibase-entitytermsview-showEntitytermslistview' )
+                               && !showEntitytermslistview
                        ) {
-                               
entitytermsview.$entitytermsforlanguagelistviewContainer.slideUp( 'fast' );
+                               
entitytermsview.$entitytermsforlanguagelistviewContainer.slideUp( {
+                                       complete: function() {
+                                               
entitytermsview.$entitytermsforlanguagelistviewToggler.data( 'toggler' )
+                                                       .refresh();
+                                       },
+                                       duration: 'fast'
+                               } );
                        }
                },
                entitytermsviewdisable: function( event ) {
@@ -79,6 +90,8 @@
                                        complete: function() {
                                                
entitytermsview.$entitytermsforlanguagelistview
                                                        .data( 
'entitytermsforlanguagelistview' ).updateInputSize();
+                                               
entitytermsview.$entitytermsforlanguagelistviewToggler.data( 'toggler' )
+                                                       .refresh();
                                        },
                                        duration: 'fast'
                                } );
diff --git a/repo/i18n/en.json b/repo/i18n/en.json
index 36a78e9..e3e0c9d 100644
--- a/repo/i18n/en.json
+++ b/repo/i18n/en.json
@@ -24,6 +24,7 @@
        "wikibase-addreference": "add reference",
        "wikibase-save-inprogress": "Saving…",
        "wikibase-remove-inprogress": "Removing…",
+       "wikibase-entitytermsview-entitytermsforlanguagelistview-toggler": "In 
more languages",
        "wikibase-setting-entitytermsview-showEntitytermslistview": "Show 
labels, aliases and descriptions in all my languages on page load",
        "wikibase-setting-entitytermsview-showEntitytermslistview-help": 
"Personal languages additional to the user interface language may be set using 
the [[mw:Extension:Babel|Babel extension]] syntax on the user page.",
        "wikibase-entitytermsforlanguagelistview-aliases": "Also known as",
diff --git a/repo/i18n/qqq.json b/repo/i18n/qqq.json
index 9200616..f04b90d 100644
--- a/repo/i18n/qqq.json
+++ b/repo/i18n/qqq.json
@@ -51,6 +51,7 @@
        "wikibase-addreference": "Label of the link to add a reference (see 
[[d:Wikidata:Glossary]]) to a statement.",
        "wikibase-save-inprogress": "[[File:Screenshot WikidataRepo 2012-05-25 
L.png|right|350px]]\n[[File:Screenshot WikidataRepo 2012-05-25 
J.png|right|350px]]\n[[File:Screenshot WikidataRepo 2012-05-25 
K.png|right|350px]]\nThis is a generic placeholder message used while a save is 
in progress, and replaces the save and cancel links.\n{{Identical|Saving}}",
        "wikibase-remove-inprogress": "[[File:Screenshot WikidataRepo 
2012-05-25 L.png|right|350px]]\n[[File:Screenshot WikidataRepo 2012-05-25 
M.png|right|350px]]\nThis is a generic placeholder message used while a remove 
is in progress, and replaces the edit and remove.",
+       "wikibase-entitytermsview-entitytermsforlanguagelistview-toggler": 
"Link to show/hide the list of labels, aliases and descriptions in the user's 
languages. The list is part of an entity's user interface representation header 
and may be used to view and alter labels, aliases and descriptions in the 
languages configured by the user.",
        "wikibase-setting-entitytermsview-showEntitytermslistview": "Label for 
the user setting that allows showing labels, aliases and descriptions in all of 
the user's languages on page load. The settings is available only if the 
[[mw:Extension:Babel|Babel extension]] is installed.",
        "wikibase-setting-entitytermsview-showEntitytermslistview-help": "Help 
message for the user setting that allows showing labels, aliases and 
descriptions in all of the user's languages on page load. The settings is 
available only if the [[mw:Extension:Babel|Babel extension]] is installed. 
Hence, the help message may contain advice on how to activate languages 
additional to the user interface language.",
        "wikibase-entitytermsforlanguagelistview-aliases": "List of labels, 
aliases and descriptions in one or more languages: Heading of the \"aliases\" 
column. (see [[d:Wikidata:Glossary]])",
diff --git a/repo/includes/View/EntityViewPlaceholderExpander.php 
b/repo/includes/View/EntityViewPlaceholderExpander.php
index 4f05a9e..4e5ea47 100644
--- a/repo/includes/View/EntityViewPlaceholderExpander.php
+++ b/repo/includes/View/EntityViewPlaceholderExpander.php
@@ -192,7 +192,14 @@
                                        isset( $args[1] ) ? intval( $args[1] ) 
: 0
                                );
                        case 
'entityViewPlaceholder-entitytermsview-entitytermsforlanguagelistview-class':
-                               return $this->user->getOption( 
'wikibase-entitytermsview-showEntitytermslistview' )
+                               return
+                                       !$this->user->isAnon()
+                                               && $this->user->getBoolOption(
+                                                       
'wikibase-entitytermsview-showEntitytermslistview'
+                                               )
+                                       || $this->user->isAnon()
+                                               && isset( 
$_COOKIE['wikibase-entitytermsview-showEntitytermslistview'] )
+                                               && 
$_COOKIE['wikibase-entitytermsview-showEntitytermslistview'] === 'true'
                                        ? '' : 
'wikibase-entitytermsview-entitytermsforlanguagelistview-collapsed';
 
                        default:

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

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

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

Reply via email to