summaryrefslogtreecommitdiffstats
path: root/apps/settings/src/views/Users.vue
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings/src/views/Users.vue')
-rw-r--r--apps/settings/src/views/Users.vue30
1 files changed, 29 insertions, 1 deletions
diff --git a/apps/settings/src/views/Users.vue b/apps/settings/src/views/Users.vue
index 02f55a0d3cb..a606600b6ca 100644
--- a/apps/settings/src/views/Users.vue
+++ b/apps/settings/src/views/Users.vue
@@ -81,7 +81,15 @@
<AppNavigationCounter v-if="group.count" slot="counter">
{{ group.count }}
</AppNavigationCounter>
- <template slot="actions">
+ <template #actions>
+ <ActionInput v-if="group.id !== 'admin' && group.id !== 'disabled' && settings.isAdmin"
+ ref="displayNameInput"
+ icon="icon-edit"
+ type="text"
+ :value="group.title"
+ @submit="renameGroup(group.id)">
+ {{ t('settings', 'Rename group') }}
+ </ActionInput>
<ActionButton v-if="group.id !== 'admin' && group.id !== 'disabled' && settings.isAdmin"
icon="icon-delete"
@click="removeGroup(group.id)">
@@ -154,6 +162,7 @@
</template>
<script>
+import ActionInput from '@nextcloud/vue/dist/Components/ActionInput'
import ActionButton from '@nextcloud/vue/dist/Components/ActionButton'
import AppContent from '@nextcloud/vue/dist/Components/AppContent'
import AppNavigation from '@nextcloud/vue/dist/Components/AppNavigation'
@@ -176,6 +185,7 @@ Vue.use(VueLocalStorage)
export default {
name: 'Users',
components: {
+ ActionInput,
ActionButton,
AppContent,
AppNavigation,
@@ -366,6 +376,24 @@ export default {
this.$localStorage.set(key, status)
return status
},
+ async renameGroup(gid) {
+ // check if group id is valid
+ if (gid.trim() === '') {
+ return
+ }
+
+ const displayName = this.$refs.displayNameInput[0].$el.querySelector('input[type="text"]').value
+
+ // check if group name is valid
+ if (displayName.trim() === '') {
+ return
+ }
+
+ try {
+ await this.$store.dispatch('renameGroup', { groupid: gid.trim(), displayName: displayName.trim() })
+ } catch {
+ }
+ },
removeGroup(groupid) {
const self = this
// TODO migrate to a vue js confirm dialog component