json-object-editor
Version:
JOE the Json Object Editor | Platform Edition
54 lines (50 loc) • 2.33 kB
JavaScript
;(function(){
function buildNav(){
var nav = document.createElement('nav');
nav.setAttribute('style','display:flex;flex-direction:column;gap:6px;margin-bottom:8px');
var infoRow = '<div id="mcp-nav-info" class="small" style="opacity:.8"></div>';
var linksRow = [
'<div style="display:flex;gap:10px;align-items:center">',
'<a href="/mcp-test.html" target="mcp_test_win" rel="noopener">MCP Test</a>',
'<a href="/mcp-export.html" target="mcp_export_win" rel="noopener">MCP Export</a>',
'<a href="/mcp-schemas.html" target="mcp_schemas_win" rel="noopener">Schemas</a>',
'<a href="/matrix.html" target="matrix_win" rel="noopener">Matrix</a>',
'<a href="/mcp-prompt.html" target="mcp_prompt_win" rel="noopener">MCP Prompt</a>',
'<a href="/ai-widget-test.html" target="ai_widget_test_win" rel="noopener">AI Widget</a>',
'<span style="margin-left:auto"></span>',
'<a href="/privacy" target="privacy_win" rel="noopener">Privacy</a>',
'<a href="/terms" target="terms_win" rel="noopener">Terms</a>',
'</div>'
].join('');
nav.innerHTML = infoRow + linksRow;
return nav;
}
function insert(){
var placeholder = document.getElementById('mcp-nav');
var nav = buildNav();
if(placeholder){
placeholder.parentNode.replaceChild(nav, placeholder);
}else{
document.body.insertBefore(nav, document.body.firstChild);
}
}
async function updateInstance(){
try{
var res = await fetch('/.well-known/mcp/manifest.json');
if(!res.ok) return;
var m = await res.json();
var info = document.getElementById('mcp-nav-info');
if(info && m && m.joe){
info.textContent = 'Name: '+(m.joe.name||'JOE')+' | Version: '+(m.joe.version||'')+' | Host: '+(m.joe.hostname||'');
}
}catch(e){}
}
if(document.readyState === 'loading'){
document.addEventListener('DOMContentLoaded', insert);
document.addEventListener('DOMContentLoaded', updateInstance);
}else{ insert(); updateInstance(); }
// Load favicon environment script for production detection
var faviconScript = document.createElement('script');
faviconScript.src = '/JsonObjectEditor/js/favicon-env.js';
document.head.appendChild(faviconScript);
})();