diff --git a/src/app/layout/navbar/navbar.html b/src/app/layout/navbar/navbar.html
index bc01adc..bf27ee2 100644
--- a/src/app/layout/navbar/navbar.html
+++ b/src/app/layout/navbar/navbar.html
@@ -39,10 +39,12 @@
-
+
diff --git a/src/app/main/main.component.ts b/src/app/main/main.component.ts
index 8a4b1b1..9e21d15 100644
--- a/src/app/main/main.component.ts
+++ b/src/app/main/main.component.ts
@@ -46,9 +46,10 @@ import { HtmlEditorComponent } from "../shared/components/html-editor/html-edito
import { PermissionDirective } from "../shared/components/permission/permission.directive";
import { SearchComponent } from "../search/search.component";
import { SearchFormComponent } from "../search/search-form/search-form.component";
-
import { EVENTS_HUB_KNOW_EVENT_NAMES, EventsHubService } from "../shared/services/events-hub.service";
import { NoosferoKnownEvents } from "../known-events";
+import { TasksMenuComponent } from "../task/tasks-menu/tasks-menu.component";
+
/**
* @ngdoc controller
* @name main.MainContentComponent
@@ -113,7 +114,8 @@ export class EnvironmentContent {
MainBlockComponent, RecentDocumentsBlockComponent, Navbar, SidebarComponent, ProfileImageBlockComponent,
MembersBlockComponent, NoosferoTemplate, DateFormat, RawHTMLBlockComponent, StatisticsBlockComponent,
LoginBlockComponent, CustomContentComponent, PermissionDirective, SearchFormComponent, SearchComponent,
- PersonTagsPluginInterestsBlockComponent, TagsBlockComponent, RecentActivitiesPluginActivitiesBlockComponent, BlockComponent
+ PersonTagsPluginInterestsBlockComponent, TagsBlockComponent, RecentActivitiesPluginActivitiesBlockComponent, BlockComponent,
+ TasksMenuComponent
].concat(plugins.mainComponents).concat(plugins.hotspots),
providers: [AuthService, SessionService, NotificationService, BodyStateClassesService,
"ngAnimate", "ngCookies", "ngStorage", "ngTouch",
diff --git a/src/app/task/tasks-menu/tasks-menu.component.ts b/src/app/task/tasks-menu/tasks-menu.component.ts
new file mode 100644
index 0000000..f02a836
--- /dev/null
+++ b/src/app/task/tasks-menu/tasks-menu.component.ts
@@ -0,0 +1,24 @@
+import { Component, Inject } from "ng-forward";
+import { TaskService } from "../../../lib/ng-noosfero-api/http/task.service";
+
+@Component({
+ selector: "tasks-menu",
+ templateUrl: "app/task/tasks-menu/tasks-menu.html"
+})
+@Inject(TaskService)
+export class TasksMenuComponent {
+
+ tasks: noosfero.Task[];
+ total: number;
+ perPage: 5;
+
+ constructor(private taskService: TaskService) { }
+
+ ngOnInit() {
+ this.taskService.getAllPending({ per_page: this.perPage }).then((result: noosfero.RestResult) => {
+ this.total = result.headers('total');
+ this.tasks = result.data;
+ });
+ }
+
+}
diff --git a/src/app/task/tasks-menu/tasks-menu.html b/src/app/task/tasks-menu/tasks-menu.html
new file mode 100644
index 0000000..2830c1d
--- /dev/null
+++ b/src/app/task/tasks-menu/tasks-menu.html
@@ -0,0 +1,20 @@
+
diff --git a/src/app/task/tasks-menu/tasks-menu.scss b/src/app/task/tasks-menu/tasks-menu.scss
new file mode 100644
index 0000000..938191c
--- /dev/null
+++ b/src/app/task/tasks-menu/tasks-menu.scss
@@ -0,0 +1,32 @@
+.tasks-menu {
+ position: relative;
+ margin-right: 0;
+ .badge {
+ position: absolute;
+ top: 1px;
+ right: 8px;
+ border-radius: 6px;
+ }
+ i {
+ color: #FFF;
+ }
+ .task-list {
+ width: 500px;
+ padding: 16px 16px 8px 16px;
+ .task {
+ .time {
+ color: #c1c1c1;
+ font-size: 12px;
+ .bullet-separator {
+ font-size: 10px;
+ color: #d1d1d1;
+ }
+ }
+ }
+ .all-tasks {
+ text-align: center;
+ width: 100%;
+ display: inline-block;
+ }
+ }
+}
diff --git a/src/languages/en.json b/src/languages/en.json
index 6e62366..f63366a 100644
--- a/src/languages/en.json
+++ b/src/languages/en.json
@@ -100,5 +100,6 @@
"block.edition.language.label": "Show for:",
"activities.event.description": "Event on",
"time.at": "at",
- "date.on": "On"
+ "date.on": "On",
+ "tasks.menu.all": "All tasks"
}
diff --git a/src/languages/pt.json b/src/languages/pt.json
index 3845dda..32f7ec1 100644
--- a/src/languages/pt.json
+++ b/src/languages/pt.json
@@ -100,5 +100,6 @@
"block.edition.language.label": "Exibir para:",
"activities.event.description": "Evento em",
"time.at": "às",
- "date.on": "Em"
+ "date.on": "Em",
+ "tasks.menu.all": "Todas as tarefas"
}
diff --git a/src/lib/ng-noosfero-api/http/task.service.ts b/src/lib/ng-noosfero-api/http/task.service.ts
new file mode 100644
index 0000000..7f39e95
--- /dev/null
+++ b/src/lib/ng-noosfero-api/http/task.service.ts
@@ -0,0 +1,26 @@
+import { Injectable, Inject } from "ng-forward";
+import { RestangularService } from "./restangular_service";
+
+@Injectable()
+@Inject("Restangular", "$q", "$log")
+export class TaskService extends RestangularService {
+
+ constructor(Restangular: restangular.IService, $q: ng.IQService, $log: ng.ILogService) {
+ super(Restangular, $q, $log);
+ }
+
+ getResourcePath() {
+ return "tasks";
+ }
+
+ getDataKeys() {
+ return {
+ singular: 'task',
+ plural: 'tasks'
+ };
+ }
+
+ getAllPending(params: any) {
+ return this.list(null, { all_pending: true });
+ }
+}
diff --git a/src/lib/ng-noosfero-api/interfaces/task.ts b/src/lib/ng-noosfero-api/interfaces/task.ts
new file mode 100644
index 0000000..3ccc7e4
--- /dev/null
+++ b/src/lib/ng-noosfero-api/interfaces/task.ts
@@ -0,0 +1,11 @@
+namespace noosfero {
+ /**
+ * @ngdoc interface
+ * @name noosfero.Task
+ * @description
+ * A representation of a Task in Noosfero.
+ */
+ export interface Task extends RestModel {
+ type: string;
+ }
+}
--
libgit2 0.21.2