diff options
| author | Tusooa Zhu <tusooa@kazv.moe> | 2022-03-17 15:07:04 -0400 |
|---|---|---|
| committer | tusooa <tusooa@kazv.moe> | 2022-11-24 18:27:14 -0500 |
| commit | e877fedb0e60e795bd5c6aa3e706c64f12746c66 (patch) | |
| tree | b5cc74979ead76afaf6f917a8179bd91dbf4eb30 /src/components | |
| parent | efb76dcb038eebca5255398ee2ae994dac9c5e95 (diff) | |
Implement deleting announcement
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/announcement/announcement.js | 7 | ||||
| -rw-r--r-- | src/components/announcement/announcement.vue | 18 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/components/announcement/announcement.js b/src/components/announcement/announcement.js index 9e043e48..b1f5ee77 100644 --- a/src/components/announcement/announcement.js +++ b/src/components/announcement/announcement.js @@ -1,9 +1,13 @@ +import { mapState } from 'vuex' const Announcement = { props: { announcement: Object }, computed: { + ...mapState({ + currentUser: state => state.users.currentUser + }), content () { return this.announcement.content }, @@ -16,6 +20,9 @@ const Announcement = { if (!this.isRead) { return this.$store.dispatch('markAnnouncementAsRead', this.announcement.id) } + }, + deleteAnnouncement () { + return this.$store.dispatch('deleteAnnouncement', this.announcement.id) } } } diff --git a/src/components/announcement/announcement.vue b/src/components/announcement/announcement.vue index d8591468..d6f35b9f 100644 --- a/src/components/announcement/announcement.vue +++ b/src/components/announcement/announcement.vue @@ -12,12 +12,20 @@ </div> <div class="footer"> <button + v-if="currentUser" class="btn button-default" :class="{ toggled: isRead }" @click="markAsRead" > {{ $t('announcements.mark_as_read_action') }} </button> + <button + v-if="currentUser && currentUser.role === 'admin'" + class="btn button-default" + @click="deleteAnnouncement" + > + {{ $t('announcements.delete_action') }} + </button> </div> </div> </template> @@ -37,5 +45,15 @@ .heading, .body { margin-bottom: var(--status-margin, $status-margin); } + + .footer { + display: flex; + flex-direction: row; + justify-content: space-around; + + .btn { + min-width: 10em; + } + } } </style> |
