Files
pulse-signage/src/web/public/js/data-sources/api-source-form.js
T
lzstealth 196c640f9b
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m47s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 31s
Release 2.8.7
2026-08-22 01:33:35 +01:00

77 lines
2.6 KiB
JavaScript

// API source form visibility helpers.
(function () {
var form = document.getElementById('api-source-form');
if (!form) {
return;
}
var methodSelect = form.querySelector('[data-api-source-auth-method]');
var authDetailsSection = form.querySelector('[data-api-source-auth-details-section]');
var panels = Array.prototype.slice.call(form.querySelectorAll('[data-api-source-auth-panel]'));
var bearerTokenInput = form.querySelector('[data-api-source-bearer-token-input]');
var bearerTokenToggle = form.querySelector('[data-api-source-bearer-token-toggle]');
var requestMethodSelect = form.querySelector('[data-api-source-request-method]');
var requestSection = form.querySelector('[data-api-source-request-section]');
var requestBodyInput = form.querySelector('[data-api-source-request-body]');
function updateBearerTokenToggle() {
if (!bearerTokenInput || !bearerTokenToggle) {
return;
}
var isVisible = bearerTokenInput.type === 'text';
bearerTokenToggle.setAttribute('aria-pressed', String(isVisible));
bearerTokenToggle.setAttribute('aria-label', isVisible ? 'Hide bearer token' : 'Show bearer token');
bearerTokenToggle.innerHTML = '<i class="bi ' + (isVisible ? 'bi-eye-slash' : 'bi-eye') + '" aria-hidden="true"></i>';
}
function toggleBearerTokenVisibility() {
if (!bearerTokenInput) {
return;
}
bearerTokenInput.type = bearerTokenInput.type === 'password' ? 'text' : 'password';
updateBearerTokenToggle();
bearerTokenInput.focus();
}
function updatePanels() {
var method = String(methodSelect && methodSelect.value || 'none').trim();
var hasAuth = method !== 'none';
if (authDetailsSection) {
authDetailsSection.hidden = !hasAuth;
}
panels.forEach(function (panel) {
var panelMethod = String(panel.getAttribute('data-api-source-auth-panel') || '').trim();
panel.hidden = !hasAuth || panelMethod !== method;
});
}
function updateRequestBodyVisibility() {
if (!requestMethodSelect || !requestSection || !requestBodyInput) {
return;
}
var isPost = String(requestMethodSelect.value || 'GET').toUpperCase() === 'POST';
requestSection.hidden = !isPost;
}
if (methodSelect) {
methodSelect.addEventListener('change', updatePanels);
}
if (requestMethodSelect) {
requestMethodSelect.addEventListener('change', updateRequestBodyVisibility);
}
if (bearerTokenToggle && bearerTokenInput) {
bearerTokenToggle.addEventListener('click', toggleBearerTokenVisibility);
updateBearerTokenToggle();
}
updatePanels();
updateRequestBodyVisibility();
}());