52 lines
1.2 KiB
Vue
52 lines
1.2 KiB
Vue
<template>
|
|
<NewEmailTemplate v-if="step === 'new-template'" @updateStep="updateStep" />
|
|
<EmailTemplates
|
|
v-else-if="step === 'template-list'"
|
|
@updateStep="updateStep"
|
|
/>
|
|
<EditEmailTemplate
|
|
v-else-if="step === 'edit-template'"
|
|
:templateData="template"
|
|
@updateStep="updateStep"
|
|
/>
|
|
</template>
|
|
|
|
<script setup>
|
|
import NewEmailTemplate from './NewEmailTemplate.vue'
|
|
import EditEmailTemplate from './EditEmailTemplate.vue'
|
|
import EmailTemplates from './EmailTemplates.vue'
|
|
import { createListResource } from 'frappe-ui'
|
|
import { provide, ref } from 'vue'
|
|
|
|
const step = ref('template-list')
|
|
const template = ref(null)
|
|
|
|
const templates = createListResource({
|
|
type: 'list',
|
|
doctype: 'Email Template',
|
|
cache: 'emailTemplates',
|
|
fields: [
|
|
'name',
|
|
'enabled',
|
|
'use_html',
|
|
'reference_doctype',
|
|
'subject',
|
|
'response',
|
|
'response_html',
|
|
'modified',
|
|
'owner',
|
|
],
|
|
auto: true,
|
|
filters: { reference_doctype: ['in', ['CRM Lead', 'CRM Deal']] },
|
|
orderBy: 'modified desc',
|
|
pageLength: 20,
|
|
})
|
|
|
|
provide('templates', templates)
|
|
|
|
function updateStep(newStep, data) {
|
|
step.value = newStep
|
|
template.value = data
|
|
}
|
|
</script>
|