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 9ba78ded7..d042c8ae1 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 06e1a1185..4a6937821 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 @@ -72,15 +72,18 @@ {{ $t('exoplatform.kudos.title.message') }}
-
@@ -147,6 +150,7 @@ export default { entityOwner: '', receiverType: null, receiverId: null, + metadataObjectId: null, error: null, drawer: false, MESSAGE_MAX_LENGTH: 1300, @@ -275,7 +279,10 @@ export default { }, typeOfRelation() { return this.isLinkedKudos ? 'mention_comment' : 'mention_activity_stream'; - } + }, + ckEditorType() { + return this.isLinkedKudos ? 'activityComment' : 'activityContent'; + }, }, methods: { init() { @@ -304,7 +311,7 @@ export default { resetEditor() { this.$refs[this.ckEditorId].destroyCKEditor(); }, - initDrawer () { + initDrawer() { this.kudosMessage = ''; this.kudosToSend = null; this.error = null; @@ -401,18 +408,20 @@ export default { 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 { @@ -441,7 +450,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);