docs: configurando deploy via ssh para angular
This commit is contained in:
@@ -0,0 +1,444 @@
|
||||
<div class="d-flex flex-column wrapper">
|
||||
<div class="filter">
|
||||
<form class="k-form shadow bg-body rounded" [formGroup]="formFilter">
|
||||
<h4>FAIXA DE COMISSÃO PARCEIROS</h4>
|
||||
|
||||
<div class="row mt-2">
|
||||
|
||||
<form [formGroup]="formFilter">
|
||||
<fieldset class="k-form-fieldset">
|
||||
<label>
|
||||
<span>Tipo do parceiro</span>
|
||||
<ul class="k-radio-list k-list-horizontal">
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
value="B"
|
||||
kendoRadioButton
|
||||
formControlName="typeFilter"
|
||||
/>
|
||||
<span> Bella Obra</span>
|
||||
</label>
|
||||
</li>
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
value="P"
|
||||
kendoRadioButton
|
||||
formControlName="typeFilter"
|
||||
/>
|
||||
<span> Parceiro</span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
kendoRadioButton
|
||||
value="M"
|
||||
formControlName="typeFilter"
|
||||
/>
|
||||
<span> Mestre</span>
|
||||
</label>
|
||||
</li>
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
kendoRadioButton
|
||||
value="T"
|
||||
formControlName="typeFilter"
|
||||
/>
|
||||
<span> Todos</span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</label>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<div class="mt-3 row-buttons">
|
||||
<button
|
||||
kendoButton
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#modalRange"
|
||||
(click)="createPartnerRange()"
|
||||
>
|
||||
INCLUIR
|
||||
</button>
|
||||
<button
|
||||
kendoButton
|
||||
rounded="medium"
|
||||
themeColor="waring"
|
||||
(click)="searchRange()"
|
||||
>
|
||||
Pesquisar
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<main class="flex-fill mt-3">
|
||||
<div class="mt-3">
|
||||
<kendo-grid
|
||||
[kendoGridBinding]="gridView"
|
||||
class="gridPartnerCategory"
|
||||
(edit)="editPartnerRange($event)"
|
||||
(remove)="confirmDelete($event)"
|
||||
[sortable]="true"
|
||||
[reorderable]="true"
|
||||
[resizable]="true"
|
||||
[columnMenu]="{ filter: true }"
|
||||
>
|
||||
<kendo-grid-column title="Código" field="id" width="80">
|
||||
</kendo-grid-column>
|
||||
<kendo-grid-column
|
||||
title="Tipo Parceiro"
|
||||
field="descriptionType"
|
||||
width="100"
|
||||
>
|
||||
</kendo-grid-column>
|
||||
|
||||
<kendo-grid-column
|
||||
field="rangeIni"
|
||||
title="Faixa Inicial"
|
||||
[width]="100"
|
||||
filter="numeric"
|
||||
>
|
||||
<ng-template kendoGridCellTemplate let-dataItem>
|
||||
<span [ngClass]="{ 'red text-bold': dataItem.rangeIni < 0 }">{{
|
||||
dataItem.rangeIni | number : "1.2-2"
|
||||
}}</span>
|
||||
</ng-template>
|
||||
</kendo-grid-column>
|
||||
|
||||
<kendo-grid-column
|
||||
field="rangeFin"
|
||||
title="Faixa Inicial"
|
||||
[width]="100"
|
||||
filter="numeric"
|
||||
>
|
||||
<ng-template
|
||||
kendoGridCellTemplate
|
||||
let-dataItem
|
||||
style="text-align: right"
|
||||
>
|
||||
<span [ngClass]="{ 'red text-bold': dataItem.rangeFin < 0 }">{{
|
||||
dataItem.rangeFin | number : "1.2-2"
|
||||
}}</span>
|
||||
</ng-template>
|
||||
</kendo-grid-column>
|
||||
|
||||
<kendo-grid-column title="% Comissão" field="percentComiss" width="150">
|
||||
</kendo-grid-column>
|
||||
<kendo-grid-column title="Ações" [width]="60">
|
||||
<ng-template kendoGridCellTemplate let-dataItem>
|
||||
<div class="row g-2 justify-content-start">
|
||||
<div class="col-3 me-2" kendoGridEditCommand>
|
||||
<i
|
||||
class="bi bi-pencil text-success"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#modalRange"
|
||||
></i>
|
||||
</div>
|
||||
<div class="col-3 me-2" kendoGridRemoveCommand>
|
||||
<i
|
||||
class="bi bi-trash text-error"
|
||||
></i>
|
||||
</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
</kendo-grid-column>
|
||||
<ng-template kendoGridNoRecordsTemplate>
|
||||
<div>
|
||||
<kendo-badge-container>
|
||||
<kendo-icon name="user" size="large"></kendo-icon>
|
||||
<kendo-badge position="inside" themeColor="error">
|
||||
<kendo-icon name="close"></kendo-icon>
|
||||
</kendo-badge>
|
||||
</kendo-badge-container>
|
||||
</div>
|
||||
<p>
|
||||
Não foram localizadas categorias com os filtros inforamdos,
|
||||
verifique a pesquisa.
|
||||
</p>
|
||||
</ng-template>
|
||||
</kendo-grid>
|
||||
|
||||
<!-- Modal -->
|
||||
<!-- Vertically centered modal -->
|
||||
<!-- Modal -->
|
||||
<div
|
||||
class="modal fade"
|
||||
id="modalRange"
|
||||
tabindex="-1"
|
||||
aria-labelledby="modalRange"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div class="modal-dialog modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalRange">
|
||||
Cadastro de faixa de comissão
|
||||
</h5>
|
||||
|
||||
<button
|
||||
type="button"
|
||||
class="btn-close"
|
||||
data-bs-dismiss="modal"
|
||||
aria-label="Close"
|
||||
></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="k-form" [formGroup]="formRange">
|
||||
<fieldset class="k-form-fieldset">
|
||||
<label>
|
||||
<span>Tipo do parceiro</span>
|
||||
<ul class="k-radio-list k-list-horizontal">
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
#mestre
|
||||
value="B"
|
||||
kendoRadioButton
|
||||
formControlName="type"
|
||||
/>
|
||||
<span> Bella Obra</span>
|
||||
</label>
|
||||
</li>
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
#mestre
|
||||
value="P"
|
||||
kendoRadioButton
|
||||
formControlName="type"
|
||||
/>
|
||||
<span> Parceiro</span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
#parceiro
|
||||
kendoRadioButton
|
||||
value="M"
|
||||
formControlName="type"
|
||||
/>
|
||||
<span> Mestre</span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</label>
|
||||
<div class="row mt-3">
|
||||
<div class="col-6">
|
||||
<label>
|
||||
<span>Faixa Inicial</span>
|
||||
<input
|
||||
class="input-range"
|
||||
formControlName="rangeIni"
|
||||
type="number"
|
||||
[min]="0"
|
||||
[max]="90"
|
||||
format="n2"
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label>
|
||||
<span>Faixa Final</span>
|
||||
<input
|
||||
class="input-range"
|
||||
formControlName="rangeFin"
|
||||
type="number"
|
||||
[min]="0"
|
||||
[max]="90"
|
||||
format="n2"
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<label>
|
||||
<span> % Comissão </span>
|
||||
<input
|
||||
class="input-range"
|
||||
formControlName="percentComiss"
|
||||
type="number"
|
||||
[min]="0"
|
||||
[max]="90"
|
||||
format="n2"
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary"
|
||||
data-bs-dismiss="modal"
|
||||
>
|
||||
Fechar
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary"
|
||||
data-bs-dismiss="modal"
|
||||
(click)="savePartnerRange()"
|
||||
>
|
||||
Salvar
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--div
|
||||
class="modal fade modal-dialog-scrollable"
|
||||
id="exampleModal"
|
||||
tabindex="-1"
|
||||
aria-labelledby="modalRange"
|
||||
aria-hidden="true"
|
||||
data-bs-backdrop="static" data-bs-keyboard="false"
|
||||
-->
|
||||
<!--div class="modal-dialog"-->
|
||||
<!--div class="modal-dialog">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">
|
||||
Cadastro de faixa de comissão
|
||||
</h5>
|
||||
<button
|
||||
type="button"
|
||||
class="btn-close"
|
||||
data-bs-dismiss="modal"
|
||||
aria-label="Close"
|
||||
></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form class="k-form" [formGroup]="formRange">
|
||||
<fieldset class="k-form-fieldset">
|
||||
<label>
|
||||
<span>Tipo do parceiro</span>
|
||||
<ul class="k-radio-list k-list-horizontal">
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
#mestre
|
||||
value="M"
|
||||
kendoRadioButton
|
||||
formControlName="type"
|
||||
/>
|
||||
<span> Parceiro</span>
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<li class="k-radio-item">
|
||||
<label>
|
||||
<input
|
||||
type="radio"
|
||||
#parceiro
|
||||
kendoRadioButton
|
||||
value="P"
|
||||
formControlName="type"
|
||||
/>
|
||||
<span> Mestre</span>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</label>
|
||||
<div class="row mt-3">
|
||||
<div class="col-6">
|
||||
<label>
|
||||
<span>Faixa Inicial</span>
|
||||
<input
|
||||
class="input-range"
|
||||
formControlName="rangeIni"
|
||||
type="number"
|
||||
[min]="0"
|
||||
[max]="90"
|
||||
format="n2"
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<label>
|
||||
<span>Faixa Final</span>
|
||||
<input
|
||||
class="input-range"
|
||||
formControlName="rangeFin"
|
||||
type="number"
|
||||
[min]="0"
|
||||
[max]="90"
|
||||
format="n2"
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mt-3">
|
||||
<label>
|
||||
<span> % Comissão </span>
|
||||
<input
|
||||
class="input-range"
|
||||
formControlName="percentComiss"
|
||||
[min]="0"
|
||||
[max]="90"
|
||||
format="p"
|
||||
/>
|
||||
</label>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-secondary"
|
||||
data-bs-dismiss="modal"
|
||||
>
|
||||
Fechar
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
class="btn btn-primary"
|
||||
data-bs-dismiss="modal"
|
||||
(click)="savePartnerRange()"
|
||||
>
|
||||
Salvar
|
||||
</button>
|
||||
</div>
|
||||
</!--div>
|
||||
</div>
|
||||
</div-->
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
|
||||
<kendo-dialog
|
||||
title="Exclusão de faixa de comissão"
|
||||
*ngIf="opened"
|
||||
(close)="resultDelete('cancel')"
|
||||
[minWidth]="250"
|
||||
[width]="450"
|
||||
>
|
||||
<p style="margin: 30px; text-align: center;">
|
||||
Confirma exclusão da faixa?
|
||||
</p>
|
||||
<kendo-dialog-actions>
|
||||
<button kendoButton (click)="resultDelete('no')">Não</button>
|
||||
<button kendoButton (click)="resultDelete('yes')" themeColor="primary">
|
||||
Sim
|
||||
</button>
|
||||
</kendo-dialog-actions>
|
||||
</kendo-dialog>
|
||||
@@ -0,0 +1,37 @@
|
||||
.wrapper {
|
||||
min-height: calc(100vh - 80px);
|
||||
}
|
||||
.gridPartnerCatetgory {
|
||||
max-height: calc(100vh - 410px);
|
||||
}
|
||||
|
||||
.form-partner {
|
||||
display: flex;
|
||||
justify-content: start;
|
||||
}
|
||||
.wrap {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.wrap .arrival-date {
|
||||
width: 90%;
|
||||
margin-right: 18px;
|
||||
}
|
||||
.k-form {
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
padding: 25px;
|
||||
}
|
||||
|
||||
label {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.row-buttons {
|
||||
display: flex;
|
||||
justify-content: start space-between;
|
||||
}
|
||||
|
||||
.row-buttons button {
|
||||
margin-right: 10px;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { PartnerRangeComponent } from './partner-range.component';
|
||||
|
||||
describe('PartnerRangeComponent', () => {
|
||||
let component: PartnerRangeComponent;
|
||||
let fixture: ComponentFixture<PartnerRangeComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ PartnerRangeComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PartnerRangeComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
141
src/app/partners/range/partner-range/partner-range.component.ts
Normal file
141
src/app/partners/range/partner-range/partner-range.component.ts
Normal file
@@ -0,0 +1,141 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { Observable, of } from 'rxjs';
|
||||
import { PartnerRange } from 'src/app/models/partner-range.model';
|
||||
import { PartnerRangeService } from 'src/app/services/partner-range.service';
|
||||
import { FormControl, FormGroup, Validators } from '@angular/forms';
|
||||
import { AuthService } from 'src/app/auth/services/auth.service';
|
||||
import { User } from 'src/app/models/user.model';
|
||||
import { catchError, tap } from 'rxjs/operators';
|
||||
import { DataBindingDirective } from '@progress/kendo-angular-grid';
|
||||
|
||||
@Component({
|
||||
selector: 'app-partner-range',
|
||||
templateUrl: './partner-range.component.html',
|
||||
styleUrls: ['./partner-range.component.scss']
|
||||
})
|
||||
export class PartnerRangeComponent implements OnInit {
|
||||
|
||||
@ViewChild(DataBindingDirective) dataBinding: DataBindingDirective;
|
||||
public gridView: unknown[];
|
||||
|
||||
partnerRange$: Observable<PartnerRange[]>;
|
||||
formRange: FormGroup;
|
||||
rangeIni = 0;
|
||||
rangeFin = 0;
|
||||
percent = 0;
|
||||
partnerRangeSelect: PartnerRange = null;
|
||||
loading = false;
|
||||
|
||||
formFilter: FormGroup;
|
||||
|
||||
public opened = false;
|
||||
selectedPartnerRange: PartnerRange;
|
||||
|
||||
public resultDelete(status: string): void {
|
||||
console.log(`Dialog result: ${status}`);
|
||||
this.opened = false;
|
||||
if (status == 'yes') {
|
||||
this.deleteRange();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
constructor(
|
||||
private readonly partnerRangeService: PartnerRangeService,
|
||||
private route: ActivatedRoute,
|
||||
private router: Router,
|
||||
private authService: AuthService
|
||||
) {
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.formFilter = new FormGroup({
|
||||
typeFilter: new FormControl('T', []),
|
||||
});
|
||||
this.partnerRangeService.getPartnerRange('T').subscribe(range => {
|
||||
this.gridView = range;
|
||||
});
|
||||
this.formRange = new FormGroup({
|
||||
id: new FormControl(),
|
||||
rangeIni: new FormControl(this.rangeIni, [Validators.required]),
|
||||
rangeFin: new FormControl(this.rangeFin, [Validators.required]),
|
||||
percentComiss: new FormControl(this.percent, [Validators.required]),
|
||||
type: new FormControl(),
|
||||
});
|
||||
}
|
||||
|
||||
editPartnerRange(data) {
|
||||
console.log(data);
|
||||
this.partnerRangeSelect = data.dataItem as PartnerRange;
|
||||
this.formRange.patchValue({
|
||||
id: this.partnerRangeSelect.id,
|
||||
rangeIni: this.partnerRangeSelect.rangeIni,
|
||||
rangeFin: this.partnerRangeSelect.rangeFin,
|
||||
percentComiss: this.partnerRangeSelect.percentComiss,
|
||||
type: this.partnerRangeSelect.type,
|
||||
});
|
||||
// this.router.navigate([`/partner/range/edit/range/${data.dataItem.id}`]);
|
||||
}
|
||||
|
||||
confirmDelete(data: any) {
|
||||
console.log(data);
|
||||
this.selectedPartnerRange = data.dataItem as PartnerRange;
|
||||
this.opened = true;
|
||||
}
|
||||
|
||||
createPartnerRange() {
|
||||
this.partnerRangeSelect = null;
|
||||
this.formRange.reset();
|
||||
}
|
||||
|
||||
savePartnerRange() {
|
||||
console.log(this.formRange.value);
|
||||
const user = this.authService.getUser();
|
||||
console.log(this.formRange.get('rangeIni').value);
|
||||
if ( this.partnerRangeSelect == null ){
|
||||
this.partnerRangeSelect = new PartnerRange();
|
||||
}
|
||||
this.partnerRangeSelect.rangeIni = this.formRange.get('rangeIni').value;
|
||||
this.partnerRangeSelect.rangeFin = this.formRange.get('rangeFin').value;
|
||||
this.partnerRangeSelect.percentComiss = this.formRange.get('percentComiss').value;
|
||||
this.partnerRangeSelect.type = this.formRange.get('type').value;
|
||||
this.partnerRangeSelect.createUserId = user.id;
|
||||
this.partnerRangeSelect.updateUserId = user.id;
|
||||
|
||||
this.loading = true;
|
||||
this.partnerRangeService.createOrReplace(this.partnerRangeSelect).pipe(
|
||||
tap(() => {
|
||||
this.searchRange();
|
||||
this.loading = false;
|
||||
}),
|
||||
catchError((error) => {
|
||||
console.log(error);
|
||||
return of(error.message);
|
||||
})
|
||||
).subscribe();
|
||||
}
|
||||
|
||||
searchRange() {
|
||||
const type = this.formFilter.get('typeFilter').value;
|
||||
this.partnerRangeService.getPartnerRange(type).subscribe(range => {
|
||||
this.gridView = range;
|
||||
});
|
||||
}
|
||||
|
||||
deleteRange() {
|
||||
this.loading = true;
|
||||
this.partnerRangeService.DeletePartnerRangeById(this.selectedPartnerRange.id.toString())
|
||||
.pipe(
|
||||
tap(() => {
|
||||
this.searchRange();
|
||||
this.loading = false;
|
||||
}),
|
||||
catchError((error) => {
|
||||
console.log(error);
|
||||
return of(error.message);
|
||||
})
|
||||
).subscribe();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user