d968b9e735ad1b2e4713a6d75aef280a3ed61a6e
[lhc/web/wiklou.git] / resources / src / mediawiki.rcfilters / ui / RclTopSectionWidget.js
1 ( function () {
2 var RclToOrFromWidget = require( './RclToOrFromWidget.js' ),
3 RclTargetPageWidget = require( './RclTargetPageWidget.js' ),
4 RclTopSectionWidget;
5
6 /**
7 * Top section (between page title and filters) on Special:RecentChangesLinked (AKA RelatedChanges)
8 *
9 * @class mw.rcfilters.ui.RclTopSectionWidget
10 * @extends OO.ui.Widget
11 *
12 * @constructor
13 * @param {mw.rcfilters.ui.SavedLinksListWidget} savedLinksListWidget
14 * @param {mw.rcfilters.Controller} controller
15 * @param {mw.rcfilters.dm.FilterItem} showLinkedToModel Model for 'showlinkedto' parameter
16 * @param {mw.rcfilters.dm.FilterItem} targetPageModel Model for 'target' parameter
17 * @param {Object} [config] Configuration object
18 */
19 RclTopSectionWidget = function MwRcfiltersUiRclTopSectionWidget(
20 savedLinksListWidget, controller, showLinkedToModel, targetPageModel, config
21 ) {
22 var toOrFromWidget,
23 targetPage;
24 config = config || {};
25
26 // Parent
27 RclTopSectionWidget.parent.call( this, config );
28
29 this.controller = controller;
30
31 toOrFromWidget = new RclToOrFromWidget( controller, showLinkedToModel );
32 targetPage = new RclTargetPageWidget( controller, targetPageModel );
33
34 // Initialize
35 this.$element
36 .addClass( 'mw-rcfilters-ui-rclTopSectionWidget' )
37 .append(
38 $( '<div>' )
39 .addClass( 'mw-rcfilters-ui-table' )
40 .append(
41 $( '<div>' )
42 .addClass( 'mw-rcfilters-ui-row' )
43 .append(
44 $( '<div>' )
45 .addClass( 'mw-rcfilters-ui-cell' )
46 .append( toOrFromWidget.$element )
47 ),
48 $( '<div>' )
49 .addClass( 'mw-rcfilters-ui-row' )
50 .append(
51 $( '<div>' )
52 .addClass( 'mw-rcfilters-ui-cell' )
53 .append( targetPage.$element ),
54 $( '<div>' )
55 .addClass( 'mw-rcfilters-ui-table-placeholder' )
56 .addClass( 'mw-rcfilters-ui-cell' ),
57 !mw.user.isAnon() ?
58 $( '<div>' )
59 .addClass( 'mw-rcfilters-ui-cell' )
60 .addClass( 'mw-rcfilters-ui-rclTopSectionWidget-savedLinks' )
61 .append( savedLinksListWidget.$element ) :
62 null
63 )
64 )
65 );
66 };
67
68 /* Initialization */
69
70 OO.inheritClass( RclTopSectionWidget, OO.ui.Widget );
71
72 module.exports = RclTopSectionWidget;
73 }() );