diff --git a/README.md b/README.md
index 5c68124..9dc24be 100644
--- a/README.md
+++ b/README.md
@@ -150,11 +150,11 @@ Because I like seeing the numbers.
Language | Files | Blank | Comment | Code
-------------|--------:|---------:|--------:|---------:
-TypeScript | 57 | 610 | 25 | 2855
-PHP | 18 | 559 | 19 | 1743
-HTML | 19 | 130 | 9 | 1157
-SASS | 14 | 215 | 12 | 976
-__SUM:__ | __108__ | __1514__ | __65__ | __6731__
+TypeScript | 58 | 629 | 26 | 2939
+PHP | 18 | 558 | 19 | 1740
+HTML | 19 | 131 | 9 | 1160
+SASS | 14 | 221 | 12 | 1005
+__SUM:__ | __109__ | __1539__ | __66__ | __6848__
Command: `cloc --exclude-dir=vendor --exclude-ext=json src/`
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 4ef741a..90927e5 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -18,6 +18,7 @@ import {
Notifications,
TopNav,
AuthService,
+ ContextMenuService,
ModalService,
NotificationsService,
StringsService
@@ -39,6 +40,7 @@ import { BoardService } from './board/board.service';
Title,
AuthService,
BoardService,
+ ContextMenuService,
ModalService,
NotificationsService,
StringsService
diff --git a/src/app/board/board.component.ts b/src/app/board/board.component.ts
index e33cbf6..daa3684 100644
--- a/src/app/board/board.component.ts
+++ b/src/app/board/board.component.ts
@@ -12,6 +12,7 @@ import {
User,
Notification,
AuthService,
+ ContextMenuService,
NotificationsService,
StringsService
} from '../shared/index';
@@ -38,6 +39,7 @@ export class BoardDisplay implements OnInit {
private active: ActivatedRoute,
private auth: AuthService,
private boardService: BoardService,
+ private menuService: ContextMenuService,
private notes: NotificationsService,
private stringsService: StringsService,
private dragula: DragulaService) {
diff --git a/src/app/board/column/column.component.html b/src/app/board/column/column.component.html
index 5e7d707..6bddd7a 100644
--- a/src/app/board/column/column.component.html
+++ b/src/app/board/column/column.component.html
@@ -29,7 +29,7 @@
+ [task]="task" [add-task]="getShowModalFunction()">
diff --git a/src/app/board/column/column.component.ts b/src/app/board/column/column.component.ts
index 7e3bd24..1ad09c9 100644
--- a/src/app/board/column/column.component.ts
+++ b/src/app/board/column/column.component.ts
@@ -37,7 +37,7 @@ export class ColumnDisplay implements OnInit {
private userOptions: UserOptions;
private tasks: Array;
- private contextMenuItems: Array = [];
+ private contextMenuItems: Array;
private MODAL_ID: string;
private modalProps: Task;
@@ -54,7 +54,10 @@ export class ColumnDisplay implements OnInit {
this.tasks = [];
this.collapseTasks = false;
- this.contextMenuItems.push(new ContextMenuItem('Add New Task'));
+ this.contextMenuItems = [
+ new ContextMenuItem('Add New Task',
+ this.getShowModalFunction())
+ ];
this.MODAL_ID = 'add-task-form-';
this.modalProps = new Task();
@@ -142,6 +145,10 @@ export class ColumnDisplay implements OnInit {
});
}
+ private getShowModalFunction(): Function {
+ return () => { this.showModal(); };
+ }
+
private showModal() {
this.modalProps = new Task();
this.modalProps.column_id = this.columnData.id;
diff --git a/src/app/board/task/task.component.html b/src/app/board/task/task.component.html
index 39ce249..bc871d2 100644
--- a/src/app/board/task/task.component.html
+++ b/src/app/board/task/task.component.html
@@ -39,5 +39,6 @@
+
diff --git a/src/app/board/task/task.component.ts b/src/app/board/task/task.component.ts
index 42c08ba..c4208f7 100644
--- a/src/app/board/task/task.component.ts
+++ b/src/app/board/task/task.component.ts
@@ -1,10 +1,16 @@
-import { Component, Input } from '@angular/core';
+import {
+ Component,
+ Input,
+ OnInit
+} from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';
import * as Marked from 'marked';
import * as hljs from 'highlight.js';
import {
+ ContextMenu,
+ ContextMenuItem,
Task,
UserOptions,
AuthService
@@ -14,10 +20,12 @@ import {
selector: 'tb-task',
templateUrl: 'app/board/task/task.component.html'
})
-export class TaskDisplay {
+export class TaskDisplay implements OnInit {
private userOptions: UserOptions;
+ private contextMenuItems: Array;
@Input('task') taskData: Task;
+ @Input('add-task') addTask: Function;
constructor(private auth: AuthService,
private sanitizer: DomSanitizer) {
@@ -28,6 +36,18 @@ export class TaskDisplay {
this.initMarked();
}
+ ngOnInit() {
+ this.contextMenuItems = [
+ new ContextMenuItem('View Task'),
+ new ContextMenuItem('Edit Task'),
+ new ContextMenuItem('Delete Task'),
+ new ContextMenuItem('', null, true),
+ new ContextMenuItem('Move to Column:', null, false, false),
+ new ContextMenuItem('', null, true),
+ new ContextMenuItem('Add New Task', this.addTask)
+ ];
+ }
+
getTaskDescription(): SafeHtml {
return this.sanitizer.bypassSecurityTrustHtml(
Marked(this.taskData.description));
diff --git a/src/app/shared/context-menu/context-menu-item.model.ts b/src/app/shared/context-menu/context-menu-item.model.ts
index 04aca30..9d7d33a 100644
--- a/src/app/shared/context-menu/context-menu-item.model.ts
+++ b/src/app/shared/context-menu/context-menu-item.model.ts
@@ -1,7 +1,8 @@
export class ContextMenuItem {
constructor(public text: string = '',
public action: Function = null,
- public isSeparator: boolean = false) {
+ public isSeparator: boolean = false,
+ public canHighlight: boolean = true) {
}
}
diff --git a/src/app/shared/context-menu/context-menu.component.html b/src/app/shared/context-menu/context-menu.component.html
index d584ede..c0855b3 100644
--- a/src/app/shared/context-menu/context-menu.component.html
+++ b/src/app/shared/context-menu/context-menu.component.html
@@ -1,12 +1,15 @@