Release v1.13 (#64)

Co-authored-by: shallegro <shay@allego.ai>
This commit is contained in:
shyallegro
2023-11-17 10:24:49 +02:00
committed by GitHub
parent aa038f4f82
commit 34f2167598
537 changed files with 18795 additions and 13775 deletions

View File

@@ -5,6 +5,7 @@
[searchActive]="true"
[searchValue]="searchValue$ | async"
[viewMode]="viewMode$ | async"
[isShowArchived]="showArchive$ | async"
[hideArchiveToggle]="data.hideShowArchived"
[hideCreateNewButton]="true"
[tableFilters]="tableFilters$ | async"

View File

@@ -3,13 +3,13 @@ import {Store} from '@ngrx/store';
import * as actions from './select-model.actions';
import {clearTableFilter, setSelectedModels, showArchive} from './select-model.actions';
import {
selectGlobalFilter, selectModels, selectNoMoreModels, selectSelectedModels, selectSelectedModelsList, selectSelectModelTableFilters, selectTableSortFields, selectViewMode
selectGlobalFilter, selectModels, selectNoMoreModels, selectSelectedModels, selectSelectedModelsList, selectSelectModelTableFilters, selectShowArchive, selectTableSortFields, selectViewMode
} from './select-model.reducer';
import {combineLatest, Observable, Subscription} from 'rxjs';
import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
import {ConfirmDialogComponent} from '../shared/ui-components/overlay/confirm-dialog/confirm-dialog.component';
import {ColHeaderTypeEnum, ISmCol, TableSortOrderEnum} from '../shared/ui-components/data/table/table.consts';
import {SelectedModel} from '../models/shared/models.model';
import {SelectedModel, TableModel} from '../models/shared/models.model';
import {MODELS_TABLE_COLS, ModelsViewModesEnum} from '../models/models.consts';
import {FilterMetadata} from 'primeng/api/filtermetadata';
import {selectAllProjectsUsers, selectProjectSystemTags, selectSelectedProject, selectTablesFilterProjectsOptions} from '../core/reducers/projects.reducer';
@@ -20,7 +20,7 @@ import {SortMeta} from 'primeng/api';
import {ModelsTableComponent} from '@common/models/shared/models-table/models-table.component';
import {debounceTime, distinctUntilChanged, map, tap} from 'rxjs/operators';
import {Project} from '~/business-logic/model/projects/models';
import {getTablesFilterProjectsOptions, resetTablesFilterProjectsOptions, setTablesFilterProjectsOptions} from '@common/core/actions/projects.actions';
import {getTablesFilterProjectsOptions, resetTablesFilterProjectsOptions} from '@common/core/actions/projects.actions';
import {isEqual, unionBy} from 'lodash-es';
import {compareLimitations} from '@common/shared/entity-page/footer-items/compare-footer-item';
import {addMessage} from '@common/core/actions/layout.actions';
@@ -40,7 +40,7 @@ export class SelectModelComponent implements OnInit, OnDestroy {
public noMoreModels$: Observable<boolean>;
public tableFilters$: Observable<{ [s: string]: FilterMetadata }>;
public searchValue$: Observable<string>;
public selectedModels$: Observable<Array<any>>;
public selectedModels$: Observable<Array<TableModel>>;
public viewMode$: Observable<ModelsViewModesEnum>;
public users$: Observable<Array<User>>;
public tags$: Observable<string[]>;
@@ -51,13 +51,13 @@ export class SelectModelComponent implements OnInit, OnDestroy {
public frameworks$: Observable<string[]>;
private subs = new Subscription();
private isAllProjects: any;
public selectedProject: Project;
private selectedModels: Array<SelectedModel>;
private columns$: Observable<ISmCol[]>;
private metadataTableCols$: Observable<ISmCol[]>;
public tableCols$: Observable<ISmCol[]>;
public metadataColsOptions$: Observable<Record<string, string[]>>;
public showArchive$: Observable<boolean>;
constructor(private store: Store,
public dialogRef: MatDialogRef<ConfirmDialogComponent>,
@@ -71,13 +71,17 @@ export class SelectModelComponent implements OnInit, OnDestroy {
this.models$ = combineLatest([
this.store.select(selectModels),
this.store.select(selectSelectedModelsList),
]).pipe(map(([models, selectedModels]) => unionBy(selectedModels, models, 'id')));
]).pipe(
map(([models, selectedModels]) => unionBy(selectedModels, models, 'id')),
map(models => models?.map(model => ({...model, system_tags: model.system_tags?.map((t => t.replace('archive', ' archive')))})))
);
this.tableSortFields$ = this.store.select(selectTableSortFields);
this.tableFilters$ = this.store.select(selectSelectModelTableFilters);
this.selectedModels$ = this.store.select(selectSelectedModels).pipe(tap(models => this.selectedModels = models));
this.viewMode$ = this.store.select(selectViewMode);
this.searchValue$ = this.store.select(selectGlobalFilter);
this.noMoreModels$ = this.store.select(selectNoMoreModels);
this.showArchive$ = this.store.select(selectShowArchive);
this.users$ = this.store.select(selectAllProjectsUsers);
this.tags$ = this.store.select(selectModelsTags);
this.systemTags$ = this.store.select(selectProjectSystemTags);
@@ -153,7 +157,7 @@ export class SelectModelComponent implements OnInit, OnDestroy {
this.store.dispatch(actions.tableSortChanged({colId: sort.colId, isShift: sort.isShift}));
}
filterChanged(filter: { col: ISmCol; value: any }) {
filterChanged(filter: { col: ISmCol; value: string }) {
this.store.dispatch(actions.tableFilterChanged({col: filter.col, value: filter.value}));
}

View File

@@ -2,9 +2,11 @@ import {Injectable} from '@angular/core';
import {Store} from '@ngrx/store';
import {Actions, concatLatestFrom, createEffect, ofType} from '@ngrx/effects';
import * as actions from './select-model.actions';
import {getNextModels, getSelectedModels, setSelectedModels, setSelectedModelsList} from './select-model.actions';
import * as exSelectors from './select-model.reducer';
import {selectTableSortFields} from './select-model.reducer';
import {MODELS_PAGE_SIZE} from '../models/models.consts';
import {catchError, mergeMap, map, switchMap, debounceTime} from 'rxjs/operators';
import {catchError, debounceTime, map, mergeMap, switchMap} from 'rxjs/operators';
import {get} from 'lodash-es';
import {MODEL_TAGS, MODELS_TABLE_COL_FIELDS} from '../models/shared/models.const';
import {ApiModelsService} from '~/business-logic/api-services/models.service';
@@ -15,10 +17,8 @@ import {of} from 'rxjs';
import {FilterMetadata} from 'primeng/api/filtermetadata';
import {ModelsGetAllExRequest} from '~/business-logic/model/models/modelsGetAllExRequest';
import {SortMeta} from 'primeng/api';
import {addExcludeFilters, createFiltersFromStore, encodeOrder} from '../shared/utils/tableParamEncode';
import {selectTableSortFields} from './select-model.reducer';
import {createFiltersFromStore, encodeOrder, excludedKey, getTagsFilters} from '../shared/utils/tableParamEncode';
import {escapeRegex} from '@common/shared/utils/escape-regex';
import {getNextModels, getSelectedModels, setSelectedModels, setSelectedModelsList} from './select-model.actions';
import {selectMetadataColsForProject} from '@common/models/reducers';
import {ISmCol} from '@common/shared/ui-components/data/table/table.consts';
import {selectRouterProjectId} from '@common/core/reducers/projects.reducer';
@@ -100,8 +100,9 @@ export class SelectModelEffects {
const projectFilter = get(tableFilters, [MODELS_TABLE_COL_FIELDS.PROJECT, 'value']);
const systemTags = tableFilters?.system_tags?.value;
const systemTagsFilter = (showArchived ? [] :
['__$and', '__$not', MODEL_TAGS.HIDDEN]).concat(systemTags ? systemTags : []);
['__$and', excludedKey, MODEL_TAGS.HIDDEN]).concat(systemTags ? systemTags : []);
const filters = createFiltersFromStore(tableFilters, true);
delete filters['tags'];
return {
...filters,
_any_: searchQuery ? {
@@ -113,7 +114,11 @@ export class SelectModelEffects {
scroll_id: scrollId || null, // null to create new scroll (undefined doesn't generate scroll)
size: MODELS_PAGE_SIZE,
order_by: encodeOrder(orderFields),
...(tagsFilter?.length > 0 && {tags: addExcludeFilters(tagsFilterAnd ? ['__$and', ...tagsFilter] : tagsFilter)}),
...(tagsFilter?.length > 0 && {
filters: {
tags: getTagsFilters(tagsFilterAnd, tagsFilter),
}
}),
system_tags: (systemTagsFilter && systemTagsFilter.length > 0) ? systemTagsFilter : [],
only_fields: [...this.selectModelsOnlyFields, ...metadataCols.map(col => col.id)],
...(tableFilters?.[MODELS_TABLE_COL_FIELDS.READY]?.value.length == 1 && !!tableFilters) ?