Commit 5e222a2257b82bf2d6e366d92d911f86c1f339fc

Authored by Victor Costa
1 parent 2e424f97

Migrate block component to ngforward

src/app/components/noosfero-blocks/block.component.ts 0 → 100644
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
  1 +import { Input, Inject, Component } from 'ng-forward';
  2 +
  3 +@Component({
  4 + selector: 'noosfero-block',
  5 + template: '<div></div>'
  6 +})
  7 +@Inject("$element", "$scope", "$injector", "$compile")
  8 +export class Block {
  9 +
  10 + @Input() block: any;
  11 + @Input() owner: any;
  12 +
  13 + ngOnInit() {
  14 + let blockName = this.block.type.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
  15 + this.$element.replaceWith(this.$compile('<noosfero-' + blockName + ' block="ctrl.block" owner="ctrl.owner"></noosfero-' + blockName + '>')(this.$scope));
  16 + }
  17 +
  18 + constructor(private $element: any, private $scope: ng.IScope, private $injector: ng.auto.IInjectorService, private $compile: ng.ICompileService) {
  19 + }
  20 +}
src/app/components/noosfero-blocks/block.directive.js
@@ -1,24 +0,0 @@ @@ -1,24 +0,0 @@
1 -(function() {  
2 - 'use strict';  
3 -  
4 - angular  
5 - .module('noosferoApp')  
6 - .directive('noosferoBlock', noosferoBlock);  
7 -  
8 - /** @ngInject */  
9 - function noosferoBlock($compile) {  
10 - var directive = {  
11 - restrict: 'E',  
12 - scope: {  
13 - block: '<',  
14 - owner: '<'  
15 - },  
16 - link: function(scope, element) {  
17 - var blockName = scope.block.type.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();  
18 - element.replaceWith($compile('<noosfero-'+blockName+' block="block" owner="owner"></noosfero-'+blockName+'>')(scope));  
19 - }  
20 - };  
21 - return directive;  
22 - }  
23 -  
24 -})();  
src/app/components/noosfero-boxes/box.html
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 <h3 class="panel-title">{{block.title}}</h3> 4 <h3 class="panel-title">{{block.title}}</h3>
5 </div> 5 </div>
6 <div class="panel-body"> 6 <div class="panel-body">
7 - <noosfero-block block="block" owner="ctrl.owner"></noosfero-block> 7 + <noosfero-block [block]="block" [owner]="ctrl.owner"></noosfero-block>
8 </div> 8 </div>
9 </div> 9 </div>
10 </div> 10 </div>
src/app/index.ts
@@ -43,7 +43,6 @@ require(&quot;./components/auth/auth.service.js&quot;); @@ -43,7 +43,6 @@ require(&quot;./components/auth/auth.service.js&quot;);
43 require("./components/navbar/navbar.directive.js"); 43 require("./components/navbar/navbar.directive.js");
44 require("./components/noosfero-activities/activities.component.js"); 44 require("./components/noosfero-activities/activities.component.js");
45 require("./components/noosfero-activities/activity/activity.component.js"); 45 require("./components/noosfero-activities/activity/activity.component.js");
46 -require("./components/noosfero-blocks/block.directive.js");  
47 require("./components/noosfero-blocks/link-list/link-list.component.js"); 46 require("./components/noosfero-blocks/link-list/link-list.component.js");
48 require("./components/noosfero-blocks/main-block/main-block.component.js"); 47 require("./components/noosfero-blocks/main-block/main-block.component.js");
49 require("./components/noosfero-blocks/members-block/members-block.component.js"); 48 require("./components/noosfero-blocks/members-block/members-block.component.js");
src/app/main/main.component.ts
@@ -3,6 +3,7 @@ import {NoosferoArticleBlog} from &quot;./../components/noosfero-articles/blog/blog.c @@ -3,6 +3,7 @@ import {NoosferoArticleBlog} from &quot;./../components/noosfero-articles/blog/blog.c
3 import {ArticleDirective} from "../components/noosfero-articles/article/article.directive.ts"; 3 import {ArticleDirective} from "../components/noosfero-articles/article/article.directive.ts";
4 import {Profile} from "../profile/profile.component"; 4 import {Profile} from "../profile/profile.component";
5 import {Boxes} from "../components/noosfero-boxes/boxes.component"; 5 import {Boxes} from "../components/noosfero-boxes/boxes.component";
  6 +import {Block} from "../components/noosfero-blocks/block.component";
6 7
7 @Component({ 8 @Component({
8 selector: 'main-content', 9 selector: 'main-content',
@@ -15,7 +16,7 @@ export class MainContent { @@ -15,7 +16,7 @@ export class MainContent {
15 @Component({ 16 @Component({
16 selector: 'main', 17 selector: 'main',
17 template: '<div ng-view></div>', 18 template: '<div ng-view></div>',
18 - directives: [NoosferoArticleBlog, ArticleDirective, Boxes] 19 + directives: [NoosferoArticleBlog, ArticleDirective, Boxes, Block]
19 }) 20 })
20 @StateConfig([ 21 @StateConfig([
21 { 22 {