Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.10 KB | None | 0 0
  1. //TS
  2.  
  3.  
  4. import { Component, OnInit } from "@angular/core";
  5. import { Http, Response } from '@angular/http';
  6. import { FormGroup, FormControl, Validators, FormBuilder } from '@angular/forms';
  7. import "rxjs/add/operator/map";
  8. import { FAQ } from "./FAQ";
  9. import { Meldinger } from "./meldinger";
  10. import { Kategori } from "./kategori";
  11. import { InnsendtSporsmaal } from "./innsendtSporsmaal";
  12. import { Headers } from "@angular/http";
  13.  
  14. @Component({
  15.     selector: "min-app",
  16.     templateUrl: "./app/VisKunder.html"
  17. })
  18. export class VisAlleSporsmaal {
  19.     visForside: boolean;
  20.     feilMelding: string;
  21.     menyKnapper: boolean;
  22.     visMeldinger: boolean;
  23.     visSkjemaKnapp: boolean;
  24.     visKnapper: boolean;
  25.     visSkjema: boolean;
  26.     visListe: boolean;
  27.     visBekreftelse: boolean;
  28.     public alleSporsmaal: Array<Kategori>;
  29.     public alleMeldinger: Array<Meldinger>;
  30.     public skjemaStatus: String;
  31.     skjema: FormGroup;
  32.     public laster: string;
  33.     public sporsmaal: string;
  34.     // public sporsmaalArray: Array<InnsendtSporsmaal> = [];
  35.    public kategoriNavn: string
  36.  
  37.  
  38.     constructor(private _http: Http, private fb: FormBuilder) {
  39.         this.skjema = fb.group({
  40.             id: [""],
  41.             sporsmaal: [null, Validators.compose([Validators.required, Validators.pattern("[0-9a-zA-ZøæåØÆÅ\\-. ]{2,30}")])],
  42.             kategori: [null, Validators.required],
  43.             epost: [null, Validators.compose([Validators.required, Validators.pattern("[0-9a-zA-ZøæåØÆÅ\\-. ]{2,30}")])],
  44.         });
  45.     }
  46.  
  47.     ngOnInit() {
  48.         this.visForside = true;
  49.         this.visListe = false;
  50.         this.visSkjema = false;
  51.         this.visBekreftelse = false;        
  52.         this.visKnapper = true;
  53.         this.visMeldinger = false;
  54.         this.hentAlleSporsmaal();
  55.         this.skjema.reset(true);
  56.     }
  57.  
  58.  
  59.     visKategoriSporsmaal(innNavn: string) {
  60.         this.visSkjemaKnapp = true;
  61.         this.visListe = true;
  62.         if (this.kategoriNavn == innNavn) {
  63.             this.kategoriNavn = "";
  64.  
  65.         }
  66.         else {
  67.             this.kategoriNavn = innNavn;
  68.         }
  69.     }
  70.  
  71.     visInnsendteSporsmaal() {
  72.         this.visMeldinger = true;
  73.         this.hentAlleMeldinger();
  74.         this.visForside = false;
  75.     }
  76.  
  77.     hentSporsmaal() {
  78.         this.visListe = true;
  79.         this.hentAlleSporsmaal();
  80.     }
  81.  
  82.     hentSkjema() {
  83.         this.visSkjema = true;
  84.         this.visListe = false;
  85.         this.visKnapper = false;
  86.         this.visSkjemaKnapp = false;
  87.         this.visForside = false;
  88.     }
  89.  
  90.     vedSubmit() {
  91.         this.lagreMelding();
  92.         this.visSkjema = false;
  93.         this.visBekreftelse = true;
  94.     }
  95.  
  96.     lagreMelding() {
  97.         var lagretMelding = new Meldinger(this.skjema.value.epost, this.skjema.value.sporsmaal, this.skjema.value.kategori);
  98.  
  99.        
  100.  
  101.         var body: string = JSON.stringify(lagretMelding);
  102.         var headers = new Headers({ "Content-Type": "application/json" });
  103.  
  104.         this._http.post("api/kunde", body, { headers: headers })
  105.             .map(returData => returData.toString())
  106.             .subscribe(
  107.             retur => {
  108.                 this.visForside = true;
  109.             },
  110.             error => this.feilMelding = error._body,
  111.             () => console.log("ferdig post-api/kunde")
  112.             );
  113.     };
  114.  
  115.     hentAlleSporsmaal() {
  116.         this.laster = "Laster inn! Vennligst vent";
  117.         this._http.get("api/kunde/")
  118.             .map(resultat => {
  119.                 let JsonData = resultat.json();
  120.                 return JsonData;
  121.             })
  122.             .subscribe(
  123.             JsonData => {
  124.                 this.alleSporsmaal = [];
  125.                 this.laster = "";
  126.                 if (JsonData) {
  127.                     for (let kat of JsonData) {
  128.                         this.alleSporsmaal.push(
  129.                             new Kategori(
  130.                                 kat.kid,
  131.                                 kat.kategoriNavn,
  132.                                 kat.faqListe,
  133.                             ))
  134.                     };
  135.                 };
  136.             },
  137.             error => alert(error),
  138.             () => console.log("ferdig get-api/kunde")
  139.             );
  140.     }
  141.  
  142.  
  143.     hentAlleMeldinger() {
  144.         this.laster = "Laster inn! Vennligst vent";
  145.         this._http.get("api/melding/")
  146.             .map(resultat => {
  147.                 let JsonData = resultat.json();
  148.                 return JsonData;
  149.             })
  150.             .subscribe(
  151.             JsonData => {
  152.                 this.alleMeldinger = [];
  153.                 this.laster = "";
  154.                 if (JsonData) {
  155.                     for (let m of JsonData) {
  156.                         this.alleMeldinger.push(
  157.                             new Meldinger(
  158.                                 m.epost,
  159.                                 m.sporsmaal,
  160.                                 m.kategori,
  161.                             ))
  162.                     };
  163.                 };
  164.             },
  165.             error => alert(error),
  166.             () => console.log("ferdig get-api/melding")
  167.             );
  168.     }
  169. }
  170.  
  171.  
  172.  
  173.  
  174. ///HTML
  175. <div class="jumbotron text-center">
  176.     <h1>FlyApplikasjon Kundeservice</h1>
  177.     <p>WebApplikasjoner Høst 2017.</p>
  178. </div>
  179.  
  180.  
  181.  
  182. <!-----------------------------
  183.         KATEGORIKNAPPER
  184. ------------------------------->
  185. <div class="form-group" *ngIf="visForside">
  186. <div *ngIf="visKnapper" class="btn-group btn-group-sm">
  187.     <div *ngFor="let k of alleSporsmaal">
  188.             <button class="btn btn-primary btn-lg" (click)="visKategoriSporsmaal(k.kategoriNavn)">
  189.                 {{k.kategoriNavn}}
  190.             </button>
  191.         </div>
  192.     </div>
  193.  
  194. </div>
  195.  
  196.  
  197. <!----------------------------
  198.         SPØRSMÅLSLISTE
  199. ----------------------------->
  200. <div *ngIf="visListe">
  201.     <div *ngFor="let k of alleSporsmaal">
  202.         <div *ngIf='kategoriNavn == k.kategoriNavn'>
  203.             <ul class="list-group" *ngFor='let faq of k.faqListe'>
  204.  
  205.                 <li class="list-group-item">{{faq.sporsmaal}}</li>
  206.  
  207.                 <li class="list-group-item">{{faq.svar}}</li>
  208.             </ul>
  209.         </div>
  210.     </div>
  211.     <button class="btn btn-primary" (click)="hentSkjema()">Send inn spørsmål</button>
  212. </div>
  213.  
  214.      
  215. <!-------------------------
  216.            SKJEMA
  217.  ------------------------->
  218.  
  219. <div *ngIf="visSkjema">
  220.     <h1 class="section-header"></h1>
  221.     <form [formGroup]="skjema" (ngSubmit)="vedSubmit()" class="container">
  222.         <div class="col-md-6 col-md-offset-1">
  223.             <div class="form-group">
  224.                 <label>Vennligst velg Kategori:</label>
  225.                 <select class="form-control" formControlName="kategori">
  226.                     <option *ngFor="let faq of alleSporsmaal" [value]="faq.kategoriNavn">{{faq.kategoriNavn}}</option>
  227.                 </select>
  228.             </div>
  229.             <div class="form-group">
  230.                 <label>Vennligst skriv inn din epost adresse:</label>
  231.                 <input class="form-control" formControlName="epost" placeholder="Skriv din epost" />
  232.                 <p class="alert alert-warning" [hidden]="skjema.controls.epost.valid || (skjema.controls.epost.pristine && !submitted)">
  233.                     Vennligst skriv inn en gyldig E-post adresse.
  234.                 </p>
  235.             </div>
  236.             <div class="form-group">
  237.                 <label>Vennligst skriv inn ditt spørsmål:</label>
  238.                 <textarea class="form-control" formControlName="sporsmaal" placeholder="Skriv inn ditt spørsmål"></textarea>
  239.                 <p class="alert alert-warning" [hidden]="skjema.controls.sporsmaal.valid || (skjema.controls.sporsmaal.pristine && !submitted)">
  240.                     Spørsmålet må være mer enn to tegn.
  241.                 </p>
  242.                    
  243.                  
  244.             </div>
  245.             <p>{{feilMelding}}</p> //HEr er FEILMELDINGA
  246.             <button type="submit" class="btn btn-success" [disabled]="!skjema.valid">Send Spørsmål</button>
  247.             <button type="button" class="btn btn-primary" (click)="ngOnInit()">Tilbake til forsiden</button>
  248.         </div>
  249.     </form>
  250. </div>
  251.  
  252. <!----------------------------
  253.        BekreftelseSkjema
  254. ------------------------------>
  255. <div *ngIf="visBekreftelse">
  256.     <h3>Ditt spørsmål er sendt til Kundeservice</h3>
  257.     <button class="btn btn-success" (click)="ngOnInit()">Tilbake til forsiden</button>
  258.     <button class="btn btn-primary" (click)="visInnsendteSporsmaal()">Vis innsendte spørsmål!</button>
  259. </div>
  260.  
  261. <!----------------------------
  262.         VisMeldinger
  263. ----------------------------->
  264.  <div *ngIf="visMeldinger" class="col-md-6">
  265.      <h4>Innsendte meldinger fra kunder</h4>
  266.      <table class="table table-bordered">
  267.          <thead>
  268.              <tr>
  269.                  <td>Kategori</td>
  270.                  <td>Sporsmål</td>
  271.                  <td>Epost</td>
  272.              </tr>
  273.          </thead>
  274.          <tbody>
  275.              <tr *ngFor="let melding of alleMeldinger">
  276.                  <td>{{melding.kategori}}</td>
  277.                  <td>{{melding.sporsmaal}}</td>
  278.                  <td>{{melding.epost}}</td>
  279.              </tr>
  280.          </tbody>
  281.      </table>
  282.  </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement