Localisation updates from https://translatewiki.net.
[mediawiki.git] / resources / src / mediawiki.rcfilters / ui / LiveUpdateButtonWidget.js
blob43a35ec7857994fbf31c2b5b27844c18a688ddfa
1 /**
2  * Widget for toggling live updates.
3  *
4  * @class mw.rcfilters.ui.LiveUpdateButtonWidget
5  * @ignore
6  * @extends OO.ui.ToggleButtonWidget
7  *
8  * @param {mw.rcfilters.Controller} controller
9  * @param {mw.rcfilters.dm.ChangesListViewModel} changesListModel
10  * @param {Object} [config] Configuration object
11  */
12 const LiveUpdateButtonWidget = function MwRcfiltersUiLiveUpdateButtonWidget( controller, changesListModel, config ) {
13         config = config || {};
15         // Parent
16         LiveUpdateButtonWidget.super.call( this, Object.assign( {
17                 label: mw.msg( 'rcfilters-liveupdates-button' )
18         }, config ) );
20         this.controller = controller;
21         this.model = changesListModel;
23         // Events
24         this.connect( this, { click: 'onClick' } );
25         this.model.connect( this, { liveUpdateChange: 'onLiveUpdateChange' } );
27         this.$element.addClass( 'mw-rcfilters-ui-liveUpdateButtonWidget' );
29         this.setState( false );
32 /* Initialization */
34 OO.inheritClass( LiveUpdateButtonWidget, OO.ui.ToggleButtonWidget );
36 /* Methods */
38 /**
39  * Respond to the button being clicked
40  */
41 LiveUpdateButtonWidget.prototype.onClick = function () {
42         this.controller.toggleLiveUpdate();
45 /**
46  * Set the button's state and change its appearance
47  *
48  * @param {boolean} enable Whether the 'live update' feature is now on/off
49  */
50 LiveUpdateButtonWidget.prototype.setState = function ( enable ) {
51         this.setValue( enable );
52         this.setIcon( enable ? 'stop' : 'play' );
53         this.setTitle( mw.msg(
54                 enable ?
55                         'rcfilters-liveupdates-button-title-on' :
56                         'rcfilters-liveupdates-button-title-off'
57         ) );
60 /**
61  * Respond to the 'live update' feature being turned on/off
62  *
63  * @param {boolean} enable Whether the 'live update' feature is now on/off
64  */
65 LiveUpdateButtonWidget.prototype.onLiveUpdateChange = function ( enable ) {
66         this.setState( enable );
69 module.exports = LiveUpdateButtonWidget;