@page "/_Admin/FrameworkMenu/Create"
@using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkMenuVMs
@using WalkingTec.Mvvm.Core.Extensions
@inherits BasePage
@if (Model.Entity.IsInside != false)
{
}
else
{
}
@code {
private FrameworkMenuVM2 Model = new FrameworkMenuVM2();
private List AllType = new List();
private List AllModels = new List();
private List AllFolders = new List();
private List AllActions = new List();
private List IconTypes = new List();
private List Icons = new List();
private List ClientPages;
public string SelectedIconType { get; set; } = "";
private ValidateForm vform { get; set; }
protected override async Task OnInitializedAsync()
{
Model.Entity = new FrameworkMenu { ShowOnMenu = true, IsInside=true };
AllType.Add(new SelectedItem { Text = WtmBlazor.Localizer["_Admin.Inside"], Value = "True" });
AllType.Add(new SelectedItem { Text = WtmBlazor.Localizer["_Admin.Outside"], Value = "False" });
AllFolders = await WtmBlazor.Api.CallItemsApi("/api/_FrameworkMenu/GetFolders", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]);
IconTypes = await WtmBlazor.Api.CallItemsApi("/api/_FrameworkMenu/GetIcons", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]);
ClientPages = WtmBlazor.GetAllPages();
AllModels.Add(new SelectedItem { Text = WtmBlazor.Localizer["Sys.PleaseSelect"], Value = "" });
foreach (var item in ClientPages)
{
foreach (var sub in item.Children)
{
AllModels.Add(new SelectedItem { Text = sub.PageName, Value = sub.ClassName ?? sub.Url, GroupName = item.PageName });
}
}
}
private async Task OnModelChange(SelectedItem item)
{
var url = ClientPages.FlatTree().Where(x => x.ClassName == item.Value || x.Url == item.Value).Select(x => x.Url).FirstOrDefault();
AllActions = await WtmBlazor.Api.CallItemsApi($"/api/_FrameworkMenu/GetActionsByModel?ModelName={item.Value}");
Model.Entity.Url = url;
StateHasChanged();
}
private async Task OnIconChange(SelectedItem item)
{
Icons = await WtmBlazor.Api.CallItemsApi($"/api/_FrameworkMenu/GetIconItems?key={item.Value}", placeholder: WtmBlazor.Localizer["Sys.PleaseSelect"]);
foreach (var icon in Icons)
{
if (icon.Value != "")
{
icon.Value = SelectedIconType + " " + icon.Value;
}
}
StateHasChanged();
}
private async Task Submit(EditContext context)
{
await PostsForm(vform, "/api/_frameworkmenu/add", (s) => "Sys.OprationSuccess");
}
public void OnClose()
{
CloseDialog();
}
}