validatedCity, mask for input, confirmatonService, Version Info,
This commit is contained in:
@@ -12,7 +12,7 @@ export class ImageService {
|
||||
|
||||
constructor(private http: HttpClient) {}
|
||||
|
||||
uploadImage(imageBlob: Blob, type: 'uploadPropertyPicture' | 'uploadCompanyLogo' | 'uploadProfile', imagePath: string, serialId?: number) {
|
||||
async uploadImage(imageBlob: Blob, type: 'uploadPropertyPicture' | 'uploadCompanyLogo' | 'uploadProfile', imagePath: string, serialId?: number) {
|
||||
let uploadUrl = `${this.apiBaseUrl}/bizmatch/image/${type}/${imagePath}`;
|
||||
if (type === 'uploadPropertyPicture') {
|
||||
uploadUrl = `${this.apiBaseUrl}/bizmatch/image/${type}/${imagePath}/${serialId}`;
|
||||
@@ -20,9 +20,10 @@ export class ImageService {
|
||||
const formData = new FormData();
|
||||
formData.append('file', imageBlob, 'image.png');
|
||||
|
||||
return this.http.post(uploadUrl, formData, {
|
||||
observe: 'events',
|
||||
});
|
||||
// return this.http.post(uploadUrl, formData, {
|
||||
// observe: 'events',
|
||||
// });
|
||||
return await lastValueFrom(this.http.post(uploadUrl, formData));
|
||||
}
|
||||
|
||||
async deleteListingImage(imagePath: string, serial: number, name?: string) {
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { BehaviorSubject, Observable, debounceTime, distinctUntilChanged, map, shareReplay } from 'rxjs';
|
||||
import { BehaviorSubject, Observable } from 'rxjs';
|
||||
import { debounceTime, distinctUntilChanged, map, shareReplay } from 'rxjs/operators';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root',
|
||||
})
|
||||
export class LoadingService {
|
||||
public loading$ = new BehaviorSubject<string[]>([]);
|
||||
|
||||
private loading$ = new BehaviorSubject<string[]>([]);
|
||||
private loadingTextSubject = new BehaviorSubject<string | null>(null);
|
||||
private excludedUrls: string[] = ['/findTotal', '/geo']; // Liste der URLs, für die kein Ladeindikator angezeigt werden soll
|
||||
|
||||
loadingText$: Observable<string | null> = this.loadingTextSubject.asObservable();
|
||||
|
||||
public isLoading$ = this.loading$.asObservable().pipe(
|
||||
@@ -17,13 +19,15 @@ export class LoadingService {
|
||||
shareReplay(1),
|
||||
);
|
||||
|
||||
public startLoading(type: string, request?: string): void {
|
||||
if (!this.loading$.value.includes(type)) {
|
||||
this.loading$.next(this.loading$.value.concat(type));
|
||||
if (type === 'uploadImage' || request?.includes('uploadImage') || request?.includes('uploadPropertyPicture') || request?.includes('uploadProfile') || request?.includes('uploadCompanyLogo')) {
|
||||
this.loadingTextSubject.next("Please wait - we're processing your image...");
|
||||
} else {
|
||||
this.loadingTextSubject.next(null);
|
||||
public startLoading(type: string, url?: string): void {
|
||||
if (this.shouldShowLoading(url)) {
|
||||
if (!this.loading$.value.includes(type)) {
|
||||
this.loading$.next(this.loading$.value.concat(type));
|
||||
if (this.isImageUpload(type, url)) {
|
||||
this.loadingTextSubject.next("Please wait - we're processing your image...");
|
||||
} else {
|
||||
this.loadingTextSubject.next(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -34,4 +38,13 @@ export class LoadingService {
|
||||
this.loadingTextSubject.next(null);
|
||||
}
|
||||
}
|
||||
|
||||
private shouldShowLoading(url?: string): boolean {
|
||||
if (!url) return true;
|
||||
return !this.excludedUrls.some(excludedUrl => url.includes(excludedUrl));
|
||||
}
|
||||
|
||||
private isImageUpload(type: string, url?: string): boolean {
|
||||
return type === 'uploadImage' || url?.includes('uploadImage') || url?.includes('uploadPropertyPicture') || url?.includes('uploadProfile') || url?.includes('uploadCompanyLogo');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user