Skip to content

Commit

Permalink
ui improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
manishtiwari25 committed Jan 9, 2024
1 parent 684a492 commit 3d7e98b
Show file tree
Hide file tree
Showing 6 changed files with 177 additions and 62 deletions.
88 changes: 87 additions & 1 deletion src/Layout/MainLayout.razor
Original file line number Diff line number Diff line change
@@ -1,9 +1,95 @@
@inherits LayoutComponentBase
@inject IJSRuntime JSRuntime
<RadzenComponents />
<RadzenLayout>
<RadzenHeader>
<ChildContent>
<RadzenRow AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Start" Gap="0px">
<RadzenColumn Size="5">
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" Gap="0">
<RadzenSidebarToggle Click="@(() => sidebarExpanded = !sidebarExpanded)" />
<RadzenImage Path="favicons/android-chrome-512x512.png" Style="width: 1rem;"
AlternateText="Bites In Byte" />
<RadzenLabel Text="ites In Byte - Edmx Tools" />
</RadzenStack>
</RadzenColumn>
<RadzenColumn Size="7">
<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center"
JustifyContent="JustifyContent.End">
<RadzenToggleButton Click=@ToggleMode Icon="@modeIcon" ButtonStyle="ButtonStyle.Light"
InputAttributes="@(new Dictionary<string,object>(){ { "aria-label", "ToggleButton with image" }})" />
<a href="https://github.com/bitesinbyte/edmx-tools" title="GitHub" target="_blank"
class="rz-mx-4">
<svg width="24" height="24" viewBox="0 0 512 499.36" xmlns="http://www.w3.org/2000/svg">
<title>GitHub</title>
<path fill-rule="evenodd"
d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z">
</path>
</svg>
</a>
</RadzenStack>

</RadzenColumn>
</RadzenRow>
</ChildContent>

</RadzenHeader>
<RadzenSidebar Responsive="false" Style="width: max-content">
<RadzenPanelMenu
DisplayStyle="@(sidebarExpanded ? MenuItemDisplayStyle.IconAndText : MenuItemDisplayStyle.Icon)"
ShowArrow="false">
<RadzenPanelMenuItem Text="Home" Icon="home" Path="/" />
<RadzenPanelMenuItem Text="Tools" Icon="build">
<RadzenPanelMenuItem Text="Trim" Path="trim" Icon="content_cut"></RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="Explore" Path="explore" Icon="explore"></RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="Convert" Icon="transform">
<RadzenPanelMenuItem Text="OpenApi - JSON" Path="textarea" Icon="code"></RadzenPanelMenuItem>
<RadzenPanelMenuItem Text="OpenApi - YML" Path="textarea" Icon="code"></RadzenPanelMenuItem>
</RadzenPanelMenuItem>

</RadzenPanelMenuItem>

</RadzenPanelMenu>
</RadzenSidebar>
<RadzenBody>
<div>
<div class="rz-p-4">
@Body
</div>
</RadzenBody>
<RadzenFooter>
<ChildContent>
<RadzenRow AlignItems="AlignItems.Center" JustifyContent="JustifyContent.Start" Gap="0px">
<RadzenColumn Size="8">
Copyright (c) @(DateTime.UtcNow.Year) <strong>bitesinbyte.com</strong> | <strong> <a
href="https://github.com/bitesinbyte/edmx-tools/blob/main/LICENSE" target="_blank">MIT
License</a></strong>
</RadzenColumn>
<RadzenColumn Size="4">
Special thanks to <strong><a href="https://github.com/shashisadasivan"
target="_blank">shashisadasivan</a></strong> for <strong>EDMXTrimmer</strong> code
and insperation ❤️
</RadzenColumn>
</RadzenRow>
</ChildContent>

</RadzenFooter>
</RadzenLayout>

@code {
bool sidebarExpanded = true;
string modeIcon = "dark_mode";

async Task ToggleMode()
{
if (modeIcon == "light_mode")
{
modeIcon = "dark_mode";
await JSRuntime.InvokeVoidAsync("applyLight");
}
else
{
modeIcon = "light_mode";
await JSRuntime.InvokeVoidAsync("applyDark");
}
}
}
33 changes: 26 additions & 7 deletions src/Pages/EdmxExplorer.razor
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
@page "/explore"
@inherits ComponentBase
@inject NotificationService NotificationService
<PageTitle>Edmx Explorer</PageTitle>

<RadzenText TextStyle="TextStyle.H1" Text="Edmx Explorer" />
<Upload @bind-XmlData=XmlData />
<div class="rz-p-sm-12 rz-text-align-center">
<RadzenLabel Text="Select Entity" Component="DropDownVirtualization"
Style="margin-right: 8px; vertical-align: middle;" />
Expand Down Expand Up @@ -28,22 +32,37 @@
</RadzenDataGrid>

