aboutsummaryrefslogtreecommitdiffhomepage
path: root/client
diff options
context:
space:
mode:
Diffstat (limited to 'client')
-rw-r--r--client/src/app/+about/about-instance/contact-admin-modal.component.html9
-rw-r--r--client/src/app/+about/about-instance/contact-admin-modal.component.ts4
-rw-r--r--client/src/app/shared/forms/form-validators/instance-validators.service.ts14
-rw-r--r--client/src/app/shared/instance/instance.service.ts3
4 files changed, 28 insertions, 2 deletions
diff --git a/client/src/app/+about/about-instance/contact-admin-modal.component.html b/client/src/app/+about/about-instance/contact-admin-modal.component.html
index b2cbd0873..c3c71bdee 100644
--- a/client/src/app/+about/about-instance/contact-admin-modal.component.html
+++ b/client/src/app/+about/about-instance/contact-admin-modal.component.html
@@ -26,6 +26,15 @@
26 </div> 26 </div>
27 27
28 <div class="form-group"> 28 <div class="form-group">
29 <label i18n for="subject">Subject</label>
30 <input
31 type="text" id="subject"
32 formControlName="subject" [ngClass]="{ 'input-error': formErrors['subject'] }"
33 >
34 <div *ngIf="formErrors.subject" class="form-error">{{ formErrors.subject }}</div>
35 </div>
36
37 <div class="form-group">
29 <label i18n for="body">Your message</label> 38 <label i18n for="body">Your message</label>
30 <textarea id="body" formControlName="body" [ngClass]="{ 'input-error': formErrors['body'] }"> 39 <textarea id="body" formControlName="body" [ngClass]="{ 'input-error': formErrors['body'] }">
31 </textarea> 40 </textarea>
diff --git a/client/src/app/+about/about-instance/contact-admin-modal.component.ts b/client/src/app/+about/about-instance/contact-admin-modal.component.ts
index 7d79c2215..c609c98c3 100644
--- a/client/src/app/+about/about-instance/contact-admin-modal.component.ts
+++ b/client/src/app/+about/about-instance/contact-admin-modal.component.ts
@@ -39,6 +39,7 @@ export class ContactAdminModalComponent extends FormReactive implements OnInit {
39 this.buildForm({ 39 this.buildForm({
40 fromName: this.instanceValidatorsService.FROM_NAME, 40 fromName: this.instanceValidatorsService.FROM_NAME,
41 fromEmail: this.instanceValidatorsService.FROM_EMAIL, 41 fromEmail: this.instanceValidatorsService.FROM_EMAIL,
42 subject: this.instanceValidatorsService.SUBJECT,
42 body: this.instanceValidatorsService.BODY 43 body: this.instanceValidatorsService.BODY
43 }) 44 })
44 } 45 }
@@ -58,9 +59,10 @@ export class ContactAdminModalComponent extends FormReactive implements OnInit {
58 sendForm () { 59 sendForm () {
59 const fromName = this.form.value['fromName'] 60 const fromName = this.form.value['fromName']
60 const fromEmail = this.form.value[ 'fromEmail' ] 61 const fromEmail = this.form.value[ 'fromEmail' ]
62 const subject = this.form.value[ 'subject' ]
61 const body = this.form.value[ 'body' ] 63 const body = this.form.value[ 'body' ]
62 64
63 this.instanceService.contactAdministrator(fromEmail, fromName, body) 65 this.instanceService.contactAdministrator(fromEmail, fromName, subject, body)
64 .subscribe( 66 .subscribe(
65 () => { 67 () => {
66 this.notifier.success(this.i18n('Your message has been sent.')) 68 this.notifier.success(this.i18n('Your message has been sent.'))
diff --git a/client/src/app/shared/forms/form-validators/instance-validators.service.ts b/client/src/app/shared/forms/form-validators/instance-validators.service.ts
index 5bb852858..cc5f3c5a1 100644
--- a/client/src/app/shared/forms/form-validators/instance-validators.service.ts
+++ b/client/src/app/shared/forms/form-validators/instance-validators.service.ts
@@ -7,6 +7,7 @@ import { Injectable } from '@angular/core'
7export class InstanceValidatorsService { 7export class InstanceValidatorsService {
8 readonly FROM_EMAIL: BuildFormValidator 8 readonly FROM_EMAIL: BuildFormValidator
9 readonly FROM_NAME: BuildFormValidator 9 readonly FROM_NAME: BuildFormValidator
10 readonly SUBJECT: BuildFormValidator
10 readonly BODY: BuildFormValidator 11 readonly BODY: BuildFormValidator
11 12
12 constructor (private i18n: I18n) { 13 constructor (private i18n: I18n) {
@@ -32,6 +33,19 @@ export class InstanceValidatorsService {
32 } 33 }
33 } 34 }
34 35
36 this.SUBJECT = {
37 VALIDATORS: [
38 Validators.required,
39 Validators.minLength(1),
40 Validators.maxLength(120)
41 ],
42 MESSAGES: {
43 'required': this.i18n('A subject is required.'),
44 'minlength': this.i18n('The subject must be at least 1 character long.'),
45 'maxlength': this.i18n('The subject cannot be more than 120 characters long.')
46 }
47 }
48
35 this.BODY = { 49 this.BODY = {
36 VALIDATORS: [ 50 VALIDATORS: [
37 Validators.required, 51 Validators.required,
diff --git a/client/src/app/shared/instance/instance.service.ts b/client/src/app/shared/instance/instance.service.ts
index 61321ecce..d0c96941d 100644
--- a/client/src/app/shared/instance/instance.service.ts
+++ b/client/src/app/shared/instance/instance.service.ts
@@ -22,10 +22,11 @@ export class InstanceService {
22 .pipe(catchError(res => this.restExtractor.handleError(res))) 22 .pipe(catchError(res => this.restExtractor.handleError(res)))
23 } 23 }
24 24
25 contactAdministrator (fromEmail: string, fromName: string, message: string) { 25 contactAdministrator (fromEmail: string, fromName: string, subject: string, message: string) {
26 const body = { 26 const body = {
27 fromEmail, 27 fromEmail,
28 fromName, 28 fromName,
29 subject,
29 body: message 30 body: message
30 } 31 }
31 32