fix: AMPP Monitor field mapping for Grassvalley API colon-namespaced keys
AMPP API returns keys like 'state:jobState', 'name:text', 'type:jobType', 'creator:id', 'created:dateTime', 'job:id' — not plain 'status', 'name', etc. Frontend was falling back to 'Job' / 'Unknown' for every entry. Updated field lookups to read colon-namespaced keys first, with fallbacks for compatibility. Also added 'aborted' to the failed status detection.
This commit is contained in:
parent
8ec43c299e
commit
172250b279
1 changed files with 8 additions and 4 deletions
|
|
@ -1241,10 +1241,14 @@ async function loadAmppJobs() {
|
|||
}
|
||||
jobs.forEach(job => {
|
||||
const el=document.createElement('div'); el.className='job-item';
|
||||
const st=(job.status||job.state||job.jobStatus||'unknown').toLowerCase();
|
||||
const cls=st.includes('run')||st.includes('active')?'running':st.includes('complet')||st.includes('success')||st.includes('done')?'completed':st.includes('fail')||st.includes('error')?'failed':st.includes('queue')||st.includes('wait')||st.includes('pend')?'queued':'unknown';
|
||||
const name=job.name||job.displayName||job.id||'Job';
|
||||
const meta=[job.created?new Date(job.created).toLocaleString():'', job.type||job.jobType||''].filter(Boolean).join(' · ');
|
||||
// AMPP API uses colon-namespaced keys e.g. "state:jobState", "name:text", "job:id"
|
||||
const st=(job['state:jobState']||job.status||job.state||job.jobStatus||'unknown').toLowerCase();
|
||||
const cls=st.includes('run')||st.includes('active')?'running':st.includes('complet')||st.includes('success')||st.includes('done')?'completed':st.includes('fail')||st.includes('error')||st.includes('abort')?'failed':st.includes('queue')||st.includes('wait')||st.includes('pend')?'queued':'unknown';
|
||||
const name=job['name:text']||job['assetName:text']||job.name||job.displayName||job['job:id']||job.id||'Job';
|
||||
const jobType=(job['type:jobType']||job['subtype:jobSubtype']||job.type||job.jobType||'').replace(/([A-Z])/g,' $1').trim();
|
||||
const creator=job['creator:id']||'';
|
||||
const created=job['created:dateTime']||job.created||'';
|
||||
const meta=[created?new Date(created).toLocaleString():'', jobType, creator].filter(Boolean).join(' · ');
|
||||
el.innerHTML=`<div class="job-dot ${cls}"></div><div class="job-info"><div class="job-name">${esc(name)}</div><div class="job-meta">${esc(meta)}</div></div><span class="job-status ${cls}">${cls.charAt(0).toUpperCase()+cls.slice(1)}</span>`;
|
||||
list.appendChild(el);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue