diff --git a/assets/translations/en.json b/assets/translations/en.json index 57bd579b..2c878b2a 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -584,6 +584,7 @@ "title": "Jobs list", "start": "Start", "empty": "No jobs", + "completed": "Jobs completed", "create_user": "Create user", "delete_user": "Delete user", "service_turn_off": "Turn off", @@ -633,4 +634,4 @@ "reset_onboarding_description": "Reset onboarding switch to show onboarding screen again", "cubit_statuses": "Cubit loading statuses" } -} +} \ No newline at end of file diff --git a/lib/logic/cubit/client_jobs/client_jobs_cubit.dart b/lib/logic/cubit/client_jobs/client_jobs_cubit.dart index 59a33673..29eb8068 100644 --- a/lib/logic/cubit/client_jobs/client_jobs_cubit.dart +++ b/lib/logic/cubit/client_jobs/client_jobs_cubit.dart @@ -92,7 +92,7 @@ class JobsCubit extends Cubit { await api.apply(); await servicesCubit.load(); - emit(JobsStateEmpty()); + emit(JobsCompleted()); } } } diff --git a/lib/logic/cubit/client_jobs/client_jobs_state.dart b/lib/logic/cubit/client_jobs/client_jobs_state.dart index 2bb31856..22233f09 100644 --- a/lib/logic/cubit/client_jobs/client_jobs_state.dart +++ b/lib/logic/cubit/client_jobs/client_jobs_state.dart @@ -9,6 +9,8 @@ class JobsStateLoading extends JobsState {} class JobsStateEmpty extends JobsState {} +class JobsCompleted extends JobsState {} + class JobsStateWithJobs extends JobsState { JobsStateWithJobs(this.clientJobList); final List clientJobList; diff --git a/lib/ui/components/jobs_content/jobs_content.dart b/lib/ui/components/jobs_content/jobs_content.dart index 8db853ac..322cba17 100644 --- a/lib/ui/components/jobs_content/jobs_content.dart +++ b/lib/ui/components/jobs_content/jobs_content.dart @@ -32,16 +32,38 @@ class JobsContent extends StatelessWidget { late List widgets; final ServerInstallationState installationState = context.read().state; - if (state is JobsStateEmpty) { - widgets = [ - const SizedBox(height: 80), - Center( - child: Text( - 'jobs.empty'.tr(), - style: Theme.of(context).textTheme.bodyLarge, + if (state is JobsStateEmpty || state is JobsCompleted) { + if (state is JobsStateEmpty) { + widgets = [ + const SizedBox(height: 80), + Center( + child: Text( + 'jobs.empty'.tr(), + style: Theme.of(context).textTheme.bodyLarge, + ), ), - ), - ]; + ]; + } else { + widgets = [ + const SizedBox(height: 80), + Center( + child: Icon( + Icons.check, + size: 60.0, + color: Theme.of(context).colorScheme.onSurface, + ), + ), + const SizedBox(height: 32), + Center( + child: Text( + 'jobs.completed'.tr(), + style: Theme.of(context).textTheme.bodyLarge?.copyWith( + color: Theme.of(context).colorScheme.onSurface, + ), + ), + ), + ]; + } if (installationState is ServerInstallationFinished) { widgets = [