[DASHBOARDS] Allow dashboards to be restored (#17042)

This PR introduces a few changes:
- Add three actions: see deleted dashboards, destroy dashboard and
restore dashboard
- Remove the soft delete and restore on all the page layout entities
- Cascade the destruction of a dashboard to a page layout

Video QA:


https://github.com/user-attachments/assets/ab993b11-dd9c-4e88-880c-92691a521cc2
This commit is contained in:
Raphaël Bosi
2026-01-12 13:59:17 +01:00
committed by GitHub
parent 3ada8e5168
commit 655f1eef5f
60 changed files with 1178 additions and 2067 deletions
@@ -1897,9 +1897,6 @@ export type Mutation = {
deleteOneRole: Scalars['String'];
deleteOneRouteTrigger: RouteTrigger;
deleteOneServerlessFunction: ServerlessFunction;
deletePageLayout: PageLayout;
deletePageLayoutTab: Scalars['Boolean'];
deletePageLayoutWidget: PageLayoutWidget;
deletePublicDomain: Scalars['Boolean'];
deleteRowLevelPermissionPredicate: RowLevelPermissionPredicate;
deleteRowLevelPermissionPredicateGroup: RowLevelPermissionPredicateGroup;
@@ -1945,9 +1942,6 @@ export type Mutation = {
renewToken: AuthTokens;
resendEmailVerificationToken: ResendEmailVerificationTokenOutput;
resendWorkspaceInvitation: SendInvitationsOutput;
restorePageLayout: PageLayout;
restorePageLayoutTab: PageLayoutTab;
restorePageLayoutWidget: PageLayoutWidget;
retryJobs: RetryJobsResponse;
revokeApiKey?: Maybe<ApiKey>;
runWorkflowVersion: RunWorkflowVersionOutput;
@@ -2352,21 +2346,6 @@ export type MutationDeleteOneServerlessFunctionArgs = {
};
export type MutationDeletePageLayoutArgs = {
id: Scalars['String'];
};
export type MutationDeletePageLayoutTabArgs = {
id: Scalars['String'];
};
export type MutationDeletePageLayoutWidgetArgs = {
id: Scalars['String'];
};
export type MutationDeletePublicDomainArgs = {
domain: Scalars['String'];
};
@@ -2576,21 +2555,6 @@ export type MutationResendWorkspaceInvitationArgs = {
};
export type MutationRestorePageLayoutArgs = {
id: Scalars['String'];
};
export type MutationRestorePageLayoutTabArgs = {
id: Scalars['String'];
};
export type MutationRestorePageLayoutWidgetArgs = {
id: Scalars['String'];
};
export type MutationRetryJobsArgs = {
jobIds: Array<Scalars['String']>;
queueName: Scalars['String'];