1 <form novalidate [formGroup]=
"form" (ngSubmit)=
"formValidated()">
2 <div class=
"avatar-and-textarea">
3 <img [src]=
"getAvatarUrl()" alt=
"Avatar" />
5 <div class=
"form-group">
6 <textarea i18n-placeholder
placeholder=
"Add comment..." myAutoResize
7 [readonly]=
"(user === null) ? true : false"
8 (click)=
"openVisitorModal($event)"
9 formControlName=
"text" [ngClass]=
"{ 'input-error': formErrors['text'] }"
10 (keyup.control.enter)=
"onValidKey()" (keyup.meta.enter)=
"onValidKey()" #textarea
>
13 <my-help class=
"markdown-guide" helpType=
"custom" iconName=
"markdown" tooltipPlacement=
"left auto" autoClose=
"true" i18n-title
title=
"Markdown compatible">
14 <ng-template ptTemplate=
"customHtml">
15 <span i18n
>Markdown compatible that supports:
</span>
18 <li><span i18n
>Auto generated links
</span></li>
19 <li><span i18n
>Break lines
</span></li>
20 <li><span i18n
>Lists
</span></li>
22 <span i18n
>Emphasis
</span>
23 <code>**
<strong i18n
>bold
</strong>** _
<i i18n
>italic
</i>_
</code>
26 <span i18n
>Emoji shortcuts
</span>
30 <span i18n
>Emoji markup
</span>
32 <div><a href=
"" (click)=
"openEmojiModal($event)" i18n
>See complete list
</a></div>
37 <div *
ngIf=
"formErrors.text" class=
"form-error">
43 <div class=
"comment-buttons">
44 <button *
ngIf=
"isAddButtonDisplayed()" class=
"cancel-button" (click)=
"cancelCommentReply()" type=
"button" i18n
>
47 <button *
ngIf=
"isAddButtonDisplayed()" [ngClass]=
"{ disabled: !form.valid || addingComment }">
48 {{ addingCommentButtonValue }}
53 <ng-template #visitorModal let-modal
>
54 <div class=
"modal-header">
55 <h4 class=
"modal-title" id=
"modal-basic-title" i18n
>You are one step away from commenting
</h4>
56 <my-global-icon iconName=
"cross" aria-label=
"Close" role=
"button" (click)=
"hideModals()"></my-global-icon>
58 <div class=
"modal-body">
60 You can comment using an account on any ActivityPub-compatible instance (PeerTube/Mastodon/Pleroma account for example).
63 <my-remote-subscribe [interact]=
"true" [uri]=
"getUri()"></my-remote-subscribe>
65 <div class=
"modal-footer inputs">
67 type=
"button" role=
"button" i18n-value
value=
"Cancel" class=
"action-button action-button-cancel"
68 (click)=
"hideModals()" (key.enter)=
"hideModals()"
72 type=
"submit" i18n-value
value=
"Login to comment" class=
"action-button-submit"
78 <ng-template #emojiModal
>
79 <div class=
"modal-header">
80 <h4 class=
"modal-title" id=
"modal-basic-title" i18n
>Markdown Emoji List
</h4>
81 <my-global-icon iconName=
"cross" aria-label=
"Close" role=
"button" (click)=
"hideModals()"></my-global-icon>
83 <div class=
"modal-body">
84 <div class=
"emoji-flex">
85 <div class=
"emoji-flex-item" *
ngFor=
"let emojiMarkup of emojiMarkupList">
86 {{ emojiMarkup[
0] }}
<code>:{{ emojiMarkup[
1] }}:
</code>