|
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