|
|
@@ -1,27 +1,4 @@
|
|
|
<h2 class="floating-title">{{ title }}</h2>
|
|
|
-<div
|
|
|
- class="header pb-6 d-flex align-items-center"
|
|
|
- style="
|
|
|
- min-height: 240px;
|
|
|
- background-size: cover;
|
|
|
- background-position: center top;
|
|
|
- "
|
|
|
->
|
|
|
- <!-- Mask -->
|
|
|
- <span class="mask bg-gradient-default opacity-8"></span
|
|
|
- ><!-- Header container -->
|
|
|
- <div class="container-fluid d-flex align-items-center">
|
|
|
- <div class="row">
|
|
|
- <div class="col-lg-7 col-md-10">
|
|
|
- <h1 class="display-2 text-white">Hola {{ first_name }}</h1>
|
|
|
- <p class="text-white mt-0 mb-5">
|
|
|
- Aquí podra editar la información general de la cuenta. Si eres usuario
|
|
|
- pro, podras editar la información de la tarifa.
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</div>
|
|
|
<div class="main-content">
|
|
|
<div class="container-fluid">
|
|
|
<div class="row justify-content-center">
|
|
|
@@ -29,263 +6,172 @@
|
|
|
<div class="align-container">
|
|
|
<div class="card">
|
|
|
<div class="card-header">
|
|
|
- <div class="row align-items-center">
|
|
|
- <div class="col-8"><h3 class="mb-0">Editar perfil</h3></div>
|
|
|
- <div class="col-4 text-right">
|
|
|
- <a href="#!" class="btn btn-sm btn-warning"
|
|
|
- >Actualizar a usuario pro</a
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <h2>Hola {{ first_name }}</h2>
|
|
|
+ <p class="card-category">Aquí podras editar la información general de la cuenta.</p>
|
|
|
</div>
|
|
|
- <div class="card-body" *ngIf="editProfile">
|
|
|
- <form
|
|
|
- class="form-auth-small ng-untouched ng-pristine ng-valid"
|
|
|
- [formGroup]="userForm"
|
|
|
- (ngSubmit)="editUser()"
|
|
|
- >
|
|
|
- <h6 class="heading-small text-muted mb-4">
|
|
|
- Información de usuario
|
|
|
- </h6>
|
|
|
- <div class="pl-lg-4">
|
|
|
- <div class="row">
|
|
|
- <div class="col-lg-6">
|
|
|
- <div class="form-group">
|
|
|
- <label for="first_name">Nombre: </label>
|
|
|
- <input
|
|
|
- type="text"
|
|
|
- formControlName="first_name"
|
|
|
- class="form-control"
|
|
|
- [ngClass]="{
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="row justify-content-center">
|
|
|
+ <div class="col-12">
|
|
|
+ <div class="card">
|
|
|
+ <div class="card-header card-header-inverlec">
|
|
|
+ <h3 class="card-title">Editar perfil</h3>
|
|
|
+ <p class="card-category">Información del Usuario</p>
|
|
|
+ </div>
|
|
|
+ <div class="card-body" *ngIf="editProfile">
|
|
|
+ <form class="form-auth-small ng-untouched ng-pristine ng-valid" [formGroup]="userForm"
|
|
|
+ (ngSubmit)="editUser()">
|
|
|
+ <div class="pl-lg-4">
|
|
|
+ <div class="row">
|
|
|
+ <div class="col-lg-6">
|
|
|
+ <div class="form-group">
|
|
|
+ <label for="first_name">Nombre: </label>
|
|
|
+ <input type="text" formControlName="first_name" class="form-control" [ngClass]="{
|
|
|
'is-invalid': submitted && f.first_name.errors
|
|
|
- }"
|
|
|
- />
|
|
|
- <div
|
|
|
- *ngIf="submitted && f.first_name.errors"
|
|
|
- class="invalid-feedback"
|
|
|
- >
|
|
|
- <div *ngIf="f.first_name.errors.required">
|
|
|
- Campo requerido
|
|
|
- </div>
|
|
|
+ }" />
|
|
|
+ <div *ngIf="submitted && f.first_name.errors" class="invalid-feedback">
|
|
|
+ <div *ngIf="f.first_name.errors.required">
|
|
|
+ Campo requerido
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="col-lg-6">
|
|
|
- <div class="form-group">
|
|
|
- <label for="last_name">Apellido: </label>
|
|
|
- <input
|
|
|
- type="text"
|
|
|
- formControlName="last_name"
|
|
|
- class="form-control"
|
|
|
- [ngClass]="{
|
|
|
+ </div>
|
|
|
+ <div class="col-lg-6">
|
|
|
+ <div class="form-group">
|
|
|
+ <label for="last_name">Apellido: </label>
|
|
|
+ <input type="text" formControlName="last_name" class="form-control" [ngClass]="{
|
|
|
'is-invalid': submitted && f.last_name.errors
|
|
|
- }"
|
|
|
- />
|
|
|
- <div
|
|
|
- *ngIf="submitted && f.last_name.errors"
|
|
|
- class="invalid-feedback"
|
|
|
- >
|
|
|
- <div *ngIf="f.last_name.errors.required">
|
|
|
- Campo requerido
|
|
|
- </div>
|
|
|
+ }" />
|
|
|
+ <div *ngIf="submitted && f.last_name.errors" class="invalid-feedback">
|
|
|
+ <div *ngIf="f.last_name.errors.required">
|
|
|
+ Campo requerido
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="col-lg-6">
|
|
|
- <div class="form-group">
|
|
|
- <label for="email">Email: </label>
|
|
|
- <input
|
|
|
- type="text"
|
|
|
- formControlName="email"
|
|
|
- class="form-control"
|
|
|
- [ngClass]="{
|
|
|
+ </div>
|
|
|
+ <div class="col-lg-6">
|
|
|
+ <div class="form-group">
|
|
|
+ <label for="email">Email: </label>
|
|
|
+ <input type="text" formControlName="email" class="form-control" [ngClass]="{
|
|
|
'is-invalid': submitted && f.email.errors
|
|
|
- }"
|
|
|
- readonly
|
|
|
- />
|
|
|
- <div
|
|
|
- *ngIf="submitted && f.email.errors"
|
|
|
- class="invalid-feedback"
|
|
|
- >
|
|
|
- <div *ngIf="f.email.errors.required">
|
|
|
- Campo requerido
|
|
|
- </div>
|
|
|
+ }" readonly />
|
|
|
+ <div *ngIf="submitted && f.email.errors" class="invalid-feedback">
|
|
|
+ <div *ngIf="f.email.errors.required">
|
|
|
+ Campo requerido
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="col-lg-6">
|
|
|
- <div class="form-group">
|
|
|
- <label for="phone">Telefono: </label>
|
|
|
- <input
|
|
|
- type="text"
|
|
|
- formControlName="phone"
|
|
|
- class="form-control"
|
|
|
- [ngClass]="{
|
|
|
+ </div>
|
|
|
+ <div class="col-lg-6">
|
|
|
+ <div class="form-group">
|
|
|
+ <label for="phone">Telefono: </label>
|
|
|
+ <input type="text" formControlName="phone" class="form-control" [ngClass]="{
|
|
|
'is-invalid': submitted && f.phone.errors
|
|
|
- }"
|
|
|
- />
|
|
|
- <div
|
|
|
- *ngIf="submitted && f.phone.errors"
|
|
|
- class="invalid-feedback"
|
|
|
- >
|
|
|
- <div *ngIf="f.phone.errors.required">
|
|
|
- Campo requerido
|
|
|
- </div>
|
|
|
+ }" />
|
|
|
+ <div *ngIf="submitted && f.phone.errors" class="invalid-feedback">
|
|
|
+ <div *ngIf="f.phone.errors.required">
|
|
|
+ Campo requerido
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
|
|
|
- <div class="col-lg-6">
|
|
|
- <div class="form-group">
|
|
|
- <label for="distribuidora">Distribuidora: </label>
|
|
|
+ <div class="col-lg-6">
|
|
|
+ <div class="form-group">
|
|
|
+ <label for="distribuidora">Distribuidora: </label>
|
|
|
|
|
|
- <input
|
|
|
- *ngIf="user.distribuidora"
|
|
|
- type="text"
|
|
|
- class="form-control"
|
|
|
- [value]="user.distribuidora"
|
|
|
- readonly
|
|
|
- />
|
|
|
- <select
|
|
|
- *ngIf="!user.distribuidora"
|
|
|
- class="custom-select"
|
|
|
- formControlName="distribuidora"
|
|
|
- [ngClass]="{
|
|
|
+ <input *ngIf="user.distribuidora" type="text" class="form-control" [value]="user.distribuidora"
|
|
|
+ readonly />
|
|
|
+ <select *ngIf="!user.distribuidora" class="custom-select" formControlName="distribuidora"
|
|
|
+ [ngClass]="{
|
|
|
'is-invalid': submitted && f.distribuidora.errors
|
|
|
- }"
|
|
|
- >
|
|
|
- <option
|
|
|
- *ngFor="let item of distributor"
|
|
|
- [value]="item.codigo"
|
|
|
- [selected]="item.codigo == user.distribuidora"
|
|
|
- >{{ item.nombre }}</option
|
|
|
- >
|
|
|
- </select>
|
|
|
- <div
|
|
|
- *ngIf="submitted && f.distribuidora.errors"
|
|
|
- class="invalid-feedback"
|
|
|
- >
|
|
|
- <div *ngIf="f.distribuidora.errors.required">
|
|
|
- Campo requerido
|
|
|
- </div>
|
|
|
+ }">
|
|
|
+ <option *ngFor="let item of distributor" [value]="item.codigo"
|
|
|
+ [selected]="item.codigo == user.distribuidora">{{ item.nombre }}</option>
|
|
|
+ </select>
|
|
|
+ <div *ngIf="submitted && f.distribuidora.errors" class="invalid-feedback">
|
|
|
+ <div *ngIf="f.distribuidora.errors.required">
|
|
|
+ Campo requerido
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="col-lg-6">
|
|
|
- <div class="form-group">
|
|
|
- <label for="tarifa">Código de tarifa: </label>
|
|
|
- <input
|
|
|
- *ngIf="user.cod_tarifa"
|
|
|
- type="text"
|
|
|
- class="form-control"
|
|
|
- [value]="user.cod_tarifa"
|
|
|
- readonly
|
|
|
- />
|
|
|
- <select
|
|
|
- *ngIf="!user.cod_tarifa"
|
|
|
- class="custom-select"
|
|
|
- formControlName="tarifa"
|
|
|
- [ngClass]="{
|
|
|
+ </div>
|
|
|
+ <div class="col-lg-6">
|
|
|
+ <div class="form-group">
|
|
|
+ <label for="tarifa">Código de tarifa: </label>
|
|
|
+ <input *ngIf="user.cod_tarifa" type="text" class="form-control" [value]="user.cod_tarifa"
|
|
|
+ readonly />
|
|
|
+ <select *ngIf="!user.cod_tarifa" class="custom-select" formControlName="tarifa" [ngClass]="{
|
|
|
'is-invalid': submitted && f.tarifa.errors
|
|
|
- }"
|
|
|
- >
|
|
|
- <option
|
|
|
- *ngFor="let item of codigo_tarifa"
|
|
|
- [value]="item.codigo"
|
|
|
- [selected]="item.codigo == user.cod_tarifa"
|
|
|
- >{{ item.nombre }}</option
|
|
|
- >
|
|
|
- </select>
|
|
|
- <div
|
|
|
- *ngIf="submitted && f.tarifa.errors"
|
|
|
- class="invalid-feedback"
|
|
|
- >
|
|
|
- <div *ngIf="f.tarifa.errors.required">
|
|
|
- Campo requerido
|
|
|
- </div>
|
|
|
+ }">
|
|
|
+ <option *ngFor="let item of codigo_tarifa" [value]="item.codigo"
|
|
|
+ [selected]="item.codigo == user.cod_tarifa">{{ item.nombre }}</option>
|
|
|
+ </select>
|
|
|
+ <div *ngIf="submitted && f.tarifa.errors" class="invalid-feedback">
|
|
|
+ <div *ngIf="f.tarifa.errors.required">
|
|
|
+ Campo requerido
|
|
|
</div>
|
|
|
- <button
|
|
|
- class="btn btn-sm btn-info"
|
|
|
- (click)="helpModal()"
|
|
|
- >
|
|
|
- ¿Donde encuentro mi tarifa?
|
|
|
- </button>
|
|
|
</div>
|
|
|
+ <button class="btn btn-sm btn-info" (click)="helpModal()">
|
|
|
+ ¿Donde encuentro mi tarifa?
|
|
|
+ </button>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
|
|
|
- <div class="col-lg-12">
|
|
|
- <div class="form-group">
|
|
|
- <div class="hint-wrapper">
|
|
|
- <small class="hint">
|
|
|
- <i class="fas fa-exclamation-circle"></i>
|
|
|
- La contraseña debe contener letras mayusculas,
|
|
|
- minusculas, al menos un número y un símbolo.
|
|
|
- </small>
|
|
|
- </div>
|
|
|
+ <div class="col-lg-12">
|
|
|
+ <div class="form-group">
|
|
|
|
|
|
- <label for="password">Contraseña</label>
|
|
|
- <input
|
|
|
- type="password"
|
|
|
- class="form-control"
|
|
|
- formControlName="password"
|
|
|
- [ngClass]="{
|
|
|
+ <label for="password">Contraseña</label>
|
|
|
+ <input type="password" class="form-control" formControlName="password" [ngClass]="{
|
|
|
'is-invalid': submitted && f.password.errors
|
|
|
- }"
|
|
|
- />
|
|
|
- <div
|
|
|
- *ngIf="submitted && f.password.errors"
|
|
|
- class="invalid-feedback"
|
|
|
- >
|
|
|
- <div *ngIf="f.password.errors.required">
|
|
|
- Campo requerido
|
|
|
- </div>
|
|
|
- <div *ngIf="f.password.errors.minlength">
|
|
|
- La contraseña debe contener al menos 8 caracteres
|
|
|
- </div>
|
|
|
- <div
|
|
|
- *ngIf="f.password.hasError('passwordStrength')"
|
|
|
- style="white-space: pre;"
|
|
|
- >
|
|
|
- {{ f.password.errors["passwordStrength"] }}
|
|
|
- </div>
|
|
|
+ }" />
|
|
|
+ <div *ngIf="submitted && f.password.errors" class="invalid-feedback">
|
|
|
+ <div *ngIf="f.password.errors.required">
|
|
|
+ Campo requerido
|
|
|
+ </div>
|
|
|
+ <div *ngIf="f.password.errors.minlength">
|
|
|
+ La contraseña debe contener al menos 8 caracteres
|
|
|
+ </div>
|
|
|
+ <div *ngIf="f.password.hasError('passwordStrength')" style="white-space: pre;">
|
|
|
+ {{ f.password.errors["passwordStrength"] }}
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="form-group">
|
|
|
- <label for="confirm_password"
|
|
|
- >Confirmar contraseña</label
|
|
|
- >
|
|
|
- <input
|
|
|
- type="password"
|
|
|
- class="form-control"
|
|
|
- formControlName="confirm_password"
|
|
|
- [ngClass]="{
|
|
|
+ </div>
|
|
|
+ <div class="form-group">
|
|
|
+ <label for="confirm_password">Confirmar contraseña</label>
|
|
|
+ <input type="password" class="form-control" formControlName="confirm_password" [ngClass]="{
|
|
|
'is-invalid': submitted && f.confirm_password.errors
|
|
|
- }"
|
|
|
- />
|
|
|
- <div
|
|
|
- *ngIf="submitted && f.confirm_password.errors"
|
|
|
- class="invalid-feedback"
|
|
|
- >
|
|
|
- <div *ngIf="f.confirm_password.errors.required">
|
|
|
- Campo requerido
|
|
|
- </div>
|
|
|
- <div *ngIf="f.confirm_password.errors.mustMatch">
|
|
|
- Las contraseñas deben coincidir
|
|
|
- </div>
|
|
|
+ }" />
|
|
|
+ <div *ngIf="submitted && f.confirm_password.errors" class="invalid-feedback">
|
|
|
+ <div *ngIf="f.confirm_password.errors.required">
|
|
|
+ Campo requerido
|
|
|
+ </div>
|
|
|
+ <div *ngIf="f.confirm_password.errors.mustMatch">
|
|
|
+ Las contraseñas deben coincidir
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <br />
|
|
|
- <button class="btn btn-primary">
|
|
|
- Actualizar información
|
|
|
- </button>
|
|
|
+ <div class="hint-wrapper">
|
|
|
+ <small class="hint">
|
|
|
+ <i class="fas fa-exclamation-circle"></i>
|
|
|
+ La contraseña debe contener letras mayusculas,
|
|
|
+ minusculas, al menos un número y un símbolo.
|
|
|
+ </small>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+
|
|
|
+ <br />
|
|
|
+ <button class="btn btn-primary">
|
|
|
+ Actualizar información
|
|
|
+ </button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </form>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </form>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|