Commit e6f9f67de4363bf9d14c6350ec5c6ee29db9b7fa
1 parent
7bdf7c86
Exists in
master
and in
35 other branches
adding content viewer
Showing
9 changed files
with
109 additions
and
98 deletions
Show diff stats
src/app/components/noosfero-articles/article/article.directive.ts
... | ... | @@ -6,7 +6,9 @@ import { bundle, Input, Inject, Component, Directive } from 'ng-forward'; |
6 | 6 | providers: ['$injector', '$compile'] |
7 | 7 | }) |
8 | 8 | export class ArticleView { |
9 | - | |
9 | + constructor() { | |
10 | + console.log("ARTICLE VIEW"); | |
11 | + } | |
10 | 12 | } |
11 | 13 | |
12 | 14 | /** |
... | ... | @@ -14,24 +16,19 @@ export class ArticleView { |
14 | 16 | * |
15 | 17 | * |
16 | 18 | */ |
17 | -@Directive({ | |
18 | - selector: 'noosfero-article', | |
19 | - providers: ['$injector', '$compile'], | |
20 | 19 | |
20 | +@Directive({ | |
21 | + selector: '[noosfero-article]', | |
22 | + providers: [] | |
21 | 23 | }) |
22 | -@Inject('$element') | |
23 | -@Inject('$scope') | |
24 | +@Inject("$element") | |
25 | +@Inject("$scope") | |
26 | +@Inject("$injector") | |
27 | +@Inject("$compile") | |
24 | 28 | export class ArticleDirective { |
25 | 29 | |
26 | - @Input("article") | |
27 | - article: any; | |
28 | - | |
29 | - @Input("profile") | |
30 | - profile: any; | |
31 | - | |
32 | 30 | constructor($element: any, $scope: ng.IScope, private $injector: ng.auto.IInjectorService, private $compile: ng.ICompileService) { |
33 | - console.log('ARTICLE DIRECTIVE'); | |
34 | - var specificDirective = 'noosfero' + this.article.type; | |
31 | + var specificDirective = 'noosfero' + $scope["vm"].article.type; | |
35 | 32 | if ($injector.has(specificDirective + 'Directive')) { |
36 | 33 | var directiveName = specificDirective.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(); |
37 | 34 | $element.replaceWith($compile('<' + directiveName + ' article="vm.article" profile="vm.profile"></' + directiveName + '>')($scope)); |
... | ... | @@ -42,4 +39,4 @@ export class ArticleDirective { |
42 | 39 | } |
43 | 40 | } |
44 | 41 | |
45 | -bundle('noosferoApp', ArticleDirective).publish(); | |
42 | +//bundle('noosferoApp', ArticleDirective).publish(); | ... | ... |
src/app/components/noosfero-articles/blog/blog.component.js
... | ... | @@ -1,36 +0,0 @@ |
1 | -(function() { | |
2 | - 'use strict'; | |
3 | - | |
4 | - angular | |
5 | - .module('noosferoApp') | |
6 | - .component('noosferoBlog', { | |
7 | - restrict: 'E', | |
8 | - templateUrl: 'app/components/noosfero-articles/blog/blog.html', | |
9 | - bindings: { | |
10 | - article: '<', | |
11 | - profile: '<' | |
12 | - }, | |
13 | - controller: BlogController | |
14 | - }); | |
15 | - | |
16 | - /** @ngInject */ | |
17 | - function BlogController(noosfero) { | |
18 | - var vm = this; | |
19 | - vm.posts = []; | |
20 | - vm.perPage = 3; | |
21 | - vm.currentPage = 1; | |
22 | - | |
23 | - vm.loadPage = function() { | |
24 | - noosfero.articles.one(vm.article.id).customGET('children', { | |
25 | - content_type: 'TinyMceArticle', | |
26 | - per_page: vm.perPage, | |
27 | - page: vm.currentPage | |
28 | - }).then(function(response) { | |
29 | - vm.totalPosts = response.headers('total'); | |
30 | - vm.posts = response.data.articles; | |
31 | - }); | |
32 | - } | |
33 | - vm.loadPage(); | |
34 | - } | |
35 | - | |
36 | -})(); |
src/app/components/noosfero-articles/blog/blog.component.ts
0 → 100644
... | ... | @@ -0,0 +1,32 @@ |
1 | +import {Component, Input} from "ng-forward"; | |
2 | + | |
3 | + | |
4 | +@Component({ | |
5 | + selector: "noosfero-blog", | |
6 | + templateUrl: "app/components/noosfero-articles/blog/blog.html", | |
7 | + inputs: ["article", "profile"] | |
8 | +}) | |
9 | +export class NoosferoArticleBlog { | |
10 | + @Input() article; | |
11 | + @Input() profile; | |
12 | + | |
13 | + private posts: any[]; | |
14 | + private perPage: number; | |
15 | + private currentPage: number; | |
16 | + private totalPosts: number = 0; | |
17 | + constructor(private noosferoService: any) { | |
18 | + this.loadPage(); | |
19 | + } | |
20 | + | |
21 | + loadPage() { | |
22 | + this.noosferoService.articles.one(this.article.id).customGET("children", { | |
23 | + content_type: "TinyMceArticle", | |
24 | + per_page: this.perPage, | |
25 | + page: this.currentPage | |
26 | + }).then((response) => { | |
27 | + this.totalPosts = response.headers("total"); | |
28 | + this.posts = response.data.articles; | |
29 | + }); | |
30 | + } | |
31 | + | |
32 | +} | |
0 | 33 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,38 @@ |
1 | + | |
2 | +import * as noosfero from "../models/interfaces"; | |
3 | + | |
4 | +import {ArticleDirective, ArticleView} from "../components/noosfero-articles/article/article.directive"; | |
5 | +import {Input, Component, StateConfig} from "ng-forward"; | |
6 | + | |
7 | +import {NoosferoArticleBlog} from "./../components/noosfero-articles/blog/blog.component"; | |
8 | + | |
9 | +@Component({ | |
10 | + selector: "content-viewer", | |
11 | + templateUrl: "app/content-viewer/page.html", | |
12 | + providers: [ | |
13 | + "noosferoService", "$log", "$stateParams" | |
14 | + ], | |
15 | + directives: [NoosferoArticleBlog, ArticleView, ArticleDirective] | |
16 | +}) | |
17 | +export class ContentViewer { | |
18 | + | |
19 | + @Input() | |
20 | + article: noosfero.Article = null; | |
21 | + | |
22 | + @Input() | |
23 | + profile: noosfero.Profile = null; | |
24 | + | |
25 | + constructor(private noosfero: any, private $log: ng.ILogService, private $stateParams: angular.ui.IStateParamsService) { | |
26 | + this.activate(); | |
27 | + } | |
28 | + | |
29 | + activate() { | |
30 | + console.log("HERE CONTENT VIEWER"); | |
31 | + this.noosfero.currentProfile.then((profile) => { | |
32 | + this.profile = profile; | |
33 | + return this.noosfero.profiles.one(this.profile.id).one("articles").get({ path: this.$stateParams["page"] }); | |
34 | + }).then((response) => { | |
35 | + this.article = response.data.article; | |
36 | + }); | |
37 | + } | |
38 | +} | ... | ... |
src/app/content-viewer/content-viewer.controller.ts
... | ... | @@ -1,34 +0,0 @@ |
1 | - | |
2 | -import * as noosfero from "../models/interfaces"; | |
3 | - | |
4 | -import {ArticleDirective, ArticleView} from "../components/noosfero-articles/article/article.directive"; | |
5 | -import {Input, Component, StateConfig} from "ng-forward"; | |
6 | - | |
7 | -@Component({ | |
8 | - selector: "content-viewer", | |
9 | - template: "", | |
10 | - providers: [ | |
11 | - "noosferoService", "$log", "$stateParams" | |
12 | - ] | |
13 | -}) | |
14 | -export class ContentViewerController { | |
15 | - | |
16 | - @Input() | |
17 | - article: noosfero.Article = null; | |
18 | - | |
19 | - @Input() | |
20 | - profile: noosfero.Profile = null; | |
21 | - | |
22 | - constructor(private noosfero: any, private $log: ng.ILogService, private $stateParams: angular.ui.IStateParamsService) { | |
23 | - this.activate(); | |
24 | - } | |
25 | - | |
26 | - activate() { | |
27 | - this.noosfero.currentProfile.then(function(profile) { | |
28 | - this.profile = profile; | |
29 | - return this.noosfero.profiles.one(this.profile.id).one("articles").get({ path: this.$stateParams.page }); | |
30 | - }).then(function(response) { | |
31 | - this.article = response.data.article; | |
32 | - }); | |
33 | - } | |
34 | -} |
src/app/content-viewer/page.html
src/app/index.ts
1 | -import 'reflect-metadata'; | |
1 | +import "reflect-metadata"; | |
2 | 2 | import {NoosferoApp} from "./index.module"; |
3 | 3 | import {noosferoModuleConfig} from "./index.config"; |
4 | 4 | import {noosferoAngularRunBlock} from "./index.run"; |
5 | 5 | import {routeConfig} from "./index.route"; |
6 | -import {ContentViewerController} from "./content-viewer/content-viewer.controller"; | |
6 | + | |
7 | +import {ContentViewer as noosferoContentViewer} from "./content-viewer/content-viewer.component"; | |
8 | + | |
7 | 9 | import {Main} from "./main/main.component"; |
8 | -import {bootstrap, bundle} from 'ng-forward'; | |
10 | +import {bootstrap, bundle} from "ng-forward"; | |
9 | 11 | |
10 | 12 | declare var moment: any; |
11 | 13 | |
... | ... | @@ -40,7 +42,10 @@ require("./components/auth/auth.service.js"); |
40 | 42 | require("./components/navbar/navbar.directive.js"); |
41 | 43 | require("./components/noosfero-activities/activities.component.js"); |
42 | 44 | require("./components/noosfero-activities/activity/activity.component.js"); |
43 | -require("./components/noosfero-articles/blog/blog.component.js"); | |
45 | + | |
46 | +// require("./components/noosfero-articles/blog/blog.component.js"); | |
47 | + | |
48 | + | |
44 | 49 | require("./components/noosfero-blocks/block.directive.js"); |
45 | 50 | require("./components/noosfero-blocks/link-list/link-list.component.js"); |
46 | 51 | require("./components/noosfero-blocks/main-block/main-block.component.js"); |
... | ... | @@ -57,6 +62,6 @@ require("./profile-info/profile-info.controller.js"); |
57 | 62 | require("./profile/profile-home.controller.js"); |
58 | 63 | require("./profile/profile.controller.js"); |
59 | 64 | |
60 | -// NoosferoApp.addController("ContentViewerController", ContentViewerController); | |
65 | +NoosferoApp.addController("ContentViewerController", noosferoContentViewer); | |
61 | 66 | |
62 | 67 | NoosferoApp.addConfig(routeConfig); | ... | ... |
src/app/main/main.component.ts
1 | 1 | import {bundle, Component, StateConfig} from 'ng-forward'; |
2 | +import {NoosferoArticleBlog} from "./../components/noosfero-articles/blog/blog.component.ts"; | |
3 | + | |
4 | +import {ArticleDirective} from "../components/noosfero-articles/article/article.directive.ts"; | |
2 | 5 | |
3 | 6 | @Component({ |
4 | 7 | selector: 'main-content', |
... | ... | @@ -10,7 +13,8 @@ export class MainContent { |
10 | 13 | |
11 | 14 | @Component({ |
12 | 15 | selector: 'main', |
13 | - template: '<div ng-view></div>' | |
16 | + template: '<div ng-view></div>', | |
17 | + directives: [NoosferoArticleBlog, ArticleDirective] | |
14 | 18 | }) |
15 | 19 | @StateConfig([ |
16 | 20 | { | ... | ... |
src/app/models/interfaces.ts
1 | 1 | export interface Event extends Article { |
2 | - | |
2 | + id: number; | |
3 | 3 | } |
4 | 4 | |
5 | 5 | export interface Article { |
6 | - | |
6 | + id: number; | |
7 | 7 | } |
8 | 8 | |
9 | 9 | export interface Profile { |
10 | - | |
10 | + id: number; | |
11 | 11 | } |
12 | 12 | |
13 | 13 | export interface Person extends Profile { |
14 | - | |
14 | + id: number; | |
15 | 15 | } |
16 | 16 | |
17 | 17 | export interface TynyMceArticle extends Article { |
18 | - | |
18 | + id: number; | |
19 | 19 | } |
20 | 20 | |
21 | 21 | export interface Blog extends Article { |
22 | - | |
22 | + id: number; | |
23 | 23 | } | ... | ... |