Commit b0b90c135076e6d4f66034cf92a2b342aa5fc60b

Authored by Victor Costa
2 parents cc96ff23 8592856a
Exists in master and in 1 other branch dev-fixes

Merge branch 'ngforward' of softwarepublico.gov.br:noosfero-themes/angular-theme into ngforward

Conflicts:
	src/app/components/noosfero-articles/blog/blog.component.ts
	src/app/content-viewer/content-viewer.component.ts
	src/lib/ng-noosfero-api/http/article.service.ts
dev-scripts/remapCoverage.js 0 → 100644
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
  1 +"use strict";
  2 +var path = require("path");
  3 +var fs = require("fs");
  4 +var remapIstanbul = require("remap-istanbul");
  5 +var coveragePath = path.join(__dirname, "..", "coverage");
  6 +console.log("COVERAGE PATH:", coveragePath);
  7 +fs.readdir(coveragePath, function (err, directories) {
  8 + if (err) {
  9 + console.error(err.message);
  10 + throw err;
  11 + }
  12 + directories.map(function (file) {
  13 + return path.join(coveragePath, file);
  14 + }).forEach(function (coverageFolder) {
  15 + var coverageFile = path.join(coverageFolder, "coverage-final.json");
  16 + var replace = require("replace");
  17 + var absoluteProjectPath = path.join(__dirname, "../");
  18 + var loadCoverage = require('remap-istanbul/lib/loadCoverage');
  19 + var remap = require('remap-istanbul/lib/remap');
  20 + var writeReport = require('remap-istanbul/lib/writeReport');
  21 + var collector = remap(loadCoverage(coverageFile), {});
  22 + var Store = require("istanbul").Store;
  23 + var store = Store.create("fslookup");
  24 + store.get = function (key) {
  25 + var pathNormalized = key.replace("src/webpack:/", "");
  26 + pathNormalized = pathNormalized.replace(/\.ts\?(\w+)/, ".ts");
  27 + return fs.readFileSync(pathNormalized, 'utf8');
  28 + };
  29 + writeReport(collector, 'html', coverageFolder, store);
  30 + writeReport(collector, 'json', path.join(coverageFolder, 'coverage-final-remaped.json'), store);
  31 + });
  32 +});
  33 +//# sourceMappingURL=remapCoverage.js.map
