From 10f64409bd78e5b8e8969da9d8f3d1c0e59aa49d Mon Sep 17 00:00:00 2001 From: MattLeo Date: Tue, 9 Dec 2025 16:23:37 -0600 Subject: [PATCH] added message passing from article detail --- .../kb-frontend/src/components/ArticleDetail.jsx | 11 +++++++++++ fd-client/app/scripts/app.js | 15 +++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/client/kb-frontend/src/components/ArticleDetail.jsx b/client/kb-frontend/src/components/ArticleDetail.jsx index bf11534..9fb9b9d 100644 --- a/client/kb-frontend/src/components/ArticleDetail.jsx +++ b/client/kb-frontend/src/components/ArticleDetail.jsx @@ -1,10 +1,21 @@ import './ArticleDetail.css'; +import { useEffect } from 'react'; function ArticleDetail({ article, onBack, onEdit, onDelete, currentUser }) { if (!article) { return
No article selected
} + useEffect(() => { + if (window.parent !== window) { + window.parent.postMessage({ + type: 'ka-viewed', + kaNumber: article.ka_number, + title: article.title + }, '*'); + } + }, [article]) + const canEdit = currentUser?.role === 'Admin' || currentUser?.role === 'Editor'; return ( diff --git a/fd-client/app/scripts/app.js b/fd-client/app/scripts/app.js index 430e75c..a1cff6d 100644 --- a/fd-client/app/scripts/app.js +++ b/fd-client/app/scripts/app.js @@ -1,23 +1,30 @@ document.addEventListener('DOMContentLoaded', function () { let currentKA = null; + console.log('Freshdesk app loaded'); + // Listen for messages from the KB iframe window.addEventListener('message', function(event) { - if (event.origin !== 'https://kb.jv.com') { + console.log('Received message:', event.origin, event.data); + + if (event.origin !== 'https://jvis.freshdesk.com') { + console.log('Ignoring message from wrong origin'); return; } if (event.data.type === 'ka-viewed') { currentKA = event.data.kaNumber; - console.log('Current KA:', currentKA); + console.log('Current KA set to:', currentKA); } }); app.initialized() .then(function (client) { - console.log('KB initialized'); + console.log('KB app initialized'); document.getElementById('insert-ka-btn').addEventListener('click', function() { + console.log('Insert button clicked, currentKA:', currentKA); + if (!currentKA) { client.interface.trigger('showNotify', { type: 'warning', @@ -33,7 +40,7 @@ document.addEventListener('DOMContentLoaded', function () { .then(function(data) { return client.interface.trigger('showNotify', { type: 'success', - message: currentKA + ' attached to ticket' + message: 'KA# ' + currentKA + ' attached' }); }) .catch(function(error) {