profile.component.ts 2.33 KB
import {StateConfig, Component, Inject} from 'ng-forward';
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";

@Component({
    selector: 'profile',
    templateUrl: "app/profile/profile.html"
})
@StateConfig([
    {
        name: 'main.profile.info',
        url: "^/profile/:profile",
        component: ProfileInfo,
        views: {
            "mainBlockContent": {
                templateUrl: "app/profile-info/profile-info.html",
                controller: "ProfileInfoController",
                controllerAs: "vm"
            }
        }
    },
    {
        name: 'main.profile.cms',
        url: "^/myprofile/:profile/cms",
        component: Cms,
        views: {
            "mainBlockContent": {
                templateUrl: "app/cms/cms.html",
                controller: "CmsController",
                controllerAs: "vm"
            }
        }
    },
    {
        name: 'main.profile.home',
        url: "",
        component: ProfileHome,
        views: {
            "mainBlockContent": {
                controller: "ProfileHomeController",
                controllerAs: "vm"
            }
        }
    },
    {
        name: 'main.profile.page',
        url: "/{page:any}",
        component: ContentViewer,
        views: {
            "mainBlockContent": {
                templateUrl: "app/content-viewer/page.html",
                controller: "ContentViewerController",
                controllerAs: "vm"
            },
            "actions@main": {
                templateUrl: "app/content-viewer/navbar-actions.html",
                controller: "ContentViewerActionsController",
                controllerAs: "vm"
            }
        }
    }
])
@Inject("noosfero", "$log", "$stateParams")
export class Profile {

    boxes: any
    profile: any

    constructor(noosfero, $log, $stateParams) {
        noosfero.profiles.one().get({ identifier: $stateParams.profile }).then((response) => {
            this.profile = response.data[0];
            noosfero.setCurrentProfile(this.profile);
            return noosfero.boxes(this.profile.id).one().get();
        }).then((response) => {
            this.boxes = response.data.boxes;
        });
    }
}