0 \ No newline at end of file 34 \ No newline at end of file
dev-scripts/remapCoverage.js.map 0 → 100644
@@ -0,0 +1 @@ @@ -0,0 +1 @@
  1 +{"version":3,"file":"remapCoverage.js","sourceRoot":"","sources":["remapCoverage.ts"],"names":[],"mappings":";AAkBA,IAAY,IAAI,WAAM,MAAM,CAAC,CAAA;AAC7B,IAAY,EAAE,WAAM,IAAI,CAAC,CAAA;AAEzB,IAAI,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAG9C,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;AAM1D,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAE5C,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,UAAC,GAAG,EAAE,WAAW;IACtC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,GAAG,CAAC;IACd,CAAC;IAED,WAAW,CAAC,GAAG,CAAC,UAAC,IAAI;QACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,cAAc;QAEtB,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;QAEpE,IAAI,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAEjC,IAAI,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAwBtD,IAAI,YAAY,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;QAC9D,IAAI,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAChD,IAAI,WAAW,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAE5D,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,EAYjD,CAAC,CAAC;QAEH,IAAI,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QACtC,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,KAAK,CAAC,GAAG,GAAG,UAAS,GAAG;YACpB,IAAI,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YACtD,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAC9D,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACnD,CAAC,CAAA;QACD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QACtD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,6BAA6B,CAAC,EAAE,KAAK,CAAC,CAAC;IACpG,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
0 \ No newline at end of file 2 \ No newline at end of file
dev-scripts/remapCoverage.ts
1 /** 1 /**
2 * @script remap-coverage.ts 2 * @script remap-coverage.ts
3 - * 3 + *
4 * Esse script serve para transformar as informações de cobertura geradas pelo karma-coverage 4 * Esse script serve para transformar as informações de cobertura geradas pelo karma-coverage
5 * e que originalmente é construída apontando para os arquivos javascript (já que os testes são executados em javascript) 5 * e que originalmente é construída apontando para os arquivos javascript (já que os testes são executados em javascript)
6 * para a informação de cobertura apontando para os arquivos Typescript, utilizando os source maps gerados pelo compilador 6 * para a informação de cobertura apontando para os arquivos Typescript, utilizando os source maps gerados pelo compilador
7 * typescript 7 * typescript
8 * @author: Abner Oliveira 8 * @author: Abner Oliveira
9 - * 9 + *
10 * Examplo de uso: 10 * Examplo de uso:
11 - * 11 + *
12 * Na linha de comando, na pasta raiz do projeto, digite: 12 * Na linha de comando, na pasta raiz do projeto, digite:
13 - * 13 + *
14 * ts-node dev-scripts/remap-coverage.ts 14 * ts-node dev-scripts/remap-coverage.ts
15 - * 15 + *
16 * Observação: O karma já deve ter sido executado antes, e a pasta de coverage deve ser "./coverage" 16 * Observação: O karma já deve ter sido executado antes, e a pasta de coverage deve ser "./coverage"
17 */ 17 */
18 18
@@ -26,10 +26,10 @@ let coveragePath = path.join(__dirname, "..", "coverage"); @@ -26,10 +26,10 @@ let coveragePath = path.join(__dirname, "..", "coverage");
26 26
27 // o pré-processador "coverage" do runner de tests "karma" gera uma pasta 27 // o pré-processador "coverage" do runner de tests "karma" gera uma pasta
28 // de coverage para cada browser em que os testes foram executados 28 // de coverage para cada browser em que os testes foram executados
29 -// iteraremos arqui então entre essas pastas para realizar o remap de cada uma 29 +// iteraremos arqui então entre essas pastas para realizar o remap de cada uma
30 30
31 console.log("COVERAGE PATH:", coveragePath); 31 console.log("COVERAGE PATH:", coveragePath);
32 -// lendo o diretório coveragePath 32 +// lendo o diretório coveragePath
33 fs.readdir(coveragePath, (err, directories) => { 33 fs.readdir(coveragePath, (err, directories) => {
34 if (err) { 34 if (err) {
35 console.error(err.message); 35 console.error(err.message);
@@ -57,17 +57,17 @@ fs.readdir(coveragePath, (err, directories) => { @@ -57,17 +57,17 @@ fs.readdir(coveragePath, (err, directories) => {
57 // gerando dois reports: JSON e HTML 57 // gerando dois reports: JSON e HTML
58 // remapIstanbul(coverageFile, 58 // remapIstanbul(coverageFile,
59 // { 59 // {
60 - // "exclude": 60 + // "exclude":
61 // "json": path.join(coverageFolder, "coverage-final-remaped.json") 61 // "json": path.join(coverageFolder, "coverage-final-remaped.json")
62 // }); 62 // });
63 - 63 +
64 // replace({ 64 // replace({
65 // regex: "src/webpack:/", 65 // regex: "src/webpack:/",
66 // replacement: "", 66 // replacement: "",
67 // paths: [coverageFile], 67 // paths: [coverageFile],
68 // sillent: true 68 // sillent: true
69 // }); 69 // });
70 - 70 +
71 let loadCoverage = require('remap-istanbul/lib/loadCoverage'); 71 let loadCoverage = require('remap-istanbul/lib/loadCoverage');
72 let remap = require('remap-istanbul/lib/remap'); 72 let remap = require('remap-istanbul/lib/remap');
73 let writeReport = require('remap-istanbul/lib/writeReport'); 73 let writeReport = require('remap-istanbul/lib/writeReport');
@@ -90,13 +90,11 @@ fs.readdir(coveragePath, (err, directories) => { @@ -90,13 +90,11 @@ fs.readdir(coveragePath, (err, directories) => {
90 let store = Store.create("fslookup"); 90 let store = Store.create("fslookup");
91 store.get = function(key) { 91 store.get = function(key) {
92 let pathNormalized = key.replace("src/webpack:/", ""); 92 let pathNormalized = key.replace("src/webpack:/", "");
93 - console.error("PATH >>> ", pathNormalized);  
94 pathNormalized = pathNormalized.replace(/\.ts\?(\w+)/, ".ts"); 93 pathNormalized = pathNormalized.replace(/\.ts\?(\w+)/, ".ts");
95 - console.log("my store got called!", key, pathNormalized);  
96 return fs.readFileSync(pathNormalized, 'utf8'); 94 return fs.readFileSync(pathNormalized, 'utf8');
97 } 95 }
98 writeReport(collector, 'html', coverageFolder, store); 96 writeReport(collector, 'html', coverageFolder, store);
99 writeReport(collector, 'json', path.join(coverageFolder, 'coverage-final-remaped.json'), store); 97 writeReport(collector, 'json', path.join(coverageFolder, 'coverage-final-remaped.json'), store);
100 }); 98 });
101 99
102 -});  
103 \ No newline at end of file 100 \ No newline at end of file
  101 +});
@@ -89,7 +89,7 @@ var webpackConfig = require("./webpack.config.js"); @@ -89,7 +89,7 @@ var webpackConfig = require("./webpack.config.js");
89 module.exports = function (config) { 89 module.exports = function (config) {
90 90
91 var configuration = { 91 var configuration = {
92 - basePath: '../angular-theme', 92 + basePath: './',
93 93
94 files: listFiles(), 94 files: listFiles(),
95 95
@@ -144,14 +144,14 @@ module.exports = function (config) { @@ -144,14 +144,14 @@ module.exports = function (config) {
144 } 144 }
145 };*/ 145 };*/
146 /*configuration.webpack = _.merge({ 146 /*configuration.webpack = _.merge({
147 - 147 +
148 }, webpackConfig, { 148 }, webpackConfig, {
149 devtool: 'source-map' 149 devtool: 'source-map'
150 }), 150 }),
151 configuration.webpackServer = { 151 configuration.webpackServer = {
152 quite: true 152 quite: true
153 };*/ 153 };*/
154 - 154 +
155 // This is the default preprocessors configuration for a usage with Karma cli 155 // This is the default preprocessors configuration for a usage with Karma cli
156 // The coverage preprocessor is added in gulp/unit-test.js only for single tests 156 // The coverage preprocessor is added in gulp/unit-test.js only for single tests
157 // It was not possible to do it there because karma doesn't let us now if we are 157 // It was not possible to do it there because karma doesn't let us now if we are
@@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
7 "moment": "^2.11.2" 7 "moment": "^2.11.2"
8 }, 8 },
9 "scripts": { 9 "scripts": {
  10 + "webpack": "webpack",
  11 + "karma": "karma",
10 "coverage": "karma start --single-run; npm run remap-coverage", 12 "coverage": "karma start --single-run; npm run remap-coverage",
11 "remap-coverage": "ts-node --project ./dev-scripts ./dev-scripts/remapCoverage.ts", 13 "remap-coverage": "ts-node --project ./dev-scripts ./dev-scripts/remapCoverage.ts",
12 "test-single": "karma start --single-run", 14 "test-single": "karma start --single-run",
src/app/components/navbar/navbar.spec.ts
@@ -113,10 +113,8 @@ describe("Components", () => { @@ -113,10 +113,8 @@ describe("Components", () => {
113 directives: [Navbar] 113 directives: [Navbar]
114 }) 114 })
115 .then(fixture => { 115 .then(fixture => {
116 - console.log("entrou no .then")  
117 let navbarComp: Navbar = <Navbar>fixture.debugElement.componentViewChildren[0].componentInstance; 116 let navbarComp: Navbar = <Navbar>fixture.debugElement.componentViewChildren[0].componentInstance;
118 spyOn($modal, "open"); 117 spyOn($modal, "open");
119 - //navbarComp.activate();  
120 navbarComp.openLogin(); 118 navbarComp.openLogin();
121 expect($modal.open).toHaveBeenCalled(); 119 expect($modal.open).toHaveBeenCalled();
122 expect($modal.open).toHaveBeenCalledWith({ 120 expect($modal.open).toHaveBeenCalledWith({
src/app/components/noosfero-articles/article/article_view.ts
1 import { bundle, Input, Inject, Component, Directive } from 'ng-forward'; 1 import { bundle, Input, Inject, Component, Directive } from 'ng-forward';
2 -import {NoosferoArticleBlog} from "../blog/blog.component"; 2 +import {ArticleBlog} from "../blog/blog.component";
3 3
4 @Component({ 4 @Component({
5 selector: 'noosfero-default-article', 5 selector: 'noosfero-default-article',
@@ -15,7 +15,7 @@ export class ArticleDefaultView { @@ -15,7 +15,7 @@ export class ArticleDefaultView {
15 @Component({ 15 @Component({
16 selector: 'noosfero-article', 16 selector: 'noosfero-article',
17 template: 'not-used', 17 template: 'not-used',
18 - directives: [ArticleDefaultView, NoosferoArticleBlog] 18 + directives: [ArticleDefaultView, ArticleBlog]
19 }) 19 })
20 @Inject("$element", "$scope", "$injector", "$compile") 20 @Inject("$element", "$scope", "$injector", "$compile")
21 export class ArticleView { 21 export class ArticleView {
src/app/components/noosfero-articles/blog/blog.component.spec.ts 0 → 100644
@@ -0,0 +1,114 @@ @@ -0,0 +1,114 @@
  1 +
  2 +import {Input, provide, Component} from 'ng-forward';
  3 +import {ArticleBlog} from './blog.component';
  4 +
  5 +import {createComponentFromClass, quickCreateComponent, provideEmptyObjects, createProviderToValue} from "../../../../spec/helpers.ts";
  6 +
  7 +
  8 +// this htmlTemplate will be re-used between the container components in this spec file
  9 +const htmlTemplate: string = '<noosfero-blog [article]="ctrl.article" [profile]="ctrl.profile"></noosfero-blog>';
  10 +let articleService = {};
  11 +
  12 +describe("Blog Component", () => {
  13 +
  14 + // the karma preprocessor html2js transform the templates html into js files which put
  15 + // the templates to the templateCache into the module templates
  16 + // we need to load the module templates here as the template for the
  17 + // component Noosfero ArtileView will be load on our tests
  18 + beforeEach(angular.mock.module("templates"));
  19 +
  20 + function promiseResultTemplate(thenFunc: Function) {
  21 + let thenFuncEmpty = (func: Function) => {
  22 + // does nothing
  23 + //func()
  24 + };
  25 + if (thenFunc) {
  26 + return {
  27 + then: thenFunc
  28 + }
  29 + } else {
  30 + return {
  31 + then: thenFuncEmpty
  32 + }
  33 + }
  34 + }
  35 +
  36 + beforeAll(() => {
  37 + // creating mock for articleService
  38 + articleService = {
  39 + getChildren: (article_id: number, filters: {}) => {
  40 + return promiseResultTemplate();
  41 + }
  42 + };
  43 + });
  44 +
  45 + it("renders the blog content", (done: Function) => {
  46 +
  47 + // Creating a container component (ArticleContainerComponent) to include
  48 + // the component under test (ArticleView)
  49 + @Component({
  50 + selector: 'test-container-component',
  51 + template: htmlTemplate,
  52 + directives: [ArticleBlog],
  53 + providers: [provideEmptyObjects('Restangular'), createProviderToValue('ArticleService', articleService)]
  54 + })
  55 + class BlogContainerComponent {
  56 + article = { type: 'anyArticleType' };
  57 + profile = { name: 'profile-name' };
  58 + }
  59 +
  60 + createComponentFromClass(BlogContainerComponent).then((fixture) => {
  61 +
  62 + expect(fixture.debugElement.query('div.blog').length).toEqual(1);
  63 +
  64 + done();
  65 + });
  66 +
  67 + it("verify the blog data", (done: Function) => {
  68 +
  69 + articleService.getChildren = (article_id: number, filters: {}) => {
  70 + return promiseResultTemplate(() => {
  71 + return {
  72 + headers: {
  73 + total: 1
  74 + },
  75 + data: {
  76 + articles: [
  77 + ]
  78 + }
  79 + }
  80 + });
  81 + }
  82 + @Component({
  83 + selector: 'test-container-component',
  84 + template: htmlTemplate,
  85 + directives: [ArticleBlog],
  86 + providers: [provideEmptyObjects('Restangular'), createProviderToValue('ArticleService', articleService)]
  87 + })
  88 + class BlogContainerComponent {
  89 + article = { type: 'anyArticleType' };
  90 + profile = { name: 'profile-name' };
  91 + }
  92 +
  93 + createComponentFromClass(BlogContainerComponent).then((fixture) => {
  94 + // and here we can inspect and run the test assertions
  95 +
  96 + // gets the children component of ArticleContainerComponent
  97 + let articleBlog: BlogContainerComponent = fixture.debugElement.componentViewChildren[0].componentInstance;
  98 +
  99 + // and checks if the article View rendered was the Default Article View
  100 + //expect(articleView.constructor.prototype).toEqual(ArticleDefaultView.prototype);
  101 + expect(articleBlog["posts"]).toEqual([]);
  102 + expect(articleBlog["totalPosts"]).toEqual(1);
  103 +
  104 +
  105 + // done needs to be called (it isn't really needed, as we can read in
  106 + // here (https://github.com/ngUpgraders/ng-forward/blob/master/API.md#createasync)
  107 + // because createAsync in ng-forward is not really async, but as the intention
  108 + // here is write tests in angular 2 ways, this is recommended
  109 + done();
  110 + });
  111 +
  112 + });
  113 +
  114 + });
src/app/components/noosfero-articles/blog/blog.component.ts
@@ -7,8 +7,8 @@ import {ArticleService} from &quot;../../../../lib/ng-noosfero-api/http/article.servi @@ -7,8 +7,8 @@ import {ArticleService} from &quot;../../../../lib/ng-noosfero-api/http/article.servi
7 selector: "noosfero-blog", 7 selector: "noosfero-blog",
8 templateUrl: "app/components/noosfero-articles/blog/blog.html" 8 templateUrl: "app/components/noosfero-articles/blog/blog.html"
9 }) 9 })
10 -@Inject(ArticleService, "$scope")  
11 -export class NoosferoArticleBlog { 10 +@Inject(ArticleService)
  11 +export class ArticleBlog {
12 12
13 @Input() article: Article; 13 @Input() article: Article;
14 @Input() profile: Profile; 14 @Input() profile: Profile;
@@ -18,22 +18,25 @@ export class NoosferoArticleBlog { @@ -18,22 +18,25 @@ export class NoosferoArticleBlog {
18 private currentPage: number; 18 private currentPage: number;
19 private totalPosts: number = 0; 19 private totalPosts: number = 0;
20 20
21 - constructor(private ArticleService: ArticleService, private $scope: ng.IScope) {  
22 - } 21 + constructor(private articleService: ArticleService) { }
23 22
24 ngOnInit() { 23 ngOnInit() {
25 this.loadPage(); 24 this.loadPage();
26 } 25 }
27 26
28 loadPage() { 27 loadPage() {
29 - this.ArticleService.getChildren(this.article.id, { 28 + let filters = {
30 content_type: "TinyMceArticle", 29 content_type: "TinyMceArticle",
31 per_page: this.perPage, 30 per_page: this.perPage,
32 page: this.currentPage 31 page: this.currentPage
33 - }).then((response: restangular.IResponse) => {  
34 - this.totalPosts = <number>(<any>response.headers("total"));  
35 - this.posts = response.data.articles;  
36 - }); 32 + };
  33 +
  34 + this.articleService
  35 + .getChildren(this.article.id, filters)
  36 + .then((response: restangular.IResponse) => {
  37 + this.totalPosts = <number>(<any>response.headers("total"));
  38 + this.posts = response.data.articles;
  39 + });
37 } 40 }
38 41
39 } 42 }
src/app/content-viewer/content-viewer.component.ts
@@ -4,13 +4,13 @@ import * as noosfero from &quot;../models/interfaces&quot;; @@ -4,13 +4,13 @@ import * as noosfero from &quot;../models/interfaces&quot;;
4 import {ArticleView} from "../components/noosfero-articles/article/article_view"; 4 import {ArticleView} from "../components/noosfero-articles/article/article_view";
5 import {Input, Component, StateConfig, Inject} from "ng-forward"; 5 import {Input, Component, StateConfig, Inject} from "ng-forward";
6 6
7 -import {NoosferoArticleBlog} from "./../components/noosfero-articles/blog/blog.component"; 7 +import {ArticleBlog} from "./../components/noosfero-articles/blog/blog.component";
8 import {ArticleService} from "../../lib/ng-noosfero-api/http/article.service"; 8 import {ArticleService} from "../../lib/ng-noosfero-api/http/article.service";
9 9
10 @Component({ 10 @Component({
11 selector: "content-viewer", 11 selector: "content-viewer",
12 templateUrl: "app/content-viewer/page.html", 12 templateUrl: "app/content-viewer/page.html",
13 - directives: [NoosferoArticleBlog, ArticleView] 13 + directives: [ArticleBlog, ArticleView]
14 }) 14 })
15 @Inject(ArticleService, "noosfero", "$log", "$stateParams") 15 @Inject(ArticleService, "noosfero", "$log", "$stateParams")
16 export class ContentViewer { 16 export class ContentViewer {
src/app/main/main.component.ts
1 import {bundle, Component, StateConfig} from "ng-forward"; 1 import {bundle, Component, StateConfig} from "ng-forward";
2 -import {NoosferoArticleBlog} from "./../components/noosfero-articles/blog/blog.component"; 2 +import {ArticleBlog} from "./../components/noosfero-articles/blog/blog.component";
3 3
4 import {ArticleView} from "../components/noosfero-articles/article/article_view"; 4 import {ArticleView} from "../components/noosfero-articles/article/article_view";
5 5
@@ -34,7 +34,7 @@ export class MainContent { @@ -34,7 +34,7 @@ export class MainContent {
34 selector: 'main', 34 selector: 'main',
35 template: '<div ng-view></div>', 35 template: '<div ng-view></div>',
36 directives: [ 36 directives: [
37 - NoosferoArticleBlog, ArticleView, Boxes, Block, LinkListBlock, 37 + ArticleBlog, ArticleView, Boxes, Block, LinkListBlock,
38 MainBlock, RecentDocumentsBlock, Navbar, ProfileImageBlock, 38 MainBlock, RecentDocumentsBlock, Navbar, ProfileImageBlock,
39 MembersBlock, NoosferoTemplate 39 MembersBlock, NoosferoTemplate
40 ], 40 ],
src/lib/ng-noosfero-api/http/article.service.ts
@@ -5,9 +5,7 @@ import {Article} from &quot;../../../app/models/interfaces&quot;; @@ -5,9 +5,7 @@ import {Article} from &quot;../../../app/models/interfaces&quot;;
5 @Inject("Restangular") 5 @Inject("Restangular")
6 export class ArticleService { 6 export class ArticleService {
7 7
8 - constructor(private Restangular: any) {  
9 -  
10 - } 8 + constructor(private Restangular: any) { }
11 9
12 create(profileId: number, article: Article) { 10 create(profileId: number, article: Article) {
13 return this.Restangular.one('profiles', profileId).customPOST( 11 return this.Restangular.one('profiles', profileId).customPOST(