summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/resources/js/ext.translate.recentgroups.js
blob: 86fe0359dd4a94183b62a13deebba2f46f55c566 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
( function ( $, mw ) {
	'use strict';

	mw.translate = mw.translate || {};

	/**
	 * Simple wrapper for storing recent groups for an user.
	 *
	 * @class mw.translate.recentGroups
	 * @singleton
	 * @since 2016.03
	 */

	mw.translate.recentGroups = {
		// TODO: Use mw.storage when MW >= 1.26
		get: function () {
			try {
				return JSON.parse( localStorage.getItem( 'translate-recentgroups' ) ) || [];
			} catch ( e ) {}
			return [];
		},

		append: function ( value ) {
			var items = this.get() || [];

			items.unshift( value );
			items = items.filter( function ( item, index, array ) {
				return array.indexOf( item ) === index;
			} );
			items = items.slice( 0, 5 );

			try {
				localStorage.setItem( 'translate-recentgroups', JSON.stringify( items ) );
				return true;
			} catch ( e ) {}
			return false;
		}
	};
}( jQuery, mediaWiki ) );