diff --git a/src/app/layout/navbar/navbar.html b/src/app/layout/navbar/navbar.html
index f1a3efa..1f0d5e5 100644
--- a/src/app/layout/navbar/navbar.html
+++ b/src/app/layout/navbar/navbar.html
@@ -45,10 +45,12 @@
-
+
diff --git a/src/app/main/main.component.ts b/src/app/main/main.component.ts
index 16b82cc..0ad032b 100644
--- a/src/app/main/main.component.ts
+++ b/src/app/main/main.component.ts
@@ -52,6 +52,8 @@ 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
@@ -118,16 +120,16 @@ export class EnvironmentContent {
MembersBlockComponent, NoosferoTemplate, DateFormat, RawHTMLBlockComponent, StatisticsBlockComponent,
LoginBlockComponent, CustomContentComponent, PermissionDirective, SearchFormComponent, SearchComponent,
PersonTagsPluginInterestsBlockComponent, TagsBlockComponent, RecentActivitiesPluginActivitiesBlockComponent,
- ProfileImagesPluginProfileImagesBlockComponent, BlockComponent, RegisterComponent
+ ProfileImagesPluginProfileImagesBlockComponent, BlockComponent, RegisterComponent, TasksMenuComponent
].concat(plugins.mainComponents).concat(plugins.hotspots),
- providers: [AuthService, SessionService, NotificationService, BodyStateClassesService, RegisterService,
+ providers: [AuthService, SessionService, NotificationService, BodyStateClassesService,
"ngAnimate", "ngCookies", "ngStorage", "ngTouch",
"ngSanitize", "ngMessages", "ngAria", "restangular",
"ui.router", "ui.bootstrap", "toastr", "ngCkeditor",
"angular-bind-html-compile", "angularMoment", "angular.filter", "akoenig.deckgrid",
"angular-timeline", "duScroll", "oitozero.ngSweetAlert",
"pascalprecht.translate", "tmh.dynamicLocale", "angularLoad",
- "angular-click-outside", "ngTagCloud", "noosfero.init", "uiSwitch", "ngPassword"]
+ "angular-click-outside", "ngTagCloud", "noosfero.init", "uiSwitch"]
})
@StateConfig([
{
@@ -148,6 +150,7 @@ export class EnvironmentContent {
url: '/',
component: EnvironmentComponent,
name: 'main.environment',
+ abstract: true,
views: {
"content": {
templateUrl: "app/environment/environment.html",
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 fda5ff1..6cae1ea 100644
--- a/src/languages/en.json
+++ b/src/languages/en.json
@@ -124,5 +124,6 @@
"messages.invalid.maxlength": "This field is too long",
"messages.invalid.minlength": "This field is too short",
"messages.invalid.email": "This needs to be a valid email",
- "messages.invalid.passwordMatch": "Your passwords did not match"
+ "messages.invalid.passwordMatch": "Your passwords did not match",
+ "tasks.menu.all": "All tasks"
}
diff --git a/src/languages/pt.json b/src/languages/pt.json
index 1ee7d2a..2637356 100644
--- a/src/languages/pt.json
+++ b/src/languages/pt.json
@@ -128,4 +128,5 @@
"messages.invalid.minlength": "O valor é muito curto",
"messages.invalid.email": "Informe um email válido",
"messages.invalid.passwordMatch": "As senhas não coincidem"
+ "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