feat: add Control Room with containers and stacks management
- Add Control Room page with stacks sidebar and containers list - Implement container actions (start/stop/restart) with snackbars - Add container logs viewer dialog - Add search/filter for both stacks and containers lists - Add external links for Portainer and Netdata (url_launcher) - Add VS Code launch configuration for Flutter web debugging 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.5
parent
dd6bcbdbda
commit
3b89ed8c18
@@ -0,0 +1,52 @@
|
||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||
|
||||
import '../../domain/entities/stack.dart';
|
||||
import '../../domain/repositories/stack_repository.dart';
|
||||
import '../datasources/stacks_datasource.dart';
|
||||
|
||||
part 'stack_repository_impl.g.dart';
|
||||
|
||||
/// Implementation of StackRepository.
|
||||
class StackRepositoryImpl implements StackRepository {
|
||||
StackRepositoryImpl(this._datasource);
|
||||
|
||||
final StacksDatasource _datasource;
|
||||
|
||||
@override
|
||||
Future<List<Stack>> getStacks() async {
|
||||
return _datasource.getStacks();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Stack> getStack(String id) async {
|
||||
return _datasource.getStack(id);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> startStack(String id) async {
|
||||
await _datasource.stackAction(id, 'start');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> stopStack(String id) async {
|
||||
await _datasource.stackAction(id, 'stop');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> restartStack(String id) async {
|
||||
await _datasource.stackAction(id, 'restart');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> removeStack(String id) async {
|
||||
// TODO: Implement stack removal
|
||||
throw UnimplementedError('Stack removal not yet implemented');
|
||||
}
|
||||
}
|
||||
|
||||
/// Provides the stack repository.
|
||||
@riverpod
|
||||
StackRepository stackRepository(StackRepositoryRef ref) {
|
||||
final datasource = ref.watch(stacksDatasourceProvider);
|
||||
return StackRepositoryImpl(datasource);
|
||||
}
|
||||
Reference in New Issue
Block a user