import List from './List'
import Edit from './Edit'
-import { mapGetters } from 'vuex'
import { system, NoID } from '@cortezaproject/corteza-js'
export default {
@@ -44,12 +42,6 @@ export default {
}
},
- computed: {
- ...mapGetters({
- users: 'user/set',
- }),
- },
-
mounted () {
this.fetchReminders()
// @todo remove this, when sockets get implemented
diff --git a/client/web/compose/src/components/PageBlocks/Navigation/NavTypes/ComposePage.vue b/client/web/compose/src/components/PageBlocks/Navigation/NavTypes/ComposePage.vue
index 84e59a00c..978ae6ef6 100644
--- a/client/web/compose/src/components/PageBlocks/Navigation/NavTypes/ComposePage.vue
+++ b/client/web/compose/src/components/PageBlocks/Navigation/NavTypes/ComposePage.vue
@@ -20,7 +20,6 @@
label-class="text-primary"
>
diff --git a/client/web/workflow/src/components/Configurator/Workflow.vue b/client/web/workflow/src/components/Configurator/Workflow.vue
index a0d73b840..47a051b6c 100644
--- a/client/web/workflow/src/components/Configurator/Workflow.vue
+++ b/client/web/workflow/src/components/Configurator/Workflow.vue
@@ -56,6 +56,7 @@
:get-option-key="getOptionKey"
:value="user.value"
:placeholder="$t('run-as.placeholder')"
+ :filterable="false"
@search="search"
@input="updateRunAs"
/>
diff --git a/lib/vue/src/components/permissions/CPermissionsModal.vue b/lib/vue/src/components/permissions/CPermissionsModal.vue
index f6b2e2b79..c1101858d 100644
--- a/lib/vue/src/components/permissions/CPermissionsModal.vue
+++ b/lib/vue/src/components/permissions/CPermissionsModal.vue
@@ -46,7 +46,6 @@
@@ -217,16 +214,13 @@
>
@@ -293,6 +287,8 @@ export default {
evaluate: [],
+ fetchedUsers: {},
+
add: {
roleID: [],
userID: undefined,
@@ -370,7 +366,7 @@ export default {
if (!this.roles.length) {
return this.fetchRoles()
} else if (this.currentRoleID) {
- return this.reevaluatePermissions(this.currentRoleID)
+ return this.reEvaluatePermissions(this.currentRoleID)
}
}).finally(() => {
this.processing = false
@@ -398,10 +394,14 @@ export default {
const roleID = this.currentRoleID
this.api.permissionsUpdate({ roleID, rules }).then(() => {
- this.reevaluatePermissions(roleID)
- }).finally(() => {
- this.submitting = false
- })
+ this.reEvaluatePermissions(roleID)
+ this.toastSuccess(this.$t('permissions:ui.notification.save.success'))
+ }).catch(this.toastErrorHandler(this.$t('permissions:ui.notification.save.failed')))
+ .finally(() => {
+ setTimeout(() => {
+ this.submitting = false
+ }, 300)
+ })
},
async fetchPermissions () {
@@ -444,7 +444,7 @@ export default {
})
},
- async reevaluatePermissions (roleID) {
+ async reEvaluatePermissions (roleID) {
return this.fetchRules(roleID).then(() => {
return Promise.all(this.evaluate.map(e => {
let { roleID = [], userID } = e
@@ -467,15 +467,23 @@ export default {
this.$SystemAPI.userList({ query, limit: 15 })
.then(({ set }) => {
- this.userOptions = set.map(m => Object.freeze(m))
+ this.userOptions = set.reduce((acc, { userID, name, username, email, handle }) => {
+ if (!this.fetchedUsers[userID]) {
+ this.fetchedUsers[userID] = name || username || email || `<@${userID}>`
+ }
+
+ acc.push(userID)
+
+ return acc
+ }, [])
})
.finally(() => {
loading(false)
})
},
- getUserLabel ({ userID, email, name, username }) {
- return name || username || email || `<@${userID}>`
+ getUserLabel (userID) {
+ return this.fetchedUsers[userID]
},
onAddEval () {
@@ -504,8 +512,7 @@ export default {
getEvalName ({ userID, roleID }) {
if (userID) {
- const { name, username, email, handle } = this.userOptions.find(({ userID: id }) => id === userID) || {}
- return [name || username || email || handle || userID || '']
+ return [this.fetchedUsers[userID]]
} else {
return roleID.map(({ name }) => name)
}
@@ -589,10 +596,6 @@ export default {
return roleID
},
- getOptionUserKey ({ userID }) {
- return userID
- },
-
setDefaultValues () {
this.processing = false
this.submitting = false
@@ -608,6 +611,7 @@ export default {
this.currentRoleID = undefined
this.evaluate = []
this.add = {}
+ this.fetchedUsers = {}
},
destroyEvents() {
diff --git a/lib/vue/src/components/privacy/CSensitivityLevelPicker.vue b/lib/vue/src/components/privacy/CSensitivityLevelPicker.vue
index 3e5f18b8b..23dea5e95 100644
--- a/lib/vue/src/components/privacy/CSensitivityLevelPicker.vue
+++ b/lib/vue/src/components/privacy/CSensitivityLevelPicker.vue
@@ -1,7 +1,6 @@