diff --git a/kudos-services/src/main/resources/locale/addon/Kudos_en.properties b/kudos-services/src/main/resources/locale/addon/Kudos_en.properties index 09254c73e..a415123df 100644 --- a/kudos-services/src/main/resources/locale/addon/Kudos_en.properties +++ b/kudos-services/src/main/resources/locale/addon/Kudos_en.properties @@ -29,6 +29,7 @@ exoplatform.kudos.audience.noDataLabel=No space found exoplatform.kudos.receiver.searchPlaceholder=Start typing to search exoplatform.kudos.receiver.placeholder=Add Receiver +exoplatform.kudos.choose.receiver.placeholder=Choose who will receive your Kudos exoplatform.kudos.receiver.noDataLabel=Not found exoplatform.kudos.receiver.noDataLabelInSpace=Not found in space @@ -82,4 +83,4 @@ kudos.label.button.ok=Yes kudos.label.button.cancel=Cancel kudos.label.cancelKudos=Cancel Kudos kudos.label.confirmCancelKudos=Do you confirm the cancellation of kudos? -kudos.cancel.error.alreadyLinked=You have received kudos after sending this kudos. You cannot cancel it. +kudos.cancel.error.alreadyLinked=You have received kudos after sending this kudos. You cannot cancel it. \ No newline at end of file diff --git a/kudos-services/src/main/resources/locale/addon/Kudos_fr.properties b/kudos-services/src/main/resources/locale/addon/Kudos_fr.properties index 806737d63..d88e11392 100644 --- a/kudos-services/src/main/resources/locale/addon/Kudos_fr.properties +++ b/kudos-services/src/main/resources/locale/addon/Kudos_fr.properties @@ -6,6 +6,7 @@ NewKudosSentActivityComment.activity_kudos_content={3} Kudos \u00E0 {1} {2} NewKudosSentActivityComment.activity_kudos_title=Kudos \u00E0 {0} exoplatform.kudos.title.sendAKudos=Envoyer un kudos +exoplatform.kudos.receiver.title=Le destinataire du Kudos exoplatform.kudos.content.to=\u00C0 : exoplatform.kudos.choose.audience=Choisir l'audience : exoplatform.kudos.title.message=Message : @@ -29,6 +30,7 @@ exoplatform.kudos.audience.noDataLabel=Aucun espace trouv\u00E9 exoplatform.kudos.receiver.searchPlaceholder=Commencez \u00E0 taper pour chercher exoplatform.kudos.receiver.placeholder=Ajouter un destinataire +exoplatform.kudos.choose.receiver.placeholder=Choisissez qui recevra vos Kudos exoplatform.kudos.receiver.noDataLabel=Non trouv\u00E9 exoplatform.kudos.receiver.noDataLabelInSpace=Non trouv\u00E9 dans l'espace @@ -82,4 +84,4 @@ kudos.label.button.ok=Oui kudos.label.button.cancel=Annuler kudos.label.cancelKudos=Annuler le Kudos kudos.label.confirmCancelKudos=Confirmez-vous l'annulation du kudos ? -kudos.cancel.error.alreadyLinked=Vous avez re\u00E7u des kudos apr\u00E8s avoir envoy\u00E9 ce kudos. Vous ne pouvez pas l'annuler. +kudos.cancel.error.alreadyLinked=Vous avez re\u00E7u des kudos apr\u00E8s avoir envoy\u00E9 ce kudos. Vous ne pouvez pas l'annuler. \ No newline at end of file diff --git a/kudos-webapps/src/main/webapp/vue-app/js/Kudos.js b/kudos-webapps/src/main/webapp/vue-app/js/Kudos.js index b958e9335..853f1dec8 100644 --- a/kudos-webapps/src/main/webapp/vue-app/js/Kudos.js +++ b/kudos-webapps/src/main/webapp/vue-app/js/Kudos.js @@ -219,6 +219,14 @@ export function registerOverviewExtension() { }); } +export function registerComposerExtension() { + extensionRegistry.registerComponent('ActivityComposerKudos', 'activity-composer-kudos-item', { + id: 'sendKudosButton', + vueComponent: Vue.options.components['send-kudos-composer'], + rank: 1, + }); +} + export function registerFavoriteExtensions(title) { extensionRegistry.registerExtension('ActivityFavoriteIcon', 'activity-favorite-icon-extensions', { id: 'favorite-kudos', diff --git a/kudos-webapps/src/main/webapp/vue-app/kudos/components/KudosAPI.vue b/kudos-webapps/src/main/webapp/vue-app/kudos/components/KudosAPI.vue index e4dcd134c..d7baf257b 100644 --- a/kudos-webapps/src/main/webapp/vue-app/kudos/components/KudosAPI.vue +++ b/kudos-webapps/src/main/webapp/vue-app/kudos/components/KudosAPI.vue @@ -7,6 +7,7 @@ export default { this.$kudosService.registerExternalExtensions(this.$t('exoplatform.kudos.title.sendAKudos')); this.$kudosService.registerFavoriteExtensions(this.$t('exoplatform.kudos.label.to')); this.$kudosService.registerOverviewExtension(); + this.$kudosService.registerComposerExtension(); this.$kudosService.registerActivityActionExtension(); this.$kudosService.registerActivityReactionTabs(); document.addEventListener('display-activity-details', this.getActivityInformations); diff --git a/kudos-webapps/src/main/webapp/vue-app/kudos/components/KudosApp.vue b/kudos-webapps/src/main/webapp/vue-app/kudos/components/KudosApp.vue index 9570d64ac..4b1c8c09d 100644 --- a/kudos-webapps/src/main/webapp/vue-app/kudos/components/KudosApp.vue +++ b/kudos-webapps/src/main/webapp/vue-app/kudos/components/KudosApp.vue @@ -27,11 +27,9 @@ ref="activityKudosForm" class="flex mx-4">
-
- {{ $t('exoplatform.kudos.content.to') }} -
+
+
+ {{ $t('exoplatform.kudos.receiver.title') }}
- + + + + + + + + + + + +
-
-
- {{ $t('exoplatform.kudos.choose.audience') }} +
+
+ {{ $t('exoplatform.kudos.content.to') }} +
+ +
+
-
- +
+
+ {{ $t('exoplatform.kudos.choose.audience') }} +
+
+ +
-
+
{{ $t('exoplatform.kudos.title.message') }}
@@ -168,7 +220,10 @@ export default { selectedReceiver: null, spaceURL: null, audience: '', - objectType: 'activity' + objectType: 'activity', + composerDisplay: false, + username: eXo.env.portal.userName, + spaceId: eXo.env.portal.spaceId, }; }, watch: { @@ -190,7 +245,9 @@ export default { if (selectedReceiver) { if (this.receiverId !== selectedReceiver.remoteId) { this.receiverId = selectedReceiver.remoteId; - this.displayAlert(this.$t('exoplatform.kudos.success.receiverChanged')); + if (!this.composerDisplay) { + this.displayAlert(this.$t('exoplatform.kudos.success.receiverChanged')); + } } } }, @@ -212,7 +269,7 @@ export default { computed: { searchOptions() { return { - currentUser: eXo.env.portal.userName, + currentUser: this.username, spaceURL: this.spaceURL, activityId: this.entityId }; @@ -227,7 +284,7 @@ export default { receiverSuggesterLabels() { return { searchPlaceholder: this.$t('exoplatform.kudos.receiver.searchPlaceholder'), - placeholder: this.$t('exoplatform.kudos.receiver.placeholder'), + placeholder: this.composerDisplay ? this.$t('exoplatform.kudos.choose.receiver.placeholder') : this.$t('exoplatform.kudos.receiver.placeholder'), noDataLabel: this.spaceURL ? this.$t('exoplatform.kudos.receiver.noDataLabelInSpace') : this.$t('exoplatform.kudos.receiver.noDataLabel'), }; }, @@ -329,7 +386,7 @@ export default { .then(receiverDetails => { if (receiverDetails && receiverDetails.id && receiverDetails.type) { receiverDetails.isUserType = receiverDetails.type === 'organization' || receiverDetails.type === 'user'; - if (!receiverDetails.isUserType || receiverDetails.id !== eXo.env.portal.userName) { + if (!receiverDetails.isUserType || receiverDetails.id !== this.username) { if (this.isLinkedKudos) { this.selectedReceiver = { receiverId: receiverDetails.id, @@ -410,7 +467,7 @@ export default { if ( this.remainingKudos > 0 ) { this.loading = true; this.$nextTick(() => { - + this.composerDisplay = event?.detail?.composerDisplay; this.entityType = event && event.detail && event.detail.type; this.entityId = event && event.detail && event.detail.id; this.metadataObjectId = null; @@ -445,10 +502,10 @@ export default { entityType: this.entityType, entityId: this.entityId, parentEntityId: this.parentEntityId, - receiverType: this.receiverType, - receiverId: this.receiverId, + receiverType: this.composerDisplay ? 'user' : this.receiverType, + receiverId: this.composerDisplay ? this.selectedReceiver.remoteId : this.receiverId, message: this.kudosMessage, - spacePrettyName: this.audience?.remoteId + spacePrettyName: this.composerDisplay ? this.spaceId : this.audience?.remoteId }; sendKudos(kudos) .then(kudosSent => { diff --git a/kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosComposer.vue b/kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosComposer.vue new file mode 100644 index 000000000..f986264e6 --- /dev/null +++ b/kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosComposer.vue @@ -0,0 +1,37 @@ + + \ No newline at end of file diff --git a/kudos-webapps/src/main/webapp/vue-app/kudos/initComponents.js b/kudos-webapps/src/main/webapp/vue-app/kudos/initComponents.js index bef708b15..caca834ec 100644 --- a/kudos-webapps/src/main/webapp/vue-app/kudos/initComponents.js +++ b/kudos-webapps/src/main/webapp/vue-app/kudos/initComponents.js @@ -2,6 +2,7 @@ import KudosIdentityLink from './components/KudosIdentityLink.vue'; import KudosAPI from './components/KudosAPI.vue'; import KudosApp from './components/KudosApp.vue'; import KudosButton from '../kudos/components/KudosButton.vue'; +import SendKudosComposer from '../kudos/components/SendKudosComposer.vue'; import PopoverKudosButton from '../kudos/components/PopoverKudosButton.vue'; import ActivityKudosReactionItem from './components/ActivityKudosReactionItem.vue'; import ActivityKudosReactionList from './components/ActivityKudosReactionList.vue'; @@ -26,6 +27,7 @@ const components = { 'activity-kudos-reaction-count': ActivityKudosReactionCount, 'kudos-overview': KudosOverview, 'kudos-overview-card': KudosOverviewCard, + 'send-kudos-composer': SendKudosComposer, }; for (const key in components) {