1 var MarkSeenButtonWidget
= require( './MarkSeenButtonWidget.js' ),
2 WatchlistTopSectionWidget
;
4 * Top section (between page title and filters) on Special:Watchlist
6 * @class mw.rcfilters.ui.WatchlistTopSectionWidget
7 * @extends OO.ui.Widget
10 * @param {mw.rcfilters.Controller} controller
11 * @param {mw.rcfilters.dm.ChangesListViewModel} changesListModel
12 * @param {mw.rcfilters.ui.SavedLinksListWidget} savedLinksListWidget
13 * @param {jQuery} $watchlistDetails Content of the 'details' section that includes watched pages count
14 * @param {Object} [config] Configuration object
16 WatchlistTopSectionWidget
= function MwRcfiltersUiWatchlistTopSectionWidget(
17 controller
, changesListModel
, savedLinksListWidget
, $watchlistDetails
, config
19 var editWatchlistButton
,
24 config
= config
|| {};
27 WatchlistTopSectionWidget
.parent
.call( this, config
);
29 editWatchlistButton
= new OO
.ui
.ButtonWidget( {
30 label
: mw
.msg( 'rcfilters-watchlist-edit-watchlist-button' ),
32 href
: require( '../config.json' ).StructuredChangeFiltersEditWatchlistUrl
34 markSeenButton
= new MarkSeenButtonWidget( controller
, changesListModel
);
36 $topTable
= $( '<div>' )
37 .addClass( 'mw-rcfilters-ui-table' )
40 .addClass( 'mw-rcfilters-ui-row' )
43 .addClass( 'mw-rcfilters-ui-cell' )
44 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-watchlistDetails' )
45 .append( $watchlistDetails
)
49 .addClass( 'mw-rcfilters-ui-cell' )
50 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-editWatchlistButton' )
51 .append( editWatchlistButton
.$element
)
55 $bottomTable
= $( '<div>' )
56 .addClass( 'mw-rcfilters-ui-table' )
57 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-savedLinksTable' )
60 .addClass( 'mw-rcfilters-ui-row' )
63 .addClass( 'mw-rcfilters-ui-cell' )
64 .append( markSeenButton
.$element
)
68 .addClass( 'mw-rcfilters-ui-cell' )
69 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-savedLinks' )
70 .append( savedLinksListWidget
.$element
)
74 $separator
= $( '<div>' )
75 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-separator' );
78 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget' )
79 .append( $topTable
, $separator
, $bottomTable
);
84 OO
.inheritClass( WatchlistTopSectionWidget
, OO
.ui
.Widget
);
86 module
.exports
= WatchlistTopSectionWidget
;