feat: Branch betos — propiedades, rediseño postulaciones, chat contratos y flujo cancelar/repostular
- Sistema de propiedades: modal add-property con autocomplete y selector de ícono - category.page rediseñado: selector de propiedad, fotos (Capacitor Camera), sin fecha/precio - Modal postulate-offer: proveedor propone 2 fechas requeridas + monto con validación de cuota mínima - viewsuppliers: chips de ordenamiento frontend (fecha, precio, certificados) - hire.page: selección de fecha (date_1/date_2) antes de contratar; selected_date en contracts/create y contracts/coupon - Modal contract-discussion: chat de burbujas para contratos activos - contracted.page: botón de chat por contrato - pending.page: botones cancelar y repostular por postulación - Modal repostulate: pre-llena categoría/propiedad, archiva original como perdido y crea nueva con related_postulation_id - current.page: temporizador de expiración basado en time_created (1000 min), oculta expiradas - ichamba.service: nuevos métodos properties, cancelPostulation, contractDiscussion, updated signatures Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
63
src/app/pages/property/add-property/add-property.page.html
Normal file
63
src/app/pages/property/add-property/add-property.page.html
Normal file
@@ -0,0 +1,63 @@
|
||||
<style>
|
||||
ion-list.dropdown-list {
|
||||
position: absolute;
|
||||
width: calc(100% - 32px);
|
||||
max-height: 50%;
|
||||
z-index: 999;
|
||||
}
|
||||
</style>
|
||||
|
||||
<ion-header>
|
||||
<ion-toolbar color="primary">
|
||||
<ion-buttons slot="start">
|
||||
<ion-button (click)="dismiss()">
|
||||
<ion-icon slot="icon-only" name="close"></ion-icon>
|
||||
</ion-button>
|
||||
</ion-buttons>
|
||||
<ion-title>Agregar Propiedad</ion-title>
|
||||
</ion-toolbar>
|
||||
</ion-header>
|
||||
|
||||
<ion-content class="ion-padding">
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="floating">Nombre de la propiedad</ion-label>
|
||||
<ion-input [(ngModel)]="name" placeholder="Ej. Mi casa, Oficina centro"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-item style="margin-top: 8px">
|
||||
<ion-label>Ícono</ion-label>
|
||||
<div slot="end" style="display:flex; gap: 16px; padding: 8px 0">
|
||||
<ion-button [fill]="icon === 'home' ? 'solid' : 'outline'" color="primary" (click)="icon = 'home'">
|
||||
<ion-icon slot="icon-only" name="home"></ion-icon>
|
||||
</ion-button>
|
||||
<ion-button [fill]="icon === 'briefcase' ? 'solid' : 'outline'" color="primary" (click)="icon = 'briefcase'">
|
||||
<ion-icon slot="icon-only" name="briefcase"></ion-icon>
|
||||
</ion-button>
|
||||
</div>
|
||||
</ion-item>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="floating">Dirección</ion-label>
|
||||
<ion-input
|
||||
[(ngModel)]="addressAutocomplete"
|
||||
(ionInput)="autocomplete($event)"
|
||||
(ionFocus)="showif = true"
|
||||
></ion-input>
|
||||
</ion-item>
|
||||
<ion-list *ngIf="showif && placesSearch && placesSearch.length > 0" class="dropdown-list">
|
||||
<ion-item button="true" (click)="geoloc(place.place_id, place.description)" *ngFor="let place of placesSearch">
|
||||
{{ place.description }}
|
||||
</ion-item>
|
||||
</ion-list>
|
||||
|
||||
<ion-item>
|
||||
<ion-label position="floating">Número exterior (opcional)</ion-label>
|
||||
<ion-input [(ngModel)]="myIntnumber" type="number"></ion-input>
|
||||
</ion-item>
|
||||
|
||||
<ion-button expand="full" color="primary" style="margin-top: 2em" (click)="save()" [disabled]="saving">
|
||||
Guardar propiedad
|
||||
</ion-button>
|
||||
|
||||
</ion-content>
|
||||
Reference in New Issue
Block a user