Merge "Fix order of @var parameter in PHP"
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / ui / WatchlistTopSectionWidget.js
1 var MarkSeenButtonWidget = require( './MarkSeenButtonWidget.js' ),
2 WatchlistTopSectionWidget;
3 /**
4 * Top section (between page title and filters) on Special:Watchlist
5 *
6 * @class mw.rcfilters.ui.WatchlistTopSectionWidget
7 * @extends OO.ui.Widget
8 *
9 * @constructor
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
15 */
16 WatchlistTopSectionWidget = function MwRcfiltersUiWatchlistTopSectionWidget(
17 controller, changesListModel, savedLinksListWidget, $watchlistDetails, config
18 ) {
19 var editWatchlistButton,
20 markSeenButton,
21 $topTable,
22 $bottomTable,
23 $separator;
24 config = config || {};
25
26 // Parent
27 WatchlistTopSectionWidget.parent.call( this, config );
28
29 editWatchlistButton = new OO.ui.ButtonWidget( {
30 label: mw.msg( 'rcfilters-watchlist-edit-watchlist-button' ),
31 icon: 'edit',
32 href: require( '../config.json' ).StructuredChangeFiltersEditWatchlistUrl
33 } );
34 markSeenButton = new MarkSeenButtonWidget( controller, changesListModel );
35
36 $topTable = $( '<div>' )
37 .addClass( 'mw-rcfilters-ui-table' )
38 .append(
39 $( '<div>' )
40 .addClass( 'mw-rcfilters-ui-row' )
41 .append(
42 $( '<div>' )
43 .addClass( 'mw-rcfilters-ui-cell' )
44 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-watchlistDetails' )
45 .append( $watchlistDetails )
46 )
47 .append(
48 $( '<div>' )
49 .addClass( 'mw-rcfilters-ui-cell' )
50 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-editWatchlistButton' )
51 .append( editWatchlistButton.$element )
52 )
53 );
54
55 $bottomTable = $( '<div>' )
56 .addClass( 'mw-rcfilters-ui-table' )
57 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-savedLinksTable' )
58 .append(
59 $( '<div>' )
60 .addClass( 'mw-rcfilters-ui-row' )
61 .append(
62 $( '<div>' )
63 .addClass( 'mw-rcfilters-ui-cell' )
64 .append( markSeenButton.$element )
65 )
66 .append(
67 $( '<div>' )
68 .addClass( 'mw-rcfilters-ui-cell' )
69 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-savedLinks' )
70 .append( savedLinksListWidget.$element )
71 )
72 );
73
74 $separator = $( '<div>' )
75 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget-separator' );
76
77 this.$element
78 .addClass( 'mw-rcfilters-ui-watchlistTopSectionWidget' )
79 .append( $topTable, $separator, $bottomTable );
80 };
81
82 /* Initialization */
83
84 OO.inheritClass( WatchlistTopSectionWidget, OO.ui.Widget );
85
86 module.exports = WatchlistTopSectionWidget;