1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-14 17:18:33 +00:00

Fix selecting role on database and table level

This commit is contained in:
Bram Wiepjes 2024-04-11 15:18:51 +02:00
parent a8db75b31c
commit 80b7f0d51c
9 changed files with 44 additions and 6 deletions
changelog/entries/unreleased/bug
enterprise/web-frontend/modules/baserow_enterprise/components
web-frontend/modules/core
components/settings/members
store

View file

@ -0,0 +1,7 @@
{
"type": "bug",
"message": "Fix selecting role on database and table level.",
"issue_number": null,
"bullet_points": [],
"created_at": "2024-04-11"
}

View file

@ -24,6 +24,7 @@
ref="editRoleContext"
:subject="row"
:roles="roles"
:workspace="workspace"
role-value-column="role_uid"
@update-role="roleUpdate($event)"
></EditRoleContext>

View file

@ -23,6 +23,7 @@
ref="editRoleContext"
:subject="row"
:roles="roles"
:workspace="workspace"
role-value-column="default_role"
@update-role="roleUpdate($event)"
></EditRoleContext>

View file

@ -60,6 +60,7 @@
:roles="getAvailableRoles(roles)"
:value="getRole(roleAssignment)"
:allow-removing-role="true"
:workspace="workspace"
@delete="$emit('role-updated', roleAssignment, null)"
@input="({ uid }) => $emit('role-updated', roleAssignment, uid)"
/>

View file

@ -16,6 +16,7 @@
:subject="value"
:roles="roles"
:allow-removing-role="allowRemovingRole"
:workspace="workspace"
role-value-column="uid"
@update-role="roleUpdated"
@delete="$emit('delete')"
@ -46,10 +47,14 @@ export default {
type: Boolean,
default: false,
},
workspace: {
type: Object,
required: true,
},
},
methods: {
roleUpdated({ uid }) {
const role = this.roles.find((role) => role.getUid() === uid)
const role = this.roles.find((role) => role.uid === uid)
this.$emit('input', role)
},
},

View file

@ -4,7 +4,11 @@
:class="{ 'select-list-footer--single': !showRoleSelector }"
>
<div v-if="showRoleSelector" class="select-list-footer__left-side">
<RoleSelector v-model="roleSelected" :roles="roles" />
<RoleSelector
v-model="roleSelected"
:roles="roles"
:workspace="workspace"
/>
</div>
<div>
<HelpIcon

View file

@ -42,7 +42,12 @@
</div>
<FormElement class="control">
<div class="control__elements">
<Dropdown v-model="values.default_role" :show-search="false" small>
<Dropdown
v-model="values.default_role"
:show-search="false"
:fixed-items="true"
small
>
<DropdownItem
v-for="role in roles"
:key="role.uid"
@ -52,7 +57,18 @@
>
{{ role.name }}
<Badge
v-if="!role.isBillable && atLeastOneBillableRole"
v-if="role.showIsBillable && role.isBillable"
color="cyan"
size="small"
bold
>{{ $t('common.billable') }}
</Badge>
<Badge
v-else-if="
role.showIsBillable &&
!role.isBillable &&
atLeastOneBillableRole
"
color="yellow"
size="small"
bold

View file

@ -100,8 +100,7 @@ export default {
props: {
workspace: {
type: Object,
required: false,
default: null,
required: true,
},
subject: {
required: true,

View file

@ -505,6 +505,10 @@ export const getters = {
getAllSorted(state) {
return state.items.map((g) => g).sort((a, b) => a.order - b.order)
},
/**
* Never use this value in any component to get the current workspace. This is
* just used for visual purposes in the left sidebar.
*/
getSelected(state) {
return state.selected
},