Browse Source

Order setting tabs

pull/17254/head
liangshiwei 3 years ago
parent
commit
71a61a895d
  1. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs
  2. 13
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentCreationContext.cs
  3. 7
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentGroup.cs
  4. 3
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Settings/EmailingPageContributor.cs
  5. 3
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Settings/TimeZonePageContributor.cs
  6. 1
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageContributorManager.cs
  7. 13
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageCreationContext.cs
  8. 7
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageGroup.cs
  9. 3
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs
  10. 3
      modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/TimeZonePageContributor.cs

2
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Pages/SettingManagement/SettingManagement.razor.cs

@ -39,7 +39,7 @@ public partial class SettingManagement
{
await contributor.ConfigureAsync(SettingComponentCreationContext);
}
SettingComponentCreationContext.Normalize();
SettingItemRenders.Clear();
SelectedGroup = GetNormalizedString(SettingComponentCreationContext.Groups.First().Id);

13
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentCreationContext.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.SettingManagement.Blazor;
@ -16,4 +17,16 @@ public class SettingComponentCreationContext : IServiceProviderAccessor
Groups = new List<SettingComponentGroup>();
}
public void Normalize()
{
Order();
}
private void Order()
{
var orderedItems = Groups.OrderBy(item => item.Order).ToArray();
Groups.Clear();
Groups.AddRange(orderedItems);
}
}

7
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/SettingComponentGroup.cs

@ -5,6 +5,8 @@ namespace Volo.Abp.SettingManagement.Blazor;
public class SettingComponentGroup
{
public const int DefaultOrder = 1000;
public string Id {
get => _id;
set => _id = Check.NotNullOrWhiteSpace(value, nameof(Id));
@ -24,12 +26,15 @@ public class SettingComponentGroup
private Type _componentType;
public object Parameter { get; set; }
public int Order { get; set; }
public SettingComponentGroup([NotNull] string id, [NotNull] string displayName, [NotNull] Type componentType, object parameter = null)
public SettingComponentGroup([NotNull] string id, [NotNull] string displayName, [NotNull] Type componentType, object parameter = null, int order = DefaultOrder)
{
Id = id;
DisplayName = displayName;
ComponentType = componentType;
Parameter = parameter;
Order = order;
}
}

3
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Settings/EmailingPageContributor.cs

@ -23,7 +23,8 @@ public class EmailingPageContributor : ISettingComponentContributor
new SettingComponentGroup(
"Volo.Abp.SettingManagement",
l["Menu:Emailing"],
typeof(EmailSettingGroupViewComponent)
typeof(EmailSettingGroupViewComponent),
order : 3
)
);
}

3
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Settings/TimeZonePageContributor.cs

@ -20,7 +20,8 @@ public class TimeZonePageContributor : ISettingComponentContributor
new SettingComponentGroup(
"Volo.Abp.TimeZone",
l["Menu:TimeZone"],
typeof(TimeZoneSettingGroupViewComponent)
typeof(TimeZoneSettingGroupViewComponent),
order : 4
)
);
}

1
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageContributorManager.cs

@ -37,6 +37,7 @@ public class SettingPageContributorManager : IScopedDependency
{
await contributor.ConfigureAsync(context);
}
context.Normalize();
return context;
}

13
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageCreationContext.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement;
@ -16,4 +17,16 @@ public class SettingPageCreationContext : IServiceProviderAccessor
Groups = new List<SettingPageGroup>();
}
public void Normalize()
{
Order();
}
private void Order()
{
var orderedItems = Groups.OrderBy(item => item.Order).ToArray();
Groups.Clear();
Groups.AddRange(orderedItems);
}
}

7
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Pages/SettingManagement/SettingPageGroup.cs

@ -5,6 +5,8 @@ namespace Volo.Abp.SettingManagement.Web.Pages.SettingManagement;
public class SettingPageGroup
{
public const int DefaultOrder = 1000;
public string Id {
get => _id;
set => _id = Check.NotNullOrWhiteSpace(value, nameof(Id));
@ -24,12 +26,15 @@ public class SettingPageGroup
private Type _componentType;
public object Parameter { get; set; }
public int Order { get; set; }
public SettingPageGroup([NotNull] string id, [NotNull] string displayName, [NotNull] Type componentType, object parameter = null)
public SettingPageGroup([NotNull] string id, [NotNull] string displayName, [NotNull] Type componentType, object parameter = null, int order = DefaultOrder)
{
Id = id;
DisplayName = displayName;
ComponentType = componentType;
Parameter = parameter;
Order = order;
}
}

3
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/EmailingPageContributor.cs

@ -23,7 +23,8 @@ public class EmailingPageContributor : SettingPageContributorBase
new SettingPageGroup(
"Volo.Abp.EmailSetting",
l["Menu:Emailing"],
typeof(EmailSettingGroupViewComponent)
typeof(EmailSettingGroupViewComponent),
order : 3
)
);
return Task.CompletedTask;

3
modules/setting-management/src/Volo.Abp.SettingManagement.Web/Settings/TimeZonePageContributor.cs

@ -25,7 +25,8 @@ public class TimeZonePageContributor : SettingPageContributorBase
new SettingPageGroup(
"Volo.Abp.TimeZone",
l["Menu:TimeZone"],
typeof(TimeZoneSettingGroupViewComponent)
typeof(TimeZoneSettingGroupViewComponent),
order : 4
)
);
}

Loading…
Cancel
Save