tasks-menu.component.ts
1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import { Component, Inject } from "ng-forward";
import { TaskService } from "../../../lib/ng-noosfero-api/http/task.service";
import { AuthService, SessionService, AuthEvents } from "./../../login";
import { EventsHubService } from "../../shared/services/events-hub.service";
import { NoosferoKnownEvents } from "../../known-events";
@Component({
selector: "tasks-menu",
templateUrl: "app/task/tasks-menu/tasks-menu.html"
})
@Inject(TaskService, SessionService, AuthService, EventsHubService)
export class TasksMenuComponent {
tasks: noosfero.Task[];
total: number;
perPage = 5;
person: noosfero.Person;
eventsNames: NoosferoKnownEvents;
constructor(private taskService: TaskService,
private session: SessionService,
private authService: AuthService,
private eventsHubService: EventsHubService) {
this.eventsNames = new NoosferoKnownEvents();
}
ngOnInit() {
this.eventsHubService.subscribeToEvent(this.eventsNames.TASK_CLOSED, (task: noosfero.Task) => {
this.total--;
});
this.authService.subscribe(AuthEvents[AuthEvents.loginSuccess], () => {
this.loadTasks();
});
this.loadTasks();
}
loadTasks() {
if (!this.session.currentUser()) return;
this.person = this.session.currentUser().person;
this.taskService.getAllPending({ per_page: this.perPage }).then((result: noosfero.RestResult<noosfero.Task[]>) => {
this.total = result.headers('total');
this.tasks = result.data;
});
}
}