From df517e583fc311695de8166243e1f4e43a20c440 Mon Sep 17 00:00:00 2001 From: Mansur Besleney Date: Mon, 27 Oct 2025 14:11:06 +0300 Subject: [PATCH] Add Save as Draft and Publish actions to page forms Replaces the single submit button with separate 'Save as Draft' and 'Publish' buttons on both Create and Update page forms. Updates the status field handling and form submission logic in the corresponding JavaScript files. Marks the Status property as hidden input in the page models to support the new workflow. --- .../Pages/CmsKit/Pages/Create.cshtml | 5 +++-- .../Pages/CmsKit/Pages/Create.cshtml.cs | 1 + .../Pages/CmsKit/Pages/Update.cshtml | 5 +++-- .../Pages/CmsKit/Pages/Update.cshtml.cs | 1 + .../Pages/CmsKit/Pages/create.js | 12 ++++++++++-- .../Pages/CmsKit/Pages/update.js | 12 ++++++++++-- 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml index b66c914900..b609f83b8a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml @@ -64,7 +64,7 @@ - + @@ -121,7 +121,8 @@ - + + \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml.cs index cee5f5943b..86c855ca26 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml.cs @@ -57,6 +57,7 @@ public class CreateModel : CmsKitAdminPageModel [DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxStyleLength))] public string Style { get; set; } + [HiddenInput] public PageStatus Status { get; set; } = PageStatus.Draft; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml index 75e2064a92..7a825deb31 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml @@ -69,7 +69,7 @@ - + @@ -127,7 +127,8 @@ - + + \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml.cs index 9047eac293..09f431938f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml.cs @@ -69,6 +69,7 @@ public class UpdateModel : CmsKitAdminPageModel [DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxStyleLength))] public string Style { get; set; } + [HiddenInput] public PageStatus Status { get; set; } [HiddenInput] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js index 1b3ccea05f..ca7ab72cdc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js @@ -4,7 +4,8 @@ $(function () { var $createForm = $('#form-page-create'); var $title = $('#ViewModel_Title'); var $slug = $('#ViewModel_Slug'); - var $buttonSubmit = $('#button-page-create'); + var $buttonSaveDraft = $('#button-page-save-draft'); + var $buttonPublish = $('#button-page-publish'); var widgetModal = new abp.ModalManager({ viewUrl: abp.appPath + "CmsKit/Contents/AddWidgetModal", modalClass: "addWidgetModal" }); @@ -49,8 +50,15 @@ $(function () { } }); - $buttonSubmit.click(function (e) { + $buttonSaveDraft.click(function (e) { e.preventDefault(); + $('#ViewModel_Status').val(0); // Draft = 0 + $createForm.submit(); + }); + + $buttonPublish.click(function (e) { + e.preventDefault(); + $('#ViewModel_Status').val(1); // Published = 1 $createForm.submit(); }); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js index d75fb9bdda..a58e601135 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js @@ -3,7 +3,8 @@ $(function () { var l = abp.localization.getResource("CmsKit"); var $formUpdate = $('#form-page-update'); - var $buttonSubmit = $('#button-page-update'); + var $buttonSaveDraft = $('#button-page-save-draft'); + var $buttonPublish = $('#button-page-publish'); var widgetModal = new abp.ModalManager({ viewUrl: abp.appPath + "CmsKit/Contents/AddWidgetModal", modalClass: "addWidgetModal" }); $formUpdate.data('validator').settings.ignore = ":hidden, [contenteditable='true']:not([name]), .tui-popup-wrapper"; @@ -43,8 +44,15 @@ $(function () { } }); - $buttonSubmit.click(function (e) { + $buttonSaveDraft.click(function (e) { e.preventDefault(); + $('#ViewModel_Status').val(0); // Draft = 0 + $formUpdate.submit(); + }); + + $buttonPublish.click(function (e) { + e.preventDefault(); + $('#ViewModel_Status').val(1); // Published = 1 $formUpdate.submit(); });