diff --git a/src/app/core/feedback/feedback-data.service.ts b/src/app/core/feedback/feedback-data.service.ts index c70e4d3577..2e35b46046 100644 --- a/src/app/core/feedback/feedback-data.service.ts +++ b/src/app/core/feedback/feedback-data.service.ts @@ -18,6 +18,7 @@ import { DSOChangeAnalyzer } from 'src/app/core/data/dso-change-analyzer.service import { getFirstSucceededRemoteData, getRemoteDataPayload, getFirstCompletedRemoteData } from 'src/app/core/shared/operators'; import { HttpOptions } from '../dspace-rest/dspace-rest.service'; import { PostRequest } from 'src/app/core/data/request.models'; +import { RemoteData } from 'src/app/core/data/remote-data'; /** * Service for checking and managing the status of the current end user agreement @@ -58,7 +59,7 @@ export class FeedbackDataService extends DataService { * @return Observable * server response */ - createFeedback(payoload: Feedback): Observable { + createFeedback(payoload: Feedback): Observable> { return this.postToEndpoint(this.linkPath, payoload); } @@ -74,7 +75,7 @@ export class FeedbackDataService extends DataService { * @return Observable * server response */ - public postToEndpoint(linkName: string, body: any, options?: HttpOptions): Observable { + public postToEndpoint(linkName: string, body: any, options?: HttpOptions): Observable> { const requestId = this.requestService.generateRequestId(); const href$ = this.halService.getEndpoint(linkName).pipe( filter((href: string) => isNotEmpty(href)), @@ -87,7 +88,7 @@ export class FeedbackDataService extends DataService { return this.rdbService.buildFromRequestUUID(requestId).pipe( getFirstCompletedRemoteData(), - getRemoteDataPayload(), + // getRemoteDataPayload(), ); } diff --git a/src/app/core/feedback/models/feedback.model.ts b/src/app/core/feedback/models/feedback.model.ts index 165ec6d760..eec5b37cc4 100644 --- a/src/app/core/feedback/models/feedback.model.ts +++ b/src/app/core/feedback/models/feedback.model.ts @@ -1,8 +1,5 @@ import { autoserialize, inheritSerialization } from 'cerialize'; -import { Observable } from 'rxjs'; import { link, typedObject } from '../../cache/builders/build-decorators'; -import { PaginatedList } from '../../data/paginated-list.model'; -import { RemoteData } from '../../data/remote-data'; import { DSpaceObject } from '../../shared/dspace-object.model'; import { HALLink } from '../../shared/hal-link.model'; diff --git a/src/app/info/feedback/feedback-content/feedback-content.component.html b/src/app/info/feedback/feedback-content/feedback-content.component.html index d1fc6cb682..d5f1038ad0 100644 --- a/src/app/info/feedback/feedback-content/feedback-content.component.html +++ b/src/app/info/feedback/feedback-content/feedback-content.component.html @@ -27,7 +27,7 @@ class="alert"> -
diff --git a/src/app/info/feedback/feedback-content/feedback-content.component.scss b/src/app/info/feedback/feedback-content/feedback-content.component.scss index e69de29bb2..41d439e591 100644 --- a/src/app/info/feedback/feedback-content/feedback-content.component.scss +++ b/src/app/info/feedback/feedback-content/feedback-content.component.scss @@ -0,0 +1,3 @@ +ds-error{ + color:red; +} \ No newline at end of file diff --git a/src/app/info/feedback/feedback-content/feedback-content.component.ts b/src/app/info/feedback/feedback-content/feedback-content.component.ts index d92fcf4307..706a82d285 100644 --- a/src/app/info/feedback/feedback-content/feedback-content.component.ts +++ b/src/app/info/feedback/feedback-content/feedback-content.component.ts @@ -1,3 +1,6 @@ +import { isSuccess } from './../../../core/data/request.reducer'; +import { RemoteData } from './../../../core/data/remote-data'; +import { NoContent } from './../../../core/shared/NoContent.model'; import { FeedbackDataService } from './../../../core/feedback/feedback-data.service'; import { Component, OnInit } from '@angular/core'; import { RouteService } from 'src/app/core/services/route.service'; @@ -41,20 +44,30 @@ export class FeedbackContentComponent implements OnInit { * On init check if user is logged in and use its email if so */ ngOnInit() { + this.authService.getAuthenticatedUserFromStore().subscribe((user: EPerson) => { if (!!user) { this.feedbackForm.patchValue({ email: user.email }); } }); + + this.routeService.getPreviousUrl().subscribe((url: string) => { + this.feedbackForm.patchValue({ page: url }); + }); + } /** * Function to create the feedback from form values */ - createFeedback() { - this.feedbackDataService.createFeedback(this.feedbackForm.value).subscribe((response: Feedback) => { - this.notificationsService.success(this.translate.instant('info.feedback.create.success')); - this.feedbackForm.reset(); + createFeedback(): void { + this.feedbackDataService.createFeedback(this.feedbackForm.value).subscribe((response: RemoteData) => { + if (response.isSuccess) { + this.notificationsService.success(this.translate.instant('info.feedback.create.success')); + this.feedbackForm.reset(); + } else { + this.notificationsService.error(response.errorMessage); + } }); }