Calendar: allow to subscribe/unsubscribe to personal events + improve info about invitations/subscriptions
parent
b1afcb0251
commit
007514dd66
@ -0,0 +1,19 @@ |
|||||||
|
.calendar-event-info { |
||||||
|
@apply flex flex-col space-y-4; |
||||||
|
|
||||||
|
.invitations-info { |
||||||
|
@apply space-y-2; |
||||||
|
|
||||||
|
&__title { |
||||||
|
@apply text-gray-50 mb-3; |
||||||
|
} |
||||||
|
|
||||||
|
&__item { |
||||||
|
@apply flex text-body-2 flex-row justify-between; |
||||||
|
|
||||||
|
p { |
||||||
|
@apply first:font-semibold; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
<script setup> |
||||||
|
import ShowLinks from "../resource_links/ShowLinks.vue" |
||||||
|
|
||||||
|
defineProps({ |
||||||
|
event: { |
||||||
|
type: Object, |
||||||
|
required: true, |
||||||
|
}, |
||||||
|
}) |
||||||
|
</script> |
||||||
|
|
||||||
|
<template> |
||||||
|
<div class="invitations-info"> |
||||||
|
<h6 |
||||||
|
v-t="'Invitations'" |
||||||
|
class="invitations-info__title" |
||||||
|
/> |
||||||
|
|
||||||
|
<div |
||||||
|
v-if="event.resourceLinkListFromEntity.length" |
||||||
|
class="invitations-info__item" |
||||||
|
> |
||||||
|
<p v-t="'Invitees'" /> |
||||||
|
<div> |
||||||
|
<ShowLinks |
||||||
|
:item="event" |
||||||
|
:show-status="false" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
@ -0,0 +1,69 @@ |
|||||||
|
<script setup> |
||||||
|
import ShowLinks from "../resource_links/ShowLinks.vue" |
||||||
|
import { subscriptionVisibility } from "../../constants/entity/ccalendarevent" |
||||||
|
|
||||||
|
defineProps({ |
||||||
|
event: { |
||||||
|
type: Object, |
||||||
|
required: true, |
||||||
|
}, |
||||||
|
}) |
||||||
|
</script> |
||||||
|
|
||||||
|
<template> |
||||||
|
<div class="invitations-info"> |
||||||
|
<h6 |
||||||
|
v-t="'Subscriptions'" |
||||||
|
class="invitations-info__title" |
||||||
|
/> |
||||||
|
|
||||||
|
<div class="invitations-info__item"> |
||||||
|
<p v-t="'Allow subscriptions'" /> |
||||||
|
<p |
||||||
|
v-if="subscriptionVisibility.no === event.subscriptionVisibility" |
||||||
|
v-text="'No'" |
||||||
|
/> |
||||||
|
<p |
||||||
|
v-else-if="subscriptionVisibility.all === event.subscriptionVisibility" |
||||||
|
v-text="'All system users'" |
||||||
|
/> |
||||||
|
<p |
||||||
|
v-else-if="subscriptionVisibility.class === event.subscriptionVisibility" |
||||||
|
v-text="'Users inside the class'" |
||||||
|
/> |
||||||
|
<p |
||||||
|
v-if="subscriptionVisibility.class === event.subscriptionVisibility" |
||||||
|
v-text="event.subscriptionItemTitle" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div |
||||||
|
v-if="event.maxAttendees" |
||||||
|
class="invitations-info__item" |
||||||
|
> |
||||||
|
<p v-t="'Maximum number of subscriptions'" /> |
||||||
|
<p v-text="event.maxAttendees" /> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div |
||||||
|
v-if="event.maxAttendees" |
||||||
|
class="invitations-info__item" |
||||||
|
> |
||||||
|
<p v-t="'Subscriptions count'" /> |
||||||
|
<p v-text="event.resourceLinkListFromEntity.length" /> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div |
||||||
|
v-if="event.resourceLinkListFromEntity.length" |
||||||
|
class="invitations-info__item" |
||||||
|
> |
||||||
|
<p v-t="'Subscribers'" /> |
||||||
|
<div> |
||||||
|
<ShowLinks |
||||||
|
:item="event" |
||||||
|
:show-status="false" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
@ -0,0 +1,5 @@ |
|||||||
|
import { post } from "./baseService" |
||||||
|
|
||||||
|
export default { |
||||||
|
post, |
||||||
|
} |
Loading…
Reference in new issue