feat(ui): Display Tools List JSON in a modal screen instead of direct download
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 17s

This commit is contained in:
jade
2026-08-19 09:35:32 +09:00
parent eac481da41
commit ebef388893

View File

@@ -227,6 +227,29 @@
</div>
</div>
<!-- Modal for JSON Export -->
<div id="jsonExportModal" class="modal-overlay">
<div class="modal-content">
<div class="modal-header">
<div>
<h3 class="text-lg font-semibold text-white">Tools List JSON</h3>
<p class="text-sm text-zinc-400">Complete tools list in JSON format</p>
</div>
<button onclick="closeJsonExportModal()" class="text-zinc-400 hover:text-white">&times;</button>
</div>
<div class="modal-body">
<textarea id="jsonExportViewer" class="code-textarea" readonly></textarea>
</div>
<div class="modal-footer">
<div class="flex-grow flex gap-2">
<button class="btn-sm" onclick="copyJsonExport()">Copy to Clipboard</button>
<button class="btn-sm" onclick="downloadJsonExport()">Download File</button>
</div>
<button onclick="closeJsonExportModal()" class="btn-sm py-2 px-4">Close</button>
</div>
</div>
</div>
<script>
let allTools = [];
let filteredTools = [];
@@ -896,7 +919,6 @@
alert("No tools loaded.");
return;
}
// original tools array without the temp properties added for testing
const cleanTools = allTools.map(t => {
const clean = { ...t };
delete clean._customPayload;
@@ -908,7 +930,24 @@
return clean;
});
const jsonContent = JSON.stringify({ tools: cleanTools }, null, 2);
const blob = new Blob([jsonContent], { type: 'application/json' });
document.getElementById('jsonExportViewer').value = jsonContent;
document.getElementById('jsonExportModal').style.display = 'flex';
}
function closeJsonExportModal() {
document.getElementById('jsonExportModal').style.display = 'none';
}
function copyJsonExport() {
const viewer = document.getElementById('jsonExportViewer');
navigator.clipboard.writeText(viewer.value).then(() => {
alert("JSON copied to clipboard!");
});
}
function downloadJsonExport() {
const viewer = document.getElementById('jsonExportViewer');
const blob = new Blob([viewer.value], { type: 'application/json' });
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.setAttribute("href", url);