From 2953211de0b216812b09a1394b1c1b64b9ec5f09 Mon Sep 17 00:00:00 2001 From: MayTekayaa <100131287+MayTekayaa@users.noreply.github.com> Date: Fri, 8 Sep 2023 12:07:38 +0100 Subject: [PATCH 01/17] feat: Add the ability to send a kudos from the composer - MEED-2071 - Meeds-io/MIPs#54 (#338) This change will add the ability to send a kudos from the composer . --- .../locale/addon/Kudos_en.properties | 1 + .../locale/addon/Kudos_fr.properties | 1 + .../src/main/webapp/vue-app/js/Kudos.js | 8 ++ .../vue-app/kudos/components/KudosAPI.vue | 1 + .../vue-app/kudos/components/KudosApp.vue | 95 +++++++++++++++---- .../kudos/components/SendKudosComposer.vue | 36 +++++++ .../webapp/vue-app/kudos/initComponents.js | 2 + 7 files changed, 125 insertions(+), 19 deletions(-) create mode 100644 kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosComposer.vue 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 a30947822..2d563adb2 100644 --- a/kudos-services/src/main/resources/locale/addon/Kudos_en.properties +++ b/kudos-services/src/main/resources/locale/addon/Kudos_en.properties @@ -31,6 +31,7 @@ exoplatform.kudos.receiver.searchPlaceholder=Start typing to search exoplatform.kudos.receiver.placeholder=Add Receiver exoplatform.kudos.receiver.noDataLabel=Not found exoplatform.kudos.receiver.noDataLabelInSpace=Not found in space +exoplatform.kudos.receiver.title=Kudos Receiver exoplatform.kudos.error.errorSavingKudosSettings=Error saving Kudos settings. Please try again. If the problem remains, please contact your administrator exoplatform.kudos.error.errorSendingKudos=Error sending kudos. Please try again. If the problem remains, please contact your administrator 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 96c8a6f9e..a9e2c5e3f 100644 --- a/kudos-services/src/main/resources/locale/addon/Kudos_fr.properties +++ b/kudos-services/src/main/resources/locale/addon/Kudos_fr.properties @@ -31,6 +31,7 @@ exoplatform.kudos.receiver.searchPlaceholder=Commencez \u00E0 taper pour cherche exoplatform.kudos.receiver.placeholder=Ajouter un destinataire exoplatform.kudos.receiver.noDataLabel=Non trouv\u00E9 exoplatform.kudos.receiver.noDataLabelInSpace=Non trouv\u00E9 dans l'espace +exoplatform.kudos.receiver.title=Le destinataire du Kudos exoplatform.kudos.error.errorSavingKudosSettings=Erreur lors de l'enregistrement des param\u00E8tres Kudos. Essayez \u00E0 nouveau. Si le probl\u00E8me persiste, veuillez contacter votre administrateur exoplatform.kudos.error.errorSendingKudos=Erreur lors de l'envoi du kudos. Essayez \u00E0 nouveau et si le probl\u00E8me persiste, veuillez contacter votre administrateur 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..991d58ad8 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('ComposerAction', 'composer-action-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 06e1a1185..b43bfe2b0 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 @@ -26,11 +26,9 @@ ref="activityKudosForm" class="flex mx-4">
-
- {{ $t('exoplatform.kudos.content.to') }} -
+
+
+ {{ $t('exoplatform.kudos.receiver.title') }}
-
-
+
+
+ {{ $t('exoplatform.kudos.content.to') }} +
+ +
+ +
+
+
{{ $t('exoplatform.kudos.choose.audience') }}
@@ -69,7 +87,41 @@
- {{ $t('exoplatform.kudos.title.message') }} + + + + + + + + + + + + + {{ $t('exoplatform.kudos.title.message') }}
{ 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, @@ -398,7 +455,7 @@ export default { if ( this.remainingKudos > 0 ) { this.loading = true; this.$nextTick(() => { - + this.readOnlySpace = event?.detail?.readOnlySpace; this.entityType = event && event.detail && event.detail.type; this.entityId = event && event.detail && event.detail.id; this.entityOwner = event && event.detail && event.detail.owner; @@ -434,7 +491,7 @@ export default { receiverType: this.receiverType, receiverId: this.receiverId, message: this.kudosMessage, - spacePrettyName: this.audience?.remoteId + spacePrettyName: this.audience?.remoteId || this.spaceId }; 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..c4836033d --- /dev/null +++ b/kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosComposer.vue @@ -0,0 +1,36 @@ + + \ 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) { From 07c6aa01e18800e2ebfd99cbcecdae833c31f393 Mon Sep 17 00:00:00 2001 From: MayTekayaa <100131287+MayTekayaa@users.noreply.github.com> Date: Fri, 8 Sep 2023 12:52:47 +0100 Subject: [PATCH 02/17] feat: Add CTAs below the post CTA - MEED-2072 - Meeds-io/MIPs#54 (#339) This fix will change the display of the send kudos action used in the composer. --- .../locale/addon/Kudos_en.properties | 1 + .../locale/addon/Kudos_fr.properties | 1 + .../src/main/webapp/vue-app/js/Kudos.js | 5 +++ .../kudos/components/SendKudosComposer.vue | 29 +++++++---------- .../components/SendKudosToolbarAction.vue | 32 +++++++++++++++++++ .../webapp/vue-app/kudos/initComponents.js | 2 ++ 6 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosToolbarAction.vue 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 2d563adb2..57621d2ed 100644 --- a/kudos-services/src/main/resources/locale/addon/Kudos_en.properties +++ b/kudos-services/src/main/resources/locale/addon/Kudos_en.properties @@ -5,6 +5,7 @@ NewKudosSentActivityComment.activity_kudos= - - - - fa-award - - - +
+ + fa-award + + {{ $t('exoplatform.kudos.title.sendAKudos') }} - - + +
\ 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 caca834ec..6f6b4be8c 100644 --- a/kudos-webapps/src/main/webapp/vue-app/kudos/initComponents.js +++ b/kudos-webapps/src/main/webapp/vue-app/kudos/initComponents.js @@ -3,6 +3,7 @@ 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 SendKudosToolbarAction from '../kudos/components/SendKudosToolbarAction.vue'; import PopoverKudosButton from '../kudos/components/PopoverKudosButton.vue'; import ActivityKudosReactionItem from './components/ActivityKudosReactionItem.vue'; import ActivityKudosReactionList from './components/ActivityKudosReactionList.vue'; @@ -28,6 +29,7 @@ const components = { 'kudos-overview': KudosOverview, 'kudos-overview-card': KudosOverviewCard, 'send-kudos-composer': SendKudosComposer, + 'send-kudos-toolbar-action': SendKudosToolbarAction, }; for (const key in components) { From fe5cce32f208596268c8e791d09c963a498d98bb Mon Sep 17 00:00:00 2001 From: MayTekayaa <100131287+MayTekayaa@users.noreply.github.com> Date: Fri, 8 Sep 2023 14:41:47 +0100 Subject: [PATCH 03/17] feat: Disable send kudos button when no receiver has been added - MEED-2418 - Meeds-io/MIPs#54 (#340) This change will disable the send kudos button when no receiver has been added. --- .../src/main/webapp/vue-app/kudos/components/KudosApp.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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 b43bfe2b0..a3b769988 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 @@ -36,6 +36,7 @@ :labels="receiverSuggesterLabels" :search-options="searchOptions" :type-of-relations="typeOfRelation" + :autofocus="readOnlySpace" include-users name="kudosReceiver" width="220" @@ -133,8 +134,8 @@ :placeholder="$t('exoplatform.kudos.label.kudosMessagePlaceholder')" :suggestor-type-of-relation="typeOfRelation" :suggester-space-u-r-l="spaceURL" - class="flex" - autofocus /> + :autofocus="!readOnlySpace" + class="flex" />
@@ -298,7 +299,7 @@ export default { return this.numberOfKudosAllowed - this.remainingKudos; }, sendButtonDisabled() { - return !this.kudosMessageText|| this.kudosMessageTextLength > this.MESSAGE_MAX_LENGTH || this.kudosMessageValidityLabel ; + return !this.kudosMessageText|| this.kudosMessageTextLength > this.MESSAGE_MAX_LENGTH || this.kudosMessageValidityLabel || !this.selectedReceiver; }, remainingPeriodLabel() { return this.remainingDaysToReset === 1 ? this.$t('exoplatform.kudos.label.day') : this.$t('exoplatform.kudos.label.days') ; From 7155aea1e35a3112b2724913d3da773f4514e7a4 Mon Sep 17 00:00:00 2001 From: MayTekayaa <100131287+MayTekayaa@users.noreply.github.com> Date: Wed, 6 Sep 2023 15:23:10 +0100 Subject: [PATCH 04/17] fix: Improve the toolbar post CTA - MEED-2401 - Meeds-io/MIPs#54 (#336) This change will adjust the composer send kudos button. --- .../webapp/vue-app/kudos/components/SendKudosToolbarAction.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosToolbarAction.vue b/kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosToolbarAction.vue index 662013863..80b9dfc15 100644 --- a/kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosToolbarAction.vue +++ b/kudos-webapps/src/main/webapp/vue-app/kudos/components/SendKudosToolbarAction.vue @@ -1,7 +1,8 @@