Current File : /home/jvzmxxx/wiki1/extensions/RevisionSlider/modules/ext.RevisionSlider.Revision.js
( function ( mw, $ ) {
	/* global moment:false */
	/**
	 * @param {Object} data - Containing keys `id`, `size`, `comment`, `parsedcomment`, `timestamp`, `user` and `minor`
	 * @constructor
	 */
	var Revision = function ( data ) {
		this.id = data.revid;
		this.size = data.size;
		this.timestamp = data.timestamp;
		this.minor = data.hasOwnProperty( 'minor' ) && ( data.minor || data.minor === '' );

		// Comments and users can be suppressed thus we must check if they exist
		if ( typeof data.comment !== 'undefined' ) {
			this.comment = data.comment;
		}
		if ( typeof data.parsedcomment !== 'undefined' ) {
			this.parsedComment = data.parsedcomment;
		}
		if ( typeof data.user !== 'undefined' ) {
			this.user = data.user;
			if ( typeof data.userGender !== 'undefined' ) {
				this.userGender = data.userGender;
			}
		}
	};

	$.extend( Revision.prototype, {
		/**
		 * @type {number}
		 */
		id: 0,

		/**
		 * @type {number}
		 */
		size: 0,

		/**
		 * @type {string}
		 */
		comment: '',

		/**
		 * @type {boolean}
		 */
		minor: false,

		/**
		 * @type {string}
		 */
		parsedComment: '',

		/**
		 * @type {string}
		 */
		timestamp: '',

		/**
		 * @type {string}
		 */
		user: '',

		/**
		 * @type {string}
		 */
		userGender: '',

		/**
		 * @type {number}
		 */
		relativeSize: 0,

		/**
		 * @return {number}
		 */
		getId: function () {
			return this.id;
		},

		/**
		 * @return {number}
		 */
		getSize: function () {
			return this.size;
		},

		/**
		 * @return {boolean}
		 */
		isMinor: function () {
			return this.minor;
		},

		/**
		 * @return {string}
		 */
		getParsedComment: function () {
			return this.parsedComment;
		},

		/**
		 * @return {boolean}
		 */
		hasEmptyComment: function () {
			return this.getComment().trim().length === 0;
		},

		/**
		 * @return {string}
		 */
		getComment: function () {
			return this.comment;
		},

		/**
		 * Uses moment.js to format the date
		 *
		 * @param {string} rawDate
		 * @return {string}
		 */
		formatDate: function ( rawDate ) {
			// Moment's offset works "backwards", as the number of minutes
			// behind UTC, so we need to make this number negative
			var offset = -mw.libs.revisionSlider.userOffset;
			return moment( rawDate ).zone( offset ).format( 'LLL' );
		},

		/**
		 * @return {string}
		 */
		getFormattedDate: function () {
			return this.formatDate( this.timestamp );
		},

		/**
		 * @return {string}
		 */
		getUser: function () {
			return this.user;
		},

		/**
		 * @return {string}
		 */
		getUserGender: function () {
			return this.userGender;
		},

		/**
		 * @param {number} size
		 */
		setRelativeSize: function ( size ) {
			this.relativeSize = size;
		},

		/**
		 * @return {number}
		 */
		getRelativeSize: function () {
			return this.relativeSize;
		}
	} );

	mw.libs.revisionSlider = mw.libs.revisionSlider || {};
	mw.libs.revisionSlider.Revision = Revision;
}( mediaWiki, jQuery ) );