diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelper.cs index 10923f25af..7f9c34fb7a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelper.cs @@ -9,7 +9,7 @@ public abstract class where TTagHelper : AbpDatePickerBaseTagHelper { - private readonly IAbpDatePickerOptions _abpDatePickerOptionsImplementation; + private IAbpDatePickerOptions _abpDatePickerOptionsImplementation; public string Label { get; set; } @@ -47,6 +47,11 @@ public abstract class { _abpDatePickerOptionsImplementation = new AbpDatePickerOptions(); } + + public void SetDatePickerOptions(IAbpDatePickerOptions options) + { + _abpDatePickerOptionsImplementation = options; + } public string PickerId { get => _abpDatePickerOptionsImplementation.PickerId; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs index c1ecc4b32d..3d7c857dbd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs @@ -84,6 +84,11 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp AddReadOnlyAttribute(TagHelperOutput); AddPlaceholderAttribute(TagHelperOutput); AddInfoTextId(TagHelperOutput); + var optionsAttribute = GetAttributeAndModelExpression(out var modelExpression); + if (optionsAttribute != null) + { + TagHelper.SetDatePickerOptions(optionsAttribute.GetDatePickerOptions(modelExpression.ModelExplorer)); + } // Open and close button var openButtonContent = TagHelper.OpenButton @@ -426,15 +431,6 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp attrList.Add(attr); } - var optionsAttribute = GetAttributeAndModelExpression(out var modelExpression); - if (optionsAttribute != null) - { - foreach (var attr in ConvertDatePickerOptionsToAttributeList(optionsAttribute.GetDatePickerOptions(modelExpression.ModelExplorer))) - { - attrList.Add(attr); - } - } - AddBaseTagAttributes(attrList); return attrList; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js index 8157778059..aec8582651 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js @@ -643,6 +643,7 @@ var momentEndDate = getMoment(endDate, options); if (momentStartDate.isValid()) { picker.setStartDate(momentStartDate); + picker.setEndDate(momentEndDate); } if (momentEndDate.isValid() && !singleDatePicker) { picker.setEndDate(momentEndDate); @@ -761,6 +762,7 @@ abp.dom.initializers.initializeForms(args.$el.findWithSelf('form'), true); abp.dom.initializers.initializeScript(args.$el); abp.dom.initializers.initializeAutocompleteSelects(args.$el.findWithSelf('.auto-complete-select')); + abp.dom.initializers.initializeDateRangePickers(args.$el); }); abp.dom.onNodeRemoved(function (args) { @@ -773,19 +775,16 @@ abp.libs.bootstrapDatepicker.normalizeLanguageConfig(); }); - abp.dom.initializers.initializeAll = function ($rootNode) { - abp.dom.initializers.initializeToolTips($rootNode.findWithSelf('[data-toggle="tooltip"]')); - abp.dom.initializers.initializePopovers($rootNode.findWithSelf('[data-toggle="popover"]')); - abp.dom.initializers.initializeTimeAgos($rootNode.findWithSelf('.timeago')); - abp.dom.initializers.initializeDatepickers($rootNode); - abp.dom.initializers.initializeDateRangePickers($rootNode); - abp.dom.initializers.initializeForms($rootNode.findWithSelf('form')); - abp.dom.initializers.initializeAutocompleteSelects($rootNode.findWithSelf('.auto-complete-select')); - $rootNode.findWithSelf('[data-auto-focus="true"]').first().findWithSelf('input,select').focus(); - }; $(function () { - abp.dom.initializers.initializeAll($(document)); + abp.dom.initializers.initializeToolTips($(document).findWithSelf('[data-toggle="tooltip"]')); + abp.dom.initializers.initializePopovers($(document).findWithSelf('[data-toggle="popover"]')); + abp.dom.initializers.initializeTimeAgos($(document).findWithSelf('.timeago')); + abp.dom.initializers.initializeDatepickers($(document)); + abp.dom.initializers.initializeDateRangePickers($(document)); + abp.dom.initializers.initializeForms($(document).findWithSelf('form')); + abp.dom.initializers.initializeAutocompleteSelects($(document).findWithSelf('.auto-complete-select')); + $(document).findWithSelf('[data-auto-focus="true"]').first().findWithSelf('input,select').focus(); }); })(jQuery); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js index 9a19869050..e524881176 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js @@ -66,7 +66,6 @@ $.validator.defaults.ignore = ''; //TODO: Would be better if we can apply only f } function _initAndShowModal() { - abp.dom.initializers.initializeAll(_$modalContainer); _$modal = _$modalContainer.find('.modal'); _$form = _$modalContainer.find('form'); if (_$form.length) {