Fix the UX for add a new language

This commit is contained in:
hishamco 2021-05-07 14:32:41 +03:00
parent 4c4553a1d1
commit 9f3b6197fe

View File

@ -16,7 +16,11 @@ else
{ {
<TabStrip> <TabStrip>
<TabPanel Name="Manage" ResourceKey="Manage"> <TabPanel Name="Manage" ResourceKey="Manage">
@if (_supportedCultures?.Count() > 1) @if (_availableCultures.Count() == 0)
{
<ModuleMessage Type="MessageType.Info" Message="@_message"></ModuleMessage>
}
else
{ {
<table class="table table-borderless"> <table class="table table-borderless">
<tr> <tr>
@ -25,7 +29,7 @@ else
</td> </td>
<td> <td>
<select id="_code" class="form-control" @bind="@_code"> <select id="_code" class="form-control" @bind="@_code">
@foreach (var culture in _supportedCultures) @foreach (var culture in _availableCultures)
{ {
<option value="@culture.Name">@culture.DisplayName</option> <option value="@culture.Name">@culture.DisplayName</option>
} }
@ -46,10 +50,6 @@ else
</table> </table>
<button type="button" class="btn btn-success" @onclick="SaveLanguage">@Localizer["Save"]</button> <button type="button" class="btn btn-success" @onclick="SaveLanguage">@Localizer["Save"]</button>
} }
else
{
<ModuleMessage Type="MessageType.Info" Message="The Only Installed Language Is English"></ModuleMessage>
}
<NavLink class="btn btn-secondary" href="@NavigateUrl()">@Localizer["Cancel"]</NavLink> <NavLink class="btn btn-secondary" href="@NavigateUrl()">@Localizer["Cancel"]</NavLink>
</TabPanel> </TabPanel>
<TabPanel Name="Download" ResourceKey="Download" Security="SecurityAccessLevel.Host"> <TabPanel Name="Download" ResourceKey="Download" Security="SecurityAccessLevel.Host">
@ -98,17 +98,31 @@ else
@code { @code {
private string _code = string.Empty; private string _code = string.Empty;
private string _isDefault = "False"; private string _isDefault = "False";
private string _message;
private IEnumerable<Culture> _supportedCultures;
private IEnumerable<Culture> _availableCultures;
private List<Package> _packages; private List<Package> _packages;
public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin;
private IEnumerable<Culture> _supportedCultures;
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
var languages = await LanguageService.GetLanguagesAsync(PageState.Site.SiteId);
var languagesCodes = languages.Select(l => l.Code).ToList();
_supportedCultures = await LocalizationService.GetCulturesAsync(); _supportedCultures = await LocalizationService.GetCulturesAsync();
_supportedCultures = _supportedCultures.Where(c => !c.Name.Equals(Constants.DefaultCulture)); _availableCultures = _supportedCultures
.Where(c => !c.Name.Equals(Constants.DefaultCulture) && !languagesCodes.Contains(c.Name));
_packages = await PackageService.GetPackagesAsync("language"); _packages = await PackageService.GetPackagesAsync("language");
if (_supportedCultures.Count() == 1)
{
_message = Localizer["The Only Installed Language Is English"];
}
else if (_availableCultures.Count() == 0)
{
_message = Localizer["All The Installed Languages Have Been Added."];
}
} }
private async Task SaveLanguage() private async Task SaveLanguage()