From e204c4e13ad639727aa16f91df7bf3e74c0608bb Mon Sep 17 00:00:00 2001 From: Salih Date: Sun, 19 Feb 2023 18:12:36 +0300 Subject: [PATCH 01/89] Added AbpBaseTagHelper --- .../DatePicker/AbpDatePickerBaseTagHelper.cs | 147 ++++ .../AbpDatePickerBaseTagHelperService.cs | 643 ++++++++++++++++++ .../DatePicker/AbpDatePickerDrops.cs | 8 + .../DatePicker/AbpDatePickerOpens.cs | 8 + .../DatePicker/AbpDatePickerRange.cs | 47 ++ .../DatePicker/AbpDatePickerWeekNumbers.cs | 8 + 6 files changed, 861 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelper.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelperService.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerDrops.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerOpens.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerRange.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerWeekNumbers.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelper.cs new file mode 100644 index 0000000000..5fbe1a2c7e --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelper.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using JetBrains.Annotations; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; + +public abstract class + AbpDatePickerBaseTagHelper : AbpTagHelper> + where TTagHelper : AbpDatePickerBaseTagHelper + +{ + public string Label { get; set; } + + public string LabelTooltip { get; set; } + + public string LabelTooltipIcon { get; set; } = "bi-info-circle"; + + public string LabelTooltipPlacement { get; set; } = "right"; + + public bool LabelTooltipHtml { get; set; } = false; + + [HtmlAttributeName("info")] + public string InfoText { get; set; } + + [HtmlAttributeName("disabled")] + public bool IsDisabled { get; set; } = false; + + [HtmlAttributeName("readonly")] + public bool? IsReadonly { get; set; } = false; + + public bool AutoFocus { get; set; } + + [HtmlAttributeName("type")] + public string InputTypeName { get; set; } = "text"; + + public AbpFormControlSize Size { get; set; } = AbpFormControlSize.Default; + + [HtmlAttributeName("required-symbol")] + public bool DisplayRequiredSymbol { get; set; } = true; + + [HtmlAttributeName("asp-format")] + public string Format { get; set; } + + public string Name { get; set; } + + public string Value { get; set; } + + public bool SuppressLabel { get; set; } + + + // Min and Max date + public DateTime? MinDate { get; set; } + + public DateTime? MaxDate { get; set; } + + // Max span between start and end date + public object? MaxSpan { get; set; } + + // Show dropdowns + public bool ShowDropdowns { get; set; } = true; + + // Min and Max year + public int? MinYear { get; set; } + + public int? MaxYear { get; set; } + + // Show week numbers + public AbpDatePickerWeekNumbers WeekNumbers { get; set; } = AbpDatePickerWeekNumbers.None; + + // Time picker + public bool? TimePicker { get; set; } + + // Time picker increment + public int? TimePickerIncrement { get; set; } + + // Time picker 24 hour + public bool? TimePicker24Hour { get; set; } + + // Time picker seconds + public bool? TimePickerSeconds { get; set; } + + // Ranges object + public List Ranges { get; set; } + + // Show custom range label + public bool ShowCustomRangeLabel { get; set; } = true; + + // Always show calendar + public bool AlwaysShowCalendars { get; set; } = false; + + // Opens date picker on left or right or center of the input + public AbpDatePickerOpens Opens { get; set; } = AbpDatePickerOpens.Center; + + // Drops down or up or auto + public AbpDatePickerDrops Drops { get; set; } = AbpDatePickerDrops.Down; + + // Button classes + [CanBeNull] + public string ButtonClasses { get; set; } + + // Apply class to all buttons + [CanBeNull] + public string ApplyButtonClasses { get; set; } + + // Cancel class to all buttons + [CanBeNull] + public string CancelButtonClasses { get; set; } + + // Locale + [CanBeNull] + public object Locale { get; set; } + + // Auto apply + public bool AutoApply { get; set; } = true; + + // Linked calendars + public bool? LinkedCalendars { get; set; } + + // Auto update input + public bool AutoUpdateInput { get; set; } = false; + + // Parent element + [CanBeNull] + public string ParentEl { get; set; } + + // public DatePickerType Type { get; set; } = DatePickerType.Date; + + [CanBeNull] + public string DateFormat { get; set; } + + public bool OpenButton { get; set; } = true; + + public bool ClearButton { get; set; } = true; + + public bool IsUtc { get; set; } = false; + + public bool IsIso { get; set; } = false; + + [CanBeNull] + public object Options { get; set; } + + protected AbpDatePickerBaseTagHelper(AbpDatePickerBaseTagHelperService service) : base(service) + { + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelperService.cs new file mode 100644 index 0000000000..d3a0026759 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelperService.cs @@ -0,0 +1,643 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Localization.Resources.AbpUi; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.AspNetCore.Mvc.TagHelpers; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Localization; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; +using Volo.Abp.Json; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; + +public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelperService + where TTagHelper : AbpDatePickerBaseTagHelper +{ + protected readonly Dictionary> SupportedInputTypes = new() { + {typeof(string), o => DateTime.Parse((string)o).ToString("O")}, + {typeof(DateTime), o => ((DateTime) o).ToString("O")}, + {typeof(DateTime?), o => ((DateTime?) o)?.ToString("O")}, + {typeof(DateTimeOffset), o => ((DateTimeOffset) o).ToString("O")}, + {typeof(DateTimeOffset?), o => ((DateTimeOffset?) o)?.ToString("O")} + }; + + protected readonly IJsonSerializer JsonSerializer; + protected readonly IHtmlGenerator Generator; + protected readonly HtmlEncoder Encoder; + protected readonly IServiceProvider ServiceProvider; + protected readonly IAbpTagHelperLocalizer TagHelperLocalizer; + protected virtual string TagName { get; set; } = "abp-date-picker"; + protected IStringLocalizer L { get; } + protected InputTagHelper InputTagHelper { get; set; } + protected abstract TagHelperOutput TagHelperOutput { get; set; } + + protected AbpDatePickerBaseTagHelperService(IJsonSerializer jsonSerializer, IHtmlGenerator generator, + HtmlEncoder encoder, IServiceProvider serviceProvider, IStringLocalizer l, + IAbpTagHelperLocalizer tagHelperLocalizer) + { + JsonSerializer = jsonSerializer; + Generator = generator; + Encoder = encoder; + ServiceProvider = serviceProvider; + L = l; + TagHelperLocalizer = tagHelperLocalizer; + + InputTagHelper = new InputTagHelper(Generator) { InputTypeName = "text" }; + } + + protected virtual T GetAttribute() where T : Attribute + { + return GetAttributeAndModelExpression(out _); + } + + protected abstract T GetAttributeAndModelExpression(out ModelExpression modelExpression) where T : Attribute; + + + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + { + TagHelperOutput = new TagHelperOutput("input", GetInputAttributes(context, output), (_, _) => Task.FromResult(new DefaultTagHelperContent())); + + InputTagHelper.ViewContext = TagHelper.ViewContext; + + if (!TagHelper.Name.IsNullOrEmpty()) + { + InputTagHelper.Name = TagHelper.Name; + } + + if (!TagHelper.Value.IsNullOrEmpty()) + { + InputTagHelper.Value = TagHelper.Value; + } + + AddDisabledAttribute(TagHelperOutput); + AddAutoFocusAttribute(TagHelperOutput); + AddFormControls(context, output, TagHelperOutput); + AddPlaceholderAttribute(TagHelperOutput); + AddInfoTextId(TagHelperOutput); + + // Open and close button + var openButtonContent = TagHelper.OpenButton + ? await ProcessButtonAndGetContentAsync(context, output, "calendar", "open") + : ""; + var clearButtonContent = TagHelper.ClearButton + ? await ProcessButtonAndGetContentAsync(context, output, "times", "clear") + : ""; + + var labelContent = TagHelper.SuppressLabel ? "" : await GetLabelAsHtmlAsync(context, output, TagHelperOutput); + var infoContent = GetInfoAsHtml(context, output, TagHelperOutput); + var validationContent = await GetValidationAsHtmlAsync(context, output); + + var inputGroup = new TagHelperOutput("div", + new TagHelperAttributeList(new[] { new TagHelperAttribute("class", "input-group") }), + (_, _) => Task.FromResult(new DefaultTagHelperContent())); + inputGroup.Content.AppendHtml( + TagHelperOutput.Render(Encoder) + openButtonContent + clearButtonContent + infoContent + ); + + var abpDatePickerTag = new TagHelperOutput(TagName, GetBaseTagAttributes(context, output), + (_, _) => Task.FromResult(new DefaultTagHelperContent())); + abpDatePickerTag.Content.AppendHtml(inputGroup.Render(Encoder)); + abpDatePickerTag.Content.AppendHtml(validationContent); + abpDatePickerTag.Content.AppendHtml(GetExtraInputHtml(context, output)); + + var innerHtml = labelContent + abpDatePickerTag.Render(Encoder); + + var order = GetOrder(); + + AddGroupToFormGroupContents( + context, + GetPropertyName(), + SurroundInnerHtmlAndGet(context, output, innerHtml), + order + ); + + + output.TagMode = TagMode.StartTagAndEndTag; + output.TagName = "div"; + LeaveOnlyGroupAttributes(context, output); + output.Attributes.AddClass("mb-3"); + + output.Content.AppendHtml(innerHtml); + } + + protected virtual TagHelperAttributeList GetInputAttributes(TagHelperContext context, TagHelperOutput output) + { + var groupPrefix = "group-"; + + var tagHelperAttributes = output.Attributes.Where(a => !a.Name.StartsWith(groupPrefix)).ToList(); + + var attrList = new TagHelperAttributeList(); + + foreach (var tagHelperAttribute in tagHelperAttributes) + { + attrList.Add(tagHelperAttribute); + } + + attrList.Add("type", "text"); + + if (attrList.ContainsName("value")) + { + attrList.Remove(attrList.First(a => a.Name == "value")); + } + + if (!TagHelper.Name.IsNullOrEmpty() && !attrList.ContainsName("name")) + { + attrList.Add("name", TagHelper.Name); + } + + if (!attrList.ContainsName("autocomplete")) + { + attrList.Add("autocomplete", "off"); + } + + return attrList; + } + protected virtual void LeaveOnlyGroupAttributes(TagHelperContext context, TagHelperOutput output) + { + var groupPrefix = "group-"; + var tagHelperAttributes = output.Attributes.Where(a => a.Name.StartsWith(groupPrefix)).ToList(); + + output.Attributes.Clear(); + + foreach (var tagHelperAttribute in tagHelperAttributes) + { + var nameWithoutPrefix = tagHelperAttribute.Name.Substring(groupPrefix.Length); + var newAttribute = new TagHelperAttribute(nameWithoutPrefix, tagHelperAttribute.Value); + output.Attributes.Add(newAttribute); + } + } + + protected virtual string SurroundInnerHtmlAndGet(TagHelperContext context, TagHelperOutput output, string innerHtml) + { + return "
" + + Environment.NewLine + innerHtml + Environment.NewLine + + "
"; + } + + protected abstract string GetPropertyName(); + + protected virtual void AddGroupToFormGroupContents(TagHelperContext context, string propertyName, string html, + int order) + { + var list = context.GetValue>(FormGroupContents) ?? new List(); + + if (!list.Any(igc => igc.HtmlContent.Contains("id=\"" + propertyName.Replace('.', '_') + "\""))) + { + list.Add(new FormGroupItem { HtmlContent = html, Order = order, PropertyName = propertyName }); + } + } + + protected abstract int GetOrder(); + protected abstract void AddBaseTagAttributes(TagHelperAttributeList attributes); + + protected virtual string GetExtraInputHtml(TagHelperContext context, TagHelperOutput output) + { + return string.Empty; + } + + protected TagHelperAttributeList GetBaseTagAttributes(TagHelperContext context, TagHelperOutput output) + { + var groupPrefix = "group-"; + + var tagHelperAttributes = output.Attributes.Where(a => !a.Name.StartsWith(groupPrefix)).ToList(); + + var attrList = new TagHelperAttributeList(); + + foreach (var tagHelperAttribute in tagHelperAttributes) + { + attrList.Add(tagHelperAttribute); + } + + if (attrList.ContainsName("type")) + { + attrList.Remove(attrList.First(a => a.Name == "type")); + } + + if (attrList.ContainsName("name")) + { + attrList.Remove(attrList.First(a => a.Name == "name")); + } + + if (attrList.ContainsName("id")) + { + attrList.Remove(attrList.First(a => a.Name == "id")); + } + + if (attrList.ContainsName("value")) + { + attrList.Remove(attrList.First(a => a.Name == "value")); + } + + if (TagHelper.Locale != null) + { + attrList.Add("data-locale", JsonSerializer.Serialize(TagHelper.Locale)); + } + + if (TagHelper.MinDate != null) + { + attrList.Add("data-min-date", TagHelper.MinDate); + } + + if (TagHelper.MaxDate != null) + { + attrList.Add("data-max-date", TagHelper.MaxDate); + } + + if (TagHelper.MaxSpan != null) + { + attrList.Add("data-max-span", JsonSerializer.Serialize(TagHelper.MaxSpan)); + } + + if (TagHelper.ShowDropdowns == false) + { + attrList.Add("data-show-dropdowns", TagHelper.ShowDropdowns.ToString().ToLowerInvariant()); + } + + if (TagHelper.MinYear != null) + { + attrList.Add("data-min-year", TagHelper.MinYear); + } + + if (TagHelper.MaxYear != null) + { + attrList.Add("data-max-year", TagHelper.MaxYear); + } + + switch (TagHelper.WeekNumbers) + { + case AbpDatePickerWeekNumbers.Normal: + attrList.Add("data-show-week-numbers", "true"); + break; + case AbpDatePickerWeekNumbers.Iso: + attrList.Add("data-show-iso-week-numbers", "true"); + break; + } + + if (TagHelper.TimePicker != null) + { + attrList.Add("data-time-picker", TagHelper.TimePicker.ToString().ToLowerInvariant()); + } + + if (TagHelper.TimePickerIncrement != null) + { + attrList.Add("data-time-picker-increment", TagHelper.TimePickerIncrement); + } + + if (TagHelper.TimePicker24Hour != null) + { + attrList.Add("data-time-picker24-hour", TagHelper.TimePicker24Hour.ToString().ToLowerInvariant()); + } + + if (TagHelper.TimePickerSeconds != null) + { + attrList.Add("data-time-picker-seconds", TagHelper.TimePickerSeconds.ToString().ToLowerInvariant()); + } + + if (TagHelper.Opens != AbpDatePickerOpens.Center) + { + attrList.Add("data-opens", TagHelper.Opens.ToString().ToLowerInvariant()); + } + + if (TagHelper.Drops != AbpDatePickerDrops.Down) + { + attrList.Add("data-drops", TagHelper.Drops.ToString().ToLowerInvariant()); + } + + if (!TagHelper.ButtonClasses.IsNullOrEmpty()) + { + attrList.Add("data-button-classes", TagHelper.ButtonClasses); + } + + if (!TagHelper.ApplyButtonClasses.IsNullOrEmpty()) + { + attrList.Add("data-apply-button-classes", TagHelper.ApplyButtonClasses); + } + + if (!TagHelper.CancelButtonClasses.IsNullOrEmpty()) + { + attrList.Add("data-cancel-button-classes", TagHelper.CancelButtonClasses); + } + + if (!TagHelper.AutoApply) + { + attrList.Add("data-auto-apply", TagHelper.AutoApply.ToString().ToLowerInvariant()); + } + + if (TagHelper.LinkedCalendars != null) + { + attrList.Add("data-linked-calendars", TagHelper.LinkedCalendars.ToString().ToLowerInvariant()); + } + + if (TagHelper.AutoUpdateInput) + { + attrList.Add("data-auto-update-input", TagHelper.AutoUpdateInput.ToString().ToLowerInvariant()); + } + + if (!TagHelper.ParentEl.IsNullOrEmpty()) + { + attrList.Add("data-parent-el", TagHelper.ParentEl); + } + + if (!TagHelper.DateFormat.IsNullOrEmpty()) + { + attrList.Add("data-date-format", TagHelper.DateFormat); + } + + if(TagHelper.Ranges != null && TagHelper.Ranges.Any()) + { + var ranges = TagHelper.Ranges.ToDictionary(r => r.Label, r => r.Dates); + + attrList.Add("data-ranges", JsonSerializer.Serialize(ranges)); + } + + if(TagHelper.AlwaysShowCalendars) + { + attrList.Add("data-always-show-calendars", TagHelper.AlwaysShowCalendars.ToString().ToLowerInvariant()); + } + + if(TagHelper.ShowCustomRangeLabel == false) + { + attrList.Add("data-show-custom-range-label", TagHelper.ShowCustomRangeLabel.ToString().ToLowerInvariant()); + } + + if(TagHelper.Options != null) + { + attrList.Add("data-options", JsonSerializer.Serialize(TagHelper.Options)); + } + + if (TagHelper.IsUtc) + { + attrList.Add("data-is-utc", "true"); + } + + if (TagHelper.IsIso) + { + attrList.Add("data-is-iso", TagHelper.IsIso.ToString().ToLowerInvariant()); + } + + AddBaseTagAttributes(attrList); + + return attrList; + } + + protected virtual bool IsOutputHidden(TagHelperOutput inputTag) + { + return inputTag.Attributes.Any(a => + a.Name.ToLowerInvariant() == "type" && a.Value?.ToString()?.ToLowerInvariant() == "hidden"); + } + + protected virtual string GetInfoAsHtml(TagHelperContext context, TagHelperOutput output, TagHelperOutput inputTag) + { + if (IsOutputHidden(inputTag)) + { + return string.Empty; + } + + string text; + ModelExplorer modelExplorer = null; + + if (!string.IsNullOrEmpty(TagHelper.InfoText)) + { + text = TagHelper.InfoText; + } + else + { + var infoAttribute = GetAttributeAndModelExpression(out var modelExpression); + if (infoAttribute != null) + { + modelExplorer = modelExpression.ModelExplorer; + text = infoAttribute.Text; + } + else + { + return string.Empty; + } + } + + var idAttr = inputTag.Attributes.FirstOrDefault(a => a.Name == "id"); + var localizedText = TagHelperLocalizer.GetLocalizedText(text, modelExplorer); + + var div = new TagBuilder("div"); + div.Attributes.Add("id", idAttr?.Value + "InfoText"); + div.AddCssClass("form-text"); + div.InnerHtml.Append(localizedText); + + inputTag.Attributes.Add("aria-describedby", idAttr?.Value + "InfoText"); + + return div.ToHtmlString(); + } + + protected virtual async Task GetLabelAsHtmlAsync(TagHelperContext context, TagHelperOutput output, + TagHelperOutput inputTag) + { + if (string.IsNullOrEmpty(TagHelper.Label)) + { + return await GetLabelAsHtmlUsingTagHelperAsync(context, output) + GetRequiredSymbol(context, output); + } + + var label = new TagBuilder("label"); + label.Attributes.Add("for", GetIdAttributeValue(inputTag)); + label.InnerHtml.AppendHtml(TagHelper.Label); + + label.AddCssClass("form-label"); + + if (!TagHelper.LabelTooltip.IsNullOrEmpty()) + { + label.Attributes.Add("data-bs-toggle", "tooltip"); + label.Attributes.Add("data-bs-placement", TagHelper.LabelTooltipPlacement); + if (TagHelper.LabelTooltipHtml) + { + label.Attributes.Add("data-bs-html", "true"); + } + + label.Attributes.Add("title", TagHelper.LabelTooltip); + label.InnerHtml.AppendHtml($" "); + } + + return label.ToHtmlString(); + } + + protected virtual string GetIdAttributeValue(TagHelperOutput inputTag) + { + var idAttr = inputTag.Attributes.FirstOrDefault(a => a.Name == "id"); + + return idAttr != null ? idAttr.Value.ToString() : string.Empty; + } + + protected virtual string GetRequiredSymbol(TagHelperContext context, TagHelperOutput output) + { + if (!TagHelper.DisplayRequiredSymbol) + { + return ""; + } + + return GetAttribute() != null ? " * " : ""; + } + + protected abstract ModelExpression GetModelExpression(); + + protected virtual async Task GetLabelAsHtmlUsingTagHelperAsync(TagHelperContext context, + TagHelperOutput output) + { + var labelTagHelper = new LabelTagHelper(Generator) { + ViewContext = TagHelper.ViewContext, + For = GetModelExpression() + }; + + var attributeList = new TagHelperAttributeList(); + + attributeList.AddClass("form-label"); + + if (!TagHelper.LabelTooltip.IsNullOrEmpty()) + { + attributeList.Add("data-bs-toggle", "tooltip"); + attributeList.Add("data-bs-placement", TagHelper.LabelTooltipPlacement); + if (TagHelper.LabelTooltipHtml) + { + attributeList.Add("data-bs-html", "true"); + } + + attributeList.Add("title", TagHelper.LabelTooltip); + } + + var innerOutput = + await labelTagHelper.ProcessAndGetOutputAsync(attributeList, context, "label", TagMode.StartTagAndEndTag); + if (!TagHelper.LabelTooltip.IsNullOrEmpty()) + { + innerOutput.Content.AppendHtml($" "); + } + + return innerOutput.Render(Encoder); + } + + protected virtual async Task ProcessButtonAndGetContentAsync(TagHelperContext context, + TagHelperOutput output, string icon, string type) + { + var abpButtonTagHelper = ServiceProvider.GetRequiredService(); + var attributes = + new TagHelperAttributeList { new("type", "button"), new("tabindex", "-1"), new("data-type", type) }; + abpButtonTagHelper.ButtonType = AbpButtonType.Outline_Secondary; + abpButtonTagHelper.Icon = icon; + + return await abpButtonTagHelper.RenderAsync(attributes, context, Encoder, "button", TagMode.StartTagAndEndTag); + } + + protected virtual void AddInfoTextId(TagHelperOutput inputTagHelperOutput) + { + if (GetAttribute() == null) + { + return; + } + + var idAttr = inputTagHelperOutput.Attributes.FirstOrDefault(a => a.Name == "id"); + + if (idAttr == null) + { + return; + } + + inputTagHelperOutput.Attributes.Add("aria-describedby", GetInfoText()); + } + + public virtual string GetInfoText() + { + var infoAttribute = GetAttributeAndModelExpression(out var modelExpression); + + if (infoAttribute != null) + { + return TagHelperLocalizer.GetLocalizedText(infoAttribute.Text, modelExpression.ModelExplorer); + } + + return string.Empty; + } + + protected virtual void AddPlaceholderAttribute(TagHelperOutput inputTagHelperOutput) + { + if (inputTagHelperOutput.Attributes.ContainsName("placeholder")) + { + return; + } + + var attribute = GetAttributeAndModelExpression(out var modelExpression); + + if (attribute != null) + { + var placeholderLocalized = + TagHelperLocalizer.GetLocalizedText(attribute.Value, modelExpression.ModelExplorer); + + inputTagHelperOutput.Attributes.Add("placeholder", placeholderLocalized); + } + } + + protected virtual void AddFormControls(TagHelperContext context, TagHelperOutput output, + TagHelperOutput inputTagHelperOutput) + { + inputTagHelperOutput.Attributes.AddClass("form-control"); + var size = GetSize(context, output); + if (!size.IsNullOrEmpty()) + { + inputTagHelperOutput.Attributes.AddClass(size); + } + } + + protected virtual void AddAutoFocusAttribute(TagHelperOutput inputTagHelperOutput) + { + if (TagHelper.AutoFocus && !inputTagHelperOutput.Attributes.ContainsName("data-auto-focus")) + { + inputTagHelperOutput.Attributes.Add("data-auto-focus", "true"); + } + } + + protected virtual void AddDisabledAttribute(TagHelperOutput inputTagHelperOutput) + { + if (inputTagHelperOutput.Attributes.ContainsName("disabled") == false && + (TagHelper.IsDisabled || GetAttribute() != null)) + { + inputTagHelperOutput.Attributes.Add("disabled", ""); + } + } + + + protected virtual string GetSize(TagHelperContext context, TagHelperOutput output) + { + // TODO: Test this method + var attribute = GetAttribute(); + + if (attribute != null) + { + TagHelper.Size = attribute.Size; + } + + return TagHelper.Size switch { + AbpFormControlSize.Small => "form-control-sm", + AbpFormControlSize.Medium => "form-control-md", + AbpFormControlSize.Large => "form-control-lg", + _ => "" + }; + } + + protected abstract Task GetValidationAsHtmlAsync(TagHelperContext context, TagHelperOutput output); + + protected virtual async Task GetValidationAsHtmlByInputAsync(TagHelperContext context, + TagHelperOutput output, + [NotNull]InputTagHelper inputTag) + { + var validationMessageTagHelper = + new ValidationMessageTagHelper(Generator) { For = inputTag.For, ViewContext = TagHelper.ViewContext }; + + var attributeList = new TagHelperAttributeList { { "class", "text-danger col-auto" } }; + + return await validationMessageTagHelper.RenderAsync(attributeList, context, Encoder, "span", + TagMode.StartTagAndEndTag); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerDrops.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerDrops.cs new file mode 100644 index 0000000000..72e2e663ca --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerDrops.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; + +public enum AbpDatePickerDrops +{ + Down, + Up, + Auto +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerOpens.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerOpens.cs new file mode 100644 index 0000000000..f499f9ce51 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerOpens.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; + +public enum AbpDatePickerOpens +{ + Left, + Right, + Center +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerRange.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerRange.cs new file mode 100644 index 0000000000..8643668283 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerRange.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; + +public class AbpDatePickerRange +{ + private readonly List _dates = new List(); + public string Label { get; set; } + public IReadOnlyList Dates => _dates; + + public void AddDate(string date) + { + _dates.Add(DateTime.Parse(date).ToString("O")); + } + + public void AddDate(DateTime date) + { + _dates.Add(date.ToString("O")); + } + + public void AddDate(DateTimeOffset date) + { + _dates.Add(date.ToString("O")); + } + + public void AddDate(DateTime? date) + { + if (date.HasValue) + { + _dates.Add(date.Value.ToString("O")); + } + } + + public void AddDate(DateTimeOffset? date) + { + if (date.HasValue) + { + _dates.Add(date.Value.ToString("O")); + } + } + + public void AddDate(string date, string format) + { + _dates.Add(DateTime.ParseExact(date, format, null).ToString("O")); + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerWeekNumbers.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerWeekNumbers.cs new file mode 100644 index 0000000000..e328f89205 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerWeekNumbers.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; + +public enum AbpDatePickerWeekNumbers +{ + None, + Normal, + Iso +} \ No newline at end of file From d7d4c0cc3ca41729db0120dbd8d84180d21ac92e Mon Sep 17 00:00:00 2001 From: Salih Date: Sun, 19 Feb 2023 18:12:58 +0300 Subject: [PATCH 02/89] Create AbpDateRangePicker.cs --- .../DatePicker/AbpDateRangePicker.cs | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDateRangePicker.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDateRangePicker.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDateRangePicker.cs new file mode 100644 index 0000000000..9f88e2f5a3 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDateRangePicker.cs @@ -0,0 +1,146 @@ +using System; +using System.Linq; +using System.Text; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Localization.Resources.AbpUi; +using Microsoft.AspNetCore.Mvc.TagHelpers; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.Localization; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions; +using Volo.Abp.Json; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; + +[HtmlTargetElement("abp-date-range-picker", TagStructure = TagStructure.NormalOrSelfClosing)] +public class AbpDateRangePickerTagHelper : AbpDatePickerBaseTagHelper +{ + // Start date + [CanBeNull] + public ModelExpression AspForStart { get; set; } + + // End date + [CanBeNull] + public ModelExpression AspForEnd { get; set; } + + public AbpDateRangePickerTagHelper(AbpDateRangePickerTagHelperService tagHelperService) : base(tagHelperService) + { + } +} + +public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperService +{ + public AbpDateRangePickerTagHelperService(IJsonSerializer jsonSerializer, IHtmlGenerator generator, + HtmlEncoder encoder, IServiceProvider serviceProvider, IStringLocalizer l, + IAbpTagHelperLocalizer tagHelperLocalizer) : base(jsonSerializer, generator, encoder, serviceProvider, l, + tagHelperLocalizer) + { + } + + protected override string TagName { get; set; } = "abp-date-range-picker"; + + protected override T GetAttributeAndModelExpression(out ModelExpression modelExpression) + { + modelExpression = + new[] { TagHelper.AspForStart, TagHelper.AspForEnd }.FirstOrDefault(x => + x?.ModelExplorer?.GetAttribute() != null); + return modelExpression?.ModelExplorer.GetAttribute(); + } + + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + { + + if (TagHelper.AspForStart != null) + { + var startDateAttributes = + new TagHelperAttributeList { { "data-start-date", "true" }, { "type", "hidden" } }; + StartDateTagHelper = new InputTagHelper(Generator) { + ViewContext = TagHelper.ViewContext, For = TagHelper.AspForStart, InputTypeName = "hidden" + }; + + StartDateTagHelperOutput = + await StartDateTagHelper.ProcessAndGetOutputAsync(startDateAttributes, context, "input"); + } + + if (TagHelper.AspForEnd != null) + { + var endDateAttributes = new TagHelperAttributeList { { "data-end-date", "true" }, { "type", "hidden" } }; + EndDateTagHelper = new InputTagHelper(Generator) { + ViewContext = TagHelper.ViewContext, For = TagHelper.AspForEnd,InputTypeName = "hidden" + }; + + EndDateTagHelperOutput = + await EndDateTagHelper.ProcessAndGetOutputAsync(endDateAttributes, context, "input"); + } + + await base.ProcessAsync(context, output); + } + + protected override TagHelperOutput TagHelperOutput { get; set; } + + [CanBeNull] + protected virtual InputTagHelper StartDateTagHelper { get; set; } + + [CanBeNull] + protected virtual TagHelperOutput StartDateTagHelperOutput { get; set; } + + [CanBeNull] + protected virtual InputTagHelper EndDateTagHelper { get; set; } + + [CanBeNull] + protected virtual TagHelperOutput EndDateTagHelperOutput { get; set; } + + protected override string GetPropertyName() + { + return TagHelper.AspForStart?.Name ?? string.Empty; + } + + protected override int GetOrder() + { + return TagHelper.Order; + } + + protected override void AddBaseTagAttributes(TagHelperAttributeList attributes) + { + if (TagHelper.AspForStart != null && TagHelper.AspForStart.Model != null && + SupportedInputTypes.TryGetValue(TagHelper.AspForStart.Metadata.ModelType, out var convertFuncStart)) + { + attributes.Add("data-start-date", convertFuncStart(TagHelper.AspForStart.Model)); + } + + if (TagHelper.AspForEnd != null && TagHelper.AspForEnd.Model != null && + SupportedInputTypes.TryGetValue(TagHelper.AspForEnd.Metadata.ModelType, out var convertFuncEnd)) + { + attributes.Add("data-end-date", convertFuncEnd(TagHelper.AspForEnd.Model)); + } + } + + protected override string GetExtraInputHtml(TagHelperContext context, TagHelperOutput output) + { + return StartDateTagHelperOutput?.Render(Encoder) + EndDateTagHelperOutput?.Render(Encoder); + } + + protected override ModelExpression GetModelExpression() + { + return TagHelper.AspForStart; + } + + protected async override Task GetValidationAsHtmlAsync(TagHelperContext context, TagHelperOutput output) + { + var validationHtml = string.Empty; + + if (StartDateTagHelper != null) + { + validationHtml += await GetValidationAsHtmlByInputAsync(context, output, StartDateTagHelper); + } + + if (EndDateTagHelper != null) + { + validationHtml += await GetValidationAsHtmlByInputAsync(context, output, EndDateTagHelper); + } + + return validationHtml; + } +} \ No newline at end of file From c4b9c1c2366167dcba6fe52923704e38353c2c24 Mon Sep 17 00:00:00 2001 From: Salih Date: Sun, 19 Feb 2023 18:13:01 +0300 Subject: [PATCH 03/89] Create AbpDatePickerTag.cs --- .../TagHelpers/DatePicker/AbpDatePickerTag.cs | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerTag.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerTag.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerTag.cs new file mode 100644 index 0000000000..a368037451 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerTag.cs @@ -0,0 +1,96 @@ +using System; +using System.Text.Encodings.Web; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Localization.Resources.AbpUi; +using Microsoft.AspNetCore.Mvc.TagHelpers; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Razor.TagHelpers; +using Microsoft.Extensions.Localization; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions; +using Volo.Abp.Json; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; + +[HtmlTargetElement("abp-date-picker", TagStructure = TagStructure.NormalOrSelfClosing)] +public class AbpDatePickerTagHelper : AbpDatePickerBaseTagHelper +{ + [CanBeNull] + public ModelExpression AspFor { get; set; } + + public AbpDatePickerTagHelper(AbpDatePickerTagHelperService service) : base(service) + { + } +} + + + +public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService +{ + public AbpDatePickerTagHelperService(IJsonSerializer jsonSerializer, IHtmlGenerator generator, HtmlEncoder encoder, IServiceProvider serviceProvider, IStringLocalizer l, IAbpTagHelperLocalizer tagHelperLocalizer) : base(jsonSerializer, generator, encoder, serviceProvider, l, tagHelperLocalizer) + { + + } + + protected override TagHelperOutput TagHelperOutput { get; set; } + + [CanBeNull] + protected virtual InputTagHelper DateTagHelper { get; set; } + + [CanBeNull] + protected virtual TagHelperOutput DateTagHelperOutput { get; set; } + protected override string GetPropertyName() + { + return TagHelper.AspFor?.Name ?? string.Empty; + } + + protected override T GetAttributeAndModelExpression(out ModelExpression modelExpression) + { + modelExpression = TagHelper.AspFor; + return modelExpression?.ModelExplorer.GetAttribute(); + } + + public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) + { + + if(TagHelper.AspFor != null) + { + DateTagHelper = new InputTagHelper(Generator) { + InputTypeName = "hidden", ViewContext = TagHelper.ViewContext, For = TagHelper.AspFor, + }; + var attributes = new TagHelperAttributeList { { "data-date", "true" }, { "type", "hidden" } }; + DateTagHelperOutput = await DateTagHelper.ProcessAndGetOutputAsync(attributes, context, "input"); + } + + await base.ProcessAsync(context, output); + } + + + protected override int GetOrder() + { + return TagHelper.AspFor?.Metadata.Order ?? 0; + } + + protected override void AddBaseTagAttributes(TagHelperAttributeList attributes) + { + if(TagHelper.AspFor != null && TagHelper.AspFor.Model != null && SupportedInputTypes.TryGetValue(TagHelper.AspFor.Metadata.ModelType, out var convertFunc)) + { + attributes.Add("data-date", convertFunc(TagHelper.AspFor.Model)); + } + } + + protected override ModelExpression GetModelExpression() + { + return TagHelper.AspFor; + } + + protected async override Task GetValidationAsHtmlAsync(TagHelperContext context, TagHelperOutput output) + { + return DateTagHelper != null ? await GetValidationAsHtmlByInputAsync(context, output, DateTagHelper) : string.Empty; + } + + protected override string GetExtraInputHtml(TagHelperContext context, TagHelperOutput output) + { + return DateTagHelperOutput?.Render(Encoder); + } +} \ No newline at end of file From 77a4f2fc0254cb4b407507c79c0dee66d8cb9ce2 Mon Sep 17 00:00:00 2001 From: Salih Date: Sun, 19 Feb 2023 18:13:30 +0300 Subject: [PATCH 04/89] Added initializeDateRangePickers method --- .../bootstrap/dom-event-handlers.js | 376 ++++++++++++++++++ 1 file changed, 376 insertions(+) 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 d1cbfa6b6b..acbb0908e9 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 @@ -187,6 +187,381 @@ }); }); } + + abp.libs.bootstrapDateRangePicker = { + packageName: "bootstrap-daterangepicker", + + createDateRangePicker: function (options) { + options = options || {}; + options.singleDatePicker = false; + return this.createDatePicker(options); + }, + createSinglePicker: function (options) { + options = options || {}; + options.singleDatePicker = true; + return this.createDatePicker(options); + }, + createDatePicker: function (options) { + var $container = $('
') + var label = $('') + if (options.label) { + label.text(options.label) + } + $container.append(label) + var $datePicker = options.singleDatePicker ? $('') : $(''); + $container.append($datePicker) + + var $inputGroup = $('
'); + var $dateInput = $(''); + + if (options.placeholder) { + $dateInput.attr('placeholder', options.placeholder) + } + + if (options.value) { + $dateInput.val(options.value) + } + + if (options.name) { + $dateInput.attr('name', options.name) + } + + if (options.id) { + $dateInput.attr('id', options.id) + } + + if (options.required) { + $dateInput.attr('required', true) + } + + if (options.disabled) { + $dateInput.attr('disabled', true) + } + + if (options.readonly) { + $dateInput.attr('readonly', true) + } + + if (options.size) { + switch (options.size) { + case 'Small': + $dateInput.addClass('form-control-sm') + break; + case 'Medium': + $dateInput.addClass('form-control-md') + break; + case 'Large': + $dateInput.addClass('form-control-lg') + break; + default: + break; + } + } + + $inputGroup.append($dateInput); + + if (options.openButton !== false) { + var $openButton = $(''); + $inputGroup.append($openButton); + } + + if (options.clearButton !== false) { + var $clearButton = $(''); + $inputGroup.append($clearButton); + } + + $datePicker.append($inputGroup); + + if (options.startDateName) { + var $hiddenStartDateElement = $(''); + $datePicker.append($hiddenStartDateElement); + } + + if (options.endDateName) { + var $hiddenEndDateElement = $(''); + $datePicker.append($hiddenEndDateElement); + } + + if (options.dateName) { + var $hiddenDateElement = $(''); + $datePicker.append($hiddenDateElement); + } + + $container.data('options', options); + if($container.data('options', options)){ + debugger; + } + abp.dom.initializers.initializeDateRangePickers($container); + return $container; + } + }; + + + abp.dom.initializers.initializeDateRangePickers = function ($rootElement) { + $rootElement + .findWithSelf('abp-date-picker,abp-date-range-picker') + .each(function () { + var $this = $(this); + var $input = $(this).find('.input-group input[type="text"]') + if($input.data('daterangepicker')) { + return; + } + var $openButton = $(this).find('button[data-type="open"]') + var $clearButton = $(this).find('button[data-type="clear"]') + var singleDatePicker = $this.is('abp-date-picker') + var options = {}; + + var defaultOptions = { + showDropdowns: true, + opens: "center", + drops: "down", + autoApply: true, + autoUpdateInput: false + }; + + $.extend(options, defaultOptions); + $.extend(options, $this.data()); + if($this.data("options")){ + debugger; + $.extend(options, $this.data("options")); + } + $.extend(options, $this.data("options")); + + var isUtc = options.isUtc; + var isIso = options.isIso; + var timePicker = options.timePicker; + var timePicker24Hour = options.timePicker24Hour; + var timePickerSeconds = options.timePickerSeconds; + var dateFormat = options.dateFormat; + var separator = options.separator; + const getMoment = function (date) { + if(!date){ + return isUtc ? moment.utc() : moment(); + } + if(isUtc) { + return moment.utc(date,dateFormat); + }else { + return moment(date,dateFormat); + } + } + + if (dateFormat) { + options.locale = options.locale || {}; + options.locale.format = dateFormat; + } + + if (separator) { + options.locale = options.locale || {}; + options.locale.separator = separator; + } + + var startDate = options.startDate ? getMoment(options.startDate) : null; + if(singleDatePicker && !startDate){ + startDate = options.date ? getMoment(options.date) : null; + } + var endDate = options.endDate ? getMoment(options.endDate) : null; + + if (startDate) { + options.startDate = startDate; + } + if (endDate) { + options.endDate = endDate; + } + + if(options.ranges){ + $.each(options.ranges, function (key, value) { + let start = value[0]; + let end; + if(value.length > 1){ + end = value[1]; + }else{ + end = value[0]; + } + options.ranges[key] = [getMoment(start), getMoment(end)]; + }); + } + + $input.daterangepicker(options); + var $dateRangePicker = $input.data('daterangepicker'); + + $dateRangePicker.outsideClick = function(e) { + var target = $(e.target); + // if the page is clicked anywhere except within the daterangerpicker/button + // itself then call this.hide() + if ( + // ie modal dialog fix + e.type == "focusin" || + target.closest(this.element).length || + target.closest(this.container).length || + target.closest('.calendar-table').length || + target.closest($openButton).length + ) return; + this.hide(); + this.element.trigger('outsideClick.daterangepicker', this); + }; + + $openButton.on('click', function () { + $dateRangePicker.toggle(); + }); + + + if(!dateFormat) { + if(timePicker){ + if(timePicker24Hour){ + if(timePickerSeconds){ + dateFormat = moment.localeData().longDateFormat('L') + " HH:mm:ss"; + }else{ + dateFormat = moment.localeData().longDateFormat('L') + " HH:mm"; + } + }else { + if (timePickerSeconds) { + dateFormat = moment.localeData().longDateFormat('L') + ' ' + " hh:mm:ss A" + } else { + dateFormat = moment.localeData().longDateFormat('L') + " hh:mm A"; + } + } + }else{ + dateFormat = moment.localeData().longDateFormat('L'); + } + } + + + if(!separator) { + separator = $dateRangePicker.locale.separator; + } + + if(singleDatePicker){ + if(startDate){ + $input.val(startDate.format(dateFormat)); + } + }else{ + if(startDate && endDate){ + $input.val(startDate.format(dateFormat) + separator + endDate.format(dateFormat)); + } + } + + $input.on('apply.daterangepicker', function (ev, picker) { + if(singleDatePicker){ + $(this).val(picker.startDate.format(dateFormat)); + }else{ + $(this).val(picker.startDate.format(dateFormat) + separator + picker.endDate.format(dateFormat)); + } + + $(this).trigger('change'); + }); + + $input.on('cancel.daterangepicker', function (ev, picker) { + $(this).val(''); + $(this).trigger('change'); + }); + $input.on('show.daterangepicker', function (ev, picker) { + var momentStartDate = getMoment(startDate); + var momentEndDate = getMoment(endDate); + if (momentStartDate.isValid()) { + picker.setStartDate(momentStartDate); + } + if (momentEndDate.isValid()) { + picker.setEndDate(momentEndDate); + } + }); + + + $clearButton.on('click', function () { + $input.val(''); + $input.trigger('change'); + }); + + $input.on('change', function () { + var dates = $(this).val().split(separator); + if (dates.length === 2) { + startDate = getMoment(dates[0]); + if (!startDate.isValid()) { + startDate = null; + }else{ + startDate = formatDate(startDate); + } + endDate = getMoment(dates[1]); + if (!endDate.isValid()) { + endDate = null; + }else{ + endDate = formatDate(endDate); + } + } else { + startDate = getMoment(dates[0]); + if (!startDate.isValid()) { + startDate = null; + }else{ + startDate = formatDate(startDate); + } + endDate = null; + } + + if(!startDate){ + $dateRangePicker.setStartDate(getMoment()); + $dateRangePicker.setEndDate(getMoment()); + } + + if(!singleDatePicker){ + var input1 = $this.find("input[data-start-date]") + input1.val(startDate); + var input2 = $this.find("input[data-end-date]") + input2.val(endDate); + }else{ + var input = $this.find("input[data-date]") + input.val(startDate); + } + + if(singleDatePicker){ + $this.data('date', startDate); + $input.data('date', startDate); + }else{ + $this.data('startDate', startDate); + $this.data('endDate', endDate); + $input.data('startDate', startDate); + $input.data('endDate', endDate); + } + }); + + function formatDate(date){ + if(date){ + debugger; + if(isIso){ + return date.format(); + } + return date.format(dateFormat) + } + return null; + } + function getFormattedStartDate (){ + if(startDate){ + return getMoment(startDate).format(dateFormat); + } + return null; + } + + function getFormattedEndDate (){ + if(endDate){ + return getMoment(endDate).format(dateFormat); + } + return null; + } + + if(singleDatePicker){ + $this[0].getFormattedDate = getFormattedStartDate; + $input[0].getFormattedDate = getFormattedStartDate; + $dateRangePicker.getFormattedDate = getFormattedStartDate; + }else{ + $dateRangePicker.getFormattedStartDate = getFormattedStartDate; + $dateRangePicker.getFormattedEndDate = getFormattedEndDate; + + $this[0].getFormattedStartDate = getFormattedStartDate; + $this[0].getFormattedEndDate = getFormattedEndDate; + + $input[0].getFormattedStartDate = getFormattedStartDate; + $input[0].getFormattedEndDate = getFormattedEndDate; + } + }); + } abp.dom.onNodeAdded(function (args) { abp.dom.initializers.initializeToolTips(args.$el.findWithSelf('[data-toggle="tooltip"]')); @@ -212,6 +587,7 @@ abp.dom.initializers.initializePopovers($('[data-toggle="popover"]')); abp.dom.initializers.initializeTimeAgos($('.timeago')); abp.dom.initializers.initializeDatepickers($(document)); + abp.dom.initializers.initializeDateRangePickers($(document)); abp.dom.initializers.initializeForms($('form')); abp.dom.initializers.initializeAutocompleteSelects($('.auto-complete-select')); $('[data-auto-focus="true"]').first().findWithSelf('input,select').focus(); From 0f59bca5abd43be27e6f2cf147c13e886f5ea4a8 Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 20 Feb 2023 20:39:46 +0300 Subject: [PATCH 05/89] Refactor and add atrributes --- .../DatePicker/AbpDatePickerBaseTagHelper.cs | 147 ------------ .../DatePicker/AbpDatePickerDrops.cs | 8 - .../DatePicker/AbpDatePickerOpens.cs | 8 - .../DatePicker/AbpDatePickerWeekNumbers.cs | 8 - .../DatePicker/AbpDatePickerBaseTagHelper.cs | 208 ++++++++++++++++ .../AbpDatePickerBaseTagHelperService.cs | 223 +++++++++++------- .../Form/DatePicker/AbpDatePickerDrops.cs | 8 + .../Form/DatePicker/AbpDatePickerOpens.cs | 8 + .../Form/DatePicker/AbpDatePickerOptions.cs | 39 +++ .../DatePicker/AbpDatePickerRange.cs | 2 +- .../Form/DatePicker/AbpDatePickerTagHelper.cs | 16 ++ .../AbpDatePickerTagHelperService.cs} | 15 +- .../DatePicker/AbpDatePickerWeekNumbers.cs | 8 + .../DatePicker/AbpDateRangePickerTagHelper.cs | 21 ++ .../AbpDateRangePickerTagHelperService.cs} | 19 +- .../Form/DatePicker/DatePickerAttribute.cs | 8 + .../DatePicker/DatePickerOptionsAttribute.cs | 169 +++++++++++++ .../DatePicker/DateRangePickerAttribute.cs | 16 ++ .../Form/DatePicker/IAbpDatePickerOptions.cs | 100 ++++++++ .../bootstrap/dom-event-handlers.js | 46 ++-- 20 files changed, 764 insertions(+), 313 deletions(-) delete mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelper.cs delete mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerDrops.cs delete mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerOpens.cs delete mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerWeekNumbers.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelper.cs rename framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/{ => Form}/DatePicker/AbpDatePickerBaseTagHelperService.cs (78%) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerDrops.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOpens.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs rename framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/{ => Form}/DatePicker/AbpDatePickerRange.cs (92%) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelper.cs rename framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/{DatePicker/AbpDatePickerTag.cs => Form/DatePicker/AbpDatePickerTagHelperService.cs} (87%) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerWeekNumbers.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelper.cs rename framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/{DatePicker/AbpDateRangePicker.cs => Form/DatePicker/AbpDateRangePickerTagHelperService.cs} (88%) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerAttribute.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DateRangePickerAttribute.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelper.cs deleted file mode 100644 index 5fbe1a2c7e..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelper.cs +++ /dev/null @@ -1,147 +0,0 @@ -using System; -using System.Collections.Generic; -using JetBrains.Annotations; -using Microsoft.AspNetCore.Razor.TagHelpers; -using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; - -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; - -public abstract class - AbpDatePickerBaseTagHelper : AbpTagHelper> - where TTagHelper : AbpDatePickerBaseTagHelper - -{ - public string Label { get; set; } - - public string LabelTooltip { get; set; } - - public string LabelTooltipIcon { get; set; } = "bi-info-circle"; - - public string LabelTooltipPlacement { get; set; } = "right"; - - public bool LabelTooltipHtml { get; set; } = false; - - [HtmlAttributeName("info")] - public string InfoText { get; set; } - - [HtmlAttributeName("disabled")] - public bool IsDisabled { get; set; } = false; - - [HtmlAttributeName("readonly")] - public bool? IsReadonly { get; set; } = false; - - public bool AutoFocus { get; set; } - - [HtmlAttributeName("type")] - public string InputTypeName { get; set; } = "text"; - - public AbpFormControlSize Size { get; set; } = AbpFormControlSize.Default; - - [HtmlAttributeName("required-symbol")] - public bool DisplayRequiredSymbol { get; set; } = true; - - [HtmlAttributeName("asp-format")] - public string Format { get; set; } - - public string Name { get; set; } - - public string Value { get; set; } - - public bool SuppressLabel { get; set; } - - - // Min and Max date - public DateTime? MinDate { get; set; } - - public DateTime? MaxDate { get; set; } - - // Max span between start and end date - public object? MaxSpan { get; set; } - - // Show dropdowns - public bool ShowDropdowns { get; set; } = true; - - // Min and Max year - public int? MinYear { get; set; } - - public int? MaxYear { get; set; } - - // Show week numbers - public AbpDatePickerWeekNumbers WeekNumbers { get; set; } = AbpDatePickerWeekNumbers.None; - - // Time picker - public bool? TimePicker { get; set; } - - // Time picker increment - public int? TimePickerIncrement { get; set; } - - // Time picker 24 hour - public bool? TimePicker24Hour { get; set; } - - // Time picker seconds - public bool? TimePickerSeconds { get; set; } - - // Ranges object - public List Ranges { get; set; } - - // Show custom range label - public bool ShowCustomRangeLabel { get; set; } = true; - - // Always show calendar - public bool AlwaysShowCalendars { get; set; } = false; - - // Opens date picker on left or right or center of the input - public AbpDatePickerOpens Opens { get; set; } = AbpDatePickerOpens.Center; - - // Drops down or up or auto - public AbpDatePickerDrops Drops { get; set; } = AbpDatePickerDrops.Down; - - // Button classes - [CanBeNull] - public string ButtonClasses { get; set; } - - // Apply class to all buttons - [CanBeNull] - public string ApplyButtonClasses { get; set; } - - // Cancel class to all buttons - [CanBeNull] - public string CancelButtonClasses { get; set; } - - // Locale - [CanBeNull] - public object Locale { get; set; } - - // Auto apply - public bool AutoApply { get; set; } = true; - - // Linked calendars - public bool? LinkedCalendars { get; set; } - - // Auto update input - public bool AutoUpdateInput { get; set; } = false; - - // Parent element - [CanBeNull] - public string ParentEl { get; set; } - - // public DatePickerType Type { get; set; } = DatePickerType.Date; - - [CanBeNull] - public string DateFormat { get; set; } - - public bool OpenButton { get; set; } = true; - - public bool ClearButton { get; set; } = true; - - public bool IsUtc { get; set; } = false; - - public bool IsIso { get; set; } = false; - - [CanBeNull] - public object Options { get; set; } - - protected AbpDatePickerBaseTagHelper(AbpDatePickerBaseTagHelperService service) : base(service) - { - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerDrops.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerDrops.cs deleted file mode 100644 index 72e2e663ca..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerDrops.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; - -public enum AbpDatePickerDrops -{ - Down, - Up, - Auto -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerOpens.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerOpens.cs deleted file mode 100644 index f499f9ce51..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerOpens.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; - -public enum AbpDatePickerOpens -{ - Left, - Right, - Center -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerWeekNumbers.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerWeekNumbers.cs deleted file mode 100644 index e328f89205..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerWeekNumbers.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; - -public enum AbpDatePickerWeekNumbers -{ - None, - Normal, - Iso -} \ No newline at end of file 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 new file mode 100644 index 0000000000..75c3291901 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelper.cs @@ -0,0 +1,208 @@ +using System; +using System.Collections.Generic; +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +public abstract class + AbpDatePickerBaseTagHelper : AbpTagHelper>, IAbpDatePickerOptions + where TTagHelper : AbpDatePickerBaseTagHelper + +{ + private IAbpDatePickerOptions _abpDatePickerOptionsImplementation; + public string Label { get; set; } + + public string LabelTooltip { get; set; } + + public string LabelTooltipIcon { get; set; } = "bi-info-circle"; + + public string LabelTooltipPlacement { get; set; } = "right"; + + public bool LabelTooltipHtml { get; set; } = false; + + [HtmlAttributeName("info")] + public string InfoText { get; set; } + + [HtmlAttributeName("disabled")] + public bool IsDisabled { get; set; } = false; + + [HtmlAttributeName("readonly")] + public bool? IsReadonly { get; set; } = false; + + public bool AutoFocus { get; set; } + + public AbpFormControlSize Size { get; set; } = AbpFormControlSize.Default; + + [HtmlAttributeName("required-symbol")] + public bool DisplayRequiredSymbol { get; set; } = true; + + public string Name { get; set; } + + public string Value { get; set; } + + public bool SuppressLabel { get; set; } + + + + + protected AbpDatePickerBaseTagHelper(AbpDatePickerBaseTagHelperService service) : base(service) + { + _abpDatePickerOptionsImplementation = new AbpDatePickerOptions(); + } + + + public string PickerId { + get => _abpDatePickerOptionsImplementation.PickerId; + set => _abpDatePickerOptionsImplementation.PickerId = value; + } + + public DateTime? MinDate { + get => _abpDatePickerOptionsImplementation.MinDate; + set => _abpDatePickerOptionsImplementation.MinDate = value; + } + + public DateTime? MaxDate { + get => _abpDatePickerOptionsImplementation.MaxDate; + set => _abpDatePickerOptionsImplementation.MaxDate = value; + } + + public object MaxSpan { + get => _abpDatePickerOptionsImplementation.MaxSpan; + set => _abpDatePickerOptionsImplementation.MaxSpan = value; + } + + public bool? ShowDropdowns { + get => _abpDatePickerOptionsImplementation.ShowDropdowns; + set => _abpDatePickerOptionsImplementation.ShowDropdowns = value; + } + + public int? MinYear { + get => _abpDatePickerOptionsImplementation.MinYear; + set => _abpDatePickerOptionsImplementation.MinYear = value; + } + + public int? MaxYear { + get => _abpDatePickerOptionsImplementation.MaxYear; + set => _abpDatePickerOptionsImplementation.MaxYear = value; + } + + public AbpDatePickerWeekNumbers WeekNumbers { + get => _abpDatePickerOptionsImplementation.WeekNumbers; + set => _abpDatePickerOptionsImplementation.WeekNumbers = value; + } + + public bool? TimePicker { + get => _abpDatePickerOptionsImplementation.TimePicker; + set => _abpDatePickerOptionsImplementation.TimePicker = value; + } + + public int? TimePickerIncrement { + get => _abpDatePickerOptionsImplementation.TimePickerIncrement; + set => _abpDatePickerOptionsImplementation.TimePickerIncrement = value; + } + + public bool? TimePicker24Hour { + get => _abpDatePickerOptionsImplementation.TimePicker24Hour; + set => _abpDatePickerOptionsImplementation.TimePicker24Hour = value; + } + + public bool? TimePickerSeconds { + get => _abpDatePickerOptionsImplementation.TimePickerSeconds; + set => _abpDatePickerOptionsImplementation.TimePickerSeconds = value; + } + + public List Ranges { + get => _abpDatePickerOptionsImplementation.Ranges; + set => _abpDatePickerOptionsImplementation.Ranges = value; + } + + public bool? ShowCustomRangeLabel { + get => _abpDatePickerOptionsImplementation.ShowCustomRangeLabel; + set => _abpDatePickerOptionsImplementation.ShowCustomRangeLabel = value; + } + + public bool? AlwaysShowCalendars { + get => _abpDatePickerOptionsImplementation.AlwaysShowCalendars; + set => _abpDatePickerOptionsImplementation.AlwaysShowCalendars = value; + } + + public AbpDatePickerOpens Opens { + get => _abpDatePickerOptionsImplementation.Opens; + set => _abpDatePickerOptionsImplementation.Opens = value; + } + + public AbpDatePickerDrops Drops { + get => _abpDatePickerOptionsImplementation.Drops; + set => _abpDatePickerOptionsImplementation.Drops = value; + } + + public string ButtonClasses { + get => _abpDatePickerOptionsImplementation.ButtonClasses; + set => _abpDatePickerOptionsImplementation.ButtonClasses = value; + } + + public string ApplyButtonClasses { + get => _abpDatePickerOptionsImplementation.ApplyButtonClasses; + set => _abpDatePickerOptionsImplementation.ApplyButtonClasses = value; + } + + public string CancelButtonClasses { + get => _abpDatePickerOptionsImplementation.CancelButtonClasses; + set => _abpDatePickerOptionsImplementation.CancelButtonClasses = value; + } + + public object Locale { + get => _abpDatePickerOptionsImplementation.Locale; + set => _abpDatePickerOptionsImplementation.Locale = value; + } + + public bool? AutoApply { + get => _abpDatePickerOptionsImplementation.AutoApply; + set => _abpDatePickerOptionsImplementation.AutoApply = value; + } + + public bool? LinkedCalendars { + get => _abpDatePickerOptionsImplementation.LinkedCalendars; + set => _abpDatePickerOptionsImplementation.LinkedCalendars = value; + } + + public bool? AutoUpdateInput { + get => _abpDatePickerOptionsImplementation.AutoUpdateInput; + set => _abpDatePickerOptionsImplementation.AutoUpdateInput = value; + } + + public string ParentEl { + get => _abpDatePickerOptionsImplementation.ParentEl; + set => _abpDatePickerOptionsImplementation.ParentEl = value; + } + + public string DateFormat { + get => _abpDatePickerOptionsImplementation.DateFormat; + set => _abpDatePickerOptionsImplementation.DateFormat = value; + } + + public bool OpenButton { + get => _abpDatePickerOptionsImplementation.OpenButton; + set => _abpDatePickerOptionsImplementation.OpenButton = value; + } + + public bool ClearButton { + get => _abpDatePickerOptionsImplementation.ClearButton; + set => _abpDatePickerOptionsImplementation.ClearButton = value; + } + + public bool? IsUtc { + get => _abpDatePickerOptionsImplementation.IsUtc; + set => _abpDatePickerOptionsImplementation.IsUtc = value; + } + + public bool? IsIso { + get => _abpDatePickerOptionsImplementation.IsIso; + set => _abpDatePickerOptionsImplementation.IsIso = value; + } + + public object Options { + get => _abpDatePickerOptionsImplementation.Options; + set => _abpDatePickerOptionsImplementation.Options = value; + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs similarity index 78% rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelperService.cs rename to framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs index d3a0026759..15e81e6c3d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerBaseTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerBaseTagHelperService.cs @@ -15,10 +15,9 @@ using Microsoft.Extensions.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions; -using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; using Volo.Abp.Json; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelperService where TTagHelper : AbpDatePickerBaseTagHelper @@ -82,6 +81,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp AddDisabledAttribute(TagHelperOutput); AddAutoFocusAttribute(TagHelperOutput); AddFormControls(context, output, TagHelperOutput); + AddReadOnlyAttribute(TagHelperOutput); AddPlaceholderAttribute(TagHelperOutput); AddInfoTextId(TagHelperOutput); @@ -93,7 +93,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp ? await ProcessButtonAndGetContentAsync(context, output, "times", "clear") : ""; - var labelContent = TagHelper.SuppressLabel ? "" : await GetLabelAsHtmlAsync(context, output, TagHelperOutput); + var labelContent = await GetLabelAsHtmlAsync(context, output, TagHelperOutput); var infoContent = GetInfoAsHtml(context, output, TagHelperOutput); var validationContent = await GetValidationAsHtmlAsync(context, output); @@ -104,7 +104,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp TagHelperOutput.Render(Encoder) + openButtonContent + clearButtonContent + infoContent ); - var abpDatePickerTag = new TagHelperOutput(TagName, GetBaseTagAttributes(context, output), + var abpDatePickerTag = new TagHelperOutput(TagName, GetBaseTagAttributes(context, output, TagHelper), (_, _) => Task.FromResult(new DefaultTagHelperContent())); abpDatePickerTag.Content.AppendHtml(inputGroup.Render(Encoder)); abpDatePickerTag.Content.AppendHtml(validationContent); @@ -129,6 +129,15 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp output.Content.AppendHtml(innerHtml); } + + protected virtual void AddReadOnlyAttribute(TagHelperOutput inputTagHelperOutput) + { + if (inputTagHelperOutput.Attributes.ContainsName("readonly") == false && + (TagHelper.IsReadonly != false || GetAttribute() != null)) + { + inputTagHelperOutput.Attributes.Add("readonly", ""); + } + } protected virtual TagHelperAttributeList GetInputAttributes(TagHelperContext context, TagHelperOutput output) { @@ -205,75 +214,45 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp return string.Empty; } - protected TagHelperAttributeList GetBaseTagAttributes(TagHelperContext context, TagHelperOutput output) + protected TagHelperAttributeList ConvertDatePickerOptionsToAttributeList(IAbpDatePickerOptions options) { - var groupPrefix = "group-"; - - var tagHelperAttributes = output.Attributes.Where(a => !a.Name.StartsWith(groupPrefix)).ToList(); - var attrList = new TagHelperAttributeList(); - - foreach (var tagHelperAttribute in tagHelperAttributes) - { - attrList.Add(tagHelperAttribute); - } - - if (attrList.ContainsName("type")) - { - attrList.Remove(attrList.First(a => a.Name == "type")); - } - - if (attrList.ContainsName("name")) - { - attrList.Remove(attrList.First(a => a.Name == "name")); - } - - if (attrList.ContainsName("id")) - { - attrList.Remove(attrList.First(a => a.Name == "id")); - } - - if (attrList.ContainsName("value")) - { - attrList.Remove(attrList.First(a => a.Name == "value")); - } - - if (TagHelper.Locale != null) + if (options.Locale != null) { - attrList.Add("data-locale", JsonSerializer.Serialize(TagHelper.Locale)); + attrList.Add("data-locale", JsonSerializer.Serialize(options.Locale)); } - if (TagHelper.MinDate != null) + if (options.MinDate != null) { - attrList.Add("data-min-date", TagHelper.MinDate); + attrList.Add("data-min-date", options.MinDate); } - if (TagHelper.MaxDate != null) + if (options.MaxDate != null) { - attrList.Add("data-max-date", TagHelper.MaxDate); + attrList.Add("data-max-date", options.MaxDate); } - if (TagHelper.MaxSpan != null) + if (options.MaxSpan != null) { - attrList.Add("data-max-span", JsonSerializer.Serialize(TagHelper.MaxSpan)); + attrList.Add("data-max-span", JsonSerializer.Serialize(options.MaxSpan)); } - if (TagHelper.ShowDropdowns == false) + if (options.ShowDropdowns == false) { - attrList.Add("data-show-dropdowns", TagHelper.ShowDropdowns.ToString().ToLowerInvariant()); + attrList.Add("data-show-dropdowns", options.ShowDropdowns.ToString().ToLowerInvariant()); } - if (TagHelper.MinYear != null) + if (options.MinYear != null) { - attrList.Add("data-min-year", TagHelper.MinYear); + attrList.Add("data-min-year", options.MinYear); } - if (TagHelper.MaxYear != null) + if (options.MaxYear != null) { - attrList.Add("data-max-year", TagHelper.MaxYear); + attrList.Add("data-max-year", options.MaxYear); } - switch (TagHelper.WeekNumbers) + switch (options.WeekNumbers) { case AbpDatePickerWeekNumbers.Normal: attrList.Add("data-show-week-numbers", "true"); @@ -283,106 +262,161 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp break; } - if (TagHelper.TimePicker != null) + if (options.TimePicker != null) { - attrList.Add("data-time-picker", TagHelper.TimePicker.ToString().ToLowerInvariant()); + attrList.Add("data-time-picker", options.TimePicker.ToString().ToLowerInvariant()); } - if (TagHelper.TimePickerIncrement != null) + if (options.TimePickerIncrement != null) { - attrList.Add("data-time-picker-increment", TagHelper.TimePickerIncrement); + attrList.Add("data-time-picker-increment", options.TimePickerIncrement); } - if (TagHelper.TimePicker24Hour != null) + if (options.TimePicker24Hour != null) { - attrList.Add("data-time-picker24-hour", TagHelper.TimePicker24Hour.ToString().ToLowerInvariant()); + attrList.Add("data-time-picker24-hour", options.TimePicker24Hour.ToString().ToLowerInvariant()); } - if (TagHelper.TimePickerSeconds != null) + if (options.TimePickerSeconds != null) { - attrList.Add("data-time-picker-seconds", TagHelper.TimePickerSeconds.ToString().ToLowerInvariant()); + attrList.Add("data-time-picker-seconds", options.TimePickerSeconds.ToString().ToLowerInvariant()); } - if (TagHelper.Opens != AbpDatePickerOpens.Center) + if (options.Opens != AbpDatePickerOpens.Center) { - attrList.Add("data-opens", TagHelper.Opens.ToString().ToLowerInvariant()); + attrList.Add("data-opens", options.Opens.ToString().ToLowerInvariant()); } - if (TagHelper.Drops != AbpDatePickerDrops.Down) + if (options.Drops != AbpDatePickerDrops.Down) { - attrList.Add("data-drops", TagHelper.Drops.ToString().ToLowerInvariant()); + attrList.Add("data-drops", options.Drops.ToString().ToLowerInvariant()); } - if (!TagHelper.ButtonClasses.IsNullOrEmpty()) + if (!options.ButtonClasses.IsNullOrEmpty()) { - attrList.Add("data-button-classes", TagHelper.ButtonClasses); + attrList.Add("data-button-classes", options.ButtonClasses); } - if (!TagHelper.ApplyButtonClasses.IsNullOrEmpty()) + if (!options.ApplyButtonClasses.IsNullOrEmpty()) { - attrList.Add("data-apply-button-classes", TagHelper.ApplyButtonClasses); + attrList.Add("data-apply-button-classes", options.ApplyButtonClasses); } - if (!TagHelper.CancelButtonClasses.IsNullOrEmpty()) + if (!options.CancelButtonClasses.IsNullOrEmpty()) { - attrList.Add("data-cancel-button-classes", TagHelper.CancelButtonClasses); + attrList.Add("data-cancel-button-classes", options.CancelButtonClasses); } - if (!TagHelper.AutoApply) + if (options.AutoApply != null) { - attrList.Add("data-auto-apply", TagHelper.AutoApply.ToString().ToLowerInvariant()); + attrList.Add("data-auto-apply", options.AutoApply.ToString().ToLowerInvariant()); } - if (TagHelper.LinkedCalendars != null) + if (options.LinkedCalendars != null) { - attrList.Add("data-linked-calendars", TagHelper.LinkedCalendars.ToString().ToLowerInvariant()); + attrList.Add("data-linked-calendars", options.LinkedCalendars.ToString().ToLowerInvariant()); } - if (TagHelper.AutoUpdateInput) + if (options.AutoUpdateInput != null) { - attrList.Add("data-auto-update-input", TagHelper.AutoUpdateInput.ToString().ToLowerInvariant()); + attrList.Add("data-auto-update-input", options.AutoUpdateInput.ToString().ToLowerInvariant()); } - if (!TagHelper.ParentEl.IsNullOrEmpty()) + if (!options.ParentEl.IsNullOrEmpty()) { - attrList.Add("data-parent-el", TagHelper.ParentEl); + attrList.Add("data-parent-el", options.ParentEl); } - if (!TagHelper.DateFormat.IsNullOrEmpty()) + if (!options.DateFormat.IsNullOrEmpty()) { - attrList.Add("data-date-format", TagHelper.DateFormat); + attrList.Add("data-date-format", options.DateFormat); } - if(TagHelper.Ranges != null && TagHelper.Ranges.Any()) + if(options.Ranges != null && options.Ranges.Any()) { - var ranges = TagHelper.Ranges.ToDictionary(r => r.Label, r => r.Dates); + var ranges = options.Ranges.ToDictionary(r => r.Label, r => r.Dates); attrList.Add("data-ranges", JsonSerializer.Serialize(ranges)); } - if(TagHelper.AlwaysShowCalendars) + if(options.AlwaysShowCalendars != null) { - attrList.Add("data-always-show-calendars", TagHelper.AlwaysShowCalendars.ToString().ToLowerInvariant()); + attrList.Add("data-always-show-calendars", options.AlwaysShowCalendars.ToString().ToLowerInvariant()); } - if(TagHelper.ShowCustomRangeLabel == false) + if(options.ShowCustomRangeLabel == false) { - attrList.Add("data-show-custom-range-label", TagHelper.ShowCustomRangeLabel.ToString().ToLowerInvariant()); + attrList.Add("data-show-custom-range-label", options.ShowCustomRangeLabel.ToString().ToLowerInvariant()); } - if(TagHelper.Options != null) + if(options.Options != null) { - attrList.Add("data-options", JsonSerializer.Serialize(TagHelper.Options)); + attrList.Add("data-options", JsonSerializer.Serialize(options.Options)); } - if (TagHelper.IsUtc) + if (options.IsUtc != null) { attrList.Add("data-is-utc", "true"); } - if (TagHelper.IsIso) + if (options.IsIso != null) + { + attrList.Add("data-is-iso", options.IsIso.ToString().ToLowerInvariant()); + } + + if (!options.PickerId.IsNullOrWhiteSpace()) { - attrList.Add("data-is-iso", TagHelper.IsIso.ToString().ToLowerInvariant()); + attrList.Add("id", options.PickerId); + } + + return attrList; + } + + protected TagHelperAttributeList GetBaseTagAttributes(TagHelperContext context, TagHelperOutput output, IAbpDatePickerOptions options) + { + var groupPrefix = "group-"; + + var tagHelperAttributes = output.Attributes.Where(a => !a.Name.StartsWith(groupPrefix)).ToList(); + + var attrList = new TagHelperAttributeList(); + + foreach (var tagHelperAttribute in tagHelperAttributes) + { + attrList.Add(tagHelperAttribute); + } + + if (attrList.ContainsName("type")) + { + attrList.Remove(attrList.First(a => a.Name == "type")); + } + + if (attrList.ContainsName("name")) + { + attrList.Remove(attrList.First(a => a.Name == "name")); + } + + if (attrList.ContainsName("id")) + { + attrList.Remove(attrList.First(a => a.Name == "id")); + } + + if (attrList.ContainsName("value")) + { + attrList.Remove(attrList.First(a => a.Name == "value")); + } + + foreach (var attr in ConvertDatePickerOptionsToAttributeList(options)) + { + attrList.Add(attr); + } + + var optionsAttribute = GetAttribute(); + if(optionsAttribute != null) + { + foreach (var attr in ConvertDatePickerOptionsToAttributeList(optionsAttribute)) + { + attrList.Add(attr); + } } AddBaseTagAttributes(attrList); @@ -440,6 +474,10 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp protected virtual async Task GetLabelAsHtmlAsync(TagHelperContext context, TagHelperOutput output, TagHelperOutput inputTag) { + if (IsOutputHidden(inputTag) || TagHelper.SuppressLabel) + { + return string.Empty; + } if (string.IsNullOrEmpty(TagHelper.Label)) { return await GetLabelAsHtmlUsingTagHelperAsync(context, output) + GetRequiredSymbol(context, output); @@ -489,9 +527,14 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp protected virtual async Task GetLabelAsHtmlUsingTagHelperAsync(TagHelperContext context, TagHelperOutput output) { + var modelExpression = GetModelExpression(); + if (modelExpression == null) + { + return string.Empty; + } var labelTagHelper = new LabelTagHelper(Generator) { ViewContext = TagHelper.ViewContext, - For = GetModelExpression() + For = modelExpression }; var attributeList = new TagHelperAttributeList(); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerDrops.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerDrops.cs new file mode 100644 index 0000000000..7e26e27c66 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerDrops.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +public enum AbpDatePickerDrops +{ + Down, + Up, + Auto +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOpens.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOpens.cs new file mode 100644 index 0000000000..a69ead079d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOpens.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +public enum AbpDatePickerOpens +{ + Left, + Right, + Center +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs new file mode 100644 index 0000000000..9a3e45f35e --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +public class AbpDatePickerOptions : IAbpDatePickerOptions +{ + public string PickerId { get; set; } + public DateTime? MinDate { get; set; } + public DateTime? MaxDate { get; set; } + public object MaxSpan { get; set; } + public bool? ShowDropdowns { get; set; } + public int? MinYear { get; set; } + public int? MaxYear { get; set; } + public AbpDatePickerWeekNumbers WeekNumbers { get; set; } = AbpDatePickerWeekNumbers.None; + public bool? TimePicker { get; set; } + public int? TimePickerIncrement { get; set; } + public bool? TimePicker24Hour { get; set; } + public bool? TimePickerSeconds { get; set; } + public List Ranges { get; set; } + public bool? ShowCustomRangeLabel { get; set; } + public bool? AlwaysShowCalendars { get; set; } + public AbpDatePickerOpens Opens { get; set; } = AbpDatePickerOpens.Center; + public AbpDatePickerDrops Drops { get; set; } = AbpDatePickerDrops.Down; + public string ButtonClasses { get; set; } + public string ApplyButtonClasses { get; set; } + public string CancelButtonClasses { get; set; } + public object Locale { get; set; } + public bool? AutoApply { get; set; } + public bool? LinkedCalendars { get; set; } + public bool? AutoUpdateInput { get; set; } + public string ParentEl { get; set; } + public string DateFormat { get; set; } + public bool OpenButton { get; set; } = true; + public bool ClearButton { get; set; } = true; + public bool? IsUtc { get; set; } + public bool? IsIso { get; set; } + public object Options { get; set; } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerRange.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs similarity index 92% rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerRange.cs rename to framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs index 8643668283..727110c56c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerRange.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; public class AbpDatePickerRange { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelper.cs new file mode 100644 index 0000000000..8426b0071b --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelper.cs @@ -0,0 +1,16 @@ +using JetBrains.Annotations; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +[HtmlTargetElement("abp-date-picker", TagStructure = TagStructure.NormalOrSelfClosing)] +public class AbpDatePickerTagHelper : AbpDatePickerBaseTagHelper +{ + [CanBeNull] + public ModelExpression AspFor { get; set; } + + public AbpDatePickerTagHelper(AbpDatePickerTagHelperService service) : base(service) + { + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerTag.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs similarity index 87% rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerTag.cs rename to framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs index a368037451..8007a13a17 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDatePickerTag.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs @@ -10,20 +10,7 @@ using Microsoft.Extensions.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions; using Volo.Abp.Json; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; - -[HtmlTargetElement("abp-date-picker", TagStructure = TagStructure.NormalOrSelfClosing)] -public class AbpDatePickerTagHelper : AbpDatePickerBaseTagHelper -{ - [CanBeNull] - public ModelExpression AspFor { get; set; } - - public AbpDatePickerTagHelper(AbpDatePickerTagHelperService service) : base(service) - { - } -} - - +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerWeekNumbers.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerWeekNumbers.cs new file mode 100644 index 0000000000..95f5c911e7 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerWeekNumbers.cs @@ -0,0 +1,8 @@ +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +public enum AbpDatePickerWeekNumbers +{ + None, + Normal, + Iso +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelper.cs new file mode 100644 index 0000000000..97221a0d7d --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelper.cs @@ -0,0 +1,21 @@ +using JetBrains.Annotations; +using Microsoft.AspNetCore.Mvc.ViewFeatures; +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +[HtmlTargetElement("abp-date-range-picker", TagStructure = TagStructure.NormalOrSelfClosing)] +public class AbpDateRangePickerTagHelper : AbpDatePickerBaseTagHelper +{ + // Start date + [CanBeNull] + public ModelExpression AspForStart { get; set; } + + // End date + [CanBeNull] + public ModelExpression AspForEnd { get; set; } + + public AbpDateRangePickerTagHelper(AbpDateRangePickerTagHelperService tagHelperService) : base(tagHelperService) + { + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDateRangePicker.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs similarity index 88% rename from framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDateRangePicker.cs rename to framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs index 9f88e2f5a3..a869147bfd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/DatePicker/AbpDateRangePicker.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs @@ -1,6 +1,5 @@ using System; using System.Linq; -using System.Text; using System.Text.Encodings.Web; using System.Threading.Tasks; using JetBrains.Annotations; @@ -12,23 +11,7 @@ using Microsoft.Extensions.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions; using Volo.Abp.Json; -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.DatePicker; - -[HtmlTargetElement("abp-date-range-picker", TagStructure = TagStructure.NormalOrSelfClosing)] -public class AbpDateRangePickerTagHelper : AbpDatePickerBaseTagHelper -{ - // Start date - [CanBeNull] - public ModelExpression AspForStart { get; set; } - - // End date - [CanBeNull] - public ModelExpression AspForEnd { get; set; } - - public AbpDateRangePickerTagHelper(AbpDateRangePickerTagHelperService tagHelperService) : base(tagHelperService) - { - } -} +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperService { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerAttribute.cs new file mode 100644 index 0000000000..840e21241e --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerAttribute.cs @@ -0,0 +1,8 @@ +using System; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +[AttributeUsage(AttributeTargets.Property)] +public class DatePickerAttribute : Attribute +{ +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs new file mode 100644 index 0000000000..612ab94216 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs @@ -0,0 +1,169 @@ +using System; +using System.Collections.Generic; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +public class DatePickerOptionsAttribute : Attribute, IAbpDatePickerOptions +{ + private IAbpDatePickerOptions _abpDatePickerOptionsImplementation; + + public DatePickerOptionsAttribute() + { + _abpDatePickerOptionsImplementation = new AbpDatePickerOptions(); + } + + public string PickerId { + get => _abpDatePickerOptionsImplementation.PickerId; + set => _abpDatePickerOptionsImplementation.PickerId = value; + } + + public DateTime? MinDate { + get => _abpDatePickerOptionsImplementation.MinDate; + set => _abpDatePickerOptionsImplementation.MinDate = value; + } + + public DateTime? MaxDate { + get => _abpDatePickerOptionsImplementation.MaxDate; + set => _abpDatePickerOptionsImplementation.MaxDate = value; + } + + public object MaxSpan { + get => _abpDatePickerOptionsImplementation.MaxSpan; + set => _abpDatePickerOptionsImplementation.MaxSpan = value; + } + + public bool? ShowDropdowns { + get => _abpDatePickerOptionsImplementation.ShowDropdowns; + set => _abpDatePickerOptionsImplementation.ShowDropdowns = value; + } + + public int? MinYear { + get => _abpDatePickerOptionsImplementation.MinYear; + set => _abpDatePickerOptionsImplementation.MinYear = value; + } + + public int? MaxYear { + get => _abpDatePickerOptionsImplementation.MaxYear; + set => _abpDatePickerOptionsImplementation.MaxYear = value; + } + + public AbpDatePickerWeekNumbers WeekNumbers { + get => _abpDatePickerOptionsImplementation.WeekNumbers; + set => _abpDatePickerOptionsImplementation.WeekNumbers = value; + } + + public bool? TimePicker { + get => _abpDatePickerOptionsImplementation.TimePicker; + set => _abpDatePickerOptionsImplementation.TimePicker = value; + } + + public int? TimePickerIncrement { + get => _abpDatePickerOptionsImplementation.TimePickerIncrement; + set => _abpDatePickerOptionsImplementation.TimePickerIncrement = value; + } + + public bool? TimePicker24Hour { + get => _abpDatePickerOptionsImplementation.TimePicker24Hour; + set => _abpDatePickerOptionsImplementation.TimePicker24Hour = value; + } + + public bool? TimePickerSeconds { + get => _abpDatePickerOptionsImplementation.TimePickerSeconds; + set => _abpDatePickerOptionsImplementation.TimePickerSeconds = value; + } + + public List Ranges { + get => _abpDatePickerOptionsImplementation.Ranges; + set => _abpDatePickerOptionsImplementation.Ranges = value; + } + + public bool? ShowCustomRangeLabel { + get => _abpDatePickerOptionsImplementation.ShowCustomRangeLabel; + set => _abpDatePickerOptionsImplementation.ShowCustomRangeLabel = value; + } + + public bool? AlwaysShowCalendars { + get => _abpDatePickerOptionsImplementation.AlwaysShowCalendars; + set => _abpDatePickerOptionsImplementation.AlwaysShowCalendars = value; + } + + public AbpDatePickerOpens Opens { + get => _abpDatePickerOptionsImplementation.Opens; + set => _abpDatePickerOptionsImplementation.Opens = value; + } + + public AbpDatePickerDrops Drops { + get => _abpDatePickerOptionsImplementation.Drops; + set => _abpDatePickerOptionsImplementation.Drops = value; + } + + public string ButtonClasses { + get => _abpDatePickerOptionsImplementation.ButtonClasses; + set => _abpDatePickerOptionsImplementation.ButtonClasses = value; + } + + public string ApplyButtonClasses { + get => _abpDatePickerOptionsImplementation.ApplyButtonClasses; + set => _abpDatePickerOptionsImplementation.ApplyButtonClasses = value; + } + + public string CancelButtonClasses { + get => _abpDatePickerOptionsImplementation.CancelButtonClasses; + set => _abpDatePickerOptionsImplementation.CancelButtonClasses = value; + } + + public object Locale { + get => _abpDatePickerOptionsImplementation.Locale; + set => _abpDatePickerOptionsImplementation.Locale = value; + } + + public bool? AutoApply { + get => _abpDatePickerOptionsImplementation.AutoApply; + set => _abpDatePickerOptionsImplementation.AutoApply = value; + } + + public bool? LinkedCalendars { + get => _abpDatePickerOptionsImplementation.LinkedCalendars; + set => _abpDatePickerOptionsImplementation.LinkedCalendars = value; + } + + public bool? AutoUpdateInput { + get => _abpDatePickerOptionsImplementation.AutoUpdateInput; + set => _abpDatePickerOptionsImplementation.AutoUpdateInput = value; + } + + public string ParentEl { + get => _abpDatePickerOptionsImplementation.ParentEl; + set => _abpDatePickerOptionsImplementation.ParentEl = value; + } + + public string DateFormat { + get => _abpDatePickerOptionsImplementation.DateFormat; + set => _abpDatePickerOptionsImplementation.DateFormat = value; + } + + public bool OpenButton { + get => _abpDatePickerOptionsImplementation.OpenButton; + set => _abpDatePickerOptionsImplementation.OpenButton = value; + } + + public bool ClearButton { + get => _abpDatePickerOptionsImplementation.ClearButton; + set => _abpDatePickerOptionsImplementation.ClearButton = value; + } + + public bool? IsUtc { + get => _abpDatePickerOptionsImplementation.IsUtc; + set => _abpDatePickerOptionsImplementation.IsUtc = value; + } + + public bool? IsIso { + get => _abpDatePickerOptionsImplementation.IsIso; + set => _abpDatePickerOptionsImplementation.IsIso = value; + } + + public object Options { + get => _abpDatePickerOptionsImplementation.Options; + set => _abpDatePickerOptionsImplementation.Options = value; + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DateRangePickerAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DateRangePickerAttribute.cs new file mode 100644 index 0000000000..7892df6918 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DateRangePickerAttribute.cs @@ -0,0 +1,16 @@ +using System; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +[AttributeUsage(AttributeTargets.Property)] +public class DateRangePickerAttribute : Attribute +{ + public string PickerId { get; set; } + public bool IsStart { get; set; } + + public DateRangePickerAttribute(string pickerId, bool isStart = false) + { + PickerId = pickerId; + IsStart = isStart; + } +} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs new file mode 100644 index 0000000000..f6813417e6 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using JetBrains.Annotations; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +public interface IAbpDatePickerOptions +{ + public string PickerId { get; set; } + // Min and Max date + DateTime? MinDate { get; set; } + + DateTime? MaxDate { get; set; } + + // Max span between start and end date + object? MaxSpan { get; set; } + + // Show dropdowns + bool? ShowDropdowns { get; set; } + + // Min and Max year + int? MinYear { get; set; } + + int? MaxYear { get; set; } + + // Show week numbers + AbpDatePickerWeekNumbers WeekNumbers { get; set; } + + // Time picker + bool? TimePicker { get; set; } + + // Time picker increment + int? TimePickerIncrement { get; set; } + + // Time picker 24 hour + bool? TimePicker24Hour { get; set; } + + // Time picker seconds + bool? TimePickerSeconds { get; set; } + + // Ranges object + List Ranges { get; set; } + + // Show custom range label + bool? ShowCustomRangeLabel { get; set; } + + // Always show calendar + bool? AlwaysShowCalendars { get; set; } + + // Opens date picker on left or right or center of the input + AbpDatePickerOpens Opens { get; set; } + + // Drops down or up or auto + AbpDatePickerDrops Drops { get; set; } + + // Button classes + [CanBeNull] + string ButtonClasses { get; set; } + + // Apply class to all buttons + [CanBeNull] + string ApplyButtonClasses { get; set; } + + // Cancel class to all buttons + [CanBeNull] + string CancelButtonClasses { get; set; } + + // Locale + [CanBeNull] + object Locale { get; set; } + + // Auto apply + bool? AutoApply { get; set; } + + // Linked calendars + bool? LinkedCalendars { get; set; } + + // Auto update input + bool? AutoUpdateInput { get; set; } + + // Parent element + [CanBeNull] + string ParentEl { get; set; } + + // DatePickerType Type { get; set; } = DatePickerType.Date; + + [CanBeNull] + string DateFormat { get; set; } + + bool OpenButton { get; set; } + + bool ClearButton { get; set; } + + bool? IsUtc { get; set; } + + bool? IsIso { get; set; } + + [CanBeNull] + object Options { get; set; } +} \ No newline at end of file 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 acbb0908e9..e47bd840a4 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 @@ -288,9 +288,6 @@ } $container.data('options', options); - if($container.data('options', options)){ - debugger; - } abp.dom.initializers.initializeDateRangePickers($container); return $container; } @@ -310,23 +307,29 @@ var $clearButton = $(this).find('button[data-type="clear"]') var singleDatePicker = $this.is('abp-date-picker') var options = {}; + options.singleDatePicker = singleDatePicker; var defaultOptions = { showDropdowns: true, opens: "center", drops: "down", autoApply: true, - autoUpdateInput: false + autoUpdateInput: false, + minYear: parseInt(moment().subtract(100, 'year').locale('en').format('YYYY')), + maxYear: parseInt(moment().add(100, 'year').locale('en').format('YYYY')), + locale: { + direction: abp.localization.currentCulture.isRightToLeft ? 'rtl' : 'ltr', + }, }; $.extend(options, defaultOptions); $.extend(options, $this.data()); - if($this.data("options")){ - debugger; - $.extend(options, $this.data("options")); - } $.extend(options, $this.data("options")); + if(options.timePicker && options.timePicker24Hour === undefined){ + options.timePicker24Hour = moment.localeData().longDateFormat('LT').indexOf('A') < 1; + } + var isUtc = options.isUtc; var isIso = options.isIso; var timePicker = options.timePicker; @@ -334,6 +337,7 @@ var timePickerSeconds = options.timePickerSeconds; var dateFormat = options.dateFormat; var separator = options.separator; + var defaultDateFormat = "YYYY-MM-DD"; const getMoment = function (date) { if(!date){ return isUtc ? moment.utc() : moment(); @@ -404,27 +408,30 @@ $dateRangePicker.toggle(); }); - - if(!dateFormat) { + const extendDateFormat = function (format) { if(timePicker){ if(timePicker24Hour){ if(timePickerSeconds){ - dateFormat = moment.localeData().longDateFormat('L') + " HH:mm:ss"; + format += " HH:mm:ss"; }else{ - dateFormat = moment.localeData().longDateFormat('L') + " HH:mm"; + format += " HH:mm"; } }else { if (timePickerSeconds) { - dateFormat = moment.localeData().longDateFormat('L') + ' ' + " hh:mm:ss A" + format += ' ' + " hh:mm:ss A" } else { - dateFormat = moment.localeData().longDateFormat('L') + " hh:mm A"; + format += " hh:mm A"; } } - }else{ - dateFormat = moment.localeData().longDateFormat('L'); } + return format; } + defaultDateFormat = extendDateFormat(defaultDateFormat); + + if(!dateFormat) { + dateFormat = extendDateFormat(moment.localeData().longDateFormat('L')) + } if(!separator) { separator = $dateRangePicker.locale.separator; @@ -524,11 +531,10 @@ function formatDate(date){ if(date){ - debugger; if(isIso){ - return date.format(); + return date.locale('en').format(); } - return date.format(dateFormat) + return date.locale('en').format(defaultDateFormat) } return null; } @@ -560,6 +566,8 @@ $input[0].getFormattedStartDate = getFormattedStartDate; $input[0].getFormattedEndDate = getFormattedEndDate; } + + $input.trigger('change'); }); } From a8878a1e01eb078137c3a91f486dea9b3595d69f Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 20 Feb 2023 20:39:55 +0300 Subject: [PATCH 06/89] Update AbpDynamicformTagHelperService.cs --- .../Form/AbpDynamicformTagHelperService.cs | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs index 38f55ca04e..17383b46d6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs @@ -14,6 +14,7 @@ using Microsoft.Extensions.Localization; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; @@ -144,6 +145,10 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService(); + abpDateInputTagHelper.AspFor = model; + abpDateInputTagHelper.ViewContext = TagHelper.ViewContext; + abpDateInputTagHelper.DisplayRequiredSymbol = TagHelper.RequiredSymbols ?? true; + return abpDateInputTagHelper; + } + + private AbpTagHelper GetAbpDateRangeInputTagHelper(TagHelperContext context, TagHelperOutput output, + ModelExpression model) + { + var modelAttribute = model.ModelExplorer.GetAttribute(); + + var pickerId = modelAttribute.PickerId; + var otherModel = TagHelper.Model.ModelExplorer.Properties.SingleOrDefault(x => + x != model.ModelExplorer && x.GetAttribute()?.PickerId == pickerId); + var otherModelAttribute = otherModel?.GetAttribute(); + + var abpDateRangeInputTagHelper = _serviceProvider.GetRequiredService(); + abpDateRangeInputTagHelper.PickerId = pickerId; + abpDateRangeInputTagHelper.ViewContext = TagHelper.ViewContext; + if (modelAttribute.IsStart) + { + abpDateRangeInputTagHelper.AspForStart = model; + } + + if (otherModelAttribute?.IsStart == false) + { + abpDateRangeInputTagHelper.AspForEnd = ModelExplorerToModelExpressionConverter(otherModel); + } + + return abpDateRangeInputTagHelper; + } + + + private bool IsDateRangeGroup(ModelExplorer modelModelExplorer) + { + return modelModelExplorer.GetAttribute() != null; + } + protected virtual void RemoveFormGroupItemsNotInModel(TagHelperContext context, TagHelperOutput output, List items) { var models = GetModels(context, output); @@ -293,6 +353,20 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService() != null || model.ModelExplorer.GetAttribute() != null) + { + return true; + } + + if(model.Metadata.ModelType == typeof(DateTime) || model.Metadata.ModelType == typeof(DateTime?) || model.Metadata.ModelType == typeof(DateTimeOffset) || model.Metadata.ModelType == typeof(DateTimeOffset?)) + { + return true; + } + return false; + } protected virtual bool IsEnum(ModelExplorer explorer) { From 7d91847b6e7a96b5ec6ff208a66ab87fd1c06d8e Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 20 Feb 2023 20:40:00 +0300 Subject: [PATCH 07/89] Update Form-elements.md --- .../AspNetCore/Tag-Helpers/Form-elements.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md index 8f664a80a5..99fadbc84c 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md @@ -261,3 +261,99 @@ You can set some of the attributes on your c# property, or directly on html tag. - `asp-items`: Sets the select data. This Should be a list of SelectListItem. - `Inline`: If true, radio buttons will be in single line, next to each other. If false, they will be under each other. + +## abp-date-picker & abp-date-range-picker + +`abp-date-picker` and `abp-date-range-picker` tags creates a Bootstrap form date picker for a given c# property. `abp-date-picker` is for single date selection, `abp-date-range-picker` is for date range selection. It uses [datepicker](https://www.daterangepicker.com/) jQuery plugin. + +Usage: + +````xml + + +```` + +Model: + +````csharp + public class FormElementsModel : PageModel + { + public SampleModel MyModel { get; set; } + + public void OnGet() + { + MyModel = new SampleModel(); + } + + public class SampleModel + { + public DateTime MyDate { get; set; } + + public DateTime MyDateRangeStart { get; set; } + + public DateTime MyDateRangeEnd { get; set; } + } + } +```` + +### Attributes + +You can set some of the attributes on your c# property, or directly on html tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. + +#### Property Attributes + +* `[Placeholder()]`: Sets placeholder for input. You can use a localization key directly. +* `[InputInfoText()]`: Sets a small info text for input. You can use a localization key directly. +* `[FormControlSize()]`: Sets size of form-control wrapper element. Available values are + - `AbpFormControlSize.Default` + - `AbpFormControlSize.Small` + - `AbpFormControlSize.Medium` + - `AbpFormControlSize.Large` +* `[DisabledInput]` : Input is disabled. +* `[ReadOnlyInput]`: Input is read-only. +- `[DatePickerOptions()]`: Sets the options of datepicker. You can use a localization key directly. See [datepicker options](https://www.daterangepicker.com/#options) for more information.) + +##### abp-date-picker +`[DatePicker]` : Date picker is enabled. + +##### abp-date-range-picker +`[DateRangePicker()]` : Sets the picker id for date range picker. This is used to link start and end date pickers. And sets this property is start date or end date. + +#### Tag Attributes + +* `info`: Sets a small info text for input. You can use a localization key directly. +* `auto-focus`: If true, browser auto focuses on the element. +* `size`: Sets size of form-control wrapper element. Available values are + - `AbpFormControlSize.Default` + - `AbpFormControlSize.Small` + - `AbpFormControlSize.Medium` + - `AbpFormControlSize.Large` +* `disabled`: Input is disabled. +* `readonly`: Input is read-only. +* `label`: Sets the label for input. +* `display-required-symbol`: Adds the required symbol (*) to label if input is required. Default `True`. +* `open-button`: If true, a button will be added to open datepicker. Default `True`. +* `clear-button`: If true, a button will be added to clear datepicker. Default `True`. +* `is-utc`: If true, datepicker will use UTC date. Default `False`. +* `is-iso`: If true, datepicker will use ISO date. Default `False`. +* `date-format`: Sets the date format. Default your culture's date format. +* `date-separator`: Sets the range date separator. Default `-`. +* Other attributes will be added to the input element and [datepicker options](https://www.daterangepicker.com/#options). + +##### abp-date-picker + +* `asp-date`: Sets the date value. This should be a `DateTime`, `DateTime?`, `DateTimeOffset`, `DateTimeOffset?` or `string` value. + +##### abp-date-range-picker + +* `asp-for-start`: Sets the start date value. This should be a `DateTime`, `DateTime?`, `DateTimeOffset`, `DateTimeOffset?` or `string` value. +* `asp-for-end`: Sets the end date value. This should be a `DateTime`, `DateTime?`, `DateTimeOffset`, `DateTimeOffset?` or `string` value. + +### Label & Localization + +You can set label of your input in different ways: + +- You can use `Label` attribute and directly set the label. But it doesn't auto localize your localization key. So use it as `label="@L["{LocalizationKey}"].Value"`. +- You can set it using `[Display(name="{LocalizationKey}")]` attribute of Asp.Net Core. +- You can just let **abp** find the localization key for the property. It will try to find "DisplayName:{PropertyName}" or "{PropertyName}" localization keys, if `label` or `[DisplayName]` attributes are not set. + From 0ede3d7c18f18db1c2f314da9c67c60263b2e210 Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 20 Feb 2023 22:04:54 +0300 Subject: [PATCH 08/89] Update Form-elements.md --- .../TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs index 612ab94216..b911a7021e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; +[AttributeUsage(AttributeTargets.Property)] public class DatePickerOptionsAttribute : Attribute, IAbpDatePickerOptions { private IAbpDatePickerOptions _abpDatePickerOptionsImplementation; From 1516367b48544daf66c4a036c8c7fad0bdce0c45 Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 20 Feb 2023 22:04:59 +0300 Subject: [PATCH 09/89] Update Form-elements.md --- docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md index 99fadbc84c..df8c5008ac 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md @@ -336,7 +336,7 @@ You can set some of the attributes on your c# property, or directly on html tag. * `clear-button`: If true, a button will be added to clear datepicker. Default `True`. * `is-utc`: If true, datepicker will use UTC date. Default `False`. * `is-iso`: If true, datepicker will use ISO date. Default `False`. -* `date-format`: Sets the date format. Default your culture's date format. +* `date-format`: Sets the date format. Default your culture's date format. (JS format) * `date-separator`: Sets the range date separator. Default `-`. * Other attributes will be added to the input element and [datepicker options](https://www.daterangepicker.com/#options). From 4db3e7e671361e41dbf6e10d00a15cba8fbd5e3a Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 20 Feb 2023 22:52:50 +0300 Subject: [PATCH 10/89] Refactoring --- .../Form/DatePicker/AbpDatePickerBaseTagHelperService.cs | 2 +- .../bootstrap/dom-event-handlers.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 15e81e6c3d..6359e15cbd 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 @@ -356,7 +356,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp if (options.IsUtc != null) { - attrList.Add("data-is-utc", "true"); + attrList.Add("data-is-utc", options.IsUtc.ToString().ToLowerInvariant()); } if (options.IsIso != null) 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 e47bd840a4..35b19292cc 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 @@ -359,11 +359,11 @@ options.locale.separator = separator; } - var startDate = options.startDate ? getMoment(options.startDate) : null; + var startDate = options.startDate ? moment(options.startDate) : null; if(singleDatePicker && !startDate){ - startDate = options.date ? getMoment(options.date) : null; + startDate = options.date ? moment(options.date) : null; } - var endDate = options.endDate ? getMoment(options.endDate) : null; + var endDate = options.endDate ? moment(options.endDate) : null; if (startDate) { options.startDate = startDate; From 7e58ee46cf978064f3bde965f339adc6262d655e Mon Sep 17 00:00:00 2001 From: Salih Date: Sat, 25 Feb 2023 14:53:46 +0300 Subject: [PATCH 11/89] Refactoring --- .../Form/DatePicker/AbpDatePickerBaseTagHelper.cs | 5 +++++ .../AbpDatePickerBaseTagHelperService.cs | 14 ++++++++++++-- .../Form/DatePicker/AbpDatePickerOptions.cs | 1 + .../Form/DatePicker/DatePickerOptionsAttribute.cs | 5 +++++ .../Form/DatePicker/IAbpDatePickerOptions.cs | 4 ++-- 5 files changed, 25 insertions(+), 4 deletions(-) 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 75c3291901..a85a41f7e8 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 @@ -191,6 +191,11 @@ public abstract class set => _abpDatePickerOptionsImplementation.ClearButton = value; } + public bool SingleOpenAndClearButton { + get => _abpDatePickerOptionsImplementation.SingleOpenAndClearButton; + set => _abpDatePickerOptionsImplementation.SingleOpenAndClearButton = value; + } + public bool? IsUtc { get => _abpDatePickerOptionsImplementation.IsUtc; set => _abpDatePickerOptionsImplementation.IsUtc = value; 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 6359e15cbd..67b20c3c5e 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 @@ -90,7 +90,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp ? await ProcessButtonAndGetContentAsync(context, output, "calendar", "open") : ""; var clearButtonContent = TagHelper.ClearButton - ? await ProcessButtonAndGetContentAsync(context, output, "times", "clear") + ? await ProcessButtonAndGetContentAsync(context, output, "times", "clear", visible:!TagHelper.SingleOpenAndClearButton) : ""; var labelContent = await GetLabelAsHtmlAsync(context, output, TagHelperOutput); @@ -369,6 +369,11 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp attrList.Add("id", options.PickerId); } + if(!options.SingleOpenAndClearButton) + { + attrList.Add("data-single-open-and-clear-button", options.SingleOpenAndClearButton.ToString().ToLowerInvariant()); + } + return attrList; } @@ -564,13 +569,18 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp } protected virtual async Task ProcessButtonAndGetContentAsync(TagHelperContext context, - TagHelperOutput output, string icon, string type) + TagHelperOutput output, string icon, string type, bool visible = true) { var abpButtonTagHelper = ServiceProvider.GetRequiredService(); var attributes = new TagHelperAttributeList { new("type", "button"), new("tabindex", "-1"), new("data-type", type) }; abpButtonTagHelper.ButtonType = AbpButtonType.Outline_Secondary; abpButtonTagHelper.Icon = icon; + + if (!visible) + { + attributes.AddClass("d-none"); + } return await abpButtonTagHelper.RenderAsync(attributes, context, Encoder, "button", TagMode.StartTagAndEndTag); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs index 9a3e45f35e..4dfdd3b86a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs @@ -33,6 +33,7 @@ public class AbpDatePickerOptions : IAbpDatePickerOptions public string DateFormat { get; set; } public bool OpenButton { get; set; } = true; public bool ClearButton { get; set; } = true; + public bool SingleOpenAndClearButton { get; set; } = true; public bool? IsUtc { get; set; } public bool? IsIso { get; set; } public object Options { get; set; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs index b911a7021e..3b2d605be4 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs @@ -153,6 +153,11 @@ public class DatePickerOptionsAttribute : Attribute, IAbpDatePickerOptions set => _abpDatePickerOptionsImplementation.ClearButton = value; } + public bool SingleOpenAndClearButton { + get => _abpDatePickerOptionsImplementation.SingleOpenAndClearButton; + set => _abpDatePickerOptionsImplementation.SingleOpenAndClearButton = value; + } + public bool? IsUtc { get => _abpDatePickerOptionsImplementation.IsUtc; set => _abpDatePickerOptionsImplementation.IsUtc = value; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs index f6813417e6..993af0c41f 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs @@ -82,14 +82,14 @@ public interface IAbpDatePickerOptions [CanBeNull] string ParentEl { get; set; } - // DatePickerType Type { get; set; } = DatePickerType.Date; - [CanBeNull] string DateFormat { get; set; } bool OpenButton { get; set; } bool ClearButton { get; set; } + + bool SingleOpenAndClearButton { get; set; } bool? IsUtc { get; set; } From c764abf99f92be82ea1eec4ee66d3d8f26236706 Mon Sep 17 00:00:00 2001 From: Salih Date: Sat, 25 Feb 2023 15:39:47 +0300 Subject: [PATCH 12/89] Update picker --- .../bootstrap/dom-event-handlers.js | 116 +++++++++++++++++- .../Localization/Resources/AbpUi/en.json | 4 +- .../Localization/Resources/AbpUi/tr.json | 4 +- 3 files changed, 116 insertions(+), 8 deletions(-) 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 35b19292cc..64ba06ff3a 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 @@ -315,16 +315,33 @@ drops: "down", autoApply: true, autoUpdateInput: false, + showTodayButton: true, + showClearButton: true, minYear: parseInt(moment().subtract(100, 'year').locale('en').format('YYYY')), maxYear: parseInt(moment().add(100, 'year').locale('en').format('YYYY')), locale: { direction: abp.localization.currentCulture.isRightToLeft ? 'rtl' : 'ltr', + todayLabel: abp.localization.localize('Today', 'AbpUi'), + clearLabel: abp.localization.localize('Clear', 'AbpUi'), + applyLabel: abp.localization.localize('Apply', 'AbpUi'), }, + singleOpenAndClearButton: true }; - + var locale = defaultOptions.locale; $.extend(options, defaultOptions); $.extend(options, $this.data()); + if(jQuery.isEmptyObject(options.locale)) + { + options.locale = locale; + }else{ + locale = options.locale; + } $.extend(options, $this.data("options")); + if(jQuery.isEmptyObject(options.locale)) + { + options.locale = locale; + } + if(options.timePicker && options.timePicker24Hour === undefined){ options.timePicker24Hour = moment.localeData().longDateFormat('LT').indexOf('A') < 1; @@ -338,6 +355,23 @@ var dateFormat = options.dateFormat; var separator = options.separator; var defaultDateFormat = "YYYY-MM-DD"; + var singleOpenAndClearButton = options.singleOpenAndClearButton && $clearButton.length > 0 && $openButton.length > 0; + + const replaceButton = function (hasDate) { + var hiddenClass = 'd-none'; + if(singleOpenAndClearButton){ + if(hasDate){ + $openButton.addClass(hiddenClass); + $clearButton.removeClass(hiddenClass); + $clearButton.insertAfter($openButton); + }else { + $openButton.removeClass(hiddenClass); + $clearButton.addClass(hiddenClass); + $openButton.insertAfter($clearButton); + } + } + } + const getMoment = function (date) { if(!date){ return isUtc ? moment.utc() : moment(); @@ -385,9 +419,68 @@ }); } + var $todayBtn = $(''); + var $clearBtn = $(''); + + var extraButtons = []; + if (options.showTodayButton) { + extraButtons.push($todayBtn); + + $todayBtn.on('click', function () { + var today = getMoment(); + $input.data('daterangepicker').setStartDate(today); + $input.data('daterangepicker').setEndDate(today); + $input.data('daterangepicker').updateView(); + }); + } + if (options.showClearButton) { + extraButtons.push($clearBtn); + + $clearBtn.on('click', function () { + $input.val('').trigger('change'); + $dateRangePicker.hide(); + }); + } + + if (typeof options.template !== 'string' && !(options.template instanceof $)) + options.template = + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + ' ' + + '
' + + '
'; + $input.daterangepicker(options); + var $dateRangePicker = $input.data('daterangepicker'); + if($dateRangePicker.container.find('.drp-buttons').css('display') !== 'none'){ + + $.each(extraButtons, function (index, value) { + $dateRangePicker.container.find('.drp-buttons').prepend(value); + }); + } + else{ + var $div = $('
'); + $div.css('display', 'block'); + $.each(extraButtons, function (index, value) { + $div.prepend(value); + }); + + $div.insertAfter($dateRangePicker.container.find('.drp-buttons')); + + } + + $dateRangePicker.outsideClick = function(e) { var target = $(e.target); // if the page is clicked anywhere except within the daterangerpicker/button @@ -479,6 +572,11 @@ }); $input.on('change', function () { + if($(this).val() !== ''){ + replaceButton(true); + }else{ + replaceButton(false); + } var dates = $(this).val().split(separator); if (dates.length === 2) { startDate = getMoment(dates[0]); @@ -494,16 +592,22 @@ endDate = formatDate(endDate); } } else { - startDate = getMoment(dates[0]); - if (!startDate.isValid()) { + if(dates[0]){ + startDate = getMoment(dates[0]); + if (!startDate.isValid()) { + startDate = null; + }else{ + startDate = formatDate(startDate); + } + } + else{ startDate = null; - }else{ - startDate = formatDate(startDate); } endDate = null; } - if(!startDate){ + replaceButton(false); + $(this).val(''); $dateRangePicker.setStartDate(getMoment()); $dateRangePicker.setEndDate(getMoment()); } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json index 2a22849731..706b4ef3cd 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json @@ -48,6 +48,8 @@ "Search": "Search", "ItemWillBeDeletedMessageWithFormat": "{0} will be deleted!", "ItemWillBeDeletedMessage": "This item will be deleted!", - "ManageYourAccount": "Manage your account" + "ManageYourAccount": "Manage your account", + "Today": "Today", + "Apply": "Apply" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json index 67ae56793a..e122b9b531 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json @@ -48,6 +48,8 @@ "Search": "Arama", "ItemWillBeDeletedMessageWithFormat": "{0} silinecektir!", "ItemWillBeDeletedMessage": "Bu nesne silinecektir!", - "ManageYourAccount": "Hesap yönetimi" + "ManageYourAccount": "Hesap yönetimi", + "Today": "Bugün", + "Apply": "Uygula" } } From ebdb25486920997668eb1493725ac2007911dbda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= <30300440+bariscanyilmaz@users.noreply.github.com> Date: Thu, 2 Mar 2023 14:48:50 +0300 Subject: [PATCH 13/89] document card component all features --- docs/en/UI/Angular/Card-Component.md | 172 +++++++++++++++++- docs/en/UI/Angular/images/abp-card-body.png | Bin 0 -> 7378 bytes .../Angular/images/abp-card-header-footer.png | Bin 0 -> 23414 bytes docs/en/UI/Angular/images/abp-card-header.png | Bin 0 -> 20130 bytes docs/en/UI/Angular/images/abp-card-image.png | Bin 0 -> 206544 bytes .../Angular/images/abp-card-kitchen-sink.png | Bin 0 -> 217838 bytes .../UI/Angular/images/abp-card-list-group.png | Bin 0 -> 7109 bytes .../images/abp-card-title-text-link.png | Bin 0 -> 20468 bytes 8 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 docs/en/UI/Angular/images/abp-card-body.png create mode 100644 docs/en/UI/Angular/images/abp-card-header-footer.png create mode 100644 docs/en/UI/Angular/images/abp-card-header.png create mode 100644 docs/en/UI/Angular/images/abp-card-image.png create mode 100644 docs/en/UI/Angular/images/abp-card-kitchen-sink.png create mode 100644 docs/en/UI/Angular/images/abp-card-list-group.png create mode 100644 docs/en/UI/Angular/images/abp-card-title-text-link.png diff --git a/docs/en/UI/Angular/Card-Component.md b/docs/en/UI/Angular/Card-Component.md index 5c92d7abed..40d23a594b 100644 --- a/docs/en/UI/Angular/Card-Component.md +++ b/docs/en/UI/Angular/Card-Component.md @@ -1,8 +1,29 @@ # Card Component The ABP Card Component is a wrapper component for the Bootstrap card class. +It supports all features which Bootstrap card component provides. -## Usage +ABP Card Component has three main components, `CardHeader` Component, `CardBody` Component and `CardFooter` Component. These components have their own class and style inputs + +|Component |Selector |Input Properties | +|--------- |-----------------|------------------------------------| +|CardHeader|`abp-card-header`| `cardHeaderClass`,`cardHeaderStyle`| +|CardBody |`abp-card-body` | `cardBodyClass`,`cardBodyStyle` | +|CardFooter|`abp-card-footer`| `cardFooterClass`,`cardFooterStyle`| + +In addition to these components, Card component provides directives like `CardHeader`,`CardTitle`,`CardSubtitle`,`CardText`,`CardLink`,`CardImgTop`. + +|Directive |Selector | +|-------------|-------------------------------------------------------------| +|CardHeader |`abp-card-header`,`[abp-card-header]`,`[abpCardHeader]` | +|CardTitle |`abp-card-title`,`[abp-card-title]`,`[abpCardTitle]` | +|CardSubtitle |`abp-card-subtitle`,`[abp-card-subtitle]`,`[abpCardSubtitle]`| +|CardText |`abp-card-text`,`[abp-card-text]`,`[abpCardText]` | +|CardLink |`abp-card-link`,`[abp-card-text]`,`[abpCardText]` | +|CardImgTop |`abp-card-img-top`,`[abp-card-img-top]`,`[abpCardImgTop]` | + + +# Usage ABP Card Component is a part of the `ThemeSharedModule` module. If you've imported that module into your module, you don't need to import it again. If not, first import it as shown below: @@ -24,29 +45,164 @@ export class MyFeatureModule {} ``` -Then, the `abp-card` component can be used. See the example below: -```ts +Then, the `abp-card` component can be used. See the examples below: +## CardBody + +```ts // card-demo.component.ts import { Component } from '@angular/core'; +@Component({ + selector: 'app-card-demo', + template: ` + + This is some text within a card body + + `, +}) +export class CardDemoComponent { } +``` +See card body result below: + +![abp-card-body](./images/abp-card-body.png) + +## Titles, Text and Links + +```ts + +//card-demo.component.ts +import { Component } from '@angular/core'; + @Component({ selector: 'app-card-demo', template: ` - Lorem Ipsum - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla commodo condimentum ligula, sed varius nibh eleifend sit amet. Maecenas facilisis vel arcu nec maximus. +
Card Title
+
Card subtitle
+

Some quick example text to build on the card title and make up the bulk of the card's content.

+ Card link + Another link
`, }) export class CardDemoComponent { } ``` +See card title, text and link result below: + +![abp-card-title-text-link](./images/abp-card-title-text-link.png) + +## Images + +```ts + +//card-demo.component.ts +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-card-demo', + template: ` + + ... + +

Some quick example text to build on the card title and make up the bulk of the card's content.

+
+
+ `, +}) +export class CardDemoComponent { } +``` +See card image result below: + +![abp-card-image-top](./images/abp-card-image.png) + +## List Groups + +```ts + +//card-demo.component.ts +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-card-demo', + template: ` + +
    +
  • An item
  • +
  • A second item
  • +
  • A third item
  • +
+
+ `, +}) +export class CardDemoComponent { } +``` +See list group result below: -See the result below: +![abp-card-list-group](./images/abp-card-list-group.png) -![abp-card-component](./images/abp-card-component.png) +## Kitchen Sink + +```ts + +//card-demo.component.ts +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-card-demo', + template: ` + + ... + +
Card title
+

Some quick example text to build on the card title and make up the bulk of the card's content.

+
+
    +
  • An item
  • +
  • A second item
  • +
  • A third item
  • +
+ + Card link + Another link + +
+ `, +}) +export class CardDemoComponent { } +``` +See kitchen sink result below: + +![abp-card-kitchen-sink](./images/abp-card-kitchen-sink.png) + +## Header and Footer + +```ts + +//card-demo.component.ts +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-card-demo', + template: ` + + Featured + +
Special title treatment
+

With supporting text below as a natural lead-in to additional content.

+ Go somewhere +
+ + 2 days ago + +
+ `, +}) +export class CardDemoComponent { } +``` +See header and footer result below: -As you can see in the example above, you can customize your card component's style with the `cardStyle` input. You can also add your custom classes with the `cardClass` input. +![abp-card-header-footer](./images/abp-card-header-footer.png) diff --git a/docs/en/UI/Angular/images/abp-card-body.png b/docs/en/UI/Angular/images/abp-card-body.png new file mode 100644 index 0000000000000000000000000000000000000000..d5d7d07d2949c9e662f8c18f00dc0355a945d595 GIT binary patch literal 7378 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/en/UI/Angular/images/abp-card-header-footer.png b/docs/en/UI/Angular/images/abp-card-header-footer.png new file mode 100644 index 0000000000000000000000000000000000000000..72f0d7be45408989d0fc0cba079cee10bd43ee09 GIT binary patch literal 23414 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�{+ymtuQz5 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

FqTUV2bGe#auI4%H zzIcDap-6yO4{x@y;6PE+xs9KJLiDZ`k4Nz{_T()c%W5rm}DC z5&aQ;*OJW}gZ*qzk|f zJQaIO8&@uRpqfSB6=bRh-48>SJ;o0nx-#upo;ZQ6bz?YFt0FtSMa44}N^I85WzY?* zV%o$F4UU-DhHI+=sRB+~Eu2XI)BtK<^AL9ePZ-$kCsW=4KgRt5+o!^=8KqQ$C6YnC zUoD8^vIg<$*-n421)EdNZwp7;F!(u8vR{+tymY37ZkX;p55<|Ax~@|rJcL>&25e)8 zPknPrDHkKKZZTA@^cblWj2z3Dn|ueQb0bdvdH4ns(eZvuW58FaoWDQBndiWR#zab_*HdYIy(jGyRfO`XKH!gkH;($LAX>_NP)pbVn zc-x=iAp^TJYv$ze7ZVB@2iT8_oleBtwn+h_q>U0Zi17=G{8SJDG9;UQXz+(q7OuhG zi*@$&p5;=2V^swjFn%Rr_Pa4eH11LE)HHx2Z-I7;;$_88AO`K>=jkszUr}qZ@V<>~ zYy4EiUgmIA$>LvxAc}hO3Zd%xspL=ZH%994)~|Yaot-fy#_t=8@!kg}@O}|{O$M^# z7lengR>@L{b@`INUwH{6y7lxaRipunjq)s@qNWJcUa@x^vRD5p{tDCBoqjQqi(68} zRP>pdWC&I7mm_kazsLn?gATi1N9N!7!;N)#6&=8(Q`jNhejq#QSknp{t8d_H?Ev~( z=0KU5+_3n|G2@v9zs)FXs{Y2Vu`?Y;0X!c(diBjUlb3)T(QrS7W|dj(+cD0K9KgL-V46^y;8>@{fGQ-jYfz5MH^?PGHqW9$Hl&|#1*^%n%IXC<(yIrNk*qEt& z!H-+ot7K^vf^!WS5?hxVfOZbjINXZ*_Td4zg!Z~>HiC21Sh0}a>i8#$5TnsM!%{6uN|-RyULTA8!sOBb$jfJjHuIUif9yR?&4GnT%zD?JE( zlOqu+$Op8ue*uR_Q4=ebe)i#c(wR zRNH@S9mjJ%E5wcR4z{J2qPhM0!7ubgb*0-ZJ>~H@7S=AoKm!PqRj4dU9gbNTOLsDw z_i!a5Ke&G(;DwXfW89D#NCh#IqotRcEGmbr&(`(bFT(Z4gzUr&!H%?R+)WrQKsJ*6 z`0}x!mOP(4*TzH|y;gRK9tl|B<2=0WZ_PRRYLF zMWsXUr_K(F6XX{YKmfFqbd|bN%uVPcxS^dH^q@hg(*tzTZnPB?mq!nr@+7v8Vky ze*YdpiGId2wGu;ydR;m`(ym37*I}l!^d#xGIARYoGQCXy*&liP`zKG1T1k-2FZ5D1 z#5j2GVcO_c*~Cb16V&40zieeDc&?PZSM^EoL@U~(hLU`SHnWd6lxzjj;`i>`ZjDiQ z-zm-?*no;>MfYO~GHrOwJQ@Q9V8?^1E~_Y%K>#sYwDhGAEMPO)a8OD7pMU`c_*9qX z9hbMqvc8^mc5m-*uIfJF{!73>n8RYG9e?l*;7o`^B2ZjZPA!1r>EMvtLW2-Y z@jy47yO7tp2)Vh57)*h{8i~+Ffe;)`1;vICy!$t@4>_2kjh+hhf1&^WAB3FU5PTa6 zX_J4yX6Q7TK%I-sNM0v;+bLq`LO0eUw1-J$H2W2vJU9f^vJIpy#qX`ei$u|-)hda6 z-H)1RwihF~Rj>1ls%1sj`7Qjh_44BVuUS$L07qC!Hc-1mKlcP1mV^WLKC?Dmw0!UW zd6tsl)c#J*Vt)R@?aq-lkx+6Tv*c&POK`hwQ@(n)qDE2|x)$4T_Wq!|^1CqB?U0U9`0f6xkl#~LYM5XEKEpL#cH1?6EoZESHRIzG=}RFY!7p)b8JD@T|z z$uxgV{5;!Oywz$YUt0H<)-C6Lj5D0n5h6$IZG+~5YL=9UKWl|D@S`9dj_ub3y+CVX zV54;FE9M&xO$R{qW|O0&Ty-uEe2F1uaFZj`zS{T%?-HF3m>c(3VVpModyzIagU?Qj zrYm<8qQgQvJ+CNlHP46KvL{q+72|7iNwEJq4o(`a>LU; zSFUrx*57GB-dNzQuRY!2tBw{s{KdvXegZm*;HM|Yiq>)9rkBQ1FgLzJ4*1zJN4_#l z(8s}7)CkgvGu%MFsK00v^>+<{#1}4WN74Cw;dCc?8bD1BUIOXJ)9-xo+WKEPc)pXL zje_e4iXZhOV=e)ljSaFb5@fcKG)vzaa5BCxqK&g|o?sbC)`& z$BR*s0O9??DlFATa+`cbad%1f5}1^|FO`4#vi->Ghz!ojF@?*xveC`l)%= z_D7(tD@wIECc@27EphLp_>(fl9Z=bFwHq_wE&6yPLY@E%6V^F8I>p`~NR$*LX1m$U z^QoTRjmcyn>cnw%HSMCp;}#}Z@1%;*b-c}u7ZOh{p=^X!0fmLZs}dbq8v9vC_)ZjVJg%7Jgv?)X z5@l?9IW;ntc$;B)+NbY(HLg*2lY%zqlEiUS!a?w2#^X*>74*J_%_qVqg{#XF8$$a{ z#dEzGiOva>E3_CJ1w*PBmf@&~p<9wW2-nCxFMqejL!FK6B$BH)G%waZGN(0&Z*CI#>GCdG0|9bNfWuyz(Qy2{m)ATnoXQ{ks&wQ@o)chL!9}dPW?SqnGi)k08=9;`DN51nJEq z%aYnuNqa4Gcz$Gnnf;l4D<+i0{M{D?$!;l0c>~jvYY=>UbN|i(*@mt#7qf0W@#00A z(HIE5=y?U&#ZBb~M_j4@nI?iBgk3O1t*G{~(|6B~?#q9&_3KzkH({$+up{>R_)=n> zc7+P2AMBlZXGH&|KV}>Bi&ACxnwQ&r?JUl?mc9+pFVR~H4qn8;p@w^|_JnDj$tuh7 zcn3_>e}kjnP70q#vj_jV+KSyTG5p4+klkVo)quav4% zTv(CU4AUN+T6{e*&bsBdJZ%eU8L&*}M#;9qPyiYQSsdK0X!5!*Yt{nhVSK2)OR%v> z&P&adc{MUD)XUt$7fiTI4i7fJ`u0yPPZ;3+Ym&a3DZS)LH=`YC#)L=x1ogVey1~a< zC{3R$D3U=(;EOr7BL82o_*_uUyV5Cm1M@~bYD@6H6d!q({F}ZSPEy*h6^S3tgkEsQ zLSdw1PY)=6TIdv!3Rg+z!npM!`?0dQKgiJK<_Z}@z*0;aCmBk``SJLFn8l5S^lDeF z5RJQIRvWn@dag{$Y~9TW3L6=Ti+gJG(07vcBCE5#gRsqiG|Xt8Uzx-Q>XPA-AG@7x z1D}8Q;(E5h8oz~9f(GVaGj;>;^37&3-e2i%cd41`I1Uix{upZ~8iWe868zhSttRBb z9#eH=56}*EzQW-0KgY@bZ}(_0jy!Uf<4>c%J!K?`WPsvwS=cXy)GvNL!7tXKbvZPZ z;%xanWwui;!QQqXG1|0Cn@TNN4t@#by?kLXvre!Uw`nOhGjVHTZ^)$ zqeaY>Ze1KvM)_h}O3LbsTKZ`mdi&4amai;?l)5^NBqcmZr)Vb)S9risUP18~JJZ;- z6d6H&PU!3(#^>mxa}?5j3;Fs+>?Pot+P3sKsJ&6DDWc2_J94dcJ$(v?kvN+g?W{(h z!j{Nf^IgbFbu;#J(TQU}#l5U|J^)s~ANtLStNt)?=ium(&3MTqI#EbJ;_e~V(^&p^ zSjP95n}4^?5QcwL-jweVVM7PGEkqXoF?P^ac(9lUAyh(+st`@}hd)%31h$ZWGKlyVb1p(m><9-0Y zPmN**+{T+hT?h!;rr$rr)&7=`S?j6pk}$V_C&2AoHl8p#e^h1b)*IK>QS#$MC)`l2 z_u8^XiY5ZN#rgOOGjhe&%~7tW;RXebyNYd{IV}1Ko-5wpAjcW6Fm`s$Td1-Y&&nND z=dHVSoJo?+Mb~{p8})M|ZOAflTww#e`A=)es?H(^)|-@J#*s(`dv2DII!aMUt$lxs zIgfs1cN2g*C9_^55c3Oi4~^Ty>oMu5#8>mO6~ITb7iwMlIy-@K2+M|tlAvW&g<{*3 zXKCdiy-}V4sHPB!cQ=V>^WG2>#El|!&a@G;^T&lxtXR_Np^`93x@n?FwW}L%d;vxp zqMzoJhb_~;BI)G{z(7V-h;$I?IXY>?#aTRr&xVr2_oH%Po%5hVSHNaW&?ja_VjBTE zo7*hLLmFA-Uo!ElJDL29D7EdqS$j6u?3#Cs*DlfD$Q!fSL`6479U5miO|C7@+sM$l zC09b)td`jt(0*0;JG>uiyYgl9%o5_o2Ze>#Z}c%Gz3NhKxkc&th|%SFZy8tRJkB?R zfe_ia48mfis@JE)B`USnx5g3qXF2o{o`w`!Z*n0aI6NAFb!GI@Mu812Ba*mC z{g|DdPMG*j08g4tONtv-F;S27kZy$6iK26px+qXLw6!H2fkyLr9 zd+zny?3kLl>j}h+BW4TW+|&XP%T$E_5$ewfGEcE6qB>%GSK2F}Q9luNLm&pk%~6^BDk_uC z(6fAAC|#C0JYH~Q6@bI`&Q|q9F)qJL_0L)HM=Iom-{6!{x^n%GmSk>4wL|m+0oMID z_mQ9N`(U!s=lEj(-e3#w?d0Mv>2eDxb`T99-b14=tk((#sN&y^qS#* zz9Q?+pN?&s( zLA+@!Xt%;bULh{U7+VFl*sl@9+p8H8Q@fG>8NStx7spgJ7EeV^x*XZwrPVcD2;O5 zz16V%@yw;1&b5mUiObDSTx9F6hEYcaNMjE36)s=tKd8LFeNzm&uFUm3KH|n9Ua~k) zOD!_`s1!`plbAl{#zL3N%MVqaqWPtj{2$cOy0_Y;Y`=?-jjaPt`&QtpWreO6gJ!## zDAKRh#+KSat}`jkG-g2)aP@D5rTx+BDvbr{fo^YEL^*0>jFUrNqj8-KrlUHezl-dMO5_O zI!DS4mZ=h3?|&1~m&$qdm=_K5El;P=C>?;+rhXN3YayF5-l}NXj;0DAS#PGMSXAw5 zJ<-JivlaJWK09ij%TaMBH~3+Bf)U5haZv4*Zn$)lw2kXlgxs2gNxX8z%g=jEndU|I zXS8p+CPQR+evdd|b@i0vA1T6CUi2?r2Pdtr86{bARci@Rck8k}uag^Qv%{Y#_ra+X zf)p5#Kwgtav?+yV>4bVCQci2vjIIQ*zTgCg3p8RQX6Lf)P>n88;fcBNy^D>q<_@JFBp^zO~!$ zQoIlv+@WYFUV;=Y-WD${(Be=iuE8a^1$X!2UR;Y?@!}AyxO;#AC;flV-rqUryE=C# zcgb3r>s`t7By;@6nD5Ne$YloO5Ind8_V&5Bo<6yz zrEcGjCYr85jf}pLTd&y)E3;o5rh|jp)og493J@41l3z1VWfg8^u@eYYV={HdPa3T|5k=4~_vVw1ySzDe|VM!{4sKEGb7%nAhAC^oN4 zZ;7@(oXHD`+|Y`84)a_J(mzE$C;9E;6(8wPTDO~-C(Zju3s`dwQ`PzHW7weBW%lj* zQCLY`c#?0rMo8-czao^C>RuDOU z%ljpS$0;eH48tgenV3dV>FzUiiF4*1A>PZI*C0#@5^_r04=2dh zN6j9lj3rv7+)usiKm9`j$Gv1$J6w=J3PE5T=Brk7i*7?RJ? zwRKDZde6}%cf|jn8Da~_)EMaSOvKx>j2^o}NrKeX+b`>#+a78uZ@|y*1cr{G^~WV< zH#+n4+Mb9(AFD!AYyHlUYdwYD#Eyb>pXp8Hg_L^UNT>|{D-E##{SNy&iukOqd5K9~ zB<6SHghR)LO6B$yVa<$c$_~9|O0S#s5@!?j*vW1Ci*L8pKau7(rc+Qgnl2jh`{yI&`lcs;ng%YlaiJGFF85- zrIn-3an4K7ToX>E?R?;&dCHvTg>CwbEWJa1(rrO{m34;*Y(UwzVkN&EzK%7Q=m6Gv8HHpRI|jdF(5C0qd>ZY0?_n^K_s^N0d5b zMskv)YOCv1=?m)3UKkIxE!3AI&#?dp{T<83Jj^``_eVZhMjI7@n%01s$5W?2 zp3C9q5ecBt5y_c$+vi|*-0qCFx&kt1%VN&1$PuXQ(25HKio`{qHvyjp1-`g2n%Al6 z$LsjedOOKtHGj(WN}NMZb{HfRd^a!7zVsh@$G+y}fQL>qXwD~AVclEY|nyZ55& z*GyX56V?s&DZIqGf-~i1<#6@9jj8I72lFAR&xw@;svUAh&(~M+Wx|`#wKG>jXqdNw z-p1sf^JZdo=JU#;r<2}zVUf}ymmXAg4&~rqA67gp>THGDN%r-<M&KX^-_~dmw6=tLI#;ZISA1=tsTM5#5m>6)svP396v}M0Yc}e>3wKBUW=Z#9HTaB zsxKqy-q>2-{$WI|r=8J6s`7nnBmCI)mr{BJ0`!!!V?e5}Bhp~tcQH1_uWuQ>WF9~4 zir^uW{&INjhNPxS{NHEEhU=Zf#?Zx@g5p|XblyXW&f(F^MSAb8Xp8*R5@wYRU2%RA@Ni& zk_uJ@^ge+wowQYH4{sN{uB$wDB|Vil>N{Zil^wR_#z9As^4bhr=_mdZ&qULxKKJ-< zH2$+uM7)Ck#b{KM{qx|bAp{dWJ^>Er{}aST({M+7QHlUvdjb4PMMG?XcYm0EWq|P_ zf}h#(Y%73&ZyQ`|=GiGsf)y_$g3n@&JU=dlC#P(zD$F`_a{q;1L7bL)@;2HW-j}PM z0gf8(8!*=MlhIE10JzmPWpkgy!3alhHqOF6Ufuoqwu&Kl1|9#M#?l!hVRM|xT-N0i z0Df3!t!n@2#pjHTv)gXd155HSHi;Kd)3gkbTp!#joti>r7gE7i@-uA$!hwagFK=iw zsneq#q>`{@uyXg&oA(r(uIrn{!v@7v#ep?4^GbxwmG6B+MQ>?VtD6D4%- z1ZonJ8q(}AAFwlO(8t8uwUiW))JxY02AMDLaT}#_to1}SSJ*cF3wuD{zP9R#jc`e; zk=;s|yxkqg;VnsN)f-!@$1N|Bix&`YNY$kJX+*Yl%@hI%cp3eTzHiDUMh8dCKjCmN zPHOewQ@>b)_OrbaJ?yaeT~q9|KhZ|V@>3e`tM7Q1#}u!sno#)!9>y~@1!_+?V>U?j z)DYf#hyKaKC9iQ%m=gleD?PCbXxhIfv?zX}gY>w(MclY1d&;t9<*8}i&Pg#vi>+@< z_n8ShOxQ&APrgtZwh?_wFq@^N>2Bamd~ltZ#C3FzUx1^L3-9Q^W# zN&<8JSU*T4Psdj3yd=Ya8y?;%eA{e2>}>9ou_oA4&^a(oQIOek*_493F&=LZ6N znMapo+eoY5y{&H%xG4N<^Pq6he=@)qq%yGCmZwAdxn-2 zvOb+qUGA7hL6wh`Zm`Dd(Sl|9f4I_(`hU36{mYVyDf0|e1xRGe!p-@gdG+i<`2Dw} zTYY7_)w^bLCY8d($F~&XE|YJZ==ffudMK^K{RXca3mW-mdYwM4?QiEle%7u0)XG;> zs29U_jW2ro8+UQ61ROs_p`-EiKc#v^mWG*y*cE*r7@KGYF zLb^VWHl=Xc14N}*lqVs{SeDqVMb3w5xUiM*UC>$G+`LF;w;i0HZ_{Pbel)>a-K*BS zcE10*#<+oR6Odv#08-;ZMJ-=!X#!EZw@IXz`O&Q{=!pU~*&?Y)8L7v7hM53UZLg0N0$eK#C!0A#Gt*l8}=8~buZn4D##tIH$FAM>>)&GL|fG)4Pam}Gtw z#XK7u$T@p9X_l-U;cb(l+aowG9(6(C@|4A8_cBzEdxD#&cc#br zjWAcBHjN=8b)^ha&o~W9hB3p)M37AKB58pdm10wNa*Hlf)__-MN<2(l{ljD2-A{?P z4pBT?yoYQDQV~PH@2D#(Etch+UebqSeLgfv)snE*2BqZXG39+g7Ooi2w?Q6|DaoQ- z&;4upnuD=0V-q=BPz$AUL$%JUDr&@2hT@_vyqh`wB>#xokek zVeQW;d3J>Si6e4o8ZT(aQzv`OXrsK2pVws^^ExXn^d&f=iKD^br z{nwH9Eq1JbaoklOX43tddIuST#Zg6j7F#hpCyDLRIDQdkEsf*+{ZKwo-B-1eA9@SK zJ;)W@E*y_`B&xZ2U<(}POO@<&UcO8vB%ZZcq~Ybjjd}1?=f#?KHs^R0s?-*Y|6&Cl z+DqSJ0h^~q?nW$svCFJD#Rn9Wn91_Z=S?+f$_Fssy4N)MJMe6Jg@3TVI~yNqZFDP| za%OzHa~$eBnj9GqE1955BkV>4`nbo_)?bF~b#+}`KM4^IE9~OR+)JnaNKanPo59c2 zR^)g~-V^JSBz(3!L~S(;l5{Fm2eYIF65^Kg3!NA;?>aO#QxktB$gFkON}@WJ{oSSUsT zh(hIX9H#`gw{C10pWXWH3j9gbhUz}1sL$v$*T0k?DQ$@V31+~wNBwEPa3P<5SP#zt z38el$A^2u=uW)Bqpg{8-Wmu$R>ngF#SPjUyaRwX8oJQ8oxh~NGOfwgW$aC{^AjcYC zNl0^+Y}O+A4UMJWs-9J`auQ%5I*q456jG@4d9i zqFL@eUtSY~1S;fv+lfURu0`dXoB-|e7oyzF$;_^zY~-JI_qhO%9vd)vXxf_xjf8sA z{iXxl^XSt)i?UIPV>{+}Nf+WYfqZlE&rxUL5n9p_5nNn2QzEsWZTHh@aR$}1?<`m| z-R21;rqg1rBNuiTMJKt}L1Vo$GI>S2UInAJ%J?b;>V{eP@ktt)BsRozXvQt5@5r zgidN7k$O*69qjgoxQGOBa*M-Ik%FILWDV+rfc z9n$bS+SI%y;{9}N4#YH=oHDFxzq0u4U_oXi(Z$r!&%+H-)yz5)wzSF9;vevjQHOFQ zNZRJnJCL*atXMS*egTC-HAqL~dkgx9D8!2zdp;QZ;`ZmV5wJ0QvNxoyOd-)DiL866 zH!0|mb@z>}XN)k~Gg_Sht+vmcEgd$!PtKV{TV2Dt)A}Vt73^E|W47YPjJ$4n5z2SA zqK@A_vfeIWIoT{Rh+e-Xl+!%!&|=l-sHZFRi>nIvTreexl*W5sDSUCFtu-Q`-vsoC z+yz3fUvY%C$Gb;0_G%@*p-Eg2ojzU>^UKy3_4#TM-+~{}oXCXPt&{HO#3i7~_utYz zSkI-`Z0!YO<(pk4$KO^##Z4HrneIEyYwpV7j?-QQhy zQ^XZ z5v5WnWxRuSg~r_o)&(NGMP(WP=5R29uBe?qAe|wHlV2Ryg8dXHP_OC)q7)@Pb{7FT z>gaQHGFfz#nC_GX`jVkb+NsI>mDoDO|HmQw45yPzlYxODX<4ysSf)SolwTb;I_k72 zx=~?75OtYu6OPAOh0*8;_ikxDF30oCcOg zvuhQgVkv8(o7&vx!*b|3wsttan)+H+K5H+b1SRy?Qu>n}+pF4pYA4Ds;p`8T(-E8} z<5-L~4}?pk+m&K;&3KEM3t_0X=mn+(JILSLa{cgX+y;3z);ZPY40ktX(Vl`T&x>(< zbU#yx@ZiF`Qgv|UCq}oM58*@5r;Cm+)%p!1GecxMzJv^RTV)Aa3)j#sPG05wHj{z{ z)8^%x8g_DjW2j;0zU85joQYg^?f8YQ4#T?WR7)0vz93{MFnJa*`uRj#97P-RME{wsJBEPGHnz{v>49)fQ&PK^BE%j;{&?NOncC5^-!DN>ya@Wj%i>atk%=YB7hpr#4 z=R`!F#)Q$L9xwX{M1rBm!!oyObW5U_Uxr@WzaluM2In5Vr4_&9BA+5!2MUXltIh7I z{U;?L`d6P41*NFQUvUBW>to5?=^bvt0e7n8wBp$0_MBZ6G?;XR^5CQwCe!Q#7CZ(E zW3fEOlR}6YvKJd!Zf23GkwpN#8;y+9Z=!8+>(t^T=kY>gIiey&$FvUp`DtCNd_Ky1 zADRdwHs{hl<4y_6N8connIf5$>j4oyz>lT_`P%ilLfHXMvp0w`Gju$=KbC9QH0AS3&ntL1Idxrk zg|1gKyxLWik;W#A_XMJ|^>>yiBlr*tTCkx~+jbe~>?3pucZ3{7)T`9p1B&5`SHGST z)LY*wE;gLZQxW(1TSr-OS^XHisfN~y$@b4u3*{X_wdd;B8X)lftoh8@k8}0AyuuGN z9d%D55fz+|(^!i~P}Fdqi?BuUg@OJR8xhpLwnK|>kNYueTQ5^>OeH$&Y;c9S$Fao1 z6NS{nsdaD!9ee+L#qlT0{sXpE9?gaMdqwSsdcj3F`>fS!$jfQvG2|4NfykXxlTMvO z^W!|UKBGCC#<=~V&;d!Yk0->Y&Rnq)+jg)ne5rDk#BY6^H3JZ0yJM;8WprM19-c*C zd$s=d$DzbM1knChYrU}|jQuOM&`g5?B1f3yS+5&yL^KnJejBbr;Yr;x_w0CD;e30)V-HggAa9~;(BjaC?|0(` zpLeKCOCui651z~eEghqb{wtHp7GBJao#Wy-uJ+pZcAsyHe`ZN~J^j=J#I#;X#g>u# z*VaZt(NyFGjXOfb?X#3_-AmAA;k#@*;uekapF}G2-U6Gk2FW8#QOagKY~}#UwN;y{ zLV)|ei%NZc_N^W5tNKEt^X6&dhd5U|T|gQ0J6SAlkr9ol9YlfSPBQO8B2h&a?9aru zT6!}Yfp`-sRl~R3>>66m@`Y<0DeilPc z7pS`T%UKqQ*?cavil+$3EfyZ^+ea59AUE1ty;|Yuem2$-l9Z(va>^-R#mPCgOW;Y| zlDx+@6WJKMS<<%&)N1AA&eew?X`(ohv3xB~k zb7HbPOKi`WCE6!x%|OrNvTOhz8oo}s-Qn=NpFYvO7Zq^HUa%R;WANh4bagL$~0)Pp2Pmp9Yo7yv-%{P%}J(5Av2k z5qci<)_~@J%Yqc6*WI=(q&@qp)yDiYg$dbVlP0ey)Y9vLRL+00ljA4chA!T|%|!c0 zV!V~Ej;%zo!tpu^IlQoxfVaZKc8BD9&_sIU7G}@Obf0@JH+Q?lpME=iPbLd{hS}K zU(H5N#8SLJ$*s^N{P*XlK(tIhA#7>Low=fUNHo7S-mk3HSSW9aY=<_8S4Y4EF?)3n z0x>PVjF5kZtLK6Dc>d?Hb4v>7mh(6co$VxOCq1?Ao=`Q;`Zs>Y_XLuI5+yAQSHnw54hc;sE;M)UKiSbj z&*YN5@@~%*rz6?;k7IU1Nir6V6EC>f$hqsmI z0&0e1ifAblLh ztvdg8#pd#t-;B`7Z}fAsB6C zW~RXUZ`%Jpu)_S@Clb|-JW#`0;jc}{4JjBA73+pDoRHOWq7+9?$9R)KDekeUn!9|u z1XQxX9Hk|0fn|ebBcoL_kiAZqY}8)WD|KetsNuS}D^p@vwy z^Q&ttZF7-J^FMAS<7PlDEI7IEq+H5?i#VRLSjxA#20gX0c~IW^gHkgU^kq$DZ5g30 zjQDhRN9ptLs~15$)<2$N0wBRHBG4t!xbhdwzjbL>6`g;0tH(Jt5g(56DQMBMI^!pw zE|J?m7wk`I(5OsdQLrBR; z#xn>O+E~Z{>TA7VZGL&A$ci>rH2@n&J@?G2!YoyPrAxNKh24q)bVt2|T}dTiSxOKc z?uXrmy6w#Z!7iH|EHvA-*m2n0-yvvWnO7QfoEK87oJBZly?W^SsFF*yE+%uc%D(Rv z+U`8{ZID-5W$x@?x<#UDLgW~h`_3%9^;p~<9Hf7e}fT@#!zkMg{-?XmYYr>Hq-H2LJ%oBf|d|Ns8}D`R@R_sehFK)J>5d z|L4G3i7SZ%0Kbw@-b~^C^O2lob=?2}Z1?}yfLoRn-T(j;EGH$d>1}lO?$c1CpR*Jt z%pbr%o$V*|I^k8L-&!48S5|GEBf|lr`rIFm%VFwa-oQc?g0~w47evn-g}^3b#%98> zhD{YAF(L!hrfet_udwp)K=aC&3bzW-a>-k6oUUx>hSgbJLtV0<%TuN%BcH) zd|U?-l{iH?1->uW!`!gWz8{?a52%+>kBB9dIIgH$6dqatO^0gsTp2@Ix*jih?^hc& z&Rg`sDRSvd{CM&LjU?QSE*E*KU&u7NF^{JP{Hk~#xU-e-XXgogA)A~RL>iS@GnVaht{tTl zi9v#6IWq)XA33&iB9!RAN(aeDnnYE}0$bu0mK?C)3kuhK7cMYB8VBxBj~8H<6B`s%jf znC`QN;9gJ;Y&_J3kM_!IqvmM+tEz9@u$u`65GRz zmmc^3nyL+pOP9N^q!%BtiJMgJSN&Li|p7tG$_RM4w zU`~F5oqArh?xzcmUq;I}n4~*twf-K)HRo^~{KTFOFbuj<{IyFIfVWKOcQUZEu5A$EGl zXSfwBIYk-dAR7FqTl-?T>Hm7k*pf#dWo(!qSgiO_M~tzpzOih-Ha6&YveESGF@xv5 z@+39FC>O>vgSe!? zNZ)vOm(*q3#zg>$--2R=QLU*RQ`eEh{c+{He~GQnw;!S}PJxe3Mg5W6ISB+NYZ`gZAo=my4Q=c-+~4 z?}!pNPSlZ@%>*c_wvDgpdWY}#p4C~`aJp_w!FKT?el-~0Q=E9=3s|7KnhS*VG(({kUR{iJlnrZm&RXm8W-ZrJFhzQ>|EI;=;h%I z!2`QSn8>>Pv|iFzb6T@ia$bo?v~~YruEq$w*C$qrxH zQXc411MdYps8qkM{!BCqkW4j{ zSsW^QQ0azs9_A)8whv$KzBQ4l zr0F_wvC5vuHx&xfKBo^cgx+_tnxrDJ0AKBCYt@24g{=+0+8Cd+c!;n5VD);{26`2d zQo1@PYaqMM4vz{vk>-~(KIl;OS{R8gjh=dGRcs@?8C9%z{}V(QlhFmwD}WVzq!$7Z zvM}<6mP-RFpKYs1>?^+l*x9;o4tVchoIYa7-$zbktB{(V9Gm{;@4W-XoGW)DDes8H z-rmdy5#jwX!6$iTOS#yOiA)1MZs345h)&F+fm)=Mln5{3K+XDt(%68%UBSw zqTHn93cUw=4zz6fL9#iTj+yGa%Kn0SiP4(>24%#7508IZ9xUTcU#MNDbXaBT;q>w< z*e61kE-z-MeaO0RbdFDoy6<;ewPKSNiOk(sw(=(A!Tu7jet2V?s;+R)ebaH-gp_~g z2ZKKbDWW4n5Y1w3447CnQdh`ua4X&nY!D`paK zHm_@pSZgZb0)BJEG}k;@Iujfcy(tp79@4g z5a0Tv%saWyb&HbZ*ACDZpU?xP8{)-9*1VFMcTP5U&DRj(Bho&j&{!y6xWq*t_KI0j z*U~MZylvnytsTbch3bE^Qn@=Xcwc{c?s+I+TozgwH5@s7^nTY9gF<`vMV;&+)9<6u zh>w3kSM#{8C}E|)`Dy`u-k)fPkN6VP<3IH#l4zu|pxqozbtfj?=uLd<_;WTZjrEO9=Ui&Bw#U2ZN@q_|^Ar zP0|9z5^5*bg_GsTUNFo0){nBeJ-$)~${h#qv9WzX!wg8E=CCn;I$c_b6k+NEP=4>w*l`2NrL?^B>nsV9eJJ&)N-Hge z4qi5GGoNl5X>ETzDN3$&DzXKkcfE571#mHa7LYX2hoj@MgP=fP3Z_!#)(1z0Ax0E7N*=r3oZ2Fo&a zO=lHC&owWT8vk6ZtJY;#t^dI<`GYXPgC?S60uH_C%yBE!4mC(Zuzx?3+P<{rqBTf5 z)oGJ{nZ9~OKnnxjn0?BgZ*Fp+3sa1rtUWX~X1NBZ?^J@(gO zy@dRk3puUJAaRo5dgSUcx?>H_!Er1Pfq~hMwSL(WUA|@Tjj8 zwgd8VfwsqmbzukyzE5kWfRNqb;I%*HH(}ewgULZb;T-+!|6nh^<71Y@$4z|&;O_c| zxVB5>fe5MhH|&?ytCJjXlC`TtPXK!)jZ`g5;@_{k!pv!mp&gd(9P+lM_>45MDYio1 zO5?k-E}9bYFXyW0w?5>9&t6=FNmLfF|8!$bSi5{Nm*pB0&1^M3vK*7e5B{o?`Jb#i zgd%n$f19a304v+-hC&ph7XMtRk9`wZmZw_oL9@F&NF5`msAy3sOcIYrE!7YW8t{9K z75B$S`ACS}BJ3b9iJPW#g--|vK?wjGc^xbA`2xeK z4EF*G(h0AzC$9@GMIKPS^;vM)JWESl56r$#v~=We2VN%sz+iRijDKlZAG{Q-y%=@~ z{%-B6A5V2dJ`K^m*>5C06~|^Z*iTRU!$F^RR*F%S?ajtY_@dYJfG6vL3ct93wK_u& z*EY_sD0OwFe^6+eNB2Q7Ob+#GdJOMRDsP_e7|`LMXuF{IZ)ZK51XO=MfV9vq;78EC z)4SUHtLQsH#Z*RYd2*x+;Uf>*lN4h|0LH*oLo~&Y(EAP-+IjHW<}YQ|PU8NdWn6EN z!qKP6tFB&kE7>*j8+V1l8srH+Mlfo;9g17R{1Kb+M>^%F`c}J@3*@T^Ll|E>VkfxH z?SGVR0xj!#5mfPCe%lG{3%ZY?&3YoiWEEm!-wngZa2vC#qDfuHkq8F_mQaypO!n@W zM#Whe4Dg?YygokMQ9emt~>be?}WPX>xSG{ugks z?*JMIsY0l)`V&+ke;aMWwpi#b)3rG(g-mlIo_t9} zwM8}qvtF-$3;O4fb(8Cl@DO_2n%`3|R~=Qv0>Z4fS@$ieLVRE+VzCKY&^cwGg(0ye zt#rLhezEd+8_TRf8G}3A^uNL*oJQ$-S^7pVhEL;F0zVbdV61&|{}}N*ol^i2zVS?B&n@p_yO7qu#o;wlF0O#fiEw@PP%Y3y zSM7}kgNEhjJ8v;)@62Tv*xg5EoG7Go7IwsiHu^8|I++qBQ)g|R9?K-~Pc@`qCMtl% z8WKn`^Yw81r=eZ;7}e+=V_yT~NUfDKc3M^U^6xDhVFmn3Ub6UiR!`{M6S z>JH`fS}TvoaVMKg7o0-)w-cgtD&nl#Vy^fvBHwBgFaXi3Pffn<2dabBT@jtYM7GJYo&2(*oeLKng~^} zmOn@4tgFG~HSOq&!oxhVeoAYXiI!pfj|RnMV_Y~QB6%>{E{29ll+;3^xmrox$Eer> z5e_N8Ul_UJ2>&COicp`$@5rL`!$ZLwR}Ymk-sz^nAK>GW@V=#SzGaTmOkeCnco5B>8i_~951<;qA!+6 zeCWGtW6U0ci=I2WOfU=mDWCWPHM0KO_qa(gVr2Fzic-EiURbmMCC$a*;@4H{IF`@j zjEfEWxOe*<33M`dN?1@ub4hZzKEZh(hlziU(hKq#9hiT6YZrF(kkTfiC<2PrTB|8u ze$*ovd^8(Dr|my3!`>c0T?gH>LTTP(L?4`hM=>*)IK-YUY;8Fq>R4iQaD*4mS-lzl zoF7BRrmY@7t1CvDaN&Op6A338_3ALfeX~fWROhg{D!0Gry-tXVeJFRmQ-)>Q| z%9tV$b!Rl|V)>P**e0a__P|D4p{oDJb0bIsKp6jxkF8Ke%$mA(=nGS9$fsk=w*8#E zmj*CdLT<$5ak9iBw=JA07UA0(ztOyv6U@3StM00mE!Tsi+R8URo-&0 zX(_Cnjy%B1WEwcGC}ahIJm2$KwQW#KRblI5Gr{9qxA6;zw{C-FrNoDGu7I9muQY9!G!li9__2 zo|zMBdCBwW*90T~c>BLbd=d36?rTKx5be^uJmv=Q4zN{axF z;e1A{333apSrvvYrkfgFRO6%)wzO|`p2mLlT}8-@)DnZkoVpeYe~hOzA_v$$x>ilR zp0rW1f3f>W;oTj=@`CJpl7#aMY;aj^J4(=y2-5&Ua$<>*3oi12+`gPvd4kh19ugB0 zPZSf@qv^r;9hsm{+iAPHql6FU@UcAyjnwDoI6!P7nk%ANuSQ)|xHfh4Pnze4S^}41 zb16BO5bguPb&zLkknwz<4#^p{&n1eyCP}QDu#B`ONdF2P5k(16Xh`Y}3Hp1uVC#;< z){t3Yn+ST^KeiH(;NA?lTDf|&>;4euff^=5$q}bdjXz*SE3e&2zq2l)qmxtNr80=6 z#Aa5*Wnv8p4<8?k^?n|QkpHa&d_s8T)*|6vX&>%flIqT@ifBVeKLQXg5k_7Hvxkq` zvoECr2ZNz=oT*PuttQ zp&Q@pyIsQ-KaW{*RQ1Uh;-y(2+GSOt?Q9!(Y09(=ba5AeB>2_}JqEo@zQ7iZ?FIz@ zOBS2eeq7~0L)ICtgt)thb_6d{Mf(JrBu+@`RN!W(&yxZ=#p6H0w;S~Dx-HB*UTYb-mtnssw@q9Jg(D`&=At*o>`r@SVdV-SxgggxL z+jkIjbJFb80dMwFak!12tK`!K8GAilBXZ;qUfF6OISE5m+dle@i}2@g}5$Q+$) zq6@x(wNr2h`_I**u>4TP&3T3MJ)szX{KzD?zG4ic0BK$VvUtB5?Vu8?=?aAR%c2;G zcQH;`=^rl|b}#iQLcHFGC2Bkl<#5Q8C)X&bEu?Urf=%g@O`tg9}8aNh=nyFBlcu zf}5z_zvegl^=Q(3GhXl~GN`!Y$i{{w{Z4C^kZ=`fqt-^|rtXAGokX@7B<{7)AJdt% zjwDZzm6=t|kTlm&e|x&g1=Xc=l9ZYfiMh{F+P$Zs{gqmgT z!J={rS+L5crx&6~nujnIp^~G7>(?4z|6I0^f_k-uY8r9;e_yF$hH-)es`#KrAueup z3Vq7dBhsYl1p{Brl9%Z&d#bme{Q_A%o|}!Kl(`s`D(ldW`kt49cba!A=xESHdLa@k zOcxz3Z}4vhOL)De^*TpjPHXWKKIN(^CV((l_Ui~8v42eJchi%=`Uq-+W;&@cZW*%5 z3%N2|<@aj|o6^xaoP4gk5k+$Tv}p(;rj+x_ux)oQL%Hb@Fc%GrNxn>rdWLW^*e{=G z-npX`$C`QUCp@gsgCky7*@ijOTtrZ^LoTj371#`&mYt*sG!gAe_@yxRdg#e9+*H$f zPMsa4q@aH#qpEL5!g8{q+!wCp>*fvM&i&6qq_2`MwYMa)cDDL$Vcp&y3}{6?%u_#1 zjbJ!`Ub_M-RPOObee*$fa!;6EQ1ORnbf*z+pc0XgPCB@I{@!c+@9Xnld{1ET49kT) zr{9Oo%^*bIa98IWCu&NN--u0pTF5R=FCsp5*5u_|d0?th&;ga$!qRFKg-wpW9So<^ z=jt`E-N`_xy7>x*1uQGDyy@XmNVUpeisG*6&@Yam2MA?Q<|6D>?JQ@5)*yq+{*B6x zi+`QJ_{!Ex91*=B8c;l&s*+CSEyd@;tUGgbqj9nhHqcKWXPfvJ*k%kl?i5N_EO9~46p{u#RyC=Dm;q>e(S96?!{kJ>n8&3qj@$+{nMLFcb-wS!1x+lwB(G7i}*=F z0a3bLtf7u-0GI?4=hLTb`0EP$^oMvD!&-`vr+2GEWYKzNei6@}2$b3v$>@iq6Qm*C z%bs|~n&Gx`7s@ld^}_iQSoDs7!QctE(-rqS!J2N`5ZnM|DXos^rY)tt6<$ps8x@uU3ZCSZsRZV&lZ|Ut?Ix(Fo`ACR7Z)7_b zJO#?bZuXgoVFEVH(lFrK^f7+*#P9@9dA5cdf}CTTEisEdDr-D`hrj%!M-YIZ=+e0P z=)3{%|6b6Nfu0c^<%3$Cg!Js^RcX2wH~-1_u|42Y;?fm5s;+bStL86;Mj8BS#|t-4 zsDedQLS(AMJF%AQQg84(a~EEs`pcTY9H*+k%G+J0Lsd?AB8+yLG)YVRk8ZhKW${F{ z6>A^!VEOzpl$ht%Xilb6C>AFr`4iIU+-u9OR--UTFMxZ|~6Gx$I^*vXR4~Kx8{Zuy33mem* zX}~_aW_e>ax1}>Bf~=Kqmafx=4W9$3Tu|!p;OLKMbxBfzr-vkhQh7cXx1dtLvS~kI ze3YXv+s6Ldp0^xXzcM4Y4y{_X?&RrHp(5o-_)s>WiL-aRj{#?vpFXZ6wd~}Tj{gub2VHF_K%4-;>FTHo-yz5o3d(X|Y|thE*F&Lg>3N*d;5l6K0-o9^ta9TpI;p z>d^EFZbgHq0vTa~6y5J}m(0*hQ1%K*#?-uc1K=6@&_YUPVn4Vq)64~bWD2{s9Wr(9 zaIpJ0M0ntjl6&|{ot2=gO-A{0vIlbyAb}}tp7;>Q1*J#nwiNh-m{=-rUI^GNNwF-j zqPo5VeV(LE<}DBKRCGW)4ool{1Rvc$uY`j+B&UzKI*O-t_QUZ>&z(gPH$23xzm>~0_>}@)QBH)>nJKk zPi;exb^IR`T~yF9*QrW#3N?KVGU?0HM)81ZD@KHL&#+G4d!qq>l5ZzfJ3r=E(OJ-NCJv3b^jaPkrInX6S}g+> zwB61a(45f$i@Qg9C}{)1h!zp6QBpM=N)`{~#Q=R`BN1wPRFK_cn@h$A0~bY=C#3GA zNte8kGzp$@M>1Oxtt?y9^fClF0h>Eq*b5=KG+OLie<03^cQ{Ae0G(WDXjCIT4p0PU zCG3T`=qm79jzUo4d`KG;14I|gkvnLGk@SRCv6~BNFnA)f_-feu;kxs8kqcRpv5W=} zW49F8$-UEacXy)WLg@12(Y0dimb(;#gwTVI_`d8!$?{}!HauH$avm=f?t21c!X9P= zCzDQf&Mun~AT3(>(0VKK9@4cTgtE_-2hU}`Gl7U9o34h620{xtz4~E>+3**ZyGs{) zp$x#gz^IV>M3?Y>fU<*DYTpTa87%S9G8cbkO1IuksSB>aQ%3T`Uy!bl|A~ zuv6{+{17wkXmcrdA-nh1y_B8819-vr_&wuT+Bpb!NV2L>hHz0F{7OGPDmfO8z8= zQoVHJ*&myyV_{XAHy%zTXjTK^>$wtw>_033@7E=j=p9aBq1CYG0n+HHMLlwpAi|rs z`Gy?6FU}sb+W16K!D94gLVUS2xsA3pvZynbP{+7+Tm{aLJVTDAcT}F_(q|5~ceqGC z@yZRm!{%>^3l~%fE(Q>%p6iHjcZVcB;{0o+ue+_`f=4?{P*~Rh&~53Yb%Ds7AFx`* ziZfVW11#v320MZv`!r9$is=Nu6LMxW$McH?SO`@tIfbmir;yUA6_4Cn z0p=A?mA|g@oCnN)L()#`bgTJJ_CRrPT;JS5P|z>+I<|<8gv+!xna%7$bG<)$BopVU z(&_n4aDkc&VQ8>qZ{&j!HF>97e;wY7UN-c=v*^%BmtQA~65lcR^LY!n-it)X|N3+3 zYHel(_L|>{jg5qH;w$x7Q0?e*b4$j@Xl&vIMWm)e(xelaVwZQ{1|B@bRiZ1jcny07 zH3fxm|LBaNs;<0G$+)YWH^-}UO@c9lmn=avz<7O%)4^nY@JvWCr?nn⋘AQitDG+ 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

+ /// Min date allowed + /// DateTime? MinDate { get; set; } + /// + /// Max date allowed + /// DateTime? MaxDate { get; set; } - // Max span between start and end date - object? MaxSpan { get; set; } + /// + /// Max span between start and end date + /// + object MaxSpan { get; set; } - // Show dropdowns + /// + /// Show dropdowns + /// bool? ShowDropdowns { get; set; } - // Min and Max year + /// + /// Min year allowed + /// int? MinYear { get; set; } + /// + /// Max year allowed + /// int? MaxYear { get; set; } - // Show week numbers + /// + /// Show week numbers + /// AbpDatePickerWeekNumbers WeekNumbers { get; set; } - // Time picker + /// + /// Allows users to pick a time + /// bool? TimePicker { get; set; } - // Time picker increment + /// + /// The time interval allowed + /// int? TimePickerIncrement { get; set; } - // Time picker 24 hour + /// + /// Sets the time picker hour format as 12 or 24. + /// bool? TimePicker24Hour { get; set; } - // Time picker seconds + /// + /// Allows seconds selection + /// bool? TimePickerSeconds { get; set; } - // Ranges object + /// + /// Predefined date range list + /// List Ranges { get; set; } - - // Show custom range label + + /// + /// Show custom range label + /// bool? ShowCustomRangeLabel { get; set; } - - // Always show calendar + + /// + /// Always show calendars + /// bool? AlwaysShowCalendars { get; set; } - // Opens date picker on left or right or center of the input + /// + /// The horizontal location of the datepicker + /// AbpDatePickerOpens Opens { get; set; } - // Drops down or up or auto + /// + /// The vertical location of the datepicker + /// AbpDatePickerDrops Drops { get; set; } - // Button classes - [CanBeNull] + /// + /// Button CSS classes + /// + [CanBeNull] string ButtonClasses { get; set; } - // Apply class to all buttons - [CanBeNull] + /// + /// Apply class to all buttons + /// + [CanBeNull] string ApplyButtonClasses { get; set; } - // Cancel class to all buttons - [CanBeNull] + /// + /// Cancel CSS classes to all buttons + /// + [CanBeNull] string CancelButtonClasses { get; set; } - // Locale - [CanBeNull] + /// + /// Sets a custom locale + /// + [CanBeNull] object Locale { get; set; } - // Auto apply + /// + /// Applies the value when it a date is selected + /// bool? AutoApply { get; set; } - // Linked calendars + /// + /// When enabled, the two calendars displayed will always be for two sequential months (i.e. January and February), and both will be advanced when clicking the left or right arrows above the calendars. When disabled, the two calendars can be individually advanced and display any month/year. + /// bool? LinkedCalendars { get; set; } - // Auto update input + /// + /// Updates the input automatically + /// bool? AutoUpdateInput { get; set; } // Parent element - [CanBeNull] + [CanBeNull] string ParentEl { get; set; } - [CanBeNull] + [CanBeNull] string DateFormat { get; set; } bool OpenButton { get; set; } bool ClearButton { get; set; } - + bool SingleOpenAndClearButton { get; set; } bool? IsUtc { get; set; } - + bool? IsIso { get; set; } - - [CanBeNull] + + [CanBeNull] object Options { get; set; } } \ No newline at end of file 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 64ba06ff3a..3499aef9a9 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 @@ -187,7 +187,7 @@ }); }); } - + abp.libs.bootstrapDateRangePicker = { packageName: "bootstrap-daterangepicker", @@ -207,6 +207,7 @@ if (options.label) { label.text(options.label) } + $container.append(label) var $datePicker = options.singleDatePicker ? $('') : $(''); $container.append($datePicker) @@ -292,19 +293,20 @@ return $container; } }; - - + + abp.dom.initializers.initializeDateRangePickers = function ($rootElement) { $rootElement .findWithSelf('abp-date-picker,abp-date-range-picker') .each(function () { var $this = $(this); - var $input = $(this).find('.input-group input[type="text"]') - if($input.data('daterangepicker')) { + var $input = $this.find('.input-group input[type="text"]') + if ($input.data('daterangepicker')) { return; } - var $openButton = $(this).find('button[data-type="open"]') - var $clearButton = $(this).find('button[data-type="clear"]') + + var $openButton = $this.find('button[data-type="open"]') + var $clearButton = $this.find('button[data-type="clear"]') var singleDatePicker = $this.is('abp-date-picker') var options = {}; options.singleDatePicker = singleDatePicker; @@ -321,29 +323,27 @@ maxYear: parseInt(moment().add(100, 'year').locale('en').format('YYYY')), locale: { direction: abp.localization.currentCulture.isRightToLeft ? 'rtl' : 'ltr', - todayLabel: abp.localization.localize('Today', 'AbpUi'), - clearLabel: abp.localization.localize('Clear', 'AbpUi'), - applyLabel: abp.localization.localize('Apply', 'AbpUi'), + todayLabel: abp.localization.localize('Today', 'AbpUi'), + clearLabel: abp.localization.localize('Clear', 'AbpUi'), + applyLabel: abp.localization.localize('Apply', 'AbpUi'), }, singleOpenAndClearButton: true }; var locale = defaultOptions.locale; $.extend(options, defaultOptions); $.extend(options, $this.data()); - if(jQuery.isEmptyObject(options.locale)) - { + if (jQuery.isEmptyObject(options.locale)) { options.locale = locale; - }else{ + } else { locale = options.locale; } + $.extend(options, $this.data("options")); - if(jQuery.isEmptyObject(options.locale)) - { + if (jQuery.isEmptyObject(options.locale)) { options.locale = locale; } - - if(options.timePicker && options.timePicker24Hour === undefined){ + if (options.timePicker && options.timePicker24Hour === undefined) { options.timePicker24Hour = moment.localeData().longDateFormat('LT').indexOf('A') < 1; } @@ -356,33 +356,35 @@ var separator = options.separator; var defaultDateFormat = "YYYY-MM-DD"; var singleOpenAndClearButton = options.singleOpenAndClearButton && $clearButton.length > 0 && $openButton.length > 0; - + const replaceButton = function (hasDate) { var hiddenClass = 'd-none'; - if(singleOpenAndClearButton){ - if(hasDate){ + + if (singleOpenAndClearButton) { + if (hasDate) { $openButton.addClass(hiddenClass); $clearButton.removeClass(hiddenClass); $clearButton.insertAfter($openButton); - }else { + } else { $openButton.removeClass(hiddenClass); $clearButton.addClass(hiddenClass); $openButton.insertAfter($clearButton); } } } - + const getMoment = function (date) { - if(!date){ + if (!date) { return isUtc ? moment.utc() : moment(); } - if(isUtc) { - return moment.utc(date,dateFormat); - }else { - return moment(date,dateFormat); + + if (isUtc) { + return moment.utc(date, dateFormat); + } else { + return moment(date, dateFormat); } } - + if (dateFormat) { options.locale = options.locale || {}; options.locale.format = dateFormat; @@ -394,25 +396,25 @@ } var startDate = options.startDate ? moment(options.startDate) : null; - if(singleDatePicker && !startDate){ + if (singleDatePicker && !startDate) { startDate = options.date ? moment(options.date) : null; } + var endDate = options.endDate ? moment(options.endDate) : null; - if (startDate) { options.startDate = startDate; } if (endDate) { options.endDate = endDate; } - - if(options.ranges){ + + if (options.ranges) { $.each(options.ranges, function (key, value) { let start = value[0]; let end; - if(value.length > 1){ + if (value.length > 1) { end = value[1]; - }else{ + } else { end = value[0]; } options.ranges[key] = [getMoment(start), getMoment(end)]; @@ -421,11 +423,11 @@ var $todayBtn = $(''); var $clearBtn = $(''); - + var extraButtons = []; if (options.showTodayButton) { extraButtons.push($todayBtn); - + $todayBtn.on('click', function () { var today = getMoment(); $input.data('daterangepicker').setStartDate(today); @@ -433,43 +435,44 @@ $input.data('daterangepicker').updateView(); }); } + if (options.showClearButton) { extraButtons.push($clearBtn); - + $clearBtn.on('click', function () { $input.val('').trigger('change'); $dateRangePicker.hide(); }); } - + if (typeof options.template !== 'string' && !(options.template instanceof $)) options.template = '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - ' ' + - '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + ' ' + + '
' + '
'; $input.daterangepicker(options); - + var $dateRangePicker = $input.data('daterangepicker'); - - if($dateRangePicker.container.find('.drp-buttons').css('display') !== 'none'){ - + + if ($dateRangePicker.container.find('.drp-buttons').css('display') !== 'none') { + $.each(extraButtons, function (index, value) { $dateRangePicker.container.find('.drp-buttons').prepend(value); }); } - else{ + else { var $div = $('
'); $div.css('display', 'block'); $.each(extraButtons, function (index, value) { @@ -477,14 +480,11 @@ }); $div.insertAfter($dateRangePicker.container.find('.drp-buttons')); - } - - - $dateRangePicker.outsideClick = function(e) { + + $dateRangePicker.outsideClick = function (e) { var target = $(e.target); - // if the page is clicked anywhere except within the daterangerpicker/button - // itself then call this.hide() + // if the page is clicked anywhere except within the daterangerpicker/button itself then call this.hide() if ( // ie modal dialog fix e.type == "focusin" || @@ -492,24 +492,27 @@ target.closest(this.container).length || target.closest('.calendar-table').length || target.closest($openButton).length - ) return; + ) { + return; + } + this.hide(); this.element.trigger('outsideClick.daterangepicker', this); }; - + $openButton.on('click', function () { $dateRangePicker.toggle(); }); - + const extendDateFormat = function (format) { - if(timePicker){ - if(timePicker24Hour){ - if(timePickerSeconds){ + if (timePicker) { + if (timePicker24Hour) { + if (timePickerSeconds) { format += " HH:mm:ss"; - }else{ + } else { format += " HH:mm"; } - }else { + } else { if (timePickerSeconds) { format += ' ' + " hh:mm:ss A" } else { @@ -517,33 +520,34 @@ } } } + return format; } - + defaultDateFormat = extendDateFormat(defaultDateFormat); - if(!dateFormat) { + if (!dateFormat) { dateFormat = extendDateFormat(moment.localeData().longDateFormat('L')) } - - if(!separator) { + + if (!separator) { separator = $dateRangePicker.locale.separator; } - - if(singleDatePicker){ - if(startDate){ + + if (singleDatePicker) { + if (startDate) { $input.val(startDate.format(dateFormat)); } - }else{ - if(startDate && endDate){ + } else { + if (startDate && endDate) { $input.val(startDate.format(dateFormat) + separator + endDate.format(dateFormat)); } } - + $input.on('apply.daterangepicker', function (ev, picker) { - if(singleDatePicker){ + if (singleDatePicker) { $(this).val(picker.startDate.format(dateFormat)); - }else{ + } else { $(this).val(picker.startDate.format(dateFormat) + separator + picker.endDate.format(dateFormat)); } @@ -554,6 +558,7 @@ $(this).val(''); $(this).trigger('change'); }); + $input.on('show.daterangepicker', function (ev, picker) { var momentStartDate = getMoment(startDate); var momentEndDate = getMoment(endDate); @@ -564,7 +569,6 @@ picker.setEndDate(momentEndDate); } }); - $clearButton.on('click', function () { $input.val(''); @@ -572,9 +576,9 @@ }); $input.on('change', function () { - if($(this).val() !== ''){ + if ($(this).val() !== '') { replaceButton(true); - }else{ + } else { replaceButton(false); } var dates = $(this).val().split(separator); @@ -582,91 +586,97 @@ startDate = getMoment(dates[0]); if (!startDate.isValid()) { startDate = null; - }else{ + } else { startDate = formatDate(startDate); } endDate = getMoment(dates[1]); if (!endDate.isValid()) { endDate = null; - }else{ + } else { endDate = formatDate(endDate); } } else { - if(dates[0]){ + if (dates[0]) { startDate = getMoment(dates[0]); if (!startDate.isValid()) { startDate = null; - }else{ + } else { startDate = formatDate(startDate); } } - else{ + else { startDate = null; } + endDate = null; } - if(!startDate){ + + if (!startDate) { replaceButton(false); $(this).val(''); $dateRangePicker.setStartDate(getMoment()); $dateRangePicker.setEndDate(getMoment()); } - if(!singleDatePicker){ + if (!singleDatePicker) { var input1 = $this.find("input[data-start-date]") input1.val(startDate); var input2 = $this.find("input[data-end-date]") input2.val(endDate); - }else{ + } else { var input = $this.find("input[data-date]") input.val(startDate); } - if(singleDatePicker){ + if (singleDatePicker) { $this.data('date', startDate); $input.data('date', startDate); - }else{ + } else { $this.data('startDate', startDate); $this.data('endDate', endDate); $input.data('startDate', startDate); $input.data('endDate', endDate); } }); - - function formatDate(date){ - if(date){ - if(isIso){ + + function formatDate(date) { + if (date) { + if (isIso) { return date.locale('en').format(); } return date.locale('en').format(defaultDateFormat) } + return null; } - function getFormattedStartDate (){ - if(startDate){ + + function getFormattedStartDate() { + if (startDate) { return getMoment(startDate).format(dateFormat); } + return null; } - - function getFormattedEndDate (){ - if(endDate){ + + function getFormattedEndDate() { + if (endDate) { return getMoment(endDate).format(dateFormat); } + return null; } - - if(singleDatePicker){ + + if (singleDatePicker) { $this[0].getFormattedDate = getFormattedStartDate; $input[0].getFormattedDate = getFormattedStartDate; $dateRangePicker.getFormattedDate = getFormattedStartDate; - }else{ + } else { $dateRangePicker.getFormattedStartDate = getFormattedStartDate; $dateRangePicker.getFormattedEndDate = getFormattedEndDate; - + $this[0].getFormattedStartDate = getFormattedStartDate; $this[0].getFormattedEndDate = getFormattedEndDate; - + $input[0].getFormattedStartDate = getFormattedStartDate; $input[0].getFormattedEndDate = getFormattedEndDate; } From 48380126923e64756ba65cb654ec13b2f9143b9a Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Fri, 10 Mar 2023 18:54:32 +0300 Subject: [PATCH 15/89] tasks done #15935 --- npm/ng-packs/packages/core/src/lib/models/common.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index 12318357dd..59c1595195 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -66,10 +66,16 @@ export namespace ABP { invisible?: boolean; } + export interface GroupedRoute { + key: string; + text: string; + } + export interface Route extends Nav { path?: string; layout?: eLayoutType; iconClass?: string; + group?: GroupedRoute; } export interface Tab extends Nav { From 6952da5d79b33d0f86c83189b53fdf140f79a6e1 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Fri, 10 Mar 2023 19:12:28 +0300 Subject: [PATCH 16/89] model name updated --- npm/ng-packs/packages/core/src/lib/models/common.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index 59c1595195..e239be2092 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -66,7 +66,7 @@ export namespace ABP { invisible?: boolean; } - export interface GroupedRoute { + export interface Group { key: string; text: string; } @@ -75,7 +75,7 @@ export namespace ABP { path?: string; layout?: eLayoutType; iconClass?: string; - group?: GroupedRoute; + group?: Group; } export interface Tab extends Nav { From 22e0a3d78bcbb4cfc49008031f99dd7865e8d652 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Fri, 10 Mar 2023 19:52:52 +0300 Subject: [PATCH 17/89] ABP.Group model modified --- npm/ng-packs/packages/core/src/lib/models/common.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index e239be2092..f7aa504c3d 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -66,8 +66,8 @@ export namespace ABP { invisible?: boolean; } - export interface Group { - key: string; + export interface Group { + key: TKey; text: string; } @@ -75,7 +75,7 @@ export namespace ABP { path?: string; layout?: eLayoutType; iconClass?: string; - group?: Group; + group?: Group; } export interface Tab extends Nav { From 9d6ccd0557b5812001cbcae05ea19e92f20408a7 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Mon, 13 Mar 2023 10:50:47 +0300 Subject: [PATCH 18/89] document task done #15938 --- docs/en/UI/Angular/Modifying-the-Menu.md | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/docs/en/UI/Angular/Modifying-the-Menu.md b/docs/en/UI/Angular/Modifying-the-Menu.md index b0a3b760fa..8278f38722 100644 --- a/docs/en/UI/Angular/Modifying-the-Menu.md +++ b/docs/en/UI/Angular/Modifying-the-Menu.md @@ -88,6 +88,41 @@ function configureRoutes(routes: RoutesService) { } ``` +Also we can define group for navigation elements. It's an optional property + +```js +// route.provider.ts +import { ABP } from '@abp/ng.core'; + +type GroupType = ABP.Group; + +function configureRoutes(routes: RoutesService) { + const myGroup: GroupType = { key:'groupKey', text:'GroupName' }; + + return () => { + routes.add([ + { + path: '/your-path', + name: 'Your navigation', + requiredPolicy: 'permission key here', + order: 101, + iconClass: 'fas fa-question-circle', + layout: eLayoutType.application, + group: myGroup + }, + { + path: '/your-path/child', + name: 'Your child navigation', + parentName: 'Your navigation', + requiredPolicy: 'permission key here', + order: 1, + }, + ]); + }; +} +``` + + ...and then in app.module.ts... ```js @@ -111,6 +146,9 @@ Here is what every property works as: - `iconClass` is the class of the `i` tag, which is placed to the left of the navigation label. - `layout` defines in which layout the route will be loaded. (default: `eLayoutType.empty`) - `invisible` makes the item invisible in the menu. (default: `false`) +- `group` is an optional property that is used to group together related routes in an application. It's an object and it have 2 property + - `key` is a generic type property that we use for gather items in same group. (default type: `string`) + - `text` is the display name on menu ### Via `routes` Property in `AppRoutingModule` From 81adbaddd9ce06896f19e026b8831ffa98e40d42 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Mon, 13 Mar 2023 14:53:17 +0300 Subject: [PATCH 19/89] Test done #15938 --- .../core/src/lib/tests/routes.service.spec.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index 51c81a5b3c..1f3bb79362 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -1,11 +1,14 @@ import { Subject } from 'rxjs'; import { take } from 'rxjs/operators'; +import { ABP } from '../models'; import { RoutesService } from '../services/routes.service'; import { DummyInjector } from './utils/common.utils'; import { mockPermissionService } from './utils/permission-service.spec.utils'; const updateStream$ = new Subject(); +type GroupType = ABP.Group; + export const mockRoutesService = (injectorPayload = {} as { [key: string]: any }) => { const injector = new DummyInjector({ PermissionService: mockPermissionService(), @@ -17,6 +20,10 @@ export const mockRoutesService = (injectorPayload = {} as { [key: string]: any } describe('Routes Service', () => { let service: RoutesService; + + const fooGroup: GroupType = { key: 'foo', text: '::FooGroup' }; + const barGroup: GroupType = { key: 'bar', text: '::BarGroup' }; + const routes = [ { path: '/foo', name: 'foo' }, { path: '/foo/bar', name: 'bar', parentName: 'foo', invisible: true, order: 2 }, @@ -25,6 +32,13 @@ describe('Routes Service', () => { { path: '/foo/x', name: 'x', parentName: 'foo', order: 1 }, ]; + const groupedRoutes = [ + { path: '/foo', name: 'foo', group: fooGroup }, + { path: '/foo/bar', name: 'bar', group: barGroup }, + { path: '/foo/bar/baz', name: 'baz', group: barGroup }, + { path: '/foo/y', name: 'y', parentName: 'foo' }, + ]; + beforeEach(() => { service = mockRoutesService(); }); @@ -59,6 +73,18 @@ describe('Routes Service', () => { }); }); + describe('#addGroup', () => { + it('should have routes with and without group', async () => { + service.add(groupedRoutes); + + const grouped = await service.flat.filter(f => f.group); + const unGrouped = await service.flat.filter(f => !f.group); + + expect(grouped.length).toBe(3); + expect(unGrouped.length).toBe(1); + }); + }); + describe('#find', () => { it('should return node found based on query', () => { service.add(routes); From 238cd86a087394ab00faeea2849d0414f3bcd232 Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 13 Mar 2023 18:14:07 +0300 Subject: [PATCH 20/89] Update datepicker doc --- .../AspNetCore/Tag-Helpers/Form-elements.md | 113 +++++++++--------- 1 file changed, 56 insertions(+), 57 deletions(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md index df8c5008ac..0275bf8030 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md @@ -10,7 +10,7 @@ See the [form elements demo page](https://bootstrap-taghelpers.abp.io/Components ## abp-input -`abp-input` tag creates a Bootstrap form input for a given c# property. It uses [Asp.Net Core Input Tag Helper](https://docs.microsoft.com/tr-tr/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-input-tag-helper) in background, so every data annotation attribute of `input` tag helper of Asp.Net Core is also valid for `abp-input`. +`abp-input` tag creates a Bootstrap form input for a given c# property. It uses [ASP.NET Core Input Tag Helper](https://docs.microsoft.com/tr-tr/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-input-tag-helper) in background, so every data annotation attribute of `input` tag helper of ASP.NET Core is also valid for `abp-input`. Usage: @@ -58,49 +58,49 @@ Model: ### Attributes -You can set some of the attributes on your c# property, or directly on html tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. +You can set some of the attributes on your c# property, or directly on HTML tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. #### Property Attributes - `[TextArea()]`: Converts the input into a text area. -* `[Placeholder()]`: Sets placeholder for input. You can use a localization key directly. -* `[InputInfoText()]`: Sets a small info text for input. You can use a localization key directly. -* `[FormControlSize()]`: Sets size of form-control wrapper element. Available values are +* `[Placeholder()]`: Sets the description are of the input. You can use a localization key directly. +* `[InputInfoText()]`: Sets text for the input. You can directly use a localization key. +* `[FormControlSize()]`: Sets the size of the form-control wrapper element. Available values are - `AbpFormControlSize.Default` - `AbpFormControlSize.Small` - `AbpFormControlSize.Medium` - `AbpFormControlSize.Large` -* `[DisabledInput]` : Input is disabled. -* `[ReadOnlyInput]`: Input is read-only. +* `[DisabledInput]` : Sets the input as disabled. +* `[ReadOnlyInput]`: Sets the input as read-only. #### Tag Attributes -* `info`: Sets a small info text for input. You can use a localization key directly. -* `auto-focus`: If true, browser auto focuses on the element. -* `size`: Sets size of form-control wrapper element. Available values are +* `info`: Sets text for the input. You can directly use a localization key. +* `auto-focus`: It lets the browser set focus to the element when its value is true. +* `size`: Sets the size of the form-control wrapper element. Available values are - `AbpFormControlSize.Default` - `AbpFormControlSize.Small` - `AbpFormControlSize.Medium` - `AbpFormControlSize.Large` -* `disabled`: Input is disabled. -* `readonly`: Input is read-only. -* `label`: Sets the label for input. -* `display-required-symbol`: Adds the required symbol (*) to label if input is required. Default `True`. +* `disabled`: Sets the input as disabled. +* `readonly`: Sets the input as read-only. +* `label`: Sets the label of input. +* `display-required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. -`asp-format`, `name` and `value` attributes of [Asp.Net Core Input Tag Helper](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-input-tag-helper) are also valid for `abp-input` tag helper. +`asp-format`, `name` and `value` attributes of [ASP.NET Core Input Tag Helper](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-input-tag-helper) are also valid for `abp-input` tag helper. ### Label & Localization -You can set label of your input in different ways: +You can set the label of the input in several ways: -- You can use `Label` attribute and directly set the label. But it doesn't auto localize your localization key. So use it as `label="@L["{LocalizationKey}"].Value"`. -- You can set it using `[Display(name="{LocalizationKey}")]` attribute of Asp.Net Core. +- You can use the `Label` attribute to set the label directly. This property does not automatically localize the text. To localize the label, use `label="@L["{LocalizationKey}"].Value"`. +- You can set it using `[Display(name="{LocalizationKey}")]` attribute of ASP.NET Core. - You can just let **abp** find the localization key for the property. It will try to find "DisplayName:{PropertyName}" or "{PropertyName}" localization keys, if `label` or `[DisplayName]` attributes are not set. ## abp-select -`abp-select` tag creates a Bootstrap form select for a given c# property. It uses [Asp.Net Core Select Tag Helper](https://docs.microsoft.com/tr-tr/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-select-tag-helper) in background, so every data annotation attribute of `select` tag helper of Asp.Net Core is also valid for `abp-select`. +`abp-select` tag creates a Bootstrap form select for a given c# property. It uses [ASP.NET Core Select Tag Helper](https://docs.microsoft.com/tr-tr/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-3.1#the-select-tag-helper) in background, so every data annotation attribute of `select` tag helper of ASP.NET Core is also valid for `abp-select`. `abp-select` tag needs a list of `Microsoft.AspNetCore.Mvc.Rendering.SelectListItem ` to work. It can be provided by `asp-items` attriube on the tag or `[SelectItems()]` attribute on c# property. (if you are using [abp-dynamic-form](Dynamic-forms.md), c# attribute is the only way.) @@ -170,14 +170,14 @@ Model: ### Attributes -You can set some of the attributes on your c# property, or directly on html tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. +You can set some of the attributes on your c# property, or directly on HTML tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. #### Property Attributes * `[SelectItems()]`: Sets the select data. Parameter should be the name of the data list. (see example above) -- `[InputInfoText()]`: Sets a small info text for input. You can use a localization key directly. -- `[FormControlSize()]`: Sets size of form-control wrapper element. Available values are +- `[InputInfoText()]`: Sets text for the input. You can directly use a localization key. +- `[FormControlSize()]`: Sets the size of the form-control wrapper element. Available values are - `AbpFormControlSize.Default` - `AbpFormControlSize.Small` - `AbpFormControlSize.Medium` @@ -186,21 +186,21 @@ You can set some of the attributes on your c# property, or directly on html tag. #### Tag Attributes - `asp-items`: Sets the select data. This Should be a list of SelectListItem. -- `info`: Sets a small info text for input. You can use a localization key directly. -- `size`: Sets size of form-control wrapper element. Available values are +- `info`: Sets text for the input. You can directly use a localization key. +- `size`: Sets the size of the form-control wrapper element. Available values are - `AbpFormControlSize.Default` - `AbpFormControlSize.Small` - `AbpFormControlSize.Medium` - `AbpFormControlSize.Large` -- `label`: Sets the label for input. -- `display-required-symbol`: Adds the required symbol (*) to label if input is required. Default `True`. +- `label`: Sets the label of input. +- `display-required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. ### Label & Localization -You can set label of your input in different ways: +You can set the label of the input in several ways: - You can use `Label` attribute and directly set the label. But it doesn't auto localize your localization key. So use it as `label="@L["{LocalizationKey}"].Value".` -- You can set it using `[Display(name="{LocalizationKey}")]` attribute of Asp.Net Core. +- You can set it using `[Display(name="{LocalizationKey}")]` attribute of ASP.NET Core. - You can just let **abp** find the localization key for the property. It will try to find "DisplayName:{PropertyName}" or "{PropertyName}" localization keys. Localizations of combobox values are set by `abp-select` for **Enum** property. It searches for "{EnumTypeName}.{EnumPropertyName}" or "{EnumPropertyName}" localization keys. For instance, in the example above, it will use "CarType.StationWagon" or "StationWagon" keys for localization when it localizes combobox values. @@ -251,7 +251,7 @@ Model: ### Attributes -You can set some of the attributes on your c# property, or directly on html tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. +You can set some of the attributes on your c# property, or directly on HTML tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. #### Property Attributes @@ -298,47 +298,47 @@ Model: ### Attributes -You can set some of the attributes on your c# property, or directly on html tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. +You can set some of the attributes on your c# property, or directly on HTML tag. If you are going to use this property in a [abp-dynamic-form](Dynamic-forms.md), then you can only set these properties via property attributes. #### Property Attributes -* `[Placeholder()]`: Sets placeholder for input. You can use a localization key directly. -* `[InputInfoText()]`: Sets a small info text for input. You can use a localization key directly. -* `[FormControlSize()]`: Sets size of form-control wrapper element. Available values are +* `[Placeholder()]`: Sets the description are of the input. You can use a localization key directly. +* `[InputInfoText()]`: Sets text for the input. You can directly use a localization key. +* `[FormControlSize()]`: Sets the size of the form-control wrapper element. Available values are - `AbpFormControlSize.Default` - `AbpFormControlSize.Small` - `AbpFormControlSize.Medium` - `AbpFormControlSize.Large` -* `[DisabledInput]` : Input is disabled. -* `[ReadOnlyInput]`: Input is read-only. -- `[DatePickerOptions()]`: Sets the options of datepicker. You can use a localization key directly. See [datepicker options](https://www.daterangepicker.com/#options) for more information.) +* `[DisabledInput]` : Sets the input as disabled. +* `[ReadOnlyInput]`: Sets the input as read-only. +- `[DatePickerOptions()]`: Sets the predefined options of the date picker. See the available [datepicker options](https://www.daterangepicker.com/#options). You can use a localization key directly. ##### abp-date-picker -`[DatePicker]` : Date picker is enabled. +`[DatePicker]` : Sets the input as datepicker. Especially for string properties. ##### abp-date-range-picker -`[DateRangePicker()]` : Sets the picker id for date range picker. This is used to link start and end date pickers. And sets this property is start date or end date. +`[DateRangePicker()]` : Sets the picker id for the date range picker. You can set the property as a start date by setting IsStart=true or leave it as default/false to set it as an end date. #### Tag Attributes -* `info`: Sets a small info text for input. You can use a localization key directly. -* `auto-focus`: If true, browser auto focuses on the element. -* `size`: Sets size of form-control wrapper element. Available values are +* `info`: Sets text for the input. You can directly use a localization key. +* `auto-focus`: It lets the browser set focus to the element when its value is true. +* `size`: Sets the size of the form-control wrapper element. Available values are - `AbpFormControlSize.Default` - `AbpFormControlSize.Small` - `AbpFormControlSize.Medium` - `AbpFormControlSize.Large` -* `disabled`: Input is disabled. -* `readonly`: Input is read-only. -* `label`: Sets the label for input. -* `display-required-symbol`: Adds the required symbol (*) to label if input is required. Default `True`. -* `open-button`: If true, a button will be added to open datepicker. Default `True`. -* `clear-button`: If true, a button will be added to clear datepicker. Default `True`. -* `is-utc`: If true, datepicker will use UTC date. Default `False`. -* `is-iso`: If true, datepicker will use ISO date. Default `False`. -* `date-format`: Sets the date format. Default your culture's date format. (JS format) -* `date-separator`: Sets the range date separator. Default `-`. -* Other attributes will be added to the input element and [datepicker options](https://www.daterangepicker.com/#options). +* `disabled`: Sets the input as disabled. +* `readonly`: Sets the input as read-only. +* `label`: Sets the label of input. +* `display-required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. +* `open-button`: A button to open the datepicker will be added when its `True`. The default value is `True`. +* `clear-button`: A button to clear the datepicker will be added when its `True`. The default value is `True` +* `is-utc`: Converts the date to UTC when its `True`. The default value is `False`. +* `is-iso`: Converts the date to ISO format when its `True`. The default value is `False`. +* `date-format`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`. +* `date-separator`: Sets a character to separate start and end dates. The default value is `-` +* Other non-mapped attributes will be automatically added to the input element as is. See the available [datepicker options](https://www.daterangepicker.com/#options). Eg: `data-start-date="2020-01-01"` ##### abp-date-picker @@ -351,9 +351,8 @@ You can set some of the attributes on your c# property, or directly on html tag. ### Label & Localization -You can set label of your input in different ways: - -- You can use `Label` attribute and directly set the label. But it doesn't auto localize your localization key. So use it as `label="@L["{LocalizationKey}"].Value"`. -- You can set it using `[Display(name="{LocalizationKey}")]` attribute of Asp.Net Core. -- You can just let **abp** find the localization key for the property. It will try to find "DisplayName:{PropertyName}" or "{PropertyName}" localization keys, if `label` or `[DisplayName]` attributes are not set. +You can set the label of the input in several ways: +- You can use the `Label` attribute to set the label directly. This property does not automatically localize the text. To localize the label, use `label="@L["{LocalizationKey}"].Value"`. +- You can set it using `[Display(name="{LocalizationKey}")]` attribute ASP.NET Core. +- You can just let **abp** find the localization key for the property. If the `label` or `[DisplayName]` attributes are not set, it tries to find the localization by convention. For example `DisplayName:{YourPropertyName}` or `{YourPropertyName}`. If your property name is FullName, it will search for `DisplayName:FullName` or `{FullName}`. \ No newline at end of file From 3cf5cfdddd8cbbca7bf5bf9341e09d5c44a0a335 Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 13 Mar 2023 18:16:06 +0300 Subject: [PATCH 21/89] Add today button classes, replace cancel button to clear button and add options summary --- .../DatePicker/AbpDatePickerBaseTagHelper.cs | 11 +++- .../AbpDatePickerBaseTagHelperService.cs | 9 ++- .../Form/DatePicker/AbpDatePickerOptions.cs | 3 +- .../DatePicker/DatePickerOptionsAttribute.cs | 11 +++- .../Form/DatePicker/IAbpDatePickerOptions.cs | 59 +++++++++++-------- 5 files changed, 60 insertions(+), 33 deletions(-) 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 55cd41f999..10923f25af 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 @@ -138,14 +138,19 @@ public abstract class set => _abpDatePickerOptionsImplementation.ButtonClasses = value; } + public string TodayButtonClasses { + get => _abpDatePickerOptionsImplementation.TodayButtonClasses; + set => _abpDatePickerOptionsImplementation.TodayButtonClasses = value; + } + public string ApplyButtonClasses { get => _abpDatePickerOptionsImplementation.ApplyButtonClasses; set => _abpDatePickerOptionsImplementation.ApplyButtonClasses = value; } - public string CancelButtonClasses { - get => _abpDatePickerOptionsImplementation.CancelButtonClasses; - set => _abpDatePickerOptionsImplementation.CancelButtonClasses = value; + public string ClearButtonClasses { + get => _abpDatePickerOptionsImplementation.ClearButtonClasses; + set => _abpDatePickerOptionsImplementation.ClearButtonClasses = value; } public object Locale { 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 67b20c3c5e..b9244ff326 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 @@ -302,9 +302,14 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp attrList.Add("data-apply-button-classes", options.ApplyButtonClasses); } - if (!options.CancelButtonClasses.IsNullOrEmpty()) + if (!options.ClearButtonClasses.IsNullOrEmpty()) { - attrList.Add("data-cancel-button-classes", options.CancelButtonClasses); + attrList.Add("data-clear-button-classes", options.ClearButtonClasses); + } + + if (!options.TodayButtonClasses.IsNullOrEmpty()) + { + attrList.Add("data-today-button-classes", options.TodayButtonClasses); } if (options.AutoApply != null) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs index 4dfdd3b86a..15b4e2003d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOptions.cs @@ -23,8 +23,9 @@ public class AbpDatePickerOptions : IAbpDatePickerOptions public AbpDatePickerOpens Opens { get; set; } = AbpDatePickerOpens.Center; public AbpDatePickerDrops Drops { get; set; } = AbpDatePickerDrops.Down; public string ButtonClasses { get; set; } + public string TodayButtonClasses { get; set; } public string ApplyButtonClasses { get; set; } - public string CancelButtonClasses { get; set; } + public string ClearButtonClasses { get; set; } public object Locale { get; set; } public bool? AutoApply { get; set; } public bool? LinkedCalendars { get; set; } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs index 97943d9dcf..8b64b28d05 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs @@ -103,14 +103,19 @@ public class DatePickerOptionsAttribute : Attribute, IAbpDatePickerOptions set => _abpDatePickerOptionsImplementation.ButtonClasses = value; } + public string TodayButtonClasses { + get => _abpDatePickerOptionsImplementation.TodayButtonClasses; + set => _abpDatePickerOptionsImplementation.TodayButtonClasses = value; + } + public string ApplyButtonClasses { get => _abpDatePickerOptionsImplementation.ApplyButtonClasses; set => _abpDatePickerOptionsImplementation.ApplyButtonClasses = value; } - public string CancelButtonClasses { - get => _abpDatePickerOptionsImplementation.CancelButtonClasses; - set => _abpDatePickerOptionsImplementation.CancelButtonClasses = value; + public string ClearButtonClasses { + get => _abpDatePickerOptionsImplementation.ClearButtonClasses; + set => _abpDatePickerOptionsImplementation.ClearButtonClasses = value; } public object Locale { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs index 9bcb5adf10..118c409da9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs @@ -19,118 +19,126 @@ public interface IAbpDatePickerOptions DateTime? MaxDate { get; set; } /// - /// Max span between start and end date + /// The maximum span between the selected start and end dates. Can have any property you can add to a moment object (i.e. days, months) /// object MaxSpan { get; set; } /// - /// Show dropdowns + /// Show year and month select boxes above calendars to jump to a specific month and year. /// bool? ShowDropdowns { get; set; } /// - /// Min year allowed + /// The minimum year shown in the dropdowns when showDropdowns is set to true. /// int? MinYear { get; set; } /// - /// Max year allowed + /// The maximum year shown in the dropdowns when showDropdowns is set to true. /// int? MaxYear { get; set; } /// - /// Show week numbers + /// Show week numbers at the start of each week on the calendars. /// AbpDatePickerWeekNumbers WeekNumbers { get; set; } /// - /// Allows users to pick a time + /// Adds select boxes to choose times in addition to dates. /// bool? TimePicker { get; set; } /// - /// The time interval allowed + /// Increment of the minutes selection list for times (i.e. 30 to allow only selection of times ending in 0 or 30). /// int? TimePickerIncrement { get; set; } /// - /// Sets the time picker hour format as 12 or 24. + /// Use 24-hour instead of 12-hour times, removing the AM/PM selection. /// bool? TimePicker24Hour { get; set; } /// - /// Allows seconds selection + /// Show seconds in the timePicker. /// bool? TimePickerSeconds { get; set; } /// - /// Predefined date range list + /// Set predefined date ranges the user can select from. Each key is the label for the range, and its value an array with two dates representing the bounds of the range. /// List Ranges { get; set; } /// - /// Show custom range label + /// Displays "Custom Range" at the end of the list of predefined ranges, when the ranges option is used. This option will be highlighted whenever the current date range selection does not match one of the predefined ranges. Clicking it will display the calendars to select a new range. /// bool? ShowCustomRangeLabel { get; set; } /// - /// Always show calendars + /// Normally, if you use the ranges option to specify pre-defined date ranges, calendars for choosing a custom date range are not shown until the user clicks "Custom Range". When this option is set to true, the calendars for choosing a custom date range are always shown instead. /// bool? AlwaysShowCalendars { get; set; } /// - /// The horizontal location of the datepicker + /// Whether the picker appears aligned to the left, to the right, or centered under the HTML element it's attached to. /// AbpDatePickerOpens Opens { get; set; } /// - /// The vertical location of the datepicker + /// Whether the picker appears below (default) or above the HTML element it's attached to. /// AbpDatePickerDrops Drops { get; set; } /// - /// Button CSS classes + /// CSS class names that will be added to both the today, clear, and apply buttons. /// [CanBeNull] string ButtonClasses { get; set; } /// - /// Apply class to all buttons + /// CSS class names that will be added only to the today button. + /// + [CanBeNull] + string TodayButtonClasses { get; set; } + + /// + /// CSS class names that will be added only to the apply button. /// [CanBeNull] string ApplyButtonClasses { get; set; } /// - /// Cancel CSS classes to all buttons + /// CSS class names that will be added only to the clear button. /// [CanBeNull] - string CancelButtonClasses { get; set; } + string ClearButtonClasses { get; set; } /// - /// Sets a custom locale + /// Allows you to provide localized strings for buttons and labels, customize the date format, and change the first day of week for the calendars. /// [CanBeNull] object Locale { get; set; } /// - /// Applies the value when it a date is selected + /// Hide the apply button, and automatically apply a new date range as soon as two dates are clicked. /// bool? AutoApply { get; set; } /// - /// When enabled, the two calendars displayed will always be for two sequential months (i.e. January and February), and both will be advanced when clicking the left or right arrows above the calendars. When disabled, the two calendars can be individually advanced and display any month/year. + /// When enabled, the two calendars displayed will always be for two sequential months (i.e. January and February), and both will be advanced when clicking the left or right arrows above the calendars. When disabled, the two calendars can be individually advanced and display any month/year. /// bool? LinkedCalendars { get; set; } /// - /// Updates the input automatically + /// Indicates whether the date range picker should automatically update the value of the input element it's attached to at initialization and when the selected dates change. /// bool? AutoUpdateInput { get; set; } - // Parent element + /// + /// jQuery selector of the parent element that the date range picker will be added to, if not provided this will be 'body' + /// [CanBeNull] string ParentEl { get; set; } - + [CanBeNull] string DateFormat { get; set; } @@ -144,6 +152,9 @@ public interface IAbpDatePickerOptions bool? IsIso { get; set; } + /// + /// Other non-mapped attributes will be automatically added to the input element as is. + /// [CanBeNull] object Options { get; set; } } \ No newline at end of file From 44864db332aa4206692ccfc49a381a059f0347df Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 13 Mar 2023 18:16:31 +0300 Subject: [PATCH 22/89] refactor initializeDateRangePickers method --- .../bootstrap/dom-event-handlers.js | 527 ++++++++++-------- 1 file changed, 290 insertions(+), 237 deletions(-) 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 3499aef9a9..bbc26e4e1f 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 @@ -296,254 +296,317 @@ abp.dom.initializers.initializeDateRangePickers = function ($rootElement) { - $rootElement - .findWithSelf('abp-date-picker,abp-date-range-picker') - .each(function () { - var $this = $(this); - var $input = $this.find('.input-group input[type="text"]') - if ($input.data('daterangepicker')) { - return; - } - - var $openButton = $this.find('button[data-type="open"]') - var $clearButton = $this.find('button[data-type="clear"]') - var singleDatePicker = $this.is('abp-date-picker') - var options = {}; - options.singleDatePicker = singleDatePicker; - - var defaultOptions = { - showDropdowns: true, - opens: "center", - drops: "down", - autoApply: true, - autoUpdateInput: false, - showTodayButton: true, - showClearButton: true, - minYear: parseInt(moment().subtract(100, 'year').locale('en').format('YYYY')), - maxYear: parseInt(moment().add(100, 'year').locale('en').format('YYYY')), - locale: { - direction: abp.localization.currentCulture.isRightToLeft ? 'rtl' : 'ltr', - todayLabel: abp.localization.localize('Today', 'AbpUi'), - clearLabel: abp.localization.localize('Clear', 'AbpUi'), - applyLabel: abp.localization.localize('Apply', 'AbpUi'), - }, - singleOpenAndClearButton: true - }; - var locale = defaultOptions.locale; - $.extend(options, defaultOptions); - $.extend(options, $this.data()); - if (jQuery.isEmptyObject(options.locale)) { - options.locale = locale; - } else { - locale = options.locale; - } - - $.extend(options, $this.data("options")); - if (jQuery.isEmptyObject(options.locale)) { - options.locale = locale; - } + function setOptions (options, $datePickerElement, singleDatePicker) { + + options.singleDatePicker = singleDatePicker; + + var defaultOptions = { + showDropdowns: true, + opens: "center", + drops: "down", + autoApply: true, + autoUpdateInput: false, + showTodayButton: true, + showClearButton: true, + minYear: parseInt(moment().subtract(100, 'year').locale('en').format('YYYY')), + maxYear: parseInt(moment().add(100, 'year').locale('en').format('YYYY')), + locale: { + direction: abp.localization.currentCulture.isRightToLeft ? 'rtl' : 'ltr', + todayLabel: abp.localization.localize('Today', 'AbpUi'), + clearLabel: abp.localization.localize('Clear', 'AbpUi'), + applyLabel: abp.localization.localize('Apply', 'AbpUi'), + }, + singleOpenAndClearButton: true + }; + var locale = defaultOptions.locale; + $.extend(options, defaultOptions); + $.extend(options, $datePickerElement.data()); + if ($.isEmptyObject(options.locale)) { + options.locale = locale; + } else { + locale = options.locale; + } - if (options.timePicker && options.timePicker24Hour === undefined) { - options.timePicker24Hour = moment.localeData().longDateFormat('LT').indexOf('A') < 1; - } + $.extend(options, $datePickerElement.data("options")); + if ($.isEmptyObject(options.locale)) { + options.locale = locale; + } - var isUtc = options.isUtc; - var isIso = options.isIso; - var timePicker = options.timePicker; - var timePicker24Hour = options.timePicker24Hour; - var timePickerSeconds = options.timePickerSeconds; - var dateFormat = options.dateFormat; - var separator = options.separator; - var defaultDateFormat = "YYYY-MM-DD"; - var singleOpenAndClearButton = options.singleOpenAndClearButton && $clearButton.length > 0 && $openButton.length > 0; + if (options.timePicker && options.timePicker24Hour === undefined) { + options.timePicker24Hour = moment.localeData().longDateFormat('LT').indexOf('A') < 1; + } - const replaceButton = function (hasDate) { - var hiddenClass = 'd-none'; - - if (singleOpenAndClearButton) { - if (hasDate) { - $openButton.addClass(hiddenClass); - $clearButton.removeClass(hiddenClass); - $clearButton.insertAfter($openButton); - } else { - $openButton.removeClass(hiddenClass); - $clearButton.addClass(hiddenClass); - $openButton.insertAfter($clearButton); - } - } - } + if (options.dateFormat) { + options.locale = options.locale || {}; + options.locale.format = options.dateFormat; + } - const getMoment = function (date) { - if (!date) { - return isUtc ? moment.utc() : moment(); - } + if (options.separator) { + options.locale = options.locale || {}; + options.locale.separator = options.separator; + } - if (isUtc) { - return moment.utc(date, dateFormat); + if (options.ranges) { + $.each(options.ranges, function (key, value) { + let start = value[0]; + let end; + if (value.length > 1) { + end = value[1]; } else { - return moment(date, dateFormat); + end = value[0]; } - } + options.ranges[key] = [getMoment(start, options), getMoment(end, options.isUtc)]; + }); + } - if (dateFormat) { - options.locale = options.locale || {}; - options.locale.format = dateFormat; - } + if (typeof options.template !== 'string' && !(options.template instanceof $)) + options.template = + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + ' ' + + '
' + + '
'; + } - if (separator) { - options.locale = options.locale || {}; - options.locale.separator = separator; - } + function replaceOpenButton (hasDate,singleOpenAndClearButton, $openButton, $clearButton) { + var hiddenClass = 'd-none'; - var startDate = options.startDate ? moment(options.startDate) : null; - if (singleDatePicker && !startDate) { - startDate = options.date ? moment(options.date) : null; + if (singleOpenAndClearButton) { + if (hasDate) { + $openButton.addClass(hiddenClass); + $clearButton.removeClass(hiddenClass); + $clearButton.insertAfter($openButton); + } else { + $openButton.removeClass(hiddenClass); + $clearButton.addClass(hiddenClass); + $openButton.insertAfter($clearButton); } + } + } - var endDate = options.endDate ? moment(options.endDate) : null; - if (startDate) { - options.startDate = startDate; - } - if (endDate) { - options.endDate = endDate; - } + function getMoment (date, options, dateFormat) { + var isUtc = options.isUtc; + dateFormat = dateFormat || options.dateFormat; + if (!date) { + return isUtc ? moment.utc() : moment(); + } - if (options.ranges) { - $.each(options.ranges, function (key, value) { - let start = value[0]; - let end; - if (value.length > 1) { - end = value[1]; - } else { - end = value[0]; - } - options.ranges[key] = [getMoment(start), getMoment(end)]; - }); + if (isUtc) { + return moment.utc(date, dateFormat); + } else { + return moment(date, dateFormat); + } + } + + function getStartDate(options, startDate){ + startDate = startDate ? startDate : options.startDate; + startDate = startDate ? getMoment(startDate, options) : null; + if (options.singleDatePicker && !startDate) { + startDate = options.date ? getMoment(options.date, options) : null; + } + + if(startDate && startDate.isValid()){ + return startDate; + } + + return null; + } + + function getEndDate(options, endDate){ + if (options.singleDatePicker) { + return null; + } + endDate = endDate ? endDate : options.endDate; + endDate = endDate ? getMoment(endDate, options) : null; + + if(endDate && endDate.isValid()){ + return endDate; + } + + return null; + } + + function getTodayButton(options, $input){ + if (options.showTodayButton) { + var $todayBtn = $(''); + if(options.todayButtonClasses){ + $todayBtn.addClass(options.todayButtonClasses); + }else{ + $todayBtn.addClass('btn-default'); } - var $todayBtn = $(''); - var $clearBtn = $(''); - - var extraButtons = []; - if (options.showTodayButton) { - extraButtons.push($todayBtn); - - $todayBtn.on('click', function () { - var today = getMoment(); - $input.data('daterangepicker').setStartDate(today); - $input.data('daterangepicker').setEndDate(today); - $input.data('daterangepicker').updateView(); - }); + $todayBtn.on('click', function () { + var today = getMoment(undefined, options); + $input.data('daterangepicker').setStartDate(today); + $input.data('daterangepicker').setEndDate(today); + $input.data('daterangepicker').updateView(); + }); + + return $todayBtn; + } + + return null; + } + + function getClearButton(options, $input, $dateRangePicker){ + if (options.showClearButton) { + var $clearBtn = $(''); + if(options.clearButtonClasses){ + $clearBtn.addClass(options.clearButtonClasses); + }else{ + $clearBtn.addClass('btn-default'); } + $clearBtn.on('click', function () { + $input.val('').trigger('change'); + $dateRangePicker.hide(); + }); + + return $clearBtn; + } + return null; + } + + function addExtraButtons(options, $dateRangePicker, $input) { + var extraButtons = [getTodayButton(options, $input), getClearButton(options, $input, $dateRangePicker)]; + if ($dateRangePicker.container.find('.drp-buttons').css('display') !== 'none') { - if (options.showClearButton) { - extraButtons.push($clearBtn); + $.each(extraButtons, function (index, value) { + $dateRangePicker.container.find('.drp-buttons').prepend(value); + }); + } else { + var $div = $('
'); + $div.css('display', 'block'); + $.each(extraButtons, function (index, value) { + $div.prepend(value); + }); - $clearBtn.on('click', function () { - $input.val('').trigger('change'); - $dateRangePicker.hide(); - }); + $div.insertAfter($dateRangePicker.container.find('.drp-buttons')); + } + } + + function addOpenButtonClick($openButton, $dateRangePicker){ + if(!$openButton){ + return; + } + $dateRangePicker.outsideClick = function (e) { + var target = $(e.target); + // if the page is clicked anywhere except within the daterangerpicker/button itself then call this.hide() + if ( + // ie modal dialog fix + e.type == "focusin" || + target.closest(this.element).length || + target.closest(this.container).length || + target.closest('.calendar-table').length || + target.closest($openButton).length + ) { + return; } - if (typeof options.template !== 'string' && !(options.template instanceof $)) - options.template = - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - ' ' + - '
' + - '
'; - - $input.daterangepicker(options); - - var $dateRangePicker = $input.data('daterangepicker'); + this.hide(); + this.element.trigger('outsideClick.daterangepicker', this); + }; - if ($dateRangePicker.container.find('.drp-buttons').css('display') !== 'none') { + $openButton.on('click', function () { + $dateRangePicker.toggle(); + }); + } - $.each(extraButtons, function (index, value) { - $dateRangePicker.container.find('.drp-buttons').prepend(value); - }); + function extendDateFormat (format,options) { + if (options.timePicker) { + if (options.timePicker24Hour) { + if (options.timePickerSeconds) { + format += " HH:mm:ss"; + } else { + format += " HH:mm"; + } + } else { + if (options.timePickerSeconds) { + format += ' ' + " hh:mm:ss A" + } else { + format += " hh:mm A"; + } } - else { - var $div = $('
'); - $div.css('display', 'block'); - $.each(extraButtons, function (index, value) { - $div.prepend(value); - }); + } - $div.insertAfter($dateRangePicker.container.find('.drp-buttons')); + return format; + } + + function fillInput($input, startDate, endDate, options) { + if (options.singleDatePicker) { + if (startDate) { + $input.val(startDate.format(options.dateFormat)); + } + } else { + if (startDate && endDate) { + $input.val(startDate.format(options.dateFormat) + options.separator + endDate.format(options.dateFormat)); + } + } + } + + $rootElement + .findWithSelf('abp-date-picker,abp-date-range-picker') + .each(function () { + var $this = $(this); + var $input = $this.find('.input-group input[type="text"]') + if ($input.data('daterangepicker')) { + return; } - $dateRangePicker.outsideClick = function (e) { - var target = $(e.target); - // if the page is clicked anywhere except within the daterangerpicker/button itself then call this.hide() - if ( - // ie modal dialog fix - e.type == "focusin" || - target.closest(this.element).length || - target.closest(this.container).length || - target.closest('.calendar-table').length || - target.closest($openButton).length - ) { - return; - } + var $openButton = $this.find('button[data-type="open"]') + var $clearButton = $this.find('button[data-type="clear"]') + var singleDatePicker = $this.is('abp-date-picker') + var options = {}; + + setOptions(options, $this, singleDatePicker); - this.hide(); - this.element.trigger('outsideClick.daterangepicker', this); - }; + var isIso = options.isIso; + var dateFormat = options.dateFormat; + var separator = options.separator; + var defaultDateFormat = extendDateFormat("YYYY-MM-DD", options); + + var singleOpenAndClearButton = options.singleOpenAndClearButton && $clearButton.length > 0 && $openButton.length > 0; + + var startDate = getStartDate(options); - $openButton.on('click', function () { - $dateRangePicker.toggle(); - }); + var endDate = getEndDate(options); + if (startDate) { + options.startDate = startDate; + } + if (endDate) { + options.endDate = endDate; + } - const extendDateFormat = function (format) { - if (timePicker) { - if (timePicker24Hour) { - if (timePickerSeconds) { - format += " HH:mm:ss"; - } else { - format += " HH:mm"; - } - } else { - if (timePickerSeconds) { - format += ' ' + " hh:mm:ss A" - } else { - format += " hh:mm A"; - } - } - } + $input.daterangepicker(options); - return format; - } + var $dateRangePicker = $input.data('daterangepicker'); - defaultDateFormat = extendDateFormat(defaultDateFormat); + addExtraButtons(options, $dateRangePicker, $input); + addOpenButtonClick($openButton, $dateRangePicker); + if (!dateFormat) { - dateFormat = extendDateFormat(moment.localeData().longDateFormat('L')) + dateFormat = extendDateFormat(moment.localeData().longDateFormat('L'), options); + options.dateFormat = dateFormat; } if (!separator) { separator = $dateRangePicker.locale.separator; + options.separator = separator; } - if (singleDatePicker) { - if (startDate) { - $input.val(startDate.format(dateFormat)); - } - } else { - if (startDate && endDate) { - $input.val(startDate.format(dateFormat) + separator + endDate.format(dateFormat)); - } + if(options.autoUpdateInput){ + fillInput($input, startDate, endDate, options); } - + $input.on('apply.daterangepicker', function (ev, picker) { if (singleDatePicker) { $(this).val(picker.startDate.format(dateFormat)); @@ -560,8 +623,8 @@ }); $input.on('show.daterangepicker', function (ev, picker) { - var momentStartDate = getMoment(startDate); - var momentEndDate = getMoment(endDate); + var momentStartDate = getMoment(startDate, options); + var momentEndDate = getMoment(endDate, options); if (momentStartDate.isValid()) { picker.setStartDate(momentStartDate); } @@ -575,47 +638,35 @@ $input.trigger('change'); }); + var firstTrigger = true; $input.on('change', function () { if ($(this).val() !== '') { - replaceButton(true); + replaceOpenButton(true, singleOpenAndClearButton, $openButton, $clearButton); } else { - replaceButton(false); + replaceOpenButton(false, singleOpenAndClearButton, $openButton, $clearButton); } var dates = $(this).val().split(separator); if (dates.length === 2) { - startDate = getMoment(dates[0]); - if (!startDate.isValid()) { - startDate = null; - } else { - startDate = formatDate(startDate); - } - endDate = getMoment(dates[1]); - if (!endDate.isValid()) { - endDate = null; - } else { - endDate = formatDate(endDate); - } + startDate = formatDate(getStartDate(options, dates[0])); + endDate = formatDate(getEndDate(options, dates[1])); } else { if (dates[0]) { - startDate = getMoment(dates[0]); - if (!startDate.isValid()) { - startDate = null; - } else { - startDate = formatDate(startDate); - } + startDate = formatDate(getStartDate(options, dates[0])); } else { - startDate = null; + if(!firstTrigger){ + startDate = null; + } } - endDate = null; + if(!firstTrigger){ + endDate = null; + } } if (!startDate) { - replaceButton(false); + replaceOpenButton(false, singleOpenAndClearButton, $openButton, $clearButton); $(this).val(''); - $dateRangePicker.setStartDate(getMoment()); - $dateRangePicker.setEndDate(getMoment()); } if (!singleDatePicker) { @@ -637,6 +688,8 @@ $input.data('startDate', startDate); $input.data('endDate', endDate); } + + firstTrigger = false; }); function formatDate(date) { @@ -652,7 +705,7 @@ function getFormattedStartDate() { if (startDate) { - return getMoment(startDate).format(dateFormat); + return getMoment(startDate, options).format(dateFormat); } return null; @@ -660,7 +713,7 @@ function getFormattedEndDate() { if (endDate) { - return getMoment(endDate).format(dateFormat); + return getMoment(endDate, options).format(dateFormat); } return null; From 41c75fa199f7efbf1d9965ce664f008781335149 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Thu, 16 Mar 2023 12:36:17 +0300 Subject: [PATCH 23/89] created injection token for others group, model updated, created "groupedTree" getter to routes.service --- .../packages/core/src/lib/models/common.ts | 6 ++++ .../core/src/lib/services/routes.service.ts | 35 +++++++++++++++++-- .../packages/core/src/lib/tokens/index.ts | 1 + .../core/src/lib/tokens/others-group.token.ts | 4 +++ 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 npm/ng-packs/packages/core/src/lib/tokens/others-group.token.ts diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index f7aa504c3d..bf366b9cd4 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -2,6 +2,7 @@ import { EventEmitter, Type } from '@angular/core'; import { Routes } from '@angular/router'; import { Subject } from 'rxjs'; import { eLayoutType } from '../enums/common'; +import { TreeNode } from '../utils'; import { Environment } from './environment'; export namespace ABP { @@ -78,6 +79,11 @@ export namespace ABP { group?: Group; } + export interface RouteGroup { + group: Group; + items: TreeNode[]; + } + export interface Tab extends Nav { component: Type; } diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 32f8b473d0..1fcaea5371 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -1,13 +1,14 @@ -import { Injectable, Injector, OnDestroy } from '@angular/core'; +import { Injectable, Injector, inject, OnDestroy } from '@angular/core'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { ABP } from '../models/common'; +import { OTHERS_GROUP } from '../tokens'; import { pushValueTo } from '../utils/array-utils'; import { BaseTreeNode, createTreeFromList, TreeNode } from '../utils/tree-utils'; import { ConfigStateService } from './config-state.service'; import { PermissionService } from './permission.service'; // eslint-disable-next-line @typescript-eslint/ban-types -export abstract class AbstractTreeService { +export abstract class AbstractTreeService { abstract id: string; abstract parentId: string; abstract hide: (item: T) => boolean; @@ -180,4 +181,32 @@ export abstract class AbstractNavTreeService } @Injectable({ providedIn: 'root' }) -export class RoutesService extends AbstractNavTreeService {} +export class RoutesService extends AbstractNavTreeService { + private readonly othersGroup: ABP.Group = inject(OTHERS_GROUP, { + optional: true, + }); + + get groupedTree(): ABP.RouteGroup[] { + const groupTree = this.visible.filter(node => node.group); + if (groupTree.length < 1) return; + + const map = new Map[]>(groupTree?.map(node => [node.group, []])); + const otherGroup = this.othersGroup || { key: 'others', text: '::Others' }; + map.set(otherGroup, []); + + for (const node of this.visible) { + const { path, children, group } = node; + + if (!group && (children?.length > 0 || path)) { + map.get(otherGroup)?.push(node); + } else if (group) { + map.get(group)?.push(node); + } + } + + return Array.from(map.entries()).map(([group, nodes]) => ({ + group, + items: nodes, + })); + } +} diff --git a/npm/ng-packs/packages/core/src/lib/tokens/index.ts b/npm/ng-packs/packages/core/src/lib/tokens/index.ts index f0e724259a..d01f652b98 100644 --- a/npm/ng-packs/packages/core/src/lib/tokens/index.ts +++ b/npm/ng-packs/packages/core/src/lib/tokens/index.ts @@ -12,3 +12,4 @@ export * from './pipe-to-login.token'; export * from './set-token-response-to-storage.token'; export * from './check-authentication-state'; export * from './http-context.token'; +export * from './others-group.token' \ No newline at end of file diff --git a/npm/ng-packs/packages/core/src/lib/tokens/others-group.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/others-group.token.ts new file mode 100644 index 0000000000..396bb3db13 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/others-group.token.ts @@ -0,0 +1,4 @@ +import { InjectionToken } from '@angular/core'; +import { ABP } from '../models'; + +export const OTHERS_GROUP = new InjectionToken('OTHERS_GROUP'); From e4b962901c7bb986cd56572c524193e0e1246bed Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Thu, 16 Mar 2023 14:09:02 +0300 Subject: [PATCH 24/89] routes service & test updated --- .../core/src/lib/services/routes.service.ts | 13 ++++--- .../core/src/lib/tests/routes.service.spec.ts | 35 +++++++++++++++---- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 1fcaea5371..2f2381a3d5 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -1,4 +1,4 @@ -import { Injectable, Injector, inject, OnDestroy } from '@angular/core'; +import { Injectable, Injector, Inject, Optional, OnDestroy } from '@angular/core'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { ABP } from '../models/common'; import { OTHERS_GROUP } from '../tokens'; @@ -182,11 +182,14 @@ export abstract class AbstractNavTreeService @Injectable({ providedIn: 'root' }) export class RoutesService extends AbstractNavTreeService { - private readonly othersGroup: ABP.Group = inject(OTHERS_GROUP, { - optional: true, - }); + constructor( + injector: Injector, + @Optional() @Inject(OTHERS_GROUP) private readonly othersGroup: ABP.Group, + ) { + super(injector); + } - get groupedTree(): ABP.RouteGroup[] { + get groupedVisible(): ABP.RouteGroup[] { const groupTree = this.visible.filter(node => node.group); if (groupTree.length < 1) return; diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index 1f3bb79362..b07aa05544 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -15,14 +15,15 @@ export const mockRoutesService = (injectorPayload = {} as { [key: string]: any } ConfigStateService: { createOnUpdateStream: () => updateStream$ }, ...injectorPayload, }); - return new RoutesService(injector); + const othersGroup: ABP.Group = { key: 1, text: 'Others' }; + return new RoutesService(injector, othersGroup); }; describe('Routes Service', () => { let service: RoutesService; - const fooGroup: GroupType = { key: 'foo', text: '::FooGroup' }; - const barGroup: GroupType = { key: 'bar', text: '::BarGroup' }; + const fooGroup: GroupType = { key: 'foo', text: 'FooGroup' }; + const barGroup: GroupType = { key: 'bar', text: 'BarGroup' }; const routes = [ { path: '/foo', name: 'foo' }, @@ -34,9 +35,10 @@ describe('Routes Service', () => { const groupedRoutes = [ { path: '/foo', name: 'foo', group: fooGroup }, + { path: '/foo/y', name: 'y', parentName: 'foo' }, { path: '/foo/bar', name: 'bar', group: barGroup }, { path: '/foo/bar/baz', name: 'baz', group: barGroup }, - { path: '/foo/y', name: 'y', parentName: 'foo' }, + { path: '/foo/z', name: 'z' }, ]; beforeEach(() => { @@ -77,14 +79,35 @@ describe('Routes Service', () => { it('should have routes with and without group', async () => { service.add(groupedRoutes); - const grouped = await service.flat.filter(f => f.group); - const unGrouped = await service.flat.filter(f => !f.group); + const grouped = service.visible.filter(f => f.group); + const unGrouped = service.visible.filter(f => !f.group); expect(grouped.length).toBe(3); expect(unGrouped.length).toBe(1); }); }); + describe('#groupedVisible', () => { + it('should have groups and items', async () => { + service.add(groupedRoutes); + + const tree = service.groupedVisible; + + expect(tree.length).toBe(3); + + expect(tree[0].group.key).toBe('foo'); + expect(tree[0].group.text).toBe('FooGroup'); + expect(tree[0].items[0].children[0].name).toBe('y'); + + expect(tree[1].group.key).toBe('bar'); + expect(tree[1].group.text).toBe('BarGroup'); + + expect(tree[2].group.key).toBe(1); + expect(tree[2].group.text).toBe('Others'); + expect(tree[2].items[0].name).toBe('z'); + }); + }); + describe('#find', () => { it('should return node found based on query', () => { service.add(routes); From 7b625e1d237497028b395cc342efbdb5de7b7a7a Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Thu, 16 Mar 2023 15:29:46 +0300 Subject: [PATCH 25/89] routes service & test updated, model updated, added docs for routes service --- docs/en/UI/Angular/Modifying-the-Menu.md | 24 ++++++++++++++++++- .../packages/core/src/lib/core.module.ts | 5 ++++ .../packages/core/src/lib/models/common.ts | 1 + .../core/src/lib/services/routes.service.ts | 4 ++-- .../core/src/lib/tests/routes.service.spec.ts | 7 ++++-- 5 files changed, 36 insertions(+), 5 deletions(-) diff --git a/docs/en/UI/Angular/Modifying-the-Menu.md b/docs/en/UI/Angular/Modifying-the-Menu.md index 8278f38722..b3ab040910 100644 --- a/docs/en/UI/Angular/Modifying-the-Menu.md +++ b/docs/en/UI/Angular/Modifying-the-Menu.md @@ -122,15 +122,37 @@ function configureRoutes(routes: RoutesService) { } ``` +To get route items as grouped we can use `groupedVisible` getter method + - It will return `RouteGroup[]` if there is any group in route tree otherwise it'll return undefined + +```js +import { ABP, RoutesService } from "@abp/ng.core"; +import { Component } from "@angular/core"; + +@Component(/* component metadata */) +export class AppComponent { + visible: ABP.RouteGroup[] | undefined = routes.groupedVisible; + + constructor(routes: RoutesService) {} +} +``` ...and then in app.module.ts... + - `groupedVisible` method will return `Others` group for ungrouped items, we can define `key` and `text` via `OTHERS_GROUP` injection token for this group ```js import { NgModule } from '@angular/core'; +import { ABP, OTHERS_GROUP } from '@abp/ng.core'; import { APP_ROUTE_PROVIDER } from './route.provider'; @NgModule({ - providers: [APP_ROUTE_PROVIDER], + providers: [ + APP_ROUTE_PROVIDER, + { + provide: OTHERS_GROUP, + useValue: { key: 1, text: 'MyOthersGroup' } as ABP.Group, + }, + ], // imports, declarations, and bootstrap }) export class AppModule {} diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index e3cd895022..0b3747455a 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -24,6 +24,7 @@ import { ToInjectorPipe } from './pipes/to-injector.pipe'; import { CookieLanguageProvider } from './providers/cookie-language.provider'; import { LocaleProvider } from './providers/locale.provider'; import { LocalizationService } from './services/localization.service'; +import { OTHERS_GROUP } from './tokens'; import { localizationContributor, LOCALIZATIONS } from './tokens/localization.token'; import { CORE_OPTIONS, coreOptionsFactory } from './tokens/options.token'; import { TENANT_KEY } from './tokens/tenant-key.token'; @@ -176,6 +177,10 @@ export class CoreModule { provide: QUEUE_MANAGER, useClass: DefaultQueueManager, }, + { + provide: OTHERS_GROUP, + useValue: options.othersGroup || { key: 'others', text: '::Others' } as ABP.Group, + }, IncludeLocalizationResourcesProvider, ], }; diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index bf366b9cd4..13d7d8bdc2 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -13,6 +13,7 @@ export namespace ABP { sendNullsAsQueryParam?: boolean; tenantKey?: string; localizations?: Localization[]; + othersGroup?: Group; } export interface Child { diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 2f2381a3d5..d36228891e 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -189,12 +189,12 @@ export class RoutesService extends AbstractNavTreeService { super(injector); } - get groupedVisible(): ABP.RouteGroup[] { + get groupedVisible(): ABP.RouteGroup[] | undefined { const groupTree = this.visible.filter(node => node.group); if (groupTree.length < 1) return; const map = new Map[]>(groupTree?.map(node => [node.group, []])); - const otherGroup = this.othersGroup || { key: 'others', text: '::Others' }; + const otherGroup = this.othersGroup; map.set(otherGroup, []); for (const node of this.visible) { diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index b07aa05544..a45b4d6d36 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -15,8 +15,8 @@ export const mockRoutesService = (injectorPayload = {} as { [key: string]: any } ConfigStateService: { createOnUpdateStream: () => updateStream$ }, ...injectorPayload, }); - const othersGroup: ABP.Group = { key: 1, text: 'Others' }; - return new RoutesService(injector, othersGroup); + const othersGroupToken: ABP.Group = { key: 1, text: 'Others' }; + return new RoutesService(injector, othersGroupToken); }; describe('Routes Service', () => { @@ -97,10 +97,13 @@ describe('Routes Service', () => { expect(tree[0].group.key).toBe('foo'); expect(tree[0].group.text).toBe('FooGroup'); + expect(tree[0].items[0].name).toBe('foo'); expect(tree[0].items[0].children[0].name).toBe('y'); expect(tree[1].group.key).toBe('bar'); expect(tree[1].group.text).toBe('BarGroup'); + expect(tree[1].items[0].name).toBe('bar'); + expect(tree[1].items[1].name).toBe('baz'); expect(tree[2].group.key).toBe(1); expect(tree[2].group.text).toBe('Others'); From 00085b9863f756dd6b9c3559e3f40cf51f68b606 Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 17 Mar 2023 16:39:13 +0300 Subject: [PATCH 26/89] Update en.json --- .../AbpIoLocalization/Base/Localization/Resources/en.json | 1 + 1 file changed, 1 insertion(+) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json index 0b097d53a8..52d3d45039 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Base/Localization/Resources/en.json @@ -178,6 +178,7 @@ "BuyNewLicenseBetweenDatesToGetBenefit": "Buy a new license between {0} and {1} to get benefit for extra 2 months!", "CheckAllCommunityTalks": "Check All Community Posts", "ReadMore": "Read More", + "ContinueReading": "Continue Reading", "Post": "Post", "ExploreTheContentsCreatedByTheCoreABPTeamAndTheABPCommunity": "Explore the contents created by the core ABP team and the ABP community.", "WelcomeFallCampaign": "Welcome Fall Campaign!", From 5df7a938fbc4a9f3e4ab89972859b233fccee34c Mon Sep 17 00:00:00 2001 From: Salih Date: Mon, 20 Mar 2023 13:54:30 +0300 Subject: [PATCH 27/89] Fix AbpDatePicker options attribute --- .../AspNetCore/Tag-Helpers/Form-elements.md | 28 ++- .../AbpDatePickerBaseTagHelperService.cs | 12 +- .../Form/DatePicker/AbpDatePickerRange.cs | 43 ++++ .../DatePicker/DatePickerOptionsAttribute.cs | 194 +++--------------- .../bootstrap/dom-event-handlers.js | 5 +- 5 files changed, 106 insertions(+), 176 deletions(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md index 0275bf8030..9140858c11 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md @@ -271,6 +271,7 @@ Usage: ````xml + ```` Model: @@ -280,9 +281,13 @@ Model: { public SampleModel MyModel { get; set; } + public DynamicForm DynamicFormExample { get; set; } + public void OnGet() { MyModel = new SampleModel(); + + DynamicFormExample = new DynamicForm(); } public class SampleModel @@ -293,6 +298,27 @@ Model: public DateTime MyDateRangeEnd { get; set; } } + + public class DynamicForm + { + [DateRangePicker("MyPicker",true)] + public DateTime StartDate { get; set; } + + [DateRangePicker("MyPicker",false)] + [DatePickerOptions(nameof(DatePickerOptions))] + public DateTime EndDate { get; set; } + + public DateTime DateTime { get; set; } + + public DynamicForm() + { + StartDate = DateTime.Now; + EndDate = DateTime.Now; + DateTime = DateTime.Now; + } + } + + public AbpDatePickerOptions DatePickerOptions { get; set; } } ```` @@ -311,7 +337,7 @@ You can set some of the attributes on your c# property, or directly on HTML tag. - `AbpFormControlSize.Large` * `[DisabledInput]` : Sets the input as disabled. * `[ReadOnlyInput]`: Sets the input as read-only. -- `[DatePickerOptions()]`: Sets the predefined options of the date picker. See the available [datepicker options](https://www.daterangepicker.com/#options). You can use a localization key directly. +- `[DatePickerOptions()]`: Sets the predefined options of the date picker. Parameter should be the name of the options property (see example above). See the available [datepicker options](https://www.daterangepicker.com/#options). You can use a localization key directly. ##### abp-date-picker `[DatePicker]` : Sets the input as datepicker. Especially for string properties. 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 b9244ff326..dbcd4e23ac 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 @@ -217,6 +217,12 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp protected TagHelperAttributeList ConvertDatePickerOptionsToAttributeList(IAbpDatePickerOptions options) { var attrList = new TagHelperAttributeList(); + + if(options == null) + { + return attrList; + } + if (options.Locale != null) { attrList.Add("data-locale", JsonSerializer.Serialize(options.Locale)); @@ -420,10 +426,10 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp attrList.Add(attr); } - var optionsAttribute = GetAttribute(); - if(optionsAttribute != null) + var optionsAttribute = GetAttributeAndModelExpression(out var modelExpression); + if (optionsAttribute != null) { - foreach (var attr in ConvertDatePickerOptionsToAttributeList(optionsAttribute)) + foreach (var attr in ConvertDatePickerOptionsToAttributeList(optionsAttribute.GetDatePickerOptions(modelExpression.ModelExplorer))) { attrList.Add(attr); } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs index 727110c56c..eea3d2ad31 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerRange.cs @@ -8,6 +8,49 @@ public class AbpDatePickerRange private readonly List _dates = new List(); public string Label { get; set; } public IReadOnlyList Dates => _dates; + + public AbpDatePickerRange() + { + + } + public AbpDatePickerRange(string label, DateTime start, DateTime end) + { + Label = label; + AddDate(start); + AddDate(end); + } + + public AbpDatePickerRange(string label, DateTime date) + { + Label = label; + AddDate(date); + } + + public AbpDatePickerRange(string label, DateTimeOffset start, DateTimeOffset end) + { + Label = label; + AddDate(start); + AddDate(end); + } + + public AbpDatePickerRange(string label, DateTimeOffset date) + { + Label = label; + AddDate(date); + } + + public AbpDatePickerRange(string label, string start, string end) + { + Label = label; + AddDate(start); + AddDate(end); + } + + public AbpDatePickerRange(string label, string date) + { + Label = label; + AddDate(date); + } public void AddDate(string date) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs index 8b64b28d05..9cff72aa23 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs @@ -1,180 +1,34 @@ using System; -using System.Collections.Generic; +using System.Linq; +using Microsoft.AspNetCore.Mvc.ViewFeatures; namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; [AttributeUsage(AttributeTargets.Property)] -public class DatePickerOptionsAttribute : Attribute, IAbpDatePickerOptions +public class DatePickerOptionsAttribute : Attribute { - private readonly IAbpDatePickerOptions _abpDatePickerOptionsImplementation; - - public DatePickerOptionsAttribute() + public string DatePickerOptionsPropertyName { get; set; } + + public DatePickerOptionsAttribute(string datePickerOptionsPropertyName) { - _abpDatePickerOptionsImplementation = new AbpDatePickerOptions(); - } - - public string PickerId { - get => _abpDatePickerOptionsImplementation.PickerId; - set => _abpDatePickerOptionsImplementation.PickerId = value; - } - - public DateTime? MinDate { - get => _abpDatePickerOptionsImplementation.MinDate; - set => _abpDatePickerOptionsImplementation.MinDate = value; - } - - public DateTime? MaxDate { - get => _abpDatePickerOptionsImplementation.MaxDate; - set => _abpDatePickerOptionsImplementation.MaxDate = value; - } - - public object MaxSpan { - get => _abpDatePickerOptionsImplementation.MaxSpan; - set => _abpDatePickerOptionsImplementation.MaxSpan = value; - } - - public bool? ShowDropdowns { - get => _abpDatePickerOptionsImplementation.ShowDropdowns; - set => _abpDatePickerOptionsImplementation.ShowDropdowns = value; - } - - public int? MinYear { - get => _abpDatePickerOptionsImplementation.MinYear; - set => _abpDatePickerOptionsImplementation.MinYear = value; - } - - public int? MaxYear { - get => _abpDatePickerOptionsImplementation.MaxYear; - set => _abpDatePickerOptionsImplementation.MaxYear = value; - } - - public AbpDatePickerWeekNumbers WeekNumbers { - get => _abpDatePickerOptionsImplementation.WeekNumbers; - set => _abpDatePickerOptionsImplementation.WeekNumbers = value; + DatePickerOptionsPropertyName = datePickerOptionsPropertyName; } - - public bool? TimePicker { - get => _abpDatePickerOptionsImplementation.TimePicker; - set => _abpDatePickerOptionsImplementation.TimePicker = value; - } - - public int? TimePickerIncrement { - get => _abpDatePickerOptionsImplementation.TimePickerIncrement; - set => _abpDatePickerOptionsImplementation.TimePickerIncrement = value; - } - - public bool? TimePicker24Hour { - get => _abpDatePickerOptionsImplementation.TimePicker24Hour; - set => _abpDatePickerOptionsImplementation.TimePicker24Hour = value; - } - - public bool? TimePickerSeconds { - get => _abpDatePickerOptionsImplementation.TimePickerSeconds; - set => _abpDatePickerOptionsImplementation.TimePickerSeconds = value; - } - - public List Ranges { - get => _abpDatePickerOptionsImplementation.Ranges; - set => _abpDatePickerOptionsImplementation.Ranges = value; - } - - public bool? ShowCustomRangeLabel { - get => _abpDatePickerOptionsImplementation.ShowCustomRangeLabel; - set => _abpDatePickerOptionsImplementation.ShowCustomRangeLabel = value; - } - - public bool? AlwaysShowCalendars { - get => _abpDatePickerOptionsImplementation.AlwaysShowCalendars; - set => _abpDatePickerOptionsImplementation.AlwaysShowCalendars = value; - } - - public AbpDatePickerOpens Opens { - get => _abpDatePickerOptionsImplementation.Opens; - set => _abpDatePickerOptionsImplementation.Opens = value; - } - - public AbpDatePickerDrops Drops { - get => _abpDatePickerOptionsImplementation.Drops; - set => _abpDatePickerOptionsImplementation.Drops = value; - } - - public string ButtonClasses { - get => _abpDatePickerOptionsImplementation.ButtonClasses; - set => _abpDatePickerOptionsImplementation.ButtonClasses = value; - } - - public string TodayButtonClasses { - get => _abpDatePickerOptionsImplementation.TodayButtonClasses; - set => _abpDatePickerOptionsImplementation.TodayButtonClasses = value; - } - - public string ApplyButtonClasses { - get => _abpDatePickerOptionsImplementation.ApplyButtonClasses; - set => _abpDatePickerOptionsImplementation.ApplyButtonClasses = value; - } - - public string ClearButtonClasses { - get => _abpDatePickerOptionsImplementation.ClearButtonClasses; - set => _abpDatePickerOptionsImplementation.ClearButtonClasses = value; - } - - public object Locale { - get => _abpDatePickerOptionsImplementation.Locale; - set => _abpDatePickerOptionsImplementation.Locale = value; - } - - public bool? AutoApply { - get => _abpDatePickerOptionsImplementation.AutoApply; - set => _abpDatePickerOptionsImplementation.AutoApply = value; - } - - public bool? LinkedCalendars { - get => _abpDatePickerOptionsImplementation.LinkedCalendars; - set => _abpDatePickerOptionsImplementation.LinkedCalendars = value; - } - - public bool? AutoUpdateInput { - get => _abpDatePickerOptionsImplementation.AutoUpdateInput; - set => _abpDatePickerOptionsImplementation.AutoUpdateInput = value; - } - - public string ParentEl { - get => _abpDatePickerOptionsImplementation.ParentEl; - set => _abpDatePickerOptionsImplementation.ParentEl = value; - } - - public string DateFormat { - get => _abpDatePickerOptionsImplementation.DateFormat; - set => _abpDatePickerOptionsImplementation.DateFormat = value; - } - - public bool OpenButton { - get => _abpDatePickerOptionsImplementation.OpenButton; - set => _abpDatePickerOptionsImplementation.OpenButton = value; - } - - public bool ClearButton { - get => _abpDatePickerOptionsImplementation.ClearButton; - set => _abpDatePickerOptionsImplementation.ClearButton = value; - } - - public bool SingleOpenAndClearButton { - get => _abpDatePickerOptionsImplementation.SingleOpenAndClearButton; - set => _abpDatePickerOptionsImplementation.SingleOpenAndClearButton = value; - } - - public bool? IsUtc { - get => _abpDatePickerOptionsImplementation.IsUtc; - set => _abpDatePickerOptionsImplementation.IsUtc = value; - } - - public bool? IsIso { - get => _abpDatePickerOptionsImplementation.IsIso; - set => _abpDatePickerOptionsImplementation.IsIso = value; - } - - public object Options { - get => _abpDatePickerOptionsImplementation.Options; - set => _abpDatePickerOptionsImplementation.Options = value; + + public IAbpDatePickerOptions GetDatePickerOptions(ModelExplorer explorer) + { + var properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName != null && p.Metadata.PropertyName.Equals(DatePickerOptionsPropertyName)).ToList(); + + while (properties.Count == 0) + { + explorer = explorer.Container; + if(explorer.Container == null) + { + return null; + } + + properties = explorer.Container.Properties.Where(p => p.Metadata.PropertyName != null && p.Metadata.PropertyName.Equals(DatePickerOptionsPropertyName)).ToList(); + } + + return properties.FirstOrDefault(p=> p.Model is IAbpDatePickerOptions)?.Model as IAbpDatePickerOptions; } } \ No newline at end of file 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 bbc26e4e1f..c02467e01e 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 @@ -290,6 +290,7 @@ $container.data('options', options); abp.dom.initializers.initializeDateRangePickers($container); + $container[0].datePicker = $datePicker[0]; return $container; } }; @@ -355,7 +356,7 @@ } else { end = value[0]; } - options.ranges[key] = [getMoment(start, options), getMoment(end, options.isUtc)]; + options.ranges[key] = [getMoment(start, options), getMoment(end, options)]; }); } @@ -448,7 +449,7 @@ var today = getMoment(undefined, options); $input.data('daterangepicker').setStartDate(today); $input.data('daterangepicker').setEndDate(today); - $input.data('daterangepicker').updateView(); + $input.data('daterangepicker').clickApply(); }); return $todayBtn; From b6247488bc5eb7fbd6dce566bf8d2732ec21a961 Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 21 Mar 2023 20:30:01 +0300 Subject: [PATCH 28/89] Add Abp-Date-Picker JavaScript Usage section --- .../AspNetCore/Tag-Helpers/Form-elements.md | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md index 9140858c11..68dd5e73b1 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md @@ -381,4 +381,50 @@ You can set the label of the input in several ways: - You can use the `Label` attribute to set the label directly. This property does not automatically localize the text. To localize the label, use `label="@L["{LocalizationKey}"].Value"`. - You can set it using `[Display(name="{LocalizationKey}")]` attribute ASP.NET Core. -- You can just let **abp** find the localization key for the property. If the `label` or `[DisplayName]` attributes are not set, it tries to find the localization by convention. For example `DisplayName:{YourPropertyName}` or `{YourPropertyName}`. If your property name is FullName, it will search for `DisplayName:FullName` or `{FullName}`. \ No newline at end of file +- You can just let **abp** find the localization key for the property. If the `label` or `[DisplayName]` attributes are not set, it tries to find the localization by convention. For example `DisplayName:{YourPropertyName}` or `{YourPropertyName}`. If your property name is FullName, it will search for `DisplayName:FullName` or `{FullName}`. + +### JavaScript Usage + +````javascript +var newPicker = abp.libs.bootstrapDateRangePicker.createDateRangePicker( + { + label: "New Picker", + } +); +newPicker.insertAfter($('body')); +```` + +````javascript +var newPicker = abp.libs.bootstrapDateRangePicker.createSinglePicker( + { + label: "New Picker", + } +); +newPicker.insertAfter($('body')); +```` + +#### Options + +* `label`: Sets the label of the input. +* `placeholder`: Sets the placeholder of the input. +* `value`: Sets the value of the input. +* `name`: Sets the name of the input. +* `id`: Sets the id of the input. +* `required`: Sets the input as required. +* `disabled`: Sets the input as disabled. +* `readonly`: Sets the input as read-only. +* `size`: Sets the size of the form-control wrapper element. Available values are + - `AbpFormControlSize.Default` + - `AbpFormControlSize.Small` + - `AbpFormControlSize.Medium` + - `AbpFormControlSize.Large` +* `open-button`: A button to open the datepicker will be added when its `True`. The default value is `True`. +* `clear-button`: A button to clear the datepicker will be added when its `True`. The default value is `True` +* `is-utc`: Converts the date to UTC when its `True`. The default value is `False`. +* `is-iso`: Converts the date to ISO format when its `True`. The default value is `False`. +* `date-format`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`. +* `date-separator`: Sets a character to separate start and end dates. The default value is `-`. +* `startDateName`: Sets the name of the hidden start date input. +* `endDateName`: Sets the name of the hidden end date input. +* `dateName`: Sets the name of the hidden date input. +* Other [datepicker options](https://www.daterangepicker.com/#options). Eg: `start-date: "2020-01-01"`. \ No newline at end of file From b00c8510fbf7fc93628589afcc1ccbc5ec9209e2 Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 21 Mar 2023 20:30:01 +0300 Subject: [PATCH 29/89] Add Abp-Date-Picker JavaScript Usage section --- .../AspNetCore/Tag-Helpers/Form-elements.md | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md index 9140858c11..f18a955008 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md @@ -381,4 +381,50 @@ You can set the label of the input in several ways: - You can use the `Label` attribute to set the label directly. This property does not automatically localize the text. To localize the label, use `label="@L["{LocalizationKey}"].Value"`. - You can set it using `[Display(name="{LocalizationKey}")]` attribute ASP.NET Core. -- You can just let **abp** find the localization key for the property. If the `label` or `[DisplayName]` attributes are not set, it tries to find the localization by convention. For example `DisplayName:{YourPropertyName}` or `{YourPropertyName}`. If your property name is FullName, it will search for `DisplayName:FullName` or `{FullName}`. \ No newline at end of file +- You can just let **abp** find the localization key for the property. If the `label` or `[DisplayName]` attributes are not set, it tries to find the localization by convention. For example `DisplayName:{YourPropertyName}` or `{YourPropertyName}`. If your property name is FullName, it will search for `DisplayName:FullName` or `{FullName}`. + +### JavaScript Usage + +````javascript +var newPicker = abp.libs.bootstrapDateRangePicker.createDateRangePicker( + { + label: "New Picker", + } +); +newPicker.insertAfter($('body')); +```` + +````javascript +var newPicker = abp.libs.bootstrapDateRangePicker.createSinglePicker( + { + label: "New Picker", + } +); +newPicker.insertAfter($('body')); +```` + +#### Options + +* `label`: Sets the label of the input. +* `placeholder`: Sets the placeholder of the input. +* `value`: Sets the value of the input. +* `name`: Sets the name of the input. +* `id`: Sets the id of the input. +* `required`: Sets the input as required. +* `disabled`: Sets the input as disabled. +* `readonly`: Sets the input as read-only. +* `size`: Sets the size of the form-control wrapper element. Available values are + - `AbpFormControlSize.Default` + - `AbpFormControlSize.Small` + - `AbpFormControlSize.Medium` + - `AbpFormControlSize.Large` +* `open-button`: A button to open the datepicker will be added when its `True`. The default value is `True`. +* `clear-button`: A button to clear the datepicker will be added when its `True`. The default value is `True` +* `is-utc`: Converts the date to UTC when its `True`. The default value is `False`. +* `is-iso`: Converts the date to ISO format when its `True`. The default value is `False`. +* `date-format`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`. +* `date-separator`: Sets a character to separate start and end dates. The default value is `-`. +* `startDateName`: Sets the name of the hidden start date input. +* `endDateName`: Sets the name of the hidden end date input. +* `dateName`: Sets the name of the hidden date input. +* Other [datepicker options](https://www.daterangepicker.com/#options). Eg: `startDate: "2020-01-01"`. \ No newline at end of file From 3ad7fb84cfec11152b1341e0d4fe4b2043109ab2 Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 21 Mar 2023 20:53:27 +0300 Subject: [PATCH 30/89] Fix javascript createDatepicker options bug --- .../bootstrap/dom-event-handlers.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 c02467e01e..0bb5b85782 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 @@ -288,8 +288,8 @@ $datePicker.append($hiddenDateElement); } - $container.data('options', options); - abp.dom.initializers.initializeDateRangePickers($container); + $datePicker.data('options', options); + abp.dom.initializers.initializeDateRangePickers($datePicker); $container[0].datePicker = $datePicker[0]; return $container; } From 1b00e82319079e9104211b1652973781b850ddf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Fri, 24 Mar 2023 09:57:08 +0300 Subject: [PATCH 31/89] modify usage of removed directives --- docs/en/UI/Angular/Card-Component.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/docs/en/UI/Angular/Card-Component.md b/docs/en/UI/Angular/Card-Component.md index 40d23a594b..5642fe0be8 100644 --- a/docs/en/UI/Angular/Card-Component.md +++ b/docs/en/UI/Angular/Card-Component.md @@ -3,7 +3,7 @@ The ABP Card Component is a wrapper component for the Bootstrap card class. It supports all features which Bootstrap card component provides. -ABP Card Component has three main components, `CardHeader` Component, `CardBody` Component and `CardFooter` Component. These components have their own class and style inputs +ABP Card Component has three main components, `CardHeader`, `CardBody` and `CardFooter`. These components have their own class and style inputs |Component |Selector |Input Properties | |--------- |-----------------|------------------------------------| @@ -11,15 +11,13 @@ ABP Card Component has three main components, `CardHeader` Component, `CardBody` |CardBody |`abp-card-body` | `cardBodyClass`,`cardBodyStyle` | |CardFooter|`abp-card-footer`| `cardFooterClass`,`cardFooterStyle`| -In addition to these components, Card component provides directives like `CardHeader`,`CardTitle`,`CardSubtitle`,`CardText`,`CardLink`,`CardImgTop`. +In addition to these components, Card component provides directives like `CardHeader`,`CardTitle`,`CardSubtitle`,`CardImgTop`. |Directive |Selector | |-------------|-------------------------------------------------------------| |CardHeader |`abp-card-header`,`[abp-card-header]`,`[abpCardHeader]` | |CardTitle |`abp-card-title`,`[abp-card-title]`,`[abpCardTitle]` | |CardSubtitle |`abp-card-subtitle`,`[abp-card-subtitle]`,`[abpCardSubtitle]`| -|CardText |`abp-card-text`,`[abp-card-text]`,`[abpCardText]` | -|CardLink |`abp-card-link`,`[abp-card-text]`,`[abpCardText]` | |CardImgTop |`abp-card-img-top`,`[abp-card-img-top]`,`[abpCardImgTop]` | @@ -82,9 +80,9 @@ import { Component } from '@angular/core';
Card Title
Card subtitle
-

Some quick example text to build on the card title and make up the bulk of the card's content.

-
Card link - Another link +

Some quick example text to build on the card title and make up the bulk of the card's content.

+ Card link + Another link `, @@ -108,7 +106,7 @@ import { Component } from '@angular/core'; ... -

Some quick example text to build on the card title and make up the bulk of the card's content.

+

Some quick example text to build on the card title and make up the bulk of the card's content.

`, @@ -158,7 +156,7 @@ import { Component } from '@angular/core'; ...
Card title
-

Some quick example text to build on the card title and make up the bulk of the card's content.

+

Some quick example text to build on the card title and make up the bulk of the card's content.

  • An item
  • @@ -166,8 +164,8 @@ import { Component } from '@angular/core';
  • A third item
- Card link - Another link + Card link + Another link `, @@ -192,8 +190,8 @@ import { Component } from '@angular/core'; Featured
Special title treatment
-

With supporting text below as a natural lead-in to additional content.

- Go somewhere +

With supporting text below as a natural lead-in to additional content.

+ Go somewhere
2 days ago From 045ecd19beb53cb7ffb1a65f60f767c306fa39e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Fri, 24 Mar 2023 11:35:43 +0300 Subject: [PATCH 32/89] remove themebasic testing module --- .../app-nolayers/angular/src/app/home/home.component.spec.ts | 2 -- templates/app/angular/src/app/home/home.component.spec.ts | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/templates/app-nolayers/angular/src/app/home/home.component.spec.ts b/templates/app-nolayers/angular/src/app/home/home.component.spec.ts index 9622abc9f6..9fb41df29a 100644 --- a/templates/app-nolayers/angular/src/app/home/home.component.spec.ts +++ b/templates/app-nolayers/angular/src/app/home/home.component.spec.ts @@ -1,5 +1,4 @@ import { CoreTestingModule } from '@abp/ng.core/testing'; -import { ThemeBasicTestingModule } from '@abp/ng.theme.basic/testing'; import { ThemeSharedTestingModule } from '@abp/ng.theme.shared/testing'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { NgxValidateCoreModule } from '@ngx-validate/core'; @@ -17,7 +16,6 @@ describe('HomeComponent', () => { imports: [ CoreTestingModule.withConfig(), ThemeSharedTestingModule.withConfig(), - ThemeBasicTestingModule.withConfig(), NgxValidateCoreModule, ], providers: [ diff --git a/templates/app/angular/src/app/home/home.component.spec.ts b/templates/app/angular/src/app/home/home.component.spec.ts index 3ceff9410b..a873a48dcd 100644 --- a/templates/app/angular/src/app/home/home.component.spec.ts +++ b/templates/app/angular/src/app/home/home.component.spec.ts @@ -1,5 +1,4 @@ import { CoreTestingModule } from "@abp/ng.core/testing"; -import { ThemeBasicTestingModule } from "@abp/ng.theme.basic/testing"; import { ThemeSharedTestingModule } from "@abp/ng.theme.shared/testing"; import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; import { NgxValidateCoreModule } from "@ngx-validate/core"; @@ -8,6 +7,7 @@ import { OAuthService } from 'angular-oauth2-oidc'; import { AuthService } from '@abp/ng.core'; + describe("HomeComponent", () => { let fixture: ComponentFixture; const mockOAuthService = jasmine.createSpyObj('OAuthService', ['hasValidAccessToken']) @@ -19,7 +19,7 @@ describe("HomeComponent", () => { imports: [ CoreTestingModule.withConfig(), ThemeSharedTestingModule.withConfig(), - ThemeBasicTestingModule.withConfig(), + //ThemeLeptonXModule.withConfig(), NgxValidateCoreModule, ], providers: [ From 1e4a11cedb11e26e72aecc889e4eb682d507c17d Mon Sep 17 00:00:00 2001 From: Hamza Albreem <94292623+braim23@users.noreply.github.com> Date: Fri, 24 Mar 2023 12:55:01 +0300 Subject: [PATCH 33/89] Quick Doc Fix --- docs/en/UI/Angular/Card-Component.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/en/UI/Angular/Card-Component.md b/docs/en/UI/Angular/Card-Component.md index 5642fe0be8..861171c39e 100644 --- a/docs/en/UI/Angular/Card-Component.md +++ b/docs/en/UI/Angular/Card-Component.md @@ -1,7 +1,7 @@ # Card Component The ABP Card Component is a wrapper component for the Bootstrap card class. -It supports all features which Bootstrap card component provides. +It supports all the features that Bootstrap card component provides. ABP Card Component has three main components, `CardHeader`, `CardBody` and `CardFooter`. These components have their own class and style inputs @@ -11,7 +11,7 @@ ABP Card Component has three main components, `CardHeader`, `CardBody` and `Card |CardBody |`abp-card-body` | `cardBodyClass`,`cardBodyStyle` | |CardFooter|`abp-card-footer`| `cardFooterClass`,`cardFooterStyle`| -In addition to these components, Card component provides directives like `CardHeader`,`CardTitle`,`CardSubtitle`,`CardImgTop`. +In addition to these components, the Card component provides directives like `CardHeader`,`CardTitle`,`CardSubtitle`,`CardImgTop`. |Directive |Selector | |-------------|-------------------------------------------------------------| @@ -62,7 +62,7 @@ import { Component } from '@angular/core'; }) export class CardDemoComponent { } ``` -See card body result below: +See the card body result below: ![abp-card-body](./images/abp-card-body.png) @@ -89,7 +89,7 @@ import { Component } from '@angular/core'; }) export class CardDemoComponent { } ``` -See card title, text and link result below: +See the card title, text and link result below: ![abp-card-title-text-link](./images/abp-card-title-text-link.png) @@ -113,7 +113,7 @@ import { Component } from '@angular/core'; }) export class CardDemoComponent { } ``` -See card image result below: +See the card image result below: ![abp-card-image-top](./images/abp-card-image.png) @@ -138,7 +138,7 @@ import { Component } from '@angular/core'; }) export class CardDemoComponent { } ``` -See list group result below: +See the group list result below: ![abp-card-list-group](./images/abp-card-list-group.png) @@ -201,6 +201,6 @@ import { Component } from '@angular/core'; }) export class CardDemoComponent { } ``` -See header and footer result below: +See the header and footer result below: ![abp-card-header-footer](./images/abp-card-header-footer.png) From 309eeada03b8a0eaa0768fbcfa910d644f56c3ff Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Fri, 24 Mar 2023 15:43:43 +0300 Subject: [PATCH 34/89] grouped menu feature refactored document updated test updated --- docs/en/UI/Angular/Modifying-the-Menu.md | 23 ++++------- .../packages/core/src/lib/core.module.ts | 2 +- .../packages/core/src/lib/models/common.ts | 13 ++---- .../core/src/lib/services/routes.service.ts | 40 ++++++------------- .../core/src/lib/tests/routes.service.spec.ts | 32 ++++----------- .../core/src/lib/tokens/others-group.token.ts | 3 +- 6 files changed, 33 insertions(+), 80 deletions(-) diff --git a/docs/en/UI/Angular/Modifying-the-Menu.md b/docs/en/UI/Angular/Modifying-the-Menu.md index b3ab040910..b084f75781 100644 --- a/docs/en/UI/Angular/Modifying-the-Menu.md +++ b/docs/en/UI/Angular/Modifying-the-Menu.md @@ -96,19 +96,12 @@ import { ABP } from '@abp/ng.core'; type GroupType = ABP.Group; -function configureRoutes(routes: RoutesService) { - const myGroup: GroupType = { key:'groupKey', text:'GroupName' }; - +function configureRoutes(routes: RoutesService) { return () => { routes.add([ { - path: '/your-path', - name: 'Your navigation', - requiredPolicy: 'permission key here', - order: 101, - iconClass: 'fas fa-question-circle', - layout: eLayoutType.application, - group: myGroup + //etc.. + group: 'ModuleName::GroupName' }, { path: '/your-path/child', @@ -138,11 +131,11 @@ export class AppComponent { ``` ...and then in app.module.ts... - - `groupedVisible` method will return `Others` group for ungrouped items, we can define `key` and `text` via `OTHERS_GROUP` injection token for this group + - `groupedVisible` method will return `Others` group for ungrouped items, Default key is `AbpUi::OthersGroup` we can change this `key` via `OTHERS_GROUP` injection token ```js import { NgModule } from '@angular/core'; -import { ABP, OTHERS_GROUP } from '@abp/ng.core'; +import { OTHERS_GROUP } from '@abp/ng.core'; import { APP_ROUTE_PROVIDER } from './route.provider'; @NgModule({ @@ -150,7 +143,7 @@ import { APP_ROUTE_PROVIDER } from './route.provider'; APP_ROUTE_PROVIDER, { provide: OTHERS_GROUP, - useValue: { key: 1, text: 'MyOthersGroup' } as ABP.Group, + useValue: 'ModuleName::MyOthersGroupKey', }, ], // imports, declarations, and bootstrap @@ -168,9 +161,7 @@ Here is what every property works as: - `iconClass` is the class of the `i` tag, which is placed to the left of the navigation label. - `layout` defines in which layout the route will be loaded. (default: `eLayoutType.empty`) - `invisible` makes the item invisible in the menu. (default: `false`) -- `group` is an optional property that is used to group together related routes in an application. It's an object and it have 2 property - - `key` is a generic type property that we use for gather items in same group. (default type: `string`) - - `text` is the display name on menu +- `group` is an optional property that is used to group together related routes in an application. (type: `string`, default: `AbpUi::OthersGroup`) ### Via `routes` Property in `AppRoutingModule` diff --git a/npm/ng-packs/packages/core/src/lib/core.module.ts b/npm/ng-packs/packages/core/src/lib/core.module.ts index 0b3747455a..818a464124 100644 --- a/npm/ng-packs/packages/core/src/lib/core.module.ts +++ b/npm/ng-packs/packages/core/src/lib/core.module.ts @@ -179,7 +179,7 @@ export class CoreModule { }, { provide: OTHERS_GROUP, - useValue: options.othersGroup || { key: 'others', text: '::Others' } as ABP.Group, + useValue: options.othersGroup || 'AbpUi::OthersGroup', }, IncludeLocalizationResourcesProvider, ], diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index 13d7d8bdc2..c20c6849ed 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -13,7 +13,7 @@ export namespace ABP { sendNullsAsQueryParam?: boolean; tenantKey?: string; localizations?: Localization[]; - othersGroup?: Group; + othersGroup?: string; } export interface Child { @@ -68,20 +68,15 @@ export namespace ABP { invisible?: boolean; } - export interface Group { - key: TKey; - text: string; - } - export interface Route extends Nav { path?: string; layout?: eLayoutType; iconClass?: string; - group?: Group; + group?: string; } - export interface RouteGroup { - group: Group; + export interface RouteGroup { + group: string; items: TreeNode[]; } diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index d36228891e..74b76bb40d 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -1,4 +1,4 @@ -import { Injectable, Injector, Inject, Optional, OnDestroy } from '@angular/core'; +import { Injectable, Injector, Inject, OnDestroy} from '@angular/core'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { ABP } from '../models/common'; import { OTHERS_GROUP } from '../tokens'; @@ -182,34 +182,20 @@ export abstract class AbstractNavTreeService @Injectable({ providedIn: 'root' }) export class RoutesService extends AbstractNavTreeService { - constructor( - injector: Injector, - @Optional() @Inject(OTHERS_GROUP) private readonly othersGroup: ABP.Group, - ) { + constructor(injector: Injector, @Inject(OTHERS_GROUP) private readonly othersGroup: string) { super(injector); } - get groupedVisible(): ABP.RouteGroup[] | undefined { - const groupTree = this.visible.filter(node => node.group); - if (groupTree.length < 1) return; - - const map = new Map[]>(groupTree?.map(node => [node.group, []])); - const otherGroup = this.othersGroup; - map.set(otherGroup, []); - - for (const node of this.visible) { - const { path, children, group } = node; - - if (!group && (children?.length > 0 || path)) { - map.get(otherGroup)?.push(node); - } else if (group) { - map.get(group)?.push(node); - } - } - - return Array.from(map.entries()).map(([group, nodes]) => ({ - group, - items: nodes, - })); + const hasGroup = this.visible.some(node => !!node.group); + if (!hasGroup) return; + + const groups = this.visible.reduce((acc, node) => { + const groupName = node.group ?? this.othersGroup; + acc[groupName] ||= []; + acc[groupName].push(node); + return acc; + }, {} as Record[]>); + + return Object.entries(groups).map(([group, items]) => ({ group, items })); } } diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index a45b4d6d36..d4871108a3 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -1,29 +1,26 @@ import { Subject } from 'rxjs'; import { take } from 'rxjs/operators'; -import { ABP } from '../models'; import { RoutesService } from '../services/routes.service'; import { DummyInjector } from './utils/common.utils'; import { mockPermissionService } from './utils/permission-service.spec.utils'; const updateStream$ = new Subject(); -type GroupType = ABP.Group; - export const mockRoutesService = (injectorPayload = {} as { [key: string]: any }) => { const injector = new DummyInjector({ PermissionService: mockPermissionService(), ConfigStateService: { createOnUpdateStream: () => updateStream$ }, ...injectorPayload, }); - const othersGroupToken: ABP.Group = { key: 1, text: 'Others' }; - return new RoutesService(injector, othersGroupToken); + return new RoutesService(injector, 'OthersGroup'); }; describe('Routes Service', () => { let service: RoutesService; - const fooGroup: GroupType = { key: 'foo', text: 'FooGroup' }; - const barGroup: GroupType = { key: 'bar', text: 'BarGroup' }; + const fooGroup = 'FooGroup'; + const barGroup = 'BarGroup'; + const othersGroup = 'OthersGroup'; const routes = [ { path: '/foo', name: 'foo' }, @@ -75,18 +72,6 @@ describe('Routes Service', () => { }); }); - describe('#addGroup', () => { - it('should have routes with and without group', async () => { - service.add(groupedRoutes); - - const grouped = service.visible.filter(f => f.group); - const unGrouped = service.visible.filter(f => !f.group); - - expect(grouped.length).toBe(3); - expect(unGrouped.length).toBe(1); - }); - }); - describe('#groupedVisible', () => { it('should have groups and items', async () => { service.add(groupedRoutes); @@ -95,18 +80,15 @@ describe('Routes Service', () => { expect(tree.length).toBe(3); - expect(tree[0].group.key).toBe('foo'); - expect(tree[0].group.text).toBe('FooGroup'); + expect(tree[0].group).toBe('FooGroup'); expect(tree[0].items[0].name).toBe('foo'); expect(tree[0].items[0].children[0].name).toBe('y'); - expect(tree[1].group.key).toBe('bar'); - expect(tree[1].group.text).toBe('BarGroup'); + expect(tree[1].group).toBe('BarGroup'); expect(tree[1].items[0].name).toBe('bar'); expect(tree[1].items[1].name).toBe('baz'); - expect(tree[2].group.key).toBe(1); - expect(tree[2].group.text).toBe('Others'); + expect(tree[2].group).toBe(othersGroup); expect(tree[2].items[0].name).toBe('z'); }); }); diff --git a/npm/ng-packs/packages/core/src/lib/tokens/others-group.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/others-group.token.ts index 396bb3db13..23d7d65b92 100644 --- a/npm/ng-packs/packages/core/src/lib/tokens/others-group.token.ts +++ b/npm/ng-packs/packages/core/src/lib/tokens/others-group.token.ts @@ -1,4 +1,3 @@ import { InjectionToken } from '@angular/core'; -import { ABP } from '../models'; -export const OTHERS_GROUP = new InjectionToken('OTHERS_GROUP'); +export const OTHERS_GROUP = new InjectionToken('OTHERS_GROUP'); From bfb3b0ccd9dbf674f4e79cadbb2cd9acacc447c3 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Fri, 24 Mar 2023 17:20:02 +0300 Subject: [PATCH 35/89] test refactored --- .../packages/core/src/lib/services/routes.service.ts | 8 ++++++-- .../packages/core/src/lib/tests/routes.service.spec.ts | 6 +++--- .../packages/core/src/lib/tests/utils/common.utils.ts | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 74b76bb40d..20dc13ddfe 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -1,4 +1,4 @@ -import { Injectable, Injector, Inject, OnDestroy} from '@angular/core'; +import { Injectable, Injector, OnDestroy } from '@angular/core'; import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { ABP } from '../models/common'; import { OTHERS_GROUP } from '../tokens'; @@ -182,9 +182,13 @@ export abstract class AbstractNavTreeService @Injectable({ providedIn: 'root' }) export class RoutesService extends AbstractNavTreeService { - constructor(injector: Injector, @Inject(OTHERS_GROUP) private readonly othersGroup: string) { + private readonly othersGroup: string; + + constructor(injector: Injector) { super(injector); + this.othersGroup = injector.get(OTHERS_GROUP); } + get groupedVisible(): ABP.RouteGroup[] | undefined { const hasGroup = this.visible.some(node => !!node.group); if (!hasGroup) return; diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index d4871108a3..ac79c193ac 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -10,9 +10,10 @@ export const mockRoutesService = (injectorPayload = {} as { [key: string]: any } const injector = new DummyInjector({ PermissionService: mockPermissionService(), ConfigStateService: { createOnUpdateStream: () => updateStream$ }, + OTHERS_GROUP: 'OthersGroup', ...injectorPayload, }); - return new RoutesService(injector, 'OthersGroup'); + return new RoutesService(injector); }; describe('Routes Service', () => { @@ -71,9 +72,8 @@ describe('Routes Service', () => { expect(visible[0].children[0].name).toBe('x'); }); }); - describe('#groupedVisible', () => { - it('should have groups and items', async () => { + it('should return grouped route list', () => { service.add(groupedRoutes); const tree = service.groupedVisible; diff --git a/npm/ng-packs/packages/core/src/lib/tests/utils/common.utils.ts b/npm/ng-packs/packages/core/src/lib/tests/utils/common.utils.ts index e568b63a17..01612a987e 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/utils/common.utils.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/utils/common.utils.ts @@ -14,6 +14,6 @@ export class DummyInjector extends Injector { ): T; get(token: any, notFoundValue?: any): any; get(token, notFoundValue?, flags?: InjectFlags): any { - return this.payload[token.name || token]; + return this.payload[token.name || token._desc || token]; } } From 8ab24be0ef842c0bfd8aa59b473db8ba96401cd6 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Fri, 24 Mar 2023 17:59:52 +0300 Subject: [PATCH 36/89] Node added for modifying the menu doc. --- docs/en/UI/Angular/Modifying-the-Menu.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/en/UI/Angular/Modifying-the-Menu.md b/docs/en/UI/Angular/Modifying-the-Menu.md index b084f75781..c0ab458549 100644 --- a/docs/en/UI/Angular/Modifying-the-Menu.md +++ b/docs/en/UI/Angular/Modifying-the-Menu.md @@ -89,6 +89,7 @@ function configureRoutes(routes: RoutesService) { ``` Also we can define group for navigation elements. It's an optional property + - **Note:** It'll also include groups that included from modules ```js // route.provider.ts From 172bf1f7885c7085f2d64c486344add5d822cfc4 Mon Sep 17 00:00:00 2001 From: Salih Date: Fri, 24 Mar 2023 23:01:43 +0300 Subject: [PATCH 37/89] Update localizations --- .../Commercial/Localization/Resources/ar.json | 5 ++-- .../Commercial/Localization/Resources/cs.json | 5 ++-- .../Commercial/Localization/Resources/de.json | 2 +- .../Commercial/Localization/Resources/en.json | 4 ++-- .../Commercial/Localization/Resources/es.json | 2 +- .../Commercial/Localization/Resources/fi.json | 5 ++-- .../Commercial/Localization/Resources/fr.json | 4 ++-- .../Commercial/Localization/Resources/hi.json | 4 ++-- .../Commercial/Localization/Resources/hu.json | 6 ++--- .../Commercial/Localization/Resources/is.json | 2 +- .../Commercial/Localization/Resources/it.json | 4 ++-- .../Commercial/Localization/Resources/nl.json | 2 +- .../Localization/Resources/pl-PL.json | 2 +- .../Localization/Resources/pt-BR.json | 4 ++-- .../Localization/Resources/ro-RO.json | 4 ++-- .../Commercial/Localization/Resources/ru.json | 2 +- .../Commercial/Localization/Resources/sk.json | 4 ++-- .../Commercial/Localization/Resources/sl.json | 2 +- .../Commercial/Localization/Resources/tr.json | 24 +++++++++---------- .../Commercial/Localization/Resources/vi.json | 2 +- .../Localization/Resources/zh-Hans.json | 8 +++---- .../Localization/Resources/zh-Hant.json | 6 ++--- 22 files changed, 50 insertions(+), 53 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json index 88c781e70f..b8686d6bc3 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "هل يمكنني تغيير المطورين المسجلين لمنظمتي في المستقبل؟", "ChangingDevelopersExplanation": "بالإضافة إلى إضافة مطورين جدد إلى الترخيص الخاص بك ، يمكنك أيضًا تغيير المطورين الحاليين (يمكنك إزالة مطور وإضافة مطور جديد إلى نفس المقعد) دون أي تكلفة إضافية.", "WhenShouldIRenewMyLicense": "متى يجب أن أجدد رخصتي؟", - "WhenShouldIRenewMyLicenseExplanation": "إذا قمت بتجديد ترخيصك في غضون شهر واحد بعد انتهاء صلاحية ترخيصك ، فسيتم تطبيق الخصومات التالية: ترخيص الفريق {0}؛ رخصة تجارية {1} ؛ ترخيص المؤسسة {2}. ومع ذلك ، إذا جددت ترخيصك بعد شهر واحد من تاريخ انتهاء صلاحية الترخيص ، فسيكون سعر التجديد هو نفسه سعر شراء الترخيص ولن يكون هناك خصم على التجديد.", + "WhenShouldIRenewMyLicenseExplanation": "إذا قمت بتجديد ترخيصك في غضون {3} يوما بعد انتهاء صلاحية ترخيصك ، فسيتم تطبيق الخصومات التالية: ترخيص الفريق {0}؛ رخصة تجارية {1} ؛ ترخيص المؤسسة {2}. ومع ذلك ، إذا جددت ترخيصك بعد {3} يوما من تاريخ انتهاء صلاحية الترخيص ، فسيكون سعر التجديد هو نفسه سعر شراء الترخيص ولن يكون هناك خصم على التجديد.", "TrialPlan": "هل لديك خطة تجريبية؟", "DoYouAcceptBankWireTransfer": "هل تقبل التحويل البنكي؟", "DoYouAcceptBankWireTransferExplanation": "نعم ، نحن نقبل التحويل البنكي.
بعد إرسال رسوم الترخيص عبر التحويل المصرفي ، أرسل لنا بريدًا إلكترونيًا على accounting@abp.io إيصالك ونوع الترخيص المطلوب. معلومات حسابنا المصرفي الدولي:", @@ -782,6 +782,5 @@ "SupportPolicyFaqExplanation": "نحن ندعم فقط الإصدار الرئيسي النشط والسابق. لا نضمن إصدار تصحيح للإصدارات الرئيسية الثالثة والأقدم. على سبيل المثال ، إذا كان الإصدار النشط هو 7.0.0 ، فسنصدر إصدارات تصحيح لكل من 6.x.x و 7.x.x. إلى جانب ذلك ، نحن نقدم الدعم فقط لإطار عمل ABP والقضايا التجارية المتعلقة بـ ABP. هذا يعني أنه لا يتم تقديم أي دعم لتطبيقات الطرف الثالث والخدمات السحابية والمكتبات الطرفية الأخرى التي تستخدمها منتجات ABP. سنبذل جهودًا معقولة تجاريًا لتزويد عملائنا بالدعم الفني خلال ساعات العمل الرسمية لـ \"Volosoft Bilisim A.S\". من ناحية أخرى ، نحن لا نلتزم بوقت استجابة اتفاقية مستوى الخدمة (SLA) ، لكننا سنحاول الرد على المشكلات الفنية في أسرع وقت ممكن خلال ساعات العمل الرسمية لدينا. ما لم يتم إبرام اتفاقية خاصة مع العميل ، فإننا نقدم الدعم فقط على https://support.abp.io. لدينا أيضًا دعم خاص بالبريد الإلكتروني ، وهو متاح فقط لحاملي تراخيص المؤسسة.", "WhyUseAbpIoPlatform": "لماذا يجب علي استخدام منصة ABP.IO بدلاً من إنشاء حل جديد من البداية؟", "WhyUseAbpIoPlatformFaqExplanation": "انظر الى هذا المستند للحصول على شرح مفصل لسبب استخدام ABP.IO Platform لفائدته الكبيرة بدلًا من القيام بكل شيء بنفسك." - } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json index 5786954ed0..a1205f1809 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/cs.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Mohu v budoucnu změnit registrované vývojáře své organizace?", "ChangingDevelopersExplanation": "Kromě přidání nových vývojářů do vaší licence můžete také změnit stávající vývojáře (můžete odebrat vývojáře a přidat nového na stejné místo) bez jakýchkoli dalších nákladů.", "WhenShouldIRenewMyLicense": "Kdy bych měl obnovit licenci?", - "WhenShouldIRenewMyLicenseExplanation": "Pokud si licenci obnovíte do 1 měsíce po vypršení platnosti licence, budou uplatněny následující slevy: Týmová licence {0}; Obchodní licence {1}; Enterprise Licence {2}. Pokud však licenci obnovíte po 1 měsíci od data vypršení platnosti vaší licence, cena za obnovení bude stejná jako cena za zakoupení licence a na obnovení nebude poskytnuta žádná sleva.", + "WhenShouldIRenewMyLicenseExplanation": "Pokud si licenci obnovíte do {3} dní po vypršení platnosti licence, budou uplatněny následující slevy: Týmová licence {0}; Obchodní licence {1}; Enterprise Licence {2}. Pokud však licenci obnovíte po {3} měsíci od data vypršení platnosti vaší licence, cena za obnovení bude stejná jako cena za zakoupení licence a na obnovení nebude poskytnuta žádná sleva.", "TrialPlan": "Máte zkušební plán?", "DoYouAcceptBankWireTransfer": "Přijímáte bankovní převod?", "DoYouAcceptBankWireTransferExplanation": "Ano, přijímáme bankovní převod.
Po zaslání licenčního poplatku bankovním převodem nám zašlete e-mail na adresu accounting@abp.io potvrzení a požadovaný typ licence. Informace o našem mezinárodním bankovním účtu:", @@ -399,9 +399,8 @@ "WhatHappensWhenLicenseEndsExplanation4": "Po skončení platnosti licence nelze instalovat nové moduly a motivy přidané do platformy ABP Commercial.", "WhatHappensWhenLicenseEndsExplanation5": "Sadu ABP Suite nelze použít.", "WhatHappensWhenLicenseEndsExplanation6": "Již nelze získat prémiovou podporu.", - "WhatHappensWhenLicenseEndsExplanation7": "Pokud chcete i nadále využívat tyto výhody, můžete svou licenci prodloužit (obnovit). Pokud prodloužíte licenci do 1 měsíce po vypršení platnosti licence, budou uplatněny následující slevy: Týmová licence {0}; Obchodní licence {1}; Enterprise Licence {2}.", + "WhatHappensWhenLicenseEndsExplanation7": "Pokud chcete i nadále využívat tyto výhody, můžete svou licenci prodloužit (obnovit). Pokud prodloužíte licenci do {3} dní po vypršení platnosti licence, budou uplatněny následující slevy: Týmová licence {0}; Obchodní licence {1}; Enterprise Licence {2}.", "BlazoriseLicense": "Musíme si koupit licenci Blazorise?", "BlazoriseLicenseExplanation": "Máme dohodu mezi společnostmi Volosoft a Megabit, na základě této dohody je licence Blazorise přibalena k produktům ABP Commercial, proto si naši zákazníci nemusí kupovat další licenci Blazorise." - } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json index 5b4eb201aa..ebc78f8b51 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/de.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Kann ich die registrierten Entwickler meiner Organisation in Zukunft ändern?", "ChangingDevelopersExplanation": "Sie können nicht nur neue Entwickler zu Ihrer Lizenz hinzufügen, sondern auch die vorhandenen Entwickler ändern (Sie können einen Entwickler entfernen und einen neuen zum selben Arbeitsplatz hinzufügen) ohne zusätzliche Kosten.", "WhenShouldIRenewMyLicense": "Wann sollte ich meine Lizenz erneuern?", - "WhenShouldIRenewMyLicenseExplanation": "Wenn Sie Ihre Lizenz innerhalb von 1 Monat nach Ablauf Ihrer Lizenz erneuern, werden die folgenden Rabatte gewährt: Team-Lizenz {0}% Rabatt, Business-Lizenz {1}% Rabatt, Enterprise-Lizenz {2}% Rabatt . Wenn Sie Ihre Lizenz 1 Monat nach dem Ablaufdatum Ihrer Lizenz verlängern, entspricht der Verlängerungspreis dem Lizenzkaufpreis und es wird kein Rabatt auf Ihre Verlängerung gewährt.", + "WhenShouldIRenewMyLicenseExplanation": "Wenn Sie Ihre Lizenz innerhalb von {3} Tage nach Ablauf Ihrer Lizenz erneuern, werden die folgenden Rabatte gewährt: Team-Lizenz {0}% Rabatt, Business-Lizenz {1}% Rabatt, Enterprise-Lizenz {2}% Rabatt . Wenn Sie Ihre Lizenz {3} Tage nach dem Ablaufdatum Ihrer Lizenz verlängern, entspricht der Verlängerungspreis dem Lizenzkaufpreis und es wird kein Rabatt auf Ihre Verlängerung gewährt.", "TrialPlan": "Hast du einen Probeplan?", "DoYouAcceptBankWireTransfer": "Akzeptieren Sie Banküberweisungen?", "DoYouAcceptBankWireTransferExplanation": "Ja, wir akzeptieren Banküberweisungen.
Nachdem Sie die Lizenzgebühr per Banküberweisung gesendet haben, senden Sie uns Ihre Quittung und den gewünschten Lizenztyp per E-Mail an accounting@abp.io. Unsere internationale Bankverbindung:", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json index 3e36da3d7f..7f4a406e84 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/en.json @@ -202,11 +202,11 @@ "WhatHappensWhenLicenseEndsExplanation4": "You can not install new modules and themes added to the ABP Commercial platform after your license ends.", "WhatHappensWhenLicenseEndsExplanation5": "You can not use the ABP Suite.", "WhatHappensWhenLicenseEndsExplanation6": "You can not get the premium support anymore.", - "WhatHappensWhenLicenseEndsExplanation7": "You can extend (renew) your license if you want to continue getting these benefits. If you extend your license within 1 month after your license expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}.", + "WhatHappensWhenLicenseEndsExplanation7": "You can extend (renew) your license if you want to continue getting these benefits. If you extend your license within {3} days after your license expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}.", "discountForYears": "{0}% discount for {1} year(s)", "WhatHappensWhenLicenseEndsExplanation8": "The ABP projects you generated are not stored on our servers. Therefore, it is your responsibility to keep the source code you download. When your license expires, there's no way to get your generated ABP project source code.", "WhenShouldIRenewMyLicense": "When should I renew my license?", - "WhenShouldIRenewMyLicenseExplanation": "If you renew your license within 1 month after your license expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}. However, if you renew your license after 1 month since the expiry date of your license, the renewal price will be the same as the license purchase price and there will be no discount on your renewal.", + "WhenShouldIRenewMyLicenseExplanation": "If you renew your license within {3} days after your license expires, the following discounts will be applied: Team License {0}; Business License {1}; Enterprise License {2}. However, if you renew your license after {3} days since the expiry date of your license, the renewal price will be the same as the license purchase price and there will be no discount on your renewal.", "TrialPlan": "Do you have a trial plan?", "TrialPlanExplanation": "No, there is no trial version for ABP Commercial. You can check the community edition to understand the code quality and approaches. We also offer a 30-day money-back guarantee for the Team license, no questions asked! You can request a refund within the first 30 days. We provide a 60% refund within 30 days for Business and Enterprise licenses. This is because the Business and Enterprise licenses contain the full source-code of all the modules and themes.", "DoYouAcceptBankWireTransfer": "Do you accept bank wire transfers?", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json index 7625f777eb..88ce642703 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/es.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "¿Puedo cambiar los desarrolladores registrados de mi organización en el futuro?", "ChangingDevelopersExplanation": "Además de agregar nuevos desarrolladores a su licencia, también puede cambiar los desarrolladores existentes (puede eliminar un desarrollador y agregar uno nuevo al mismo puesto) sin ningún costo adicional.", "WhenShouldIRenewMyLicense": "¿Cuándo debo renovar mi licencia?", - "WhenShouldIRenewMyLicenseExplanation": "Si renueva su licencia dentro de 1 mes después de su vencimiento, se aplicarán los siguientes descuentos: Licencia de equipo {0}% de descuento, Licencia comercial {1}% de descuento, Licencia empresarial {2}% de descuento . Si renueva su licencia 1 mes después de la fecha de vencimiento de su licencia, el precio de renovación será el mismo que el precio de compra de la licencia y no habrá descuento en su renovación.", + "WhenShouldIRenewMyLicenseExplanation": "Si renueva su licencia dentro de {3} dias después de su vencimiento, se aplicarán los siguientes descuentos: Licencia de equipo {0}% de descuento, Licencia comercial {1}% de descuento, Licencia empresarial {2}% de descuento . Si renueva su licencia {3} dias después de la fecha de vencimiento de su licencia, el precio de renovación será el mismo que el precio de compra de la licencia y no habrá descuento en su renovación.", "TrialPlan": "¿Tiene un plan de prueba?", "DoYouAcceptBankWireTransfer": "¿Aceptan transferencia bancaria?", "DoYouAcceptBankWireTransferExplanation": "Sí, aceptamos transferencia bancaria.
Después de enviar la tarifa de la licencia mediante transferencia bancaria, envíenos un correo electrónico a accounting@abp.io con su recibo y el tipo de licencia solicitada. Nuestra información de cuenta bancaria internacional:", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json index 9745e7913f..2868635fba 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Voinko muuttaa organisaationi rekisteröityneitä kehittäjiä tulevaisuudessa?", "ChangingDevelopersExplanation": "Uusien kehittäjien lisäämisen lisenssiin lisäksi voit myös muuttaa olemassa olevia kehittäjiä (voit poistaa kehittäjän ja lisätä uuden samalle paikalle) ilman lisäkustannuksia.", "WhenShouldIRenewMyLicense": "Milloin minun pitäisi uusia lisenssini?", - "WhenShouldIRenewMyLicenseExplanation": "Jos uusit lisenssisi 1 kuukauden kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Team License {0} ; Business License {1} ; Enterprise License {2} ; . Jos uusit lisenssisi 1 kuukauden lisenssin päättymispäivän jälkeen, uusimishinta on sama kuin lisenssin ostohinta, eikä uusimisesta saa alennusta.", + "WhenShouldIRenewMyLicenseExplanation": "Jos uusit lisenssisi {3} päivää kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Team License {0} ; Business License {1} ; Enterprise License {2} ; . Jos uusit lisenssisi {3} päivää lisenssin päättymispäivän jälkeen, uusimishinta on sama kuin lisenssin ostohinta, eikä uusimisesta saa alennusta.", "TrialPlan": "Onko sinulla kokeilusuunnitelma?", "DoYouAcceptBankWireTransfer": "Hyväksytkö pankkisiirron?", "DoYouAcceptBankWireTransferExplanation": "Kyllä, hyväksymme pankkisiirron.
Kun olet lähettänyt lisenssimaksun pankkisiirrolla, lähetä meille sähköposti osoitteeseen accounting@abp.io kuittisi ja pyydetty lisenssityyppi. Kansainväliset pankkitilitietomme:", @@ -401,9 +401,8 @@ "WhatHappensWhenLicenseEndsExplanation4": "Et voi asentaa uusia moduuleja ja teemoja, jotka on lisätty ABP Commercial -alustaan lisenssisi päätyttyä.", "WhatHappensWhenLicenseEndsExplanation5": "Et voi käyttää ABP Suitea.", "WhatHappensWhenLicenseEndsExplanation6": "Et voi enää saada premium-tukea.", - "WhatHappensWhenLicenseEndsExplanation7": "Voit jatkaa (uusia) lisenssiäsi, jos haluat jatkaa näiden etujen saamista. Jos jatkat lisenssiäsi yhden kuukauden kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Tiimilisenssi {0}; Toimilupa {1}; Yrityslisenssi {2}.", + "WhatHappensWhenLicenseEndsExplanation7": "Voit jatkaa (uusia) lisenssiäsi, jos haluat jatkaa näiden etujen saamista. Jos jatkat lisenssiäsi {3} päivää kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Tiimilisenssi {0}; Toimilupa {1}; Yrityslisenssi {2}.", "BlazoriseLicense": "Pitääkö meidän ostaa Blazorise-lisenssi?", "BlazoriseLicenseExplanation": "Meillä on Volosoftin ja Megabitin välinen sopimus, jonka mukaan Blazorise-lisenssi on niputettu ABP Commercial -tuotteisiin, joten asiakkaidemme ei tarvitse ostaa ylimääräistä Blazorise-lisenssiä." - } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json index e1419b70a4..0588062ad8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fr.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Puis-je changer les développeurs enregistrés de mon organisation à l'avenir?", "ChangingDevelopersExplanation": "En plus d'ajouter de nouveaux développeurs à votre licence, vous pouvez également modifier les développeurs existants (vous pouvez supprimer un développeur et en ajouter un nouveau sur le même siège) sans aucun coût supplémentaire.", "WhenShouldIRenewMyLicense": "Quand dois-je renouveler ma licence?", - "WhenShouldIRenewMyLicenseExplanation": "Si vous renouvelez votre licence dans 1 mois après l'expiration de votre licence, les remises suivantes seront appliquées : licence d'équipe {0} ; licence commerciale {1} ; licence d'entreprise {2}. Toutefois, si vous renouveler votre licence après 1 mois depuis la date d'expiration de votre licence, le prix de renouvellement sera le même que le prix d'achat de la licence et il n'y aura pas de remise sur votre renouvellement.", + "WhenShouldIRenewMyLicenseExplanation": "Si vous renouvelez votre licence dans {3} jours après l'expiration de votre licence, les remises suivantes seront appliquées : licence d'équipe {0} ; licence commerciale {1} ; licence d'entreprise {2}. Toutefois, si vous renouveler votre licence après {3} jours depuis la date d'expiration de votre licence, le prix de renouvellement sera le même que le prix d'achat de la licence et il n'y aura pas de remise sur votre renouvellement.", "TrialPlan": "Avez-vous un plan d'essai?", "DoYouAcceptBankWireTransfer": "Acceptez-vous les virements bancaires?", "DoYouAcceptBankWireTransferExplanation": "Oui, nous acceptons les virements bancaires.
Après avoir envoyé les frais de licence par virement bancaire, envoyez-nous par e-mail à accounting@abp.io votre reçu et le type de licence demandé. Nos coordonnées bancaires internationales :", @@ -399,7 +399,7 @@ "WhatHappensWhenLicenseEndsExplanation4": "Vous ne pouvez pas installer les nouveaux modules et thèmes ajoutés à la plateforme ABP Commercial après l'expiration de votre licence.", "WhatHappensWhenLicenseEndsExplanation5": "Vous ne pouvez pas utiliser la suite ABP.", "WhatHappensWhenLicenseEndsExplanation6": "Vous ne pouvez plus bénéficier du support premium.", - "WhatHappensWhenLicenseEndsExplanation7": "Vous pouvez prolonger (renouveler) votre licence si vous souhaitez continuer à bénéficier de ces avantages. Si vous prolongez votre licence dans 1 mois après l'expiration de votre licence, les remises suivantes seront appliquées : Licence d'équipe {0} ; Licence commerciale {1} ; Licence Entreprise {2}.", + "WhatHappensWhenLicenseEndsExplanation7": "Vous pouvez prolonger (renouveler) votre licence si vous souhaitez continuer à bénéficier de ces avantages. Si vous prolongez votre licence dans {3} jours après l'expiration de votre licence, les remises suivantes seront appliquées : Licence d'équipe {0} ; Licence commerciale {1} ; Licence Entreprise {2}.", "BlazoriseLicense": "Faut-il acheter une licence Blazorise ?", "BlazoriseLicenseExplanation": "Nous avons conclu un accord entre Volosoft et Megabit, dans le cadre duquel la licence Blazorise est intégrée aux produits ABP Commercial, de sorte que nos clients n'ont pas besoin d'acheter une licence Blazorise supplémentaire." } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json index 4d00cc26b3..2d16ac121d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hi.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "क्या मैं भविष्य में अपने संगठन के पंजीकृत डेवलपर्स को बदल सकता हूं?", "ChangingDevelopersExplanation": "अपने लाइसेंस में नए डेवलपर्स को जोड़ने के अलावा, आप मौजूदा डेवलपर्स को भी बदल सकते हैं (आप एक डेवलपर को हटा सकते हैं और एक ही सीट पर एक नया जोड़ सकते हैं) बिना किसी अतिरिक्त लागत के।", "WhenShouldIRenewMyLicense": "मुझे अपना लाइसेंस कब नवीनीकृत करना चाहिए?", - "WhenShouldIRenewMyLicenseExplanation": "यदि आप अपने लाइसेंस की समय सीमा समाप्त होने के बाद 1 महीने के भीतर अपना लाइसेंस नवीनीकृत करते हैं, तो निम्नलिखित छूटें लागू होंगी: टीम लाइसेंस {0} ; व्यवसाय लाइसेंस {1} ; एंटरप्राइज़ लाइसेंस {2} . यदि आप अपने लाइसेंस की समाप्ति तिथि के बाद 1 महीने अपने लाइसेंस का नवीनीकरण करते हैं, तो नवीनीकरण मूल्य लाइसेंस खरीद मूल्य के समान होगा और आपके नवीनीकरण पर कोई छूट नहीं होगी।", + "WhenShouldIRenewMyLicenseExplanation": "यदि आप अपने लाइसेंस की समय सीमा समाप्त होने के बाद {3} दिन के भीतर अपना लाइसेंस नवीनीकृत करते हैं, तो निम्नलिखित छूटें लागू होंगी: टीम लाइसेंस {0} ; व्यवसाय लाइसेंस {1} ; एंटरप्राइज़ लाइसेंस {2} . यदि आप अपने लाइसेंस की समाप्ति तिथि के बाद {3} दिन अपने लाइसेंस का नवीनीकरण करते हैं, तो नवीनीकरण मूल्य लाइसेंस खरीद मूल्य के समान होगा और आपके नवीनीकरण पर कोई छूट नहीं होगी।", "TrialPlan": "क्या आपके पास एक परीक्षण योजना है?", "DoYouAcceptBankWireTransfer": "क्या आप बैंक वायर ट्रांसफर स्वीकार करते हैं?", "DoYouAcceptBankWireTransferExplanation": "हां, हम बैंक वायर ट्रांसफर स्वीकार करते हैं।
बैंक हस्तांतरण के माध्यम से लाइसेंस शुल्क भेजने के बाद, हमें अपनी रसीद और अनुरोधित लाइसेंस के प्रकार accounting@abp.io पर ईमेल करें। हमारे अंतरराष्ट्रीय बैंक खाते की जानकारी:", @@ -398,7 +398,7 @@ "WhatHappensWhenLicenseEndsExplanation4": "आपका लाइसेंस समाप्त होने के बाद आप ABP कमर्शियल प्लेटफॉर्म में जोड़े गए नए मॉड्यूल और थीम इंस्टॉल नहीं कर सकते।", "WhatHappensWhenLicenseEndsExplanation5": "आप एबीपी सूट का उपयोग नहीं कर सकते।", "WhatHappensWhenLicenseEndsExplanation6": "अब आप प्रीमियम समर्थन प्राप्त नहीं कर सकते।", - "WhatHappensWhenLicenseEndsExplanation7": "यदि आप इन लाभों को प्राप्त करना जारी रखना चाहते हैं तो आप अपने लाइसेंस का विस्तार (नवीनीकरण) कर सकते हैं। यदि आप अपना लाइसेंस समाप्त होने के बाद 1 महीने के भीतर अपना लाइसेंस बढ़ाते हैं, तो निम्नलिखित छूट लागू होंगी: टीम लाइसेंस {0}; व्यवसाय लाइसेंस {1}; उद्यम लाइसेंस {2}।", + "WhatHappensWhenLicenseEndsExplanation7": "यदि आप इन लाभों को प्राप्त करना जारी रखना चाहते हैं तो आप अपने लाइसेंस का विस्तार (नवीनीकरण) कर सकते हैं। यदि आप अपना लाइसेंस समाप्त होने के बाद {3} दिन के भीतर अपना लाइसेंस बढ़ाते हैं, तो निम्नलिखित छूट लागू होंगी: टीम लाइसेंस {0}; व्यवसाय लाइसेंस {1}; उद्यम लाइसेंस {2}।", "BlazoriseLicense": "क्या हमें ब्लेज़ोराइज़ लाइसेंस खरीदने की ज़रूरत है?", "BlazoriseLicenseExplanation": "हमारे पास Volosoft और Megabit के बीच एक समझौता है, इस समझौते के साथ Blazorise लाइसेंस को ABP वाणिज्यिक उत्पादों के साथ बंडल किया गया है, इसलिए हमारे ग्राहकों को एक अतिरिक्त Blazorise लाइसेंस खरीदने की आवश्यकता नहीं है।" } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json index b144988670..dd8cab76c4 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/hu.json @@ -206,9 +206,9 @@ "discountForYears": "{0}% kedvezmény {1} évre", "WhatHappensWhenLicenseEndsExplanation8": "Az Ön által generált ABP projekteket nem tároljuk a szervereinken. Ezért az Ön felelőssége a letöltött forráskód megőrzése. Amikor a licensze lejár, nincs mód a generált ABP projekt forráskódjának lekérésére.", "WhenShouldIRenewMyLicense": "Mikor kell megújítanom a jogosítványomat?", - "WhenShouldIRenewMyLicenseExplanation": "Ha a licenc lejártát követő 1 hónapon belül megújítja a licencet, a következő kedvezmények érvényesek: Csapatlicenc {0}; Üzleti engedély {1}; Vállalati licenc {2}. Ha azonban a licenc lejárati dátuma óta 1 hónap után megújítja a licencet, a megújítási ár megegyezik a licenc vásárlási árával, és nem jár kedvezmény a megújításra.", + "WhenShouldIRenewMyLicenseExplanation": "Ha a licenc lejártát követő {3} nap megújítja a licencet, a következő kedvezmények érvényesek: Csapatlicenc {0}; Üzleti engedély {1}; Vállalati licenc {2}. Ha azonban a licenc lejárati dátuma óta 1 hónap után megújítja a licencet, a megújítási ár megegyezik a licenc vásárlási árával, és nem jár kedvezmény a megújításra.", "TrialPlan": "Van próbaterv?", - "TrialPlanExplanation": "14 napos próbaidővel rendelkezik az ABP Commercial csapat licenszéhez. További információért látogasson el ide . Továbbá a Team licenszekre 30 napos pénz-visszafizetési garanciát biztosítunk. Az első 30 napban csak visszatérítést kérhet. A Business és Enterprise licenszek esetén 30 napon belül 60%-os visszatérítést biztosítunk. Ennek az az oka, hogy a Business és Enterprise licenszek tartalmazzák az összes modul és téma teljes forráskódját.", + "TrialPlanExplanation": "Nem, az ABP Commercialhoz nincs próbaverzió. Tekintse meg a közösségi kiadást, hogy megértse a kód minőségét és megközelítéseit. A Team licencre 30 napos pénz-visszafizetési garanciát is vállalunk, kérdés nélkül! Az első 30 napon belül kérheti a visszatérítést. Üzleti és vállalati licencek esetén 60% visszatérítést biztosítunk 30 napon belül. Ennek az az oka, hogy a Business és Enterprise licencek tartalmazzák az összes modul és téma teljes forráskódját.", "DoYouAcceptBankWireTransfer": "Elfogadja a banki átutalást?", "DoYouAcceptBankWireTransferExplanation": "Igen, elfogadunk banki átutalást.
Miután banki átutalással elküldte a licencdíjat, küldje el nekünk e-mailben az accounting@abp.io címre nyugtát és a kért engedély típusát. Nemzetközi bankszámlánk információi:", "HowToUpgrade": "Hogyan lehet frissíteni a meglévő alkalmazásokat, ha új verzió érhető el?", @@ -750,4 +750,4 @@ "TotalNetPrice": "Total Net Price", "BlackFridayDiscount": "Black Friday Kedvezmény" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json index 7e5c856f4e..ff0c6cc417 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/is.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Get ég breytt skráðum forriturum fyrirtækisins míns í framtíðinni?", "ChangingDevelopersExplanation": "Til viðbótar við að bæta nýjum verktaka við leyfi þitt geturðu einnig breytt núverandi forriturum (þú getur fjarlægt verktaka og bætt nýjum við) án aukakostnaðar.", "WhenShouldIRenewMyLicense": "Hvenær ætti ég að endurnýja leyfið mitt?", - "WhenShouldIRenewMyLicenseExplanation": "Ef þú endurnýjar leyfið þitt innan eins mánaðar eftir að leyfið þitt rennur út verða eftirfarandi afslættir notaðir: Team Leyfi {0}% afsláttur, Business License {1}% afsláttur, Enterprise License {2}% afsláttur . Ef þú endurnýjar leyfið þitt 1 mánuði eftir að leyfið rennur út, verður endurnýjunarverðið það sama og kaupverð leyfisins og enginn afsláttur af endurnýjun þinni.", + "WhenShouldIRenewMyLicenseExplanation": "Ef þú endurnýjar leyfið þitt innan {3} dagar eftir að leyfið þitt rennur út verða eftirfarandi afslættir notaðir: Team Leyfi {0}% afsláttur, Business License {1}% afsláttur, Enterprise License {2}% afsláttur . Ef þú endurnýjar leyfið þitt {3} dagar eftir að leyfið rennur út, verður endurnýjunarverðið það sama og kaupverð leyfisins og enginn afsláttur af endurnýjun þinni.", "TrialPlan": "Ertu með prufuáætlun?", "DoYouAcceptBankWireTransfer": "Samþykki þið bankamillifærslu?", "DoYouAcceptBankWireTransferExplanation": "Já, við tökum við bankamillifærslu.
Eftir að hafa sent leyfisgjaldið með millifærslu skaltu senda okkur tölvupóst á accounting@abp.io kvittun þína og tegund leyfis sem óskað er eftir. Upplýsingar um alþjóðlega bankareikninginn okkar:", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json index 398c23dc3e..ccd74fd005 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/it.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Posso cambiare gli sviluppatori registrati della mia organizzazione in futuro?", "ChangingDevelopersExplanation": "Oltre ad aggiungere nuovi sviluppatori alla tua licenza, puoi anche Modifica gli sviluppatori esistenti (puoi rimuovere uno sviluppatore e aggiungerne uno nuovo alla stessa postazione) senza alcun costo aggiuntivo.", "WhenShouldIRenewMyLicense": "Quando devo rinnovare la mia licenza?", - "WhenShouldIRenewMyLicenseExplanation": "Se rinnovi la licenza entro 1 mese dopo la scadenza della licenza, verranno applicati i seguenti sconti: Licenza Team {0} ; Licenza Business {1} ; Licenza Enterprise {2} . Se rinnovi la licenza 1 mese dopo la data di scadenza della licenza, il prezzo di rinnovo sarà lo stesso del prezzo di acquisto della licenza e non ci saranno sconti sul rinnovo.", + "WhenShouldIRenewMyLicenseExplanation": "Se rinnovi la licenza entro {3} giorni dopo la scadenza della licenza, verranno applicati i seguenti sconti: Licenza Team {0} ; Licenza Business {1} ; Licenza Enterprise {2} . Se rinnovi la licenza {3} giorni dopo la data di scadenza della licenza, il prezzo di rinnovo sarà lo stesso del prezzo di acquisto della licenza e non ci saranno sconti sul rinnovo.", "TrialPlan": "Hai un piano di prova?", "DoYouAcceptBankWireTransfer": "Accettate bonifici bancari?", "DoYouAcceptBankWireTransferExplanation": "Sì, accettiamo bonifico bancario.
Dopo aver inviato il canone tramite bonifico bancario, inviaci un'e-mail a accounting@abp.io con la ricevuta e il tipo di licenza richiesta. Le nostre informazioni sul conto bancario internazionale:", @@ -398,7 +398,7 @@ "WhatHappensWhenLicenseEndsExplanation4": "Non è possibile installare nuovi moduli e temi aggiunti alla piattaforma ABP Commercial dopo la scadenza della licenza.", "WhatHappensWhenLicenseEndsExplanation5": "Non è possibile utilizzare la suite ABP.", "WhatHappensWhenLicenseEndsExplanation6": "Non è più possibile ottenere il supporto premium.", - "WhatHappensWhenLicenseEndsExplanation7": "Puoi estendere (rinnovare) la tua licenza se desideri continuare a ottenere questi vantaggi. Se estendi la licenza entro 1 mese dalla scadenza della licenza, verranno applicati i seguenti sconti: Licenza Team {0}; Licenza commerciale {1}; Licenza aziendale {2}.", + "WhatHappensWhenLicenseEndsExplanation7": "Puoi estendere (rinnovare) la tua licenza se desideri continuare a ottenere questi vantaggi. Se estendi la licenza entro {3} giorni dalla scadenza della licenza, verranno applicati i seguenti sconti: Licenza Team {0}; Licenza commerciale {1}; Licenza aziendale {2}.", "BlazoriseLicense": "Dobbiamo acquistare la licenza di Blazorise?", "BlazoriseLicenseExplanation": "Abbiamo un accordo tra Volosoft e Megabit, con il quale la licenza di Blazorise viene fornita in bundle con i prodotti commerciali ABP, pertanto i nostri clienti non hanno bisogno di acquistare una licenza Blazorise aggiuntiva." } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json index b2c2caec7f..cc7a076848 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/nl.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Kan ik de geregistreerde ontwikkelaars van mijn organisatie in de toekomst wijzigen?", "ChangingDevelopersExplanation": "Naast het toevoegen van nieuwe ontwikkelaars aan uw licentie, kunt u ook de bestaande ontwikkelaars wijzigen (u kunt een ontwikkelaar verwijderen en een nieuwe toevoegen aan dezelfde stoel) zonder extra kosten.", "WhenShouldIRenewMyLicense": "Wanneer moet ik mijn licentie verlengen?", - "WhenShouldIRenewMyLicenseExplanation": "Als u uw licentie verlengt binnen 1 maand nadat uw licentie is verlopen, worden de volgende kortingen toegepast: Teamlicentie {0}% korting, Zakelijke licentie {1}% korting, Enterprise-licentie {2}% korting . Als u uw licentie 1 maand na de vervaldatum van uw licentie verlengt, is de verlengingsprijs gelijk aan de aankoopprijs van de licentie en wordt er geen korting op uw verlenging gegeven.", + "WhenShouldIRenewMyLicenseExplanation": "Als u uw licentie verlengt binnen {3} dagen nadat uw licentie is verlopen, worden de volgende kortingen toegepast: Teamlicentie {0}% korting, Zakelijke licentie {1}% korting, Enterprise-licentie {2}% korting . Als u uw licentie {3} dagen na de vervaldatum van uw licentie verlengt, is de verlengingsprijs gelijk aan de aankoopprijs van de licentie en wordt er geen korting op uw verlenging gegeven.", "TrialPlan": "Heb je een proefplan?", "DoYouAcceptBankWireTransfer": "Accepteert u bankoverschrijvingen?", "DoYouAcceptBankWireTransferExplanation": "Ja, we accepteren bankoverschrijvingen.
Nadat u de licentievergoeding via bankoverschrijving heeft verzonden, stuurt u een e-mail naar accounting@abp.io met uw kwitantie en het type licentie dat u heeft aangevraagd. Onze internationale bankrekeninggegevens:", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json index a640fe8f4f..4aa4f6616f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pl-PL.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Czy mogę w przyszłości zmienić zarejestrowanych programistów mojej organizacji?", "ChangingDevelopersExplanation": "Oprócz dodawania nowych programistów do swojej licencji możesz również zmieniać istniejących programistów (możesz usunąć programistę i dodać nowego do tego samego stanowiska) bez żadnych dodatkowych kosztów.", "WhenShouldIRenewMyLicense": "Kiedy powinienem odnowić licencję?", - "WhenShouldIRenewMyLicenseExplanation": "Jeśli odnowisz licencję w ciągu 1 miesiąca po wygaśnięciu licencji, zostaną zastosowane następujące rabaty: licencja zespołowa {0}% rabatu, licencja biznesowa {1}% rabatu, licencja Enterprise {2}% rabatu . Jeśli odnowisz licencję 1 miesiąc po dacie wygaśnięcia licencji, cena odnowienia będzie taka sama jak cena zakupu licencji i nie będzie rabatu na odnowienie.", + "WhenShouldIRenewMyLicenseExplanation": "Jeśli odnowisz licencję w ciągu {3} dni po wygaśnięciu licencji, zostaną zastosowane następujące rabaty: licencja zespołowa {0}% rabatu, licencja biznesowa {1}% rabatu, licencja Enterprise {2}% rabatu . Jeśli odnowisz licencję 1 miesiąc po dacie wygaśnięcia licencji, cena odnowienia będzie taka sama jak cena zakupu licencji i nie będzie rabatu na odnowienie.", "TrialPlan": "Czy masz plan próbny?", "DoYouAcceptBankWireTransfer": "Czy akceptujesz przelew bankowy?", "DoYouAcceptBankWireTransferExplanation": "Tak, akceptujemy przelew bankowy.
Po wysłaniu opłaty licencyjnej przelewem bankowym wyślij nam e-mail na adres accounting@abp.io z potwierdzeniem odbioru i rodzajem żądanej licencji. Informacje o naszych międzynarodowych kontach bankowych:", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json index 80059fb5a2..4e06b40112 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/pt-BR.json @@ -191,7 +191,7 @@ "ChangingDevelopers": "Posso mudar os desenvolvedores registrados da minha organização no futuro?", "ChangingDevelopersExplanation": "Além de adicionar novos desenvolvedores à sua licença, você também pode alterar os desenvolvedores existentes (você pode remover um desenvolvedor e adicionar um novo ao mesmo assento) sem nenhum custo adicional.", "WhenShouldIRenewMyLicense": "Quando devo renovar minha licença?", - "WhenShouldIRenewMyLicenseExplanation": "Se você renovar sua licença em 1 mês após a expiração da licença, os seguintes descontos serão aplicados: Licença de equipe {0} ; Licença de negócios {1} ; Licença empresarial {2} . Se você renovar sua licença 1 mês após a data de expiração de sua licença, o preço de renovação será o mesmo que o preço de compra da licença e não haverá desconto em sua renovação.", + "WhenShouldIRenewMyLicenseExplanation": "Se você renovar sua licença em {3} dias após a expiração da licença, os seguintes descontos serão aplicados: Licença de equipe {0} ; Licença de negócios {1} ; Licença empresarial {2} . Se você renovar sua licença {3} dias após a data de expiração de sua licença, o preço de renovação será o mesmo que o preço de compra da licença e não haverá desconto em sua renovação.", "TrialPlan": "Você tem um plano experimental?", "DoYouAcceptBankWireTransfer": "Você aceita transferência bancária?", "DoYouAcceptBankWireTransferExplanation": "Sim, aceitamos transferência bancária.
Após enviar a taxa de licença por transferência bancária, envie-nos um e-mail para accounting@abp.io com seu recibo e o tipo de licença solicitada. Nossas informações de conta bancária internacional:", @@ -402,6 +402,6 @@ "WhatHappensWhenLicenseEndsExplanation4": "Você não pode instalar novos módulos e temas adicionados à plataforma comercial da ABP após o término de sua licença.", "WhatHappensWhenLicenseEndsExplanation5": "Você não pode usar o ABP Suite", "WhatHappensWhenLicenseEndsExplanation6": "Você não pode mais obter o apoio de premium.", - "WhatHappensWhenLicenseEndsExplanation7": "Você pode estender (renovar) sua licença se quiser continuar obtendo esses benefícios. Se você estender sua licença dentro de 1 mês após a expiração de sua licença, os seguintes descontos serão aplicados: Licença de equipe {0}; Licença Comercial {1}; Licença empresarial {2}." + "WhatHappensWhenLicenseEndsExplanation7": "Você pode estender (renovar) sua licença se quiser continuar obtendo esses benefícios. Se você estender sua licença dentro de {3} dias após a expiração de sua licença, os seguintes descontos serão aplicados: Licença de equipe {0}; Licença Comercial {1}; Licença empresarial {2}." } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json index c1eeae7448..358bd87038 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ro-RO.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Pe viitor, pot schimba dezvoltatorii ataşaţi organizaţiei mele?", "ChangingDevelopersExplanation": "În plus faţă de adăugarea de noi dezvoltatori la licenţa dumneavoastră, puteţi schimba şi dezvoltatorii existenţi(puteţi elimina un dezvoltator şi adăuga unul nou în locul lui) fără costuri suplimentare.", "WhenShouldIRenewMyLicense": "Când ar trebui să-mi reînnoiesc licenţa?", - "WhenShouldIRenewMyLicenseExplanation": "Dacă vă reînnoiți licența în termen de o lună de la expirarea licenței, se vor aplica următoarele reduceri: Licență de echipă {0}% reducere, Licență de afaceri {1}% reducere, Licență Enterprise {2}% reducere . Dacă vă reînnoiți licența la 1 lună după data de expirare a licenței, prețul de reînnoire va fi același cu prețul de achiziție a licenței și nu va exista nicio reducere la reînnoirea dvs.", + "WhenShouldIRenewMyLicenseExplanation": "Dacă vă reînnoiți licența în termen de {3} de zile de la expirarea licenței, se vor aplica următoarele reduceri: Licență de echipă {0}% reducere, Licență de afaceri {1}% reducere, Licență Enterprise {2}% reducere . Dacă vă reînnoiți licența la {3} de zile după data de expirare a licenței, prețul de reînnoire va fi același cu prețul de achiziție a licenței și nu va exista nicio reducere la reînnoirea dvs.", "TrialPlan": "Aveţi un plan de încercare?", "DoYouAcceptBankWireTransfer": "Acceptaţi transfer bancar?", "DoYouAcceptBankWireTransferExplanation": "Da, acceptăm transfer bancar.
După ce ați trimis taxa de licență prin transfer bancar, trimiteți-ne un e-mail la accounting@abp.io chitanța dvs. și tipul de licență solicitat. Informațiile noastre internaționale despre contul nostru bancar:", @@ -381,4 +381,4 @@ "CommercialNewsletterConfirmationMessage": "Sunt de acord cu Termenii și condițiile și cu Politica de confidențialitate .", "BlackFridayDiscount": "Black Friday Discount" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json index 7a0427083e..8c53bc9ea8 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ru.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Могу ли я сменить зарегистрированных разработчиков моей организации в будущем?", "ChangingDevelopersExplanation": "Помимо добавления новых разработчиков к вашей лицензии, вы также можете изменить существующих разработчиков (вы можете удалить разработчика и добавить нового на то же место) без каких-либо дополнительных затрат.", "WhenShouldIRenewMyLicense": "Когда мне следует продлить лицензию?", - "WhenShouldIRenewMyLicenseExplanation": "Если вы продлите лицензию в течение 1 месяца после истечения срока действия лицензии, будут применяться следующие скидки: групповая лицензия {0}% скидка, бизнес-лицензия {1}% скидка, корпоративная лицензия {2}% скидка . Если вы продлеваете лицензию через 1 месяц после даты истечения срока действия лицензии, цена продления будет такой же, как цена покупки лицензии, и при продлении скидки не будет.", + "WhenShouldIRenewMyLicenseExplanation": "Если вы продлите лицензию в течение {3} дней после истечения срока действия лицензии, будут применяться следующие скидки: групповая лицензия {0}% скидка, бизнес-лицензия {1}% скидка, корпоративная лицензия {2}% скидка . Если вы продлеваете лицензию {3} дней после даты истечения срока действия лицензии, цена продления будет такой же, как цена покупки лицензии, и при продлении скидки не будет.", "TrialPlan": "У вас есть пробный план?", "DoYouAcceptBankWireTransfer": "Вы принимаете банковский перевод?", "DoYouAcceptBankWireTransferExplanation": "Да, мы принимаем банковский перевод.
После отправки платы за лицензию банковским переводом отправьте нам электронное письмо по адресу accounting@abp.io, квитанцию и тип запрошенной лицензии. Информация о нашем международном банковском счете:", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json index 90a6b33fef..b0a6d6490e 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sk.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Môžem v budúcnosti zmeniť registrovaných vývojárov svojej organizácie?", "ChangingDevelopersExplanation": "Okrem pridávania nových vývojárov do licencie môžete tiež meniť existujúcich vývojárov (môžete odstrániť vývojára a pridať nového na to isté miesto) bez akýchkoľvek ďalších nákladov.", "WhenShouldIRenewMyLicense": "Kedy si mám obnoviť licenciu?", - "WhenShouldIRenewMyLicenseExplanation": "Ak si licenciu obnovíte do 1 mesiaca po vypršaní platnosti licencie, budú sa uplatňovať tieto zľavy: Tímová licencia {0} ; Obchodná licencia {1} ; Enterprise licencia {2} . Ak si licenciu obnovíte 1 mesiac po dátume skončenia platnosti licencie, cena za obnovenie bude rovnaká ako cena za nákup licencie a na obnovenie nebude poskytnutá žiadna zľava.", + "WhenShouldIRenewMyLicenseExplanation": "Ak si licenciu obnovíte do 30 dní po vypršaní platnosti licencie, budú sa uplatňovať tieto zľavy: Tímová licencia {0} ; Obchodná licencia {1} ; Enterprise licencia {2} . Ak si licenciu obnovíte 30 dní po dátume skončenia platnosti licencie, cena za obnovenie bude rovnaká ako cena za nákup licencie a na obnovenie nebude poskytnutá žiadna zľava.", "TrialPlan": "Máte skúšobný plán?", "DoYouAcceptBankWireTransfer": "Prijímate bankový prevod?", "DoYouAcceptBankWireTransferExplanation": "Áno, akceptujeme bankový prevod.
Po odoslaní licenčného poplatku bankovým prevodom nám pošlite e-mail na adresu accounting@abp.io svoje potvrdenie a požadovaný typ licencie. Informácie o našom medzinárodnom bankovom účte:", @@ -396,7 +396,7 @@ "WhatHappensWhenLicenseEndsExplanation4": "Po skončení platnosti vašej licencie nemôžete inštalovať nové moduly a témy pridané do platformy ABP Commercial.", "WhatHappensWhenLicenseEndsExplanation5": "Balík ABP Suite nemôžete používať.", "WhatHappensWhenLicenseEndsExplanation6": "Už nemôžete získať prémiovú podporu.", - "WhatHappensWhenLicenseEndsExplanation7": "Ak chcete naďalej využívať tieto výhody, môžete si licenciu predĺžiť (obnoviť). Ak predĺžite svoju licenciu do 1 mesiaca po vypršaní platnosti licencie, budú sa uplatňovať nasledujúce zľavy: Tímová licencia {0}; Obchodná licencia {1}; Podniková licencia {2}", + "WhatHappensWhenLicenseEndsExplanation7": "Ak chcete naďalej využívať tieto výhody, môžete si licenciu predĺžiť (obnoviť). Ak predĺžite svoju licenciu do 30 dní po vypršaní platnosti licencie, budú sa uplatňovať nasledujúce zľavy: Tímová licencia {0}; Obchodná licencia {1}; Podniková licencia {2}", "BlazoriseLicense": "Musíme si kúpiť licenciu Blazorise?", "BlazoriseLicenseExplanation": "Máme dohodu medzi spoločnosťami Volosoft a Megabit, na základe ktorej je licencia Blazorise pribalená k produktom ABP Commercial, preto si naši zákazníci nemusia kupovať ďalšiu licenciu Blazorise." } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json index 5abffa2189..85acb70552 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/sl.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Ali lahko v prihodnosti spremenim registrirane razvijalce svoje organizacije?", "ChangingDevelopersExplanation": "Poleg dodajanja novih razvijalcev vaši licenci lahko spremenite tudi obstoječe razvijalce (lahko odstranite razvijalca in dodate novega na isto mesto) brez dodatnih stroškov.", "WhenShouldIRenewMyLicense": "Kdaj naj podaljšam licenco?", - "WhenShouldIRenewMyLicenseExplanation": "Če licenco podaljšate v 1 mesecu po poteku licence, bodo uporabljeni naslednji popusti: licenca za ekipo {0} % popusta, poslovna licenca {1} % popusta, licenca za podjetje {2} % popusta . Če podaljšate licenco 1 mesec po datumu poteka veljavnosti licence, bo cena podaljšanja enaka nakupni ceni licence in pri podaljšanju ne bo popusta.", + "WhenShouldIRenewMyLicenseExplanation": "Če licenco podaljšate v {3} dni po poteku licence, bodo uporabljeni naslednji popusti: licenca za ekipo {0} % popusta, poslovna licenca {1} % popusta, licenca za podjetje {2} % popusta . Če podaljšate licenco {3} dni po datumu poteka veljavnosti licence, bo cena podaljšanja enaka nakupni ceni licence in pri podaljšanju ne bo popusta.", "TrialPlan": "Ali imate poskusni načrt?", "DoYouAcceptBankWireTransfer": "Ali sprejemate bančno nakazilo?", "DoYouAcceptBankWireTransferExplanation": "Da, sprejemamo bančno nakazilo.
Ko pošljete licenčnino prek bančnega nakazila, nam pošljite e-pošto na accounting@abp.io vaše potrdilo o prejemu in vrsto zahtevane licence. Naši podatki o mednarodnem bančnem računu:", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json index 9a21d6de0a..d66ba8db8c 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/tr.json @@ -193,7 +193,7 @@ "ChangingDevelopers": "Gelecekte kuruluşumun kayıtlı geliştiricilerini değiştirebilir miyim?", "ChangingDevelopersExplanation": "Lisansınıza yeni geliştiriciler eklemenin yanı sıra mevcut geliştiricileri de herhangi bir ek ücret ödemeden değiştirebilirsiniz (bir geliştiriciyi kaldırıp aynı koltuğa yeni bir tane ekleyebilirsiniz).", "WhenShouldIRenewMyLicense": "Ehliyetimi ne zaman yenilemeliyim?", - "WhenShouldIRenewMyLicenseExplanation": "Lisansınızın süresi dolduktan sonra 1 ay içinde lisansınızı yenilerseniz, aşağıdaki indirimler uygulanacaktır: Takım Lisansı %{0} indirim, İşletme Lisansı %{1} indirim, Kurumsal Lisans %{2} indirim . Lisansınızın sona erme tarihinden 1 ay sonra lisansınızı yenilerseniz, yenileme fiyatı lisans satın alma fiyatı ile aynı olacak ve yenilemenizde indirim yapılmayacaktır.", + "WhenShouldIRenewMyLicenseExplanation": "Lisansınızın süresi dolduktan sonra {3} gün içinde lisansınızı yenilerseniz, aşağıdaki indirimler uygulanacaktır: Takım Lisansı %{0} indirim, İşletme Lisansı %{1} indirim, Kurumsal Lisans %{2} indirim . Lisansınızın sona erme tarihinden {3} gün sonra lisansınızı yenilerseniz, yenileme fiyatı lisans satın alma fiyatı ile aynı olacak ve yenilemenizde indirim yapılmayacaktır.", "TrialPlan": "Deneme planınız var mı?", "DoYouAcceptBankWireTransfer": "Banka havalesini kabul ediyor musunuz?", "DoYouAcceptBankWireTransferExplanation": "Evet, banka havalesini kabul ediyoruz.
Lisans ücretini banka havalesi yoluyla gönderdikten sonra, dekontunuzu ve talep edilen lisans türünü accounting@abp.io adresinden bize e-posta ile gönderin. Uluslararası banka hesap bilgilerimiz:", @@ -393,16 +393,16 @@ "LastNameField": "Soyad", "AbpCommercialMetaTitle": "ABP Commercial - Eksiksiz Web Geliştirme Platformu : {0} | ABP Commercial", "AbpCommercialMetaDescription": "ABP Commercial, açık kaynaklı ABP çerçevesinin üzerine inşa edilmiş önceden oluşturulmuş uygulama modülleri, hızlı geliştirme araçları, kullanıcı arayüzü temaları ve hizmetlerinden oluşan bir settir.", - "WhatHappensWhenLicenseEnds": "Lisans sürem sona erdiğinde ne olacak?", + "WhatHappensWhenLicenseEnds": "Lisans sürem sona erdiğinde ne olacak?", "WhatHappensWhenLicenseEndsExplanation1": "ABP Ticari lisansı kalıcı bir lisanstır. Lisansınızın süresi dolduktan sonra projenizi geliştirmeye devam edebilirsiniz. Ve lisansınızı yenilemek zorunda değilsiniz. Lisansınız kutudan bir yıllık güncelleme ve destek planı ile birlikte gelir. Yeni özellikler, performans geliştirmeleri, hata düzeltmeleri, destek almaya devam etmek ve ABP Suite'i kullanmaya devam etmek için lisansınızı yenilemeniz gerekir. Lisansınızın süresi dolduğunda aşağıdaki avantajlardan yararlanamazsınız:", "WhatHappensWhenLicenseEndsExplanation2": "ABP Ticari'yi kullanarak yeni çözümler oluşturamazsınız, ancak mevcut uygulamalarınızı sonsuza kadar geliştirmeye devam edebilirsiniz.", "WhatHappensWhenLicenseEndsExplanation3": "MINOR sürümünüzdeki modüller ve temalar için güncellemeleri alabileceksiniz (RC veya Önizleme sürümleri hariç). Örneğin: bir modülün v3.2.0 sürümünü kullanıyorsanız, bu modülün v3.2.x (v3.2.1, v3.2.5... vb.) sürümleri için güncellemeleri almaya devam edebilirsiniz. Ancak bir sonraki büyük veya küçük sürüm için güncelleme alamazsınız (v3.3.0, v3.3.3, 4.x.x... gibi). Örneğin, lisansınızın süresi dolduğunda, en son sürüm v4.4.3 idi ve daha sonra hem 4.4.4 sürümünü hem de 4.5.0 sürümünü yayınladı, v4.4.X'e erişebilirsiniz, ancak v4.5.X'e erişemezsiniz.", "WhatHappensWhenLicenseEndsExplanation4": "Lisansınız sona erdikten sonra ABP Ticari platformuna eklenen yeni modülleri ve temaları yükleyemezsiniz.", "WhatHappensWhenLicenseEndsExplanation5": "ABP Suite'i kullanamazsınız.", "WhatHappensWhenLicenseEndsExplanation6": "Artık premium desteği alamazsınız.", - "WhatHappensWhenLicenseEndsExplanation7": "Bu avantajlardan yararlanmaya devam etmek istiyorsanız lisansınızı uzatabilirsiniz (yenileyebilirsiniz). Lisansınızın süresi dolduktan sonra 1 ay içinde lisansınızı uzatırsanız, aşağıdaki indirimler uygulanacaktır: Takım Lisansı {0} % indirim, İşletme Lisansı %{1} indirim, Kurumsal Lisans %{2} indirim.", + "WhatHappensWhenLicenseEndsExplanation7": "Bu avantajlardan yararlanmaya devam etmek istiyorsanız lisansınızı uzatabilirsiniz (yenileyebilirsiniz). Lisansınızın süresi dolduktan sonra {3} gün içinde lisansınızı uzatırsanız, aşağıdaki indirimler uygulanacaktır: Takım Lisansı {0} % indirim, İşletme Lisansı %{1} indirim, Kurumsal Lisans %{2} indirim.", "WhatHappensWhenLicenseEndsExplanation8": "Oluşturduğunuz ABP projeleri sunucularımızda saklanmamaktadır. Bu nedenle indirdiğiniz kaynak kodunu saklamak sizin sorumluluğunuzdadır. Lisansınızın süresi dolduğunda, oluşturulan ABP proje kaynak kodunuzu almanın bir yolu yoktur.", - "TrialPlanExplanation": "ABP Ticari takım lisansı için 14 günlük deneme süresi var. Daha fazla bilgi için burayı ziyaret edin. Ayrıca, Takım lisansları için 30 günlük para iade garantisi veriyoruz. Sadece ilk 30 gün içinde geri ödeme talebinde bulunabilirsiniz. İşletme ve Kurumsal lisansları için 30 gün içinde %60 geri ödeme sağlıyoruz. Bunun nedeni, İşletme ve Kurumsal lisanslarının tüm modüllerin ve temaların tam kaynak kodunu içermesidir.", + "TrialPlanExplanation": "Hayır, ABP Commercial için deneme sürümü yoktur. Kod kalitesini ve yaklaşımları anlamak için topluluk sürümünü kontrol edebilirsiniz. Ayrıca, Takım lisansları için 30 günlük para iade garantisi veriyoruz. Sadece ilk 30 gün içinde geri ödeme talebinde bulunabilirsiniz. İşletme ve Kurumsal lisansları için 30 gün içinde %60 geri ödeme sağlıyoruz. Bunun nedeni, İşletme ve Kurumsal lisanslarının tüm modüllerin ve temaların tam kaynak kodunu içermesidir.", "ContactUsQuestions": "Herhangi bir sorunuz varsa bizimle iletişime geçin", "ActivationRequirement": "Denemenizi başlatmanıza son bir adım kaldı.
Bilgilerinizi kontrol ettikten sonra lisansınızı etkinleştireceğiz. Lisansınız etkinleştirildiğinde, {0} adresine bir e-posta göndereceğiz. Merak etmeyin bu süreç uzun sürmeyecek!", "PurchaseNow": "Şimdi satın al", @@ -419,7 +419,7 @@ "OpenSourceWebApplication": "Açık Kaynak Web Uygulaması", "CompleteWebDevelopment": "Tam Web Geliştirme", "ABPFrameworkDescription": "ABP Framework, yazılım geliştirme ve sözleşmelerin en iyi uygulamalarını takip ederek modern web uygulamaları oluşturmak için eksiksiz bir altyapıdır.", - "CommunityDescription": "ABP Çerçevesi ile ilgili deneyimlerinizi paylaşın!", + "CommunityDescription": "ABP Çerçevesi ile ilgili deneyimlerinizi paylaşın!", "GetStarted": "Başlayın", "Views": "Görünümler", "LatestPosts": "Son Gönderiler", @@ -441,7 +441,7 @@ "ModularArchitectureExplanation": "Bu başlangıç şablonu, temiz ve sürdürülebilir bir kod tabanı oluşturmak için katmanlı, modüler ve DDD tabanlı bir çözüm mimarisi sağlar.", "SeeDetails": "Ayrıntıları Gör", "SeeDocumentation": "Belgelere göz atın", - "Bs5Compatible": "Bootstrap 5 uyumlu profesyonel tema, yönetici web siteniz için mükemmel.", + "Bs5Compatible": "Bootstrap 5 uyumlu profesyonel tema, yönetici web siteniz için mükemmel.", "LeptonXTheme": "LeptonX Tema", "LeptonXDark": "LeptonX Koyu", "LeptonXLight": "LeptonX Açık", @@ -454,7 +454,7 @@ "EasilyInstallAndUpgrade": "Kolay kurulum ve yükseltme", "SupportForum": "Destek Forumu", "TrustedBy": "Güvenenler", - "OurPricing": "Fiyatlandırmamız", + "OurPricing": "Fiyatlandırmamız", "Plans": "Planlar", "NameSurname": "Ad Soyad", "Unspecified": "Belirtilmemiş", @@ -465,7 +465,7 @@ "License": "Lisans", "Development": "Geliştirme", "Payment": "Ödeme", - "WatchExplainerVideo": "Hadi Tanışalım! Açıklayıcı Videoyu İzleyin", + "WatchExplainerVideo": "Hadi Tanışalım! Açıklayıcı Videoyu İzleyin", "LightDarkAndSemiDarkThemes": "Açık, koyu ve yarı koyu temalar", "LeptonXThemeExplanation": "Lepton Teması, temanızı sistem ayarlarınıza göre değiştirebilir.", "PRO": "PRO", @@ -655,7 +655,7 @@ "UpgradePaymentInfoSection_LicenseUpgradeDescription": "Lisansınızı yükselterek, ek avantajlar elde etmenizi sağlayacak daha yüksek bir lisans türüne terfi edeceksiniz. Lisans türleri arasındaki farkları kontrol etmek için lisans karşılaştırma tablosuna bakın.", "Landing_Page_CustomerStories": "Müşteri Hikayeleri", "Landing_Page_OurGreatCustomers": "Büyük Müşterilerimiz", - "Landing_Page_WebApplicationFramework": "Web Uygulama Çerçevesi", + "Landing_Page_WebApplicationFramework": "Web Uygulama Çerçevesi", "Landing_Page_WebDevelopmentPlatform": "Web Geliştirme Platformu", "Landing_Page_CompleteWebDevelopmentPlatform": "Tam Web Geliştirme Platformu", "Landing_Page_TryFreeDemo": "Ücretsiz Demo Dene", @@ -722,7 +722,7 @@ "Landing_Page_DocsModuleDescription_9": "GitHub kaynağına ek olarak, dokümantasyon kaynağı olarak bir klasörün kullanılmasına izin verir.", "Landing_Page_FileManagementModuleDescription_1": "Dosyaları hiyerarşik bir klasör yapısı içinde yükleyin, indirin ve düzenleyin.", "Landing_Page_FileManagementModuleDescription_2": "Bu modül, dosyaları hiyerarşik bir klasör yapısında yüklemek, indirmek ve düzenlemek için kullanılır. Ayrıca çoklu kiracılığa uyumludur ve kiracılarınız için toplam boyut sınırını belirleyebilirsiniz.", - "Landing_Page_FileManagementModuleDescription_3": "Bu modül BLOB Depolama sistemine dayanmaktadır, bu nedenle dosya içeriklerini depolamak için farklı depolama sağlayıcıları kullanabilir.", + "Landing_Page_FileManagementModuleDescription_3": "Bu modül BLOB Depolama sistemine dayanmaktadır, bu nedenle dosya içeriklerini depolamak için farklı depolama sağlayıcıları kullanabilir.", "Landing_Page_IdentityModuleDescription_1": "Bu modül bir uygulamanın Kullanıcı ve Rol sistemini uygular;", "Landing_Page_IdentityModuleDescription_2": "Microsoft'un ASP.NET Core Identity kütüphanesi üzerine inşa edilmiştir.", "Landing_Page_IdentityModuleDescription_3": "Sistemdeki rolleri ve kullanıcıları yönetin. Bir kullanıcının birden çok role sahip olmasına izin verilir.", @@ -745,7 +745,7 @@ "ConfirmedEmailAddressRequiredToStartTrial": "Deneme lisansı başlatmak için onaylanmış bir e -posta adresiniz olmalı.", "EmailVerificationMailNotSent": "E-posta doğrulama postası gönderilemedi.", "GetConfirmationEmail": "Daha önce bir onay e-postası almadıysanız almak için buraya tıklayın.", - "WhichLicenseTypeYouAreInterestedIn": "Hangi lisans türüyle ilgileniyorsunuz?", + "WhichLicenseTypeYouAreInterestedIn": "Hangi lisans türüyle ilgileniyorsunuz?", "BlackFridayDiscount": "Kara Cuma İndirimi" } -} +} \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json index 4d0666772a..e5ed696808 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/vi.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "Tôi có thể thay đổi các nhà phát triển đã đăng ký của tổ chức của mình trong tương lai không?", "ChangingDevelopersExplanation": "Ngoài việc thêm các nhà phát triển mới vào giấy phép của mình, bạn cũng có thể thay đổi các nhà phát triển hiện có (bạn có thể xóa một nhà phát triển và thêm một nhà phát triển mới vào cùng một chỗ ngồi) mà không phải trả thêm bất kỳ chi phí nào.", "WhenShouldIRenewMyLicense": "Khi nào tôi nên gia hạn giấy phép của mình?", - "WhenShouldIRenewMyLicenseExplanation": "Nếu bạn gia hạn giấy phép của mình trong vòng 1 tháng sau khi giấy phép của bạn hết hạn, các chiết khấu sau sẽ được áp dụng: Giảm giá {0}% cho Giấy phép Nhóm, Giảm giá {1}% Giấy phép Kinh doanh, Giảm giá {2}% Giấy phép Doanh nghiệp . Nếu bạn gia hạn giấy phép 1 tháng sau ngày giấy phép hết hạn, giá gia hạn sẽ giống như giá mua giấy phép và sẽ không có chiết khấu khi gia hạn của bạn.", + "WhenShouldIRenewMyLicenseExplanation": "Nếu bạn gia hạn giấy phép của mình trong vòng {3} ngày sau khi giấy phép của bạn hết hạn, các chiết khấu sau sẽ được áp dụng: Giảm giá {0}% cho Giấy phép Nhóm, Giảm giá {1}% Giấy phép Kinh doanh, Giảm giá {2}% Giấy phép Doanh nghiệp . Nếu bạn gia hạn giấy phép {3} ngày sau ngày giấy phép hết hạn, giá gia hạn sẽ giống như giá mua giấy phép và sẽ không có chiết khấu khi gia hạn của bạn.", "TrialPlan": "Bạn có kế hoạch dùng thử không?", "DoYouAcceptBankWireTransfer": "Bạn có chấp nhận chuyển khoản ngân hàng không?", "DoYouAcceptBankWireTransferExplanation": "Có, chúng tôi chấp nhận chuyển khoản ngân hàng.
Sau khi gửi phí cấp phép qua chuyển khoản ngân hàng, hãy gửi email cho chúng tôi theo địa chỉ accounting@abp.io biên lai của bạn và loại giấy phép được yêu cầu. Thông tin tài khoản ngân hàng quốc tế của chúng tôi:", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index 44a39f69d2..157928f8cb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -202,13 +202,13 @@ "WhatHappensWhenLicenseEndsExplanation4": "你不能在你的许可证到期后安装ABP商业平台上添加的新模块和主题。", "WhatHappensWhenLicenseEndsExplanation5": "你不能使用ABP Suite。", "WhatHappensWhenLicenseEndsExplanation6": "你不能再获得高级支持。", - "WhatHappensWhenLicenseEndsExplanation7": "如果您想继续获得这些好处,您可以延长(续订)您的许可证。 如果您在许可证到期后 1 个月内延长许可证,将应用以下折扣:团队许可证 {0}; 营业执照{1}; 企业许可证 {2}。", + "WhatHappensWhenLicenseEndsExplanation7": "如果您想继续获得这些好处,您可以延长(续订)您的许可证。 如果您在许可证到期后 {3} 天内延长许可证,将应用以下折扣:团队许可证 {0}; 营业执照{1}; 企业许可证 {2}。", "discountForYears": "{0}% 折扣 {1} 年", "WhatHappensWhenLicenseEndsExplanation8": "您生成的 ABP 项目未存储在我们的服务器上。 因此,您有责任保留下载的源代码。 当您的许可证到期时,将无法获取您生成的 ABP 项目源代码。", "WhenShouldIRenewMyLicense": "我什么时候应该续订我的许可?", - "WhenShouldIRenewMyLicenseExplanation": "如果您在许可证到期后 1 个月 内续订许可证,将适用以下折扣:团队许可证 {0}; 营业执照{1}; 企业许可证 {2}。 但是,如果您在许可证到期后 1 个月 后续订许可证,则续订价格将与许可证购买价格相同,并且您的续订不会有任何折扣。", + "WhenShouldIRenewMyLicenseExplanation": "如果您在许可证到期后 {3} 天 内续订许可证,将适用以下折扣:团队许可证 {0}; 营业执照{1}; 企业许可证 {2}。 但是,如果您在许可证到期后 {3} 天 后续订许可证,则续订价格将与许可证购买价格相同,并且您的续订不会有任何折扣。", "TrialPlan": "你们有试用计划吗?", - "TrialPlanExplanation": "ABP商业团队许可证有14天的试用期。若要了解更多信息,请访问这里。此外,我们为团队许可证提供30天的金额返还保证。你只需要在30天内请求退款。商业和企业许可证将提供60%的金额返还保证。这是因为商业和企业许可证包含了所有模块和主题的全部源代码。", + "TrialPlanExplanation": "不,ABP商业版没有试用版。您可以检查社区版以了解代码质量和方法。我们还为团队许可证提供30天退款保证,不问问题!您可以在前30天内要求退款!您可以在前30天内要求退款。对于商业和企业许可证,我们在30天内提供60%的退款。这是因为商业和企业许可证包含所有模块和主题的完整源代码。", "DoYouAcceptBankWireTransfer": "你们接受银行电汇吗?", "DoYouAcceptBankWireTransferExplanation": "是的,我们接受银行电汇。
在通过银行转账发送许可费后,将您的收据和所需的许可类型通过电子邮件发送至accounting@abp.io。 我们的国际银行账户信息:", "HowToUpgrade": "可用新版本时如何升级现有应用程序?", @@ -816,7 +816,7 @@ "Other": "其他", "WhereDidYouHearAboutUs_explain": "请说明...", "DeletingMemberWarningMessage": "\"{0}\"将从开发者列表中删除。如果您愿意,您可以将此空位分配给另一个开发者。", - "AdditionalInfo": "如果开发者席位高于您的要求,您可以减少它们。您可以发送电子邮件至info@abp.io以删除一些开发人员席位。清理未使用的开发人员席位将降低许可证续期成本。如果您愿意,您可以在有效许可期内重新购买额外的开发人员席位。请注意,由于此许可证包中有{0}个开发人员,因此无法减少此数量。", + "AdditionalInfo": "如果开发人员席位超出您的要求,您可以减少它们。 您可以发送电子邮件至 info@abp.io 以删除您的一些开发人员席位。 清除未使用的开发人员席位将降低许可证续订成本。 如果需要,您可以在有效许可期限内重新购买额外的开发人员席位。 请注意,由于此许可包中有 {0} 个开发人员,因此您无法减少此数量。", "LinkExpiredErrorMessage": "您正在尝试访问的链接已过期。", "ExpirationDate": "过期时间", "SpringCampaignDiscount": "春季促销折扣", diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json index 8a478286ca..19afb1a5bb 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hant.json @@ -192,7 +192,7 @@ "ChangingDevelopers": "我將來可以更改我組織的註冊開發人員嗎?", "ChangingDevelopersExplanation": "除了將新的開發人員添加到你的許可中之外,你還可以更改現有的開發人員(可以刪除一個開發人員並將新的開發人員添加到同一位置),而無需任何額外費用.", "WhenShouldIRenewMyLicense": "我什麽時候應該續訂我的許可?", - "WhenShouldIRenewMyLicenseExplanation": "如果您在許可證到期後 1 個月內續訂許可證,將享受以下折扣:團隊許可證 {0} ; 商業許可證 {1} ;企業許可證 {2}. 如果您在許可證到期後 1 個月續訂許可證,續訂價格將與許可證購買價格相同,並且續訂不會有折扣。", + "WhenShouldIRenewMyLicenseExplanation": "如果您在許可證到期後 {3} 天內續訂許可證,將享受以下折扣:團隊許可證 {0} ; 商業許可證 {1} ;企業許可證 {2}. 如果您在許可證到期後 {3} 天續訂許可證,續訂價格將與許可證購買價格相同,並且續訂不會有折扣。", "TrialPlan": "你們有試用計劃嗎?", "DoYouAcceptBankWireTransfer": "你們接受銀行電匯嗎?", "DoYouAcceptBankWireTransferExplanation": "是的,我們接受銀行電匯。
在通過銀行轉賬發送許可費後,將您的收據和所需的許可類型通過電子郵件發送至accounting@abp.io。 我們的國際銀行賬戶信息:", @@ -402,6 +402,6 @@ "WhatHappensWhenLicenseEndsExplanation4": "許可證到期後,您將無法安裝添加到 ABP 商業平台的新模塊和主題。", "WhatHappensWhenLicenseEndsExplanation5": "您不能使用 ABP 套件。", "WhatHappensWhenLicenseEndsExplanation6": "您無法再獲得高級支持。", - "WhatHappensWhenLicenseEndsExplanation7": "如果您想繼續獲得這些好處,您可以延長(更新)您的許可證。如果您在許可到期後 1 個月 內延長許可,將應用以下折扣:團隊許可 {0};營業執照{1};企業許可證{2}。" + "WhatHappensWhenLicenseEndsExplanation7": "如果您想繼續獲得這些好處,您可以延長(更新)您的許可證。如果您在許可到期後 {3} 天 內延長許可,將應用以下折扣:團隊許可 {0};營業執照{1};企業許可證{2}。" } -} +} \ No newline at end of file From a1b94fed05aa67e1583033e70a89473c289a4c24 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Sun, 26 Mar 2023 19:26:42 +0300 Subject: [PATCH 38/89] createGroupMap moved to tree-utils code refactored --- .../packages/core/src/lib/models/common.ts | 6 --- .../core/src/lib/services/routes.service.ts | 39 ++++++++++--------- .../core/src/lib/tests/routes.service.spec.ts | 38 +++++++++++++++--- .../packages/core/src/lib/utils/tree-utils.ts | 27 +++++++++++++ 4 files changed, 79 insertions(+), 31 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/models/common.ts b/npm/ng-packs/packages/core/src/lib/models/common.ts index c20c6849ed..7a285b4461 100644 --- a/npm/ng-packs/packages/core/src/lib/models/common.ts +++ b/npm/ng-packs/packages/core/src/lib/models/common.ts @@ -2,7 +2,6 @@ import { EventEmitter, Type } from '@angular/core'; import { Routes } from '@angular/router'; import { Subject } from 'rxjs'; import { eLayoutType } from '../enums/common'; -import { TreeNode } from '../utils'; import { Environment } from './environment'; export namespace ABP { @@ -75,11 +74,6 @@ export namespace ABP { group?: string; } - export interface RouteGroup { - group: string; - items: TreeNode[]; - } - export interface Tab extends Nav { component: Type; } diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 20dc13ddfe..c7acce3aee 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -1,9 +1,15 @@ import { Injectable, Injector, OnDestroy } from '@angular/core'; -import { BehaviorSubject, Observable, Subscription } from 'rxjs'; +import { BehaviorSubject, Observable, Subscription, map } from 'rxjs'; import { ABP } from '../models/common'; import { OTHERS_GROUP } from '../tokens'; import { pushValueTo } from '../utils/array-utils'; -import { BaseTreeNode, createTreeFromList, TreeNode } from '../utils/tree-utils'; +import { + BaseTreeNode, + createTreeFromList, + TreeNode, + RouteGroup, + createGroupMap, +} from '../utils/tree-utils'; import { ConfigStateService } from './config-state.service'; import { PermissionService } from './permission.service'; @@ -18,6 +24,8 @@ export abstract class AbstractTreeService[]>([]); private _visible$ = new BehaviorSubject[]>([]); + protected othersGroup: string; + get flat(): T[] { return this._flat$.value; } @@ -51,6 +59,11 @@ export abstract class AbstractTreeService[]): RouteGroup[] | undefined { + const map = createGroupMap(list, this.othersGroup); + return !map ? undefined : Array.from(map, ([key, items]) => ({ group: key, items })); + } + private filterWith(setOrMap: Set | Map): T[] { return this._flat$.value.filter(item => !setOrMap.has(item[this.id])); } @@ -158,6 +171,7 @@ export abstract class AbstractNavTreeService .createOnUpdateStream(state => state) .subscribe(() => this.refresh()); this.permissionService = injector.get(PermissionService); + this.othersGroup = injector.get(OTHERS_GROUP); } protected isGranted({ requiredPolicy }: T): boolean { @@ -182,24 +196,11 @@ export abstract class AbstractNavTreeService @Injectable({ providedIn: 'root' }) export class RoutesService extends AbstractNavTreeService { - private readonly othersGroup: string; - - constructor(injector: Injector) { - super(injector); - this.othersGroup = injector.get(OTHERS_GROUP); + get groupedVisible(): RouteGroup[] | undefined { + return this.createGroupedTree(this.visible); } - get groupedVisible(): ABP.RouteGroup[] | undefined { - const hasGroup = this.visible.some(node => !!node.group); - if (!hasGroup) return; - - const groups = this.visible.reduce((acc, node) => { - const groupName = node.group ?? this.othersGroup; - acc[groupName] ||= []; - acc[groupName].push(node); - return acc; - }, {} as Record[]>); - - return Object.entries(groups).map(([group, items]) => ({ group, items })); + get groupedVisible$(): Observable[] | undefined> { + return this.visible$.pipe(map(visible => this.createGroupedTree(visible))); } } diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index ac79c193ac..ab9c6a76ae 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -1,4 +1,4 @@ -import { Subject } from 'rxjs'; +import { Subject, lastValueFrom } from 'rxjs'; import { take } from 'rxjs/operators'; import { RoutesService } from '../services/routes.service'; import { DummyInjector } from './utils/common.utils'; @@ -47,9 +47,9 @@ describe('Routes Service', () => { it('should add given routes as flat$, tree$, and visible$', async () => { service.add(routes); - const flat = await service.flat$.pipe(take(1)).toPromise(); - const tree = await service.tree$.pipe(take(1)).toPromise(); - const visible = await service.visible$.pipe(take(1)).toPromise(); + const flat = await lastValueFrom(service.flat$.pipe(take(1))); + const tree = await lastValueFrom(service.tree$.pipe(take(1))); + const visible = await lastValueFrom(service.visible$.pipe(take(1))); expect(flat.length).toBe(5); expect(flat[0].name).toBe('baz'); @@ -72,11 +72,37 @@ describe('Routes Service', () => { expect(visible[0].children[0].name).toBe('x'); }); }); + describe('#groupedVisible', () => { - it('should return grouped route list', () => { + it('should return undefined when there are no visible routes', async () => { + service.add(routes); + const result = await lastValueFrom(service.groupedVisible$.pipe(take(1))); + expect(result).toBeUndefined(); + }); + + it( + 'should group visible routes under "' + othersGroup + '" when no group is specified', + async () => { + service.add([ + { path: '/foo', name: 'foo' }, + { path: '/foo/bar', name: 'bar', group: '' }, + { path: '/foo/bar/baz', name: 'baz', group: undefined }, + { path: '/x', name: 'y', group: 'z' }, + ]); + + const result = await lastValueFrom(service.groupedVisible$.pipe(take(1))); + + expect(result[0].group).toBe(othersGroup); + expect(result[0].items[0].name).toBe('foo'); + expect(result[0].items[1].name).toBe('bar'); + expect(result[0].items[2].name).toBe('baz'); + }, + ); + + it('should return grouped route list', async () => { service.add(groupedRoutes); - const tree = service.groupedVisible; + const tree = await lastValueFrom(service.groupedVisible$.pipe(take(1))); expect(tree.length).toBe(3); diff --git a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts index bfc938c158..6e1261d823 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts @@ -74,6 +74,28 @@ export function createTreeNodeFilterCreator( }; } +export function createGroupMap( + list: TreeNode[], + othersGroupKey: string, +): Map[]> | undefined { + if (!list || !Array.isArray(list) || !list.some(node => Boolean(node.group))) return undefined; + + const mapGroup = new Map[]>(); + + for (const node of list) { + const group = node?.group || othersGroupKey; + if (typeof group !== 'string') { + throw new Error(`Invalid group: ${group}`); + } + + const items = mapGroup.get(group) || []; + items.push(node); + mapGroup.set(group, items); + } + + return mapGroup; +} + export type TreeNode = { [K in keyof T]: T[K]; } & { @@ -82,6 +104,11 @@ export type TreeNode = { parent?: TreeNode; }; +export type RouteGroup = { + readonly group: string; + readonly items: TreeNode[]; +}; + export type NodeKey = number | string | symbol | undefined | null; export type NodeValue any> = F extends undefined From e21e8686fce1a05f77b135d2e0bd95c96faac096 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Sun, 26 Mar 2023 20:41:16 +0300 Subject: [PATCH 39/89] Document updated --- docs/en/UI/Angular/Modifying-the-Menu.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/en/UI/Angular/Modifying-the-Menu.md b/docs/en/UI/Angular/Modifying-the-Menu.md index c0ab458549..2aec9f37e4 100644 --- a/docs/en/UI/Angular/Modifying-the-Menu.md +++ b/docs/en/UI/Angular/Modifying-the-Menu.md @@ -89,13 +89,11 @@ function configureRoutes(routes: RoutesService) { ``` Also we can define group for navigation elements. It's an optional property - - **Note:** It'll also include groups that included from modules + - **Note:** It'll also include groups that defined at modules ```js // route.provider.ts -import { ABP } from '@abp/ng.core'; - -type GroupType = ABP.Group; +import { RoutesService } from '@abp/ng.core'; function configureRoutes(routes: RoutesService) { return () => { @@ -116,16 +114,18 @@ function configureRoutes(routes: RoutesService) { } ``` -To get route items as grouped we can use `groupedVisible` getter method - - It will return `RouteGroup[]` if there is any group in route tree otherwise it'll return undefined +To get route items as grouped we can use `groupedVisible` (or Observable one `groupedVisible$`) getter methods + - It will return `RouteGroup[]` if there is any group in route tree otherwise it'll return `undefined` ```js -import { ABP, RoutesService } from "@abp/ng.core"; +import { ABP, RoutesService, RouteGroup } from "@abp/ng.core"; import { Component } from "@angular/core"; @Component(/* component metadata */) export class AppComponent { - visible: ABP.RouteGroup[] | undefined = routes.groupedVisible; + visible: RouteGroup[] | undefined = this.routes.groupedVisible; + //Or + visible$:Observable[] | undefined> = this.routes.groupedVisible$; constructor(routes: RoutesService) {} } From 3306380663f52a69511aba639fdbd8d9e2a99df5 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 27 Mar 2023 17:33:55 +0800 Subject: [PATCH 40/89] Try to delete the authentication's cookie if it does not exist or is inactive. --- .../AbpAspNetCoreMultiTenancyOptions.cs | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs index 447861a788..f4820073fd 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs @@ -3,6 +3,7 @@ using System.Globalization; using System.Net; using System.Text.Encodings.Web; using System.Threading.Tasks; +using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -27,13 +28,30 @@ public class AbpAspNetCoreMultiTenancyOptions TenantKey = TenantResolverConsts.DefaultTenantKey; MultiTenancyMiddlewareErrorPageBuilder = async (context, exception) => { - // Try to delete the tenant's cookie if it does not exist or is inactive. var tenantResolveResult = context.RequestServices.GetRequiredService().Result; - if (tenantResolveResult != null && - tenantResolveResult.AppliedResolvers.Contains(CookieTenantResolveContributor.ContributorName)) + if (tenantResolveResult != null) { + if (tenantResolveResult.AppliedResolvers.Count == 1 && tenantResolveResult.AppliedResolvers.Contains(CurrentUserTenantResolveContributor.ContributorName)) + { + var authenticationType = context.User.Identity?.AuthenticationType; + if (authenticationType != null) + { + var scheme = await context.RequestServices.GetRequiredService().GetHandlerAsync(context, authenticationType); + if (scheme is IAuthenticationSignOutHandler signOutHandler) + { + // Try to delete the authentication's cookie if it does not exist or is inactive. + await signOutHandler.SignOutAsync(null); + } + } + } + var options = context.RequestServices.GetRequiredService>().Value; - AbpMultiTenancyCookieHelper.SetTenantCookie(context, null, options.TenantKey); + if (tenantResolveResult.AppliedResolvers.Contains(CookieTenantResolveContributor.ContributorName) || + context.Request.Cookies.ContainsKey(options.TenantKey)) + { + // Try to delete the tenant's cookie if it does not exist or is inactive. + AbpMultiTenancyCookieHelper.SetTenantCookie(context, null, options.TenantKey); + } } context.Response.Headers.Add("Abp-Tenant-Resolve-Error", exception.Message); From ac5187e28339c03db11176ba61d4c881f4fb272d Mon Sep 17 00:00:00 2001 From: Hamza Albreem <94292623+braim23@users.noreply.github.com> Date: Mon, 27 Mar 2023 13:39:44 +0300 Subject: [PATCH 41/89] Small ar Fix for Localization --- .../Commercial/Localization/Resources/ar.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json index b8686d6bc3..c3a1f81d0a 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/ar.json @@ -190,7 +190,7 @@ "ChangingDevelopers": "هل يمكنني تغيير المطورين المسجلين لمنظمتي في المستقبل؟", "ChangingDevelopersExplanation": "بالإضافة إلى إضافة مطورين جدد إلى الترخيص الخاص بك ، يمكنك أيضًا تغيير المطورين الحاليين (يمكنك إزالة مطور وإضافة مطور جديد إلى نفس المقعد) دون أي تكلفة إضافية.", "WhenShouldIRenewMyLicense": "متى يجب أن أجدد رخصتي؟", - "WhenShouldIRenewMyLicenseExplanation": "إذا قمت بتجديد ترخيصك في غضون {3} يوما بعد انتهاء صلاحية ترخيصك ، فسيتم تطبيق الخصومات التالية: ترخيص الفريق {0}؛ رخصة تجارية {1} ؛ ترخيص المؤسسة {2}. ومع ذلك ، إذا جددت ترخيصك بعد {3} يوما من تاريخ انتهاء صلاحية الترخيص ، فسيكون سعر التجديد هو نفسه سعر شراء الترخيص ولن يكون هناك خصم على التجديد.", + "WhenShouldIRenewMyLicenseExplanation": "إذا قمت بتجديد ترخيصك في غضون {3} يوما بعد انتهاء صلاحية رخصتك ، فسيتم تطبيق الخصومات التالية: رخصة الفريق {0}؛ الرخصة التجارية {1} ؛ رخصة المؤسسة {2}. ومع ذلك ، إذا جددت رخصتك بعد {3} يوما من تاريخ انتهاء صلاحية الرخصة ، فسيكون سعر التجديد هو نفسه سعر شراء الرخصة ولن يكون هناك خصم على التجديد.", "TrialPlan": "هل لديك خطة تجريبية؟", "DoYouAcceptBankWireTransfer": "هل تقبل التحويل البنكي؟", "DoYouAcceptBankWireTransferExplanation": "نعم ، نحن نقبل التحويل البنكي.
بعد إرسال رسوم الترخيص عبر التحويل المصرفي ، أرسل لنا بريدًا إلكترونيًا على accounting@abp.io إيصالك ونوع الترخيص المطلوب. معلومات حسابنا المصرفي الدولي:", @@ -783,4 +783,4 @@ "WhyUseAbpIoPlatform": "لماذا يجب علي استخدام منصة ABP.IO بدلاً من إنشاء حل جديد من البداية؟", "WhyUseAbpIoPlatformFaqExplanation": "انظر الى هذا المستند للحصول على شرح مفصل لسبب استخدام ABP.IO Platform لفائدته الكبيرة بدلًا من القيام بكل شيء بنفسك." } -} \ No newline at end of file +} From a398e302c73d9d2a9904829cb40a582aa51d462d Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Mon, 27 Mar 2023 21:53:31 +0300 Subject: [PATCH 42/89] visible list filtered & tree-utils updated --- .../packages/core/src/lib/services/routes.service.ts | 2 +- npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index c7acce3aee..27a01beecf 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -197,7 +197,7 @@ export abstract class AbstractNavTreeService @Injectable({ providedIn: 'root' }) export class RoutesService extends AbstractNavTreeService { get groupedVisible(): RouteGroup[] | undefined { - return this.createGroupedTree(this.visible); + return this.createGroupedTree(this.visible.filter(f => f.path || f.children?.length > 0)); } get groupedVisible$(): Observable[] | undefined> { diff --git a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts index 6e1261d823..0195a81112 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts @@ -1,3 +1,5 @@ +import { isArray } from './common-utils'; + /* eslint-disable @typescript-eslint/ban-types */ export class BaseTreeNode { children: TreeNode[] = []; @@ -77,8 +79,8 @@ export function createTreeNodeFilterCreator( export function createGroupMap( list: TreeNode[], othersGroupKey: string, -): Map[]> | undefined { - if (!list || !Array.isArray(list) || !list.some(node => Boolean(node.group))) return undefined; +) { + if (!isArray(list) || !list.some(node => Boolean(node.group))) return undefined; const mapGroup = new Map[]>(); From 2ae6955ff081afa85e9e38dd27c0a5ca13c55155 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 28 Mar 2023 10:14:32 +0800 Subject: [PATCH 43/89] Update zh-Hans.json --- .../Commercial/Localization/Resources/zh-Hans.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json index 157928f8cb..7e42b4b7a1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/zh-Hans.json @@ -208,7 +208,7 @@ "WhenShouldIRenewMyLicense": "我什么时候应该续订我的许可?", "WhenShouldIRenewMyLicenseExplanation": "如果您在许可证到期后 {3} 天 内续订许可证,将适用以下折扣:团队许可证 {0}; 营业执照{1}; 企业许可证 {2}。 但是,如果您在许可证到期后 {3} 天 后续订许可证,则续订价格将与许可证购买价格相同,并且您的续订不会有任何折扣。", "TrialPlan": "你们有试用计划吗?", - "TrialPlanExplanation": "不,ABP商业版没有试用版。您可以检查社区版以了解代码质量和方法。我们还为团队许可证提供30天退款保证,不问问题!您可以在前30天内要求退款!您可以在前30天内要求退款。对于商业和企业许可证,我们在30天内提供60%的退款。这是因为商业和企业许可证包含所有模块和主题的完整源代码。", + "TrialPlanExplanation": "不,ABP商业版没有试用版。您可以通过查看社区版了解代码质量和方法。我们还为团队许可证提供30天无条件退款保证!您可以在前30天内申请退款。对于商业和企业许可证,我们在30天内提供60%的退款。这是因为商业和企业许可证包含所有模块和主题的完整源代码。", "DoYouAcceptBankWireTransfer": "你们接受银行电汇吗?", "DoYouAcceptBankWireTransferExplanation": "是的,我们接受银行电汇。
在通过银行转账发送许可费后,将您的收据和所需的许可类型通过电子邮件发送至accounting@abp.io。 我们的国际银行账户信息:", "HowToUpgrade": "可用新版本时如何升级现有应用程序?", @@ -816,7 +816,7 @@ "Other": "其他", "WhereDidYouHearAboutUs_explain": "请说明...", "DeletingMemberWarningMessage": "\"{0}\"将从开发者列表中删除。如果您愿意,您可以将此空位分配给另一个开发者。", - "AdditionalInfo": "如果开发人员席位超出您的要求,您可以减少它们。 您可以发送电子邮件至 info@abp.io 以删除您的一些开发人员席位。 清除未使用的开发人员席位将降低许可证续订成本。 如果需要,您可以在有效许可期限内重新购买额外的开发人员席位。 请注意,由于此许可包中有 {0} 个开发人员,因此您无法减少此数量。", + "AdditionalInfo": "如果开发人员席位超出您的要求,您可以减少它们。 您可以发送电子邮件至 info@abp.io 以删除您的一些开发人员席位。 清除未使用的开发人员席位将降低许可证续订成本。 如果需要,您可以在有效许可期限内重新购买额外的开发人员席位。 请注意,由于此许可证中有 {0} 个开发人员,因此您无法减少此数量。", "LinkExpiredErrorMessage": "您正在尝试访问的链接已过期。", "ExpirationDate": "过期时间", "SpringCampaignDiscount": "春季促销折扣", From 055045715f22602a69b20a01c28ecfedf328363c Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 28 Mar 2023 12:51:36 +0300 Subject: [PATCH 44/89] Update fi.json --- .../AbpIoLocalization/Commercial/Localization/Resources/fi.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json index 2b376d4955..dc3c374d78 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Commercial/Localization/Resources/fi.json @@ -202,7 +202,7 @@ "WhatHappensWhenLicenseEndsExplanation4": "Et voi asentaa uusia moduuleja ja teemoja, jotka on lisätty ABP Commercial -alustaan lisenssisi päätyttyä.", "WhatHappensWhenLicenseEndsExplanation5": "Et voi käyttää ABP Suitea.", "WhatHappensWhenLicenseEndsExplanation6": "Et voi enää saada premium-tukea.", - "WhatHappensWhenLicenseEndsExplanation7": "Voit jatkaa (uusia) lisenssiäsi, jos haluat jatkaa näiden etujen saamista. Jos jatkat lisenssiäsi yhden kuukauden kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Tiimilisenssi {0}; Toimilupa {1}; Yrityslisenssi {2}.", + "WhatHappensWhenLicenseEndsExplanation7": "Voit jatkaa (uusia) lisenssiäsi, jos haluat jatkaa näiden etujen saamista. Jos jatkat lisenssiäsi {3} päivää kuluessa lisenssin vanhenemisesta, seuraavat alennukset sovelletaan: Tiimilisenssi {0}; Toimilupa {1}; Yrityslisenssi {2}.", "discountForYears": "{0}% de remise pendant {1} an(s)", "WhatHappensWhenLicenseEndsExplanation8": "Luomiasi ABP-projekteja ei tallenneta palvelimillemme. Siksi on sinun vastuullasi säilyttää lataamasi lähdekoodi. Kun lisenssisi vanhenee, luotua ABP-projektin lähdekoodia ei ole mahdollista saada.", "WhenShouldIRenewMyLicense": "Milloin minun pitäisi uusia lisenssini?", From 990a211110ef4f305f6def55637a7fbd3eb30954 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Tue, 28 Mar 2023 14:08:55 +0300 Subject: [PATCH 45/89] tree-util & routes.service updated --- .../core/src/lib/services/routes.service.ts | 13 ++++++++++--- .../packages/core/src/lib/utils/tree-utils.ts | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 27a01beecf..80ee56765e 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -61,7 +61,7 @@ export abstract class AbstractTreeService[]): RouteGroup[] | undefined { const map = createGroupMap(list, this.othersGroup); - return !map ? undefined : Array.from(map, ([key, items]) => ({ group: key, items })); + return Boolean(map) ? Array.from(map, ([key, items]) => ({ group: key, items })) : undefined; } private filterWith(setOrMap: Set | Map): T[] { @@ -196,11 +196,18 @@ export abstract class AbstractNavTreeService @Injectable({ providedIn: 'root' }) export class RoutesService extends AbstractNavTreeService { + private hasPathOrChild(item: TreeNode): boolean { + return Boolean(item.path) || Boolean(item.children?.length); + } + get groupedVisible(): RouteGroup[] | undefined { - return this.createGroupedTree(this.visible.filter(f => f.path || f.children?.length > 0)); + return this.createGroupedTree(this.visible.filter(item => this.hasPathOrChild(item))); } get groupedVisible$(): Observable[] | undefined> { - return this.visible$.pipe(map(visible => this.createGroupedTree(visible))); + return this.visible$.pipe( + map(items => items.filter(item => this.hasPathOrChild(item))), + map(visible => this.createGroupedTree(visible)), + ); } } diff --git a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts index 0195a81112..8ea8cc504c 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/tree-utils.ts @@ -76,7 +76,7 @@ export function createTreeNodeFilterCreator( }; } -export function createGroupMap( +export function createGroupMap( list: TreeNode[], othersGroupKey: string, ) { From 79662c203bc4fa8900c5c48b6fd66c07bccc7ef6 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Tue, 28 Mar 2023 16:26:36 +0300 Subject: [PATCH 46/89] Document updated --- docs/en/UI/Angular/Modifying-the-Menu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/UI/Angular/Modifying-the-Menu.md b/docs/en/UI/Angular/Modifying-the-Menu.md index 2aec9f37e4..2ef4d83bab 100644 --- a/docs/en/UI/Angular/Modifying-the-Menu.md +++ b/docs/en/UI/Angular/Modifying-the-Menu.md @@ -115,7 +115,7 @@ function configureRoutes(routes: RoutesService) { ``` To get route items as grouped we can use `groupedVisible` (or Observable one `groupedVisible$`) getter methods - - It will return `RouteGroup[]` if there is any group in route tree otherwise it'll return `undefined` + - It will return `RouteGroup[]` if there is any group in route tree otherwise it'll return `undefined` ```js import { ABP, RoutesService, RouteGroup } from "@abp/ng.core"; From 42d886541963b410d86f8c08ee79a69693d7d934 Mon Sep 17 00:00:00 2001 From: Enis Necipoglu Date: Tue, 28 Mar 2023 16:44:55 +0300 Subject: [PATCH 47/89] Add Convert Create/Edit Modals to Page article --- .../POST.md | 371 ++++++++++++++++++ .../images/books-remove-methods.png | Bin 0 -> 135196 bytes .../images/books-remove-modals.png | Bin 0 -> 17246 bytes .../images/new.gif | Bin 0 -> 195293 bytes .../images/old.gif | Bin 0 -> 321656 bytes 5 files changed, 371 insertions(+) create mode 100644 docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md create mode 100644 docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-methods.png create mode 100644 docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-modals.png create mode 100644 docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/new.gif create mode 100644 docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/old.gif diff --git a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md new file mode 100644 index 0000000000..2af61d68b4 --- /dev/null +++ b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md @@ -0,0 +1,371 @@ +# Convert Create/Edit Modals to Page +In this document we will explain how to convert BookStore's Books create & edit modals to regular blazor pages. + +## Before +![bookstore-crud-before](images/old.gif) + +## After + +![bookstore-crud-after](images/new.gif) + + +# Books.razor Page +Books.razor page is the main page of the books management. Create & Update operations are done in this page. So we'll remove create & update operations from this page and move a separate blazor component for each operation. Each component will be a page. + +- Remove both Create & Update modals. + ![remove-all-modals](images/books-remove-modals.png) + +- Replace **NewBook** button with a link to **CreateBook** page. + + ```html + + ``` + +- Inject `NavigationManager` to `Books.razor` page. + ```csharp + @inject NavigationManager NavigationManager + ``` + +- Replace **Edit** button with a link to **UpdateBook** page. + + ```html + + ``` + + ```csharp + private void NavigateToEdit(Guid id) + { + NavigationManager.NavigateTo($"books/{id}/edit"); + } + ``` + +- Remove all methods in the `Books.razor` page except constructor. And add `GoToEditPage` as below: + + ```csharp + protected void GoToEditPage(BookDto book) + { + NavigationManager.NavigateTo($"books/{book.Id}"); + } + ``` + + ![bookstore-remove-methods](images/books-remove-methods.png) + +- Change Edit button to a link in the table. + + ```html + + ``` + + +# CreateBooks Page +Create new `CreateBook.razor` and `CreateBook.razor.cs` files in your project. + +- `CreateBook.razor` + +```html +@page "/books/new" +@attribute [Authorize(BookStorePermissions.Books.Create)] +@inherits BookStoreComponentBase + +@using Acme.BookStore.Books; +@using Acme.BookStore.Localization; +@using Acme.BookStore.Permissions; +@using Microsoft.Extensions.Localization; +@using Volo.Abp.AspNetCore.Components.Web; + +@inject IStringLocalizer L +@inject AbpBlazorMessageLocalizerHelper LH +@inject IBookAppService AppService +@inject NavigationManager NavigationManager + + + + + @L["NewBook"] + + + + + + + @L["Author"] + + + + @L["Name"] + + + + + + + + + @L["Type"] + + + + @L["PublishDate"] + + + + @L["Price"] + + + + + + + + + +``` + +- `CreateBook.razor.cs` + +```csharp +using Acme.BookStore.Books; +using Blazorise; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp; + +namespace Acme.BookStore.Blazor.Pages; + +public partial class CreateBook +{ + protected Validations CreateValidationsRef; + protected CreateUpdateBookDto NewEntity = new(); + IReadOnlyList authorList = Array.Empty(); + + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + authorList = (await AppService.GetAuthorLookupAsync()).Items; + + if (!authorList.Any()) + { + throw new UserFriendlyException(message: L["AnAuthorIsRequiredForCreatingBook"]); + } + + NewEntity.AuthorId = authorList.First().Id; + + if (CreateValidationsRef != null) + { + await CreateValidationsRef.ClearAll(); + } + } + + protected virtual async Task CreateEntityAsync() + { + try + { + var validate = true; + if (CreateValidationsRef != null) + { + validate = await CreateValidationsRef.ValidateAll(); + } + if (validate) + { + await AppService.CreateAsync(NewEntity); + NavigationManager.NavigateTo("books"); + } + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } +} +``` + +# EditBooks Page +Create new `EditBook.razor` and `EditBook.razor.cs` files in your project. + +- `EditBook.razor` + +```html +@page "/books/{Id}" +@attribute [Authorize(BookStorePermissions.Books.Edit)] +@inherits BookStoreComponentBase +@using Acme.BookStore.Books; +@using Acme.BookStore.Localization; +@using Acme.BookStore.Permissions; +@using Microsoft.Extensions.Localization; +@using Volo.Abp.AspNetCore.Components.Web; + +@inject IStringLocalizer L +@inject AbpBlazorMessageLocalizerHelper LH +@inject IBookAppService AppService +@inject NavigationManager NavigationManager + + + + + @EditingEntity.Name + + + + + + + @L["Author"] + + + + @L["Name"] + + + + + + + + + @L["Type"] + + + + @L["PublishDate"] + + + + @L["Price"] + + + + + + + + + +``` + +- `EditBook.razor.cs` + +```csharp +using Acme.BookStore.Books; +using Blazorise; +using Microsoft.AspNetCore.Components; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp; + +namespace Acme.BookStore.Blazor.Pages; + +public partial class EditBook +{ + protected CreateUpdateBookDto EditingEntity = new(); + protected Validations EditValidationsRef; + IReadOnlyList authorList = Array.Empty(); + + [Parameter] + public string Id { get; set; } + + public Guid EditingEntityId { get; set; } + + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + + // Blazor can't parse Guid as route constraint currently. + // See https://github.com/dotnet/aspnetcore/issues/19008 + EditingEntityId = Guid.Parse(Id); + + authorList = (await AppService.GetAuthorLookupAsync()).Items; + + if (!authorList.Any()) + { + throw new UserFriendlyException(message: L["AnAuthorIsRequiredForCreatingBook"]); + } + + var entityDto = await AppService.GetAsync(EditingEntityId); + + EditingEntity = ObjectMapper.Map(entityDto); + + if (EditValidationsRef != null) + { + await EditValidationsRef.ClearAll(); + } + } + + protected virtual async Task UpdateEntityAsync() + { + try + { + var validate = true; + if (EditValidationsRef != null) + { + validate = await EditValidationsRef.ValidateAll(); + } + if (validate) + { + await AppService.UpdateAsync(EditingEntityId, EditingEntity); + + NavigationManager.NavigateTo("books"); + } + } + catch (Exception ex) + { + await HandleErrorAsync(ex); + } + } +} +``` + +You can check the following commit for details: +https://github.com/abpframework/abp-samples/commit/aae61ad6d66ebf6191dd4dcfb4e23d30bd680a4e \ No newline at end of file diff --git a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-methods.png b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/books-remove-methods.png new file mode 100644 index 0000000000000000000000000000000000000000..a2df67fee23efb83d270987bb87a46c384de0b0e GIT binary patch literal 135196 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%0DmQi{SXlsN1~%UfSD0VSd5=PFGd7=I+DA6(p;d5b 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�Ca&+HNvaEbXqAIQI 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 M)78&qol`;+089U1pa1{> literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/new.gif b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/new.gif new file mode 100644 index 0000000000000000000000000000000000000000..42784eb281d03082573e1eeb39cfa4eeac6857df GIT binary patch literal 195293 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ȑe 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í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 WAjDsi;(fr^caP&<%YdB_gMR@ydY(W4 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/old.gif b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/images/old.gif new file mode 100644 index 0000000000000000000000000000000000000000..80a97a80f2907c42ced48149df70522ea32b8e90 GIT binary patch literal 321656 zcmd42_ct6){5QImW%boNOY|UWbQX)%dkvyS7eoXRpItpV(OZZvMDHZp>b>`<(QAkj z*3I|cbMC$8InN*Pyw7XunVFwv-hEWnR3s#AzJXq0`vCx~kA&LFh6YLsy2`==g4kGq ze^a+OIHdntzJCSqKg&w~VlWSw{~i5(z&zYz9&RuXmzeug%>5qbejRf&`EWUOe?4(^ zw}1R_cYwLyeR$Y@!0i8hIJ^0K`RC^H>iY8X&;NqozpwsZT>QTJ|8Q}2aejGm^84cO z;{4ae$>znu_Q~Gf(cb>i?*HKMAAao}Z2dZ1+PRoLyq!G#JM#OX@A9GN_@R9hQ@4Vt zT*Z_uV)CXRiso*srp~`l{~DTD8XKLQniyZ4nb=(%xL)gc*r>;>SN&Zo|1(x{(OGud zRCHXQwObXnQ4z9G5;U6qraRH4CDy$%%%cqHR`H*6UBIjFZmz%N-~SegxD<}K6bw5R z2wCM1ni2@=5DWaO>XB~gkm&L%%EdO+)!Ns^!Ohjp+110v-OKg$J0EBNK(~qhdM7CyE7imW^QP_zG` za@((L#XEc0Bc;nFrol0!)G4sg;a$F~XO62wftzW$n|7nKQHQ9UeWO$W_=H{{QLhv!RqdRIu_RwR+A!zl}|OI*ya71gq;|9 zO_`pkGCz@IW#wjNWoKn&`-lI9M0q4-o+&DctE$UuXsPPxtE(Gp!A;a;^%cam#03xn zoXVW6(omM?ObjBlbRsm=�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Μnc1~?5VjOY+wn;jt8d^zn&Gq{RA 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 z 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 literal 0 HcmV?d00001 From a2ea1a618536c7802d4d11010e48a4ededa6ee61 Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 28 Mar 2023 16:57:48 +0300 Subject: [PATCH 48/89] Fix error when adding info option --- .../Form/DatePicker/AbpDatePickerBaseTagHelperService.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 dbcd4e23ac..56f509c865 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 @@ -101,7 +101,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp new TagHelperAttributeList(new[] { new TagHelperAttribute("class", "input-group") }), (_, _) => Task.FromResult(new DefaultTagHelperContent())); inputGroup.Content.AppendHtml( - TagHelperOutput.Render(Encoder) + openButtonContent + clearButtonContent + infoContent + TagHelperOutput.Render(Encoder) + openButtonContent + clearButtonContent ); var abpDatePickerTag = new TagHelperOutput(TagName, GetBaseTagAttributes(context, output, TagHelper), @@ -110,7 +110,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp abpDatePickerTag.Content.AppendHtml(validationContent); abpDatePickerTag.Content.AppendHtml(GetExtraInputHtml(context, output)); - var innerHtml = labelContent + abpDatePickerTag.Render(Encoder); + var innerHtml = labelContent + abpDatePickerTag.Render(Encoder) + infoContent; var order = GetOrder(); @@ -475,6 +475,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp } var idAttr = inputTag.Attributes.FirstOrDefault(a => a.Name == "id"); + modelExplorer ??= GetModelExpression().ModelExplorer; var localizedText = TagHelperLocalizer.GetLocalizedText(text, modelExplorer); var div = new TagBuilder("div"); From 178158c0a22cdf53231299719dc64b02e2249329 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Tue, 28 Mar 2023 17:00:17 +0300 Subject: [PATCH 49/89] early pattern applied --- .../packages/core/src/lib/services/routes.service.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 80ee56765e..960ddc5266 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -61,7 +61,11 @@ export abstract class AbstractTreeService[]): RouteGroup[] | undefined { const map = createGroupMap(list, this.othersGroup); - return Boolean(map) ? Array.from(map, ([key, items]) => ({ group: key, items })) : undefined; + if (!map) { + return undefined; + } + + return Array.from(map, ([key, items]) => ({ group: key, items })); } private filterWith(setOrMap: Set | Map): T[] { From 0fd906d614d6e462dedcb6fbb3bc72a5566c0f69 Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 28 Mar 2023 17:17:06 +0300 Subject: [PATCH 50/89] Disable option prevents selection from being made --- .../Form/DatePicker/AbpDatePickerBaseTagHelperService.cs | 2 ++ 1 file changed, 2 insertions(+) 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 56f509c865..2a373b0cf9 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 @@ -589,6 +589,8 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp abpButtonTagHelper.ButtonType = AbpButtonType.Outline_Secondary; abpButtonTagHelper.Icon = icon; + abpButtonTagHelper.Disabled = TagHelper.IsDisabled; + if (!visible) { attributes.AddClass("d-none"); From c785a560399f33f1a5acda9d30c76d42cd88f6e1 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Tue, 28 Mar 2023 17:20:28 +0300 Subject: [PATCH 51/89] minor changes --- docs/en/UI/Angular/Modifying-the-Menu.md | 2 +- npm/ng-packs/packages/core/src/lib/services/routes.service.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/UI/Angular/Modifying-the-Menu.md b/docs/en/UI/Angular/Modifying-the-Menu.md index 2ef4d83bab..12cf88efd0 100644 --- a/docs/en/UI/Angular/Modifying-the-Menu.md +++ b/docs/en/UI/Angular/Modifying-the-Menu.md @@ -127,7 +127,7 @@ export class AppComponent { //Or visible$:Observable[] | undefined> = this.routes.groupedVisible$; - constructor(routes: RoutesService) {} + constructor(private routes: RoutesService) {} } ``` diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 960ddc5266..329d2a370c 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -201,7 +201,7 @@ export abstract class AbstractNavTreeService @Injectable({ providedIn: 'root' }) export class RoutesService extends AbstractNavTreeService { private hasPathOrChild(item: TreeNode): boolean { - return Boolean(item.path) || Boolean(item.children?.length); + return Boolean(item.path) || this.hasChildren(item.name); } get groupedVisible(): RouteGroup[] | undefined { From 8777da2d3974a9f32d1134e0ce0c0b402e01a691 Mon Sep 17 00:00:00 2001 From: Enis Necipoglu Date: Tue, 28 Mar 2023 17:20:37 +0300 Subject: [PATCH 52/89] Formatting update --- .../2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md index 2af61d68b4..4904da48cf 100644 --- a/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md +++ b/docs/en/Community-Articles/2023-03-28-Converting-Create-Edit-Modal-To-Page/POST.md @@ -13,6 +13,7 @@ In this document we will explain how to convert BookStore's Books create & edit Books.razor page is the main page of the books management. Create & Update operations are done in this page. So we'll remove create & update operations from this page and move a separate blazor component for each operation. Each component will be a page. - Remove both Create & Update modals. + ![remove-all-modals](images/books-remove-modals.png) - Replace **NewBook** button with a link to **CreateBook** page. From 8d109784d72fdf4a2cc0d9f845389a9b05059aac Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 28 Mar 2023 17:47:02 +0300 Subject: [PATCH 53/89] Update required symbol rule --- .../TagHelpers/Form/AbpInputTagHelperService.cs | 4 +++- .../TagHelpers/Form/AbpSelectTagHelperService.cs | 4 +++- .../Form/DatePicker/AbpDatePickerBaseTagHelperService.cs | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs index 0a3d1e1c08..a3cecfa471 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs @@ -294,8 +294,10 @@ public class AbpInputTagHelperService : AbpTagHelperService { return ""; } + + var isHaveRequiredAttribute = context.AllAttributes.Any(a => a.Name == "required"); - return TagHelper.AspFor.ModelExplorer.GetAttribute() != null ? " * " : ""; + return TagHelper.AspFor.ModelExplorer.GetAttribute() != null || isHaveRequiredAttribute ? " * " : ""; } protected virtual string GetInfoAsHtml(TagHelperContext context, TagHelperOutput output, TagHelperOutput inputTag, bool isCheckbox) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs index 78ef04d1d5..eefb6606ef 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs @@ -196,8 +196,10 @@ public class AbpSelectTagHelperService : AbpTagHelperService { return ""; } + + var isHaveRequiredAttribute = context.AllAttributes.Any(a => a.Name == "required"); - return TagHelper.AspFor.ModelExplorer.GetAttribute() != null ? " * " : ""; + return TagHelper.AspFor.ModelExplorer.GetAttribute() != null || isHaveRequiredAttribute ? " * " : ""; } protected virtual void AddInfoTextId(TagHelperOutput inputTagHelperOutput) 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 2a373b0cf9..e5fc38ce04 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 @@ -535,8 +535,10 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp { return ""; } + + var isHaveRequiredAttribute = context.AllAttributes.Any(a => a.Name == "required"); - return GetAttribute() != null ? " * " : ""; + return GetAttribute() != null || isHaveRequiredAttribute ? " * " : ""; } protected abstract ModelExpression GetModelExpression(); From d1fe97342f3b2f8089c8688aaee0a0e0582ae3bb Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 28 Mar 2023 18:15:38 +0300 Subject: [PATCH 54/89] Align clean and apply buttons today --- .../bootstrap/dom-event-handlers.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 5418e623e5..8c97539e66 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 @@ -483,12 +483,8 @@ function addExtraButtons(options, $dateRangePicker, $input) { var extraButtons = [getTodayButton(options, $input), getClearButton(options, $input, $dateRangePicker)]; - if ($dateRangePicker.container.find('.drp-buttons').css('display') !== 'none') { - - $.each(extraButtons, function (index, value) { - $dateRangePicker.container.find('.drp-buttons').prepend(value); - }); - } else { + + if ($dateRangePicker.container.hasClass('auto-apply')) { var $div = $('
'); $div.css('display', 'block'); $.each(extraButtons, function (index, value) { @@ -496,6 +492,10 @@ }); $div.insertAfter($dateRangePicker.container.find('.drp-buttons')); + } else { + $.each(extraButtons, function (index, value) { + $dateRangePicker.container.find('.drp-buttons').prepend(value); + }); } } From 0c8faae3bd29d60529794c631c162a1f58181ab7 Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 28 Mar 2023 18:26:27 +0300 Subject: [PATCH 55/89] fix week numbers iso option --- .../Form/DatePicker/AbpDatePickerBaseTagHelperService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e5fc38ce04..82273097cf 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 @@ -264,7 +264,7 @@ public abstract class AbpDatePickerBaseTagHelperService : AbpTagHelp attrList.Add("data-show-week-numbers", "true"); break; case AbpDatePickerWeekNumbers.Iso: - attrList.Add("data-show-iso-week-numbers", "true"); + attrList.Add("data-show-i-s-o-week-numbers", "true"); break; } From ef1774ed02a2066612429a3282ea56dc41feed1d Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 28 Mar 2023 18:40:15 +0300 Subject: [PATCH 56/89] Update form elements documents --- .../UI/AspNetCore/Tag-Helpers/Form-elements.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md index 64377f75cd..766bea2306 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md @@ -359,7 +359,8 @@ You can set some of the attributes on your c# property, or directly on HTML tag. * `label`: Sets the label of input. * `display-required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. * `open-button`: A button to open the datepicker will be added when its `True`. The default value is `True`. -* `clear-button`: A button to clear the datepicker will be added when its `True`. The default value is `True` +* `clear-button`: A button to clear the datepicker will be added when its `True`. The default value is `True`. +* `single-open-and-clear-button`: Shows the open and clear buttons in a single button when it's `True`. The default value is `True`. * `is-utc`: Converts the date to UTC when its `True`. The default value is `False`. * `is-iso`: Converts the date to ISO format when its `True`. The default value is `False`. * `date-format`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`. @@ -418,12 +419,13 @@ newPicker.insertAfter($('body')); - `AbpFormControlSize.Small` - `AbpFormControlSize.Medium` - `AbpFormControlSize.Large` -* `open-button`: A button to open the datepicker will be added when its `True`. The default value is `True`. -* `clear-button`: A button to clear the datepicker will be added when its `True`. The default value is `True` -* `is-utc`: Converts the date to UTC when its `True`. The default value is `False`. -* `is-iso`: Converts the date to ISO format when its `True`. The default value is `False`. -* `date-format`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`. -* `date-separator`: Sets a character to separate start and end dates. The default value is `-`. +* `openButton`: A button to open the datepicker will be added when its `True`. The default value is `True`. +* `clearButton`: A button to clear the datepicker will be added when its `True`. The default value is `True`. +* `singleOpenAndClearButton`: Shows the open and clear buttons in a single button when it's `True`. The default value is `True`. +* `isUtc`: Converts the date to UTC when its `True`. The default value is `False`. +* `isIso`: Converts the date to ISO format when its `True`. The default value is `False`. +* `dateFormat`: Sets the date format of the input. The default format is the user's culture date format. You need to provide a JavaScript date format convention. Eg: `YYYY-MM-DDTHH:MM:SSZ`. +* `dateSeparator`: Sets a character to separate start and end dates. The default value is `-`. * `startDateName`: Sets the name of the hidden start date input. * `endDateName`: Sets the name of the hidden end date input. * `dateName`: Sets the name of the hidden date input. From 2c52ba830abafbf431e4305d6f28d26104599800 Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 28 Mar 2023 18:40:36 +0300 Subject: [PATCH 57/89] Added missing feature --- .../bootstrap/dom-event-handlers.js | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 8c97539e66..945df5d0c6 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 @@ -247,6 +247,10 @@ if (options.readonly) { $dateInput.attr('readonly', true) } + + if(options.placeholder) { + $dateInput.attr('placeholder', options.placeholder) + } if (options.size) { switch (options.size) { @@ -269,11 +273,17 @@ if (options.openButton !== false) { var $openButton = $(''); $inputGroup.append($openButton); + if(options.disabled) { + $openButton.attr('disabled', 'disabled') + } } if (options.clearButton !== false) { var $clearButton = $(''); $inputGroup.append($clearButton); + if(options.disabled) { + $clearButton.attr('disabled', 'disabled') + } } $datePicker.append($inputGroup); From a5ddbeb69f7b5315e682d1eb6275e4266464fd33 Mon Sep 17 00:00:00 2001 From: Hamza Albreem <94292623+braim23@users.noreply.github.com> Date: Tue, 28 Mar 2023 19:01:02 +0300 Subject: [PATCH 58/89] Quick Doc Fix --- docs/en/UI/Angular/Modifying-the-Menu.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/en/UI/Angular/Modifying-the-Menu.md b/docs/en/UI/Angular/Modifying-the-Menu.md index 12cf88efd0..c59ce0d650 100644 --- a/docs/en/UI/Angular/Modifying-the-Menu.md +++ b/docs/en/UI/Angular/Modifying-the-Menu.md @@ -88,8 +88,8 @@ function configureRoutes(routes: RoutesService) { } ``` -Also we can define group for navigation elements. It's an optional property - - **Note:** It'll also include groups that defined at modules +We can also define a group for navigation elements. It's an optional property + - **Note:** It'll also include groups that were defined at the modules ```js // route.provider.ts @@ -114,8 +114,8 @@ function configureRoutes(routes: RoutesService) { } ``` -To get route items as grouped we can use `groupedVisible` (or Observable one `groupedVisible$`) getter methods - - It will return `RouteGroup[]` if there is any group in route tree otherwise it'll return `undefined` +To get the route items as grouped we can use the `groupedVisible` (or Observable one `groupedVisible$`) getter methods + - It returns `RouteGroup[]` if there is any group in the route tree, otherwise it returns `undefined` ```js import { ABP, RoutesService, RouteGroup } from "@abp/ng.core"; @@ -132,7 +132,7 @@ export class AppComponent { ``` ...and then in app.module.ts... - - `groupedVisible` method will return `Others` group for ungrouped items, Default key is `AbpUi::OthersGroup` we can change this `key` via `OTHERS_GROUP` injection token + - The `groupedVisible` method will return the `Others` group for ungrouped items, the default key is `AbpUi::OthersGroup`, we can change this `key` via the `OTHERS_GROUP` injection token ```js import { NgModule } from '@angular/core'; @@ -160,7 +160,7 @@ Here is what every property works as: - `requiredPolicy` is the permission key to access the page. See the [Permission Management document](./Permission-Management.md) - `order` is the order of the navigation element. "Administration" has an order of `100`, so keep that in mind when ordering top level menu items. - `iconClass` is the class of the `i` tag, which is placed to the left of the navigation label. -- `layout` defines in which layout the route will be loaded. (default: `eLayoutType.empty`) +- `layout` defines in which layout the route is loaded. (default: `eLayoutType.empty`) - `invisible` makes the item invisible in the menu. (default: `false`) - `group` is an optional property that is used to group together related routes in an application. (type: `string`, default: `AbpUi::OthersGroup`) From 5b6941a6f9e12fb513a9c6427204d4110544d808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Tue, 28 Mar 2023 21:36:26 +0300 Subject: [PATCH 59/89] test card title directive --- .../src/lib/tests/card-title.directive.spec.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/card-title.directive.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card-title.directive.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-title.directive.spec.ts new file mode 100644 index 0000000000..10360e23aa --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-title.directive.spec.ts @@ -0,0 +1,18 @@ +import { createHostFactory, SpectatorHost } from '@ngneat/spectator'; +import { CardTitle } from '../components'; + +describe('AbpCardTitleDirective', () => { + let spectator: SpectatorHost; + + const createHost = createHostFactory(CardTitle); + + beforeEach(() => (spectator = createHost(`
CardTitle
`))); + + it('should create an instance', () => { + expect(spectator).toBeTruthy(); + }); + + it('should have class card-title', () => { + expect(spectator.element.classList).toContain('card-title'); + }); +}); From e513481bf04fc8c56f702cc977de9d31f361f397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Tue, 28 Mar 2023 21:37:07 +0300 Subject: [PATCH 60/89] test subtitle directive --- .../lib/tests/card-subtitle.directive.spec.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/card-subtitle.directive.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card-subtitle.directive.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-subtitle.directive.spec.ts new file mode 100644 index 0000000000..4995067635 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-subtitle.directive.spec.ts @@ -0,0 +1,22 @@ +import { createHostFactory, SpectatorHost } from '@ngneat/spectator'; +import { CardSubtitle } from '../components'; + +describe('AbpCardSubtitleDirective', () => { + let spectator: SpectatorHost; + + const createHost = createHostFactory(CardSubtitle); + + beforeEach(() => (spectator = createHost(`

CardSubtitle

`))); + + it('should create an instance', () => { + expect(spectator).toBeTruthy(); + }); + + it('should have class card-subtitle', () => { + expect(spectator.element.classList).toContain('card-subtitle'); + }); + + it('should have CardSubtitle text', () => { + expect(spectator.element.textContent).toContain('CardSubtitle'); + }); +}); From ce0fbea7104028a68033df928d6962ee483195d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Tue, 28 Mar 2023 21:37:29 +0300 Subject: [PATCH 61/89] test card-body component --- .../src/lib/tests/card-body.component.spec.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/card-body.component.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card-body.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-body.component.spec.ts new file mode 100644 index 0000000000..83cc302625 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-body.component.spec.ts @@ -0,0 +1,46 @@ +import { createHostFactory, SpectatorHost } from '@ngneat/spectator'; +import { CardBodyComponent } from '../components'; + +describe('AbpCardBodyComponent', () => { + let spectator: SpectatorHost; + + const createHost = createHostFactory(CardBodyComponent); + + beforeEach( + () => + (spectator = createHost( + ` +

Body

+
`, + { + hostProps: { attributes: { autofocus: '', name: 'abp-card-body' } }, + }, + )), + ); + + it('should create an instance', () => { + expect(spectator).toBeTruthy(); + }); + + it('should have class card-body', () => { + expect(spectator.element.classList).toContain('card-body'); + }); + + it('should have div', () => { + expect(spectator.query('div')).toBeTruthy(); + }); + + it('should have background-color red', () => { + expect((spectator.query('div') as HTMLElement).style.backgroundColor).toEqual('red'); + }); + + it('should have p tag', () => { + expect(spectator.query('p')).toBeTruthy(); + }); + + it('should have p tag with Body text', () => { + expect(spectator.query('p').textContent).toContain('Body'); + }); +}); From a43bb497bdf2d6a2587c876b17c6b32b19e9ff74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Tue, 28 Mar 2023 21:38:46 +0300 Subject: [PATCH 62/89] test card-footer component --- .../lib/tests/card-footer.component.spec.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/card-footer.component.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card-footer.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-footer.component.spec.ts new file mode 100644 index 0000000000..2b98479b9f --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-footer.component.spec.ts @@ -0,0 +1,46 @@ +import { createHostFactory, SpectatorHost } from '@ngneat/spectator'; +import { CardFooterComponent } from '../components'; + +describe('AbpCardFooterComponent', () => { + let spectator: SpectatorHost; + + const createHost = createHostFactory(CardFooterComponent); + + beforeEach( + () => + (spectator = createHost( + ` +

Footer

+
`, + { + hostProps: { attributes: { autofocus: '', name: 'abp-card-footer' } }, + }, + )), + ); + + it('should create an instance', () => { + expect(spectator).toBeTruthy(); + }); + + it('should have class card-footer', () => { + expect(spectator.element.classList).toContain('card-footer'); + }); + + it('should have div', () => { + expect(spectator.query('div')).toBeTruthy(); + }); + + it('should have background-color red', () => { + expect((spectator.query('div') as HTMLElement).style.backgroundColor).toEqual('red'); + }); + + it('should have p tag', () => { + expect(spectator.query('p')).toBeTruthy(); + }); + + it('should have p tag with Footer text', () => { + expect((spectator.query('p') as HTMLElement).textContent).toContain('Footer'); + }); +}); From fa184b2162684d805d5d1b1d8c58cd484f5d122b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Tue, 28 Mar 2023 22:24:54 +0300 Subject: [PATCH 63/89] test card-header component --- .../lib/tests/card-header.component.spec.ts | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/card-header.component.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card-header.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-header.component.spec.ts new file mode 100644 index 0000000000..279cfe90bf --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-header.component.spec.ts @@ -0,0 +1,37 @@ +import { createHostFactory, SpectatorHost } from '@ngneat/spectator'; +import { CardHeaderComponent } from '../components'; + +describe('AbpCardHeaderComponent', () => { + let spectator: SpectatorHost; + const createHost = createHostFactory(CardHeaderComponent); + + beforeEach( + () => + (spectator = createHost( + ` + Header + `, + { + hostProps: { attributes: { autofocus: '', name: 'abp-card-header' } }, + }, + )), + ); + + it('should create an instance', () => { + expect(spectator).toBeTruthy(); + }); + + it('should have class card-header', () => { + expect(spectator.element.classList).toContain('card-header'); + }); + + it('should have background-color red', () => { + expect((spectator.query('div') as HTMLElement).style.backgroundColor).toEqual('red'); + }); + + it('should have Header text', () => { + expect(spectator.element.textContent).toContain('Header'); + }); +}); From 64eeb5a13329f4c2d3f4c0f54c799e8f713a21c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Tue, 28 Mar 2023 22:25:37 +0300 Subject: [PATCH 64/89] test card-header directive --- .../lib/tests/card-header.directive.spec.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/card-header.directive.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card-header.directive.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-header.directive.spec.ts new file mode 100644 index 0000000000..d811014447 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-header.directive.spec.ts @@ -0,0 +1,28 @@ +import { createHostFactory, SpectatorHost } from '@ngneat/spectator'; +import { CardHeader } from '../components'; + +describe('AbpCardHeaderDirective', () => { + let spectator: SpectatorHost; + + const createHost = createHostFactory(CardHeader); + + beforeEach( + () => + (spectator = createHost( + `
+
`, + { + hostProps: { attributes: { autofocus: '', name: 'abp-card-header' } }, + }, + )), + ); + + it('should create an instance', () => { + expect(spectator).toBeTruthy(); + }); + + it('should have class card-header', () => { + expect(spectator.element.classList).toContain('card-header'); + }); +}); From dca52ecff015d292a083c50ce964a95609062a14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Tue, 28 Mar 2023 22:26:02 +0300 Subject: [PATCH 65/89] test card-img-top directive --- .../lib/tests/card-img-top.directive.spec.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/card-img-top.directive.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card-img-top.directive.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-img-top.directive.spec.ts new file mode 100644 index 0000000000..2a1ee9cff3 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card-img-top.directive.spec.ts @@ -0,0 +1,25 @@ +import { createHostFactory, SpectatorHost } from '@ngneat/spectator'; +import { CardImgTop } from '../components'; + +describe('AbpCardImgTopDirective', () => { + let spectator: SpectatorHost; + + const createHost = createHostFactory(CardImgTop); + + beforeEach( + () => + (spectator = createHost( + ``, + )), + ); + + it('should create an instance', () => { + expect(spectator).toBeTruthy(); + }); + + it('should have class card-img-top', () => { + expect(spectator.element.classList).toContain('card-img-top'); + }); +}); From 4a08de662e958008869ddb2a275b925ac034c8d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Tue, 28 Mar 2023 22:26:21 +0300 Subject: [PATCH 66/89] test card component --- .../src/lib/tests/card.component.spec.ts | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/tests/card.component.spec.ts diff --git a/npm/ng-packs/packages/theme-shared/src/lib/tests/card.component.spec.ts b/npm/ng-packs/packages/theme-shared/src/lib/tests/card.component.spec.ts new file mode 100644 index 0000000000..3dbc2156f1 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/tests/card.component.spec.ts @@ -0,0 +1,75 @@ +import { createHostFactory, SpectatorHost } from '@ngneat/spectator/jest'; +import { + CardComponent, + CardBodyComponent, + CardFooterComponent, + CardHeaderComponent, + CardHeader, + CardTitle, + CardImgTop, + CardSubtitle, +} from '../components/card'; + +describe('CardComponent', () => { + let spectator: SpectatorHost; + + const createHost = createHostFactory({ + component: CardComponent, + declarations: [ + CardHeaderComponent, + CardTitle, + CardSubtitle, + CardBodyComponent, + CardImgTop, + CardFooterComponent, + ], + }); + + beforeEach( + () => + (spectator = createHost( + ` + + + Card title +

Card subtitle

+
+ + +

Some quick example text to build on the card title and make up the bulk of the card's content.

+
+ +
Go somewhere + + + `, + { + hostProps: { attributes: { autofocus: '', name: 'abp-card' } }, + }, + )), + ); + + it('should display the card-header', () => { + expect(spectator.query('abp-card-header')).toBeTruthy(); + }); + + it('should display the card-title', () => { + expect(spectator.query('abp-card-title')).toBeTruthy(); + }); + + it('should display the card-subtitle', () => { + expect(spectator.query('p[abp-card-subtitle]')).toBeTruthy(); + }); + + it('should display the card-body', () => { + expect(spectator.query('abp-card-body')).toBeTruthy(); + }); + + it('should display the card-img-top', () => { + expect(spectator.query('abp-card-img-top')).toBeTruthy(); + }); + + it('should display the card-footer', () => { + expect(spectator.query('abp-card-footer')).toBeTruthy(); + }); +}); From 7cf6b2c8607ec8e35ba2119da64ce3c7eb6aae13 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Wed, 29 Mar 2023 00:12:39 +0300 Subject: [PATCH 67/89] Test created for safe-html pipe --- .../core/src/lib/tests/safe-html.pipe.spec.ts | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts diff --git a/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts new file mode 100644 index 0000000000..a0c4fa6e30 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts @@ -0,0 +1,37 @@ +import { createServiceFactory, SpectatorService } from '@ngneat/spectator/jest'; +import { SafeHtmlPipe } from '../pipes'; + +describe('SafeHtmlPipe', () => { + let pipe: SafeHtmlPipe; + let spectator: SpectatorService; + const createService = createServiceFactory(SafeHtmlPipe); + + beforeEach(() => { + spectator = createService(); + pipe = spectator.service; + }); + + it('should create an instance', () => { + expect(pipe).toBeTruthy(); + }); + + it('should return empty string for non-string inputs', () => { + const inputs = [42, false, {}, []]; + for (const input of inputs) { + const result = pipe.transform(input as any); + expect(result).toBe(''); + } + }); + + it('should be equals with input after sanitized', () => { + const input = '

Hello world!

'; + const result = pipe.transform(input); + expect(result).toEqual(input); + }); + + it('should sanitize unsafe HTML content', () => { + const input = `

Click here!

`; + const result = pipe.transform(input); + expect(result).toBe(`

Click here!

`); + }); +}); From 8512e6b41feb7c3c708bae5acf57970d0c9d7b98 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Wed, 29 Mar 2023 01:16:29 +0300 Subject: [PATCH 68/89] Html value render example added to Page-Alerts documantation --- docs/en/UI/Angular/Page-Alerts.md | 16 ++++++++++++++++ .../images/page-alert-with-html-example.png | Bin 0 -> 10225 bytes 2 files changed, 16 insertions(+) create mode 100644 docs/en/UI/Angular/images/page-alert-with-html-example.png diff --git a/docs/en/UI/Angular/Page-Alerts.md b/docs/en/UI/Angular/Page-Alerts.md index a27cee4abf..3d71723bf1 100644 --- a/docs/en/UI/Angular/Page-Alerts.md +++ b/docs/en/UI/Angular/Page-Alerts.md @@ -61,4 +61,20 @@ this.service.show({ ![angular-page-alert-with-params-example](./images/page-alert-with-params-example.png) +## Render HTML content +We can pass html content to `title` and `message` parameters + +* It allows to both case static message and localization value +* [abpSafeHtml](https://github.com/abpframework/abp/blob/37b59a7f05202264505d002397dbb27d275740e1/npm/ng-packs/packages/core/src/lib/pipes/safe-html.pipe.ts#L6) pipe will sanitize html values + +```typescript +this.service.show({ + type: 'success', + title: `New blog published`, + message: 'AbpApp::HtmlMessageWithParams{0}', + messageLocalizationParams: ['admin'], +}); +``` + +![angular-page-alert-with-html-example](./images/page-alert-with-html-example.png) diff --git a/docs/en/UI/Angular/images/page-alert-with-html-example.png b/docs/en/UI/Angular/images/page-alert-with-html-example.png new file mode 100644 index 0000000000000000000000000000000000000000..a07133faf29f84e914243a7093be1f6230f14637 GIT binary patch literal 10225 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 literal 0 HcmV?d00001 From 5c50a84848055874288ad3c60691b2ad1a68c8f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Can=20Y=C4=B1lmaz?= Date: Wed, 29 Mar 2023 13:31:27 +0300 Subject: [PATCH 69/89] remove unnecessary comment --- templates/app/angular/src/app/home/home.component.spec.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/templates/app/angular/src/app/home/home.component.spec.ts b/templates/app/angular/src/app/home/home.component.spec.ts index a873a48dcd..e02c272719 100644 --- a/templates/app/angular/src/app/home/home.component.spec.ts +++ b/templates/app/angular/src/app/home/home.component.spec.ts @@ -19,7 +19,6 @@ describe("HomeComponent", () => { imports: [ CoreTestingModule.withConfig(), ThemeSharedTestingModule.withConfig(), - //ThemeLeptonXModule.withConfig(), NgxValidateCoreModule, ], providers: [ @@ -97,4 +96,4 @@ describe("HomeComponent", () => { }) }) -}); \ No newline at end of file +}); From 639cbdf59b541db27dab1faaa96662b7b9fa8a1b Mon Sep 17 00:00:00 2001 From: Salih Date: Wed, 29 Mar 2023 14:17:14 +0300 Subject: [PATCH 70/89] Update Form-elements.md --- docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md index 766bea2306..54e9712d30 100644 --- a/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md +++ b/docs/en/UI/AspNetCore/Tag-Helpers/Form-elements.md @@ -86,7 +86,7 @@ You can set some of the attributes on your c# property, or directly on HTML tag. * `disabled`: Sets the input as disabled. * `readonly`: Sets the input as read-only. * `label`: Sets the label of input. -* `display-required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. +* `required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. `asp-format`, `name` and `value` attributes of [Asp.Net Core Input Tag Helper](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/working-with-forms?view=aspnetcore-7.0#the-input-tag-helper) are also valid for `abp-input` tag helper. @@ -193,7 +193,7 @@ You can set some of the attributes on your c# property, or directly on HTML tag. - `AbpFormControlSize.Medium` - `AbpFormControlSize.Large` - `label`: Sets the label of input. -- `display-required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. +- `required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. ### Label & Localization @@ -357,7 +357,7 @@ You can set some of the attributes on your c# property, or directly on HTML tag. * `disabled`: Sets the input as disabled. * `readonly`: Sets the input as read-only. * `label`: Sets the label of input. -* `display-required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. +* `required-symbol`: Adds the required symbol `(*)` to the label when the input is required. The default value is `True`. * `open-button`: A button to open the datepicker will be added when its `True`. The default value is `True`. * `clear-button`: A button to clear the datepicker will be added when its `True`. The default value is `True`. * `single-open-and-clear-button`: Shows the open and clear buttons in a single button when it's `True`. The default value is `True`. From d294fb7b1f3277115f76992d474fd6e9776b3079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Onur=20P=C4=B1=C3=A7akc=C4=B1?= Date: Wed, 29 Mar 2023 14:30:57 +0300 Subject: [PATCH 71/89] new localizations added --- .../AbpIoLocalization/Admin/Localization/Resources/ar.json | 7 ++++++- .../AbpIoLocalization/Admin/Localization/Resources/cs.json | 7 ++++++- .../AbpIoLocalization/Admin/Localization/Resources/en.json | 7 ++++++- .../AbpIoLocalization/Admin/Localization/Resources/fi.json | 7 ++++++- .../AbpIoLocalization/Admin/Localization/Resources/fr.json | 7 ++++++- .../AbpIoLocalization/Admin/Localization/Resources/hi.json | 7 ++++++- .../AbpIoLocalization/Admin/Localization/Resources/it.json | 7 ++++++- .../AbpIoLocalization/Admin/Localization/Resources/sl.json | 7 ++++++- .../AbpIoLocalization/Admin/Localization/Resources/tr.json | 7 ++++++- .../Admin/Localization/Resources/zh-Hans.json | 7 ++++++- .../Admin/Localization/Resources/zh-Hant.json | 7 ++++++- 11 files changed, 66 insertions(+), 11 deletions(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json index 6e9253891e..9b95078f66 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/ar.json @@ -348,6 +348,11 @@ "Volo.AbpIo.Commercial:030008": "يمكن تحديد تاريخ الشراء فقط عند شراء الحالة!", "Volo.AbpIo.Commercial:030009": "لم يتم العثور على المستخدم!", "Volo.AbpIo.Commercial:030010": "لشراء الترخيص التجريبي ، تحتاج أولاً إلى تنشيط الترخيص التجريبي الخاص بك!", - "Volo.AbpIo.Commercial:030011": "لا يمكنك حذف ترخيص تجريبي عند شرائه!" + "Volo.AbpIo.Commercial:030011": "لا يمكنك حذف ترخيص تجريبي عند شرائه!", + "MoveWaitList": "الانتقال إلى قائمة الانتظار", + "CommunityLinkTitle": "افتح على موقع المجتمع", + "CommunityLink": "رابط المجتمع", + "ReloadFromSource": "إعادة التحميل من المصدر", + "ReloadFromSourceConfirmationMessage": "سيتم تحديث هذه المشاركة من \"{0}\". هل تريد الاستمرار؟" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json index c9b4bacc6d..b594121f0f 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/cs.json @@ -348,6 +348,11 @@ "Volo.AbpIo.Commercial:030008": "Datum nákupu lze nastavit pouze ve stavu Zakoupeno!", "Volo.AbpIo.Commercial:030009": "Uživatel nenalezen!", "Volo.AbpIo.Commercial:030010": "Chcete-li zakoupit zkušební licenci, musíte nejprve aktivovat zkušební licenci!", - "Volo.AbpIo.Commercial:030011": "Po zakoupení zkušební licence nelze odstranit!" + "Volo.AbpIo.Commercial:030011": "Po zakoupení zkušební licence nelze odstranit!", + "MoveWaitList": "Přejít na čekací listinu", + "CommunityLinkTitle": "Otevřít na webu komunity", + "CommunityLink": "Odkaz na komunitu", + "ReloadFromSource": "Znovu načíst ze zdroje", + "ReloadFromSourceConfirmationMessage": "Tento příspěvek bude obnoven z „{0}“. Chceš pokračovat?" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json index 34d20a3bda..9f4fe44349 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/en.json @@ -452,6 +452,11 @@ "WhoWeAreItem": "Who We Are Item", "FieldIsRequired": "{0} is required.", "FieldIsNotValid": " {0} is not valid.", - "InterestedLicenseType": "Interested License Type" + "InterestedLicenseType": "Interested License Type", + "MoveWaitList": "Move to wait list", + "CommunityLinkTitle": "Open on the community website", + "CommunityLink": "Community Link", + "ReloadFromSource": "Reload From the Source", + "ReloadFromSourceConfirmationMessage": "This post will be refreshed from \"{0}\". Do you want to continue?" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json index 54d5ed7a71..3248ec9863 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fi.json @@ -452,6 +452,11 @@ "WhoWeAreItem": "Keitä me olemme -tuote", "FieldIsRequired": "{0} vaaditaan.", "FieldIsNotValid": " {0} ei kelpaa.", - "InterestedLicenseType": "Kiinnostunut lisenssityyppi" + "InterestedLicenseType": "Kiinnostunut lisenssityyppi", + "MoveWaitList": "Siirrä jonotuslistalle", + "CommunityLinkTitle": "Avaa yhteisön verkkosivuilla", + "CommunityLink": "Yhteisön linkki", + "ReloadFromSource": "Lataa uudelleen lähteestä", + "ReloadFromSourceConfirmationMessage": "Tämä viesti päivitetään kohteesta \"{0}\". Haluatko jatkaa?" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json index 8ac2e0e770..075992d7c7 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/fr.json @@ -348,6 +348,11 @@ "Volo.AbpIo.Commercial:030008": "La date d'achat ne peut être définie que lorsque le statut est Acheté !", "Volo.AbpIo.Commercial:030009": "Utilisateur non trouvé!", "Volo.AbpIo.Commercial:030010": "Pour acheter la licence d'essai, vous devez d'abord activer votre licence d'essai !", - "Volo.AbpIo.Commercial:030011": "Vous ne pouvez pas supprimer une licence d'essai lorsqu'elle est achetée !" + "Volo.AbpIo.Commercial:030011": "Vous ne pouvez pas supprimer une licence d'essai lorsqu'elle est achetée !", + "MoveWaitList": "Passer à la liste d'attente", + "CommunityLinkTitle": "Ouvert sur le site communautaire", + "CommunityLink": "Lien communautaire", + "ReloadFromSource": "Recharger à partir de la source", + "ReloadFromSourceConfirmationMessage": "Ce message sera actualisé à partir de \"{0}\". Voulez-vous continuer?" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json index bbe2980c7b..01d9a571e1 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/hi.json @@ -348,6 +348,11 @@ "Volo.AbpIo.Commercial:030008": "खरीद की तारीख तभी निर्धारित की जा सकती है जब स्थिति खरीदी गई हो!", "Volo.AbpIo.Commercial:030009": "उपयोगकर्ता नहीं मिला!", "Volo.AbpIo.Commercial:030010": "परीक्षण लाइसेंस खरीदने के लिए, पहले आपको अपना परीक्षण लाइसेंस सक्रिय करना होगा!", - "Volo.AbpIo.Commercial:030011": "जब आप एक परीक्षण लाइसेंस खरीदा जाता है तो आप उसे हटा नहीं सकते हैं!" + "Volo.AbpIo.Commercial:030011": "जब आप एक परीक्षण लाइसेंस खरीदा जाता है तो आप उसे हटा नहीं सकते हैं!", + "MoveWaitList": "प्रतीक्षा सूची में ले जाएँ\n", + "CommunityLinkTitle": "सामुदायिक वेबसाइट पर खोलें", + "CommunityLink": "सामुदायिक लिंक", + "ReloadFromSource": "स्रोत से पुनः लोड करें", + "ReloadFromSourceConfirmationMessage": "यह पोस्ट \"{0}\" से ताज़ा की जाएगी। क्या आप जारी रखना चाहते हैं?" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json index eb6b0e7779..f4e51f77c0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/it.json @@ -348,6 +348,11 @@ "Volo.AbpIo.Commercial:030008": "La data di acquisto può essere impostata solo quando lo stato è Acquistato!", "Volo.AbpIo.Commercial:030009": "Utente non trovato!", "Volo.AbpIo.Commercial:030010": "Per acquistare la licenza di prova, devi prima attivare la tua licenza di prova!", - "Volo.AbpIo.Commercial:030011": "Non è possibile eliminare una licenza di prova al momento dell'acquisto!" + "Volo.AbpIo.Commercial:030011": "Non è possibile eliminare una licenza di prova al momento dell'acquisto!", + "MoveWaitList": "Passa alla lista d'attesa", + "CommunityLinkTitle": "Apri sul sito web della comunità", + "CommunityLink": "Collegamento comunitario", + "ReloadFromSource": "Ricarica dalla sorgente", + "ReloadFromSourceConfirmationMessage": "Questo post verrà aggiornato da \"{0}\". Volete continuare?" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json index 421ed3f0d4..968c8fa8c0 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/sl.json @@ -348,6 +348,11 @@ "Volo.AbpIo.Commercial:030008": "Datum nakupa je mogoče nastaviti samo, če je status Kupljeno!", "Volo.AbpIo.Commercial:030009": "Uporabnik ni najden!", "Volo.AbpIo.Commercial:030010": "Za nakup preizkusne licence morate najprej aktivirati preizkusno licenco!", - "Volo.AbpIo.Commercial:030011": "Preskusne licence ne morete izbrisati, ko je kupljena!" + "Volo.AbpIo.Commercial:030011": "Preskusne licence ne morete izbrisati, ko je kupljena!", + "MoveWaitList": "Presuňte sa na zoznam čakateľov", + "CommunityLinkTitle": "Otvorte na webovej stránke komunity", + "CommunityLink": "Odkaz na komunitu", + "ReloadFromSource": "Znovu načítať zo zdroja", + "ReloadFromSourceConfirmationMessage": "Tento príspevok bude obnovený z „{0}“. Chceš pokračovať?" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json index 8fb4eeb4e1..4559503a6d 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/tr.json @@ -412,6 +412,11 @@ "CustomPaymentFlexSwitchDescription": "Lisanslı", "AllowFeatureUpgradeOnLicenseExpire": "Lisans süresi dolunca özellik yükseltmesine izin ver", "Deleted{0}": "[{0} silindi]", - "Permission:BookDiscount": "Kitap indirimleri" + "Permission:BookDiscount": "Kitap indirimleri", + "MoveWaitList": "Bekleme listesine geç", + "CommunityLinkTitle": "Topluluk web sitesinde açın", + "CommunityLink": "Topluluk Bağlantısı", + "ReloadFromSource": "Kaynaktan Yeniden Yükle", + "ReloadFromSourceConfirmationMessage": "Bu gönderi \"{0}\" adresinden yenilenecek. Devam etmek istiyor musun?" } } diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json index 09ec893538..0ed00a2c75 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hans.json @@ -452,6 +452,11 @@ "WhoWeAreItem": "关于我们", "FieldIsRequired": "{0}是必须的。", "FieldIsNotValid": "{0}是无效的。", - "InterestedLicenseType": "感兴趣的许可证类型" + "InterestedLicenseType": "感兴趣的许可证类型", + "MoveWaitList": "移至候补名单", + "CommunityLinkTitle": "在社区网站上打开", + "CommunityLink": "在社区网站上打开", + "ReloadFromSource": "从源重新加载", + "ReloadFromSourceConfirmationMessage": "此帖子将从“{0}”刷新。 你想继续吗?" } } \ No newline at end of file diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json index 209e667c83..b5ec2f3816 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Admin/Localization/Resources/zh-Hant.json @@ -348,6 +348,11 @@ "Volo.AbpIo.Commercial:030008": "購買日期只能在狀態為已購買時設置!", "Volo.AbpIo.Commercial:030009": "未找到用戶!", "Volo.AbpIo.Commercial:030010": "要購買試用許可證,首先您需要激活您的試用許可證!", - "Volo.AbpIo.Commercial:030011": "購買試用許可證後,您無法刪除它!" + "Volo.AbpIo.Commercial:030011": "購買試用許可證後,您無法刪除它!", + "MoveWaitList": "移至候补名单", + "CommunityLinkTitle": "在社区网站上打开", + "CommunityLink": "社区链接", + "ReloadFromSource": "從源重新加載", + "ReloadFromSourceConfirmationMessage": "此帖子將從“{0}”刷新。 你想繼續嗎?" } } \ No newline at end of file From b091ed34293efdb1f611fdfcbce4d7e1365d706a Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Wed, 29 Mar 2023 14:54:57 +0300 Subject: [PATCH 72/89] safe-html test updated --- .../packages/core/src/lib/tests/safe-html.pipe.spec.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts index a0c4fa6e30..840cf614db 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/safe-html.pipe.spec.ts @@ -15,12 +15,9 @@ describe('SafeHtmlPipe', () => { expect(pipe).toBeTruthy(); }); - it('should return empty string for non-string inputs', () => { - const inputs = [42, false, {}, []]; - for (const input of inputs) { - const result = pipe.transform(input as any); - expect(result).toBe(''); - } + test.each([42, false, {}, []])('should return empty string for "%p" input', input => { + const result = pipe.transform(input as any); + expect(result).toBe(''); }); it('should be equals with input after sanitized', () => { From a546a0bc7ecdbf09e9a1fbb67347e8066c107854 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 30 Mar 2023 15:38:15 +0800 Subject: [PATCH 73/89] DataGridEntityActionsColumn show a *single button* if there is only one available action --- .../Components/AbpExtensibleDataGrid.razor | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor index c674ec3612..0e5e76b3ec 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor @@ -34,15 +34,16 @@ { if (column.Actions.Any()) { + var entityActionType = column.Actions.Count == 1 ? ActionType.Button : ActionType.Dropdown; - + @foreach (var action in column.Actions) { if (action.ConfirmationMessage != null) { Date: Thu, 30 Mar 2023 13:12:07 +0300 Subject: [PATCH 74/89] page-alerts doc. updated --- docs/en/UI/Angular/Page-Alerts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/UI/Angular/Page-Alerts.md b/docs/en/UI/Angular/Page-Alerts.md index 3d71723bf1..7e75077cc6 100644 --- a/docs/en/UI/Angular/Page-Alerts.md +++ b/docs/en/UI/Angular/Page-Alerts.md @@ -65,7 +65,7 @@ this.service.show({ We can pass html content to `title` and `message` parameters -* It allows to both case static message and localization value +* It allows static message or localization key * [abpSafeHtml](https://github.com/abpframework/abp/blob/37b59a7f05202264505d002397dbb27d275740e1/npm/ng-packs/packages/core/src/lib/pipes/safe-html.pipe.ts#L6) pipe will sanitize html values ```typescript From 71f2eb3f61868309d2c9b775f60de2c5a921416d Mon Sep 17 00:00:00 2001 From: Hamza Albreem <94292623+braim23@users.noreply.github.com> Date: Thu, 30 Mar 2023 13:13:15 +0300 Subject: [PATCH 75/89] Page Alerts Doc Tiny Fix --- docs/en/UI/Angular/Page-Alerts.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/UI/Angular/Page-Alerts.md b/docs/en/UI/Angular/Page-Alerts.md index 3d71723bf1..e486318dc2 100644 --- a/docs/en/UI/Angular/Page-Alerts.md +++ b/docs/en/UI/Angular/Page-Alerts.md @@ -63,10 +63,10 @@ this.service.show({ ## Render HTML content -We can pass html content to `title` and `message` parameters +We can pass html content to the `title` and `message` parameters -* It allows to both case static message and localization value -* [abpSafeHtml](https://github.com/abpframework/abp/blob/37b59a7f05202264505d002397dbb27d275740e1/npm/ng-packs/packages/core/src/lib/pipes/safe-html.pipe.ts#L6) pipe will sanitize html values +* It allows for both case static message and the localization value +* [abpSafeHtml](https://github.com/abpframework/abp/blob/37b59a7f05202264505d002397dbb27d275740e1/npm/ng-packs/packages/core/src/lib/pipes/safe-html.pipe.ts#L6) pipe will sanitize the html values ```typescript this.service.show({ From 0a7e3ef67b9d331e27fb34d58d4e213bdd0fee04 Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Thu, 30 Mar 2023 15:07:33 +0300 Subject: [PATCH 76/89] fix ngStyle types --- .../src/lib/components/checkbox/checkbox.component.ts | 7 ++++++- .../src/lib/components/form-input/form-input.component.ts | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts index db208354ba..ee2dd5aeac 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/checkbox/checkbox.component.ts @@ -33,7 +33,12 @@ export class FormCheckboxComponent extends AbstractNgModelComponent { @Input() label?: string; @Input() labelClass = 'form-check-label'; @Input() checkboxId!: string; - @Input() checkboxStyle = ''; + @Input() checkboxStyle: + | { + [klass: string]: any; + } + | null + | undefined; @Input() checkboxClass = 'form-check-input'; @Input() checkboxReadonly = false; @Output() checkboxBlur = new EventEmitter(); diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts index 23b18a5486..991383fe5a 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/form-input/form-input.component.ts @@ -37,7 +37,12 @@ export class FormInputComponent extends AbstractNgModelComponent { @Input() labelClass = 'form-label'; @Input() inputPlaceholder = ''; @Input() inputType = 'text'; - @Input() inputStyle = ''; + @Input() inputStyle: + | { + [klass: string]: any; + } + | null + | undefined; @Input() inputClass = 'form-control'; @Output() formBlur = new EventEmitter(); @Output() formFocus = new EventEmitter(); From f815aba4b877ef2085dc465319552241ce43c922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 30 Mar 2023 15:20:32 +0300 Subject: [PATCH 77/89] Add GetDbConnectionAsync and GetDbTransactionAsync methods to EF Core base repository class --- .../EntityFrameworkCore/EfCoreRepository.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs index e9e1f2c618..96d7b4111e 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs @@ -4,11 +4,13 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using System; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Linq.Dynamic.Core; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore.Storage; using Volo.Abp.Domain.Entities; using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore.DependencyInjection; @@ -73,6 +75,16 @@ public class EfCoreRepository : RepositoryBase, IE { return (await GetDbContextAsync()).Set(); } + + protected async Task GetDbConnectionAsync() + { + return (await GetDbContextAsync()).Database.GetDbConnection(); + } + + protected async Task GetDbTransactionAsync() + { + return (await GetDbContextAsync()).Database.CurrentTransaction?.GetDbTransaction(); + } protected virtual AbpEntityOptions AbpEntityOptions => _entityOptionsLazy.Value; From 9b3920ae263e41371b4225a7fdd3fdc29644fe6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 30 Mar 2023 16:37:40 +0300 Subject: [PATCH 78/89] Initial "Using Dapper with the ABP Framework" article. --- .../2023-03-20-Dapper/POST.md | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs/en/Community-Articles/2023-03-20-Dapper/POST.md diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/POST.md b/docs/en/Community-Articles/2023-03-20-Dapper/POST.md new file mode 100644 index 0000000000..0bea4b8ef9 --- /dev/null +++ b/docs/en/Community-Articles/2023-03-20-Dapper/POST.md @@ -0,0 +1,20 @@ +# Using Dapper with the ABP Framework + +[Dapper](https://github.com/DapperLib/Dapper) is a simple and lightweight object mapper for .NET. A key feature of Dapper is its [high performance](https://github.com/DapperLib/Dapper#performance) compared to other ORMs. In this article, I will show how to use it in your ABP projects. + +## When to use Dapper? + +In ABP Framework, we suggest to use Dapper in a combination with Entity Framework Core (EF Core) for the following reasons: + +* EF Core is much easier to use (you don't need to manually write SQL queries for example) +* EF Core abstracts different DBMS dialects, so it will be easier to change your DBMS later. +* EF Core is better compatible with Object Oriented Programming (OOP) practices and is more type safe to work with. So, EF Core code is more understandable and maintainable. + +In most of your use cases, you typically work with one or a few entities where the performance doesn't make much difference. However, there may be certain places in your application where it matters: + +* You may work with a lot of entities, so want to query faster. +* You may be performing too many database operations in a single request. +* EF Core may not create an optimized SQL query and you may want to manually write it for a better performance. + +In such cases, performance can be critical. Dapper can be a good choice if you want to easily write SQL queries and bind the result to your objects. + From 24b890a1790632b5be42e3e57594b939f2de32bb Mon Sep 17 00:00:00 2001 From: masumulu28 Date: Thu, 30 Mar 2023 16:58:22 +0300 Subject: [PATCH 79/89] localization resource added for 'AbpUi::OthersGroup' key --- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json | 5 +++-- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json | 3 ++- .../src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json | 5 +++-- .../Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json | 3 ++- .../Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json | 3 ++- 26 files changed, 66 insertions(+), 40 deletions(-) diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json index 4717b1fe9b..bcbab76211 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ar.json @@ -48,6 +48,7 @@ "Search": "بحث", "ItemWillBeDeletedMessageWithFormat": "سيتم حذف {0}!", "ItemWillBeDeletedMessage": "سوف يتم حذف هذا البند!", - "ManageYourAccount": "إدارة حسابك" + "ManageYourAccount": "إدارة حسابك", + "OthersGroup": "آخرون" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json index 1fe7ea6a23..5dc41952a6 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/cs.json @@ -48,6 +48,7 @@ "Search": "Vyhledávání", "ItemWillBeDeletedMessageWithFormat": "{0} bude smazáno!", "ItemWillBeDeletedMessage": "Tato položka bude smazána!", - "ManageYourAccount": "Spravujte svůj účet" + "ManageYourAccount": "Spravujte svůj účet", + "OthersGroup": "Jiný" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json index edb4f7563a..dc99f75586 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/de.json @@ -48,6 +48,7 @@ "Search": "Suche", "ItemWillBeDeletedMessageWithFormat": "{0} wird gelöscht!", "ItemWillBeDeletedMessage": "Dieses Element wird gelöscht!", - "ManageYourAccount": "Verwalten Sie Ihr Benutzerkonto" + "ManageYourAccount": "Verwalten Sie Ihr Benutzerkonto", + "OthersGroup":"Andere" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json index 6bba8ee140..24a7642eb0 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/el.json @@ -48,6 +48,7 @@ "Search": "Αναζήτηση", "ItemWillBeDeletedMessageWithFormat": "Το {0} θα διαγραφεί", "ItemWillBeDeletedMessage": "Αυτό το στοιχείο θα διαγραφεί!", - "ManageYourAccount": "Διαχείριση Λογαριασμού" + "ManageYourAccount": "Διαχείριση Λογαριασμού", + "OthersGroup":"άλλος" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json index a26c5ddf9e..4b88af7d26 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en-GB.json @@ -48,6 +48,7 @@ "Search": "Search", "ItemWillBeDeletedMessageWithFormat": "{0} will be deleted!", "ItemWillBeDeletedMessage": "This item will be deleted!", - "ManageYourAccount": "Manage your account" + "ManageYourAccount": "Manage your account", + "OthersGroup": "Other" } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json index 2a22849731..0f2b2f4423 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/en.json @@ -48,6 +48,7 @@ "Search": "Search", "ItemWillBeDeletedMessageWithFormat": "{0} will be deleted!", "ItemWillBeDeletedMessage": "This item will be deleted!", - "ManageYourAccount": "Manage your account" + "ManageYourAccount": "Manage your account", + "OthersGroup": "Other" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json index f2b40a785b..c28e8049bc 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/es.json @@ -48,6 +48,7 @@ "Search": "Buscar", "ItemWillBeDeletedMessageWithFormat": "{0} serán borrados!", "ItemWillBeDeletedMessage": "Este elemento será borrado", - "ManageYourAccount": "Administrar cuenta" + "ManageYourAccount": "Administrar cuenta", + "OthersGroup": "Otra" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json index c2f81b9c52..4fd179573b 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fa.json @@ -48,6 +48,7 @@ "Search": "جستجو", "ItemWillBeDeletedMessageWithFormat": "{0} حذف خواهد شد!", "ItemWillBeDeletedMessage": "این مورد حذف خواهد شد!", - "ManageYourAccount": "حساب خود را مدیریت کنید" + "ManageYourAccount": "حساب خود را مدیریت کنید", + "OthersGroup": "دیگر" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json index 1f5c6b7724..f5c5ee9d09 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fi.json @@ -48,6 +48,7 @@ "Search": "Hae", "ItemWillBeDeletedMessageWithFormat": "{0} poistetaan!", "ItemWillBeDeletedMessage": "Tämä kohde poistetaan!", - "ManageYourAccount": "Hallitse tiliäsi" + "ManageYourAccount": "Hallitse tiliäsi", + "OthersGroup": "Muut" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json index 0fc43162b2..b850315dfe 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/fr.json @@ -48,6 +48,7 @@ "Search": "Recherche", "ItemWillBeDeletedMessageWithFormat": "{0} sera supprimé!", "ItemWillBeDeletedMessage": "Cet objet va être supprimé!", - "ManageYourAccount": "Gérer votre compte" + "ManageYourAccount": "Gérer votre compte", + "OthersGroup": "Autre" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json index 2c451bc797..0a20f1dcbb 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hi.json @@ -48,6 +48,7 @@ "Search": "खोज", "ItemWillBeDeletedMessageWithFormat": "{0} हटा दिया जाएगा!", "ItemWillBeDeletedMessage": "यह आइटम हटा दिया जाएगा!", - "ManageYourAccount": "अपने खाते का प्रबंधन" + "ManageYourAccount": "अपने खाते का प्रबंधन", + "OthersGroup": "अन्य" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json index 9cbef79b12..a6285a4cee 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hr.json @@ -48,6 +48,7 @@ "Search": "Pretraga", "ItemWillBeDeletedMessageWithFormat": "{0} zapis će biti obrisan!", "ItemWillBeDeletedMessage": "Ovaj zapis će biti obrisan!", - "ManageYourAccount": "Upravljaj korisničkim računom" + "ManageYourAccount": "Upravljaj korisničkim računom", + "OthersGroup": "Drugi" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json index 595e2f8b62..98c0c46f54 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/hu.json @@ -48,6 +48,7 @@ "Search": "Keresés", "ItemWillBeDeletedMessageWithFormat": "{0} törlésre kerül!", "ItemWillBeDeletedMessage": "Ez az elem törlődik!", - "ManageYourAccount": "Kezelje fiókját" + "ManageYourAccount": "Kezelje fiókját", + "OthersGroup": "Egyéb" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json index a931570496..12b1565c2e 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/is.json @@ -48,6 +48,7 @@ "Search": "Leita", "ItemWillBeDeletedMessageWithFormat": "{0} verður eytt!", "ItemWillBeDeletedMessage": "Þessum lið verður eytt!", - "ManageYourAccount": "Stillingar notandaaðgangs" + "ManageYourAccount": "Stillingar notandaaðgangs", + "OthersGroup": "Annað" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json index 3c4328619e..f07bf67e2d 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/it.json @@ -48,6 +48,7 @@ "Search": "Ricerca", "ItemWillBeDeletedMessageWithFormat": "{0} sarà eliminato!", "ItemWillBeDeletedMessage": "Questo elemento sarà eliminato!", - "ManageYourAccount": "Gestisci il tuo account" + "ManageYourAccount": "Gestisci il tuo account", + "OthersGroup": "Altra" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json index d23d2356b4..5875fe07b9 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/nl.json @@ -48,6 +48,7 @@ "Search": "Zoeken", "ItemWillBeDeletedMessageWithFormat": "{0} wordt verwijderd!", "ItemWillBeDeletedMessage": "Dit item wordt verwijderd!", - "ManageYourAccount": "Beheer uw account" + "ManageYourAccount": "Beheer uw account", + "OthersGroup": "Ander" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json index e7cd503b4f..f2b8227137 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pl-PL.json @@ -48,6 +48,7 @@ "Search": "Szukaj", "ItemWillBeDeletedMessageWithFormat": "{0} zostanie usunięty!", "ItemWillBeDeletedMessage": "Ten element zostanie usunięty!", - "ManageYourAccount": "Zarządzaj kontem" + "ManageYourAccount": "Zarządzaj kontem", + "OthersGroup": "Inny" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json index 03855ec698..928c9299fb 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/pt-BR.json @@ -48,6 +48,7 @@ "Search": "Procurar", "ItemWillBeDeletedMessageWithFormat": "{0} será excluído!", "ItemWillBeDeletedMessage": "Este item será excluído!", - "ManageYourAccount": "Gerenciar sua conta" + "ManageYourAccount": "Gerenciar sua conta", + "OthersGroup": "Outra" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json index 7064064671..544b893c39 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ro-RO.json @@ -48,6 +48,7 @@ "Search": "Caută", "ItemWillBeDeletedMessageWithFormat": "{0} va fi şters!", "ItemWillBeDeletedMessage": "Acest articol va fi şters!", - "ManageYourAccount": "Administraţi-vă contul" + "ManageYourAccount": "Administraţi-vă contul", + "OthersGroup": "Alte" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json index dc648a2138..66f24ca65d 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/ru.json @@ -48,6 +48,7 @@ "Search": "поиск", "ItemWillBeDeletedMessageWithFormat": "{0} будет удален!", "ItemWillBeDeletedMessage": "Этот предмет будет удален!", - "ManageYourAccount": "Настройте свой аккаунт" + "ManageYourAccount": "Настройте свой аккаунт", + "OthersGroup": "Другой" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json index 59b2628310..28278f04f2 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sk.json @@ -48,6 +48,7 @@ "Search": "Hľadať", "ItemWillBeDeletedMessageWithFormat": "{0} sa vymaže!", "ItemWillBeDeletedMessage": "Táto položka bude vymazaná!", - "ManageYourAccount": "Spravovať svoje konto" + "ManageYourAccount": "Spravovať svoje konto", + "OthersGroup": "Iné" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json index 7a50fbaf25..c05c1dc202 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/sl.json @@ -48,6 +48,7 @@ "Search": "Iskanje", "ItemWillBeDeletedMessageWithFormat": "{0} bo izbrisan!", "ItemWillBeDeletedMessage": "Ta element bo izbrisan!", - "ManageYourAccount": "Upravljajte svoj račun" + "ManageYourAccount": "Upravljajte svoj račun", + "OthersGroup": "Ostalo" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json index 67ae56793a..fa2f3561f2 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/tr.json @@ -48,6 +48,7 @@ "Search": "Arama", "ItemWillBeDeletedMessageWithFormat": "{0} silinecektir!", "ItemWillBeDeletedMessage": "Bu nesne silinecektir!", - "ManageYourAccount": "Hesap yönetimi" + "ManageYourAccount": "Hesap yönetimi", + "OthersGroup": "Diğer" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json index 4062990743..1b8bc5fb5b 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/vi.json @@ -48,6 +48,7 @@ "Search": "Tìm kiếm", "ItemWillBeDeletedMessageWithFormat": "{0} sẽ bị xóa!", "ItemWillBeDeletedMessage": "Vật phẩm này sẽ bị xoá!", - "ManageYourAccount": "Quản lý tài khoản của bạn" + "ManageYourAccount": "Quản lý tài khoản của bạn", + "OthersGroup": "Khác" } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json index 7c9d2798ff..133faa7386 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hans.json @@ -48,6 +48,7 @@ "Search": "搜索", "ItemWillBeDeletedMessageWithFormat": "{0} 将被删除!", "ItemWillBeDeletedMessage": "此项将被删除!", - "ManageYourAccount": "管理你的账户" + "ManageYourAccount": "管理你的账户", + "OthersGroup": "其他" } } diff --git a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json index 449dd67480..7bac7da3b8 100644 --- a/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json +++ b/framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/zh-Hant.json @@ -48,6 +48,7 @@ "Search": "查詢", "ItemWillBeDeletedMessageWithFormat": "{0} 將被刪除!", "ItemWillBeDeletedMessage": "此項目將被刪除!", - "ManageYourAccount": "管理個人帳號" + "ManageYourAccount": "管理個人帳號", + "OthersGroup": "其他" } } From a1c0f207b77ad0343fa101c3a7db99179bc4c894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 30 Mar 2023 17:14:10 +0300 Subject: [PATCH 80/89] added sections to dapper article --- .../2023-03-20-Dapper/POST.md | 76 +++++++++++++++++-- 1 file changed, 71 insertions(+), 5 deletions(-) diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/POST.md b/docs/en/Community-Articles/2023-03-20-Dapper/POST.md index 0bea4b8ef9..4fae76c4bb 100644 --- a/docs/en/Community-Articles/2023-03-20-Dapper/POST.md +++ b/docs/en/Community-Articles/2023-03-20-Dapper/POST.md @@ -1,20 +1,86 @@ # Using Dapper with the ABP Framework -[Dapper](https://github.com/DapperLib/Dapper) is a simple and lightweight object mapper for .NET. A key feature of Dapper is its [high performance](https://github.com/DapperLib/Dapper#performance) compared to other ORMs. In this article, I will show how to use it in your ABP projects. +[Dapper](https://github.com/DapperLib/Dapper) is a simple and lightweight object mapper for .NET. A key feature of Dapper is its [high performance](https://github.com/DapperLib/Dapper#performance) compared to other ORMs. In this article, I will show how to use it in your ABP projects. But, first look at when to use it. + +### Source Code + +You can find the [full source code of the demo application here](https://github.com/abpframework/abp-samples/tree/master/Dapper). ## When to use Dapper? In ABP Framework, we suggest to use Dapper in a combination with Entity Framework Core (EF Core) for the following reasons: -* EF Core is much easier to use (you don't need to manually write SQL queries for example) +* EF Core is much easier to use (you don't need to manually write SQL queries and work with low level database objects). * EF Core abstracts different DBMS dialects, so it will be easier to change your DBMS later. +* EF Core's change tracking system automatically update changes in the database. * EF Core is better compatible with Object Oriented Programming (OOP) practices and is more type safe to work with. So, EF Core code is more understandable and maintainable. -In most of your use cases, you typically work with one or a few entities where the performance doesn't make much difference. However, there may be certain places in your application where it matters: +In most of your use cases, you typically work with one or a few entities and a maintainable codebase can be chosen instead of slight performance difference. However, there may be certain places in your application where it matters: -* You may work with a lot of entities, so want to query faster. +* You may work with a lot of entities, so want to query faster (Indeed, EF Core's [AsNoTracking()](https://learn.microsoft.com/en-us/ef/core/querying/tracking) extension can help in most cases). * You may be performing too many database operations in a single request. * EF Core may not create an optimized SQL query and you may want to manually write it for a better performance. -In such cases, performance can be critical. Dapper can be a good choice if you want to easily write SQL queries and bind the result to your objects. +For such cases, Dapper can be a good choice. You can easily write SQL queries and bind the result to your objects. + +## Setting Up the Entity Framework Core Part + +We will use EF Core with Dapper, so we need to configure the EF Core first. I will use the following `Book` entity as an example: + +````csharp +public class Book : AuditedAggregateRoot +{ + public string Name { get; set; } + public DateTime PublishDate { get; set; } + public float Price { get; set; } +} +```` + +Once I created the `Book` entity, I should add it to my `DbContext` class. + +````csharp +public class DapperDemoDbContext : AbpDbContext +{ + // 1 - ADD A DBSET PROPERTY + public DbSet Books { get; set; } + + public DapperDemoDbContext(DbContextOptions options) + : base(options) + { + } + + protected override void OnModelCreating(ModelBuilder builder) + { + //...other code parts + + // 1 - MAP YOUR ENTITY TO THE DATABASE TABLE + builder.Entity(b => + { + b.ToTable("Books"); + b.Property(x => x.Name).IsRequired().HasMaxLength(128); + }); + } +} + +```` + +TODO: database migrations... + +## Using Dapper Without the Integration Package + +ABP provides an integration package for Dapper. However, first I want to show using Dapper without the integration package. + +### Installing the Dapper Package + +First, install the [Dapper](https://www.nuget.org/packages/Dapper) package to your project. You can use a command-line terminal, locate the root path of your project (`.csproj` file that you want to install it) and run the following command: + +````bash +dotnet add package Dapper +```` + +> If your application is layered, then we suggest to add the `Dapper` package to your `EntityFrameworkCore` integration project in your solution. + + + +s From 301797568917c7c112aee087d9faff3a9c6dd4cf Mon Sep 17 00:00:00 2001 From: selman koc <64414348+skoc10@users.noreply.github.com> Date: Thu, 30 Mar 2023 22:40:32 +0300 Subject: [PATCH 81/89] Update pack.ps1 --- nupkg/pack.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nupkg/pack.ps1 b/nupkg/pack.ps1 index ed4dc4630a..fbe4a864ad 100644 --- a/nupkg/pack.ps1 +++ b/nupkg/pack.ps1 @@ -23,8 +23,8 @@ foreach($project in $projects) { # Create nuget pack Write-Info "[$i / $projectsCount] - Packing project: $projectName" Set-Location $projectFolder - dotnet clean - dotnet pack -c Release +# dotnet clean + dotnet pack -c Release /maxcpucount if (-Not $?) { Write-Error "Packaging failed for the project: $projectName" @@ -40,4 +40,4 @@ foreach($project in $projects) { } # Go back to the pack folder -Set-Location $packFolder \ No newline at end of file +Set-Location $packFolder From 7ca5d57ddff49f1c5716dc278a1c8631503ae6b2 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 31 Mar 2023 14:53:51 +0800 Subject: [PATCH 82/89] Redirect to current url after `SignOut` cookies. --- .../AbpAspNetCoreMultiTenancyOptions.cs | 36 ++++++++++++------- .../MultiTenancy/MultiTenancyMiddleware.cs | 8 +++++ 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs index f4820073fd..4defb2dd6a 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs @@ -4,7 +4,9 @@ using System.Net; using System.Text.Encodings.Web; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http.Extensions; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.MultiTenancy; @@ -28,6 +30,7 @@ public class AbpAspNetCoreMultiTenancyOptions TenantKey = TenantResolverConsts.DefaultTenantKey; MultiTenancyMiddlewareErrorPageBuilder = async (context, exception) => { + var isCookieAuthentication = false; var tenantResolveResult = context.RequestServices.GetRequiredService().Result; if (tenantResolveResult != null) { @@ -37,10 +40,11 @@ public class AbpAspNetCoreMultiTenancyOptions if (authenticationType != null) { var scheme = await context.RequestServices.GetRequiredService().GetHandlerAsync(context, authenticationType); - if (scheme is IAuthenticationSignOutHandler signOutHandler) + if (scheme is CookieAuthenticationHandler cookieAuthenticationHandler) { // Try to delete the authentication's cookie if it does not exist or is inactive. - await signOutHandler.SignOutAsync(null); + await cookieAuthenticationHandler.SignOutAsync(null); + isCookieAuthentication = true; } } } @@ -54,19 +58,27 @@ public class AbpAspNetCoreMultiTenancyOptions } } - context.Response.Headers.Add("Abp-Tenant-Resolve-Error", exception.Message); - context.Response.StatusCode = (int)HttpStatusCode.NotFound; - context.Response.ContentType = "text/html"; + if (isCookieAuthentication) + { + context.Response.Headers.Add("Abp-Tenant-Resolve-Error", exception.Message); + context.Response.Redirect(context.Request.GetEncodedUrl()); + } + else + { + context.Response.Headers.Add("Abp-Tenant-Resolve-Error", exception.Message); + context.Response.StatusCode = (int)HttpStatusCode.NotFound; + context.Response.ContentType = "text/html"; - var message = exception.Message; - var details = exception is BusinessException businessException ? businessException.Details : string.Empty; + var message = exception.Message; + var details = exception is BusinessException businessException ? businessException.Details : string.Empty; - await context.Response.WriteAsync($"\r\n"); - await context.Response.WriteAsync($"

{HtmlEncoder.Default.Encode(message)}

{HtmlEncoder.Default.Encode(details)}
\r\n"); - await context.Response.WriteAsync("\r\n"); + await context.Response.WriteAsync($"\r\n"); + await context.Response.WriteAsync($"

{HtmlEncoder.Default.Encode(message)}

{HtmlEncoder.Default.Encode(details)}
\r\n"); + await context.Response.WriteAsync("\r\n"); - // Note the 500 spaces are to work around an IE 'feature' - await context.Response.WriteAsync(new string(' ', 500)); + // Note the 500 spaces are to work around an IE 'feature' + await context.Response.WriteAsync(new string(' ', 500)); + } return true; }; diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs index 00b3f87056..89ae55b3b1 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs @@ -5,6 +5,8 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.RequestLocalization; using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; using Volo.Abp.Localization; @@ -15,6 +17,8 @@ namespace Volo.Abp.AspNetCore.MultiTenancy; public class MultiTenancyMiddleware : IMiddleware, ITransientDependency { + public ILogger Logger { get; set; } + private readonly ITenantConfigurationProvider _tenantConfigurationProvider; private readonly ICurrentTenant _currentTenant; private readonly AbpAspNetCoreMultiTenancyOptions _options; @@ -26,6 +30,8 @@ public class MultiTenancyMiddleware : IMiddleware, ITransientDependency IOptions options, ITenantResolveResultAccessor tenantResolveResultAccessor) { + Logger = NullLogger.Instance; + _tenantConfigurationProvider = tenantConfigurationProvider; _currentTenant = currentTenant; _tenantResolveResultAccessor = tenantResolveResultAccessor; @@ -41,6 +47,8 @@ public class MultiTenancyMiddleware : IMiddleware, ITransientDependency } catch (Exception e) { + Logger.LogException(e); + if (await _options.MultiTenancyMiddlewareErrorPageBuilder(context, e)) { return; From f5df5811bf30f2a426b4d3b99f773c26f26e3214 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 31 Mar 2023 17:06:58 +0800 Subject: [PATCH 83/89] Update AbpAspNetCoreMultiTenancyOptions.cs --- .../AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs index 4defb2dd6a..5956e4f7d3 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/AbpAspNetCoreMultiTenancyOptions.cs @@ -58,7 +58,7 @@ public class AbpAspNetCoreMultiTenancyOptions } } - if (isCookieAuthentication) + if (isCookieAuthentication && context.Request.Method.Equals("Get", StringComparison.OrdinalIgnoreCase) && !context.Request.IsAjax()) { context.Response.Headers.Add("Abp-Tenant-Resolve-Error", exception.Message); context.Response.Redirect(context.Request.GetEncodedUrl()); From 4ffaeb85bf69a9661edd2f64675e6a23cfdbdda8 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Fri, 31 Mar 2023 16:58:11 +0300 Subject: [PATCH 84/89] fix unit test for pipeline --- nupkg/pack.ps1 | 4 ++-- nupkg/unit_test.ps1 | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/nupkg/pack.ps1 b/nupkg/pack.ps1 index fbe4a864ad..d1eb9d66e7 100644 --- a/nupkg/pack.ps1 +++ b/nupkg/pack.ps1 @@ -23,8 +23,8 @@ foreach($project in $projects) { # Create nuget pack Write-Info "[$i / $projectsCount] - Packing project: $projectName" Set-Location $projectFolder -# dotnet clean - dotnet pack -c Release /maxcpucount + #dotnet clean + dotnet pack -c Release --no-build if (-Not $?) { Write-Error "Packaging failed for the project: $projectName" diff --git a/nupkg/unit_test.ps1 b/nupkg/unit_test.ps1 index 07cdfe3655..d0727c93fd 100644 --- a/nupkg/unit_test.ps1 +++ b/nupkg/unit_test.ps1 @@ -4,7 +4,5 @@ foreach($solution in $solutions) { $solutionFolder = Join-Path $rootFolder $solution Set-Location $solutionFolder - dotnet test --no-build --logger trx - - + dotnet test --configuration Release --logger trx -- /maxcpucount } From f56969f13ba732352274120813a2e23a113f3670 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Fri, 31 Mar 2023 23:31:38 +0300 Subject: [PATCH 85/89] added maxcpucount --- build/build-all-release.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build-all-release.ps1 b/build/build-all-release.ps1 index f54912d4f5..31aed989cd 100644 --- a/build/build-all-release.ps1 +++ b/build/build-all-release.ps1 @@ -5,7 +5,7 @@ foreach ($solutionPath in $solutionPaths) { $solutionAbsPath = (Join-Path $rootFolder $solutionPath) Set-Location $solutionAbsPath - dotnet build --configuration Release + dotnet build --configuration Release -- /maxcpucount if (-Not $?) { Write-Host ("Build failed for the solution: " + $solutionPath) Set-Location $rootFolder From 1431f62c72784b67aeb89fb24b404b7a61de7ec4 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Fri, 31 Mar 2023 23:31:58 +0300 Subject: [PATCH 86/89] --no-build --- nupkg/pack.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nupkg/pack.ps1 b/nupkg/pack.ps1 index fbe4a864ad..7723c93842 100644 --- a/nupkg/pack.ps1 +++ b/nupkg/pack.ps1 @@ -23,8 +23,8 @@ foreach($project in $projects) { # Create nuget pack Write-Info "[$i / $projectsCount] - Packing project: $projectName" Set-Location $projectFolder -# dotnet clean - dotnet pack -c Release /maxcpucount +# dotnet clean + dotnet pack -c Release --no-build if (-Not $?) { Write-Error "Packaging failed for the project: $projectName" From 91faa7291472744b76111c21aeedf613b2bc48f0 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Fri, 31 Mar 2023 23:32:02 +0300 Subject: [PATCH 87/89] Update unit_test.ps1 --- nupkg/unit_test.ps1 | 2 -- 1 file changed, 2 deletions(-) diff --git a/nupkg/unit_test.ps1 b/nupkg/unit_test.ps1 index 07cdfe3655..f081dd1e2f 100644 --- a/nupkg/unit_test.ps1 +++ b/nupkg/unit_test.ps1 @@ -5,6 +5,4 @@ foreach($solution in $solutions) { $solutionFolder = Join-Path $rootFolder $solution Set-Location $solutionFolder dotnet test --no-build --logger trx - - } From 6e3b8936560e52e1a2d62ed3de2f3de5fa790ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sat, 1 Apr 2023 01:00:26 +0300 Subject: [PATCH 88/89] Completed the Dapper article --- .../2023-03-20-Dapper/POST.md | 223 +++++++++++++++++- .../2023-03-20-Dapper/book-class-in-rider.png | Bin 0 -> 8029 bytes .../2023-03-20-Dapper/book-database-table.png | Bin 0 -> 8340 bytes .../2023-03-20-Dapper/book-table-data.png | Bin 0 -> 8119 bytes .../2023-03-20-Dapper/list-of-books.png | Bin 0 -> 9642 bytes 5 files changed, 217 insertions(+), 6 deletions(-) create mode 100644 docs/en/Community-Articles/2023-03-20-Dapper/book-class-in-rider.png create mode 100644 docs/en/Community-Articles/2023-03-20-Dapper/book-database-table.png create mode 100644 docs/en/Community-Articles/2023-03-20-Dapper/book-table-data.png create mode 100644 docs/en/Community-Articles/2023-03-20-Dapper/list-of-books.png diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/POST.md b/docs/en/Community-Articles/2023-03-20-Dapper/POST.md index 4fae76c4bb..9860013766 100644 --- a/docs/en/Community-Articles/2023-03-20-Dapper/POST.md +++ b/docs/en/Community-Articles/2023-03-20-Dapper/POST.md @@ -15,7 +15,7 @@ In ABP Framework, we suggest to use Dapper in a combination with Entity Framewor * EF Core's change tracking system automatically update changes in the database. * EF Core is better compatible with Object Oriented Programming (OOP) practices and is more type safe to work with. So, EF Core code is more understandable and maintainable. -In most of your use cases, you typically work with one or a few entities and a maintainable codebase can be chosen instead of slight performance difference. However, there may be certain places in your application where it matters: +In most of your use cases, you typically work with one or a few entities and a maintainable codebase can be chosen instead of a slight performance difference. However, there may be certain places in your application where it matters: * You may work with a lot of entities, so want to query faster (Indeed, EF Core's [AsNoTracking()](https://learn.microsoft.com/en-us/ef/core/querying/tracking) extension can help in most cases). * You may be performing too many database operations in a single request. @@ -23,6 +23,32 @@ In most of your use cases, you typically work with one or a few entities and a m For such cases, Dapper can be a good choice. You can easily write SQL queries and bind the result to your objects. +## Creating a new ABP Solution + +To demonstrate the Dapper usage, I've created an ABP solution. You can find the [full source code of the demo application here](https://github.com/abpframework/abp-samples/tree/master/Dapper). If you want to create the same solution from scratch, follow the steps below: + +Install the ABP CLI if you haven't installed it before: + +````bash +dotnet tool install -g Volo.Abp.Cli +```` + +Create a new solution with the ABP Framework's non-layered startup template with MVC UI and EF Core database: + +```` +abp new DapperDemo -t app-nolayers +```` + +> The startup template or a different UI selection don't matter for this article. I selected these options to keep the demo solution simple. + +After creating the solution, run the following command to migrate the database (run the command in the folder of the `.csproj` file: + +````csharp +dotnet run --migrate-database +```` + +> If you've created a layered solution, then run the `DbMigrator` application inside the solution. If you have trouble by creating the solution, please refer to the [Quick Start](https://docs.abp.io/en/abp/latest/Tutorials/Todo/Single-Layer/Index) document. + ## Setting Up the Entity Framework Core Part We will use EF Core with Dapper, so we need to configure the EF Core first. I will use the following `Book` entity as an example: @@ -36,12 +62,16 @@ public class Book : AuditedAggregateRoot } ```` -Once I created the `Book` entity, I should add it to my `DbContext` class. +If you are using a layered solution, entities are located in the `Domain` project. For my demo solution, I just placed it in the `Entities` folder of the single project: + +![book-class-in-rider](book-class-in-rider.png) + +Once I created the `Book` entity, I should add it to my `DbContext` class: ````csharp public class DapperDemoDbContext : AbpDbContext { - // 1 - ADD A DBSET PROPERTY + // 1: ADD A DBSET PROPERTY public DbSet Books { get; set; } public DapperDemoDbContext(DbContextOptions options) @@ -53,7 +83,7 @@ public class DapperDemoDbContext : AbpDbContext { //...other code parts - // 1 - MAP YOUR ENTITY TO THE DATABASE TABLE + // 2: MAP YOUR ENTITY TO A DATABASE TABLE builder.Entity(b => { b.ToTable("Books"); @@ -64,7 +94,77 @@ public class DapperDemoDbContext : AbpDbContext ```` -TODO: database migrations... +Now, we can add a new database migration: + +````bash +dotnet ef migrations add Added_Book +```` + +And apply changes to database: + +````bash +dotnet ef database update +```` + +At this point, you should see the Books table if you check your database: + +![book-database-table](book-database-table.png) + +> As you see, the `Books` table contains more fields than the `Book` entity's property count. Other properties are inherited from the `AuditedAggregateRoot` table. You could inherit from the `BasicAggregateRoot` class if you don't want these properties. + +## Seeding the Database + +ABP's [data seeding](https://docs.abp.io/en/abp/latest/Data-Seeding) system is a great way to add some test data to the database. The following class inserts two books to the `Books` table when I migrate the database: + +````csharp +public class DapperDemoDataSeederContributor : IDataSeedContributor, ITransientDependency +{ + private readonly IRepository _bookRepository; + + public DapperDemoDataSeederContributor(IRepository bookRepository) + { + _bookRepository = bookRepository; + } + + public async Task SeedAsync(DataSeedContext context) + { + if (await _bookRepository.GetCountAsync() > 0) + { + return; + } + + await _bookRepository.InsertAsync( + new Book + { + Name = "1984", + PublishDate = new DateTime(1949, 6, 8), + Price = 19.84f + } + ); + + await _bookRepository.InsertAsync( + new Book + { + Name = "The Hitchhiker's Guide to the Galaxy", + PublishDate = new DateTime(1995, 9, 27), + Price = 42.0f + } + ); + } +} +```` + +After creating the `DapperDemoDataSeederContributor` class, I can re-run the following command: + +````bash +dotnet run --migrate-database +```` + +Now, I can see the records in the database: + +![book-table-data](book-table-data.png) + +Now, all ready to try Dapper to query from the `Books` table. ## Using Dapper Without the Integration Package @@ -80,7 +180,118 @@ dotnet add package Dapper > If your application is layered, then we suggest to add the `Dapper` package to your `EntityFrameworkCore` integration project in your solution. +### Executing a Dapper Query + +I will query from the `Books` table, but I don't want to use the `Book` entity to map the result (because I don't need to all properties). So, I am creating a new class for the query result: +````csharp +public class BookDataView +{ + public Guid Id { get; set; } + public string Name { get; set; } + public float Price { get; set; } +} +```` + +Now, we can use Dapper's `QueryAsync` extension method as shown below: + +````csharp +public class DemoService : ITransientDependency +{ + private readonly IRepository _bookRepository; + + public DemoService(IRepository bookRepository) + { + _bookRepository = bookRepository; + } + + [UnitOfWork] + public virtual async Task> GetListAsync() + { + var database = (await _bookRepository.GetDbContextAsync()).Database; + var dbConnection = database.GetDbConnection(); + var dbTransaction = database.CurrentTransaction?.GetDbTransaction(); + + var queryResult = await dbConnection.QueryAsync( + "SELECT Id, Name, Price FROM Books", + transaction: dbTransaction + ); + + return queryResult.ToList(); + } +} +```` + +Let's examine that class: + +* I am injecting ABP's standard [generic repository](https://docs.abp.io/en/abp/latest/Repositories) service in to the `DemoService` constructor. +* `_bookRepository.GetDbContextAsync()` returns the underlying `DbContext` object of EF Core. We need to have the [Volo.Abp.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.EntityFrameworkCore) package reference to be able to access that method. If you have created a single-layer solution, the reference does already exists. If you have created a layered solution you may need to manually add this package to the project that contains the `DemoService` class. Because the layered solution isolates the EF Core dependency from rest of the solution. +* Dapper needs a `DbConnection` and a `DbTransaction` object (as optional) to execute a query. We are getting them over the `database` object obtained from the `DbContext`. We suggest to always pass the current `DbTransaction` object while working with Dapper. Because, if there is a database transaction on the same database connection that you execute queries, and you don't pass the transaction object, you get an exception. +* Finally, we can use Dapper's `QueryAsync` extension method to execute the database query. +* Notice that the `GetListAsync` method is made as `virtual` and marked with `UnitOfWork` attribute to enable the [Unit Of Work](https://docs.abp.io/en/abp/latest/Unit-Of-Work) for that method. It ensures the database connection is available in the body of the `GetListAsync` method. + +That's all. You can execute any Dapper operation using the `DbConnection` and `DbTransaction` objects obtained from the `_bookRepository` object. Please refer to Dapper's documentation for other operations. + +> We've obtained the `DbContext` object from a repository. However, a repository is not required to obtain a `DbContext`. Instead, you could inject the `IDbContextProvider` service (`IDbContextProvider` for this demo) and call its `GetDbContextAsync` method. + +## Using the Volo.Abp.Dapper Package + +In the previous section, you saw that you don't need to an ABP integration package to be able to use Dapper in your ABP applications. However, there is an integration package here: [Volo.Abp.Dapper](https://www.nuget.org/packages/Volo.Abp.Dapper). Actually, that package doesn't contain much services. It just provides a convenient base class to create Dapper based repository classes. + +### Installing the Volo.Abp.Dapper Package + +You can use [ABP CLI](https://docs.abp.io/en/abp/latest/CLI#add-package) to easily install ABP packages to your projects. Execute the following command in the folder of `.csproj` you want to install the package: + +```` +abp add-package Volo.Abp.Dapper +```` + +> You can check the [ABP Dapper document](https://docs.abp.io/en/abp/latest/Dapper) for alternative installation options. + +### Creating a Repository Class + +In the `DemoService` example, we have used database objects out of a [repository](https://docs.abp.io/en/abp/latest/Repositories) class. If you want to implement layering your solution and abstracting database operations, it can be better to create a repository class to execute Dapper operations. + +Here, a repository class that executes the same database query: + +````csharp +public class BookRepository : DapperRepository, ITransientDependency +{ + public BookRepository(IDbContextProvider dbContextProvider) + : base(dbContextProvider) + { + } + + public virtual async Task> GetListAsync() + { + var connection = await GetDbConnectionAsync(); + var queryResult = await connection.QueryAsync( + "SELECT Id, Name, Price FROM Books", + transaction: await GetDbTransactionAsync() + ); + return queryResult.ToList(); + } +} +```` + +Let's examine that class: + +* It inherits from the `DapperRepository` class, which provides useful methods and properties for database operations. It also implements the `IUnitOfWorkEnabled` interface, so ABP makes the database connection (and transaction if requested) available in the method body by implementing dynamic proxies (a.k.a. interception). +* `GetListAsync` method made `virtual`. That's needed to make the interception process working. It wouldn't be needed if we introduce `IBookRepository` for that class and always use it by injecting the `BookRepository` class (in this case, it will use interface proxying - however, this is too much details for the purpose of this article). +* We are using the `GetDbConnectionAsync` and `GetDbTransactionAsync` methods to obtain the current database connection and transaction (that is managed by ABP's [unit of work](https://docs.abp.io/en/abp/latest/Unit-Of-Work) system). + +You can then inject the `BookRepository` class when you want to get a list of `BookDataView` whenever it is needed. In the demo project, I used it inside the `IndexModel.cshtml.cs` to show a list of books on the page: + +![list-of-books](list-of-books.png) + +## Conclusion + +In this article, I've explained ABP's Dapper integration and demonstrated how you can execute Dapper operations in your applications. I suggest to use Dapper when it is really needed and adds any significant value (generally a performance gain) to your application. Otherwise, EF Core is much more convenient for most of the database operations and you will have a more maintainable codebase using EF Core. + +## Source Code + +You can find the [full source code of the demo application here](https://github.com/abpframework/abp-samples/tree/master/Dapper). -s +## See Also +* [ABP Dapper documentation](https://docs.abp.io/en/abp/latest/Dapper) diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/book-class-in-rider.png b/docs/en/Community-Articles/2023-03-20-Dapper/book-class-in-rider.png new file mode 100644 index 0000000000000000000000000000000000000000..db1e5791b4e9531406a19314749dcbfa16514e82 GIT binary patch literal 8029 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 GgZ>u}*>^|) literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/list-of-books.png b/docs/en/Community-Articles/2023-03-20-Dapper/list-of-books.png new file mode 100644 index 0000000000000000000000000000000000000000..23b190afa640204eaefd766040d5b05c704bcd01 GIT binary patch literal 9642 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 Date: Sat, 1 Apr 2023 01:10:41 +0300 Subject: [PATCH 89/89] Update POST.md --- docs/en/Community-Articles/2023-03-20-Dapper/POST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Community-Articles/2023-03-20-Dapper/POST.md b/docs/en/Community-Articles/2023-03-20-Dapper/POST.md index 9860013766..11007239e5 100644 --- a/docs/en/Community-Articles/2023-03-20-Dapper/POST.md +++ b/docs/en/Community-Articles/2023-03-20-Dapper/POST.md @@ -35,7 +35,7 @@ dotnet tool install -g Volo.Abp.Cli Create a new solution with the ABP Framework's non-layered startup template with MVC UI and EF Core database: -```` +````bash abp new DapperDemo -t app-nolayers ````

3fF%elkRZhLH@Y&$jvI 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≤H`OF1Z2M0|m)ofXkK46`y6J7q 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 D?X}BK literal 0 HcmV?d00001 diff --git a/docs/en/UI/Angular/images/abp-card-list-group.png b/docs/en/UI/Angular/images/abp-card-list-group.png new file mode 100644 index 0000000000000000000000000000000000000000..aa7b74664722d5f473cc020f28b5066f62edaff6 GIT binary patch literal 7109 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 literal 0 HcmV?d00001 diff --git a/docs/en/UI/Angular/images/abp-card-title-text-link.png b/docs/en/UI/Angular/images/abp-card-title-text-link.png new file mode 100644 index 0000000000000000000000000000000000000000..af7d00992957ea53499c3c973e998d1e8c26280f GIT binary patch literal 20468 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 literal 0 HcmV?d00001 From 22668a2a54da7cddd87a9121f9bab751c30af84b Mon Sep 17 00:00:00 2001 From: Ebicoglu Date: Thu, 9 Mar 2023 16:50:19 +0300 Subject: [PATCH 14/89] refactored --- .../Form/AbpDynamicformTagHelperService.cs | 36 +-- .../DatePicker/AbpDatePickerBaseTagHelper.cs | 7 +- .../Form/DatePicker/AbpDatePickerDrops.cs | 8 +- .../Form/DatePicker/AbpDatePickerOpens.cs | 12 +- .../AbpDatePickerTagHelperService.cs | 23 +- .../DatePicker/AbpDatePickerWeekNumbers.cs | 8 +- .../DatePicker/AbpDateRangePickerTagHelper.cs | 5 +- .../AbpDateRangePickerTagHelperService.cs | 45 ++-- .../DatePicker/DatePickerOptionsAttribute.cs | 2 +- .../DatePicker/DateRangePickerAttribute.cs | 5 +- .../Form/DatePicker/IAbpDatePickerOptions.cs | 117 ++++++--- .../bootstrap/dom-event-handlers.js | 226 +++++++++--------- 12 files changed, 285 insertions(+), 209 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs index 17383b46d6..775b19beb1 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs @@ -179,34 +179,37 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService(); var pickerId = modelAttribute.PickerId; - var otherModel = TagHelper.Model.ModelExplorer.Properties.SingleOrDefault(x => - x != model.ModelExplorer && x.GetAttribute()?.PickerId == pickerId); - var otherModelAttribute = otherModel?.GetAttribute(); var abpDateRangeInputTagHelper = _serviceProvider.GetRequiredService(); abpDateRangeInputTagHelper.PickerId = pickerId; abpDateRangeInputTagHelper.ViewContext = TagHelper.ViewContext; + if (modelAttribute.IsStart) { abpDateRangeInputTagHelper.AspForStart = model; - } - if (otherModelAttribute?.IsStart == false) - { - abpDateRangeInputTagHelper.AspForEnd = ModelExplorerToModelExpressionConverter(otherModel); + var otherModelExists = TryToGetOtherDateModel(model, pickerId, out var otherModel); + if (otherModelExists && otherModel.GetAttribute().IsEnd) + { + abpDateRangeInputTagHelper.AspForEnd = ModelExplorerToModelExpressionConverter(otherModel); + } } return abpDateRangeInputTagHelper; } + private bool TryToGetOtherDateModel(ModelExpression model, string pickerId, out ModelExplorer otherModel) + { + otherModel = TagHelper.Model.ModelExplorer.Properties.SingleOrDefault(x => x != model.ModelExplorer && x.GetAttribute()?.PickerId == pickerId); + return otherModel != null; + } - private bool IsDateRangeGroup(ModelExplorer modelModelExplorer) + private static bool IsDateRangeGroup(ModelExplorer modelModelExplorer) { return modelModelExplorer.GetAttribute() != null; } @@ -353,18 +356,23 @@ public class AbpDynamicFormTagHelperService : AbpTagHelperService() != null || model.ModelExplorer.GetAttribute() != null) + if (model.ModelExplorer.GetAttribute() != null || + model.ModelExplorer.GetAttribute() != null) { return true; } - - if(model.Metadata.ModelType == typeof(DateTime) || model.Metadata.ModelType == typeof(DateTime?) || model.Metadata.ModelType == typeof(DateTimeOffset) || model.Metadata.ModelType == typeof(DateTimeOffset?)) + + if (model.Metadata.ModelType == typeof(DateTime) || + model.Metadata.ModelType == typeof(DateTime?) || + model.Metadata.ModelType == typeof(DateTimeOffset) || + model.Metadata.ModelType == typeof(DateTimeOffset?)) { return true; } + return false; } 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 a85a41f7e8..55cd41f999 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,8 @@ public abstract class where TTagHelper : AbpDatePickerBaseTagHelper { - private IAbpDatePickerOptions _abpDatePickerOptionsImplementation; + private readonly IAbpDatePickerOptions _abpDatePickerOptionsImplementation; + public string Label { get; set; } public string LabelTooltip { get; set; } @@ -42,15 +43,11 @@ public abstract class public bool SuppressLabel { get; set; } - - - protected AbpDatePickerBaseTagHelper(AbpDatePickerBaseTagHelperService service) : base(service) { _abpDatePickerOptionsImplementation = new AbpDatePickerOptions(); } - public string PickerId { get => _abpDatePickerOptionsImplementation.PickerId; set => _abpDatePickerOptionsImplementation.PickerId = value; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerDrops.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerDrops.cs index 7e26e27c66..c61cbfec78 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerDrops.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerDrops.cs @@ -1,8 +1,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; -public enum AbpDatePickerDrops +public enum AbpDatePickerDrops : byte { - Down, - Up, - Auto + Down = 1, + Up = 2, + Auto = 3 } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOpens.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOpens.cs index a69ead079d..a74bf229ef 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOpens.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerOpens.cs @@ -1,8 +1,10 @@ -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; +using System; -public enum AbpDatePickerOpens +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; + +public enum AbpDatePickerOpens : byte { - Left, - Right, - Center + Left = 1, + Right = 2, + Center = 3, } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs index 8007a13a17..e5eae85c53 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDatePickerTagHelperService.cs @@ -16,14 +16,14 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService l, IAbpTagHelperLocalizer tagHelperLocalizer) : base(jsonSerializer, generator, encoder, serviceProvider, l, tagHelperLocalizer) { - + } protected override TagHelperOutput TagHelperOutput { get; set; } - - [CanBeNull] + + [CanBeNull] protected virtual InputTagHelper DateTagHelper { get; set; } - + [CanBeNull] protected virtual TagHelperOutput DateTagHelperOutput { get; set; } protected override string GetPropertyName() @@ -39,12 +39,15 @@ public class AbpDatePickerTagHelperService : AbpDatePickerBaseTagHelperService { - // Start date [CanBeNull] public ModelExpression AspForStart { get; set; } - // End date [CanBeNull] public ModelExpression AspForEnd { get; set; } - public AbpDateRangePickerTagHelper(AbpDateRangePickerTagHelperService tagHelperService) : base(tagHelperService) + public AbpDateRangePickerTagHelper(AbpDateRangePickerTagHelperService tagHelperService) : + base(tagHelperService) { } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs index a869147bfd..45a083b789 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/AbpDateRangePickerTagHelperService.cs @@ -17,7 +17,8 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ { public AbpDateRangePickerTagHelperService(IJsonSerializer jsonSerializer, IHtmlGenerator generator, HtmlEncoder encoder, IServiceProvider serviceProvider, IStringLocalizer l, - IAbpTagHelperLocalizer tagHelperLocalizer) : base(jsonSerializer, generator, encoder, serviceProvider, l, + IAbpTagHelperLocalizer tagHelperLocalizer) : + base(jsonSerializer, generator, encoder, serviceProvider, l, tagHelperLocalizer) { } @@ -26,36 +27,36 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ protected override T GetAttributeAndModelExpression(out ModelExpression modelExpression) { - modelExpression = - new[] { TagHelper.AspForStart, TagHelper.AspForEnd }.FirstOrDefault(x => - x?.ModelExplorer?.GetAttribute() != null); + modelExpression = new[] { TagHelper.AspForStart, TagHelper.AspForEnd }.FirstOrDefault(x => x?.ModelExplorer?.GetAttribute() != null); return modelExpression?.ModelExplorer.GetAttribute(); } public async override Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { - if (TagHelper.AspForStart != null) { - var startDateAttributes = - new TagHelperAttributeList { { "data-start-date", "true" }, { "type", "hidden" } }; - StartDateTagHelper = new InputTagHelper(Generator) { - ViewContext = TagHelper.ViewContext, For = TagHelper.AspForStart, InputTypeName = "hidden" + var startDateAttributes = new TagHelperAttributeList { { "data-start-date", "true" }, { "type", "hidden" } }; + StartDateTagHelper = new InputTagHelper(Generator) + { + ViewContext = TagHelper.ViewContext, + For = TagHelper.AspForStart, + InputTypeName = "hidden" }; - StartDateTagHelperOutput = - await StartDateTagHelper.ProcessAndGetOutputAsync(startDateAttributes, context, "input"); + StartDateTagHelperOutput = await StartDateTagHelper.ProcessAndGetOutputAsync(startDateAttributes, context, "input"); } if (TagHelper.AspForEnd != null) { var endDateAttributes = new TagHelperAttributeList { { "data-end-date", "true" }, { "type", "hidden" } }; - EndDateTagHelper = new InputTagHelper(Generator) { - ViewContext = TagHelper.ViewContext, For = TagHelper.AspForEnd,InputTypeName = "hidden" + EndDateTagHelper = new InputTagHelper(Generator) + { + ViewContext = TagHelper.ViewContext, + For = TagHelper.AspForEnd, + InputTypeName = "hidden" }; - EndDateTagHelperOutput = - await EndDateTagHelper.ProcessAndGetOutputAsync(endDateAttributes, context, "input"); + EndDateTagHelperOutput = await EndDateTagHelper.ProcessAndGetOutputAsync(endDateAttributes, context, "input"); } await base.ProcessAsync(context, output); @@ -63,16 +64,16 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ protected override TagHelperOutput TagHelperOutput { get; set; } - [CanBeNull] + [CanBeNull] protected virtual InputTagHelper StartDateTagHelper { get; set; } - [CanBeNull] + [CanBeNull] protected virtual TagHelperOutput StartDateTagHelperOutput { get; set; } - [CanBeNull] + [CanBeNull] protected virtual InputTagHelper EndDateTagHelper { get; set; } - [CanBeNull] + [CanBeNull] protected virtual TagHelperOutput EndDateTagHelperOutput { get; set; } protected override string GetPropertyName() @@ -87,13 +88,15 @@ public class AbpDateRangePickerTagHelperService : AbpDatePickerBaseTagHelperServ protected override void AddBaseTagAttributes(TagHelperAttributeList attributes) { - if (TagHelper.AspForStart != null && TagHelper.AspForStart.Model != null && + if (TagHelper.AspForStart != null && + TagHelper.AspForStart.Model != null && SupportedInputTypes.TryGetValue(TagHelper.AspForStart.Metadata.ModelType, out var convertFuncStart)) { attributes.Add("data-start-date", convertFuncStart(TagHelper.AspForStart.Model)); } - if (TagHelper.AspForEnd != null && TagHelper.AspForEnd.Model != null && + if (TagHelper.AspForEnd != null && + TagHelper.AspForEnd.Model != null && SupportedInputTypes.TryGetValue(TagHelper.AspForEnd.Metadata.ModelType, out var convertFuncEnd)) { attributes.Add("data-end-date", convertFuncEnd(TagHelper.AspForEnd.Model)); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs index 3b2d605be4..97943d9dcf 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DatePickerOptionsAttribute.cs @@ -6,7 +6,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; [AttributeUsage(AttributeTargets.Property)] public class DatePickerOptionsAttribute : Attribute, IAbpDatePickerOptions { - private IAbpDatePickerOptions _abpDatePickerOptionsImplementation; + private readonly IAbpDatePickerOptions _abpDatePickerOptionsImplementation; public DatePickerOptionsAttribute() { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DateRangePickerAttribute.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DateRangePickerAttribute.cs index 7892df6918..04412ed4fc 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DateRangePickerAttribute.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/DateRangePickerAttribute.cs @@ -6,8 +6,11 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; public class DateRangePickerAttribute : Attribute { public string PickerId { get; set; } + public bool IsStart { get; set; } - + + public bool IsEnd => !IsStart; + public DateRangePickerAttribute(string pickerId, bool isStart = false) { PickerId = pickerId; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs index 993af0c41f..9bcb5adf10 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/DatePicker/IAbpDatePickerOptions.cs @@ -7,94 +7,143 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form.DatePicker; public interface IAbpDatePickerOptions { public string PickerId { get; set; } - // Min and Max date + + ///