Commit 2b6b1400de03e4cf62ba334f45b23714baa60071

Authored by Leandro Santos
1 parent 11081744

refactoring members block

src/app/layout/blocks/members-block/index.ts
... ... @@ -1,2 +0,0 @@
1   -/* Module Index Entry - generated using the script npm run generate-index */
2   -export * from "./members-block.component";
src/app/layout/blocks/members-block/members-block.component.spec.ts
... ... @@ -1,49 +0,0 @@
1   -import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder';
2   -import {Provider, Input, provide, Component} from 'ng-forward';
3   -import {MembersBlockComponent} from './members-block.component';
4   -import {ComponentTestHelper, createClass} from './../../../../spec/component-test-helper';
5   -
6   -const htmlTemplate: string = '<noosfero-members-block [block]="ctrl.block" [owner]="ctrl.owner"></noosfero-members-block>';
7   -
8   -const tcb = new TestComponentBuilder();
9   -
10   -describe("Components", () => {
11   - describe("Members Block Component", () => {
12   -
13   - let helper: ComponentTestHelper<MembersBlockComponent>;
14   -
15   - let providers = [
16   - new Provider('ProfileService', {
17   - useValue: {
18   - getProfileMembers: (profileId: number, filters: any): any => {
19   - return Promise.resolve({ data: { people: [{ identifier: "person1" }] } });
20   - }
21   - }
22   - }),
23   - ];
24   -
25   - beforeEach(angular.mock.module("templates"));
26   -
27   - beforeEach((done) => {
28   - // Custom properties for the component
29   - let properties = { owner: { id: 1 } };
30   - // Create the component bed for the test.
31   - let cls = createClass({
32   - template: htmlTemplate,
33   - directives: [MembersBlockComponent],
34   - providers: providers,
35   - properties: properties
36   - });
37   - helper = new ComponentTestHelper<MembersBlockComponent>(cls, done);
38   - });
39   -
40   - it("get members of the block owner", () => {
41   - expect(helper.component.members[0].identifier).toEqual("person1");
42   - });
43   -
44   - it("render the profile image for each member", () => {
45   - expect(helper.all("noosfero-profile-image").length).toEqual(1);
46   - });
47   -
48   - });
49   -});
src/app/layout/blocks/members-block/members-block.component.ts
... ... @@ -1,25 +0,0 @@
1   -import {Input, Inject, Component} from "ng-forward";
2   -import {ProfileService} from "../../../../lib/ng-noosfero-api/http/profile.service";
3   -
4   -@Component({
5   - selector: "noosfero-members-block",
6   - templateUrl: 'app/layout/blocks/members-block/members-block.html',
7   -})
8   -@Inject(ProfileService)
9   -export class MembersBlockComponent {
10   -
11   - @Input() block: noosfero.Block;
12   - @Input() owner: noosfero.Profile;
13   -
14   - members: any = [];
15   -
16   - constructor(private profileService: ProfileService) {
17   -
18   - }
19   -
20   - ngOnInit() {
21   - this.profileService.getProfileMembers(this.owner.id, { per_page: 6 }).then((response: any) => {
22   - this.members = response.data.people;
23   - });
24   - }
25   -}
src/app/layout/blocks/members-block/members-block.html
... ... @@ -1,5 +0,0 @@
1   -<div class="members-block">
2   - <a ng-repeat="member in ctrl.members" ui-sref="main.profile.home({profile: member.identifier})" class="member">
3   - <noosfero-profile-image [profile]="member"></noosfero-profile-image>
4   - </a>
5   -</div>
src/app/layout/blocks/members-block/members-block.scss
... ... @@ -1,17 +0,0 @@
1   -.members-block {
2   - .member {
3   - img, i.profile-image {
4   - width: 60px;
5   - }
6   - img {
7   - display: inline-block;
8   - vertical-align: top;
9   - }
10   - i.profile-image {
11   - text-align: center;
12   - background-color: #889DB1;
13   - color: #F1F1F1;
14   - font-size: 4.5em;
15   - }
16   - }
17   -}
src/app/layout/blocks/members/index.ts 0 → 100644
... ... @@ -0,0 +1,2 @@
  1 +/* Module Index Entry - generated using the script npm run generate-index */
  2 +export * from "./members-block.component";
