Correction du soucis de mise à jour via l'application
This commit is contained in:
@@ -4,17 +4,29 @@ import { BehaviorSubject, Observable, catchError, of, tap } from 'rxjs';
|
||||
|
||||
/**
|
||||
* Reflet de UpdateCheckService.UpdateStatus cote backend.
|
||||
*
|
||||
* Etat tri-state par image : UP_TO_DATE / UPDATE_AVAILABLE / UNKNOWN.
|
||||
* UNKNOWN signale que la comparaison est impossible (baseline absente ou
|
||||
* remote injoignable) — l'UI doit afficher un avertissement plutot que
|
||||
* d'annoncer "a jour" silencieusement.
|
||||
*/
|
||||
export type ImageStatusKind = 'UP_TO_DATE' | 'UPDATE_AVAILABLE' | 'UNKNOWN';
|
||||
|
||||
export interface ImageStatus {
|
||||
image: string;
|
||||
localDigest: string | null;
|
||||
remoteDigest: string | null;
|
||||
status: ImageStatusKind;
|
||||
/** Conserve pour back-compat ; equivalent a (status === 'UPDATE_AVAILABLE'). */
|
||||
updateAvailable: boolean;
|
||||
}
|
||||
|
||||
export interface UpdateStatus {
|
||||
enabled: boolean;
|
||||
/** True si au moins une image a status === 'UPDATE_AVAILABLE'. */
|
||||
updateAvailable: boolean;
|
||||
/** True si au moins une image a status === 'UNKNOWN'. */
|
||||
anyUnknown: boolean;
|
||||
images: ImageStatus[];
|
||||
checkedAt: string;
|
||||
}
|
||||
|
||||
@@ -244,16 +244,21 @@
|
||||
<lucide-icon [img]="Download" [size]="16"></lucide-icon>
|
||||
<span>Une mise a jour est disponible.</span>
|
||||
</div>
|
||||
<div *ngIf="!updateStatus?.updateAvailable" class="hint">
|
||||
<div *ngIf="updateStatus?.anyUnknown && !updateStatus?.updateAvailable" class="alert alert-warn">
|
||||
<lucide-icon [img]="Download" [size]="16"></lucide-icon>
|
||||
<span>Verification impossible pour certaines images — voir details ci-dessous.</span>
|
||||
</div>
|
||||
<div *ngIf="!updateStatus?.updateAvailable && !updateStatus?.anyUnknown" class="hint">
|
||||
Tout est a jour (verifie le {{ updateStatus?.checkedAt | date:'short' }}).
|
||||
</div>
|
||||
|
||||
<ul class="update-images" *ngIf="updateStatus?.images?.length">
|
||||
<li *ngFor="let img of updateStatus?.images">
|
||||
<strong>{{ img.image }}</strong>
|
||||
<span *ngIf="img.updateAvailable" class="badge-update">MAJ dispo</span>
|
||||
<span *ngIf="!img.updateAvailable && img.remoteDigest" class="badge-ok">a jour</span>
|
||||
<span *ngIf="!img.remoteDigest" class="badge-warn">indisponible</span>
|
||||
<span *ngIf="img.status === 'UPDATE_AVAILABLE'" class="badge-update">MAJ dispo</span>
|
||||
<span *ngIf="img.status === 'UP_TO_DATE'" class="badge-ok">a jour</span>
|
||||
<span *ngIf="img.status === 'UNKNOWN'" class="badge-warn"
|
||||
title="Impossible de comparer (baseline absente ou registry injoignable)">verification impossible</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -303,6 +303,7 @@
|
||||
}
|
||||
.alert-error { background: rgba(220, 80, 80, 0.15); color: #ff9b9b; }
|
||||
.alert-success { background: rgba(80, 200, 120, 0.15); color: #a2e8b6; }
|
||||
.alert-warn { background: rgba(245, 158, 11, 0.15); color: #fbbf24; }
|
||||
|
||||
/* --- Slider fenetre de contexte -------------------------------------- */
|
||||
.ctx-value {
|
||||
|
||||
Reference in New Issue
Block a user