Ir ao conteúdo
  • Cadastre-se

EduardoMQS

Membros Plenos
  • Total de itens

    68
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Em HTML e o campo é chamado de <input>. Em Delphi é TEdit. Em JavaScript e Delphi o nome do evento para mudar o valor é onchange. Então procuro o nome do evento quando muda o valor de um JTextField em um JFrame da Swing em Java. Será que é inputMethodTextChanged?
  2. Exemplo, um DVD ou Blu-Ray de música Infantil, eu consigo encontrar no YouTube o clipe de uma música determinada, mas não o clipe dos intervalos entre as músicas, como as histórias, números, vogais, etc.
  3. Eu quero criar um programa que: Faça 100% mais rápido o upload de vídeos para o Facebook, Instagram e YouTube Faça 100% mais rápido o upload de arquivos para OneDrive, Google Drive e Dropbox Ele é inovador e é para eu vender. Eu já estudei como funciona o P2P, mas não a programar com P2P. Criar esse programa é possível usando P2P, eu sei. Mas em Java é possível?
  4. Letra mínima tem o mesmo significado que letra muito pequena. Estou filmando com a Apowersoft Free Online Screen Recorder, a tela inteira do meu notebook (1366x768) e quando publico no YouTube, a letra do VisualG fica mínima e quase tudo nos vídeos é ilegível, mesmo com a qualidade 720p.
  5. Eu tenho um fone de ouvido que conecto por bluetooth e quando escuto som alto do meu notebook por ele não escuto outras coisas. O que eu quero sobre dispositivos de entrada de áudio? Sempre fica conectado e habilitado o microfone. Mas quando conecto o fone de ouvido é desabilitado automaticamente os sons do sistema que sempre fica conectado e quando desconecto o fone é automaticamente habilitado os sons do sistema. Isso não acontece atualmente mas é meu sonho.
  6. No timer do iPhone 7, dá pra definir horas, minutos e segundos. No timer do iPhone 4, só dá pra definir horas e minutos.
  7. Meu parametros.component.html: <div class="card"> <div class="card-header"> <h1>Parâmetro da Requisição</h1> </div> <div class="card-body"> <div class="btn group no-padding"> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" (click)="novoParametroModal.show(); cleanParametro();"> Novo Parâmetro </button> </div> <table datatable ([dtOptions])="dtOptions" ([dtTrigger])="dtTrigger" class="table table-bordered table-striped"> <thead> <th class="celula">Ações</th> <th class="celulaA">ID</th> <th class="celulaA">Ativo</th> <th class="celulaA">Descrição do Parâmetro</th> </thead> <tbody> <tr *ngFor="let parametro of parametros; let i = index"> <td class="celula"> <i class="fa fa-pencil" id="op1" style="cursor: pointer; color: green" title="Editar" (click)="editarParametroModal.show();"></i> <i class="fa fa-trash" id="op" style="cursor: pointer; color: red" title="Excluir" (click)="deleteParametroModal.show();"></i> </td> <td class="celulaA"> {{parametro.id}} </td> <td class="celulaA"> {{parametro.ativo}} </td> <td class="celulaA"> {{parametro.desc_parametro}} </td> </tr> <!--<tr *ngIf="Parametro?.length == 0">--> <!--<td colspan="3" class="no-data-available">No data!</td>--> <!--</tr>--> </tbody> </table> </div> </div> <!--MODAL criar parametro--> <div bsModal #novoParametroModal="bs-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-primary" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Cadastrar novo Parâmetro:</h4> <button type="button" class="close" (click)="novoParametroModal.hide()" aria-label="Fechar"> <span aria-hidden="true">&times;</span> </button> </div> <form (ngSubmit)="onSubmit();"> <div id="placeholderDiv" class="col-sm-12"> <input class="form-control" type="text" style="width: 100%" placeholder="Descrição do Novo Parâmetro" [(ngModel)]="parametro.desc_parametro" ([ngModelOptions])="{standalone: true}" required #desc_parametro="ngModel" name="desc_parametro"/><br/> <input class="form-control" type="number" style="width: 100%" placeholder="Ano Vigente do Novo Parâmetro" [(ngModel)]="parametro.ano_vigente" ([ngModelOptions])="{standalone: true}" required #ano_vigente="ngModel" name="ano_vigente" minlength="4" maxlength="4"/><br/> <input class="form-control" type="number" style="width: 100%" placeholder="Semestre Vigente do Novo Parâmetro" [(ngModel)]="parametro.semestre_vigente" ([ngModelOptions])="{standalone: true}" required #semestre_vigente="ngModel" name="semestre_vigente" min="1" max="2"/><br/> <div class="col-sm-6 row"><label><input id="formCriar" class="form-control" type="checkbox" [(ngModel)]="parametro.ativo" ([ngModelOptions])="{standalone: true}" required #ativo="ngModel" name="ativo"/>Parâmetro Ativo</label></div><br/> </div> <div class="modal-footer"> <button type="button" class="btn btn-secundary" (click)="novoParametroModal.hide();"> Cancelar </button> <button type="submit" class="btn btn-primary" (click)="novoParametroModal.hide();"> Salvar </button> </div> </form> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <!--MODAL editar parametro--> <div bsModal #editarParametroModal="bs-modal" class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" [config]="{backdrop: 'static', keyboard: false}"> <div class="modal-dialog modal-primary" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Editar Parâmetro:</h4> <button type="button" class="close" (click)="editarParametroModal.hide(); rerender();" aria-label="Fechar"> <span aria-hidden="true">&times;</span> </button> </div> <form (ngSubmit)="onSubmit()"> <div id="placeholderDiv4" class="col-sm-12"><br/> <input class="form-control" type="text" style="width: 100%" placeholder="Nova Descrição do Parâmetro" [(ngModel)]="parametro.desc_parametro" required #desc_parametro="ngModel" name="desc_parametro"/><br/> <input class="form-control" type="number" style="width: 100%" placeholder="Novo Ano Vigente do Parâmetro" [(ngModel)]="parametro.ano_vigente" ([ngModelOptions])="{standalone: true}" required #ano_vigente="ngModel" name="ano_vigente" minlength="4" maxlength="4"/><br/> <input class="form-control" type="number" style="width: 100%" placeholder="Novo Semestre Vigente do Novo Parâmetro" [(ngModel)]="parametro.semestre_vigente" ([ngModelOptions])="{standalone: true}" required #semestre_vigente="ngModel" name="semestre_vigente" min="1" max="2"/><br/> <div class="col-sm-6 row"><label><input id="formCriar" class="form-control" type="checkbox" [(ngModel)]="parametro.ativo" ([ngModelOptions])="{standalone: true}" required #ativo="ngModel" name="ativo"/>Parâmetro Ativo</label></div><br/> </div> <div class="modal-footer"> <button type="button" class="btn btn-secundary" (click)="editarParametroModal.hide();"> Cancelar </button> <button type="submit" class="btn btn-primary" (click)="editarParametroModal.hide();"> Salvar </button> </div> </form> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <!--MODAL deletar parametro--> <div bsModal #deleteParametroModal="bs-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-danger" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Excluir registro</h4> <button type="button" class="close" (click)="deleteParametroModal.hide()" aria-label="Fechar"> <span aria-hidden="true">&times;</span> </button> </div> <form> <div id="placeholderDiv2" class="col-sm-12"> <p>Tem certeza que deseja excluir o Parâmetro {{params.desc_Parametro}}?</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secundary" (click)="deleteParametroModal.hide()"> Cancelar </button> <button type="button" class="btn btn-danger" (click)="delete()">Excluir </button> </div> </form> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> Meu parametros.component.ts: import {Component, OnInit, ViewChild, ViewContainerRef} from '@angular/core'; import {ModalDirective} from 'ngx-bootstrap'; import {Parametros} from '../../model/parametros'; import {ParametrosService} from '../../services/parametros.service'; import { ToastsManager } from 'ng2-toastr'; import {DataTableDirective} from 'angular-datatables'; import {Subject} from 'rxjs/Subject'; @Component({ selector: 'app-parametro', templateUrl: './parametros.component.html', styleUrls: ['./parametros.component.scss'], providers: [ParametrosService] }) export class ParametrosComponent implements OnInit { @ViewChild('novoParametroModal') novoParametroModal: ModalDirective; @ViewChild('deleteParametroModal') deleteParametroModal: ModalDirective; @ViewChild('editarParametroModal') editarParametroModal: ModalDirective; @ViewChild(DataTableDirective) dtElement: DataTableDirective; dtOptions: DataTables.Settings = {}; dtTrigger: Subject<any> = new Subject(); public parametro = new Parametros(); public parametros = new Array<Parametros>(); constructor(private parametroService: ParametrosService, public toastr: ToastsManager, vcr: ViewContainerRef) { this.toastr.setRootViewContainerRef(vcr); } public validation_messages = { id: [], desc_parametro: [], ativo: [], ano_vigente: [], semestre_vigente: [] }; rerender(): void { this.dtElement.dtInstance.then((dtInstance: DataTables.Api) => { dtInstance.destroy(); this.getParametro(); }); } onSubmit() { if (this.parametro.id === null) { console.log(this.parametro); this.parametroService.create(this.parametro).subscribe( data => { const response = (data as Parametros); this.rerender(); this.toastr.success('Dados Salvos com Sucesso!', 'Sucesso!'); }, error => { if (error.parametro === 422) { this.toastr.error('Estão faltando dados, verfique os campos e tente novamente!', 'Oops!'); this.validation_messages = error.error.validation_messages; this.validation_messages.id = (<any>Object).values(this.validation_messages.id); this.validation_messages.desc_parametro = (<any>Object).values(this.validation_messages.desc_parametro); this.validation_messages.ativo = (<any>Object).values(this.validation_messages.ativo); this.validation_messages.ano_vigente = (<any>Object).values(this.validation_messages.ano_vigente); this.validation_messages.semestre_vigente = (<any>Object).values(this.validation_messages.semestre_vigente); return; } else { this.toastr.error('Um erro ocorreu, contate o Administrador!', 'Oops!'); } } ); } else { this.parametroService.update(this.parametro).subscribe( data => { const response = (data as any); for (const i in this.parametro) { if (this.parametros[i].id === response.id) { this.parametros[i] = response; } } this.rerender(); this.toastr.success('Dados Salvos com Sucesso!', 'Sucesso!'); this.cleanParametro(); }, error => { if (error.parametro === 422) { console.log(error); return; } else { this.toastr.error('Um erro ocorreu, contate o Administrador!', 'Oops!'); } } ); } } // solicitação de confirmação para a exclusão deleteConfirm(parametro) { this.parametro = parametro; this.deleteParametroModal.show(); } // exclusão de registro delete() { for (const i in this.parametros) { if (this.parametros[i] === this.parametro) { this.parametroService.delete(this.parametro).subscribe( data => { this.parametros.splice(Number(i), 1); this.toastr.success('Registro Excluído com Sucesso!', 'Sucesso!'); this.rerender(); }, error => { this.toastr.error('Esse parametro está vinculado a uma requisição, e não pode ser deletado!', 'Oops!'); console.log(error); } ); break; } } this.deleteParametroModal.hide(); } // limpar objeto selecionado cleanParametro(): void { this.parametro = { id: null, desc_parametro: null, ativo: false, ano_vigente: null, semestre_vigente: null }; }; // pegar os registros getParametro(): void { this.parametroService.getParametro().subscribe(data => { const response = (data as any); this.parametros = response; console.log(response); this.dtTrigger.next(); }, error => { this.toastr.error('Um erro ocorreu, contate o Administrador!', 'Oops!'); console.log(error); } ); } ngOnInit() { this.getParametro(); this.dtOptions = <DataTables.Settings>{ pagingType: 'full_numbers', pageLength: 10, order: [0, 'desc'], language: { url: 'assets/language/pt-br.json' } }; } } Está pegando muito bem os dados do banco PostgreSQL na tabela do front-end, mas meu problema é que não abre o modal para criar, editar ou excluir os parâmetros.
  8. Eu pesquisei no google "redes corporativas de computadores" e só encontrei na página 1 da pesquisa o conceito. Mas meu exercício diz "Caracterize redes corporativas e descreva alguns parâmetros relacionados a ela".
  9. É para eu fazer uma aula como professor do YouTube. Algoritmo "OrdenacaoVetorInsercao" // Olá! Seja bem-vindo ao seu curso de Lógica de Programação! Eu sou // Eduardo de Quadros e essa é a vigésima primeira aula, Ordenação do // Vetor por Inserção. Var V: Vetor[1..12] de Inteiro i, j, elemento_chave: Inteiro Inicio Para i <- 1 ate 12 faca Escreva("Informe o ", i, "º elemento do vetor: ") Leia(V[i]) FimPara EscrevaL("") EscrevaL("Vetor original:") EscrevaL("") Para i <- 1 ate 12 faca Escreva(V[i]:4) FimPara EscrevaL("") EscrevaL("") EscrevaL("Vetor ordenado:") EscrevaL("") Para j <- 2 ate 12 faca elemento_chave <- V[j] i <- j - 1 Enquanto (V[i] > elemento_chave) e (i >= 1) faca V[i + 1] <- V[i] i <- i - 1 FimEnquanto V[i] <- elemento_chave FimPara Para i <- 1 ate 12 faca Escreva(V[i]:4) FimPara FimAlgoritmo
  10. Eu tenho um trabalho de Redes de Computadores para eu apresentar amanhã, dia 09. É para eu fazer um programa em Java que usa sockets com TCP. Olha meu erro: Exception in thread "main" java.net.UnknownHostException: meuhost at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at trabalhoredes.Main.main(Main.java:30) C:\Users\Eduardo\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1 FALHA NA CONSTRUÇÃO (tempo total: 11 segundos) Olha meu código: /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package trabalhoredes; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.util.Scanner; import java.net.Socket; import java.net.ServerSocket; /** * * @author Eduardo */ public class Main { /** * @param args the command line arguments * @throws java.lang.Exception */ public static void main(String[] args) throws Exception { boolean permite10, permite12, permite14, permite16, permite18; int idadeAnos, tempoMaxUsoEletronicos; String frase = ""; Scanner le = new Scanner(System.in); Socket socketCliente = new Socket("meuhost", 9753); ServerSocket socketRecepcao = new ServerSocket(9753); DataOutputStream paraServidor = new DataOutputStream(socketCliente.getOutputStream()); BufferedReader doServidor; doServidor = new BufferedReader(new InputStreamReader(socketCliente.getInputStream())); do{ System.out.print("Qual é a idade máxima do seu filho em anos? "); idadeAnos = le.nextInt(); } while(idadeAnos < 0); if(idadeAnos < 2) tempoMaxUsoEletronicos = 2; else if(idadeAnos < 4) tempoMaxUsoEletronicos = 4; else{ tempoMaxUsoEletronicos = idadeAnos; if(tempoMaxUsoEletronicos % 2 == 1) tempoMaxUsoEletronicos++; if(tempoMaxUsoEletronicos % 4 == 2) tempoMaxUsoEletronicos += 2; } frase += "Então seu filho pode usar eletrônicos no máximo "; frase += tempoMaxUsoEletronicos; frase += " horas semanais, podendo:\n\nOuvir músicas infantis de "; frase += "personagens fictícios dublados"; if(idadeAnos >= 2){ frase += "\nOuvir músicas infantis de personagens reais interpretados"; frase += "\nOuvir músicas de jogos eletrônicos\nOuvir músicas livres não"; frase += " infantis\nOuvir músicas de suspense, drama e terror apenas com melodia"; frase += "\nAssistir filmes e séries livres de personagens fictícios "; frase += "dublados"; if(idadeAnos >= 4){ frase += "\nAssistir filmes e séries livres de personagens reais interpretados"; frase += "\nJogar jogos eletrônicos sem violência\nLer livros\nEstudar idiomas online"; if(idadeAnos >= 6){ System.out.println("Você permite que seu filho use mídias não" + "recomendadas para menores de 10 anos?"); permite10 = le.nextBoolean(); if(permite10 || idadeAnos >= 10){ frase += "\nUsar redes sociais\nLer artigos, wikis e enciclopédias\n"; frase += "Ouvir músicas Funk Normal\nJogar jogos eletrônicos com "; frase += "violência normalmente leve\nAssistir filmes e séries indicadas "; frase += "para no mínimo 10 anos"; if(idadeAnos >= 8){ System.out.println("Você permite que seu filho use mídias não" + "recomendadas para menores de 12 anos?"); permite12 = le.nextBoolean(); if(permite12 || idadeAnos >= 12){ frase += "\nOuvir músicas Funk Carioca\nOuvir músicas de"; frase += " suspense e drama com canção\nJogar jogos "; frase += "eletrônicos com violência relativamente leve"; frase += "\nAssistir filmes e séries indicadas para no "; frase += "mínimo 12 anos"; if(idadeAnos >= 10){ System.out.println("Você permite que seu filho use mídias não" + "recomendadas para menores de 14 anos?"); permite14 = le.nextBoolean(); if(permite14 || idadeAnos >= 14){ frase += "\nOuvir músicas Heavy Metal\nOuvir "; frase += "músicas de terror com canção\nJogar jogos "; frase += "eletrônicos com violência moderada"; frase += "\nAssistir filmes e séries indicadas para "; frase += "no mínimo 14 anos"; if(idadeAnos >= 12){ System.out.println("Você permite que seu filho use mídias não" + "recomendadas para menores de 16 anos?"); permite16 = le.nextBoolean(); if(permite16 || idadeAnos >= 16){ frase += "\nOuvir músicas Pouco Explícitas\n"; frase += "Jogar jogos eletrônicos com "; frase += "violência intensa\nAssistir filmes "; frase += "e séries indicadas para no mínimo "; frase += "14 anos"; if(idadeAnos >= 14){ System.out.println("Você permite que seu filho use " + "mídias não recomendadas para menores de 18 anos?"); permite18 = le.nextBoolean(); if(permite18 || idadeAnos >= 18){ frase += "\nAssistir vídeos pornô"; frase += "\nOuvir músicas Muito Explícitas\n"; frase += "Jogar jogos eletrônicos com "; frase += "violência extrema\nAssistir filmes "; frase += "e séries indicadas para no mínimo "; frase += "18 anos"; } } } } } } } } } } } } paraServidor.writeBytes(frase); socketCliente.close(); } }
  11. Meu erro no console quando clico na aba Parâmetros da _nav: ERROR Error: "[object Object]" resolvePromisewebpack-internal:///../../../../zone.js/dist/zone.js:824:31 resolvePromisewebpack-internal:///../../../../zone.js/dist/zone.js:795:17 scheduleResolveOrRejectwebpack-internal:///../../../../zone.js/dist/zone.js:873:17 invokeTaskwebpack-internal:///../../../../zone.js/dist/zone.js:425:17 onInvokeTaskwebpack-internal:///../../../core/esm5/core.js:4816:24 invokeTaskwebpack-internal:///../../../../zone.js/dist/zone.js:424:17 runTaskwebpack-internal:///../../../../zone.js/dist/zone.js:192:28 drainMicroTaskQueuewebpack-internal:///../../../../zone.js/dist/zone.js:602:25 invokeTaskwebpack-internal:///../../../../zone.js/dist/zone.js:503:21 invokeTaskwebpack-internal:///../../../../zone.js/dist/zone.js:1540:9 globalZoneAwareCallbackwebpack-internal:///../../../../zone.js/dist/zone.js:1566:17 core.js:1350 defaultErrorLogger core.js:1350 ErrorHandler.prototype.handleError core.js:1411 next core.js:5376:134 EventEmitter.prototype.subscribe/schedulerFn< core.js:4223:34 SafeSubscriber.prototype.__tryOrUnsub Subscriber.js:239 SafeSubscriber.prototype.next Subscriber.js:186 Subscriber.prototype._next Subscriber.js:127 Subscriber.prototype.next Subscriber.js:91 Subject.prototype.next Subject.js:56 EventEmitter.prototype.emit core.js:4203:22 onHandleError/< core.js:4651:48 ZoneDelegate.prototype.invoke zone.js:392 Zone.prototype.run zone.js:142 NgZone.prototype.runOutsideAngular core.js:4577:47 onHandleError core.js:4651 ZoneDelegate.prototype.handleError zone.js:396 Zone.prototype.runGuarded zone.js:158 _loop_1 zone.js:702 api.microtaskDrainDone zone.js:711 drainMicroTaskQueue zone.js:610 ZoneTask.invokeTask zone.js:503 invokeTask zone.js:1540 globalZoneAwareCallback zone.js:1566 /home/eduardomqs/estagio/scl/src/app/app.settings.ts: export class AppSettings { public static BASE_URL= 'http://crs.unochapeco.edu.br/crs-api/public'; public static BASE_API= 'http://crs.unochapeco.edu.br/crs-api/public'; public static BASE_URL_SERVER = '/zend/scl'; } /home/eduardomqs/estagio/scl/src/app/app.routing.ts: import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; // Import Containers import { FullLayoutComponent, SimpleLayoutComponent } from './containers'; export const routes: Routes = [ { path: '', redirectTo: 'dashboard', pathMatch: 'full', }, { path: '', component: FullLayoutComponent, data: { title: 'Home' }, children: [ { path: 'dashboard', loadChildren: './views/dashboard/dashboard.module#DashboardModule' }, { path: 'components', loadChildren: './views/components/components.module#ComponentsModule' }, { path: 'icons', loadChildren: './views/icons/icons.module#IconsModule' }, { path: 'widgets', loadChildren: './views/widgets/widgets.module#WidgetsModule' }, { path: 'charts', loadChildren: './views/chartjs/chartjs.module#ChartJSModule' }, { path: 'itens-por-laboratorio', loadChildren: './views/itens-por-laboratorio/itens-por-laboratorio.module#ItensPorLaboratorioModule' }, { path: 'parametros', loadChildren: './views/parametros/parametros.module#ParametrosModule' }, { path: 'requisicao', loadChildren: './views/requisicao/requisicao.module#RequisicaoModule' }, ] }, { path: 'pages', component: SimpleLayoutComponent, data: { title: 'Pages' }, children: [ { path: '', loadChildren: './views/pages/pages.module#PagesModule', } ] } ]; @NgModule({ imports: [ RouterModule.forRoot(routes) ], exports: [ RouterModule ] }) export class AppRoutingModule {} /home/eduardomqs/estagio/scl/src/app/app.module.ts: import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { LocationStrategy, HashLocationStrategy } from '@angular/common'; import { AppComponent } from './app.component'; // Import containers import { FullLayoutComponent, SimpleLayoutComponent } from './containers'; const APP_CONTAINERS = [ FullLayoutComponent, SimpleLayoutComponent ] // Import components import { AppAsideComponent, AppBreadcrumbsComponent, AppFooterComponent, AppHeaderComponent, AppSidebarComponent, AppSidebarFooterComponent, AppSidebarFormComponent, AppSidebarHeaderComponent, AppSidebarMinimizerComponent, APP_SIDEBAR_NAV } from './components'; const APP_COMPONENTS = [ AppAsideComponent, AppBreadcrumbsComponent, AppFooterComponent, AppHeaderComponent, AppSidebarComponent, AppSidebarFooterComponent, AppSidebarFormComponent, AppSidebarHeaderComponent, AppSidebarMinimizerComponent, APP_SIDEBAR_NAV ] // Import directives import { AsideToggleDirective, NAV_DROPDOWN_DIRECTIVES, ReplaceDirective, SIDEBAR_TOGGLE_DIRECTIVES } from './directives'; const APP_DIRECTIVES = [ AsideToggleDirective, NAV_DROPDOWN_DIRECTIVES, ReplaceDirective, SIDEBAR_TOGGLE_DIRECTIVES ] // Import routing module import { AppRoutingModule } from './app.routing'; // Import 3rd party components import { BsDropdownModule } from 'ngx-bootstrap/dropdown'; import { TabsModule } from 'ngx-bootstrap/tabs'; import { ChartsModule } from 'ng2-charts/ng2-charts'; import { ModalModule } from "ngx-bootstrap"; import { ToastModule } from 'ng2-toastr/ng2-toastr'; import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; import { DataTablesModule } from "angular-datatables"; import { Ng2TableModule } from "ngx-datatable"; @NgModule({ imports: [ ToastModule.forRoot(), BrowserModule, AppRoutingModule, BsDropdownModule.forRoot(), TabsModule.forRoot(), ChartsModule, ModalModule, BrowserAnimationsModule, DataTablesModule, Ng2TableModule, ModalModule.forRoot() ], declarations: [ AppComponent, ...APP_CONTAINERS, ...APP_COMPONENTS, ...APP_DIRECTIVES ], providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }], bootstrap: [ AppComponent ] }) export class AppModule { } /home/eduardomqs/estagio/scl/src/app/_nav.ts: export const navigation = [ { name: 'Dashboard', url: '/dashboard', icon: 'icon-speedometer', badge: { variant: 'info', text: 'Novo' } }, { title: true, name: 'Laboratórios' }, { name: 'Itens Por Laboratório', url: '/itens-por-laboratorio', icon: 'icon-puzzle', }, { title: true, name: 'Acesso' }, { name: 'Parâmetros', url: '/parametros', icon: 'icon-puzzle' }, { name: 'Requisição', url: '/requisicao', icon: 'icon-puzzle' }, { name: 'CRS', url: 'http://crs.unochapeco.edu.br/site', icon: 'icon-cloud-download', class: 'mt-auto', variant: 'primary' } ]; /home/eduardomqs/estagio/scl/src/app/views/parametros/parametros-routing.module.ts: import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import {ParametrosComponent} from "./parametros.component"; const routes: Routes = [ { path: '', data: {title: 'Parâmetros'}, children: [ { path: '', component: ParametrosComponent, data: {title: 'Parâmetros'} } ] } ]; @NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule] }) export class ParametrosRoutingModule { } /home/eduardomqs/estagio/scl/src/app/views/parametros/parametros.module.ts: import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { ParametrosRoutingModule } from './parametros-routing.module'; import { ParametrosComponent } from './parametros.component'; import {ModalModule} from "ngx-bootstrap"; import {FormsModule} from "@angular/forms"; @NgModule({ imports: [ CommonModule, ParametrosRoutingModule, ModalModule.forRoot(), FormsModule ], declarations: [ParametrosComponent] }) export class ParametrosModule { } /home/eduardomqs/estagio/scl/src/app/views/parametros/parametros.component.ts: import {Component, OnInit, ViewChild, ViewContainerRef} from '@angular/core'; import {ModalDirective} from 'ngx-bootstrap'; import {Parametros} from '../../model/parametros'; import {ParametrosService} from '../../services/parametros.service'; import { ToastsManager } from 'ng2-toastr'; import {DataTableDirective} from 'angular-datatables'; import {Subject} from 'rxjs/Subject'; @Component({ selector: 'app-parametro', templateUrl: './parametros.component.html', styleUrls: ['./parametros.component.scss'], providers: [ParametrosService] }) export class ParametrosComponent implements OnInit { @ViewChild('novoParametroModal') novoParametroModal: ModalDirective; @ViewChild('deleteParametroModal') deleteParametroModal: ModalDirective; @ViewChild('editarParametroModal') editarParametroModal: ModalDirective; @ViewChild(DataTableDirective) dtElement: DataTableDirective; dtOptions: DataTables.Settings = {}; dtTrigger: Subject<any> = new Subject(); public parametro = new Parametros(); constructor(private parametroService: ParametrosService, public toastr: ToastsManager, vcr: ViewContainerRef) { this.toastr.setRootViewContainerRef(vcr); } public validation_messages = { id: [], desc_parametro: [] }; rerender(): void { this.dtElement.dtInstance.then((dtInstance: DataTables.Api) => { dtInstance.destroy(); this.getParametro(); }); } onSubmit() { if (this.parametro.id === null) { this.parametroService.create(this.parametro).subscribe( data => { const response = (data as Parametros); this.rerender(); this.toastr.success('Dados Salvos com Sucesso!', 'Sucesso!'); }, error => { if (error.parametro === 422) { this.toastr.error('Estão faltando dados, verfique os campos e tente novamente!', 'Oops!'); this.validation_messages = error.error.validation_messages; this.validation_messages.id = (<any>Object).values(this.validation_messages.id); this.validation_messages.desc_parametro = (<any>Object).values(this.validation_messages.desc_parametro); return; } else { this.toastr.error('Um erro ocorreu, contate o Administrador!', 'Oops!'); } } ); } else { this.parametroService.update(this.parametro).subscribe( data => { const response = (data as Parametros); for (const i in this.parametro) { if (this.parametro[i].id === response.id) { this.parametro[i] = response; } } this.rerender(); this.toastr.success('Dados Salvos com Sucesso!', 'Sucesso!'); this.cleanParametro(); }, error => { if (error.parametro === 422) { console.log(error); return; } else { this.toastr.error('Um erro ocorreu, contate o Administrador!', 'Oops!'); } } ); } } // solicitação de confirmação para a exclusão deleteConfirm(parametro) { this.parametro = parametro; this.deleteParametroModal.show(); } // exclusão de registro delete() { for (const i in this.parametro) { if (this.parametro[i] === this.parametro) { this.parametroService.delete(this.parametro).subscribe( data => { this.toastr.success('Registro Excluído com Sucesso!', 'Sucesso!'); this.rerender(); }, error => { this.toastr.error('Esse parametro está vinculado a uma requisição, e não pode ser deletado!', 'Oops!'); console.log(error); } ); break; } } this.deleteParametroModal.hide(); } // atualizar dado update(parametro) { this.parametro = parametro; this.editarParametroModal.show(); } // limpar objeto selecionado cleanParametro(): void { this.parametro = { id: null, desc_parametro: null, ativo: false, ano_vigente: 2018, semestre_vigente: 2 }; }; // pegar os registros getParametro(): void { this.parametroService.getParametro().subscribe(data => { const response = (data as any); this.parametro = response; this.dtTrigger.next(); }, error => { this.toastr.error('Um erro ocorreu, contate o Administrador!', 'Oops!'); console.log(error); } ); } ngOnInit() { this.getParametro(); this.dtOptions = <DataTables.Settings>{ pagingType: 'full_numbers', pageLength: 10, order: [0, 'desc'], language: { url: 'assets/language/pt-br.json' } }; } } /home/eduardomqs/estagio/scl/src/app/views/parametros/parametros.component.spec.ts: import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { ParametrosComponent } from './parametros.component'; describe('ParametrosComponent', () => { let component: ParametrosComponent; let fixture: ComponentFixture<ParametrosComponent>; beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ ParametrosComponent ] }) .compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(ParametrosComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); }); /home/eduardomqs/estagio/scl/src/app/views/parametros/parametros.component.scss: .no-padding{ padding-left: 0px; } th,td { text-align: center; } tr { width: 100%; } .celula { width: 10%; } .celulaA { width: 30%; } #op { font-size: 18px; margin-left: 10px; margin-right: 10px; } #placeholderDiv{ margin-top: 20px; margin-bottom: 20px; } .ng-valid[required], .ng-valid.required { border-left: 5px solid #42A948; /* green */ } .ng-invalid:not(form) { border-left: 5px solid #a94442; /* red */ } /home/eduardomqs/estagio/scl/src/app/views/parametros/parametros.component.html: <div class="card"> <div class="card-header"> <h1>Parametro da Requisição</h1> </div> <div class="card-body"> <div class="btn group no-padding"> <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal" (click)="novoParametroModal.show(); cleanParametro();"> Novo Parâmetro </button> </div> <table datatable[dtOptions]="dtOptions" datatable[dtTrigger]="dtTrigger" class="table table-bordered table-striped"> <thead> <tr> <th class="celula">Ações</th> <th class="celulaA">ID</th> <th class="celulaA">Ativo</th> <th class="celulaA">Descrição do Parâmetro</th> </tr> </thead> <tbody> <tr *ngFor="let parametro of Parametro; let i = index"> <td class="celula"> <i class="fa fa-pencil" id="op" style="cursor: pointer; color: green" title="Editar" (click)="update(parametro)"></i> <i class="fa fa-trash" id="op" style="cursor: pointer; color: red" title="Excluir" (click)="deleteConfirm(parametro)"></i> </td> <td class="celulaA"> {{parametro.desc_Parametro}} </td> </tr> <!--<tr *ngIf="Parametro?.length == 0">--> <!--<td colspan="3" class="no-data-available">No data!</td>--> <!--</tr>--> </tbody> </table> </div> </div> <!--MODAL criar parametro--> <div bsModal #novoParametroModal="bs-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-primary" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Cadastrar novo Parâmetro:</h4> <button type="button" class="close" (click)="novoParametroModal.hide()" aria-label="Fechar"> <span aria-hidden="true">&times;</span> </button> </div> <form (ngSubmit)="onSubmit()"> <div id="placeholderDiv" class="col-sm-12"> <input id="formCriar" class="form-control" type="text" style="width: 100%" placeholder="Novo Parametro" [(ngModel)]="parametro.desc_parametro" ([ngModelOptions])="{standalone: true}" required #desc_parametro="ngModel" name="desc_parametro"> <div *ngIf="desc_parametro.errors && desc_parametro.touched" class="alert alert-danger"> <div *ngIf="desc_parametro.errors.required"> Um Parâmetro é necessário. </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secundary" (click)="novoParametroModal.hide();"> Cancelar </button> <button type="submit" class="btn btn-primary" (click)="novoParametroModal.hide();"> Salvar </button> </div> </form> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <!--MODAL editar parametro--> <div bsModal #editarParametroModal="bs-modal" class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" [config]="{backdrop: 'static', keyboard: false}"> <div class="modal-dialog modal-primary" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Editar Parâmetro:</h4> <button type="button" class="close" (click)="editarParametroModal.hide(); rerender();" aria-label="Fechar"> <span aria-hidden="true">&times;</span> </button> </div> <form (ngSubmit)="onSubmit()"> <div id="placeholderDiv" class="col-sm-12"> <input [(ngModel)]="parametro.desc_Parametro" class="form-control" name="desc_Parametro" id="desc_Parametro" type="text" value="{{parametro.desc_Parametro}}" required #desc_Parametro="ngModel" name="ngModel"> <div *ngIf="desc_Parametro.errors && desc_Parametro.touched" class="alert alert-danger"> <div *ngIf="desc_Parametro.errors.required"> Um Parâmetro é necessário. </div> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-secundary" (click)="editarParametroModal.hide(); rerender();"> Cancelar </button> <button type="submit" class="btn btn-primary" (click)="editarParametroModal.hide()"> Salvar </button> </div> </form> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> <!--MODAL deletar parametro--> <div bsModal #deleteParametroModal="bs-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog modal-danger" role="document"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title">Excluir registro</h4> <button type="button" class="close" (click)="deleteParametroModal.hide()" aria-label="Fechar"> <span aria-hidden="true">&times;</span> </button> </div> <form> <div id="placeholderDiv" class="col-sm-12"> <p>Tem certeza que deseja excluir o Parâmetro {{parametro.desc_Parametro}}?</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-secundary" (click)="deleteParametroModal.hide()"> Cancelar </button> <button type="button" class="btn btn-danger" (click)="delete()">Excluir </button> </div> </form> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> Nesse HTML também nos modais criar e editar é pra definir a descrição do parâmetro e se está ativo. /home/eduardomqs/estagio/scl/src/app/services/service.ts: import { HttpHeaders } from '@angular/common/http'; export class Service { protected headers = {headers: new HttpHeaders({ 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Bearer 93b254ef3932952d11f8987c57f94caa28615b2d' })}; } /home/eduardomqs/estagio/scl/src/app/services/parametros.service.ts: import { Injectable } from "@angular/core"; import { HttpClient } from "@angular/common/http"; import { Parametros } from "../model/parametros"; import { Service } from "./service"; @Injectable() export class ParametrosService extends Service { constructor(private http: HttpClient ) { super(); } private baseUrl = 'http://localhost:3000/scl-parametros'; getParametro() { return this.http.get(this.baseUrl, this.headers); } create(parametro: Parametros) { return this.http.post(this.baseUrl, parametro, this.headers); } update(parametro: Parametros) { return this.http.put(this.baseUrl + '/' + parametro.id, parametro, this.headers); } delete(parametro: Parametros) { return this.http.delete(this.baseUrl + '/' + parametro.id, this.headers); } } /home/eduardomqs/estagio/scl/src/app/services/parametros.service.spec.ts: import { TestBed, inject } from '@angular/core/testing'; import { ParametrosService } from './parametros.service'; describe('ParametrosService', () => { beforeEach(() => { TestBed.configureTestingModule({ providers: [ParametrosService] }); }); it('should be created', inject([ParametrosService], (service: ParametrosService) => { expect(service).toBeTruthy(); })); }); /home/eduardomqs/estagio/scl/src/app/model/parametros.ts: export class Parametros{ id: number; desc_parametro: string; ativo: boolean; ano_vigente: number; semestre_vigente: number; } É minha atividade de estágio.
  12. O produto do LibreOffice nesse tópico é o Calc.
  13. No LibreOffice Writer é possível escrever documentos em papel A2, o que é impossível no Microsoft Word.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×