156 lines
10 KiB
HTML
156 lines
10 KiB
HTML
|
|
<div class="surface-ground px-4 py-8 md:px-6 lg:px-8">
|
|
<div class="p-fluid flex flex-column lg:flex-row">
|
|
<menu-account></menu-account>
|
|
<p-toast></p-toast>
|
|
<div class="surface-card p-5 shadow-2 border-round flex-auto">
|
|
<div class="text-900 font-semibold text-lg mt-3">{{mode==='create'?'New':'Edit'}} Listing</div>
|
|
<p-divider></p-divider>
|
|
<div class="flex gap-5 flex-column-reverse md:flex-row">
|
|
<div class="flex-auto p-fluid">
|
|
<div class="mb-4">
|
|
<label for="listingCategory" class="block font-medium text-900 mb-2">Listing category</label>
|
|
<p-dropdown id="listingCategory" [options]="selectOptions?.listingCategories" [(ngModel)]="listing.listingsCategory" optionLabel="name"
|
|
optionValue="value" placeholder="Listing category" [disabled]="mode==='edit'"
|
|
[style]="{ width: '100%'}"></p-dropdown>
|
|
</div>
|
|
<div class="mb-4">
|
|
<label for="email" class="block font-medium text-900 mb-2">Title of Listing</label>
|
|
<input id="email" type="text" pInputText [(ngModel)]="listing.title">
|
|
</div>
|
|
@if (listing.listingsCategory==='business' || listing.listingsCategory==='professionals_brokers'){
|
|
<div>
|
|
<div class="mb-4">
|
|
<label for="summary" class="block font-medium text-900 mb-2">Summary (Brief description)</label>
|
|
<textarea id="summary" type="text" pInputTextarea rows="5" [autoResize]="true" [ngModel]="listing.summary | arrayToString:'\n\n'" (ngModelChange)="updateSummary($event)"></textarea>
|
|
</div>
|
|
</div>
|
|
}
|
|
<div>
|
|
<div class="mb-4">
|
|
<label for="description" class="block font-medium text-900 mb-2">Description</label>
|
|
<textarea id="description" type="text" pInputTextarea rows="5" [autoResize]="true" [(ngModel)]="listing.description"></textarea>
|
|
</div>
|
|
</div>
|
|
@if (listing.listingsCategory==='business'){
|
|
<div class="mb-4">
|
|
<label for="listingCategory" class="block font-medium text-900 mb-2">Type of business</label>
|
|
<p-dropdown id="listingCategory" [options]="selectOptions?.typesOfBusiness" [(ngModel)]="listing.type" optionLabel="name"
|
|
optionValue="value" [showClear]="true" placeholder="Type of business"
|
|
[style]="{ width: '100%'}"></p-dropdown>
|
|
</div>
|
|
}
|
|
<div class="mb-4">
|
|
<label for="listingCategory" class="block font-medium text-900 mb-2">Location</label>
|
|
<p-dropdown id="listingCategory" [options]="selectOptions?.locations" [(ngModel)]="listing.location" optionLabel="name"
|
|
optionValue="value" [showClear]="true" placeholder="Location"
|
|
[style]="{ width: '100%'}"></p-dropdown>
|
|
</div>
|
|
@if (listing.listingsCategory==='professionals_brokers'){
|
|
<div>
|
|
<div class="mb-4">
|
|
<label for="address" class="block font-medium text-900 mb-2">Address</label>
|
|
<input id="address" type="text" pInputText [(ngModel)]="listing.address">
|
|
</div>
|
|
</div>
|
|
}
|
|
@if (listing.listingsCategory==='professionals_brokers' || listing.listingsCategory==='investment'){
|
|
<div>
|
|
<div class="mb-4">
|
|
<label for="email" class="block font-medium text-900 mb-2">Email</label>
|
|
<input id="address" type="text" pInputText [(ngModel)]="listing.email">
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="mb-4">
|
|
<label for="website" class="block font-medium text-900 mb-2">Website</label>
|
|
<input id="address" type="text" pInputText [(ngModel)]="listing.website">
|
|
</div>
|
|
</div>
|
|
}
|
|
@if (listing.listingsCategory==='professionals_brokers'){
|
|
<div class="mb-4">
|
|
<label for="category" class="block font-medium text-900 mb-2">Category</label>
|
|
<p-dropdown id="category" [options]="selectOptions?.categories" [(ngModel)]="listing.category" optionLabel="name"
|
|
optionValue="value" [showClear]="true" placeholder="Category"
|
|
[style]="{ width: '100%'}"></p-dropdown>
|
|
</div>
|
|
}
|
|
@if (listing.listingsCategory==='investment'){
|
|
<div>
|
|
<div class="mb-4">
|
|
<label for="phoneNumber" class="block font-medium text-900 mb-2">Phone Number</label>
|
|
<input id="phoneNumber" type="text" pInputText [(ngModel)]="listing.phoneNumber">
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
</div>
|
|
<p-divider></p-divider>
|
|
<div class="flex gap-5 flex-column-reverse md:flex-row">
|
|
<div class="flex-auto p-fluid">
|
|
@if (listing.listingsCategory==='business'){
|
|
<div class="grid">
|
|
<div class="mb-4 col-12 md:col-6">
|
|
<label for="price" class="block font-medium text-900 mb-2">Price</label>
|
|
<!-- <input id="price" type="text" pInputText [(ngModel)]="listing.price"> -->
|
|
<p-inputNumber mode="currency" currency="USD" inputId="price" type="text" [(ngModel)]="listing.price"></p-inputNumber>
|
|
</div>
|
|
<div class="mb-4 col-12 md:col-6 flex align-items-end justify-content-center">
|
|
<p-checkbox [binary]="true" [(ngModel)]="listing.realEstateIncluded"></p-checkbox>
|
|
<span class="ml-2 text-900">Real Estate Included</span>
|
|
</div>
|
|
</div>
|
|
<div class="grid">
|
|
<div class="mb-4 col-12 md:col-6">
|
|
<label for="salesRevenue" class="block font-medium text-900 mb-2">Sales Revenue</label>
|
|
<!-- <input id="salesRevenue" type="text" pInputText [(ngModel)]="listing.salesRevenue"> -->
|
|
<p-inputNumber mode="currency" currency="USD" inputId="salesRevenue" type="text" [(ngModel)]="listing.salesRevenue"></p-inputNumber>
|
|
</div>
|
|
<div class="mb-4 col-12 md:col-6">
|
|
<label for="cashFlow" class="block font-medium text-900 mb-2">Cash Flow</label>
|
|
<!-- <input id="cashFlow" type="text" pInputText [(ngModel)]="listing.cashFlow"> -->
|
|
<p-inputNumber mode="currency" currency="USD" inputId="cashFlow" type="text" [(ngModel)]="listing.cashFlow"></p-inputNumber>
|
|
</div>
|
|
</div>
|
|
<div class="grid">
|
|
<div class="mb-4 col-12 md:col-6">
|
|
<label for="netProfit" class="block font-medium text-900 mb-2">Net Profit</label>
|
|
<!-- <input id="netProfit" type="text" pInputText [(ngModel)]="listing.netProfit"> -->
|
|
<p-inputNumber mode="currency" currency="USD" inputId="netProfit" type="text" [(ngModel)]="listing.netProfit"></p-inputNumber>
|
|
</div>
|
|
<div class="mb-4 col-12 md:col-6">
|
|
<label for="employees" class="block font-medium text-900 mb-2">Employees</label>
|
|
<!-- <input id="employees" type="text" pInputText [(ngModel)]="listing.employees"> -->
|
|
<p-inputNumber mode="employees" mode="decimal" inputId="employees" type="text" [(ngModel)]="listing.employees"></p-inputNumber>
|
|
</div>
|
|
</div>
|
|
<div class="mb-4">
|
|
<label for="inventory" class="block font-medium text-900 mb-2">Inventory</label>
|
|
<textarea id="inventory" type="text" pInputTextarea rows="5" [autoResize]="true" [(ngModel)]="listing.inventory"></textarea>
|
|
</div>
|
|
<div class="mb-4">
|
|
<label for="reasonForSale" class="block font-medium text-900 mb-2">Reason for Sale</label>
|
|
<textarea id="reasonForSale" type="text" pInputTextarea rows="5" [autoResize]="true" [(ngModel)]="listing.reasonForSale"></textarea>
|
|
</div>
|
|
<div class="mb-4">
|
|
<label for="brokerLicensing" class="block font-medium text-900 mb-2">Broker Licensing</label>
|
|
<input id="brokerLicensing" type="text" pInputText [(ngModel)]="listing.brokerLicencing">
|
|
</div>
|
|
<div class="mb-4">
|
|
<label for="internalListing" class="block font-medium text-900 mb-2">Internal Listing (Will not be shown on the listing, for your records only.)</label>
|
|
<input id="internalListing" type="text" pInputText [(ngModel)]="listing.internals">
|
|
</div>
|
|
}
|
|
<div>
|
|
@if (mode==='create'){
|
|
<button pButton pRipple label="Post Listing" class="w-auto" (click)="create()"></button>
|
|
} @else {
|
|
<button pButton pRipple label="Update Listing" class="w-auto" (click)="update(listing.id)"></button>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div> |