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 c5095b2..afdfbf4 100644
--- a/src/app/main/main.component.ts
+++ b/src/app/main/main.component.ts
@@ -1,51 +1,52 @@
import * as plugins from "../../plugins";
-import {bundle, Component, StateConfig, Inject} from "ng-forward";
-import {ArticleBlogComponent} from "./../article/types/blog/blog.component";
-
-import {ArticleViewComponent} from "./../article/article-default-view.component";
-
-import {ProfileComponent} from "../profile/profile.component";
-import {BoxesComponent} from "../layout/boxes/boxes.component";
-import {BlockContentComponent} from "../layout/blocks/block-content.component";
-import {BlockComponent} from "../layout/blocks/block.component";
-import {EnvironmentComponent} from "../environment/environment.component";
-import {EnvironmentHomeComponent} from "../environment/environment-home.component";
-import {PeopleBlockComponent} from "../layout/blocks/people/people-block.component";
-import {DisplayContentBlockComponent} from "../layout/blocks/display-content/display-content-block.component";
-import {LinkListBlockComponent} from "../layout/blocks/link-list/link-list-block.component";
-import {RecentDocumentsBlockComponent} from "../layout/blocks/recent-documents/recent-documents-block.component";
-import {ProfileImageBlockComponent} from "../layout/blocks/profile-image/profile-image-block.component";
-import {RawHTMLBlockComponent} from "../layout/blocks/raw-html/raw-html-block.component";
-import {StatisticsBlockComponent} from "../layout/blocks/statistics/statistics-block.component";
-import {PersonTagsPluginInterestsBlockComponent} from "../layout/blocks/person-tags-plugin-interests/person-tags-plugin-interests-block.component";
-import {TagsBlockComponent} from "../layout/blocks/tags/tags-block.component";
-import {CustomContentComponent} from "../profile/custom-content/custom-content.component";
-import {RecentActivitiesPluginActivitiesBlockComponent} from "../layout/blocks/recent-activities-plugin-activities/recent-activities-plugin-activities-block.component";
-
-import {MembersBlockComponent} from "../layout/blocks/members/members-block.component";
-import {CommunitiesBlockComponent} from "../layout/blocks/communities/communities-block.component";
-
-import {LoginBlockComponent} from "../layout/blocks/login-block/login-block.component";
-
-import {NoosferoTemplate} from "../shared/pipes/noosfero-template.filter";
-import {DateFormat} from "../shared/pipes/date-format.filter";
-
-import {AuthService} from "../login/auth.service";
-import {SessionService} from "../login/session.service";
-import {EnvironmentService} from "./../../lib/ng-noosfero-api/http/environment.service";
-import {NotificationService} from "../shared/services/notification.service";
-
-import {BodyStateClassesService} from "./../layout/services/body-state-classes.service";
-
-import {Navbar} from "../layout/navbar/navbar";
-
-import {SidebarComponent} from "../layout/sidebar/sidebar.component";
-
-import {MainBlockComponent} from "../layout/blocks/main/main-block.component";
-import {HtmlEditorComponent} from "../shared/components/html-editor/html-editor.component";
-import {PermissionDirective} from "../shared/components/permission/permission.directive";
-import {SearchComponent} from "../search/search.component";
-import {SearchFormComponent} from "../search/search-form/search-form.component";
+import { bundle, Component, StateConfig, Inject } from "ng-forward";
+import { ArticleBlogComponent } from "./../article/types/blog/blog.component";
+
+import { ArticleViewComponent } from "./../article/article-default-view.component";
+
+import { ProfileComponent } from "../profile/profile.component";
+import { BoxesComponent } from "../layout/boxes/boxes.component";
+import { BlockContentComponent } from "../layout/blocks/block-content.component";
+import { BlockComponent } from "../layout/blocks/block.component";
+import { EnvironmentComponent } from "../environment/environment.component";
+import { EnvironmentHomeComponent } from "../environment/environment-home.component";
+import { PeopleBlockComponent } from "../layout/blocks/people/people-block.component";
+import { DisplayContentBlockComponent } from "../layout/blocks/display-content/display-content-block.component";
+import { LinkListBlockComponent } from "../layout/blocks/link-list/link-list-block.component";
+import { RecentDocumentsBlockComponent } from "../layout/blocks/recent-documents/recent-documents-block.component";
+import { ProfileImageBlockComponent } from "../layout/blocks/profile-image/profile-image-block.component";
+import { RawHTMLBlockComponent } from "../layout/blocks/raw-html/raw-html-block.component";
+import { StatisticsBlockComponent } from "../layout/blocks/statistics/statistics-block.component";
+import { PersonTagsPluginInterestsBlockComponent } from "../layout/blocks/person-tags-plugin-interests/person-tags-plugin-interests-block.component";
+import { TagsBlockComponent } from "../layout/blocks/tags/tags-block.component";
+import { CustomContentComponent } from "../profile/custom-content/custom-content.component";
+import { RecentActivitiesPluginActivitiesBlockComponent } from "../layout/blocks/recent-activities-plugin-activities/recent-activities-plugin-activities-block.component";
+
+import { MembersBlockComponent } from "../layout/blocks/members/members-block.component";
+import { CommunitiesBlockComponent } from "../layout/blocks/communities/communities-block.component";
+
+import { LoginBlockComponent } from "../layout/blocks/login-block/login-block.component";
+
+import { NoosferoTemplate } from "../shared/pipes/noosfero-template.filter";
+import { DateFormat } from "../shared/pipes/date-format.filter";
+
+import { AuthService } from "../login/auth.service";
+import { SessionService } from "../login/session.service";
+import { EnvironmentService } from "./../../lib/ng-noosfero-api/http/environment.service";
+import { NotificationService } from "../shared/services/notification.service";
+
+import { BodyStateClassesService } from "./../layout/services/body-state-classes.service";
+
+import { Navbar } from "../layout/navbar/navbar";
+
+import { SidebarComponent } from "../layout/sidebar/sidebar.component";
+
+import { MainBlockComponent } from "../layout/blocks/main/main-block.component";
+import { HtmlEditorComponent } from "../shared/components/html-editor/html-editor.component";
+import { PermissionDirective } from "../shared/components/permission/permission.directive";
+import { SearchComponent } from "../search/search.component";
+import { SearchFormComponent } from "../search/search-form/search-form.component";
+import { TasksMenuComponent } from "../task/tasks-menu/tasks-menu.component";
/**
* @ngdoc controller
@@ -107,7 +108,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 ec23074..398cf2e 100644
--- a/src/languages/en.json
+++ b/src/languages/en.json
@@ -97,5 +97,6 @@
"block.edition.display_user.all": "All users",
"block.edition.display_user.logged": "Logged",
"block.edition.display_user.not_logged": "Not logged",
- "block.edition.language.label": "Show for:"
+ "block.edition.language.label": "Show for:",
+ "tasks.menu.all": "All tasks"
}
diff --git a/src/languages/pt.json b/src/languages/pt.json
index 02f7c95..b25ab78 100644
--- a/src/languages/pt.json
+++ b/src/languages/pt.json
@@ -97,5 +97,6 @@
"block.edition.display_user.all": "Todos os usuários",
"block.edition.display_user.logged": "Logados",
"block.edition.display_user.not_logged": "Não logados",
- "block.edition.language.label": "Exibir para:"
+ "block.edition.language.label": "Exibir para:",
+ "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