feat: add dropdown for multiple values

This commit is contained in:
2025-08-28 10:58:07 +02:00
parent 7d0537a922
commit e5e9dfd6cd
2 changed files with 11 additions and 1 deletions

View File

@@ -914,7 +914,10 @@ class NodeDetailsComponent extends Component {
? `<div class="capability-params">${ep.params.map((p, pidx) => ` ? `<div class="capability-params">${ep.params.map((p, pidx) => `
<label class="capability-param" for="${formId}-field-${pidx}"> <label class="capability-param" for="${formId}-field-${pidx}">
<span class="param-name">${p.name}${p.required ? ' *' : ''}</span> <span class="param-name">${p.name}${p.required ? ' *' : ''}</span>
<input id="${formId}-field-${pidx}" data-param-name="${p.name}" data-param-location="${p.location || 'body'}" data-param-type="${p.type || 'string'}" data-param-required="${p.required ? '1' : '0'}" class="param-input" type="text" placeholder="${p.location || 'body'}${p.type || 'string'}"> ${ (Array.isArray(p.values) && p.values.length > 1)
? `<select id="${formId}-field-${pidx}" data-param-name="${p.name}" data-param-location="${p.location || 'body'}" data-param-type="${p.type || 'string'}" data-param-required="${p.required ? '1' : '0'}" class="param-input">${p.values.map(v => `<option value="${v}">${v}</option>`).join('')}</select>`
: `<input id="${formId}-field-${pidx}" data-param-name="${p.name}" data-param-location="${p.location || 'body'}" data-param-type="${p.type || 'string'}" data-param-required="${p.required ? '1' : '0'}" class="param-input" type="text" placeholder="${p.location || 'body'}${p.type || 'string'}" value="${(Array.isArray(p.values) && p.values.length === 1) ? p.values[0] : ''}">`
}
</label> </label>
`).join('')}</div>` `).join('')}</div>`
: '<div class="capability-params none">No parameters</div>'; : '<div class="capability-params none">No parameters</div>';

View File

@@ -1810,6 +1810,7 @@ p {
font-weight: 500; font-weight: 500;
} }
/* Adjust param-input to support <select> as well */
.param-input { .param-input {
background: rgba(255, 255, 255, 0.05); background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.1);
@@ -1819,6 +1820,12 @@ p {
outline: none; outline: none;
transition: border-color 0.2s ease, background 0.2s ease; transition: border-color 0.2s ease, background 0.2s ease;
font-size: 0.9rem; font-size: 0.9rem;
appearance: none;
}
.param-input option {
background: #1f2937;
color: #ecf0f1;
} }
.param-input:focus { .param-input:focus {