7272 />
7373
7474 <Link
75+ v-model =" batchDetail .doc .category "
7576 doctype="LMS Category"
7677 :label =" __ (' Category' )"
77- v-model = " batchDetail . doc . category "
78- :onCreate =" ( value , close ) => openSettings ( ' Categories ' , close ) "
78+ : inlineCreate = " true "
79+ :onCreate =" createCategory "
7980 />
8081 </div >
8182 </div >
156157 class="mb-4"
157158 />
158159 <Link
160+ ref="emailTemplateLinkRef"
159161 doctype="Email Template"
160162 :label =" __ (' Enrollment Confirmation Email Template' )"
161163 v-model =" batchDetail .doc .confirmation_email_template "
162164 :onCreate ="
163165 (value , close ) => {
164- openSettings (' Email Templates' , close )
166+ if (close ) close ()
167+ showEmailTemplateModal = true
165168 }
166169 "
167170 />
280283 :defaultRoles =" [' batch_evaluator' ] "
281284 @created =" onInstructorCreated "
282285 />
286+ <EmailTemplateModal
287+ v-model =" showEmailTemplateModal "
288+ v-model :emailTemplates =" emailTemplates "
289+ templateID="new"
290+ @created =" onEmailTemplateCreated "
291+ />
283292</template >
284293<script setup>
285294import {
@@ -300,8 +309,10 @@ import {
300309 createDocumentResource ,
301310 toast ,
302311 call ,
312+ createListResource ,
303313} from ' frappe-ui'
304314import {
315+ createLMSCategory ,
305316 escapeHTML ,
306317 getMetaInfo ,
307318 openSettings ,
@@ -317,6 +328,7 @@ import Link from '@/components/Controls/Link.vue'
317328import BatchCourses from ' @/pages/Batches/components/BatchCourses.vue'
318329import Assessments from ' @/pages/Batches/components/Assessments.vue'
319330import NewMemberModal from ' @/components/Modals/NewMemberModal.vue'
331+ import EmailTemplateModal from ' @/components/Modals/EmailTemplateModal.vue'
320332
321333const router = useRouter ()
322334const user = inject (' $user' )
@@ -329,6 +341,29 @@ const { $dialog } = app.appContext.config.globalProperties
329341const isDirty = ref (false )
330342const originalDoc = ref (null )
331343const showMemberModal = ref (false )
344+ const showEmailTemplateModal = ref (false )
345+ const emailTemplateLinkRef = ref (null )
346+
347+ const emailTemplates = createListResource ({
348+ doctype: ' Email Template' ,
349+ fields: [' name' , ' subject' , ' use_html' , ' response' , ' response_html' ],
350+ auto: true ,
351+ orderBy: ' modified desc' ,
352+ cache: ' email-templates' ,
353+ })
354+
355+ const onEmailTemplateCreated = (name ) => {
356+ batchDetail .doc .confirmation_email_template = name
357+ emailTemplateLinkRef .value ? .reload ()
358+ }
359+
360+ const createCategory = (name , done ) => {
361+ createLMSCategory (name).then ((categoryName ) => {
362+ if (! categoryName) return
363+ batchDetail .doc .category = categoryName
364+ done ()
365+ })
366+ }
332367
333368const onInstructorCreated = (user ) => {
334369 instructors .value = [... instructors .value , user .name ]
0 commit comments