diff --git a/src/app/components/noosfero-activities/activities.component.js b/src/app/components/noosfero-activities/activities.component.js
deleted file mode 100644
index f8cb702..0000000
--- a/src/app/components/noosfero-activities/activities.component.js
+++ /dev/null
@@ -1,14 +0,0 @@
-(function() {
- 'use strict';
-
- angular
- .module('noosferoApp')
- .component('noosferoActivities', {
- restrict: 'E',
- bindings: {
- activities: '<'
- },
- templateUrl: 'app/components/noosfero-activities/activities.html'
- });
-
-})();
diff --git a/src/app/components/noosfero-activities/activities.component.spec.ts b/src/app/components/noosfero-activities/activities.component.spec.ts
new file mode 100644
index 0000000..a755374
--- /dev/null
+++ b/src/app/components/noosfero-activities/activities.component.spec.ts
@@ -0,0 +1,36 @@
+import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder';
+import {Pipe, Input, provide, Component} from 'ng-forward';
+import {provideFilters} from '../../../spec/helpers';
+
+import {NoosferoActivities} from './activities.component';
+
+const tcb = new TestComponentBuilder();
+
+const htmlTemplate: string = '';
+
+
+describe("Components", () => {
+
+ describe("Noosfero Activities", () => {
+
+ beforeEach(angular.mock.module("templates"));
+
+ @Component({
+ selector: 'test-container-component',
+ template: htmlTemplate,
+ directives: [NoosferoActivities],
+ providers: provideFilters("truncateFilter", "stripTagsFilter")
+ })
+ class BlockContainerComponent {
+ activities = [{ name: "activity1", verb: "create_article" }, { name: "activity2", verb: "create_article" }];
+ }
+
+ it("render a noosfero activity tag for each activity", done => {
+ tcb.createAsync(BlockContainerComponent).then(fixture => {
+ expect(fixture.debugElement.queryAll("noosfero-activity").length).toEqual(2);
+ done();
+ });
+ });
+ });
+
+});
diff --git a/src/app/components/noosfero-activities/activities.component.ts b/src/app/components/noosfero-activities/activities.component.ts
index 9bdcf71..7fe9715 100644
--- a/src/app/components/noosfero-activities/activities.component.ts
+++ b/src/app/components/noosfero-activities/activities.component.ts
@@ -1,13 +1,14 @@
-(function() {
- 'use strict';
+import {Component, Input} from "ng-forward";
+import {NoosferoActivity} from "./activity/activity.component";
+import {Activity} from "../../models/interfaces";
- angular
- .module('noosferoApp')
- .component('noosferoActivities', {
- bindings: {
- activities: '<'
- },
- templateUrl: 'app/components/noosfero-activities/activities.html'
- });
+@Component({
+ selector: "noosfero-activities",
+ templateUrl: 'app/components/noosfero-activities/activities.html',
+ directives: [NoosferoActivity]
+})
+export class NoosferoActivities {
-})();
+ @Input() activities: Activity[];
+
+}
diff --git a/src/app/components/noosfero-activities/activities.html b/src/app/components/noosfero-activities/activities.html
index 878ce7f..f99e3e3 100644
--- a/src/app/components/noosfero-activities/activities.html
+++ b/src/app/components/noosfero-activities/activities.html
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/src/app/components/noosfero-activities/activity/activity.component.js b/src/app/components/noosfero-activities/activity/activity.component.js
deleted file mode 100644
index 8aa9fbb..0000000
--- a/src/app/components/noosfero-activities/activity/activity.component.js
+++ /dev/null
@@ -1,24 +0,0 @@
-(function() {
- 'use strict';
-
- angular
- .module('noosferoApp')
- .component('noosferoActivity', {
- restrict: 'E',
- bindings: {
- activity: '<'
- },
- templateUrl: 'app/components/noosfero-activities/activity/activity.html',
- replace: true,
- controller: ActivityController
- });
-
- /** @ngInject */
- function ActivityController() {
- var vm = this;
- vm.getActivityTemplate = function(activity) {
- return 'app/components/noosfero-activities/activity/' + activity.verb + '.html';
- }
- }
-
-})();
diff --git a/src/app/components/noosfero-activities/activity/activity.component.spec.ts b/src/app/components/noosfero-activities/activity/activity.component.spec.ts
new file mode 100644
index 0000000..9f9d276
--- /dev/null
+++ b/src/app/components/noosfero-activities/activity/activity.component.spec.ts
@@ -0,0 +1,38 @@
+import {TestComponentBuilder} from 'ng-forward/cjs/testing/test-component-builder';
+import {Pipe, Input, provide, Component} from 'ng-forward';
+import {provideFilters} from '../../../../spec/helpers';
+
+import {NoosferoActivity} from './activity.component';
+
+const tcb = new TestComponentBuilder();
+
+const htmlTemplate: string = '';
+
+
+describe("Components", () => {
+
+ describe("Noosfero Activity", () => {
+
+ beforeEach(angular.mock.module("templates"));
+
+ @Component({
+ selector: 'test-container-component',
+ template: htmlTemplate,
+ directives: [NoosferoActivity],
+ providers: provideFilters("truncateFilter", "stripTagsFilter")
+ })
+ class BlockContainerComponent {
+ activity = { name: "activity1", verb: "create_article" };
+ }
+
+ it("render the specific template for an activity verb", done => {
+ tcb.createAsync(BlockContainerComponent).then(fixture => {
+ let component: NoosferoActivity = fixture.debugElement.componentViewChildren[0].componentInstance;
+ expect(component.getActivityTemplate()).toEqual('app/components/noosfero-activities/activity/create_article.html');
+ expect(fixture.debugElement.queryAll(".activity.create_article").length).toEqual(1);
+ done();
+ });
+ });
+ });
+
+});
diff --git a/src/app/components/noosfero-activities/activity/activity.component.ts b/src/app/components/noosfero-activities/activity/activity.component.ts
new file mode 100644
index 0000000..7d0db9c
--- /dev/null
+++ b/src/app/components/noosfero-activities/activity/activity.component.ts
@@ -0,0 +1,16 @@
+import {Component, Input} from "ng-forward";
+import {Activity} from "../../../models/interfaces";
+
+@Component({
+ selector: "noosfero-activity",
+ templateUrl: 'app/components/noosfero-activities/activity/activity.html'
+})
+export class NoosferoActivity {
+
+ @Input() activity: Activity;
+
+ getActivityTemplate() {
+ return 'app/components/noosfero-activities/activity/' + this.activity.verb + '.html';
+ }
+
+}
diff --git a/src/app/components/noosfero-activities/activity/activity.html b/src/app/components/noosfero-activities/activity/activity.html
index 2e266ea..0bcc9b7 100644
--- a/src/app/components/noosfero-activities/activity/activity.html
+++ b/src/app/components/noosfero-activities/activity/activity.html
@@ -1,3 +1,3 @@
-
-
+
+
diff --git a/src/app/components/noosfero-activities/activity/add_member_in_community.html b/src/app/components/noosfero-activities/activity/add_member_in_community.html
index 3f9c436..67c9b23 100644
--- a/src/app/components/noosfero-activities/activity/add_member_in_community.html
+++ b/src/app/components/noosfero-activities/activity/add_member_in_community.html
@@ -4,10 +4,10 @@
-
+
has joined the community
-
+
diff --git a/src/app/components/noosfero-activities/activity/create_article.html b/src/app/components/noosfero-activities/activity/create_article.html
index f2ff140..eddf3f3 100644
--- a/src/app/components/noosfero-activities/activity/create_article.html
+++ b/src/app/components/noosfero-activities/activity/create_article.html
@@ -4,22 +4,22 @@
-
+
has published on
-
-
+
+
-
+
diff --git a/src/app/components/noosfero-activities/activity/new_friendship.html b/src/app/components/noosfero-activities/activity/new_friendship.html
index 0916deb..e237ad9 100644
--- a/src/app/components/noosfero-activities/activity/new_friendship.html
+++ b/src/app/components/noosfero-activities/activity/new_friendship.html
@@ -4,15 +4,15 @@
-
- has made new friend(s):
+
+ has made new friend(s):
-
+
-
+
diff --git a/src/app/index.ts b/src/app/index.ts
index 1d48905..6a75122 100644
--- a/src/app/index.ts
+++ b/src/app/index.ts
@@ -42,8 +42,6 @@ NoosferoApp.run(noosferoAngularRunBlock);
NoosferoApp.addController("AuthController", AuthController);
-require("./components/noosfero-activities/activities.component.js");
-require("./components/noosfero-activities/activity/activity.component.js");
require("./components/noosfero/noosfero-template.filter.js");
require("./components/noosfero/noosfero.service.js");
require("./components/noosfero/profile-image/profile-image.component.js");
diff --git a/src/app/models/interfaces.ts b/src/app/models/interfaces.ts
index cfc0641..3c5bc5c 100644
--- a/src/app/models/interfaces.ts
+++ b/src/app/models/interfaces.ts
@@ -51,6 +51,10 @@ export interface Box {
position: number;
}
+export interface Activity {
+ verb: string;
+}
+
export interface INoosferoLocalStorage extends angular.storage.ILocalStorageService {
currentUser: User;
-}
\ No newline at end of file
+}
diff --git a/src/app/profile-info/profile-info.html b/src/app/profile-info/profile-info.html
index b1ed0b4..61dec0b 100644
--- a/src/app/profile-info/profile-info.html
+++ b/src/app/profile-info/profile-info.html
@@ -2,5 +2,5 @@
Profile Wall
-
+
diff --git a/src/app/profile/profile.component.ts b/src/app/profile/profile.component.ts
index c1c3019..c62c2c9 100644
--- a/src/app/profile/profile.component.ts
+++ b/src/app/profile/profile.component.ts
@@ -3,12 +3,14 @@ import {ProfileInfo} from '../profile-info/profile-info.component';
import {ProfileHome} from '../profile/profile-home.component';
import {Cms} from '../cms/cms.component';
import {ContentViewer} from "../content-viewer/content-viewer.component";
+import {NoosferoActivities} from "../components/noosfero-activities/activities.component";
import * as noosferoModels from "./../models/interfaces";
@Component({
selector: 'profile',
- templateUrl: "app/profile/profile.html"
+ templateUrl: "app/profile/profile.html",
+ directives: [NoosferoActivities]
})
@StateConfig([
{
--
libgit2 0.21.2