diff --git a/templates/credential-navigator.html b/templates/credential-navigator.html index a457ccf..ebe2d29 100644 --- a/templates/credential-navigator.html +++ b/templates/credential-navigator.html @@ -35,27 +35,13 @@

Issuing Demo Credentials

- - {% if organized_data %} - {% for issuer in organized_data[0].issuers %} - - {% endfor %} - {% endif %}
- - {% if organized_data and organized_data[0].issuers %} - {% for credential in organized_data[0].issuers[0].credentials %} - - {% endfor %} - {% endif %}
@@ -65,29 +51,46 @@

Issuing Demo Credentials

function updateIssuers(schemeId) { const issuerSelect = document.getElementById('issuer'); - const scheme = organizedData.find(s => s.identifier === schemeId); - + const credentialSelect = document.getElementById('credential'); + issuerSelect.innerHTML = ''; - if (scheme) { - scheme.issuers.forEach(issuer => { - const option = new Option(issuer.name[{{LANG|tojson|safe}}], issuer.identifier); - issuerSelect.add(option); - }); + credentialSelect.innerHTML = ''; + credentialSelect.disabled = true; + + if (schemeId) { + const scheme = organizedData.find(s => s.identifier === schemeId); + if (scheme) { + scheme.issuers.forEach(issuer => { + const option = new Option(issuer.name[{{LANG|tojson|safe}}], issuer.identifier); + issuerSelect.add(option); + }); + issuerSelect.disabled = false; + } else { + issuerSelect.disabled = true; + } + } else { + issuerSelect.disabled = true; } - updateCredentials('', ''); } function updateCredentials(schemeId, issuerId) { const credentialSelect = document.getElementById('credential'); - const scheme = organizedData.find(s => s.identifier === schemeId); - const issuer = scheme?.issuers.find(i => i.identifier === issuerId); - + credentialSelect.innerHTML = ''; - if (issuer) { - issuer.credentials.forEach(cred => { - const option = new Option(cred.name[{{LANG|tojson|safe}}], cred.identifier); - credentialSelect.add(option); - }); + if (schemeId && issuerId) { + const scheme = organizedData.find(s => s.identifier === schemeId); + const issuer = scheme?.issuers.find(i => i.identifier === issuerId); + if (issuer) { + issuer.credentials.forEach(cred => { + const option = new Option(cred.name[{{LANG|tojson|safe}}], cred.identifier); + credentialSelect.add(option); + }); + credentialSelect.disabled = false; + } else { + credentialSelect.disabled = true; + } + } else { + credentialSelect.disabled = true; } } @@ -107,4 +110,4 @@

Issuing Demo Credentials

}); -{% endblock main %} \ No newline at end of file +{% endblock main %}