diff --git a/kudos-services/src/main/java/org/exoplatform/kudos/listener/KudosActivityListener.java b/kudos-services/src/main/java/org/exoplatform/kudos/listener/KudosActivityListener.java index bb775e164..35aecc582 100644 --- a/kudos-services/src/main/java/org/exoplatform/kudos/listener/KudosActivityListener.java +++ b/kudos-services/src/main/java/org/exoplatform/kudos/listener/KudosActivityListener.java @@ -2,6 +2,8 @@ import static org.exoplatform.kudos.service.utils.Utils.KUDOS_ACTIVITY_COMMENT_TYPE; +import org.apache.commons.lang.StringUtils; + import org.exoplatform.commons.exception.ObjectNotFoundException; import org.exoplatform.kudos.model.Kudos; import org.exoplatform.kudos.service.KudosService; @@ -39,7 +41,7 @@ public void saveActivity(ActivityLifeCycleEvent activityLifeCycleEvent) { @Override public void updateActivity(ActivityLifeCycleEvent activityLifeCycleEvent) { ExoSocialActivity activity = activityLifeCycleEvent.getSource(); - if (activity.getType().equals(KUDOS_ACTIVITY_COMMENT_TYPE)) { + if (activity != null && StringUtils.equals(activity.getType(), KUDOS_ACTIVITY_COMMENT_TYPE)) { long activityId = org.exoplatform.kudos.service.utils.Utils.getActivityId(activity.getId()); Kudos kudos = kudosService.getKudosByActivityId(activityId); if (kudos != null) { diff --git a/kudos-services/src/main/java/org/exoplatform/kudos/service/KudosService.java b/kudos-services/src/main/java/org/exoplatform/kudos/service/KudosService.java index 6c99aa6ab..7b38185b8 100644 --- a/kudos-services/src/main/java/org/exoplatform/kudos/service/KudosService.java +++ b/kudos-services/src/main/java/org/exoplatform/kudos/service/KudosService.java @@ -209,7 +209,7 @@ public Kudos createKudos(Kudos kudos, String currentUser) throws Exception { listenerService.broadcast(KUDOS_SENT_EVENT, this, createdKudos); - return createdKudos; + return kudosStorage.getKudoById(createdKudos.getTechnicalId()); } /** diff --git a/kudos-webapps/src/main/webapp/WEB-INF/gatein-resources.xml b/kudos-webapps/src/main/webapp/WEB-INF/gatein-resources.xml index 21c7d2955..e93198325 100644 --- a/kudos-webapps/src/main/webapp/WEB-INF/gatein-resources.xml +++ b/kudos-webapps/src/main/webapp/WEB-INF/gatein-resources.xml @@ -119,6 +119,9 @@ extensionRegistry + + attachImage + 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 3c1bffe6b..9c33ca966 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 @@ -177,11 +177,15 @@ :key="spaceURL" v-model="kudosMessage" :max-length="MESSAGE_MAX_LENGTH" - :ck-editor-type="ckEditorId" + :ck-editor-type="ckEditorType" + :ck-editor-id="ckEditorId" :placeholder="$t('exoplatform.kudos.label.kudosMessagePlaceholder')" :suggestor-type-of-relation="typeOfRelation" :suggester-space-u-r-l="spaceURL" - class="flex" /> + :object-id="metadataObjectId" + object-type="activity" + class="flex" + autofocus />
@@ -246,6 +250,7 @@ export default { entityOwner: '', receiverType: null, receiverId: null, + metadataObjectId: null, error: null, drawer: false, MESSAGE_MAX_LENGTH: 1300, @@ -388,6 +393,10 @@ export default { typeOfRelation() { return this.isLinkedKudos ? 'mention_comment' : 'mention_activity_stream'; }, + ckEditorType() { + return this.isLinkedKudos ? 'activityComment' : 'activityContent'; + }, + }, postInYourSpacesChoice() { return this.audienceChoice === 'oneOfYourSpaces'; }, @@ -434,7 +443,7 @@ export default { resetEditor() { this.$refs[this.ckEditorId].destroyCKEditor(); }, - initDrawer () { + initDrawer() { this.kudosMessage = ''; this.kudosToSend = null; this.error = null; @@ -533,18 +542,20 @@ export default { this.readOnlySpace = event?.detail?.readOnlySpace; this.entityType = event && event.detail && event.detail.type; this.entityId = event && event.detail && event.detail.id; + this.metadataObjectId = null; this.entityOwner = event && event.detail && event.detail.owner; this.parentEntityId = event && event.detail && event.detail.parentId; this.ignoreRefresh = event && event.detail && event.detail.ignoreRefresh; this.spaceURL = event && event.detail && event.detail.spaceURL || null; this.$refs.activityKudosDrawer.open(); this.$refs.activityKudosDrawer.startLoading(); - this.initDrawer().then(() => { - this.$refs[this.ckEditorId].initCKEditor(); - }).finally( () => { - this.loading = false; - this.$refs.activityKudosDrawer.endLoading(); - }); + this.initDrawer() + .then(() => this.$nextTick()) + .then(() => this.$refs[this.ckEditorId].initCKEditor()) + .finally( () => { + this.loading = false; + this.$refs.activityKudosDrawer.endLoading(); + }); }); } else { @@ -573,7 +584,12 @@ export default { if (!kudosSent) { throw new Error(this.$t('exoplatform.kudos.error.errorSendingKudos')); } + this.metadataObjectId = this.isLinkedKudos && `comment${kudosSent.activityId}` || `${kudosSent.activityId}`; document.dispatchEvent(new CustomEvent('exo-kudos-sent', {detail: kudosSent})); + return this.$nextTick(); + }) + .then(() => this.$refs[this.ckEditorId].saveAttachments()) + .then(() => { return this.init() .catch(e => { console.error('Error refreshing allowed number of kudos for current user', e);