Commit 4840baa945a854c7bc2f268cf4d4f1ed627bde59

Authored by Victor Costa
Committed by Michel Felipe
1 parent f98ac330

Add paragraph uuid in comment form

src/app/article/comment/post-comment/post-comment.html
... ... @@ -8,7 +8,7 @@
8 8 </div>
9 9 <div class="media-body">
10 10 <textarea class="form-control custom-control" rows="1" ng-model="ctrl.comment.body" placeholder="{{'comment.post.placeholder' | translate}}"></textarea>
11   - <noosfero-hotspot-comment-form [comment]="ctrl.comment"></noosfero-hotspot-comment-form>
  11 + <noosfero-hotspot-comment-form [comment]="ctrl.comment" [parent]="ctrl.parent"></noosfero-hotspot-comment-form>
12 12 <button ng-show="ctrl.comment.body" type="submit" class="btn btn-default pull-right ng-hide" ng-click="ctrl.save()">{{"comment.post" | translate}}</button>
13 13 </div>
14 14 </div>
... ...
src/app/hotspot/comment-form-hotspot.component.ts
... ... @@ -11,6 +11,7 @@ import {PluginHotspot} from &quot;./plugin-hotspot&quot;;
11 11 export class CommentFormHotspotComponent extends PluginHotspot {
12 12  
13 13 @Input() comment: noosfero.Comment;
  14 + @Input() parent: noosfero.Comment;
14 15  
15 16 constructor(
16 17 private $element: any,
... ... @@ -20,6 +21,6 @@ export class CommentFormHotspotComponent extends PluginHotspot {
20 21 }
21 22  
22 23 addHotspot(directiveName: string) {
23   - this.$element.append(this.$compile('<' + directiveName + ' [comment]="ctrl.comment"></' + directiveName + '>')(this.$scope));
  24 + this.$element.append(this.$compile('<' + directiveName + ' [comment]="ctrl.comment" [parent]="ctrl.parent"></' + directiveName + '>')(this.$scope));
24 25 }
25 26 }
... ...
src/plugins/comment_paragraph/hotspot/comment-paragraph-form.component.ts 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +import { Inject, Input, Component } from "ng-forward";
  2 +import {Hotspot} from "../../../app/hotspot/hotspot.decorator";
  3 +
  4 +@Component({
  5 + selector: "comment-paragraph-form-hotspot",
  6 + template: "<span></span>",
  7 +})
  8 +@Hotspot("comment_form_extra_contents")
  9 +@Inject("$scope")
  10 +export class CommentParagraphFormHotspotComponent {
  11 +
  12 + @Input() comment: noosfero.Comment;
  13 + @Input() parent: noosfero.Comment;
  14 +
  15 + constructor(private $scope: ng.IScope) { }
  16 +
  17 + ngOnInit() {
  18 + this.$scope.$watch(() => {
  19 + return this.parent;
  20 + }, () => {
  21 + if (this.parent && (<any>this.parent).paragraph_uuid) {
  22 + (<any>this.comment).paragraph_uuid = (<any>this.parent).paragraph_uuid;
  23 + }
  24 + });
  25 + }
  26 +}
... ...
src/plugins/comment_paragraph/hotspot/comment-paragraph-from.component.spec.ts 0 → 100644
... ... @@ -0,0 +1,33 @@
  1 +import {CommentParagraphFormHotspotComponent} from "./comment-paragraph-form.component";
  2 +import {ComponentTestHelper, createClass} from '../../../spec/component-test-helper';
  3 +import * as helpers from "../../../spec/helpers";
  4 +import {ComponentFixture} from 'ng-forward/cjs/testing/test-component-builder';
  5 +
  6 +let htmlTemplate = '<comment-paragraph-form-hotspot [comment]="ctrl.comment" [parent]="ctrl.parent"></comment-paragraph-form-hotspot>';
  7 +
  8 +describe("Components", () => {
  9 + describe("Comment Paragraph Form Hotspot Component", () => {
  10 +
  11 + let helper: ComponentTestHelper;
  12 +
  13 + beforeEach(angular.mock.module("templates"));
  14 +
  15 + beforeEach((done) => {
  16 + let cls = createClass({
  17 + template: htmlTemplate,
  18 + directives: [CommentParagraphFormHotspotComponent],
  19 + providers: [],
  20 + properties: {
  21 + comment: {}
  22 + }
  23 + });
  24 + helper = new ComponentTestHelper(cls, done);
  25 + });
  26 +
  27 + it('set paragraph uuid when parent has it setted', () => {
  28 + helper.component.parent = { paragraph_uuid: 'uuid' };
  29 + helper.detectChanges();
  30 + expect((<any>helper.component.comment).paragraph_uuid).toEqual('uuid');
  31 + });
  32 + });
  33 +});
... ...
src/plugins/comment_paragraph/index.ts
1 1 import {AllowCommentComponent} from "./allow-comment/allow-comment.component";
2 2 import {CommentParagraphArticleButtonHotspotComponent} from "./hotspot/comment-paragraph-article-button.component";
  3 +import {CommentParagraphFormHotspotComponent} from "./hotspot/comment-paragraph-form.component";
3 4  
4 5 export let mainComponents: any = [AllowCommentComponent];
5   -export let hotspots: any = [CommentParagraphArticleButtonHotspotComponent];
  6 +export let hotspots: any = [CommentParagraphArticleButtonHotspotComponent, CommentParagraphFormHotspotComponent];
... ...