Refactored page paths

This commit is contained in:
Thorsten Sommer 2024-08-18 11:11:51 +02:00
parent 77513df6cc
commit 9fa2fbac32
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108
16 changed files with 49 additions and 30 deletions

View File

@ -51,12 +51,12 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, IDis
private static readonly IReadOnlyCollection<NavBarItem> NAV_ITEMS = new List<NavBarItem> private static readonly IReadOnlyCollection<NavBarItem> NAV_ITEMS = new List<NavBarItem>
{ {
new("Home", Icons.Material.Filled.Home, Color.Default, "/", true), new("Home", Icons.Material.Filled.Home, Color.Default, Pages.Path.HOME, true),
new("Chat", Icons.Material.Filled.Chat, Color.Default, "/chat", false), new("Chat", Icons.Material.Filled.Chat, Color.Default, Pages.Path.CHAT, false),
new("Assistants", Icons.Material.Filled.Apps, Color.Default ,"/assistants", false), new("Assistants", Icons.Material.Filled.Apps, Color.Default, Pages.Path.ASSISTANTS, false),
new("Supporters", Icons.Material.Filled.Favorite, Color.Error ,"/supporters", false), new("Supporters", Icons.Material.Filled.Favorite, Color.Error, Pages.Path.SUPPORTERS, false),
new("About", Icons.Material.Filled.Info, Color.Default ,"/about", false), new("About", Icons.Material.Filled.Info, Color.Default, Pages.Path.ABOUT, false),
new("Settings", Icons.Material.Filled.Settings, Color.Default ,"/settings", false), new("Settings", Icons.Material.Filled.Settings, Color.Default, Pages.Path.SETTINGS, false),
}; };
#region Overrides of ComponentBase #region Overrides of ComponentBase

View File

@ -1,4 +1,4 @@
@page "/about" @attribute [Route(Path.ABOUT)]
@using AIStudio.Tools @using AIStudio.Tools
<MudText Typo="Typo.h3" Class="mb-2">About MindWork AI Studio</MudText> <MudText Typo="Typo.h3" Class="mb-2">About MindWork AI Studio</MudText>

View File

@ -1,4 +1,4 @@
@page "/assistant/agenda" @attribute [Route(Path.ASSISTANT_AGENDA)]
@using AIStudio.Tools @using AIStudio.Tools
@inherits AssistantBaseCore @inherits AssistantBaseCore

View File

@ -1,4 +1,4 @@
@page "/assistants" @attribute [Route(Path.ASSISTANTS)]
<MudText Typo="Typo.h3" Class="mb-2 mr-3"> <MudText Typo="Typo.h3" Class="mb-2 mr-3">
Assistants Assistants
@ -10,25 +10,25 @@
General General
</MudText> </MudText>
<MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3"> <MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3">
<AssistantBlock Name="Text Summarizer" Description="Using a LLM to summarize a given text." Icon="@Icons.Material.Filled.TextSnippet" Link="/assistant/summarizer"/> <AssistantBlock Name="Text Summarizer" Description="Using a LLM to summarize a given text." Icon="@Icons.Material.Filled.TextSnippet" Link="@Path.ASSISTANT_SUMMARIZER"/>
<AssistantBlock Name="Translation" Description="Translate text into another language." Icon="@Icons.Material.Filled.Translate" Link="/assistant/translation"/> <AssistantBlock Name="Translation" Description="Translate text into another language." Icon="@Icons.Material.Filled.Translate" Link="@Path.ASSISTANT_TRANSLATION"/>
<AssistantBlock Name="Grammar & Spelling" Description="Check grammar and spelling of a given text." Icon="@Icons.Material.Filled.Edit" Link="/assistant/grammar-spelling"/> <AssistantBlock Name="Grammar & Spelling" Description="Check grammar and spelling of a given text." Icon="@Icons.Material.Filled.Edit" Link="@Path.ASSISTANT_GRAMMAR_SPELLING"/>
<AssistantBlock Name="Rewrite & Improve" Description="Rewrite and improve a given text for a chosen style." Icon="@Icons.Material.Filled.Edit" Link="/assistant/rewrite-improve"/> <AssistantBlock Name="Rewrite & Improve" Description="Rewrite and improve a given text for a chosen style." Icon="@Icons.Material.Filled.Edit" Link="@Path.ASSISTANT_REWRITE"/>
</MudStack> </MudStack>
<MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6"> <MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6">
Business Business
</MudText> </MudText>
<MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3"> <MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3">
<AssistantBlock Name="Agenda Planner" Description="Generate an agenda for a given meeting, seminar, etc." Icon="@Icons.Material.Filled.CalendarToday" Link="/assistant/agenda"/> <AssistantBlock Name="Agenda Planner" Description="Generate an agenda for a given meeting, seminar, etc." Icon="@Icons.Material.Filled.CalendarToday" Link="@Path.ASSISTANT_AGENDA"/>
<AssistantBlock Name="Icon Finder" Description="Using a LLM to find an icon for a given context." Icon="@Icons.Material.Filled.FindInPage" Link="/assistant/icons"/> <AssistantBlock Name="Icon Finder" Description="Using a LLM to find an icon for a given context." Icon="@Icons.Material.Filled.FindInPage" Link="@Path.ASSISTANT_ICON_FINDER"/>
</MudStack> </MudStack>
<MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6"> <MudText Typo="Typo.h4" Class="mb-2 mr-3 mt-6">
Software Engineering Software Engineering
</MudText> </MudText>
<MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3"> <MudStack Row="@true" Wrap="@Wrap.Wrap" Class="mb-3">
<AssistantBlock Name="Coding" Description="Get coding and debugging support from a LLM." Icon="@Icons.Material.Filled.Code" Link="/assistant/coding"/> <AssistantBlock Name="Coding" Description="Get coding and debugging support from a LLM." Icon="@Icons.Material.Filled.Code" Link="@Path.ASSISTANT_CODING"/>
</MudStack> </MudStack>
</InnerScrolling> </InnerScrolling>

