Advertisement
Guest User

Untitled

a guest
Aug 26th, 2018
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //ESTRUTURA HTML DA TELA DE CADASTRO
  2. <sge-content-header nome="Área"></sge-content-header>
  3.  
  4.   <div class="box box-primary content box-content-custom">
  5.  
  6.       <form [formGroup]="areaForm" novalidate>
  7.         <div class="box-body">
  8.           <div class="row">
  9.               <div class="col-xs-3">
  10.                 <sge-input errorMessage="A sigla deve conter 3 caracteres" label="Sigla">
  11.                     <input class="form-control" formControlName="sigla" autocomplete="off" placeholder="Sigla">
  12.                 </sge-input>
  13.               </div>
  14.               <div class="col-xs-9">
  15.                   <sge-input errorMessage="O nome deve conter no mínimo 3 caracteres" label="Nome">
  16.                       <input class="form-control" formControlName="nome" autocomplete="off" placeholder="Nome">
  17.                   </sge-input>
  18.               </div>
  19.             </div>
  20.             <div class="row">
  21.                 <div class="box-footer">
  22.                     <button (click)="salvarArea(areaForm.value)" type="submit" class="btn btn-primary">Cadastrar</button>
  23.                 </div>
  24.             </div>
  25.           </div>
  26.       </form>
  27.   </div>
  28.   <sge-area-list (areaEvent)="addAreaEvent($event)"></sge-area-list>
  29.  
  30.  
  31. //COMPONENT DA TELA DE CADASTRO
  32.  
  33. import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';
  34. import { Area } from '../shared/area.model';
  35. import { AreaService } from '../shared/area.service';
  36. import { FormGroup, FormBuilder, Validators, AbstractControl } from '@angular/forms';
  37.  
  38. @Component({
  39.   selector: 'sge-area',
  40.   templateUrl: './area.component.html'
  41. })
  42. export class AreaComponent implements OnInit {
  43.  
  44.   constructor(private areaService: AreaService, private formBuilder: FormBuilder) { }
  45.  
  46.   @Input() area;
  47.  
  48.   areaForm: FormGroup;
  49.  
  50.   @Output() areaEvent = new EventEmitter<Area>();
  51.  
  52.   ngOnInit() {
  53.     this.areaForm = this.formBuilder.group({
  54.       sigla:this.formBuilder.control('',[Validators.required, Validators.minLength(3), Validators.maxLength(3)]),
  55.       nome:this.formBuilder.control('',[Validators.required, Validators.minLength(3), Validators.maxLength(45)])})
  56.   }
  57.  
  58.   salvarArea(area){
  59.     this.areaService.salvarArea(area).subscribe((area:string)=>{
  60.       console.log(area);
  61.     });
  62.     this.areaEvent.emit(area);
  63.    
  64.   }
  65.  
  66. }
  67.  
  68.  
  69.  
  70. //ESTRUTURA HTML DA TELA DE LISTAGEM
  71. <div class="box-header box-header-custom">
  72.   <h3 class="box-title">Listagem de Áreas Cadastradas</h3>
  73.  
  74.   <div class="box-tools">
  75.     <div class="input-group input-group-sm" style="width: 150px;">
  76.       <input type="text" name="table_search" class="form-control pull-right" placeholder="Search">
  77.  
  78.       <div class="input-group-btn">
  79.         <button type="submit" class="btn btn-default"><i class="fa fa-search"></i></button>
  80.       </div>
  81.     </div>
  82.   </div>
  83. </div>
  84. <!-- /.box-header -->
  85. <div class="box-body table-responsive no-padding">
  86. <table class="table table-hover">
  87.   <tr>
  88.     <th>Sigla</th>
  89.     <th>Nome</th>
  90.     <th>Ação</th>
  91.   </tr>
  92.   <tr *ngFor="let area of areas">
  93.     <td>{{area.sigla}}</td>
  94.     <td>{{area.nome}}</td>
  95.     <td>
  96.         <span class="btn-align"><a (click)="editarArea(area)" class="edit"><i class="fa fa-edit"></i></a></span>
  97.         <span class="btn-align"><a (click)="removerArea(area)" class="remove"><i class="fa fa-trash"></i></a></span>
  98.     </td>
  99.   </tr>
  100. </table>
  101. </div>
  102.  
  103.  
  104.  
  105. //COMPONENTE REFERENTE A TELA DE LISTAGEM
  106. import { Component, OnInit, Input } from '@angular/core';
  107. import { AreaService } from '../shared/area.service';
  108. import { Area } from '../shared/area.model';
  109.  
  110. @Component({
  111.   selector: 'sge-area-list',
  112.   templateUrl: './area-list.component.html'
  113. })
  114. export class AreaListComponent implements OnInit {
  115.  
  116.   areas: Area[];
  117.  
  118.   constructor(private areaService:AreaService) { }
  119.  
  120.   ngOnInit() {
  121.     this.listaAreas();
  122.   }
  123.  
  124.   listaAreas() {
  125.     this.areaService.areas().subscribe(areas=>this.areas = areas);
  126.   }
  127.  
  128.   addAreaEvent($event){
  129.     console.log("recebeu o evento");
  130.     console.log($event);
  131.   }
  132.  
  133. }
  134.  
  135.  
  136.  
  137. //SERVICE
  138.  
  139. import { Http, Response, RequestOptions, Headers } from "@angular/http";
  140. import { Injectable } from "@angular/core";
  141. import { Observable } from "rxjs/Observable";
  142. import { ErrorHandler } from "../../app.error.handler";
  143. import { Area } from "./area.model";
  144. import { SGE_API } from "../../app.apis";
  145. import "rxjs/add/operator/map";
  146. import "rxjs/add/operator/catch";
  147. import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';
  148.  
  149.  
  150.  
  151. @Injectable()
  152. export class AreaService{
  153.     constructor(private http:Http){}
  154.  
  155.     area: Area;
  156.     @Output() areaEvent = new EventEmitter<Area>();
  157.  
  158.     areas():Observable<Area[]>{
  159.         return this.http.get(`${SGE_API}/areas`)
  160.         .map(response=>response.json())
  161.         .catch(ErrorHandler.handleError);
  162.     }
  163.  
  164.     salvarArea(area: Area):Observable<string>{
  165.         const headers = new Headers();
  166.         headers.append('Content-Type','application/json');
  167.  
  168.         return this.http.post(`${SGE_API}/areas`,JSON.stringify(area),
  169.         new RequestOptions({headers:headers}))
  170.         .map(response=>response.json())
  171.     }
  172.  
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement