Files
ESP3D-WEBUI/extensions_samples/capabilities.html
Luc 735ea6f718 Fix Bug in validation general due to moving out of component for Interface
Fix Temperatures Panel crash due to missing code definition for ContainerHelper
Add missing help entry for tooltip for select en boolean controls
Refactorize exportPreferencesSection to handle more cases
Remove usage of encodeURIComponent/decodeURIComponent for getting icon in extension
Update extensions sample code for capabilities, icons, extension_settings and modal
Update code for saving extensions data to rely on InterfaceSetting object instead of separate object
Finalize implementation for fields_modal
Update extension API  documentation
Rewrite importPreferences to importPreferencesSection for more flexibility
Rewrite exportPreferences to exportPreferencesSection for more flexibility
Bump version
Build packages
2024-06-19 16:34:08 +08:00

48 lines
1.7 KiB
HTML

<script type="text/javascript">
function sendMessage(msg) {
window.parent.postMessage(msg, '*');
}
function getCapabilities() {
const requestId = document.getElementById('request_id').value;
const extensionName = document.getElementById('extension_name').value;
sendMessage({ type: 'capabilities', target: 'webui', id: requestId, name: extensionName });
}
function processMessage(eventMsg) {
if (eventMsg.data.type === "capabilities") {
const response = eventMsg.data.content.response;
const resultPanel = document.getElementById("output");
const formattedResponse = JSON.stringify(response, null, 2);
resultPanel.textContent = formattedResponse;
}
}
function updateUI() {
const extensionNameInput = document.getElementById('extensionNameInput');
extensionNameInput.classList.toggle('d-none', document.getElementById('request_id').value !== 'extensions');
}
window.onload = (event) => {
window.addEventListener("message", processMessage, false);
};
</script>
<div class="container">
<select id="request_id" class="form-select column" onchange="updateUI()">
<option value="connection">connection</option>
<option value="features">features</option>
<option value="interface">interface</option>
<option value="settings">settings</option>
<option value="extensions">extensions</option>
</select>
<div class="form-group d-none" id="extensionNameInput">
<label class="form-label" for="extension_name">Extension Name:</label>
<input class="form-input" id="extension_name" type="text" value="click2go">
</div>
<button class="btn m-1" onclick="getCapabilities()">Get Capabilities</button>
<pre class="container m-2" id="output"></pre>
</div>