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

Change subject: Put the username into the info list
......................................................................


Put the username into the info list

Link to the user page of the uploader.

Fetches the gender from the API - falls back to "unknown" especially in
cases of cross-domain requests.

Change-Id: I38940782dc5d2d56c8aea608b1fe72e04f397c00
---
M MultimediaViewer.i18n.php
M MultimediaViewer.php
M css/ext.multimediaViewer.css
A img/user.svg
M js/ext.multimediaViewer.js
5 files changed, 82 insertions(+), 22 deletions(-)

Approvals:
  Gergő Tisza: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/MultimediaViewer.i18n.php b/MultimediaViewer.i18n.php
index 19d14ad..5aadc69 100644
--- a/MultimediaViewer.i18n.php
+++ b/MultimediaViewer.i18n.php
@@ -33,6 +33,7 @@
        'multimediaviewer-repository' => 'Learn more on $1',
        'multimediaviewer-datetime-created' => 'Created on $1',
        'multimediaviewer-datetime-uploaded' => 'Uploaded on $1',
+       'multimediaviewer-userpage-link' => '{{GENDER:$2|Uploaded}} by $1',
 );
 
 /** Message documentation (Message documentation)
@@ -46,6 +47,7 @@
        'multimediaviewer-repository' => 'Link to the repository where the 
image is hosted. $1 is the display name of that site.',
        'multimedia-datetime-created' => 'Date and time the image or work was 
created. $1 is always a date string, no need to translate.',
        'multimedia-datetime-uploaded' => 'Date and time the image was uploaded 
- fallback in case there is no data for creation date. $1 is always a date 
string, no need to translate.',
+       'multimediaviewer-userpage-link' => 'Link to the user page for the 
uploader of the image. $1 is the username of the uploader, $2 is their gender.',
 );
 
 /** Arabic (العربية)
diff --git a/MultimediaViewer.php b/MultimediaViewer.php
index a48a648..4c199eb 100644
--- a/MultimediaViewer.php
+++ b/MultimediaViewer.php
@@ -74,6 +74,7 @@
                'multimediaviewer-repository',
                'multimediaviewer-datetime-created',
                'multimediaviewer-datetime-uploaded',
+               'multimediaviewer-userpage-link',
        ),
 ), $moduleInfo );
 
diff --git a/css/ext.multimediaViewer.css b/css/ext.multimediaViewer.css
index b3e84f6..0a6ce54 100644
--- a/css/ext.multimediaViewer.css
+++ b/css/ext.multimediaViewer.css
@@ -133,6 +133,10 @@
        background-image: url( '../img/repo.svg' );
 }
 
+.mw-mlb-image-links li.mw-mlb-username-li:before {
+       background-image: url( '../img/user.svg' );
+}
+
 .mw-mlb-image-links li.empty:before {
        background-image: none !important;
 }
diff --git a/img/user.svg b/img/user.svg
new file mode 100644
index 0000000..70bb369
--- /dev/null
+++ b/img/user.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg 
xmlns:xlink="http://www.w3.org/1999/xlink"; xmlns="http://www.w3.org/2000/svg"; 
width="16" height="16" version="1.1"><defs><circle id="corner" fill="#939598" 
r="2.5" /><rect id="main" width="13.5" height="13.5" fill="#939598" /><circle 
id="eye" cy="5" r="1.25" fill="white" /></defs><use xlink:href="#main" x="0" 
y="2.5" /><use xlink:href="#main" x="2.5" y="0" /><use xlink:href="#corner" 
x="2.5" y="2.5" /><use xlink:href="#corner" x="13.5" y="13.5" /><path 
stroke="white" fill="none" stroke-width="1.25" d="M 3,9 A 6,5 0 0 0 13,9 " 
/><use xlink:href="#eye" x="5.5" /><use xlink:href="#eye" x="10.5" /></svg>
diff --git a/js/ext.multimediaViewer.js b/js/ext.multimediaViewer.js
index 4ae7a17..8bf297e 100644
--- a/js/ext.multimediaViewer.js
+++ b/js/ext.multimediaViewer.js
@@ -115,10 +115,29 @@
                                                return whitelisted;
                                        }
 
+                                       function setUserpageLink( username, 
gender ) {
+                                               var userpage = 'User:' + 
username,
+                                                       userTitle = 
mw.Title.newFromText( userpage );
+
+                                               ui.$username
+                                                       .text(
+                                                               mw.message( 
'multimediaviewer-userpage-link', username, gender ).text()
+                                                       )
+                                                       .prop( 'href', 
userTitle.getUrl() );
+
+                                               if ( articlePath ) {
+                                                       ui.$username
+                                                               .prop( 'href', 
articlePath.replace( '$1', userTitle.getPrefixedText() ) );
+                                               }
+
+                                               ui.$usernameLi.toggleClass( 
'empty', !Boolean( username ) );
+                                       }
+
                                        var extmeta,
                                                repoInfo, articlePath,
                                                desc,
                                                datetime, dtmsg,
+                                               username,
                                                ui = viewer.lightbox.iface,
                                                innerInfo = 
imageInfo.imageinfo[0] || {};
 
@@ -153,6 +172,28 @@
                                        }
 
                                        ui.$repoLi.toggleClass( 'empty', 
!Boolean( repoInfo ) );
+
+                                       username = innerInfo.user;
+
+                                       if ( username ) {
+                                               // Fetch the gender from the 
uploader's home wiki
+                                               // TODO this is ugly as hell, 
let's fix this in core.
+                                               new mw.Api( {
+                                                       ajax: {
+                                                               url: 
repoInfo.apiurl || mw.util.wikiScript( 'api' )
+                                                       }
+                                               } ).get( {
+                                                       action: 'query',
+                                                       list: 'users',
+                                                       ususers: username,
+                                                       usprop: 'gender'
+                                               } ).done( function ( data ) {
+                                                       var gender = 
data.query.users[0].gender;
+                                                       setUserpageLink( 
username, gender );
+                                               } ).fail( function () {
+                                                       setUserpageLink( 
username, 'unknown' );
+                                               } );
+                                       }
 
                                        extmeta = innerInfo.extmetadata;
 
@@ -244,6 +285,17 @@
 
                        this.$imageLinks.append( this.$datetimeLi );
 
+                       this.$username = $( '<a>' )
+                               .addClass( 'mw-mlb-username' )
+                               .prop( 'href', '#' );
+
+                       this.$usernameLi = $( '<li>' )
+                               .addClass( 'mw-mlb-username-li' )
+                               .addClass( 'empty' )
+                               .html( this.$username );
+
+                       this.$imageLinks.append( this.$usernameLi );
+
                        this.$title = $( '<p>' )
                                .addClass( 'mw-mlb-title' );
 
@@ -320,34 +372,34 @@
 
                                viewer.setRepoInfo( data.query.repos );
 
-                               $.each( data.query.pages, function ( i, page ) {
-                                       imageInfo = page;
-                                       return false;
-                               } );
+                               if ( data.query.pages ) {
+                                       $.each( data.query.pages, function ( i, 
page ) {
+                                               imageInfo = page;
+                                               return false;
+                                       } );
 
-                               if ( viewer.imageInfo[filename] === undefined ) 
{
-                                       if ( sitename === null ) {
-                                               viewer.imageInfo[filename] = 
imageInfo;
-                                       } else {
-                                               viewer.imageInfo[filename] = {};
+                                       if ( viewer.imageInfo[filename] === 
undefined ) {
+                                               if ( sitename === null ) {
+                                                       
viewer.imageInfo[filename] = imageInfo;
+                                               } else {
+                                                       
viewer.imageInfo[filename] = {};
+                                               }
+
+                                               
viewer.imageInfo[filename].sites = {};
+
+                                               if ( 
!viewer.imageInfo[filename].imageinfo ||
+                                                               
viewer.imageInfo[filename].imageinfo.length === 0 ) {
+                                                       
viewer.imageInfo[filename].imageinfo = [{}];
+                                               }
                                        }
 
-                                       viewer.imageInfo[filename].sites = {};
-
-                                       if ( 
!viewer.imageInfo[filename].imageinfo ||
-                                                       
viewer.imageInfo[filename].imageinfo.length === 0 ) {
-                                               
viewer.imageInfo[filename].imageinfo = [{}];
-                                       }
+                                       
viewer.imageInfo[filename].sites[sitename] = imageInfo;
                                }
 
-                               viewer.imageInfo[filename].sites[sitename] = 
imageInfo;
-
-                               if ( imageInfo.pageid ) {
-                                       viewer.imageInfo[filename].pageid = 
imageInfo.pageid;
+                               if ( viewer.imageInfo[filename] ) {
+                                       // Give back the information we have
+                                       cb( viewer.imageInfo[filename], 
viewer.repoInfo );
                                }
-
-                               // Give back the information we have
-                               cb( viewer.imageInfo[filename], viewer.repoInfo 
);
                        };
                }
 

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I38940782dc5d2d56c8aea608b1fe72e04f397c00
Gerrit-PatchSet: 17
Gerrit-Project: mediawiki/extensions/MultimediaViewer
Gerrit-Branch: master
Gerrit-Owner: MarkTraceur <[email protected]>
Gerrit-Reviewer: Brian Wolff <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Gergő Tisza <[email protected]>
Gerrit-Reviewer: MarkTraceur <[email protected]>
Gerrit-Reviewer: Nikerabbit <[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