diff --git a/frontend/src/components/ListViews/LeadsListView.vue b/frontend/src/components/ListViews/LeadsListView.vue index 971cac24..ff185732 100644 --- a/frontend/src/components/ListViews/LeadsListView.vue +++ b/frontend/src/components/ListViews/LeadsListView.vue @@ -107,6 +107,10 @@ v-if="column.key == '_liked_by'" variant="ghosted" :class="isLiked(item) ? 'fill-red-500' : 'fill-white'" + @click.stop.prevent=" + () => + emit('likeDoc', { name: row.name, liked: isLiked(item) }) + " > @@ -219,6 +223,7 @@ const emit = defineEmits([ 'columnWidthUpdated', 'applyFilter', 'applyLikeFilter', + 'likeDoc', ]) const pageLengthCount = defineModel() diff --git a/frontend/src/components/ViewControls.vue b/frontend/src/components/ViewControls.vue index b8ddcd2f..28598989 100644 --- a/frontend/src/components/ViewControls.vue +++ b/frontend/src/components/ViewControls.vue @@ -789,7 +789,16 @@ function applyLikeFilter() { updateFilter(filters) } -defineExpose({ applyFilter, applyLikeFilter }) +function likeDoc({ name, liked }) { + createResource({ + url: 'frappe.desk.like.toggle_like', + params: { doctype: props.doctype, name: name, add: liked ? 'No' : 'Yes' }, + auto: true, + onSuccess: () => reload(), + }) +} + +defineExpose({ applyFilter, applyLikeFilter, likeDoc }) // Watchers watch( diff --git a/frontend/src/pages/Leads.vue b/frontend/src/pages/Leads.vue index 7dbf4ddb..4a62ef35 100644 --- a/frontend/src/pages/Leads.vue +++ b/frontend/src/pages/Leads.vue @@ -44,6 +44,7 @@ @updatePageCount="(count) => (updatedPageCount = count)" @applyFilter="(data) => viewControls.applyFilter(data)" @applyLikeFilter="(data) => viewControls.applyLikeFilter(data)" + @likeDoc="(data) => viewControls.likeDoc(data)" />