diff --git a/src/app/layout/boxes/box.html b/src/app/layout/boxes/box.html
index a0de606..4b514ca 100644
--- a/src/app/layout/boxes/box.html
+++ b/src/app/layout/boxes/box.html
@@ -1,3 +1,3 @@
-
+
diff --git a/src/app/layout/boxes/boxes.component.spec.ts b/src/app/layout/boxes/boxes.component.spec.ts
index d7d0534..0db1b6e 100644
--- a/src/app/layout/boxes/boxes.component.spec.ts
+++ b/src/app/layout/boxes/boxes.component.spec.ts
@@ -53,35 +53,4 @@ describe("Boxes Component", () => {
expect(helper.component.boxesOrder(properties['boxes'][0])).toEqual(1);
expect(helper.component.boxesOrder(properties['boxes'][1])).toEqual(0);
});
-
- it("set isHomepage as false by default", () => {
- expect(helper.component.isHomepage).toBeFalsy();
- });
-
- it("set isHomepage as true when in profile home page", () => {
- state.current = { name: "main.profile.home" };
- helper.component.ngOnInit();
- expect(helper.component.isHomepage).toBeTruthy();
- });
-
- it("set isHomepage as true when in profile info page", () => {
- state.current = { name: "main.profile.info" };
- helper.component.ngOnInit();
- expect(helper.component.isHomepage).toBeTruthy();
- });
-
- it("set isHomepage as true when in profile page", () => {
- state.current = { name: "main.profile.page" };
- state.params = { page: "/page" };
- (
helper.component.owner).homepage = '/page';
- helper.component.ngOnInit();
- expect(helper.component.isHomepage).toBeTruthy();
- });
-
- it("set isHomepage as true when in environment home page", () => {
- state.current = { name: "main.environment.home" };
- helper.component.owner = {};
- helper.component.ngOnInit();
- expect(helper.component.isHomepage).toBeTruthy();
- });
});
diff --git a/src/app/layout/boxes/boxes.component.ts b/src/app/layout/boxes/boxes.component.ts
index 19b4af1..40b45fa 100644
--- a/src/app/layout/boxes/boxes.component.ts
+++ b/src/app/layout/boxes/boxes.component.ts
@@ -1,61 +1,16 @@
-import {Input, Inject, Component} from 'ng-forward';
-import {SessionService, AuthService, AuthEvents} from "../../login";
-import {DisplayBlocks} from "./display-blocks.filter";
+import {Input, Component} from 'ng-forward';
@Component({
selector: "noosfero-boxes",
- templateUrl: "app/layout/boxes/boxes.html",
- directives: [DisplayBlocks]
+ templateUrl: "app/layout/boxes/boxes.html"
})
-@Inject("SessionService", 'AuthService', "$state", "$rootScope")
export class BoxesComponent {
@Input() boxes: noosfero.Box[];
@Input() owner: noosfero.Profile | noosfero.Environment;
- currentUser: noosfero.User;
- isHomepage = true;
-
- constructor(private session: SessionService,
- private authService: AuthService,
- private $state: ng.ui.IStateService,
- private $rootScope: ng.IRootScopeService) {
-
- this.currentUser = this.session.currentUser();
- this.authService.subscribe(AuthEvents[AuthEvents.loginSuccess], () => {
- this.currentUser = this.session.currentUser();
- this.verifyHomepage();
- });
- this.authService.subscribe(AuthEvents[AuthEvents.logoutSuccess], () => {
- this.currentUser = this.session.currentUser();
- this.verifyHomepage();
- });
- this.$rootScope.$on("$stateChangeSuccess", (event: ng.IAngularEvent, toState: ng.ui.IState) => {
- this.verifyHomepage();
- });
- }
-
- ngOnInit() {
- this.verifyHomepage();
- }
-
boxesOrder(box: noosfero.Box) {
if (box.position === 2) return 0;
return box.position;
}
-
- private verifyHomepage() {
- if (this.owner && ["Profile", "Community", "Person"].indexOf((this.owner)['type']) >= 0) {
- let profile = this.owner;
- this.isHomepage = this.$state.current.name === "main.profile.home";
- if (profile.homepage) {
- this.isHomepage = this.isHomepage ||
- (this.$state.current.name === "main.profile.page" && profile.homepage === this.$state.params['page']);
- } else {
- this.isHomepage = this.isHomepage || this.$state.current.name === "main.profile.info";
- }
- } else {
- this.isHomepage = this.$state.current.name === "main.environment.home";
- }
- }
}
diff --git a/src/app/layout/boxes/display-blocks.filter.spec.ts b/src/app/layout/boxes/display-blocks.filter.spec.ts
deleted file mode 100644
index 3c988ca..0000000
--- a/src/app/layout/boxes/display-blocks.filter.spec.ts
+++ /dev/null
@@ -1,100 +0,0 @@
-import {quickCreateComponent} from "../../../spec/helpers";
-import {DisplayBlocks} from './display-blocks.filter';
-
-describe("Filters", () => {
- describe("Display Blocks Filter", () => {
-
- let translatorService = jasmine.createSpyObj("translatorService", ["currentLanguage"]);
-
- it("not fail when blocks is null", done => {
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(null, true, {})).toEqual([]);
- done();
- });
-
- it("return blocks when no setting is passed", done => {
- let blocks = [{}];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, {})).toEqual(blocks);
- done();
- });
-
- it("return blocks when no display is passed", done => {
- let blocks = [{ setting: {} }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, {})).toEqual(blocks);
- done();
- });
-
- it("filter invisible blocks", done => {
- let blocks = [{ settings: { display: "never" } }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, {})).toEqual([]);
- done();
- });
-
- it("filter blocks with except_home_page in homepage", done => {
- let blocks = [{ settings: { display: "except_home_page" } }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, {})).toEqual([]);
- done();
- });
-
- it("filter blocks with home_page_only outside homepage", done => {
- let blocks = [{ settings: { display: "home_page_only" } }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, false, {})).toEqual([]);
- done();
- });
-
- it("show all blocks when display_user is all for logged user", done => {
- let blocks = [{ settings: { display_user: "all" } }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, {})).toEqual(blocks);
- done();
- });
-
- it("show all blocks when display_user is all for not logged user", done => {
- let blocks = [{ settings: { display_user: "all" } }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, null)).toEqual(blocks);
- done();
- });
-
- it("filter blocks when display_user is logged for not logged user", done => {
- let blocks = [{ settings: { display_user: "logged" } }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, null)).toEqual([]);
- done();
- });
-
- it("filter blocks when display_user is not_logged for logged user", done => {
- let blocks = [{ settings: { display_user: "not_logged" } }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, {})).toEqual([]);
- done();
- });
-
- it("filter blocks with different language", done => {
- let blocks = [{ settings: { language: "en" } }];
- translatorService.currentLanguage = jasmine.createSpy("currentLanguage").and.returnValue("pt");
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, {})).toEqual([]);
- done();
- });
-
- it("filter blocks when hide is true", done => {
- let blocks = [{ hide: true }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, null)).toEqual([]);
- done();
- });
-
- it("not filter blocks when hide is not true", done => {
- let blocks = [{ id: 1, hide: false }, { id: 2 }];
- let filter = new DisplayBlocks(translatorService);
- expect(filter.transform(blocks, true, null)).toEqual(blocks);
- done();
- });
- });
-});
diff --git a/src/app/layout/boxes/display-blocks.filter.ts b/src/app/layout/boxes/display-blocks.filter.ts
deleted file mode 100644
index d691eeb..0000000
--- a/src/app/layout/boxes/display-blocks.filter.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import {Pipe, Inject} from "ng-forward";
-import {TranslatorService} from "../../shared/services/translator.service";
-
-@Pipe("displayBlocks")
-@Inject(TranslatorService)
-export class DisplayBlocks {
-
- constructor(private translatorService: TranslatorService) { }
-
- transform(blocks: noosfero.Block[], isHomepage: boolean, currentUser: noosfero.User) {
- let selected: noosfero.Block[] = [];
- blocks = blocks || [];
- for (let block of blocks) {
- if (this.visible(block, isHomepage) && this.displayToUser(block, currentUser) &&
- this.displayOnLanguage(block, this.translatorService.currentLanguage())
- && !block.hide) {
- selected.push(block);
- }
- }
- return selected;
- }
-
- private visible(block: noosfero.Block, isHomepage: boolean) {
- let display = block.settings ? (block.settings)['display'] : null;
- return !display || ((isHomepage ? display !== "except_home_page" : display !== "home_page_only") && display !== "never");
- }
-
- private displayToUser(block: noosfero.Block, currentUser: noosfero.User) {
- let displayUser = block.settings ? (block.settings)['display_user'] : null;
- return !displayUser || displayUser === "all" ||
- (currentUser ? displayUser === "logged" : displayUser === "not_logged");
- }
-
- private displayOnLanguage(block: noosfero.Block, language: string) {
- let displayLanguage = block.settings ? (block.settings)['language'] : null;
- return !displayLanguage || displayLanguage === "all" ||
- language === displayLanguage;
- }
-}
diff --git a/src/lib/ng-noosfero-api/interfaces/block.ts b/src/lib/ng-noosfero-api/interfaces/block.ts
index f20b1b3..b9cec12 100644
--- a/src/lib/ng-noosfero-api/interfaces/block.ts
+++ b/src/lib/ng-noosfero-api/interfaces/block.ts
@@ -5,5 +5,6 @@ namespace noosfero {
limit: number;
api_content: any;
hide: boolean;
+ title: string;
}
}
--
libgit2 0.21.2