RoleForm: Use the `<details>` tag
This commit is contained in:
parent
c4ce98159c
commit
5059a782a8
|
@ -272,7 +272,7 @@ class RoleForm extends RepositoryForm
|
||||||
$moduleName . '_header',
|
$moduleName . '_header',
|
||||||
[
|
[
|
||||||
'decorators' => ['ViewHelper'],
|
'decorators' => ['ViewHelper'],
|
||||||
'value' => '<h3>'
|
'value' => '<summary class="collapsible-control">'
|
||||||
. '<span>' . ($moduleName !== 'application'
|
. '<span>' . ($moduleName !== 'application'
|
||||||
? sprintf('%s <em>%s</em>', $moduleName, $this->translate('Module'))
|
? sprintf('%s <em>%s</em>', $moduleName, $this->translate('Module'))
|
||||||
: 'Icinga Web 2'
|
: 'Icinga Web 2'
|
||||||
|
@ -285,18 +285,20 @@ class RoleForm extends RepositoryForm
|
||||||
: ''
|
: ''
|
||||||
)
|
)
|
||||||
. '</span>'
|
. '</span>'
|
||||||
. '</h3>'
|
. new Icon('angles-down', ['class' => 'collapse-icon'])
|
||||||
|
. new Icon('angles-left', ['class' => 'expand-icon'])
|
||||||
|
. '</summary>'
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->addDisplayGroup($elements, $moduleName . '_elements', [
|
$this->addDisplayGroup($elements, $moduleName . '_elements', [
|
||||||
'decorators' => [
|
'decorators' => [
|
||||||
'FormElements',
|
'FormElements',
|
||||||
['Fieldset', [
|
['HtmlTag', [
|
||||||
'class' => 'collapsible',
|
'tag' => 'details',
|
||||||
'data-toggle-element' => 'h3',
|
'class' => 'collapsible'
|
||||||
'data-visible-height' => 0
|
]],
|
||||||
]]
|
['Fieldset']
|
||||||
]
|
]
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,10 +255,30 @@ form.role-form {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
summary {
|
||||||
|
border-bottom: 1px solid @gray-light;
|
||||||
|
.user-select(none);
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
font-weight: @font-weight-bold;
|
||||||
|
margin: 0.556em 0 0.333em;
|
||||||
|
font-size: 1.167em;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: baseline;
|
||||||
|
.privilege-preview {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
> :first-child {
|
> :first-child {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 20em / 1.167em; // element label width / h3 font-size
|
width: 20em / 1.167em; // element label width / summary font-size
|
||||||
|
}
|
||||||
|
|
||||||
|
> :nth-last-child(1),
|
||||||
|
> :nth-last-child(2) {
|
||||||
|
font-size: .75em;
|
||||||
|
opacity: .6;
|
||||||
}
|
}
|
||||||
|
|
||||||
.privilege-preview .icon {
|
.privilege-preview .icon {
|
||||||
|
@ -276,12 +296,8 @@ form.role-form {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fieldset.collapsible {
|
.collapsible {
|
||||||
border: none;
|
summary em {
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
h3 em {
|
|
||||||
font-size: .857em;
|
font-size: .857em;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
color: @text-color-light;
|
color: @text-color-light;
|
||||||
|
@ -309,33 +325,6 @@ form.role-form {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.collapsible-control {
|
|
||||||
border-bottom: 1px solid @gray-light;
|
|
||||||
cursor: pointer;
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.collapsible-control:after {
|
|
||||||
content: "\f103";
|
|
||||||
display: inline-block;
|
|
||||||
font-family: 'ifont';
|
|
||||||
font-weight: normal;
|
|
||||||
padding: 0 .25em;
|
|
||||||
margin-right: .25em;
|
|
||||||
width: 1em;
|
|
||||||
opacity: .6;
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.collapsed .collapsible-control:after {
|
|
||||||
content: "\e87a";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue