diff options
author | Joas Schilling <coding@schilljs.com> | 2022-09-14 21:54:36 +0300 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2022-09-14 22:09:39 +0300 |
commit | ddc6782d31300dd170335c3cbf58016d1a9cabc0 (patch) | |
tree | b6e166c752f2584b3cf1623fa27663082c5910f9 | |
parent | 834260c34d000e9f11d7d52ccac135e9d600da20 (diff) |
Show polls in own section of shared itemsbugfix/noid/show-polls-shared-items
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r-- | src/components/RightSidebar/SharedItems/SharedItems.vue | 26 | ||||
-rw-r--r-- | src/components/RightSidebar/SharedItems/SharedItemsTab.vue | 10 | ||||
-rw-r--r-- | src/constants.js | 1 | ||||
-rw-r--r-- | src/mixins/sharedItems.js | 4 | ||||
-rw-r--r-- | src/store/sharedItemsStore.js | 2 |
5 files changed, 34 insertions, 9 deletions
diff --git a/src/components/RightSidebar/SharedItems/SharedItems.vue b/src/components/RightSidebar/SharedItems/SharedItems.vue index ffc1a147a..5fa632d4f 100644 --- a/src/components/RightSidebar/SharedItems/SharedItems.vue +++ b/src/components/RightSidebar/SharedItems/SharedItems.vue @@ -32,10 +32,18 @@ <div v-else-if="type === 'deckcard'" :key="item.id" class="shared-items__deckcard" - :class="{ 'shared-items__location--nolimit': limit === 0 }"> + :class="{ 'shared-items__deckcard--nolimit': limit === 0 }"> <DeckCard :wide="true" v-bind="item.messageParameters.object" /> </div> + <div v-else-if="type === 'poll'" + :key="item.id" + class="shared-items__poll" + :class="{ 'shared-items__poll--nolimit': limit === 0 }"> + <Poll v-bind="item.messageParameters.object" + :token="$store.getters.getToken()" + :poll-name="item.messageParameters.object.name" /> + </div> <template v-else-if="type === 'other'"> <div :key="item.id" class="shared-items__other"> @@ -60,18 +68,20 @@ </template> <script> +import DeckCard from '../../MessagesList/MessagesGroup/Message/MessagePart/DeckCard.vue' import FilePreview from '../../MessagesList/MessagesGroup/Message/MessagePart/FilePreview.vue' -import { SHARED_ITEM } from '../../../constants.js' import Location from '../../MessagesList/MessagesGroup/Message/MessagePart/Location.vue' -import DeckCard from '../../MessagesList/MessagesGroup/Message/MessagePart/DeckCard.vue' +import Poll from '../../MessagesList/MessagesGroup/Message/MessagePart/Poll.vue' +import { SHARED_ITEM } from '../../../constants.js' export default { name: 'SharedItems', components: { + DeckCard, FilePreview, Location, - DeckCard, + Poll, }, props: { @@ -119,10 +129,12 @@ export default { grid-template-rows: 1fr 1fr; grid-gap: 4px; margin: auto; + &__list { display: flex; flex-wrap: wrap; } + &__location { width: 100%; height: 150px; @@ -132,8 +144,14 @@ export default { width: 33%; } } + + &__poll, &__deckcard { width: 100%; + + &--nolimit { + width: 33%; + } } &__other { diff --git a/src/components/RightSidebar/SharedItems/SharedItemsTab.vue b/src/components/RightSidebar/SharedItems/SharedItemsTab.vue index 0ba4bcfe8..9477f9185 100644 --- a/src/components/RightSidebar/SharedItems/SharedItemsTab.vue +++ b/src/components/RightSidebar/SharedItems/SharedItemsTab.vue @@ -27,7 +27,7 @@ <SharedItems :type="type" :limit="limit(type)" :items="sharedItems[type]" /> - <NcButton v-if="hasMore(sharedItems[type])" + <NcButton v-if="hasMore(type, sharedItems[type])" type="tertiary-no-background" class="more" :wide="true" @@ -146,8 +146,8 @@ export default { this.$store.dispatch('getSharedItemsOverview', { token: this.token }) }, - hasMore(items) { - return Object.values(items).length > 6 + hasMore(type, items) { + return Object.values(items).length > this.limit(type) }, showMore(type) { @@ -156,7 +156,7 @@ export default { }, limit(type) { - if (type === SHARED_ITEM.TYPES.DECK_CARD || type === SHARED_ITEM.TYPES.LOCATION) { + if (type === SHARED_ITEM.TYPES.DECK_CARD || type === SHARED_ITEM.TYPES.LOCATION || type === SHARED_ITEM.TYPES.POLL) { return 2 } else { return 6 @@ -169,6 +169,8 @@ export default { return t('spreed', 'Show all media') case SHARED_ITEM.TYPES.FILE: return t('spreed', 'Show all files') + case SHARED_ITEM.TYPES.POLL: + return t('spreed', 'Show all polls') case SHARED_ITEM.TYPES.DECK_CARD: return t('spreed', 'Show all deck cards') case SHARED_ITEM.TYPES.VOICE: diff --git a/src/constants.js b/src/constants.js index 09ec679ab..bacf04c7d 100644 --- a/src/constants.js +++ b/src/constants.js @@ -113,6 +113,7 @@ export const SHARED_ITEM = { LOCATION: 'location', MEDIA: 'media', OTHER: 'other', + POLL: 'poll', VOICE: 'voice', }, } diff --git a/src/mixins/sharedItems.js b/src/mixins/sharedItems.js index bf8772caa..93db849ed 100644 --- a/src/mixins/sharedItems.js +++ b/src/mixins/sharedItems.js @@ -26,7 +26,7 @@ const sharedItems = { computed: { // Defines the order of the sections sharedItemsOrder() { - return [SHARED_ITEM.TYPES.MEDIA, SHARED_ITEM.TYPES.FILE, SHARED_ITEM.TYPES.VOICE, SHARED_ITEM.TYPES.AUDIO, SHARED_ITEM.TYPES.LOCATION, SHARED_ITEM.TYPES.DECK_CARD, SHARED_ITEM.TYPES.OTHER] + return [SHARED_ITEM.TYPES.MEDIA, SHARED_ITEM.TYPES.FILE, SHARED_ITEM.TYPES.POLL, SHARED_ITEM.TYPES.VOICE, SHARED_ITEM.TYPES.AUDIO, SHARED_ITEM.TYPES.LOCATION, SHARED_ITEM.TYPES.DECK_CARD, SHARED_ITEM.TYPES.OTHER] }, }, @@ -37,6 +37,8 @@ const sharedItems = { return t('spreed', 'Media') case SHARED_ITEM.TYPES.FILE: return t('spreed', 'Files') + case SHARED_ITEM.TYPES.POLL: + return t('spreed', 'Polls') case SHARED_ITEM.TYPES.DECK_CARD: return t('spreed', 'Deck cards') case SHARED_ITEM.TYPES.VOICE: diff --git a/src/store/sharedItemsStore.js b/src/store/sharedItemsStore.js index f1f903d35..8e1d1c6b7 100644 --- a/src/store/sharedItemsStore.js +++ b/src/store/sharedItemsStore.js @@ -30,6 +30,8 @@ const getItemTypeFromMessage = function(message) { return SHARED_ITEM.TYPES.LOCATION } else if (message.messageParameters.object.type === 'deck-card') { return SHARED_ITEM.TYPES.DECK_CARD + } else if (message.messageParameters.object.type === 'talk-poll') { + return SHARED_ITEM.TYPES.POLL } else { return SHARED_ITEM.TYPES.OTHER } |