diff --git a/src/app/board/board.component.html b/src/app/board/board.component.html
index 2a24bbc..4a51e80 100644
--- a/src/app/board/board.component.html
+++ b/src/app/board/board.component.html
@@ -60,6 +60,7 @@
+ [column]="column"
+ [boards]="boards">
diff --git a/src/app/board/column/column.component.html b/src/app/board/column/column.component.html
index d1e54f1..5eb49a3 100644
--- a/src/app/board/column/column.component.html
+++ b/src/app/board/column/column.component.html
@@ -29,7 +29,8 @@
diff --git a/src/app/board/column/column.component.ts b/src/app/board/column/column.component.ts
index aec4286..f01d522 100644
--- a/src/app/board/column/column.component.ts
+++ b/src/app/board/column/column.component.ts
@@ -46,6 +46,7 @@ export class ColumnDisplay implements OnInit {
private taskToRemove: number;
@Input('column') columnData: Column;
+ @Input('boards') boards: Array;
constructor(private elRef: ElementRef,
private auth: AuthService,
@@ -138,14 +139,7 @@ export class ColumnDisplay implements OnInit {
}
});
- let newBoard = new Board(+boardData.id, boardData.name,
- boardData.is_active === '1',
- boardData.ownColumn,
- boardData.ownCategory,
- boardData.ownAutoAction,
- boardData.ownIssuetracker,
- boardData.sharedUser);
-
+ let newBoard = this.convertBoardData(boardData);
this.boardService.updateActiveBoard(newBoard);
});
}
@@ -159,20 +153,21 @@ export class ColumnDisplay implements OnInit {
return;
}
- let boardData = response.data[1][0];
-
- let newBoard = new Board(+boardData.id, boardData.name,
- boardData.is_active === '1',
- boardData.ownColumn,
- boardData.ownCategory,
- boardData.ownAutoAction,
- boardData.ownIssuetracker,
- boardData.sharedUser);
-
+ let newBoard = this.convertBoardData(response.data[1][0]);
this.boardService.updateActiveBoard(newBoard);
});
}
+ private convertBoardData(boardData: any): Board {
+ return new Board(+boardData.id, boardData.name,
+ boardData.is_active === '1',
+ boardData.ownColumn,
+ boardData.ownCategory,
+ boardData.ownAutoAction,
+ boardData.ownIssuetracker,
+ boardData.sharedUser);
+ }
+
private getRemoveTaskFunction(taskId: number): Function {
return () => {
this.taskToRemove = taskId;
diff --git a/src/app/board/task/task.component.ts b/src/app/board/task/task.component.ts
index bf702ee..c9bd648 100644
--- a/src/app/board/task/task.component.ts
+++ b/src/app/board/task/task.component.ts
@@ -33,11 +33,18 @@ export class TaskDisplay implements OnInit {
private selectMenuItem: ContextMenuItem;
private activeBoard: Board;
+ private boardsList: Array;
@Input('task') taskData: Task;
@Input('add-task') addTask: Function;
@Input('remove-task') removeTask: Function;
+ @Input('boards')
+ set boards(boards: Array) {
+ this.boardsList = boards;
+ this.generateContextMenuItems();
+ }
+
constructor(private auth: AuthService,
private sanitizer: DomSanitizer,
private boardService: BoardService,
@@ -48,10 +55,12 @@ export class TaskDisplay implements OnInit {
});
boardService.activeBoardChanged.subscribe((board: Board) => {
+ this.activeBoard = board;
+
let menuText = 'Move to Column: ';
@@ -63,18 +72,7 @@ export class TaskDisplay implements OnInit {
}
ngOnInit() {
- this.contextMenuItems = [
- new ContextMenuItem('View Task'),
- new ContextMenuItem('Edit Task'),
- new ContextMenuItem('Remove Task', this.removeTask),
- new ContextMenuItem('', null, true),
- new ContextMenuItem('Copy To Board'),
- new ContextMenuItem('Move To Board'),
- new ContextMenuItem('', null, true),
- this.selectMenuItem,
- new ContextMenuItem('', null, true),
- new ContextMenuItem('Add Task', this.addTask)
- ];
+ this.generateContextMenuItems();
}
getTaskDescription(): SafeHtml {
@@ -92,6 +90,41 @@ export class TaskDisplay implements OnInit {
return yiq >= 140 ? '#333333' : '#efefef';
}
+ private generateContextMenuItems() {
+ this.contextMenuItems = [
+ new ContextMenuItem('View Task'),
+ new ContextMenuItem('Edit Task'),
+ new ContextMenuItem('Remove Task', this.removeTask),
+ new ContextMenuItem('', null, true),
+ this.selectMenuItem,
+ new ContextMenuItem('', null, true),
+ new ContextMenuItem('Add Task', this.addTask)
+ ];
+
+ if (this.boardsList.length > 1) {
+ this.contextMenuItems
+ .splice(3, 0,
+ new ContextMenuItem('', null, true),
+ this.getMenuItem('Copy'),
+ this.getMenuItem('Move'));
+ }
+ }
+
+ private getMenuItem(text: string): ContextMenuItem {
+ let menuText = text + ' to Board: ';
+
+ return new ContextMenuItem(menuText, null, false, false);
+ }
+
private initMarked() {
let renderer = new marked.Renderer();