Files
Jobhero_front/src/app/pages/property/add-property/add-property.page.html
Carlos 48979dca6f 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>
2026-07-03 11:26:48 -06:00

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>