feat: implement save button for group edit in admin panel

pull/7973/head
Gabriel Mowses (Mouse) 3 months ago
parent 90f40276a0
commit 1d6c63f170

@ -30,6 +30,7 @@ q-layout(view='hHh lpR fFf', container)
text-color='white'
:label='t(`common.actions.save`)'
icon='las la-check'
@click='saveGroup'
)
q-drawer.bg-dark-6(:model-value='true', :width='250', dark)
q-list(padding, v-show='!state.isLoading')
@ -793,6 +794,61 @@ watch([() => state.usersPage, () => state.usersFilter], refreshUsers)
// METHODS
async function saveGroup () {
$q.loading.show()
try {
const resp = await APOLLO_CLIENT.mutate({
mutation: gql`
mutation updateGroup (
$id: UUID!
$name: String!
$redirectOnLogin: String!
$permissions: [String]!
$rules: [GroupRuleInput]!
) {
updateGroup(
id: $id
name: $name
redirectOnLogin: $redirectOnLogin
permissions: $permissions
rules: $rules
) {
operation {
succeeded
message
}
}
}
`,
variables: {
id: state.group.id,
name: state.group.name,
redirectOnLogin: state.group.redirectOnLogin || '/',
permissions: state.group.permissions || [],
rules: (state.group.rules || []).map(r => ({
id: r.id,
name: r.name,
path: r.path || '',
roles: r.roles || [],
match: r.match || 'START',
mode: r.mode || 'ALLOW',
locales: r.locales || [],
sites: r.sites || []
}))
}
})
const result = resp?.data?.updateGroup?.operation ?? {}
if (result.succeeded) {
$q.notify({ type: 'positive', message: 'Group saved successfully.' })
} else {
throw new Error(result.message || 'Save failed')
}
} catch (err) {
$q.notify({ type: 'negative', message: err.message })
}
$q.loading.hide()
}
function close () {
adminStore.$patch({ overlay: '' })
}

Loading…
Cancel
Save