File tree Expand file tree Collapse file tree 3 files changed +52
-2
lines changed
Expand file tree Collapse file tree 3 files changed +52
-2
lines changed Original file line number Diff line number Diff line change 1+ import { toJS } from 'mobx' ;
2+
13import { ITreeItem , ITreeItemWithParent } from '../types/ITreeItem' ;
24import { TaskInMyDay } from '../modules/tasks/models/TaskInMyDay' ;
35import TaskModel from '../modules/tasks/models/TaskModel' ;
46import TaskFactory from '../modules/tasks/TaskFactory' ;
7+ import ProjectModel from '../modules/projects/models/ProjectModel' ;
8+
9+ // @ts -ignore TODO remove
10+ window . toJS = toJS ;
511
612const TreeModelHelper = {
713 getPathToNode < T extends ITreeItemWithParent = ITreeItemWithParent > ( node : T ) {
@@ -17,6 +23,48 @@ const TreeModelHelper = {
1723 return result ;
1824 } ,
1925
26+ copyItemsToTreeUnderProject (
27+ project : ProjectModel | undefined ,
28+ sourceTree : TaskModel [ ] ,
29+ destTree : TaskInMyDay [ ] ,
30+ keysToNode : string [ ]
31+ ) : boolean {
32+ if ( ! project ) {
33+ return false ;
34+ }
35+
36+ let destProject = destTree . find ( ( node ) => node . key === project . key ) ;
37+ if ( ! destProject ) {
38+ destProject = TaskFactory . createTaskModelProxy (
39+ new TaskModel ( {
40+ key : project . key ,
41+ projectId : project . key ,
42+ title : project . title ,
43+ active : false ,
44+ checked : false ,
45+ children : [ ] ,
46+ datesInProgress : [ ] ,
47+ details : [ ] ,
48+ expanded : true ,
49+ inMyDay : new Date ( ) . toString ( ) ,
50+ parent : null ,
51+ time : [ ] ,
52+ withoutActions : true ,
53+ } )
54+ ) ;
55+ destTree . push ( destProject ) ;
56+ }
57+
58+ return TreeModelHelper . copyItemsToTree (
59+ sourceTree ,
60+ destProject . children ,
61+ keysToNode
62+ ) ;
63+ } ,
64+
65+ /**
66+ * Make a copy of tasks to 'My Day'
67+ */
2068 copyItemsToTree (
2169 sourceTree : TaskModel [ ] ,
2270 destTree : TaskInMyDay [ ] ,
Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ import TaskModel, { ITimeRangeModel } from './models/TaskModel';
55import TasksByProject from '../../modules/tasks/models/TasksByProject' ;
66import TreeModelHelper from '../../helpers/TreeModelHelper' ;
77import BadgeService from '../BadgeService' ;
8- import { RootStore } from '../RootStore' ;
8+ import rootStore , { RootStore } from '../RootStore' ;
99import GaService from '../../services/gaService/GaService' ;
1010import {
1111 EEventCategory ,
@@ -98,7 +98,8 @@ export default class TaskStore {
9898 // @ts -ignore
9999 const pathToNode = TreeModelHelper . getPathToNode ( task ) ;
100100
101- TreeModelHelper . copyItemsToTree (
101+ TreeModelHelper . copyItemsToTreeUnderProject (
102+ rootStore . projectStore . get ( task . projectId ) ,
102103 this . tasks [ task . projectId ] ,
103104 // @ts -ignore
104105 this . tasks [ DEFAULT_PROJECT_ID . MyDay ] ,
Original file line number Diff line number Diff line change @@ -63,6 +63,7 @@ export default class TaskModel extends AbstractModel
6363 time : ITimeRangeModel [ ] = [ ] ;
6464 datesInProgress : Date [ ] = [ ] ;
6565 details : string = '' ;
66+ withoutActions : boolean = false ; // TODO make a new class
6667
6768 constructor ( props : IJsonTaskModel | TaskModel ) {
6869 super ( ) ;
You can’t perform that action at this time.
0 commit comments