Let finished caption jobs be dismissed from the Queue panel.
This commit is contained in:
@@ -385,6 +385,7 @@
|
||||
<div class="job-status" :data-state="card.state">
|
||||
<span class="left"><span class="dot" aria-hidden="true" />{{ card.statusLabel }}</span>
|
||||
<button v-if="card.cancelable" type="button" class="kebab" aria-label="Cancel job" @click.stop="cancel(card.job)">⋮</button>
|
||||
<button v-else-if="card.dismissable" type="button" class="kebab" aria-label="Dismiss job" @click.stop="dismissFinishedCard(card)">×</button>
|
||||
</div>
|
||||
<div v-if="card.progress" class="job-progress" :data-indeterminate="card.progress.indeterminate ? 'true' : undefined">
|
||||
<progress
|
||||
@@ -820,6 +821,7 @@ const queueCards=computed(()=>{
|
||||
const live=job.live
|
||||
const text=live?.resultText || job.resultText || ''
|
||||
const state=live?.status || job.status
|
||||
const finished=['complete','done','error','cancelled','failed'].includes(String(state))
|
||||
cards.push({
|
||||
id:job.id,
|
||||
job,
|
||||
@@ -829,7 +831,8 @@ const queueCards=computed(()=>{
|
||||
state,
|
||||
statusLabel:live?.message || state,
|
||||
resultText:text,
|
||||
cancelable:!['complete','done','error','cancelled'].includes(job.status) && !['complete','error','cancelled'].includes(String(state))
|
||||
cancelable:!finished,
|
||||
dismissable:finished
|
||||
})
|
||||
}
|
||||
for(const job of upscales.value.filter((j:any)=>j.folderId===form.folderId && ['queued','running'].includes(j.status))){
|
||||
@@ -1410,6 +1413,14 @@ function restore(item:any){Object.assign(form,restoreAll(form,item,xaigen,loraMe
|
||||
function focusJob(job:any){selectOutput(job.outputs?.at(-1)||null);focusedJobId.value=job.id}
|
||||
async function loadLoras(fresh=false){try{loraNames.value=await $fetch('/api/studio-2/loras'+(fresh?'?fresh=1':''))}catch{error.value='Could not refresh LoRAs. The last loaded list is still available.'}}
|
||||
async function clearFinished(){await $fetch('/api/studio-2/clear-finished',{method:'POST'});await refreshJobs()}
|
||||
async function dismissFinishedCard(card:any){
|
||||
const id=card?.job?.id || card?.id
|
||||
if(!id) return
|
||||
try{
|
||||
await $fetch('/api/studio-2/clear-finished',{method:'POST',body:{id}})
|
||||
await refreshJobs()
|
||||
}catch(e:any){error.value=e.data?.statusMessage||e.message||'Could not dismiss job'}
|
||||
}
|
||||
async function refreshJobs(){
|
||||
const [nextJobs,nextUpscales,queue]=await Promise.all([
|
||||
$fetch<any[]>('/api/studio-2/jobs'),
|
||||
@@ -1779,6 +1790,9 @@ const mobileCtx=computed(()=>({
|
||||
cancel,
|
||||
focusQueueCard,
|
||||
clearFinished,
|
||||
dismissFinishedCard,
|
||||
copyCaption,
|
||||
useCaptionAsPrompt,
|
||||
removeNegative,
|
||||
addNegative,
|
||||
addPhoto,
|
||||
|
||||
Reference in New Issue
Block a user