![]()
-
+
{{ item }}
-
-
+
+
+
{{ item }}
@@ -150,6 +150,8 @@ import {
Button,
Breadcrumbs,
Dialog,
+ Dropdown,
+ FeatherIcon,
FormControl,
TextEditor,
ListView,
@@ -163,7 +165,7 @@ import {
usePageMeta,
toast,
} from 'frappe-ui'
-import { User, Download, Mail } from 'lucide-vue-next'
+
import { inject, ref, computed, reactive } from 'vue'
import { sessionStore } from '../stores/session'
import EmptyState from '@/components/EmptyState.vue'
@@ -253,27 +255,47 @@ const downloadResume = (resumeUrl) => {
window.open(resumeUrl, '_blank')
}
+const getActionOptions = (row) => {
+ const options = []
+ if (row.resume) {
+ options.push({
+ label: __('View Resume'),
+ icon: 'download',
+ onClick: () => downloadResume(row.resume),
+ })
+ }
+ options.push({
+ label: __('Send Email'),
+ icon: 'mail',
+ onClick: () => openEmailModal(row),
+ })
+ return options
+}
+
const applicationColumns = computed(() => {
return [
{
- label: __('Name'),
- key: 'display_name',
- width: '15rem',
+ label: __('Full Name'),
+ key: 'full_name',
+ width: 2,
+ icon: 'user',
},
{
label: __('Email'),
key: 'email',
- width: '15rem',
+ width: 2,
+ icon: 'at-sign',
},
{
label: __('Applied On'),
key: 'applied_date',
- width: '10rem',
+ width: 1,
+ icon: 'calendar',
},
{
- label: __('Actions'),
+ label: '',
key: 'actions',
- width: '10rem',
+ width: 1,
},
]
})
@@ -282,7 +304,7 @@ const applicantRows = computed(() => {
if (!applications.data) return []
return applications.data.map((application) => ({
...application,
- display_name: application.full_name,
+ full_name: application.full_name,
applied_date: dayjs(application.creation).format('MMM DD, YYYY'),
}))
})