... ...
src/app/layout/blocks/members/members-block.component.spec.ts 0 → 100644
... ... @@ -0,0 +1,49 @@
  1 +import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder';
  2 +import {Provider, Input, provide, Component} from 'ng-forward';
  3 +import {MembersBlockComponent} from './members-block.component';
  4 +import {ComponentTestHelper, createClass} from './../../../../spec/component-test-helper';
  5 +
  6 +const htmlTemplate: string = '<noosfero-members-block [block]="ctrl.block" [owner]="ctrl.owner"></noosfero-members-block>';
  7 +
  8 +const tcb = new TestComponentBuilder();
  9 +
  10 +describe("Components", () => {
  11 + describe("Members Block Component", () => {
  12 +
  13 + let helper: ComponentTestHelper<MembersBlockComponent>;
  14 +
  15 + let providers = [
  16 + new Provider('ProfileService', {
  17 + useValue: {
  18 + getProfileMembers: (profileId: number, filters: any): any => {
  19 + return Promise.resolve({ data: { people: [{ identifier: "person1" }] } });
  20 + }
  21 + }
  22 + }),
  23 + ];
  24 +
  25 + beforeEach(angular.mock.module("templates"));
  26 +
  27 + beforeEach((done) => {
  28 + // Custom properties for the component
  29 + let properties = { owner: { id: 1 } };
  30 + // Create the component bed for the test.
  31 + let cls = createClass({
  32 + template: htmlTemplate,
  33 + directives: [MembersBlockComponent],
  34 + providers: providers,
  35 + properties: properties
  36 + });
  37 + helper = new ComponentTestHelper<MembersBlockComponent>(cls, done);
  38 + });
  39 +
  40 + it("get members of the block owner", () => {
  41 + expect(helper.component.members[0].identifier).toEqual("person1");
  42 + });
  43 +
  44 + it("render the profile image for each member", () => {
  45 + expect(helper.all("noosfero-profile-image").length).toEqual(1);
  46 + });
  47 +
  48 + });
  49 +});
... ...
src/app/layout/blocks/members/members-block.component.ts 0 → 100644
... ... @@ -0,0 +1,25 @@
  1 +import {Input, Inject, Component} from "ng-forward";
  2 +import {ProfileService} from "../../../../lib/ng-noosfero-api/http/profile.service";
  3 +
  4 +@Component({
  5 + selector: "noosfero-members-block",
  6 + templateUrl: 'app/layout/blocks/members/members-block.html',
  7 +})
  8 +@Inject(ProfileService)
  9 +export class MembersBlockComponent {
  10 +
  11 + @Input() block: noosfero.Block;
  12 + @Input() owner: noosfero.Profile;
  13 +
  14 + members: any = [];
  15 +
  16 + constructor(private profileService: ProfileService) {
  17 +
  18 + }
  19 +
  20 + ngOnInit() {
  21 + this.profileService.getProfileMembers(this.owner.id, { per_page: 6 }).then((response: any) => {
  22 + this.members = response.data.people;
  23 + });
  24 + }
  25 +}
... ...
src/app/layout/blocks/members/members-block.html 0 → 100644
... ... @@ -0,0 +1,5 @@
  1 +<div class="members-block">
  2 + <a ng-repeat="member in ctrl.members" ui-sref="main.profile.home({profile: member.identifier})" class="member">
  3 + <noosfero-profile-image [profile]="member"></noosfero-profile-image>
  4 + </a>
  5 +</div>
... ...
src/app/layout/blocks/members/members-block.scss 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +.members-block {
  2 + .member {
  3 + img, i.profile-image {
  4 + width: 60px;
  5 + }
  6 + img {
  7 + display: inline-block;
  8 + vertical-align: top;
  9 + }
  10 + i.profile-image {
  11 + text-align: center;
  12 + background-color: #889DB1;
  13 + color: #F1F1F1;
  14 + font-size: 4.5em;
  15 + }
  16 + }
  17 +}
... ...
src/app/main/main.component.ts
... ... @@ -15,7 +15,7 @@ import {RecentDocumentsBlockComponent} from &quot;../layout/blocks/recent-documents/r
15 15 import {ProfileImageBlockComponent} from "../layout/blocks/profile-image-block/profile-image-block.component";
16 16 import {RawHTMLBlockComponent} from "../layout/blocks/raw-html/raw-html.component";
17 17  
18   -import {MembersBlockComponent} from "./../layout/blocks/members-block/members-block.component";
  18 +import {MembersBlockComponent} from "./../layout/blocks/members/members-block.component";
19 19 import {CommunitiesBlockComponent} from "./../layout/blocks/communities/communities-block.component";
20 20 import {NoosferoTemplate} from "../shared/pipes/noosfero-template.filter";
21 21 import {DateFormat} from "../shared/pipes/date-format.filter";
... ...