View File

@ -1,4 +1,4 @@
@page "/chat" @attribute [Route(Path.CHAT)]
@using AIStudio.Chat @using AIStudio.Chat
@using AIStudio.Settings.DataModel @using AIStudio.Settings.DataModel

View File

@ -250,11 +250,11 @@ public partial class Chat : MSGComponentBase, IAsyncDisposable
string chatPath; string chatPath;
if (this.chatThread.WorkspaceId == Guid.Empty) if (this.chatThread.WorkspaceId == Guid.Empty)
{ {
chatPath = Path.Join(SettingsManager.DataDirectory, "tempChats", this.chatThread.ChatId.ToString()); chatPath = System.IO.Path.Join(SettingsManager.DataDirectory, "tempChats", this.chatThread.ChatId.ToString());
} }
else else
{ {
chatPath = Path.Join(SettingsManager.DataDirectory, "workspaces", this.chatThread.WorkspaceId.ToString(), this.chatThread.ChatId.ToString()); chatPath = System.IO.Path.Join(SettingsManager.DataDirectory, "workspaces", this.chatThread.WorkspaceId.ToString(), this.chatThread.ChatId.ToString());
} }
await this.workspaces.DeleteChat(chatPath, askForConfirmation: false, unloadChat: true); await this.workspaces.DeleteChat(chatPath, askForConfirmation: false, unloadChat: true);
@ -327,12 +327,12 @@ public partial class Chat : MSGComponentBase, IAsyncDisposable
if (this.chatThread!.WorkspaceId == Guid.Empty) if (this.chatThread!.WorkspaceId == Guid.Empty)
{ {
// Case: The chat is stored in the temporary storage: // Case: The chat is stored in the temporary storage:
await this.workspaces.DeleteChat(Path.Join(SettingsManager.DataDirectory, "tempChats", this.chatThread.ChatId.ToString()), askForConfirmation: false, unloadChat: false); await this.workspaces.DeleteChat(System.IO.Path.Join(SettingsManager.DataDirectory, "tempChats", this.chatThread.ChatId.ToString()), askForConfirmation: false, unloadChat: false);
} }
else else
{ {
// Case: The chat is stored in a workspace. // Case: The chat is stored in a workspace.
await this.workspaces.DeleteChat(Path.Join(SettingsManager.DataDirectory, "workspaces", this.chatThread.WorkspaceId.ToString(), this.chatThread.ChatId.ToString()), askForConfirmation: false, unloadChat: false); await this.workspaces.DeleteChat(System.IO.Path.Join(SettingsManager.DataDirectory, "workspaces", this.chatThread.WorkspaceId.ToString(), this.chatThread.ChatId.ToString()), askForConfirmation: false, unloadChat: false);
} }
this.chatThread!.WorkspaceId = workspaceId; this.chatThread!.WorkspaceId = workspaceId;

View File

@ -1,4 +1,4 @@
@page "/assistant/coding" @attribute [Route(Path.ASSISTANT_CODING)]
@inherits AssistantBaseCore @inherits AssistantBaseCore
<MudExpansionPanels Class="mb-3"> <MudExpansionPanels Class="mb-3">

View File

