wiki.techinc.nl/includes/htmlform/CollapsibleFieldsetLayout.php
wikitrent 04c94272d6 Make CollapsibleFieldsetLayout more reusable
Refactor CollapsibleFieldsetLayout to work when not wrapped in
mw-htmlform-ooui-wrapper.

Bug: T278935
Change-Id: I89c17671de1c1c8b5897a75ad292c576a1e1bbb1
2021-05-27 09:12:13 -05:00

36 lines
888 B
PHP

<?php
/*
* @stable to extend
*/
class CollapsibleFieldsetLayout extends OOUI\FieldsetLayout {
/**
* @stable to call
* @inheritDoc
*/
public function __construct( array $config = [] ) {
parent::__construct( $config );
$this->addClasses( [ 'mw-collapsibleFieldsetLayout', 'mw-collapsible' ] );
if ( isset( $config[ 'collapsed' ] ) && $config[ 'collapsed' ] ) {
$this->addClasses( [ 'mw-collapsed' ] );
}
$this->header->addClasses( [ 'mw-collapsible-toggle' ] );
$this->group->addClasses( [ 'mw-collapsible-content' ] );
$this->header->appendContent(
new OOUI\IconWidget( [
'icon' => 'expand',
'label' => wfMessage( 'collapsible-expand' )->text(),
] ),
new OOUI\IconWidget( [
'icon' => 'collapse',
'label' => wfMessage( 'collapsible-collapse' )->text(),
] )
);
$this->header->setAttributes( [
'role' => 'button',
] );
}
}