- 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>
64 lines
2.0 KiB
HTML
64 lines
2.0 KiB
HTML
<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>
|