Browse Source

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.
pull/24053/head
Mansur Besleney 3 months ago
parent
commit
df517e583f
  1. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml
  2. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml.cs
  3. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml
  4. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml.cs
  5. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/create.js
  6. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/update.js

5
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Create.cshtml

@ -64,7 +64,7 @@
<abp-select id="Layout" asp-for="ViewModel.LayoutName" asp-items="@LayoutConstants.GetLayoutsSelectList()" label="@L["SelectLayout"]"></abp-select>
<abp-select asp-for="ViewModel.Status" label="@L["Status"]"></abp-select>
<abp-input asp-for="@Model.ViewModel.Status" />
<abp-input asp-for="@Model.ViewModel.Content" />
@ -121,7 +121,8 @@
</form>
</abp-card-body>
<abp-card-footer>
<abp-button button-type="Primary" type="submit" text="@L["Submit"].Value" id="button-page-create" />
<abp-button button-type="Secondary" type="button" text="@L["SaveAsDraft"].Value" id="button-page-save-draft" />
<abp-button button-type="Primary" type="button" text="@L["Publish"].Value" id="button-page-publish" />
</abp-card-footer>
</abp-card>
<input hidden id="GeneratedWidgetText" />

1
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;
}
}

5
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/Update.cshtml

@ -69,7 +69,7 @@
<abp-select id="Layout" asp-for="ViewModel.LayoutName" asp-items="@LayoutConstants.GetLayoutsSelectList()" label="@L["SelectLayout"]"></abp-select>
<abp-select asp-for="ViewModel.Status" label="@L["Status"]"></abp-select>
<abp-input asp-for="@Model.ViewModel.Status" />
<abp-input asp-for="@Model.ViewModel.Content" />
@ -127,7 +127,8 @@
</form>
</abp-card-body>
<abp-card-footer>
<abp-button button-type="Primary" type="submit" text="@L["Submit"].Value" id="button-page-update" />
<abp-button button-type="Secondary" type="button" text="@L["SaveAsDraft"].Value" id="button-page-save-draft" />
<abp-button button-type="Primary" type="button" text="@L["Publish"].Value" id="button-page-publish" />
</abp-card-footer>
</abp-card>
<input hidden id="GeneratedWidgetText" />

1
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]

12
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();
});

12
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();
});

Loading…
Cancel
Save