From 263ee2d21a6685d50d1e705c40415b2a6a1d1d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 17 Jul 2020 19:06:43 +0300 Subject: [PATCH] Implemented refresh on reaction widget. --- .../Controllers/CmsKitControllerBase.cs} | 6 ++--- .../Volo/CmsKit/CmsKitPublicControllerBase.cs | 8 ++++++ .../Reactions/ReactionPublicController.cs | 2 +- .../CmsKitPublicWidgetsController.cs | 15 +++++++++++ .../ReactionSelectionViewComponent.cs | 3 ++- .../Components/ReactionSelection/default.js | 27 +++++++++---------- 6 files changed, 42 insertions(+), 19 deletions(-) rename modules/cms-kit/src/{Volo.CmsKit.Public.HttpApi/Volo/CmsKit/CmsKitPublicController.cs => Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Controllers/CmsKitControllerBase.cs} (55%) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/CmsKitPublicControllerBase.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicWidgetsController.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/CmsKitPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Controllers/CmsKitControllerBase.cs similarity index 55% rename from modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/CmsKitPublicController.cs rename to modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Controllers/CmsKitControllerBase.cs index 75f38932f1..8938109b3b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/CmsKitPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Controllers/CmsKitControllerBase.cs @@ -1,11 +1,11 @@ using Volo.Abp.AspNetCore.Mvc; using Volo.CmsKit.Localization; -namespace Volo.CmsKit +namespace Volo.CmsKit.Controllers { - public abstract class CmsKitPublicController : AbpController + public class CmsKitControllerBase : AbpController { - protected CmsKitPublicController() + public CmsKitControllerBase() { LocalizationResource = typeof(CmsKitResource); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/CmsKitPublicControllerBase.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/CmsKitPublicControllerBase.cs new file mode 100644 index 0000000000..86c9f90eb3 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/CmsKitPublicControllerBase.cs @@ -0,0 +1,8 @@ +using Volo.CmsKit.Controllers; + +namespace Volo.CmsKit +{ + public abstract class CmsKitPublicControllerBase : CmsKitControllerBase + { + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Reactions/ReactionPublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Reactions/ReactionPublicController.cs index 4deb3796a3..2fead1398f 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Reactions/ReactionPublicController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Reactions/ReactionPublicController.cs @@ -8,7 +8,7 @@ namespace Volo.CmsKit.Reactions [RemoteService(Name = CmsKitPublicRemoteServiceConsts.RemoteServiceName)] [Area("cms-kit")] [Route("api/cms-kit-public/reactions")] - public class ReactionPublicController : CmsKitPublicController, IReactionPublicAppService + public class ReactionPublicController : CmsKitPublicControllerBase, IReactionPublicAppService { protected IReactionPublicAppService ReactionPublicAppService { get; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicWidgetsController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicWidgetsController.cs new file mode 100644 index 0000000000..83923eaf17 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Controllers/CmsKitPublicWidgetsController.cs @@ -0,0 +1,15 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; + +namespace Volo.CmsKit.Web.Controllers +{ + //TODO: Consider to move to an area, but also consider to not have the same prefix with API Controllers which can be problem in case of a tiered architecture + public class CmsKitPublicWidgetsController : CmsKitPublicControllerBase + { + public async Task ReactionSelection(string entityType, string entityId) + { + //TODO: Can we change "CmsReactionSelection" to typeof(ReactionSelectionViewComponent) + return ViewComponent("CmsReactionSelection", new {entityType, entityId}); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/ReactionSelectionViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/ReactionSelectionViewComponent.cs index efb4db779e..882baf51ed 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/ReactionSelectionViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/ReactionSelectionViewComponent.cs @@ -11,7 +11,8 @@ namespace Volo.CmsKit.Web.Pages.CmsKit.Shared.Components.ReactionSelection [ViewComponent(Name = "CmsReactionSelection")] [Widget( ScriptTypes = new[] {typeof(ReactionSelectionScriptBundleContributor)}, - StyleTypes = new[] {typeof(ReactionSelectionStyleBundleContributor)} + StyleTypes = new[] {typeof(ReactionSelectionStyleBundleContributor)}, + RefreshUrl = "/CmsKitPublicWidgets/ReactionSelection" )] public class ReactionSelectionViewComponent : AbpViewComponent { diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js index c7b31b1e1b..1e7f7a85d9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/ReactionSelection/default.js @@ -2,27 +2,27 @@ $(document).ready(function () { abp.widgets.CmsReactionSelection = function ($widget) { + var $reactionSelection = $widget.find('.cms-reaction-selection'); + var widgetManager = $widget.data('abp-widget-manager'); function getFilters() { - return {}; - } - - function refresh(filters) { - location.reload(); //TODO: JUST TESTING !!!!!!!! + return { + entityType: $reactionSelection.attr('data-entity-type'), + entityId: $reactionSelection.attr('data-entity-id') + }; } function init(filters) { - var $wrapper = $widget.find('.cms-reaction-selection'); $widget.find('.cms-reaction-icon').each(function () { var $icon = $(this); $icon.click(function () { var methodName = $icon.hasClass('cms-reaction-icon-selected') ? 'delete' : 'create'; - volo.cmsKit.reactions.reactionPublic[methodName]({ - entityType: $wrapper.attr('data-entity-type'), - entityId: $wrapper.attr('data-entity-id'), - reactionName: $icon.attr('data-name') - }).then(function () { - refresh(); + volo.cmsKit.reactions.reactionPublic[methodName]( + $.extend(getFilters(), { + reactionName: $icon.attr('data-name') + }) + ).then(function () { + widgetManager.refresh($widget); }); }); }); @@ -30,8 +30,7 @@ return { init: init, - refresh: refresh, - getFilters : getFilters + getFilters: getFilters }; };