UI: Refactoring

This commit is contained in:
Artem Dzhereleiko 2024-06-05 15:31:39 +03:00
parent 15ad1ce7e0
commit eabaaa59a1
4 changed files with 20 additions and 28 deletions

View File

@ -22,6 +22,7 @@ import { QueueInfo, QueueStatisticsInfo, ServiceType } from '@shared/models/queu
import { PageLink } from '@shared/models/page/page-link'; import { PageLink } from '@shared/models/page/page-link';
import { PageData } from '@shared/models/page/page-data'; import { PageData } from '@shared/models/page/page-data';
import { Asset } from '@shared/models/asset.models'; import { Asset } from '@shared/models/asset.models';
import { map } from 'rxjs/operators';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
@ -55,17 +56,30 @@ export class QueueService {
return this.http.delete(`/api/queues/${queueId}`); return this.http.delete(`/api/queues/${queueId}`);
} }
private parseQueueStatName = (queueStat: QueueStatisticsInfo) => Object.defineProperty(queueStat, 'name', {
get() { return `${this.queueName} (${this.serviceId})`; }
});
public getQueueStatistics(pageLink: PageLink, config?: RequestConfig): Observable<PageData<QueueStatisticsInfo>> { public getQueueStatistics(pageLink: PageLink, config?: RequestConfig): Observable<PageData<QueueStatisticsInfo>> {
return this.http.get<PageData<QueueStatisticsInfo>>(`/api/queueStats${pageLink.toQuery()}`, return this.http.get<PageData<QueueStatisticsInfo>>(`/api/queueStats${pageLink.toQuery()}`,
defaultHttpOptionsFromConfig(config)); defaultHttpOptionsFromConfig(config)).pipe(
map(queueData => {
queueData.data.map(queueStat => this.parseQueueStatName(queueStat));
return queueData;
})
);
} }
public getQueueStatisticsById(queueStatId: string, config?: RequestConfig): Observable<QueueStatisticsInfo> { public getQueueStatisticsById(queueStatId: string, config?: RequestConfig): Observable<QueueStatisticsInfo> {
return this.http.get<QueueStatisticsInfo>(`/api/queueStats/${queueStatId}`, defaultHttpOptionsFromConfig(config)); return this.http.get<QueueStatisticsInfo>(`/api/queueStats/${queueStatId}`, defaultHttpOptionsFromConfig(config)).pipe(
map(queueStat => this.parseQueueStatName(queueStat)));
} }
public getQueueStatisticsByIds(queueStatIds: Array<string>, config?: RequestConfig): Observable<Array<QueueStatisticsInfo>> { public getQueueStatisticsByIds(queueStatIds: Array<string>, config?: RequestConfig): Observable<Array<QueueStatisticsInfo>> {
return this.http.get<Array<QueueStatisticsInfo>>(`/api/queueStats?strQueueStatsIds=${queueStatIds.join(',')}`, return this.http.get<Array<QueueStatisticsInfo>>(`/api/queueStats?strQueueStatsIds=${queueStatIds.join(',')}`,
defaultHttpOptionsFromConfig(config)); defaultHttpOptionsFromConfig(config)).pipe(
map(queueStats => queueStats.map(queueStat => this.parseQueueStatName(queueStat))
)
);
} }
} }

View File

@ -186,9 +186,7 @@ export class EntityAutocompleteComponent implements ControlValueAccessor, OnInit
} }
}), }),
// startWith<string | BaseData<EntityId>>(''), // startWith<string | BaseData<EntityId>>(''),
map(value => map(value => value ? (typeof value === 'string' ? value : value.name) : ''),
value ? (typeof value === 'string' ? value : value.name) : ''
),
switchMap(name => this.fetchEntities(name)), switchMap(name => this.fetchEntities(name)),
share() share()
) )
@ -321,10 +319,6 @@ export class EntityAutocompleteComponent implements ControlValueAccessor, OnInit
} catch (e) { } catch (e) {
this.propagateChange(null); this.propagateChange(null);
} }
if (this.entityTypeValue === EntityType.QUEUE_STATS && isDefinedAndNotNull(entity)) {
const queueStat = entity as QueueStatisticsInfo;
entity.name = `${queueStat.queueName} (${queueStat.serviceId})`;
}
this.modelValue = entity !== null ? (this.useFullEntityId ? entity.id : entity.id.id) : null; this.modelValue = entity !== null ? (this.useFullEntityId ? entity.id : entity.id.id) : null;
this.entityURL = getEntityDetailsPageURL(this.modelValue as string, targetEntityType); this.entityURL = getEntityDetailsPageURL(this.modelValue as string, targetEntityType);
this.selectEntityFormGroup.get('entity').patchValue(entity !== null ? entity : '', {emitEvent: false}); this.selectEntityFormGroup.get('entity').patchValue(entity !== null ? entity : '', {emitEvent: false});
@ -373,9 +367,6 @@ export class EntityAutocompleteComponent implements ControlValueAccessor, OnInit
data.forEach(entity => !excludeEntityIdsSet.has(entity.id.id) && entities.push(entity)); data.forEach(entity => !excludeEntityIdsSet.has(entity.id.id) && entities.push(entity));
return entities; return entities;
} else { } else {
if (this.entityTypeValue === EntityType.QUEUE_STATS) {
data.forEach((entity: QueueStatisticsInfo) => entity.name = `${entity.queueName} (${entity.serviceId})`);
}
return data; return data;
} }
} else { } else {

View File

@ -185,9 +185,6 @@ export class EntityListComponent implements ControlValueAccessor, OnInit, AfterV
this.entityService.getEntities(this.entityType, value).subscribe( this.entityService.getEntities(this.entityType, value).subscribe(
(entities) => { (entities) => {
this.entities = entities; this.entities = entities;
if (this.entityType === EntityType.QUEUE_STATS) {
this.entities.forEach((queueStat: QueueStatisticsInfo) => queueStat.name = `${queueStat.queueName} (${queueStat.serviceId})`);
}
this.entityListFormGroup.get('entities').setValue(this.entities); this.entityListFormGroup.get('entities').setValue(this.entities);
} }
); );
@ -248,15 +245,7 @@ export class EntityListComponent implements ControlValueAccessor, OnInit, AfterV
return this.entityService.getEntitiesByNameFilter(this.entityType, searchText, return this.entityService.getEntitiesByNameFilter(this.entityType, searchText,
50, this.subType ? this.subType : '', {ignoreLoading: true}).pipe( 50, this.subType ? this.subType : '', {ignoreLoading: true}).pipe(
map((data) => { map((data) => data ? data : []));
if (data) {
if (this.entityType === EntityType.QUEUE_STATS) {
data.forEach((entity: QueueStatisticsInfo) => entity.name = `${entity.queueName} (${entity.serviceId})`);
}
return data;
}
return [];
}));
} }
onFocus() { onFocus() {

View File

@ -127,9 +127,7 @@ export interface QueueInfo extends BaseData<QueueId>, HasTenantId {
}; };
} }
export interface QueueStatisticsInfo extends BaseData<QueueId>, HasTenantId { export interface QueueStatisticsInfo extends Omit<BaseData<QueueId>, 'label'>, HasTenantId {
queueName: string; queueName: string;
serviceId: string; serviceId: string;
name?: string;
tenantId?: TenantId;
} }