Add signal and whatsapp plugins
This commit is contained in:
parent
d2a3c71bcd
commit
38de035571
2 changed files with 145 additions and 0 deletions
|
|
@ -0,0 +1,69 @@
|
|||
import { EnumTicketArticleSenderName } from '#shared/graphql/types.ts'
|
||||
|
||||
import type { TicketArticleAction, TicketArticleActionPlugin, TicketArticleType } from './types.ts'
|
||||
|
||||
const actionPlugin: TicketArticleActionPlugin = {
|
||||
order: 350,
|
||||
|
||||
addActions(ticket, article) {
|
||||
const sender = article.sender?.name
|
||||
const type = article.type?.name
|
||||
|
||||
if (sender !== EnumTicketArticleSenderName.Customer || type !== 'signal message')
|
||||
return []
|
||||
|
||||
const action: TicketArticleAction = {
|
||||
apps: ['mobile', 'desktop'],
|
||||
label: __('Reply'),
|
||||
name: 'signal message',
|
||||
icon: 'cdr-signal',
|
||||
view: {
|
||||
agent: ['change'],
|
||||
},
|
||||
perform(ticket, article, { openReplyForm }) {
|
||||
const articleData = {
|
||||
articleType: type,
|
||||
inReplyTo: article.messageId,
|
||||
}
|
||||
|
||||
openReplyForm(articleData)
|
||||
},
|
||||
}
|
||||
return [action]
|
||||
},
|
||||
|
||||
addTypes(ticket) {
|
||||
const descriptionType = ticket.createArticleType?.name
|
||||
|
||||
if (descriptionType !== 'signal message') return []
|
||||
|
||||
const type: TicketArticleType = {
|
||||
apps: ['mobile', 'desktop'],
|
||||
value: 'signal message',
|
||||
label: __('Signal'),
|
||||
buttonLabel: __('Add Signal message'),
|
||||
icon: 'cdr-signal',
|
||||
view: {
|
||||
agent: ['change'],
|
||||
},
|
||||
internal: false,
|
||||
contentType: 'text/plain',
|
||||
fields: {
|
||||
body: {
|
||||
required: true,
|
||||
validation: 'length:1,10000',
|
||||
},
|
||||
attachments: {},
|
||||
},
|
||||
editorMeta: {
|
||||
footer: {
|
||||
maxlength: 10000,
|
||||
warningLength: 5000,
|
||||
},
|
||||
},
|
||||
}
|
||||
return [type]
|
||||
},
|
||||
}
|
||||
|
||||
export default actionPlugin
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
import { EnumTicketArticleSenderName } from "#shared/graphql/types.ts";
|
||||
|
||||
import type {
|
||||
TicketArticleAction,
|
||||
TicketArticleActionPlugin,
|
||||
TicketArticleType,
|
||||
} from "./types.ts";
|
||||
|
||||
const actionPlugin: TicketArticleActionPlugin = {
|
||||
order: 360,
|
||||
|
||||
addActions(ticket, article) {
|
||||
const sender = article.sender?.name;
|
||||
const type = article.type?.name;
|
||||
|
||||
if (
|
||||
sender !== EnumTicketArticleSenderName.Customer ||
|
||||
type !== "whatsapp message"
|
||||
)
|
||||
return [];
|
||||
|
||||
const action: TicketArticleAction = {
|
||||
apps: ["mobile", "desktop"],
|
||||
label: __("Reply"),
|
||||
name: "whatsapp message",
|
||||
icon: "cdr-whatsapp",
|
||||
view: {
|
||||
agent: ["change"],
|
||||
},
|
||||
perform(ticket, article, { openReplyForm }) {
|
||||
const articleData = {
|
||||
articleType: type,
|
||||
inReplyTo: article.messageId,
|
||||
};
|
||||
|
||||
openReplyForm(articleData);
|
||||
},
|
||||
};
|
||||
return [action];
|
||||
},
|
||||
|
||||
addTypes(ticket) {
|
||||
const descriptionType = ticket.createArticleType?.name;
|
||||
|
||||
if (descriptionType !== "whatsapp message") return [];
|
||||
|
||||
const type: TicketArticleType = {
|
||||
apps: ["mobile", "desktop"],
|
||||
value: "whatsapp message",
|
||||
label: __("WhatsApp"),
|
||||
buttonLabel: __("Add WhatsApp message"),
|
||||
icon: "cdr-whatsapp",
|
||||
view: {
|
||||
agent: ["change"],
|
||||
},
|
||||
internal: false,
|
||||
contentType: "text/plain",
|
||||
fields: {
|
||||
body: {
|
||||
required: true,
|
||||
validation: "length:1,4096",
|
||||
},
|
||||
attachments: {},
|
||||
},
|
||||
editorMeta: {
|
||||
footer: {
|
||||
maxlength: 4096,
|
||||
warningLength: 3000,
|
||||
},
|
||||
},
|
||||
};
|
||||
return [type];
|
||||
},
|
||||
};
|
||||
|
||||
export default actionPlugin;
|
||||
Loading…
Add table
Add a link
Reference in a new issue