forked from tsai/budibase
8 changed files with 70 additions and 92 deletions
@ -1,42 +1,10 @@ |
|||||
<!-- Module scoped cache of saved role options --> |
|
||||
<script context="module"> |
|
||||
import builderApi from "builderStore/api" |
|
||||
|
|
||||
let cachedRoles |
|
||||
|
|
||||
async function getRoles(force = false) { |
|
||||
if (cachedRoles && !force) { |
|
||||
return await cachedRoles |
|
||||
} |
|
||||
cachedRoles = new Promise(resolve => { |
|
||||
builderApi |
|
||||
.get("/api/roles") |
|
||||
.then(response => response.json()) |
|
||||
.then(resolve) |
|
||||
}) |
|
||||
return await cachedRoles |
|
||||
} |
|
||||
</script> |
|
||||
|
|
||||
<script> |
<script> |
||||
export let roleId |
import { backendUiStore } from "builderStore" |
||||
|
|
||||
let roleName |
|
||||
$: getRole() |
|
||||
|
|
||||
async function getRole() { |
export let roleId |
||||
// Try to find a matching role |
|
||||
let roles = await getRoles() |
|
||||
let role = roles.find(role => role._id === roleId) |
|
||||
|
|
||||
// If we didn't find a matching role, try updating the cached results |
$: role = $backendUiStore.roles.find(role => role._id === roleId) |
||||
if (!role) { |
$: roleName = role?.name ?? "Unknown role" |
||||
let roles = await getRoles(true) |
|
||||
let role = roles.find(role => role._id === roleId) |
|
||||
} |
|
||||
role = roles.find(role => role._id === roleId) |
|
||||
roleName = role?.name ?? "Unknown role" |
|
||||
} |
|
||||
</script> |
</script> |
||||
|
|
||||
<div>{roleName}</div> |
<div>{roleName}</div> |
||||
|
|||||
@ -0,0 +1,15 @@ |
|||||
|
<script> |
||||
|
import { Select } from "@budibase/bbui" |
||||
|
import { backendUiStore } from "builderStore" |
||||
|
|
||||
|
export let value |
||||
|
|
||||
|
let roles = [] |
||||
|
</script> |
||||
|
|
||||
|
<Select bind:value extraThin secondary on:change> |
||||
|
<option value="">Choose an option</option> |
||||
|
{#each $backendUiStore.roles as role} |
||||
|
<option value={role._id}>{role.name}</option> |
||||
|
{/each} |
||||
|
</Select> |
||||
Loading…
Reference in new issue