Move is active to fe (#19649)
## Context Moving isActive filtering to the frontend for page layout tabs and widgets, hiding inactive entities from the UI while keeping them in state for future reactivation Next we will implement deactivated standard tab re-activation during tab creation (cc @Devessier) <img width="234" height="303" alt="📋 Menu (Slots)" src="https://github.com/user-attachments/assets/17a25ac6-55e2-4778-b7f0-e7554ed69704" />
This commit is contained in:
+5
-2
@@ -29,7 +29,9 @@ export const reconstructFlatPageLayoutWithTabsAndWidgets = ({
|
||||
}): FlatPageLayoutWithTabsAndWidgets => {
|
||||
const tabs = Object.values(flatPageLayoutTabMaps.byUniversalIdentifier)
|
||||
.filter(isDefined)
|
||||
.filter((tab) => tab.pageLayoutId === layout.id && tab.isActive)
|
||||
.filter(
|
||||
(tab) => tab.pageLayoutId === layout.id && !isDefined(tab.deletedAt),
|
||||
)
|
||||
.sort((a, b) => (a.position ?? 0) - (b.position ?? 0));
|
||||
|
||||
const tabsWithWidgets: FlatPageLayoutTabWithWidgets[] = tabs.map((tab) => {
|
||||
@@ -39,7 +41,8 @@ export const reconstructFlatPageLayoutWithTabsAndWidgets = ({
|
||||
.filter(isDefined)
|
||||
.filter(
|
||||
(widget) =>
|
||||
getResolvedPageLayoutTabId(widget) === tab.id && widget.isActive,
|
||||
getResolvedPageLayoutTabId(widget) === tab.id &&
|
||||
!isDefined(widget.deletedAt),
|
||||
);
|
||||
|
||||
return {
|
||||
|
||||
+3
@@ -52,6 +52,9 @@ export class PageLayoutTabDTO {
|
||||
@Field()
|
||||
updatedAt: Date;
|
||||
|
||||
@Field(() => Boolean, { nullable: false })
|
||||
isActive: boolean;
|
||||
|
||||
@Field(() => Date, { nullable: true })
|
||||
deletedAt?: Date | null;
|
||||
|
||||
|
||||
+3
@@ -74,6 +74,9 @@ export class PageLayoutWidgetDTO {
|
||||
@Field()
|
||||
updatedAt: Date;
|
||||
|
||||
@Field(() => Boolean, { nullable: false })
|
||||
isActive: boolean;
|
||||
|
||||
@Field(() => Date, { nullable: true })
|
||||
deletedAt?: Date;
|
||||
|
||||
|
||||
-5
@@ -898,11 +898,6 @@ export class PageLayoutUpdateService {
|
||||
for (const widget of widgetsToUpdate) {
|
||||
if (!widget.isActive) {
|
||||
directlyRemovedWidgetIds.add(widget.id);
|
||||
const viewId = this.getViewIdFromFieldsWidget(widget);
|
||||
|
||||
if (isDefined(viewId)) {
|
||||
viewIdsToDelete.add(viewId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -32,6 +32,9 @@ export class ViewFieldGroupDTO {
|
||||
@Field()
|
||||
updatedAt: Date;
|
||||
|
||||
@Field(() => Boolean, { nullable: false })
|
||||
isActive: boolean;
|
||||
|
||||
@Field(() => Date, { nullable: true })
|
||||
deletedAt?: Date | null;
|
||||
|
||||
|
||||
+1
-6
@@ -349,12 +349,7 @@ export class ViewFieldGroupService {
|
||||
|
||||
return Object.values(flatViewFieldGroupMaps.byUniversalIdentifier)
|
||||
.filter(isDefined)
|
||||
.filter(
|
||||
(group) =>
|
||||
group.viewId === viewId &&
|
||||
group.isActive &&
|
||||
!isDefined(group.deletedAt),
|
||||
)
|
||||
.filter((group) => group.viewId === viewId && !isDefined(group.deletedAt))
|
||||
.map(fromFlatViewFieldGroupToViewFieldGroupDto)
|
||||
.sort((a, b) => a.position - b.position);
|
||||
}
|
||||
|
||||
@@ -48,6 +48,9 @@ export class ViewFieldDTO {
|
||||
@Field()
|
||||
updatedAt: Date;
|
||||
|
||||
@Field(() => Boolean, { nullable: false })
|
||||
isActive: boolean;
|
||||
|
||||
@Field(() => Date, { nullable: true })
|
||||
deletedAt?: Date | null;
|
||||
|
||||
|
||||
+2
-7
@@ -352,7 +352,7 @@ export class ViewFieldService {
|
||||
|
||||
return Object.values(flatViewFieldMaps.byUniversalIdentifier)
|
||||
.filter(isDefined)
|
||||
.filter((field) => field.isActive && !isDefined(field.deletedAt))
|
||||
.filter((field) => !isDefined(field.deletedAt))
|
||||
.map(fromFlatViewFieldToViewFieldDto)
|
||||
.sort((a, b) => a.position - b.position);
|
||||
}
|
||||
@@ -371,12 +371,7 @@ export class ViewFieldService {
|
||||
|
||||
return Object.values(flatViewFieldMaps.byUniversalIdentifier)
|
||||
.filter(isDefined)
|
||||
.filter(
|
||||
(field) =>
|
||||
field.viewId === viewId &&
|
||||
field.isActive &&
|
||||
!isDefined(field.deletedAt),
|
||||
)
|
||||
.filter((field) => field.viewId === viewId && !isDefined(field.deletedAt))
|
||||
.map(fromFlatViewFieldToViewFieldDto)
|
||||
.sort((a, b) => a.position - b.position);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user