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,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,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,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,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,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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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,7 +15,7 @@ import {RecentDocumentsBlockComponent} from &quot;../layout/blocks/recent-documents/r
15 import {ProfileImageBlockComponent} from "../layout/blocks/profile-image-block/profile-image-block.component"; 15 import {ProfileImageBlockComponent} from "../layout/blocks/profile-image-block/profile-image-block.component";
16 import {RawHTMLBlockComponent} from "../layout/blocks/raw-html/raw-html.component"; 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 import {CommunitiesBlockComponent} from "./../layout/blocks/communities/communities-block.component"; 19 import {CommunitiesBlockComponent} from "./../layout/blocks/communities/communities-block.component";
20 import {NoosferoTemplate} from "../shared/pipes/noosfero-template.filter"; 20 import {NoosferoTemplate} from "../shared/pipes/noosfero-template.filter";
21 import {DateFormat} from "../shared/pipes/date-format.filter"; 21 import {DateFormat} from "../shared/pipes/date-format.filter";