v1.1.3: refSvcId — select dropdown from API for cross-service params
This commit is contained in:
+17
-1
@@ -134,8 +134,18 @@ function showParams(opId,opName){
|
||||
|
||||
const isCreate=opName==='create';
|
||||
const qs=isCreate?'' : `?instanceUid=${selectedInst}`;
|
||||
fetch('/api/params/'+opId+qs).then(r=>r.json()).then(data=>{
|
||||
fetch('/api/params/'+opId+qs).then(r=>r.json()).then(async data=>{
|
||||
const params=data.params||data;
|
||||
// Заранее загрузить все инстансы для refSvcId-параметров
|
||||
let allInst=[];
|
||||
const needRefs=params.some(p=>p.refSvcId);
|
||||
if(needRefs){
|
||||
try{
|
||||
const r=await fetch('/api/instances/list');
|
||||
const list=await r.json();
|
||||
allInst=list||[];
|
||||
}catch(e){}
|
||||
}
|
||||
const form=document.getElementById('params-form');
|
||||
const displayNameValue=isCreate?makeCreateDisplayName():'';
|
||||
form.innerHTML=(opName==='create'?`<div class="param-row"><label class="req">displayName</label><span style="font-size:12px;color:var(--muted);white-space:nowrap;">${AUTOTEST_PREFIX}</span><input type="text" id="param-displayname" value="${_esc(displayNameValue)}" autocomplete="off"></div>`:'')
|
||||
@@ -149,6 +159,12 @@ function showParams(opId,opName){
|
||||
let input;
|
||||
if(vl&&Array.isArray(vl)){
|
||||
input=`<select name="p_${p.svcOperationCfsParamId}" data-type="${_esc(p.dataType)}">${vl.map(v=>`<option value="${_esc(v)}" ${v==dfl?'selected':''}>${_esc(v)}</option>`).join('')}</select>`;
|
||||
}else if(p.refSvcId){
|
||||
// Параметр ссылается на другой сервис — выпадающий список инстансов
|
||||
const refInsts=allInst.filter(i=>i.serviceId===p.refSvcId&&i.explainedStatus!=='deleted');
|
||||
let opts=refInsts.map(i=>`<option value="${_esc(i.instanceUid)}" ${i.instanceUid===dfl?'selected':''}>${_esc(i.displayName)}</option>`).join('');
|
||||
if(!dfl) opts='<option value="">— выбрать —</option>'+opts;
|
||||
input=`<select name="p_${p.svcOperationCfsParamId}" data-type="ref">${opts}</select>`;
|
||||
}else if(p.dataType==='boolean'){
|
||||
input=`<select name="p_${p.svcOperationCfsParamId}" data-type="boolean"><option value="true" ${dfl==='true'||dfl===true?'selected':''}>true</option><option value="false" ${dfl==='false'||dfl===false?'selected':''}>false</option></select>`;
|
||||
}else{
|
||||
|
||||
Reference in New Issue
Block a user