From d3e1ad56ace179a2f0342f55166d6107fe0bda81 Mon Sep 17 00:00:00 2001 From: aakashb95 Date: Tue, 14 Jul 2026 23:00:27 +0530 Subject: [PATCH] feat(captain): add FAQ suggestion review interface --- .../dashboard/api/captain/faqSuggestions.js | 35 ++ .../captain/assistant/FaqSuggestionCard.vue | 119 +++++ .../response/FaqSuggestionReviewDialog.vue | 272 +++++++++++ .../i18n/locale/en/integrations.json | 40 +- .../dashboard/captain/responses/Index.vue | 6 +- .../dashboard/captain/responses/Pending.vue | 441 ++++++------------ .../dashboard/store/captain/faqSuggestions.js | 62 +++ app/javascript/dashboard/store/index.js | 2 + 8 files changed, 673 insertions(+), 304 deletions(-) create mode 100644 app/javascript/dashboard/api/captain/faqSuggestions.js create mode 100644 app/javascript/dashboard/components-next/captain/assistant/FaqSuggestionCard.vue create mode 100644 app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.vue create mode 100644 app/javascript/dashboard/store/captain/faqSuggestions.js diff --git a/app/javascript/dashboard/api/captain/faqSuggestions.js b/app/javascript/dashboard/api/captain/faqSuggestions.js new file mode 100644 index 000000000..f031b3f9b --- /dev/null +++ b/app/javascript/dashboard/api/captain/faqSuggestions.js @@ -0,0 +1,35 @@ +/* global axios */ +import ApiClient from '../ApiClient'; + +class CaptainFaqSuggestions extends ApiClient { + constructor() { + super('captain/faq_suggestions', { accountScoped: true }); + } + + get({ page = 1, search, assistantId, status = 'open' } = {}) { + return axios.get(this.url, { + params: { + page, + search, + assistant_id: assistantId, + status, + }, + }); + } + + update(id, data) { + return axios.patch(`${this.url}/${id}`, { faq_suggestion: data }); + } + + approve(id, data) { + return axios.post(`${this.url}/${id}/approve`, { + faq_suggestion: data, + }); + } + + dismiss(id) { + return axios.post(`${this.url}/${id}/dismiss`); + } +} + +export default new CaptainFaqSuggestions(); diff --git a/app/javascript/dashboard/components-next/captain/assistant/FaqSuggestionCard.vue b/app/javascript/dashboard/components-next/captain/assistant/FaqSuggestionCard.vue new file mode 100644 index 000000000..c7c92f04e --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/assistant/FaqSuggestionCard.vue @@ -0,0 +1,119 @@ + + + diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.vue b/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.vue new file mode 100644 index 000000000..6b3102460 --- /dev/null +++ b/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.vue @@ -0,0 +1,272 @@ + + +