|
14 | 14 | --> |
15 | 15 | <script lang="ts"> |
16 | 16 | import type { Class, Doc, Ref, Space } from '@hcengineering/core' |
| 17 | + import { AccountRole, getCurrentAccount, hasAccountRole } from '@hcengineering/core' |
17 | 18 | import { Label, Section, Scroller } from '@hcengineering/ui' |
18 | 19 | import { Table, ViewletsSettingButton } from '@hcengineering/view-resources' |
19 | 20 | import { Viewlet, ViewletPreference } from '@hcengineering/view' |
|
26 | 27 | export let readonly: boolean = false |
27 | 28 | export let meetings: number |
28 | 29 |
|
| 30 | + const me = getCurrentAccount() |
| 31 | +
|
29 | 32 | let viewlet: Viewlet | undefined |
30 | 33 | let preference: ViewletPreference | undefined |
31 | 34 | let loading = true |
| 35 | +
|
| 36 | + let canViewMinutes: boolean = false |
| 37 | + $: canViewMinutes = hasAccountRole(me, AccountRole.User) |
32 | 38 | </script> |
33 | 39 |
|
34 | | -<Section label={love.string.MeetingMinutes} icon={love.icon.Cam}> |
35 | | - <svelte:fragment slot="header"> |
36 | | - <ViewletsSettingButton |
37 | | - viewletQuery={{ _id: love.viewlet.TableMeetingMinutesEmbedded }} |
38 | | - kind={'tertiary'} |
39 | | - bind:viewlet |
40 | | - bind:loading |
41 | | - bind:preference |
42 | | - /> |
43 | | - </svelte:fragment> |
| 40 | +{#if canViewMinutes} |
| 41 | + <Section label={love.string.MeetingMinutes} icon={love.icon.Cam}> |
| 42 | + <svelte:fragment slot="header"> |
| 43 | + <ViewletsSettingButton |
| 44 | + viewletQuery={{ _id: love.viewlet.TableMeetingMinutesEmbedded }} |
| 45 | + kind={'tertiary'} |
| 46 | + bind:viewlet |
| 47 | + bind:loading |
| 48 | + bind:preference |
| 49 | + /> |
| 50 | + </svelte:fragment> |
44 | 51 |
|
45 | | - <svelte:fragment slot="content"> |
46 | | - {#if meetings > 0 && viewlet} |
47 | | - <Scroller horizontal> |
48 | | - <Table |
49 | | - _class={love.class.MeetingMinutes} |
50 | | - config={preference?.config ?? viewlet.config} |
51 | | - query={{ attachedTo: objectId }} |
52 | | - loadingProps={{ length: meetings }} |
53 | | - prefferedSorting="createdOn" |
54 | | - {readonly} |
55 | | - /> |
56 | | - </Scroller> |
57 | | - {:else} |
58 | | - <div class="antiSection-empty solid flex-col mt-3"> |
59 | | - <span class="content-dark-color"> |
60 | | - <Label label={love.string.NoMeetingMinutes} /> |
61 | | - </span> |
62 | | - </div> |
63 | | - {/if} |
64 | | - </svelte:fragment> |
65 | | -</Section> |
| 52 | + <svelte:fragment slot="content"> |
| 53 | + {#if meetings > 0 && viewlet} |
| 54 | + <Scroller horizontal> |
| 55 | + <Table |
| 56 | + _class={love.class.MeetingMinutes} |
| 57 | + config={preference?.config ?? viewlet.config} |
| 58 | + query={{ attachedTo: objectId }} |
| 59 | + loadingProps={{ length: meetings }} |
| 60 | + prefferedSorting="createdOn" |
| 61 | + {readonly} |
| 62 | + /> |
| 63 | + </Scroller> |
| 64 | + {:else} |
| 65 | + <div class="antiSection-empty solid flex-col mt-3"> |
| 66 | + <span class="content-dark-color"> |
| 67 | + <Label label={love.string.NoMeetingMinutes} /> |
| 68 | + </span> |
| 69 | + </div> |
| 70 | + {/if} |
| 71 | + </svelte:fragment> |
| 72 | + </Section> |
| 73 | +{/if} |
0 commit comments