Fix view filter creation on new view (#8199)
Wrong view was used for the creation from another view (source and target view were inverted)
This commit is contained in:
@ -87,9 +87,9 @@ export const useCreateViewFromCurrentView = (viewBarComponentId?: string) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Here we might instead want to get view from unsaved filters ?
|
// Here we might instead want to get view from unsaved filters ?
|
||||||
const view = await getViewFromCache(currentViewId);
|
const sourceView = await getViewFromCache(currentViewId);
|
||||||
|
|
||||||
if (!isDefined(view)) {
|
if (!isDefined(sourceView)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,23 +97,23 @@ export const useCreateViewFromCurrentView = (viewBarComponentId?: string) => {
|
|||||||
|
|
||||||
const newView = await createOneRecord({
|
const newView = await createOneRecord({
|
||||||
id: id ?? v4(),
|
id: id ?? v4(),
|
||||||
name: name ?? view.name,
|
name: name ?? sourceView.name,
|
||||||
icon: icon ?? view.icon,
|
icon: icon ?? sourceView.icon,
|
||||||
key: null,
|
key: null,
|
||||||
kanbanFieldMetadataId:
|
kanbanFieldMetadataId:
|
||||||
kanbanFieldMetadataId ?? view.kanbanFieldMetadataId,
|
kanbanFieldMetadataId ?? sourceView.kanbanFieldMetadataId,
|
||||||
type: type ?? view.type,
|
type: type ?? sourceView.type,
|
||||||
objectMetadataId: view.objectMetadataId,
|
objectMetadataId: sourceView.objectMetadataId,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (isUndefinedOrNull(newView)) {
|
if (isUndefinedOrNull(newView)) {
|
||||||
throw new Error('Failed to create view');
|
throw new Error('Failed to create view');
|
||||||
}
|
}
|
||||||
|
|
||||||
await createViewFieldRecords(view.viewFields, newView);
|
await createViewFieldRecords(sourceView.viewFields, newView);
|
||||||
|
|
||||||
if (type === ViewType.Kanban) {
|
if (type === ViewType.Kanban) {
|
||||||
if (!isNonEmptyArray(view.viewGroups)) {
|
if (!isNonEmptyArray(sourceView.viewGroups)) {
|
||||||
if (!isDefined(kanbanFieldMetadataId)) {
|
if (!isDefined(kanbanFieldMetadataId)) {
|
||||||
throw new Error('Kanban view must have a kanban field');
|
throw new Error('Kanban view must have a kanban field');
|
||||||
}
|
}
|
||||||
@ -144,22 +144,24 @@ export const useCreateViewFromCurrentView = (viewBarComponentId?: string) => {
|
|||||||
|
|
||||||
await createViewGroupRecords(viewGroupsToCreate, newView);
|
await createViewGroupRecords(viewGroupsToCreate, newView);
|
||||||
} else {
|
} else {
|
||||||
await createViewGroupRecords(view.viewGroups, newView);
|
await createViewGroupRecords(sourceView.viewGroups, newView);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldCopyFiltersAndSorts === true) {
|
if (shouldCopyFiltersAndSorts === true) {
|
||||||
const sourceViewCombinedFilterGroups = getViewFilterGroupsCombined(
|
const sourceViewCombinedFilterGroups = getViewFilterGroupsCombined(
|
||||||
view.id,
|
sourceView.id,
|
||||||
);
|
);
|
||||||
const sourceViewCombinedFilters = getViewFiltersCombined(view.id);
|
const sourceViewCombinedFilters = getViewFiltersCombined(
|
||||||
const sourceViewCombinedSorts = getViewSortsCombined(view.id);
|
sourceView.id,
|
||||||
|
);
|
||||||
|
const sourceViewCombinedSorts = getViewSortsCombined(sourceView.id);
|
||||||
|
|
||||||
await createViewSortRecords(sourceViewCombinedSorts, view);
|
await createViewSortRecords(sourceViewCombinedSorts, newView);
|
||||||
await createViewFilterRecords(sourceViewCombinedFilters, view);
|
await createViewFilterRecords(sourceViewCombinedFilters, newView);
|
||||||
await createViewFilterGroupRecords(
|
await createViewFilterGroupRecords(
|
||||||
sourceViewCombinedFilterGroups,
|
sourceViewCombinedFilterGroups,
|
||||||
view,
|
newView,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user