From e2ff0a023c4f232e7567c80de0dd2ac1660fc8d9 Mon Sep 17 00:00:00 2001 From: Sabu Siyad Date: Thu, 13 Jul 2023 21:39:36 +0530 Subject: [PATCH] feat: article page --- desk/src/components/TopBar.vue | 4 +- .../knowledge-base/KnowledgeBaseArticle.vue | 157 ++++++++++++++++++ desk/src/router.js | 5 +- helpdesk/helpdesk/doctype/hd_article/api.py | 18 ++ .../doctype/hd_article/hd_article.json | 30 +--- 5 files changed, 185 insertions(+), 29 deletions(-) create mode 100644 desk/src/pages/desk/knowledge-base/KnowledgeBaseArticle.vue create mode 100644 helpdesk/helpdesk/doctype/hd_article/api.py diff --git a/desk/src/components/TopBar.vue b/desk/src/components/TopBar.vue index ec18473f3..70e013fe1 100644 --- a/desk/src/components/TopBar.vue +++ b/desk/src/components/TopBar.vue @@ -1,5 +1,7 @@ + diff --git a/desk/src/router.js b/desk/src/router.js index 9a68d8fe6..368bafa45 100644 --- a/desk/src/router.js +++ b/desk/src/router.js @@ -34,6 +34,7 @@ export const AGENT_PORTAL_TICKET_LIST = "DeskTickets"; export const AGENT_PORTAL_TICKET_TYPE_LIST = "TicketTypes"; export const AGENT_PORTAL_TICKET_TYPE_NEW = "NewTicketType"; export const AGENT_PORTAL_TICKET_TYPE_SINGLE = "TicketType"; +export const AGENT_PORTAL_KNOWLEDGE_BASE = "DeskKBHome"; export const KB_PUBLIC = "Knowledge Base"; export const KB_PUBLIC_ARTICLE = "PortalKBArticle"; @@ -168,9 +169,9 @@ const routes = [ }, { path: "kb", - name: "DeskKBHome", + name: AGENT_PORTAL_KNOWLEDGE_BASE, component: () => - import("@/pages/desk/knowledge-base/KnowledgeBase.vue"), + import("@/pages/desk/knowledge-base/KnowledgeBaseArticle.vue"), }, // { // path: "kb", diff --git a/helpdesk/helpdesk/doctype/hd_article/api.py b/helpdesk/helpdesk/doctype/hd_article/api.py new file mode 100644 index 000000000..74b109cc2 --- /dev/null +++ b/helpdesk/helpdesk/doctype/hd_article/api.py @@ -0,0 +1,18 @@ +import frappe + + +@frappe.whitelist() +def get_article(name: str): + article = frappe.get_doc("HD Article", name).as_dict() + author = frappe.get_cached_doc("User", article["author"]) + sub_category = frappe.get_cached_doc("HD Article Category", article["category"]) + category = frappe.get_cached_doc( + "HD Article Category", sub_category.parent_category + ) + + return { + **article, + "author": author, + "category": category, + "sub_category": sub_category, + } diff --git a/helpdesk/helpdesk/doctype/hd_article/hd_article.json b/helpdesk/helpdesk/doctype/hd_article/hd_article.json index ae8302e73..cab2be5a2 100644 --- a/helpdesk/helpdesk/doctype/hd_article/hd_article.json +++ b/helpdesk/helpdesk/doctype/hd_article/hd_article.json @@ -15,13 +15,10 @@ "published_on", "author", "content_section", - "content_type", "content", - "content_md", "views", "helpful", - "not_helpful", - "note" + "not_helpful" ], "fields": [ { @@ -63,30 +60,16 @@ "hidden": 1, "label": "Not Helpful" }, - { - "allow_in_quick_entry": 1, - "default": "Rich Text", - "fieldname": "content_type", - "fieldtype": "Select", - "label": "Content Type", - "options": "Rich Text\nMarkdown" - }, { "allow_in_quick_entry": 1, "fieldname": "content_section", "fieldtype": "Section Break", "label": "Content" }, - { - "allow_in_quick_entry": 1, - "fieldname": "content_md", - "fieldtype": "Markdown Editor", - "label": "Content (Markdown)" - }, { "allow_in_quick_entry": 1, "fieldname": "content", - "fieldtype": "Text Editor", + "fieldtype": "Text", "label": "Content" }, { @@ -107,11 +90,6 @@ "fieldname": "column_break_7", "fieldtype": "Column Break" }, - { - "fieldname": "note", - "fieldtype": "Long Text", - "label": "Note" - }, { "default": "-1", "fieldname": "idx", @@ -133,7 +111,7 @@ } ], "links": [], - "modified": "2023-03-27 14:39:39.750824", + "modified": "2023-07-13 20:32:16.298366", "modified_by": "Administrator", "module": "Helpdesk", "name": "HD Article", @@ -178,4 +156,4 @@ "sort_order": "DESC", "states": [], "track_changes": 1 -} +} \ No newline at end of file