Skip to content

Commit

Permalink
Merge branch 'main' into agent_communication_area
Browse files Browse the repository at this point in the history
  • Loading branch information
sumitbhanushali committed Apr 22, 2024
2 parents f7597b0 + 30969c2 commit cee7a11
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 17 deletions.
24 changes: 11 additions & 13 deletions desk/src/components/MultipleAvatar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,17 @@
avatars?.length > 1 ? 'flex-row-reverse' : 'truncate [&>div]:truncate',
]"
>
<Tooltip
v-if="avatars?.length == 1"
:text="avatars[0].name"
class="flex items-center gap-2 text-base"
>
<Avatar
shape="circle"
:image="avatars[0].image"
:label="avatars[0].label"
size="sm"
/>
<div class="truncate">{{ avatars[0].label }}</div>
</Tooltip>
<div v-if="avatars?.length == 1" class="flex items-center gap-2 text-base">
<Tooltip :text="avatars[0].name">
<Avatar
shape="circle"
:image="avatars[0].image"
:label="avatars[0].label"
size="sm"
/>
<div class="truncate">{{ avatars[0].label }}</div>
</Tooltip>
</div>
<Tooltip
v-for="avatar in props.avatars"
v-else
Expand Down
18 changes: 17 additions & 1 deletion desk/src/pages/ticket/TicketCustomer.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
label="Close"
theme="gray"
variant="solid"
@click="showFeedbackDialog = !showFeedbackDialog"
@click="handleClose()"
>
<template #prefix>
<Icon icon="lucide:check" />
Expand Down Expand Up @@ -107,6 +107,14 @@ const send = createResource({
},
});
function handleClose() {
if (showFeedback.value) {
showFeedbackDialog.value = true;
} else {
setValue.submit({ fieldname: "status", value: "Closed" });
}
}
const setValue = createResource({
url: "frappe.client.set_value",
debounce: 300,
Expand Down Expand Up @@ -135,4 +143,12 @@ const showResolveButton = computed(() =>
const showEditor = computed(() =>
["Open", "Replied", "Resolved"].includes(ticket.data.status)
);
const showFeedback = computed(() => {
return ticket.data?.communications?.some((c) => {
if (c.sender !== ticket.data.raised_by) {
return true;
}
});
});
</script>
18 changes: 16 additions & 2 deletions desk/src/pages/ticket/TicketCustomerTemplateFields.vue
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,20 @@ const slaData = computed(() => {
dayjs(ticket.data.first_responded_on).isBefore(ticket.data.response_by)
? "Fulfilled"
: "Failed";
//TODO: no resolution date for unclassified tickets, configurable?
if (ticket.data.priority === "Unclassified") {
return [
{
title: "Expected First Response",
showSla: ticket.data.first_responded_on,
label: responseSla,
theme: responseSla === "Fulfilled" ? "green" : "red",
value: ticket.data.response_by,
},
];
}
const resolutionSla =
ticket.data.resolution_date &&
dayjs(ticket.data.resolution_date).isBefore(ticket.data.resolution_by)
Expand All @@ -66,14 +80,14 @@ const slaData = computed(() => {
return [
{
title: "First Response",
title: "Expected First Response",
showSla: ticket.data.first_responded_on,
label: responseSla,
theme: responseSla === "Fulfilled" ? "green" : "red",
value: ticket.data.response_by,
},
{
title: "Resolution",
title: "Expected Resolution",
showSla: ticket.data.resolution_date,
label: resolutionSla,
theme: resolutionSla === "Fulfilled" ? "green" : "red",
Expand Down
5 changes: 4 additions & 1 deletion helpdesk/helpdesk/doctype/hd_ticket/hd_ticket.py
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,10 @@ def assign_agent(self, agent):

clear_all_assignments("HD Ticket", self.name)
assign({"assign_to": [agent], "doctype": "HD Ticket", "name": self.name})
self.notify_agent(agent, "Assignment")

if frappe.session.user != agent:
self.notify_agent(agent, "Assignment")

publish_event("helpdesk:ticket-assignee-update", {"name": self.name})

def get_assigned_agent(self):
Expand Down

0 comments on commit cee7a11

Please sign in to comment.