selfprivacy.org.app/lib/logic/cubit/server_jobs/server_jobs_state.dart

50 lines
1.3 KiB
Dart
Raw Normal View History

2022-08-30 03:09:09 +00:00
part of 'server_jobs_cubit.dart';
class ServerJobsState extends ServerInstallationDependendState {
ServerJobsState({
final serverJobList = const <ServerJob>[],
2022-09-18 14:05:41 +00:00
this.migrationJobUid,
}) {
_serverJobList = serverJobList;
}
late final List<ServerJob> _serverJobList;
2022-09-18 14:05:41 +00:00
final String? migrationJobUid;
2022-08-30 03:09:09 +00:00
2022-09-19 00:21:08 +00:00
List<ServerJob> get serverJobList {
try {
final List<ServerJob> list = _serverJobList;
list.sort((final a, final b) => b.createdAt.compareTo(a.createdAt));
return list;
} on UnsupportedError {
return _serverJobList;
}
2022-09-19 00:21:08 +00:00
}
2023-07-02 11:41:54 +00:00
List<ServerJob> get backupJobList => serverJobList
.where(
// The backup jobs has the format of 'service.<service_id>.backup'
(final job) =>
job.typeId.contains('backup') || job.typeId.contains('restore'),
2023-07-02 11:41:54 +00:00
)
.toList();
bool get hasRemovableJobs => serverJobList.any(
(final job) =>
job.status == JobStatusEnum.finished ||
job.status == JobStatusEnum.error,
);
2022-08-30 03:09:09 +00:00
@override
List<Object?> get props => [migrationJobUid, _serverJobList];
2022-08-30 03:09:09 +00:00
ServerJobsState copyWith({
final List<ServerJob>? serverJobList,
2022-09-18 14:05:41 +00:00
final String? migrationJobUid,
2022-08-30 03:09:09 +00:00
}) =>
ServerJobsState(
serverJobList: serverJobList ?? _serverJobList,
2022-09-18 14:05:41 +00:00
migrationJobUid: migrationJobUid ?? this.migrationJobUid,
2022-08-30 03:09:09 +00:00
);
}