mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/MultimediaViewer
synced 2024-11-29 02:14:21 +00:00
6e127b25e2
When the lightbox is opened, or prev/next pressed, preloads the previous/next N images. Technical debt introduced: * initialization is a mess, with the viewer and the interface randomly setting properties on each other in different phases of execution. That got in the way and I shuffled things around until they worked, which is obviously not the way to have a robust system, but hopefully it will get scrapped soon anyway in favor of a clean top-down dependency injection. Change-Id: Idcb5c40de1ac0b3e482decd66e56c4de8ec71b6b Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/155
79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
/*
|
|
* This file is part of the MediaWiki extension MultimediaViewer.
|
|
*
|
|
* MultimediaViewer is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* MultimediaViewer is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with MultimediaViewer. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
( function ( mw ) {
|
|
/**
|
|
* @class mw.mmv.model.User
|
|
* Represents information about an image thumbnail
|
|
* @constructor
|
|
* @param {string} username
|
|
* @param {mw.mmv.model.User.Gender} [gender] defaults to unknown
|
|
*/
|
|
function User(
|
|
username,
|
|
gender
|
|
) {
|
|
var key,
|
|
genderIsValid = false;
|
|
|
|
if ( !username || !gender ) {
|
|
throw 'All parameters are required and cannot be empty';
|
|
}
|
|
|
|
for ( key in User.Gender ) {
|
|
if ( User.Gender.hasOwnProperty( key ) && User.Gender[key] === gender ) {
|
|
genderIsValid = true;
|
|
}
|
|
}
|
|
if ( ! genderIsValid ) {
|
|
throw 'invalid gender: ' + gender;
|
|
}
|
|
|
|
/**
|
|
* username The user's name, without namespace prefix, in human-readable format
|
|
* ("John Doe", not "John_Doe")
|
|
* @property {string}
|
|
*/
|
|
this.username = username;
|
|
|
|
/**
|
|
* Gender of the user.
|
|
* @type {mw.mmv.model.User.Gender}
|
|
*/
|
|
this.gender = gender;
|
|
}
|
|
|
|
/**
|
|
* Gender of the user (can be set at preferences, UNKNOWN means they did not set it).
|
|
* This is mainly used for translations, so in wikis where there are no grammatic genders
|
|
* it is not used much (or misused for weird things like showing online status).
|
|
* (This should really belong to a model, but there is no point in having a user model if we
|
|
* only need a single property.)
|
|
* @enum {string} mw.mmv.model.User.Gender
|
|
*/
|
|
User.Gender = {
|
|
/** User choose 'male' in preferences */
|
|
MALE: 'male',
|
|
/** User choose 'female' in preferences */
|
|
FEMALE: 'female',
|
|
/** User did not choose any gender in preferences */
|
|
UNKNOWN: 'unknown'
|
|
};
|
|
|
|
mw.mmv.model.User = User;
|
|
}( mediaWiki ) );
|