Skip to content

Commit b92e28e

Browse files
authored
Merge pull request #36650 from nextcloud/enh/a11y-admin-delegation-select
2 parents 7c477d4 + db5d5c1 commit b92e28e

7 files changed

Lines changed: 26 additions & 17 deletions

File tree

apps/settings/lib/Settings/Admin/Delegation.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,11 @@ private function initSettingState(): void {
8282
$settings = array_merge(
8383
$settings,
8484
array_map(function (IDelegatedSettings $setting) use ($section) {
85+
$sectionName = $section->getName() . ($setting->getName() !== null ? ' - ' . $setting->getName() : '');
8586
return [
8687
'class' => get_class($setting),
87-
'sectionName' => $section->getName() . ($setting->getName() !== null ? ' - ' . $setting->getName() : ''),
88+
'sectionName' => $sectionName,
89+
'id' => mb_strtolower(str_replace(' ', '-', $sectionName)),
8890
'priority' => $section->getPriority(),
8991
];
9092
}, $sectionSettings)

apps/settings/src/components/AdminDelegating.vue

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
:doc-url="authorizedSettingsDocLink">
55
<div class="setting-list">
66
<div v-for="setting in availableSettings" :key="setting.class">
7-
<h3>{{ setting.sectionName }}</h3>
7+
<label :for="setting.id">{{ setting.sectionName }}</label>
88
<GroupSelect :available-groups="availableGroups" :authorized-groups="authorizedGroups" :setting="setting" />
99
</div>
1010
</div>
@@ -32,3 +32,12 @@ export default {
3232
},
3333
}
3434
</script>
35+
36+
<style lang="scss" scoped>
37+
label {
38+
display: block;
39+
font-size: 16px;
40+
margin: 12px 0;
41+
color: var(--color-text-light);
42+
}
43+
</style>

apps/settings/src/components/AdminDelegation/GroupSelect.vue

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
<template>
2-
<NcMultiselect v-model="selected"
3-
class="group-multiselect"
2+
<NcSelect :input-id="setting.id"
3+
v-model="selected"
4+
class="group-select"
45
:placeholder="t('settings', 'None')"
5-
track-by="gid"
66
label="displayName"
77
:options="availableGroups"
8-
open-direction="bottom"
98
:multiple="true"
10-
:allow-empty="true" />
9+
:close-on-select="false" />
1110
</template>
1211

1312
<script>
14-
import NcMultiselect from '@nextcloud/vue/dist/Components/NcMultiselect'
13+
import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
1514
import { generateUrl } from '@nextcloud/router'
1615
import axios from '@nextcloud/axios'
1716
import { showError } from '@nextcloud/dialogs'
@@ -20,7 +19,7 @@ import logger from '../../logger'
2019
export default {
2120
name: 'GroupSelect',
2221
components: {
23-
NcMultiselect,
22+
NcSelect,
2423
},
2524
props: {
2625
availableGroups: {
@@ -67,8 +66,7 @@ export default {
6766
</script>
6867

6968
<style lang="scss">
70-
.group-multiselect {
69+
.group-select {
7170
width: 100%;
72-
margin-right: 0;
7371
}
7472
</style>

dist/core-common.js

Lines changed: 2 additions & 2 deletions
Large diffs are not rendered by default.

dist/core-common.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/settings-vue-settings-admin-delegation.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/settings-vue-settings-admin-delegation.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)