@ -1,5 +1,5 @@
@using AIStudio.Tools @using AIStudio.Tools
@page "/assistant/grammar-spelling" @attribute [Route(Path.ASSISTANT_GRAMMAR_SPELLING)]
@inherits AssistantBaseCore @inherits AssistantBaseCore
<MudTextField T="string" @bind-Text="@this.inputText" Validation="@this.ValidateText" AdornmentIcon="@Icons.Material.Filled.DocumentScanner" Adornment="Adornment.Start" Label="Your input to check" Variant="Variant.Outlined" Lines="6" AutoGrow="@true" MaxLines="12" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/> <MudTextField T="string" @bind-Text="@this.inputText" Validation="@this.ValidateText" AdornmentIcon="@Icons.Material.Filled.DocumentScanner" Adornment="Adornment.Start" Label="Your input to check" Variant="Variant.Outlined" Lines="6" AutoGrow="@true" MaxLines="12" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/>

View File

@ -1,4 +1,4 @@
@page "/" @attribute [Route(Path.HOME)]
@using AIStudio.Tools @using AIStudio.Tools
<MudImage Src="svg/banner.svg" /> <MudImage Src="svg/banner.svg" />

View File

@ -1,4 +1,4 @@
@page "/assistant/icons" @attribute [Route(Path.ASSISTANT_ICON_FINDER)]
@inherits AssistantBaseCore @inherits AssistantBaseCore
<MudTextField T="string" @bind-Text="@this.inputContext" Validation="@this.ValidatingContext" AdornmentIcon="@Icons.Material.Filled.Description" Adornment="Adornment.Start" Label="Your context" Variant="Variant.Outlined" Lines="3" AutoGrow="@true" MaxLines="12" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/> <MudTextField T="string" @bind-Text="@this.inputContext" Validation="@this.ValidatingContext" AdornmentIcon="@Icons.Material.Filled.Description" Adornment="Adornment.Start" Label="Your context" Variant="Variant.Outlined" Lines="3" AutoGrow="@true" MaxLines="12" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/>

View File

@ -0,0 +1,19 @@
namespace AIStudio.Components.Pages;
public static class Path
{
public const string HOME = "/";
public const string CHAT = "/chat";
public const string ABOUT = "/about";
public const string ASSISTANTS = "/assistants";
public const string SETTINGS = "/settings";
public const string SUPPORTERS = "/supporters";
public const string ASSISTANT_TRANSLATION = "/assistant/translation";
public const string ASSISTANT_REWRITE = "/assistant/rewrite-improve";
public const string ASSISTANT_ICON_FINDER = "/assistant/icons";
public const string ASSISTANT_GRAMMAR_SPELLING = "/assistant/grammar-spelling";
public const string ASSISTANT_SUMMARIZER = "/assistant/summarizer";
public const string ASSISTANT_CODING = "/assistant/coding";
public const string ASSISTANT_AGENDA = "/assistant/agenda";
}

View File

@ -1,5 +1,5 @@
@using AIStudio.Tools @using AIStudio.Tools
@page "/assistant/rewrite-improve" @attribute [Route(Path.ASSISTANT_REWRITE)]
@inherits AssistantBaseCore @inherits AssistantBaseCore
<MudTextField T="string" @bind-Text="@this.inputText" Validation="@this.ValidateText" AdornmentIcon="@Icons.Material.Filled.DocumentScanner" Adornment="Adornment.Start" Label="Your input to improve" Variant="Variant.Outlined" Lines="6" AutoGrow="@true" MaxLines="12" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/> <MudTextField T="string" @bind-Text="@this.inputText" Validation="@this.ValidateText" AdornmentIcon="@Icons.Material.Filled.DocumentScanner" Adornment="Adornment.Start" Label="Your input to improve" Variant="Variant.Outlined" Lines="6" AutoGrow="@true" MaxLines="12" Class="mb-3" UserAttributes="@USER_INPUT_ATTRIBUTES"/>

View File

@ -1,4 +1,4 @@
@page "/settings" @attribute [Route(Path.SETTINGS)]
@using AIStudio.Components.Pages.Coding @using AIStudio.Components.Pages.Coding
@using AIStudio.Components.Pages.TextSummarizer @using AIStudio.Components.Pages.TextSummarizer
@using AIStudio.Provider @using AIStudio.Provider

View File

@ -1,4 +1,4 @@
@page "/Supporters" @attribute [Route(Path.SUPPORTERS)]
<MudText Typo="Typo.h3" Class="mb-2">Supporters</MudText> <MudText Typo="Typo.h3" Class="mb-2">Supporters</MudText>

View File

@ -1,4 +1,4 @@
@page "/assistant/summarizer" @attribute [Route(Path.ASSISTANT_SUMMARIZER)]
@using AIStudio.Tools @using AIStudio.Tools
@inherits AssistantBaseCore @inherits AssistantBaseCore

View File

@ -1,4 +1,4 @@
@page "/assistant/translation" @attribute [Route(Path.ASSISTANT_TRANSLATION)]
@using AIStudio.Tools @using AIStudio.Tools
@inherits AssistantBaseCore @inherits AssistantBaseCore