@code {
[Parameter]
public string XmlData { get; set; }

string selectedEntity = string.Empty;
List<string> entities = new List<string>();
List<string> entities
{
get
{
if (!string.IsNullOrEmpty(XmlData))
{
return entitiesAndEnum.Select(n => n.Attributes["Name"].Value).ToList();
}
return new();
}
}
List<EntityProperty> selectedEntityProperties = new List<EntityProperty>();
List<EntityProperty> propertyRows = new();
bool isEnumType = false;
private List<System.Xml.XmlNode> entitiesAndEnum = new();
protected override void OnParametersSet()
private List<System.Xml.XmlNode> entitiesAndEnum
{
if (!string.IsNullOrEmpty(XmlData))
get
{
entitiesAndEnum = Helpers.XmlHelpers.GetEntityAndEnumTypes(XmlData);
entities = entitiesAndEnum.Select(n => n.Attributes["Name"].Value).ToList();
if (!string.IsNullOrEmpty(XmlData))
{
return Helpers.XmlHelpers.GetEntityAndEnumTypes(XmlData);
}
return new();
}
}
protected override void OnParametersSet()
{

selectedEntityProperties = new();
propertyRows = new();
isEnumType = false;
Expand Down
31 changes: 15 additions & 16 deletions src/Pages/EdmxTrim.razor
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
@page "/Trim"
@inject IJSRuntime JSRuntime
<PageTitle>Edmx Trim</PageTitle>
<RadzenText TextStyle="TextStyle.H1" Text="Edmx Trimmer" />
<Upload @bind-XmlData=XmlData />
<RadzenSteps @bind-SelectedIndex="@selectedIndex" ShowStepsButtons="false">
<Steps>
<RadzenStepsItem Text="Choose Entities">
Expand Down Expand Up @@ -43,28 +47,23 @@
</RadzenSteps>

@code {
[Parameter]
public string XmlData { get; set; }

int selectedIndex = 0;

private List<string> entities = new List<string>();
private List<string> selectedEntites = new List<string>();
private string entity = string.Empty;
private bool ExcludeSelected = false;
private string trimmedXmlData = string.Empty;
protected override void OnParametersSet()
private List<string> entities
{
if (!string.IsNullOrEmpty(XmlData))
get
{
entities = Helpers.XmlHelpers.GetAllEntities(XmlData);
if (!string.IsNullOrEmpty(XmlData))
{
return Helpers.XmlHelpers.GetAllEntities(XmlData);
}
return new();
}
ExcludeSelected = false;
entity = string.Empty;
selectedEntites = new List<string>();
trimmedXmlData = string.Empty;
}

private List<string> selectedEntites = new List<string>();
private string entity = string.Empty;
private bool ExcludeSelected = false;
private string trimmedXmlData = string.Empty;
void OnSelectedEntityChange(dynamic args)
{
entity = args;
Expand Down
37 changes: 0 additions & 37 deletions src/Pages/Home.razor
Original file line number Diff line number Diff line change
Expand Up @@ -14,41 +14,4 @@
</RadzenStack>
<RadzenStack Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.Center" Gap="0.5rem"
Class="rz-pt-4 rz-pb-8">
<RadzenCard class="my-4">
<RadzenText TextStyle="TextStyle.H6" Text="Upload Edmx File" />
<InputFile OnChange="@SingleUpload" />
</RadzenCard>
</RadzenStack>


<RadzenCard hidden=@isTabHidden>
<RadzenTabs RenderMode="TabRenderMode.Client">
<Tabs>
<RadzenTabsItem Text="Explore">
<EdmxExplorer XmlData=@xmlData />
</RadzenTabsItem>
<RadzenTabsItem Text="Trim">
<EdmxTrim XmlData=@xmlData />
</RadzenTabsItem>
</Tabs>
</RadzenTabs>

</RadzenCard>

@code {

bool isTabHidden = true;
private string xmlData = string.Empty;
private string fileName = string.Empty;

private async Task SingleUpload(InputFileChangeEventArgs e)
{
var ms = new MemoryStream();
await e.File.OpenReadStream().CopyToAsync(ms);
var byteArray = ms.ToArray();
xmlData = System.Text.Encoding.Default.GetString(byteArray);
isTabHidden = false;
NotificationService.Notify(NotificationSeverity.Success, $"Upload {fileName} Successful", "Upload Successful");
await InvokeAsync(StateHasChanged);
}
}
25 changes: 25 additions & 0 deletions src/Pages/Upload.razor
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
@inject NotificationService NotificationService
<RadzenCard class="my-4">
<RadzenText TextStyle="TextStyle.H6" Text="Upload Edmx File" />
<InputFile OnChange="@SingleUpload" />
</RadzenCard>


@code {
[Parameter]
public string XmlData { get; set; }

[Parameter]
public EventCallback<string> XmlDataChanged { get; set; }
private string fileName = string.Empty;

private async Task SingleUpload(InputFileChangeEventArgs e)
{
var ms = new MemoryStream();
await e.File.OpenReadStream().CopyToAsync(ms);
var byteArray = ms.ToArray();
XmlData = System.Text.Encoding.Default.GetString(byteArray);
NotificationService.Notify(NotificationSeverity.Success, $"Upload {fileName} Successful", "Upload Successful");
await XmlDataChanged.InvokeAsync(XmlData);
}
}
25 changes: 24 additions & 1 deletion src/wwwroot/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="css/app.css">
<link rel="stylesheet" href="_content/Radzen.Blazor/css/material-base.css">
<link rel="stylesheet" href="_content/Radzen.Blazor/css/standard-base.css">
<link rel="stylesheet" href="_content/Radzen.Blazor/css/standard.css">
</head>

<body>
Expand Down Expand Up @@ -44,6 +44,29 @@
URL.revokeObjectURL(url);
}
</script>
<script>
function removeStyleSheet(href) {
document.querySelector('link[href$="'+href+'"]').remove()
}
function applyDark(href) {
addCss("_content/Radzen.Blazor/css/dark.css");
removeStyleSheet("_content/Radzen.Blazor/css/standard.css");
}
function applyLight(href) {
addCss("_content/Radzen.Blazor/css/standard.css");
removeStyleSheet("_content/Radzen.Blazor/css/dark.css");
}

function addCss(fileName) {
var head = document.head;
var link = document.createElement("link");
link.rel = "stylesheet";
link.href = fileName;

head.appendChild(link);
}

</script>
<script src="_framework/blazor.webassembly.js"></script>
<script src="_content/Radzen.Blazor/Radzen.Blazor.js"></script>
</body>
Expand Down

0 comments on commit 3d7e98b

Please sign in to comment.