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