fix(ui): Import-Erfolgsmeldung nicht mehr als Fehler einfaerben
Der Footer-Strip trug schon immer ein Level, es gab nur keinen Einstiegspunkt jenseits von FlashFooterError. "3 neue Tasks" in Rot liest sich als Fehlschlag.
This commit is contained in:
@@ -33,6 +33,9 @@ public sealed partial class ListsIslandViewModel : ViewModelBase, IDisposable
|
||||
// mirrors TasksIslandViewModel.ErrorReported — surfaces modal-owned failures in the footer strip.
|
||||
public event Action<string>? ErrorReported;
|
||||
|
||||
// Same strip, but for an action that succeeded and has a result worth showing.
|
||||
public event Action<string>? SuccessReported;
|
||||
|
||||
public IDialogService? Dialogs { get; set; }
|
||||
|
||||
[RelayCommand]
|
||||
@@ -528,10 +531,7 @@ public sealed partial class ListsIslandViewModel : ViewModelBase, IDisposable
|
||||
try
|
||||
{
|
||||
var result = await _worker.ImportTicketsAsync(rawId);
|
||||
// No FlashFooterInfo variant exists in this project — the footer strip only has an
|
||||
// error channel (ErrorReported -> IslandsShellViewModel.FlashFooterError). A silent
|
||||
// success is the worse option, so the result reuses the same channel.
|
||||
ErrorReported?.Invoke(Loc.T("lists.importTicketsResult", result.Examined, result.Created));
|
||||
SuccessReported?.Invoke(Loc.T("lists.importTicketsResult", result.Examined, result.Created));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -190,10 +190,17 @@ public sealed partial class IslandsShellViewModel : ViewModelBase, IDisposable
|
||||
|
||||
// Surfaces a UI-originated failure in the footer status strip (same line as the
|
||||
// worker log), color-coded as an error and auto-cleared by _clearTimer.
|
||||
public void FlashFooterError(string message)
|
||||
public void FlashFooterError(string message) => FlashFooter(message, WorkerLogLevel.Error);
|
||||
|
||||
// Same strip, for an action that succeeded and has something to report ("3 new tasks").
|
||||
// The strip has always carried a level — routing a success through FlashFooterError would
|
||||
// paint a good outcome red, which reads as a failure.
|
||||
public void FlashFooterSuccess(string message) => FlashFooter(message, WorkerLogLevel.Success);
|
||||
|
||||
private void FlashFooter(string message, WorkerLogLevel level)
|
||||
{
|
||||
WorkerLogText = $"{DateTime.Now:HH:mm} · {message}";
|
||||
WorkerLogLevel = WorkerLogLevel.Error;
|
||||
WorkerLogLevel = level;
|
||||
IsWorkerLogVisible = true;
|
||||
_clearTimer.Stop();
|
||||
_clearTimer.Start();
|
||||
@@ -337,6 +344,7 @@ public sealed partial class IslandsShellViewModel : ViewModelBase, IDisposable
|
||||
Tasks.PrepRequested += () => Details.ShowPrep();
|
||||
Tasks.ErrorReported += FlashFooterError;
|
||||
Lists.ErrorReported += FlashFooterError;
|
||||
Lists.SuccessReported += FlashFooterSuccess;
|
||||
Tasks.OpenConPtySessionRequested += taskId =>
|
||||
{
|
||||
OpenMissionControl();
|
||||
|
||||
Reference in New Issue
Block a user