Commit 0af91d992bc220279a9f65b26640e73501ac6db7
1 parent
1577c09b
List roles when accept add member tasks
Showing
9 changed files
with
91 additions
and
8 deletions
Show diff stats
src/app/task/task-list/task-accept.component.spec.ts
@@ -8,6 +8,7 @@ describe("Components", () => { | @@ -8,6 +8,7 @@ describe("Components", () => { | ||
8 | describe("Task Accept Component", () => { | 8 | describe("Task Accept Component", () => { |
9 | 9 | ||
10 | let task = { id: 1, type: "AddMember" }; | 10 | let task = { id: 1, type: "AddMember" }; |
11 | + let roleService = jasmine.createSpyObj("roleService", ["getByProfile"]); | ||
11 | 12 | ||
12 | beforeEach(angular.mock.module("templates")); | 13 | beforeEach(angular.mock.module("templates")); |
13 | 14 | ||
@@ -15,7 +16,10 @@ describe("Components", () => { | @@ -15,7 +16,10 @@ describe("Components", () => { | ||
15 | return helpers.quickCreateComponent({ | 16 | return helpers.quickCreateComponent({ |
16 | template: htmlTemplate, | 17 | template: htmlTemplate, |
17 | directives: [TaskAcceptComponent], | 18 | directives: [TaskAcceptComponent], |
18 | - properties: { task: task } | 19 | + properties: { task: task }, |
20 | + providers: [ | ||
21 | + helpers.createProviderToValue("RoleService", roleService) | ||
22 | + ] | ||
19 | }); | 23 | }); |
20 | } | 24 | } |
21 | 25 |
src/app/task/types/add-member/add-member-accept.html
@@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
2 | <label>Select Roles:</label> | 2 | <label>Select Roles:</label> |
3 | <div class="form-group roles"> | 3 | <div class="form-group roles"> |
4 | <div class="checkbox" ng-repeat="role in ctrl.roles"> | 4 | <div class="checkbox" ng-repeat="role in ctrl.roles"> |
5 | - <input type="checkbox"> {{role}} | 5 | + <input type="checkbox"> {{role.name}} |
6 | </div> | 6 | </div> |
7 | </div> | 7 | </div> |
8 | </div> | 8 | </div> |
src/app/task/types/add-member/add-member-task-accept.component.ts
1 | import { Component, Input, Inject } from "ng-forward"; | 1 | import { Component, Input, Inject } from "ng-forward"; |
2 | +import { RoleService } from "../../../../lib/ng-noosfero-api/http/role.service"; | ||
2 | 3 | ||
3 | @Component({ | 4 | @Component({ |
4 | selector: "add-member-task-accept", | 5 | selector: "add-member-task-accept", |
5 | templateUrl: "app/task/types/add-member/add-member-accept.html", | 6 | templateUrl: "app/task/types/add-member/add-member-accept.html", |
6 | }) | 7 | }) |
8 | +@Inject(RoleService) | ||
7 | export class AddMemberTaskAcceptComponent { | 9 | export class AddMemberTaskAcceptComponent { |
8 | 10 | ||
9 | @Input() task: noosfero.Task; | 11 | @Input() task: noosfero.Task; |
10 | - roles: any; | 12 | + roles: noosfero.Role[]; |
11 | 13 | ||
12 | - constructor() { | ||
13 | - // TODO list roles from API | ||
14 | - this.roles = ["Profile Administrator", "Member", "Moderator"]; | ||
15 | - } | 14 | + constructor(private roleService: RoleService) { } |
16 | 15 | ||
16 | + ngOnInit() { | ||
17 | + if (!this.task.target) return; | ||
18 | + this.roleService.getByProfile(this.task.target.id).then((result: noosfero.RestResult<noosfero.Role[]>) => { | ||
19 | + this.roles = result.data; | ||
20 | + }); | ||
21 | + } | ||
17 | } | 22 | } |
@@ -0,0 +1,33 @@ | @@ -0,0 +1,33 @@ | ||
1 | +import { RoleService } from "./role.service"; | ||
2 | + | ||
3 | +describe("Services", () => { | ||
4 | + | ||
5 | + describe("Role Service", () => { | ||
6 | + | ||
7 | + let $httpBackend: ng.IHttpBackendService; | ||
8 | + let roleService: RoleService; | ||
9 | + | ||
10 | + beforeEach(angular.mock.module("main", ($translateProvider: angular.translate.ITranslateProvider) => { | ||
11 | + $translateProvider.translations('en', {}); | ||
12 | + })); | ||
13 | + | ||
14 | + beforeEach(inject((_$httpBackend_: ng.IHttpBackendService, _RoleService_: RoleService) => { | ||
15 | + $httpBackend = _$httpBackend_; | ||
16 | + roleService = _RoleService_; | ||
17 | + })); | ||
18 | + | ||
19 | + | ||
20 | + describe("Succesfull requests", () => { | ||
21 | + | ||
22 | + it("list organization roles", (done) => { | ||
23 | + $httpBackend.expectGET(`/api/v1/profiles/1/roles`).respond(200, { roles: [{ id: 1 }] }); | ||
24 | + roleService.getByProfile(1).then((result: noosfero.RestResult<noosfero.Role[]>) => { | ||
25 | + expect(result.data).toEqual([{ id: 1 }]); | ||
26 | + done(); | ||
27 | + }); | ||
28 | + $httpBackend.flush(); | ||
29 | + }); | ||
30 | + }); | ||
31 | + | ||
32 | + }); | ||
33 | +}); |
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +import { Injectable, Inject } from "ng-forward"; | ||
2 | +import { RestangularService } from "./restangular_service"; | ||
3 | + | ||
4 | +@Injectable() | ||
5 | +@Inject("Restangular", "$q", "$log") | ||
6 | +export class RoleService extends RestangularService<noosfero.Role> { | ||
7 | + | ||
8 | + constructor(Restangular: restangular.IService, $q: ng.IQService, $log: ng.ILogService) { | ||
9 | + super(Restangular, $q, $log); | ||
10 | + } | ||
11 | + | ||
12 | + getResourcePath() { | ||
13 | + return "roles"; | ||
14 | + } | ||
15 | + | ||
16 | + getDataKeys() { | ||
17 | + return { | ||
18 | + singular: 'role', | ||
19 | + plural: 'roles' | ||
20 | + }; | ||
21 | + } | ||
22 | + | ||
23 | + getByProfile(profileId: number, params: any = {}) { | ||
24 | + return this.list(this.restangularService.one("profiles", profileId), params); | ||
25 | + } | ||
26 | + | ||
27 | +} |
src/lib/ng-noosfero-api/http/task.service.spec.ts
@@ -21,7 +21,7 @@ describe("Services", () => { | @@ -21,7 +21,7 @@ describe("Services", () => { | ||
21 | describe("Succesfull requests", () => { | 21 | describe("Succesfull requests", () => { |
22 | 22 | ||
23 | it("list pending tasks", (done) => { | 23 | it("list pending tasks", (done) => { |
24 | - $httpBackend.expectGET(`/api/v1/tasks?all_pending=true`).respond(200, { tasks: [{ id: 1 }] }); | 24 | + $httpBackend.expectGET(`/api/v1/tasks?all_pending=true&status=1`).respond(200, { tasks: [{ id: 1 }] }); |
25 | taskService.getAllPending().then((result: noosfero.RestResult<noosfero.Task[]>) => { | 25 | taskService.getAllPending().then((result: noosfero.RestResult<noosfero.Task[]>) => { |
26 | expect(result.data).toEqual([{ id: 1 }]); | 26 | expect(result.data).toEqual([{ id: 1 }]); |
27 | done(); | 27 | done(); |
src/lib/ng-noosfero-api/http/task.service.ts
@@ -22,6 +22,7 @@ export class TaskService extends RestangularService<noosfero.Task> { | @@ -22,6 +22,7 @@ export class TaskService extends RestangularService<noosfero.Task> { | ||
22 | 22 | ||
23 | getAllPending(params: any = {}) { | 23 | getAllPending(params: any = {}) { |
24 | params['all_pending'] = true; | 24 | params['all_pending'] = true; |
25 | + params['status'] = 1; | ||
25 | return this.list(null, params); | 26 | return this.list(null, params); |
26 | } | 27 | } |
27 | 28 |
src/lib/ng-noosfero-api/interfaces/task.ts