feat: adds showSaveDraftButton option to show draft button with autosave enabled (#12150)
This adds a new `showSaveDraftButton` option to the `versions.drafts.autosave` config for collections and globals. By default, the "Save as draft" button is hidden when autosave is enabled. This new option allows the button to remain visible for manual saves while autosave is active. Also updates the admin UI logic to conditionally render the button when this flag is set, and updates the documentation with an example usage.
This commit is contained in:
@@ -70,6 +70,7 @@ export interface Config {
|
||||
'disable-publish': DisablePublish;
|
||||
posts: Post;
|
||||
'autosave-posts': AutosavePost;
|
||||
'autosave-with-draft-button-posts': AutosaveWithDraftButtonPost;
|
||||
'autosave-with-validate-posts': AutosaveWithValidatePost;
|
||||
'draft-posts': DraftPost;
|
||||
'draft-with-max-posts': DraftWithMaxPost;
|
||||
@@ -91,6 +92,7 @@ export interface Config {
|
||||
'disable-publish': DisablePublishSelect<false> | DisablePublishSelect<true>;
|
||||
posts: PostsSelect<false> | PostsSelect<true>;
|
||||
'autosave-posts': AutosavePostsSelect<false> | AutosavePostsSelect<true>;
|
||||
'autosave-with-draft-button-posts': AutosaveWithDraftButtonPostsSelect<false> | AutosaveWithDraftButtonPostsSelect<true>;
|
||||
'autosave-with-validate-posts': AutosaveWithValidatePostsSelect<false> | AutosaveWithValidatePostsSelect<true>;
|
||||
'draft-posts': DraftPostsSelect<false> | DraftPostsSelect<true>;
|
||||
'draft-with-max-posts': DraftWithMaxPostsSelect<false> | DraftWithMaxPostsSelect<true>;
|
||||
@@ -112,6 +114,7 @@ export interface Config {
|
||||
};
|
||||
globals: {
|
||||
'autosave-global': AutosaveGlobal;
|
||||
'autosave-with-draft-button-global': AutosaveWithDraftButtonGlobal;
|
||||
'draft-global': DraftGlobal;
|
||||
'draft-with-max-global': DraftWithMaxGlobal;
|
||||
'disable-publish-global': DisablePublishGlobal;
|
||||
@@ -119,6 +122,7 @@ export interface Config {
|
||||
};
|
||||
globalsSelect: {
|
||||
'autosave-global': AutosaveGlobalSelect<false> | AutosaveGlobalSelect<true>;
|
||||
'autosave-with-draft-button-global': AutosaveWithDraftButtonGlobalSelect<false> | AutosaveWithDraftButtonGlobalSelect<true>;
|
||||
'draft-global': DraftGlobalSelect<false> | DraftGlobalSelect<true>;
|
||||
'draft-with-max-global': DraftWithMaxGlobalSelect<false> | DraftWithMaxGlobalSelect<true>;
|
||||
'disable-publish-global': DisablePublishGlobalSelect<false> | DisablePublishGlobalSelect<true>;
|
||||
@@ -228,6 +232,17 @@ export interface DraftPost {
|
||||
createdAt: string;
|
||||
_status?: ('draft' | 'published') | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "autosave-with-draft-button-posts".
|
||||
*/
|
||||
export interface AutosaveWithDraftButtonPost {
|
||||
id: string;
|
||||
title: string;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
_status?: ('draft' | 'published') | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "autosave-with-validate-posts".
|
||||
@@ -554,6 +569,10 @@ export interface PayloadLockedDocument {
|
||||
relationTo: 'autosave-posts';
|
||||
value: string | AutosavePost;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'autosave-with-draft-button-posts';
|
||||
value: string | AutosaveWithDraftButtonPost;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'autosave-with-validate-posts';
|
||||
value: string | AutosaveWithValidatePost;
|
||||
@@ -676,6 +695,16 @@ export interface AutosavePostsSelect<T extends boolean = true> {
|
||||
createdAt?: T;
|
||||
_status?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "autosave-with-draft-button-posts_select".
|
||||
*/
|
||||
export interface AutosaveWithDraftButtonPostsSelect<T extends boolean = true> {
|
||||
title?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
_status?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "autosave-with-validate-posts_select".
|
||||
@@ -973,6 +1002,17 @@ export interface AutosaveGlobal {
|
||||
updatedAt?: string | null;
|
||||
createdAt?: string | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "autosave-with-draft-button-global".
|
||||
*/
|
||||
export interface AutosaveWithDraftButtonGlobal {
|
||||
id: string;
|
||||
title: string;
|
||||
_status?: ('draft' | 'published') | null;
|
||||
updatedAt?: string | null;
|
||||
createdAt?: string | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "draft-global".
|
||||
@@ -1029,6 +1069,17 @@ export interface AutosaveGlobalSelect<T extends boolean = true> {
|
||||
createdAt?: T;
|
||||
globalType?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "autosave-with-draft-button-global_select".
|
||||
*/
|
||||
export interface AutosaveWithDraftButtonGlobalSelect<T extends boolean = true> {
|
||||
title?: T;
|
||||
_status?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
globalType?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "draft-global_select".
|
||||
@@ -1082,10 +1133,15 @@ export interface TaskSchedulePublish {
|
||||
input: {
|
||||
type?: ('publish' | 'unpublish') | null;
|
||||
locale?: string | null;
|
||||
doc?: {
|
||||
relationTo: 'draft-posts';
|
||||
value: string | DraftPost;
|
||||
} | null;
|
||||
doc?:
|
||||
| ({
|
||||
relationTo: 'autosave-posts';
|
||||
value: string | AutosavePost;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'draft-posts';
|
||||
value: string | DraftPost;
|
||||
} | null);
|
||||
global?: 'draft-global' | null;
|
||||
user?: (string | null) | User;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user