-
-
-
-
-
- {{ selectOptions.getBusiness(listing.type) }}
-
-
-
-
- {{ listing.title }}
- @if(listing.draft){
- Draft
- }
-
-
-
-
- {{ selectOptions.getState(listing.location.state) }}
-
-
- {{ getDaysListed(listing) }} days listed
-
-
-
-
- Asking price: {{ listing.price | currency : 'USD' : 'symbol' : '1.0-0' }}
-
-
Sales revenue: {{ listing.salesRevenue | currency : 'USD' : 'symbol' : '1.0-0' }}
-
Net profit: {{ listing.cashFlow | currency : 'USD' : 'symbol' : '1.0-0' }}
-
Location: {{ listing.location.name ? listing.location.name : listing.location.county }}
-
Established: {{ listing.established }}
+
+
+
-

-
-
-
+
+
+
+ @if(listings?.length > 0) {
+
+ @for (listing of listings; track listing.id) {
+
+
+
+
+ {{ selectOptions.getBusiness(listing.type) }}
+
+
+ {{ listing.title }}
+ @if(listing.draft) {
+ Draft
+ }
+
+
+
+ {{ selectOptions.getState(listing.location.state) }}
+
+
+ {{ getDaysListed(listing) }} days listed
+
+
+
+ Asking price: {{ listing.price | currency : 'USD' : 'symbol' : '1.0-0' }}
+
+
Sales revenue: {{ listing.salesRevenue | currency : 'USD' : 'symbol' : '1.0-0' }}
+
Net profit: {{ listing.cashFlow | currency : 'USD' : 'symbol' : '1.0-0' }}
+
Location: {{ listing.location.name ? listing.location.name : listing.location.county }}
+
Established: {{ listing.established }}
+

+
+
+
+
+ }
+ } @else if (listings?.length === 0) {
+
+
+
+
+
There’s no listing here
+
Try changing your filters to
see listings
+
+
+
+
+
+
+
+ }
+ @if(pageCount > 1) {
+
}
- } @else if (listings?.length===0){
-
-
-
-
-
There’s no listing here
-
Try changing your filters to
see listings
-
-
-
-
-
-
-
- }
-
-@if(pageCount>1){
-
-}
+
+
+
diff --git a/bizmatch/src/app/pages/listings/business-listings/business-listings.component.ts b/bizmatch/src/app/pages/listings/business-listings/business-listings.component.ts
index 6026f4f..dc12c90 100644
--- a/bizmatch/src/app/pages/listings/business-listings/business-listings.component.ts
+++ b/bizmatch/src/app/pages/listings/business-listings/business-listings.component.ts
@@ -9,6 +9,7 @@ import { BusinessListingCriteria, LISTINGS_PER_PAGE, ListingType, emailToDirName
import { environment } from '../../../../environments/environment';
import { PaginatorComponent } from '../../../components/paginator/paginator.component';
import { ModalService } from '../../../components/search-modal/modal.service';
+import { SearchModalComponent } from '../../../components/search-modal/search-modal.component';
import { CriteriaChangeService } from '../../../services/criteria-change.service';
import { ImageService } from '../../../services/image.service';
import { ListingsService } from '../../../services/listings.service';
@@ -19,7 +20,7 @@ import { assignProperties, getCriteriaProxy, resetBusinessListingCriteria } from
@Component({
selector: 'app-business-listings',
standalone: true,
- imports: [CommonModule, FormsModule, RouterModule, PaginatorComponent],
+ imports: [CommonModule, FormsModule, RouterModule, PaginatorComponent, SearchModalComponent],
templateUrl: './business-listings.component.html',
styleUrls: ['./business-listings.component.scss', '../../pages.scss'],
})
@@ -55,6 +56,7 @@ export class BusinessListingsComponent {
private criteriaChangeService: CriteriaChangeService,
) {
this.criteria = getCriteriaProxy('businessListings', this) as BusinessListingCriteria;
+ this.modalService.sendCriteria(this.criteria);
this.init();
this.searchService.currentCriteria.pipe(untilDestroyed(this)).subscribe(criteria => {
if (criteria && criteria.criteriaType === 'businessListings') {
diff --git a/bizmatch/src/app/services/validation.service.ts b/bizmatch/src/app/services/validation.service.ts
new file mode 100644
index 0000000..baf562d
--- /dev/null
+++ b/bizmatch/src/app/services/validation.service.ts
@@ -0,0 +1,60 @@
+import { Injectable } from '@angular/core';
+
+export interface ValidationMessage {
+ field: string;
+ message: string;
+}
+
+@Injectable({
+ providedIn: 'root',
+})
+export class ValidationService {
+ private messages: ValidationMessage[] = [];
+
+ constructor() {}
+
+ /**
+ * Fügt Validierungsnachrichten hinzu oder aktualisiert bestehende
+ * @param messages Array von Validierungsnachrichten
+ */
+ setMessages(messages: ValidationMessage[]): void {
+ this.messages = messages;
+ }
+
+ /**
+ * Löscht alle Validierungsmeldungen
+ */
+ clearMessages(): void {
+ this.messages = [];
+ }
+
+ /**
+ * Prüft, ob für ein bestimmtes Feld eine Validierungsmeldung existiert
+ * @param field Name des Feldes
+ * @returns true, wenn eine Meldung existiert
+ */
+ hasMessage(field: string): boolean {
+ return this.messages.some(message => message.field === field);
+ }
+
+ /**
+ * Gibt die Validierungsmeldung für ein bestimmtes Feld zurück
+ * @param field Name des Feldes
+ * @returns ValidationMessage oder null, wenn keine Meldung existiert
+ */
+ getMessage(field: string): ValidationMessage | null {
+ return this.messages.find(message => message.field === field) || null;
+ }
+
+ /**
+ * Hilfsmethode zur Verarbeitung von API-Fehlermeldungen
+ * @param error API-Fehler mit message-Array
+ */
+ handleApiError(error: any): void {
+ if (error && error.message && Array.isArray(error.message)) {
+ this.setMessages(error.message);
+ } else {
+ this.clearMessages();
+ }
+ }
+}
diff --git a/bizmatch/src/app/utils/utils.ts b/bizmatch/src/app/utils/utils.ts
index 2baccee..1e9be9c 100644
--- a/bizmatch/src/app/utils/utils.ts
+++ b/bizmatch/src/app/utils/utils.ts
@@ -31,6 +31,7 @@ export function createEmptyBusinessListingCriteria(): BusinessListingCriteria {
leasedLocation: false,
franchiseResale: false,
title: '',
+ email: '',
brokerName: '',
searchType: 'exact',
radius: null,
diff --git a/bizmatch/src/assets/images/advertising.png b/bizmatch/src/assets/images/advertising.png
new file mode 100644
index 0000000..ec3bd0a
Binary files /dev/null and b/bizmatch/src/assets/images/advertising.png differ
diff --git a/bizmatch/src/assets/images/agriculture.png b/bizmatch/src/assets/images/agriculture.png
new file mode 100644
index 0000000..ca0887b
Binary files /dev/null and b/bizmatch/src/assets/images/agriculture.png differ
diff --git a/bizmatch/src/assets/images/automotive.png b/bizmatch/src/assets/images/automotive.png
new file mode 100644
index 0000000..803923c
Binary files /dev/null and b/bizmatch/src/assets/images/automotive.png differ
diff --git a/bizmatch/src/assets/images/automotive_.png b/bizmatch/src/assets/images/automotive_.png
new file mode 100644
index 0000000..b9d8a65
Binary files /dev/null and b/bizmatch/src/assets/images/automotive_.png differ
diff --git a/bizmatch/src/assets/images/avatar-f-3 copy.png b/bizmatch/src/assets/images/avatar-f-3 copy.png
new file mode 100644
index 0000000..7c3d3a9
Binary files /dev/null and b/bizmatch/src/assets/images/avatar-f-3 copy.png differ
diff --git a/bizmatch/src/assets/images/bw-sky copy.jpg b/bizmatch/src/assets/images/bw-sky copy.jpg
new file mode 100644
index 0000000..65fd5e1
Binary files /dev/null and b/bizmatch/src/assets/images/bw-sky copy.jpg differ
diff --git a/bizmatch/src/assets/images/corpusChristiSkyline copy.jpg b/bizmatch/src/assets/images/corpusChristiSkyline copy.jpg
new file mode 100644
index 0000000..5aac1b2
Binary files /dev/null and b/bizmatch/src/assets/images/corpusChristiSkyline copy.jpg differ
diff --git a/bizmatch/src/assets/images/foodAndRestaurant.png b/bizmatch/src/assets/images/foodAndRestaurant.png
new file mode 100644
index 0000000..19ed687
Binary files /dev/null and b/bizmatch/src/assets/images/foodAndRestaurant.png differ
diff --git a/bizmatch/src/assets/images/franchise.png b/bizmatch/src/assets/images/franchise.png
new file mode 100644
index 0000000..2356f15
Binary files /dev/null and b/bizmatch/src/assets/images/franchise.png differ
diff --git a/bizmatch/src/assets/images/header-logo copy.png b/bizmatch/src/assets/images/header-logo copy.png
new file mode 100644
index 0000000..aba9071
Binary files /dev/null and b/bizmatch/src/assets/images/header-logo copy.png differ
diff --git a/bizmatch/src/assets/images/index-bg copy.jpg b/bizmatch/src/assets/images/index-bg copy.jpg
new file mode 100644
index 0000000..85f8e8b
Binary files /dev/null and b/bizmatch/src/assets/images/index-bg copy.jpg differ
diff --git a/bizmatch/src/assets/images/index-bg copy.webp b/bizmatch/src/assets/images/index-bg copy.webp
new file mode 100644
index 0000000..54d8c6d
Binary files /dev/null and b/bizmatch/src/assets/images/index-bg copy.webp differ
diff --git a/bizmatch/src/assets/images/industrialServices.png b/bizmatch/src/assets/images/industrialServices.png
new file mode 100644
index 0000000..15e138b
Binary files /dev/null and b/bizmatch/src/assets/images/industrialServices.png differ
diff --git a/bizmatch/src/assets/images/manufacturing.png b/bizmatch/src/assets/images/manufacturing.png
new file mode 100644
index 0000000..151e0d8
Binary files /dev/null and b/bizmatch/src/assets/images/manufacturing.png differ
diff --git a/bizmatch/src/assets/images/oilfield.png b/bizmatch/src/assets/images/oilfield.png
new file mode 100644
index 0000000..f667e34
Binary files /dev/null and b/bizmatch/src/assets/images/oilfield.png differ
diff --git a/bizmatch/src/assets/images/person_placeholder copy.jpg b/bizmatch/src/assets/images/person_placeholder copy.jpg
new file mode 100644
index 0000000..5e2b51e
Binary files /dev/null and b/bizmatch/src/assets/images/person_placeholder copy.jpg differ
diff --git a/bizmatch/src/assets/images/placeholder copy.png b/bizmatch/src/assets/images/placeholder copy.png
new file mode 100644
index 0000000..85156a3
Binary files /dev/null and b/bizmatch/src/assets/images/placeholder copy.png differ
diff --git a/bizmatch/src/assets/images/placeholder_properties copy.jpg b/bizmatch/src/assets/images/placeholder_properties copy.jpg
new file mode 100644
index 0000000..e411207
Binary files /dev/null and b/bizmatch/src/assets/images/placeholder_properties copy.jpg differ
diff --git a/bizmatch/src/assets/images/pricing-4 copy.svg b/bizmatch/src/assets/images/pricing-4 copy.svg
new file mode 100644
index 0000000..de994ae
--- /dev/null
+++ b/bizmatch/src/assets/images/pricing-4 copy.svg
@@ -0,0 +1,9 @@
+
diff --git a/bizmatch/src/assets/images/professional.png b/bizmatch/src/assets/images/professional.png
new file mode 100644
index 0000000..946ab49
Binary files /dev/null and b/bizmatch/src/assets/images/professional.png differ
diff --git a/bizmatch/src/assets/images/realEstate.png b/bizmatch/src/assets/images/realEstate.png
new file mode 100644
index 0000000..52d3864
Binary files /dev/null and b/bizmatch/src/assets/images/realEstate.png differ
diff --git a/bizmatch/src/assets/images/retail.png b/bizmatch/src/assets/images/retail.png
new file mode 100644
index 0000000..eb73c75
Binary files /dev/null and b/bizmatch/src/assets/images/retail.png differ
diff --git a/bizmatch/src/assets/images/service.png b/bizmatch/src/assets/images/service.png
new file mode 100644
index 0000000..1d6adfa
Binary files /dev/null and b/bizmatch/src/assets/images/service.png differ
diff --git a/bizmatch/src/assets/images/uncategorized.png b/bizmatch/src/assets/images/uncategorized.png
new file mode 100644
index 0000000..86b76bb
Binary files /dev/null and b/bizmatch/src/assets/images/uncategorized.png differ