frappe.ui.form.on('Desk', {
refresh(frm) {
frm.add_custom_button('🧠Report Finder', () => {
frappe.prompt(
[{label: 'Search Report', fieldname: 'query', fieldtype: 'Data', reqd: 1}],
(data) => {
frappe.call({
method: 'find', // your server script name
args: { query: data.query },
callback: function(r) {
if (r.message && r.message.data) {
const rows = r.message.data;
let html = ``;
Object.keys(rows[0]).forEach(key => html += `| ${key} | `);
html += `
`;
rows.forEach(row => {
html += ``;
Object.values(row).forEach(val => html += `| ${val} | `);
html += `
`;
});
html += `
`;
frappe.msgprint({
title: `📊 ${r.message.report_name}`,
indicator: 'green',
message: html
});
} else {
frappe.msgprint(r.message?.error || 'No matching report found');
}
}
});
},
'LLM Report Finder',
'Find'
);
});
}
});