Browse Source

adds a custom renderer to the users page

master
Keviin Åberg Kultalahti 5 years ago
parent
commit
c66be3cebb
  1. 6
      packages/builder/src/pages/builder/portal/manage/users/[userId].svelte
  2. 20
      packages/builder/src/pages/builder/portal/manage/users/_components/TagsTableRenderer.svelte
  3. 10
      packages/builder/src/pages/builder/portal/manage/users/index.svelte

6
packages/builder/src/pages/builder/portal/manage/users/[userId].svelte

@ -17,6 +17,7 @@
import { fetchData } from "helpers" import { fetchData } from "helpers"
import { users } from "stores/portal" import { users } from "stores/portal"
import TagsRenderer from "./_components/TagsTableRenderer.svelte"
import UpdateRolesModal from "./_components/UpdateRolesModal.svelte" import UpdateRolesModal from "./_components/UpdateRolesModal.svelte"
export let userId export let userId
@ -25,14 +26,14 @@
const roleSchema = { const roleSchema = {
name: { displayName: "App" }, name: { displayName: "App" },
role: { type: "options" }, role: {},
} }
// Merge the Apps list and the roles response to get something that makes sense for the table // Merge the Apps list and the roles response to get something that makes sense for the table
$: appList = Object.keys($apps?.data).map(id => ({ $: appList = Object.keys($apps?.data).map(id => ({
...$apps?.data?.[id], ...$apps?.data?.[id],
_id: id, _id: id,
role: $roleFetch?.data?.roles?.[id], role: [$roleFetch?.data?.roles?.[id]],
})) }))
let selectedApp let selectedApp
@ -97,6 +98,7 @@
allowEditColumns={false} allowEditColumns={false}
allowEditRows={false} allowEditRows={false}
allowSelectRows={false} allowSelectRows={false}
customRenderers={[{ column: "role", component: TagsRenderer }]}
/> />
</div> </div>
<Divider size="S" /> <Divider size="S" />

20
packages/builder/src/pages/builder/portal/manage/users/_components/TagsTableRenderer.svelte

@ -0,0 +1,20 @@
<script>
import { Tag, Tags } from "@budibase/bbui"
export let value
const displayLimit = 5
$: tags = value?.slice(0, displayLimit) ?? []
$: leftover = (value?.length ?? 0) - tags.length
</script>
<Tags>
{#each tags as tag}
<Tag>
{tag}
</Tag>
{/each}
{#if leftover}
<Tag>+{leftover} more</Tag>
{/if}
</Tags>

10
packages/builder/src/pages/builder/portal/manage/users/index.svelte

@ -12,6 +12,7 @@
Layout, Layout,
Modal, Modal,
} from "@budibase/bbui" } from "@budibase/bbui"
import TagsRenderer from "./_components/TagsTableRenderer.svelte"
import AddUserModal from "./_components/AddUserModal.svelte" import AddUserModal from "./_components/AddUserModal.svelte"
import BasicOnboardingModal from "./_components/BasicOnboardingModal.svelte" import BasicOnboardingModal from "./_components/BasicOnboardingModal.svelte"
import { users } from "stores/portal" import { users } from "stores/portal"
@ -20,14 +21,18 @@
const schema = { const schema = {
email: {}, email: {},
status: {}, status: { displayName: "Development Access", type: "boolean" },
// role: { type: "options" },
group: {},
// access: {}, // access: {},
// group: {} // group: {}
} }
let search let search
let email let email
$: filteredUsers = $users.filter(user => user.email.includes(search || "")) $: filteredUsers = $users
.filter(user => user.email.includes(search || ""))
.map(user => ({ ...user, group: ["All"] }))
let createUserModal let createUserModal
let basicOnboardingModal let basicOnboardingModal
@ -68,6 +73,7 @@
allowEditColumns={false} allowEditColumns={false}
allowEditRows={false} allowEditRows={false}
allowSelectRows={false} allowSelectRows={false}
customRenderers={[{ column: "group", component: TagsRenderer }]}
/> />
</div> </div>
</Layout> </Layout>

Loading…
Cancel
Save