Ignore:
Timestamp:
10/27/21 21:29:11 (3 years ago)
Author:
Стојков Марко <mst@…>
Branches:
dev
Children:
32cd040
Parents:
d2b1fa6
Message:

Ask question finishing touches

Location:
src/Clients/Angular/finki-chattery/src/app/modules/questioning
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.html

    rd2b1fa6 rc205cc4  
    11<form class="example-container" [formGroup]="questionFormGroup">
    2   <mat-form-field class="full-width" appearance="standard" appHandleInputFormErrors>
    3     <mat-label>STAVI TRANSLATE</mat-label>
     2  <mat-form-field class="full-width margin-bottom-sm" appearance="fill" appHandleInputFormErrors>
     3    <mat-label>{{ 'ask-question-question-title' | translate }}</mat-label>
    44    <input matInput [formControl]="titleForm" />
    55  </mat-form-field>
     
    77  <editor
    88    matInput
     9    class="margin-bottom-sm"
    910    [formControl]="textForm"
    1011    [init]="{
     12      apiKey: 'fx28x0d64jeufa35u7mcd80fgveayg5c4ap9gnr6posehzny',
    1113      menubar: false,
    1214      plugins: [
     
    1618      ],
    1719      toolbar:
    18         'undo redo | formatselect | bold italic backcolor | \
     20        'undo redo | formatselect | bold italic backcolor | code | \
    1921        alignleft aligncenter alignright alignjustify | \
    2022        bullist numlist outdent indent | removeformat | help'
     
    2224  ></editor>
    2325  <mat-error *ngIf="textForm?.touched && textForm?.errors?.required">{{ 'not-found' | translate }}</mat-error>
    24   <mat-error *ngIf="textForm?.touched && textForm?.errors?.maxlength">STAVI TRANSL ATE MAX LENGTH</mat-error>
     26  <mat-error *ngIf="textForm?.touched && textForm?.errors?.maxlength">{{
     27    'error-message-max-length' | translate: { maxlength: textForm?.errors?.maxlength?.requiredLength }
     28  }}</mat-error>
    2529
    26   <mat-form-field class="full-width" appearance="standard" appHandleInputFormErrors>
    27     <mat-label>STAVI TRANSLATE</mat-label>
     30  <mat-form-field class="full-width margin-bottom-sm" appearance="fill" appHandleInputFormErrors>
     31    <mat-label>{{ 'ask-question-categories' | translate }}</mat-label>
    2832    <mat-select [formControl]="categoriesForm" multiple>
    29       <mat-option *ngFor="let category of categoriesList" [value]="category.uid">{{ category.name }}</mat-option>
     33      <mat-option *ngFor="let category of categoriesList$ | async" [value]="category.uid">{{ category.translatedName }}</mat-option>
    3034    </mat-select>
    3135  </mat-form-field>
    3236
    3337  <app-button [disabled]="questionFormGroup.invalid" [buttonType]="ButtonType.CallToAction" (action)="askQuestion()">
    34     {{ 'not-found' | translate }}
     38    {{ 'ask-question-ask-button' | translate }}
    3539  </app-button>
    3640</form>
  • src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.scss

    rd2b1fa6 rc205cc4  
    1 .full-width {
    2   width: 100%;
    3 }
  • src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/ask-question/ask-question.component.ts

    rd2b1fa6 rc205cc4  
    11import { Component, OnInit } from '@angular/core';
    22import { FormControl, FormGroup, Validators } from '@angular/forms';
     3import { Router } from '@angular/router';
    34
     5import { CategoryFacadeService } from 'src/app/core/state/category-facade.service';
    46import { ButtonType } from 'src/app/shared-app/components/generic/button/button.models';
    5 import { CategoryViewModel } from 'src/app/shared-app/models';
    67import { AskQuestionRequest } from '../../models/questioning-request.models';
    78import { QuestioningApiService } from '../../services/questioning-api.service';
     
    1617  public textForm = new FormControl('', [Validators.required, Validators.maxLength(4000)]);
    1718  public categoriesForm = new FormControl([]);
    18 
    1919  public questionFormGroup: FormGroup;
    2020  public ButtonType = ButtonType;
     21  public categoriesList$ = this.categoriesFacade.getCategories();
    2122
    22   // TODO: PULL FROM ENDPOINT OR FROM STORE (BETTER FROM STORE)
    23   public categoriesList: CategoryViewModel[] = [
    24     new CategoryViewModel('123', 'test'),
    25     new CategoryViewModel('345', 'test 2'),
    26     new CategoryViewModel('345', 'test 3'),
    27     new CategoryViewModel('345', 'test 4'),
    28     new CategoryViewModel('345', 'test 5')
    29   ];
    30 
    31   constructor(private api: QuestioningApiService) {
     23  constructor(private api: QuestioningApiService, private categoriesFacade: CategoryFacadeService, private router: Router) {
    3224    this.questionFormGroup = new FormGroup({
    3325      title: this.titleForm,
     
    4133  public askQuestion(): void {
    4234    const body = new AskQuestionRequest(this.titleForm.value, this.textForm.value, this.categoriesForm.value);
    43     this.api.askQuestion(body).subscribe(() => {});
     35    this.api.askQuestion(body).subscribe((questionUid) => {
     36      this.router.navigateByUrl(`questioning/${questionUid}`);
     37    });
    4438  }
    4539}
  • src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questioning-general/questioning-general.component.ts

    rd2b1fa6 rc205cc4  
    11import { Component, OnInit } from '@angular/core';
     2import { CategoryFacadeService } from 'src/app/core/state/category-facade.service';
    23
    34@Component({
     
    78})
    89export class QuestioningGeneralComponent implements OnInit {
    9   constructor() {}
     10  constructor(private categoriesFacade: CategoryFacadeService) {}
    1011
    11   ngOnInit(): void {}
     12  ngOnInit(): void {
     13    this.categoriesFacade.fetchCategories();
     14  }
    1215}
  • src/Clients/Angular/finki-chattery/src/app/modules/questioning/components/questions-preview-general/questions-preview-general.component.ts

    rd2b1fa6 rc205cc4  
    1717  questionsSortByForm = new FormControl(PreviewQuestionsOrderEnum.Latest);
    1818
    19   constructor(private categoriesFacade: CategoryFacadeService, private questionFacade: QuestionFacadeService, private router: Router) {}
     19  constructor(private questionFacade: QuestionFacadeService, private router: Router) {}
    2020
    2121  ngOnInit(): void {
    22     this.categoriesFacade.fetchCategories();
    2322    this.questionFacade.fetchPreviewQuestions(PreviewQuestionsOrderEnum.Latest);
    2423    this.questionsSortByForm.valueChanges.subscribe((value: PreviewQuestionsOrderEnum) => {
  • src/Clients/Angular/finki-chattery/src/app/modules/questioning/services/questioning-api.service.ts

    rd2b1fa6 rc205cc4  
    1313  }
    1414
    15   askQuestion(body: AskQuestionRequest): Observable<void> {
     15  askQuestion(body: AskQuestionRequest): Observable<string> {
    1616    return this.post('v1/questions', body);
    1717  }
Note: See TracChangeset for help on using the changeset viewer.