Commit 5deddf4541b50430d20e3bf8c4629a7ad8f0ef4e

Authored by Victor Costa
Committed by Michel Felipe
1 parent 56a44bd2

Set parahraph uuid when create comments in paragraphs

src/app/article/comment/comments.component.ts
1   -import { Inject, Input, Output, Component, provide, EventEmitter } from 'ng-forward';
2   -import {INgForwardJQuery} from "ng-forward/cjs/util/jqlite-extensions";
3   -
4   -
  1 +import { Inject, Input, Component, provide } from 'ng-forward';
5 2 import { PostCommentComponent } from "./post-comment/post-comment.component";
6 3 import { CommentService } from "../../../lib/ng-noosfero-api/http/comment.service";
7 4 import { CommentComponent } from "./comment.component";
  5 +import { PostCommentEventService } from "./post-comment/post-comment-event.service";
8 6  
9 7 @Component({
10 8 selector: 'noosfero-comments',
11 9 templateUrl: 'app/article/comment/comments.html',
12   - directives: [PostCommentComponent, CommentComponent],
13   - outputs: ['commentAdded']
  10 + directives: [PostCommentComponent, CommentComponent]
14 11 })
15   -@Inject(CommentService, "$element")
  12 +@Inject(CommentService, PostCommentEventService, "$scope")
16 13 export class CommentsComponent {
17 14  
18   - comments: noosfero.CommentViewModel[] = [];
  15 + comments: noosfero.Comment[] = [];
19 16 @Input() showForm = true;
20 17 @Input() article: noosfero.Article;
21   - @Input() parent: noosfero.CommentViewModel;
22   -
  18 + @Input() parent: noosfero.Comment;
23 19 protected page = 1;
24 20 protected perPage = 5;
25 21 protected total = 0;
26 22  
27   - constructor(protected commentService: CommentService) { }
  23 + newComment = <noosfero.Comment>{};
  24 +
  25 + constructor(protected commentService: CommentService, private postCommentEventService: PostCommentEventService, private $scope: ng.IScope) { }
28 26  
29 27 ngOnInit() {
30 28 if (this.parent) {
... ... @@ -32,20 +30,13 @@ export class CommentsComponent {
32 30 } else {
33 31 this.loadNextPage();
34 32 }
35   - }
36   -
37   - commentAdded(comment: noosfero.Comment): void {
38   - this.comments.push(comment);
39   - this.resetShowReply();
40   - }
41   -
42   - private resetShowReply() {
43   - this.comments.forEach((comment: noosfero.CommentViewModel) => {
44   - comment.__show_reply = false;
  33 + this.postCommentEventService.subscribe((comment: noosfero.Comment) => {
  34 + if ((!this.parent && !comment.reply_of) || (comment.reply_of && this.parent && comment.reply_of.id === this.parent.id)) {
  35 + if (!this.comments) this.comments = [];
  36 + this.comments.push(comment);
  37 + this.$scope.$apply();
  38 + }
45 39 });
46   - if (this.parent) {
47   - this.parent.__show_reply = false;
48   - }
49 40 }
50 41  
51 42 loadComments() {
... ...
src/app/article/comment/comments.html
1 1 <div class="comments">
2   - <noosfero-post-comment (comment-saved)="ctrl.commentAdded($event.detail)" ng-if="ctrl.showForm" [article]="ctrl.article" [parent]="ctrl.parent"></noosfero-post-comment>
  2 + <noosfero-post-comment ng-if="ctrl.showForm" [article]="ctrl.article" [parent]="ctrl.parent" [comment]="ctrl.newComment"></noosfero-post-comment>
3 3  
4 4 <div class="comments-list">
5 5 <noosfero-comment ng-repeat="comment in ctrl.comments | orderBy: 'created_at':true" [comment]="comment" [article]="ctrl.article"></noosfero-comment>
... ...
src/app/article/comment/post-comment/post-comment.component.ts
... ... @@ -17,8 +17,7 @@ export class PostCommentComponent {
17 17  
18 18 @Input() article: noosfero.Article;
19 19 @Input() parent: noosfero.Comment;
20   -
21   - comment = <noosfero.Comment>{};
  20 + @Input() comment = <noosfero.Comment>{};
22 21 private currentUser: noosfero.User;
23 22  
24 23 constructor(private commentService: CommentService,
... ...
src/plugins/comment_paragraph/hotspot/comment-paragraph-uuid-hotspot.component.ts
... ... @@ -1,21 +0,0 @@
1   -import { Input, Inject, Component } from "ng-forward";
2   -import {Hotspot} from "../../../app/hotspot/hotspot.decorator";
3   -
4   -@Component({
5   - selector: "comment-paragraph-uuid-hotspot",
6   - template: "<span></span>",
7   -})
8   -@Inject("$scope")
9   -@Hotspot("comment_form_extra_contents")
10   -export class CommentParagraphUuidHotspotComponent {
11   -
12   - @Input() comment: noosfero.Comment;
13   -
14   - constructor(private $scope: ng.IScope) { }
15   -
16   - ngOnInit() {
17   - this.$scope.$watch("comment", () => {
18   - this.comment['paragraph_uuid'] = "???";
19   - });
20   - }
21   -}
src/plugins/comment_paragraph/index.ts
1 1 import {AllowCommentComponent} from "./allow-comment/allow-comment.component";
2   -import {CommentParagraphUuidHotspotComponent} from "./hotspot/comment-paragraph-uuid-hotspot.component";
3 2 import {CommentParagraphArticleButtonHotspotComponent} from "./hotspot/comment-paragraph-article-button.component";
4 3  
5 4 export let mainComponents: any = [AllowCommentComponent];
6   -export let hotspots: any = [CommentParagraphUuidHotspotComponent, CommentParagraphArticleButtonHotspotComponent];
  5 +export let hotspots: any = [CommentParagraphArticleButtonHotspotComponent];
... ...
src/plugins/comment_paragraph/side-comments/side-comments.component.ts
... ... @@ -17,6 +17,11 @@ export class SideCommentsComponent extends CommentsComponent {
17 17 super(commentService, $rootScope);
18 18 }
19 19  
  20 + ngOnInit() {
  21 + super.ngOnInit();
  22 + this.newComment['paragraph_uuid'] = this.paragraphUuid;
  23 + }
  24 +
20 25 loadComments() {
21 26 return this.commentParagraphService.getByArticle(this.article, { page: this.page, per_page: this.perPage, paragraph_uuid: this.paragraphUuid });
22 27 }
... ...