From 01e1f09a3cf95f5a94519e6729c3146e3e61b554 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Thu, 11 Jul 2024 23:53:19 +0800 Subject: [PATCH] Split onClick callback code configurations --- common.props | 2 +- .../ProcessManagementWebUnifiedModule.cs | 4 +++- .../NotificationsOffcanvasWidget/Default.cshtml | 2 +- .../NotificationsOffcanvasWidget/Default.js | 2 +- .../Options/ProcessStateActionDefinition.cs | 17 ++++++++++++----- .../Processes/Process/Index.cshtml.cs | 2 +- .../Processes/Process/index.js | 2 +- 7 files changed, 20 insertions(+), 11 deletions(-) diff --git a/common.props b/common.props index 79133c4..1d2d877 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 1.0.0-preview.8 + 1.0.0-preview.9 $(NoWarn);CS1591;CS0436 module true diff --git a/host/EasyAbp.ProcessManagement.Web.Unified/ProcessManagementWebUnifiedModule.cs b/host/EasyAbp.ProcessManagement.Web.Unified/ProcessManagementWebUnifiedModule.cs index e31587d..cc83e44 100644 --- a/host/EasyAbp.ProcessManagement.Web.Unified/ProcessManagementWebUnifiedModule.cs +++ b/host/EasyAbp.ProcessManagement.Web.Unified/ProcessManagementWebUnifiedModule.cs @@ -139,12 +139,14 @@ public override void ConfigureServices(ServiceConfigurationContext context) { options.Actions.Add(new ProcessStateActionDefinition("FakeExport", "ExportFailed", new LocalizableString("Action:Retry"), - "abp.message.confirm(l('SureToRetry')).then(function(confirmed){if(confirmed){abp.notify.success(l('SuccessToRetry'),l('Success'));if(alertNode){var alert=new bootstrap.Alert(alertNode);alert.close();}}})", + "var l = abp.localization.getResource();abp.message.confirm(l('SureToRetry')).then(function(confirmed){if(confirmed){abp.notify.success(l('SuccessToRetry'),l('Success'));}});", + "var l = abp.localization.getResource();abp.message.confirm(l('SureToRetry')).then(function(confirmed){if(confirmed){abp.notify.success(l('SuccessToRetry'),l('Success'));var alert=new bootstrap.Alert(alertNode);alert.close();}})", "abp.auth.isGranted('Demo.Exporting.Retry')")); options.Actions.Add(new ProcessStateActionDefinition("FakeExport", "ExportFailed", new LocalizableString("Action:Ping"), "alert('Pong')", + "alert('Pong')", null)); }); diff --git a/src/EasyAbp.ProcessManagement.Web/Components/NotificationsOffcanvasWidget/Default.cshtml b/src/EasyAbp.ProcessManagement.Web/Components/NotificationsOffcanvasWidget/Default.cshtml index e50f050..3a60592 100644 --- a/src/EasyAbp.ProcessManagement.Web/Components/NotificationsOffcanvasWidget/Default.cshtml +++ b/src/EasyAbp.ProcessManagement.Web/Components/NotificationsOffcanvasWidget/Default.cshtml @@ -10,7 +10,7 @@ @{ var customActions = "[" + Options.Value.Actions.Select(x => - $"{{text:'{x.DisplayName.Localize(StringLocalizerFactory)}',action:function(data){{{x.OnClickCallbackCode}}},visible:function(data){{return data.processName==='{x.ProcessName}'&&data.stateName==='{x.StateName}'&&({x.VisibleCheckCode ?? "true"})}}}}") + $"{{text:'{x.DisplayName.Localize(StringLocalizerFactory)}',action:function(data){{{x.OffcanvasOnClickCallbackCode}}},visible:function(data){{return data.processName==='{x.ProcessName}'&&data.stateName==='{x.StateName}'&&({x.VisibleCheckCode ?? "true"})}}}}") .JoinAsString(",") + "]"; } ` + var actionBtn = `` actionBtns += actionBtn; } return $(` diff --git a/src/EasyAbp.ProcessManagement.Web/Options/ProcessStateActionDefinition.cs b/src/EasyAbp.ProcessManagement.Web/Options/ProcessStateActionDefinition.cs index 88663e1..d3ab73a 100644 --- a/src/EasyAbp.ProcessManagement.Web/Options/ProcessStateActionDefinition.cs +++ b/src/EasyAbp.ProcessManagement.Web/Options/ProcessStateActionDefinition.cs @@ -20,24 +20,31 @@ public class ProcessStateActionDefinition public ILocalizableString DisplayName { get; set; } = null!; /// - /// JS code that is executed when the action button is clicked. + /// JS code that is executed when the table action button is clicked. /// /// detailsModal.open({id: data.record.id}); - public string OnClickCallbackCode { get; set; } = null!; + public string TableOnClickCallbackCode { get; set; } = null!; + + /// + /// JS code that is executed when the offcanvas action button is clicked. + /// + /// detailsModal.open({id: data.id}); + public string OffcanvasOnClickCallbackCode { get; set; } = null!; /// /// JS code for the action visible check. Skip checking if null. /// - /// abp.auth.isGranted('MyPermissionName') + /// abp.auth.isGranted('MyPermissionName') && data.available public string? VisibleCheckCode { get; set; } public ProcessStateActionDefinition(string processName, string stateName, ILocalizableString displayName, - string onClickCallbackCode, string? visibleCheckCode) + string tableOnClickCallbackCode, string offcanvasOnClickCallbackCode, string? visibleCheckCode) { ProcessName = processName; StateName = stateName; DisplayName = displayName; - OnClickCallbackCode = onClickCallbackCode; + TableOnClickCallbackCode = tableOnClickCallbackCode; + OffcanvasOnClickCallbackCode = offcanvasOnClickCallbackCode; VisibleCheckCode = visibleCheckCode; } } \ No newline at end of file diff --git a/src/EasyAbp.ProcessManagement.Web/Pages/ProcessManagement/Processes/Process/Index.cshtml.cs b/src/EasyAbp.ProcessManagement.Web/Pages/ProcessManagement/Processes/Process/Index.cshtml.cs index 4c90826..7f20dbf 100644 --- a/src/EasyAbp.ProcessManagement.Web/Pages/ProcessManagement/Processes/Process/Index.cshtml.cs +++ b/src/EasyAbp.ProcessManagement.Web/Pages/ProcessManagement/Processes/Process/Index.cshtml.cs @@ -26,7 +26,7 @@ public virtual async Task OnGetAsync() } CustomActions = "[" + Options.Actions.Select(x => - $"{{text:'{x.DisplayName.Localize(StringLocalizerFactory)}',action:function(data){{{x.OnClickCallbackCode}}},visible:function(data){{return data.processName==='{x.ProcessName}'&&data.stateName==='{x.StateName}'&&({x.VisibleCheckCode ?? "true"})}}}}") + $"{{text:'{x.DisplayName.Localize(StringLocalizerFactory)}',action:function(data){{{x.TableOnClickCallbackCode}}},visible:function(data){{return data.processName==='{x.ProcessName}'&&data.stateName==='{x.StateName}'&&({x.VisibleCheckCode ?? "true"})}}}}") .JoinAsString(",") + "]"; await Task.CompletedTask; diff --git a/src/EasyAbp.ProcessManagement.Web/Pages/ProcessManagement/Processes/Process/index.js b/src/EasyAbp.ProcessManagement.Web/Pages/ProcessManagement/Processes/Process/index.js index 7340d30..35c3184 100644 --- a/src/EasyAbp.ProcessManagement.Web/Pages/ProcessManagement/Processes/Process/index.js +++ b/src/EasyAbp.ProcessManagement.Web/Pages/ProcessManagement/Processes/Process/index.js @@ -23,7 +23,7 @@ $(function () { var service = easyAbp.processManagement.processes.process; var detailsModal = new abp.ModalManager(abp.appPath + 'ProcessManagement/Processes/Process/DetailsModal'); -console.log(customActions) + var dataTable = $('#ProcessTable').DataTable(abp.libs.datatables.normalizeConfiguration({ processing: true, serverSide: true,