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 | 8 | describe("Task Accept Component", () => { |
9 | 9 | |
10 | 10 | let task = { id: 1, type: "AddMember" }; |
11 | + let roleService = jasmine.createSpyObj("roleService", ["getByProfile"]); | |
11 | 12 | |
12 | 13 | beforeEach(angular.mock.module("templates")); |
13 | 14 | |
... | ... | @@ -15,7 +16,10 @@ describe("Components", () => { |
15 | 16 | return helpers.quickCreateComponent({ |
16 | 17 | template: htmlTemplate, |
17 | 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
src/app/task/types/add-member/add-member-task-accept.component.ts
1 | 1 | import { Component, Input, Inject } from "ng-forward"; |
2 | +import { RoleService } from "../../../../lib/ng-noosfero-api/http/role.service"; | |
2 | 3 | |
3 | 4 | @Component({ |
4 | 5 | selector: "add-member-task-accept", |
5 | 6 | templateUrl: "app/task/types/add-member/add-member-accept.html", |
6 | 7 | }) |
8 | +@Inject(RoleService) | |
7 | 9 | export class AddMemberTaskAcceptComponent { |
8 | 10 | |
9 | 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 @@ |
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 @@ |
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 | 21 | describe("Succesfull requests", () => { |
22 | 22 | |
23 | 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 | 25 | taskService.getAllPending().then((result: noosfero.RestResult<noosfero.Task[]>) => { |
26 | 26 | expect(result.data).toEqual([{ id: 1 }]); |
27 | 27 | done(); | ... | ... |
src/lib/ng-noosfero-api/http/task.service.ts