marco.pms.mobile/lib/controller/apps/kan_ban_board_cotnroller.dart
2025-04-02 19:11:36 +05:30

76 lines
2.4 KiB
Dart

import 'package:appflowy_board/appflowy_board.dart';
import 'package:flutter/material.dart';
import 'package:maxdash/controller/my_controller.dart';
import 'package:maxdash/images.dart';
class KanBanBoardController extends MyController {
final AppFlowyBoardController boardData = AppFlowyBoardController(
onMoveGroup: (fromGroupId, fromIndex, toGroupId, toIndex) {
debugPrint('Move item from $fromIndex to $toIndex');
},
onMoveGroupItem: (groupId, fromIndex, toIndex) {
debugPrint('Move $groupId:$fromIndex to $groupId:$toIndex');
},
onMoveGroupItemToGroup: (fromGroupId, fromIndex, toGroupId, toIndex) {
debugPrint('Move $fromGroupId:$fromIndex to $toGroupId:$toIndex');
},
);
late AppFlowyBoardScrollController boardController;
@override
void onInit() {
super.onInit();
final group1 = AppFlowyGroupData(
id: "Pending",
items: [
TextItem("10 Oct 2024", "Update Home Page UI", "Alice", Images.avatars[0]),
TextItem("12 Oct 2024", "Create Product Feature List", "Bob", Images.avatars[1]),
TextItem("15 Oct 2024", "Design Login Flow", "Clara", Images.avatars[2]),
],
name: 'Pending',
);
final group2 = AppFlowyGroupData(
id: "Ongoing",
items: [
TextItem("5 Nov 2024", "Refactor API Endpoints", "Daniel", Images.avatars[3]),
TextItem("10 Nov 2024", "Implement Push Notifications", "Eva", Images.avatars[4]),
],
name: 'Ongoing',
);
final group3 = AppFlowyGroupData(
id: "Completed",
items: [
TextItem("3 Oct 2024", "Develop Admin Dashboard", "Felix", Images.avatars[5]),
TextItem("8 Oct 2024", "Setup Continuous Integration", "Grace", Images.avatars[6]),
TextItem("14 Oct 2024", "Design Mobile App Icons", "Harry", Images.avatars[7]),
TextItem("18 Oct 2024", "Create User Guide", "Ivy", Images.avatars[8]),
],
name: 'Completed',
);
final group4 = AppFlowyGroupData(
id: "On Hold",
items: [
TextItem("1 Nov 2024", "Design Marketing Website", "Jack", Images.avatars[9]),
],
name: 'On Hold',
);
boardData.addGroup(group1);
boardData.addGroup(group2);
boardData.addGroup(group3);
boardData.addGroup(group4);
}
}
class TextItem extends AppFlowyGroupItem {
final String date, title, name, image;
TextItem(this.date, this.title, this.name, this.image);
@override
String get id => title;
}