diff options
author | DorraJaouad <dorra.jaoued7@gmail.com> | 2024-01-26 21:47:28 +0100 |
---|---|---|
committer | DorraJaouad <dorra.jaoued7@gmail.com> | 2024-01-30 11:27:10 +0100 |
commit | f69f70ce29a60dfe39a7935b28e1b661bcdb9e9d (patch) | |
tree | dc71f30c08493d36aac0c6ce9d01b4b5bda16ddf | |
parent | 2d5963792f3bcdd5a4fdcbdb64834aab93985c75 (diff) |
Handle capabilities and mention editing and change edit timestamp design
Signed-off-by: DorraJaouad <dorra.jaoued7@gmail.com>
-rw-r--r-- | src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue | 27 | ||||
-rw-r--r-- | src/components/NewMessage/NewMessage.vue | 12 |
2 files changed, 24 insertions, 15 deletions
diff --git a/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue b/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue index 5a0a75147..e71b65a0e 100644 --- a/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue +++ b/src/components/MessagesList/MessagesGroup/Message/MessageButtonsBar/MessageButtonsBar.vue @@ -66,17 +66,13 @@ {{ messageDateTime }} </NcActionText> <!-- Edited message timestamp --> - <NcActionButtonGroup v-if="lastEditTimestamp"> - <NcActionText> - <template #icon> - <ClockEditOutline :size="16" /> - </template> - {{ lastEditActorDisplayName }} - </NcActionText> - <NcActionText> - {{ editedDateTime }} - </NcActionText> - </NcActionButtonGroup> + <NcActionText v-if="lastEditTimestamp" + :name="lastEditActorDisplayName"> + <template #icon> + <ClockEditOutline :size="16" /> + </template> + {{ editedDateTime }} + </NcActionText> <NcActionSeparator /> <NcActionButton v-if="supportReminders" @@ -297,7 +293,6 @@ import { showError, showSuccess } from '@nextcloud/dialogs' import moment from '@nextcloud/moment' import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js' -import NcActionButtonGroup from '@nextcloud/vue/dist/Components/NcActionButtonGroup.js' import NcActionInput from '@nextcloud/vue/dist/Components/NcActionInput.js' import NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js' import NcActions from '@nextcloud/vue/dist/Components/NcActions.js' @@ -314,12 +309,13 @@ import { useReactionsStore } from '../../../../../stores/reactions.js' const EmojiIndex = new EmojiIndexFactory(data) const supportReminders = getCapabilities()?.spreed?.features?.includes('remind-me-later') +const canEditMessage = getCapabilities()?.spreed?.features?.includes('edit-messages') +const canDeleteMessageUnlimited = getCapabilities()?.spreed?.features?.includes('delete-messages-unlimited') export default { name: 'MessageButtonsBar', components: { - NcActionButtonGroup, NcActionButton, NcActionInput, NcActionLink, @@ -518,7 +514,7 @@ export default { }, isEditable() { - if (!this.isModifiable || this.isObjectShare + if (!canEditMessage || !this.isModifiable || this.isObjectShare || (!this.$store.getters.isModerator && !this.isMyMsg)) { return false } @@ -531,7 +527,8 @@ export default { return false } - return (moment(this.timestamp * 1000).add(6, 'h')) > moment() + return ((moment(this.timestamp * 1000).add(6, 'h')) > moment() + || canDeleteMessageUnlimited) && (this.messageType === 'comment' || this.messageType === 'voice-message') && !this.isDeleting && (this.isMyMsg diff --git a/src/components/NewMessage/NewMessage.vue b/src/components/NewMessage/NewMessage.vue index d1e4afda9..0ed1550ec 100644 --- a/src/components/NewMessage/NewMessage.vue +++ b/src/components/NewMessage/NewMessage.vue @@ -87,6 +87,10 @@ :can-cancel="!!parentMessage" :edit-message="!!messageToEdit" /> </div> + <!-- mention editing hint --> + <NcNoteCard v-if="showMentionEditHint" type="warning"> + <p>{{ t('spreed','Adding a mention will only notify users who did not read the message.') }}</p> + </NcNoteCard> <NcRichContenteditable ref="richContenteditable" v-shortkey.once="$options.disableKeyboardShortcuts ? null : ['c']" :value.sync="text" @@ -194,6 +198,7 @@ import EmoticonOutline from 'vue-material-design-icons/EmoticonOutline.vue' import Send from 'vue-material-design-icons/Send.vue' import { getCapabilities } from '@nextcloud/capabilities' +import { showError } from '@nextcloud/dialogs' import { FilePickerVue } from '@nextcloud/dialogs/filepicker.js' import { generateOcsUrl } from '@nextcloud/router' @@ -201,6 +206,7 @@ import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js' import NcActions from '@nextcloud/vue/dist/Components/NcActions.js' import NcButton from '@nextcloud/vue/dist/Components/NcButton.js' import NcEmojiPicker from '@nextcloud/vue/dist/Components/NcEmojiPicker.js' +import NcNoteCard from '@nextcloud/vue/dist/Components/NcNoteCard.js' import NcRichContenteditable from '@nextcloud/vue/dist/Components/NcRichContenteditable.js' import NewMessageAbsenceInfo from './NewMessageAbsenceInfo.vue' @@ -235,6 +241,7 @@ export default { NcActions, NcButton, NcEmojiPicker, + NcNoteCard, NcRichContenteditable, NewMessageAbsenceInfo, NewMessageAttachments, @@ -452,6 +459,10 @@ export default { chatEditInput() { return this.chatExtrasStore.getChatEditInput(this.token) }, + + showMentionEditHint() { + return this.chatEditInput?.includes('@') + }, }, watch: { @@ -689,6 +700,7 @@ export default { this.chatExtrasStore.removeMessageIdToEdit(this.token) } catch { this.$emit('failure') + showError(t('spreed', 'The message could not be edited')) } }, |