This repository was archived by the owner on Dec 26, 2022. It is now read-only.
File tree Expand file tree Collapse file tree 5 files changed +54
-17
lines changed
Expand file tree Collapse file tree 5 files changed +54
-17
lines changed Original file line number Diff line number Diff line change @@ -237,6 +237,22 @@ const TreeModelHelper = {
237237 } ) ;
238238 return result ;
239239 } ,
240+
241+ fillParent < T extends ITreeItemWithParent > ( items : T [ ] ) {
242+ TreeModelHelper . walkRecursive ( setParent , items ) ;
243+ } ,
244+
245+ clearParent < T extends ITreeItemWithParent > ( items : T [ ] ) {
246+ TreeModelHelper . walkRecursive ( clearParent , items ) ;
247+ } ,
248+ } ;
249+
250+ const setParent = < T extends ITreeItemWithParent > ( item : T , parent ?: T ) => {
251+ item . parent = parent ;
252+ } ;
253+
254+ const clearParent = < T extends ITreeItemWithParent > ( item : T ) => {
255+ item . parent = undefined ;
240256} ;
241257
242258export default TreeModelHelper ;
Original file line number Diff line number Diff line change 1- import ProjectModel , { DEFAULT_PROJECTS } from './models/ProjectModel' ;
1+ import ProjectModel , {
2+ DEFAULT_PROJECTS ,
3+ IJsonProjectItem ,
4+ } from './models/ProjectModel' ;
25import ProjectFactory from './ProjectFactory' ;
36import ProjectRepository from './ProjectRepository' ;
47import AbstractServiceWithProfile from '../../base/AbstractServiceWithProfile' ;
8+ import TreeModelHelper from '../../helpers/TreeModelHelper' ;
9+ import { toJS } from 'mobx' ;
510
611export default class ProjectService extends AbstractServiceWithProfile <
712 ProjectModel [ ]
@@ -11,11 +16,21 @@ export default class ProjectService extends AbstractServiceWithProfile<
1116
1217 getAll ( ) : ProjectModel [ ] {
1318 const data = this . repository . restore ( DEFAULT_PROJECTS ) ;
14-
19+ ProjectService . fillParent ( data ) ;
1520 return this . factory . createProjects ( data ) ;
1621 }
1722
1823 save ( data : ProjectModel [ ] ) : void {
19- this . repository . save ( data ) ;
24+ const copyData = toJS ( data ) ;
25+ ProjectService . clearParent ( copyData ) ;
26+ this . repository . save ( copyData ) ;
27+ }
28+
29+ private static fillParent ( data : IJsonProjectItem [ ] ) {
30+ TreeModelHelper . fillParent ( data ) ;
31+ }
32+
33+ private static clearParent ( data : ProjectModel [ ] ) {
34+ TreeModelHelper . clearParent ( data ) ;
2035 }
2136}
Original file line number Diff line number Diff line change 11import * as colors from '@ant-design/colors' ;
2+ import { makeObservable , observable } from 'mobx' ;
23
34import AbstractModel from '../../../base/AbstractModel' ;
4- import { ITreeItem , ITreeItemWithParent } from '../../../types/ITreeItem' ;
5+ import { ITreeItemWithParent } from '../../../types/ITreeItem' ;
56
67export enum DEFAULT_PROJECT_ID {
78 MyDay = '0' ,
@@ -22,10 +23,11 @@ export const DEFAULT_PROJECTS: IJsonProjectItem[] = [
2223 color : colors . blue . primary || '' ,
2324 deletable : false ,
2425 expanded : false ,
26+ parent : undefined ,
2527 } ,
2628] ;
2729
28- export interface IJsonProjectItem extends ITreeItem {
30+ export interface IJsonProjectItem extends ITreeItemWithParent {
2931 color : string ;
3032 expanded : boolean ;
3133 deletable : boolean ;
@@ -58,5 +60,15 @@ export default class ProjectModel extends AbstractModel
5860 } ;
5961
6062 this . load ( newProps ) ;
63+
64+ makeObservable ( this , {
65+ key : observable ,
66+ title : observable ,
67+ color : observable ,
68+ expanded : observable ,
69+ deletable : observable ,
70+ children : observable ,
71+ // parent: none,
72+ } ) ;
6173 }
6274}
Original file line number Diff line number Diff line change @@ -5,15 +5,6 @@ import TaskFactory from './TaskFactory';
55import { TasksByProject } from './models/TasksByProject' ;
66import AbstractServiceWithProfile from '../../base/AbstractServiceWithProfile' ;
77import TreeModelHelper from '../../helpers/TreeModelHelper' ;
8- import { ITreeItemWithParent } from '../../types/ITreeItem' ;
9-
10- const setParent = < T extends ITreeItemWithParent > ( item : T , parent ?: T ) => {
11- item . parent = parent ;
12- } ;
13-
14- const clearParent = < T extends ITreeItemWithParent > ( item : T ) => {
15- item . parent = undefined ;
16- } ;
178
189export default class TaskService extends AbstractServiceWithProfile <
1910 TasksByProject
@@ -33,16 +24,15 @@ export default class TaskService extends AbstractServiceWithProfile<
3324 this . repository . save ( copyData ) ;
3425 }
3526
36- // TODO ProjectService fill and remove parent
3727 private static fillParent ( data : TasksByProject ) {
3828 Object . values ( data ) . forEach ( ( projectTasks ) => {
39- TreeModelHelper . walkRecursive ( setParent , projectTasks ) ;
29+ TreeModelHelper . fillParent ( projectTasks ) ;
4030 } ) ;
4131 }
4232
4333 private static clearParent ( data : TasksByProject ) {
4434 Object . values ( data ) . forEach ( ( projectTasks ) => {
45- TreeModelHelper . walkRecursive ( clearParent , projectTasks ) ;
35+ TreeModelHelper . clearParent ( projectTasks ) ;
4636 } ) ;
4737 }
4838}
Original file line number Diff line number Diff line change @@ -83,12 +83,16 @@ export default class TaskModel extends AbstractModel
8383 key : observable ,
8484 title : observable ,
8585 children : observable ,
86+ // parent: none
8687 projectId : observable ,
8788 checked : observable ,
8889 active : observable ,
90+ expanded : observable ,
91+ inMyDay : observable ,
8992 time : observable ,
9093 datesInProgress : observable ,
9194 details : observable ,
95+ withoutActions : observable ,
9296 duration : computed ,
9397 setTitle : action ,
9498 setDetails : action ,
You can’t perform that action at this time.
0 commit comments