diff --git a/frontend/src/components/Activities.vue b/frontend/src/components/Activities.vue
index 3bf06991..8df55c2d 100644
--- a/frontend/src/components/Activities.vue
+++ b/frontend/src/components/Activities.vue
@@ -442,7 +442,7 @@
'outgoing_call',
].includes(activity.activity_type),
'bg-white': ['added', 'removed', 'changed'].includes(
- activity.activity_type
+ activity.activity_type,
),
}"
>
@@ -528,7 +528,10 @@
{{ activity.data.bcc }}
-
+
{
},
]
return actions.filter((action) =>
- action.condition ? action.condition() : true
+ action.condition ? action.condition() : true,
)
})
@@ -1120,12 +1123,12 @@ const activities = computed(() => {
} else if (props.title == 'Emails') {
if (!all_activities.data?.versions) return []
activities = all_activities.data.versions.filter(
- (activity) => activity.activity_type === 'communication'
+ (activity) => activity.activity_type === 'communication',
)
} else if (props.title == 'Comments') {
if (!all_activities.data?.versions) return []
activities = all_activities.data.versions.filter(
- (activity) => activity.activity_type === 'comment'
+ (activity) => activity.activity_type === 'comment',
)
} else if (props.title == 'Calls') {
if (!all_activities.data?.calls) return []
@@ -1338,12 +1341,15 @@ function reply(email, reply_all = false) {
editor.bccEmails = bcc
}
+ let repliedMessage = `${message}
`
+
editor.editor
.chain()
.clearContent()
- .insertContent(message)
+ .insertContent('.
')
+ .updateAttributes('paragraph', {class:'reply-to-content'})
+ .insertContent(repliedMessage)
.focus('all')
- .setBlockquote()
.insertContentAt(0, { type: 'paragraph' })
.focus('start')
.run()
diff --git a/frontend/src/components/EmailEditor.vue b/frontend/src/components/EmailEditor.vue
index d7f88179..2398aba5 100644
--- a/frontend/src/components/EmailEditor.vue
+++ b/frontend/src/components/EmailEditor.vue
@@ -1,12 +1,20 @@
@@ -25,13 +33,17 @@
:label="__('CC')"
variant="ghost"
@click="toggleCC()"
- :class="[cc ? '!bg-gray-300 hover:bg-gray-200' : '!text-gray-500']"
+ :class="[
+ cc ? '!bg-gray-300 hover:bg-gray-200' : '!text-gray-500',
+ ]"
/>
@@ -164,6 +176,7 @@ import MultiselectInput from '@/components/Controls/MultiselectInput.vue'
import EmailTemplateSelectorModal from '@/components/Modals/EmailTemplateSelectorModal.vue'
import { TextEditorBubbleMenu, TextEditor, FileUploader, call } from 'frappe-ui'
import { validateEmail } from '@/utils'
+import Paragraph from '@tiptap/extension-paragraph'
import { EditorContent } from '@tiptap/vue-3'
import { ref, computed, defineModel, nextTick } from 'vue'
@@ -198,6 +211,24 @@ const props = defineProps({
},
})
+const CustomParagraph = Paragraph.extend({
+ addAttributes() {
+ return {
+ class: {
+ default: null,
+ renderHTML: (attributes) => {
+ if (!attributes.class) {
+ return {}
+ }
+ return {
+ class: `${attributes.class}`,
+ }
+ },
+ },
+ }
+ },
+})
+
const modelValue = defineModel()
const attachments = defineModel('attachments')
const content = defineModel('content')