From bd4c9f7173b72f75593bc747e9e2ba3ecec76ee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peer=20Sch=C3=BCtt?= Date: Fri, 7 Mar 2025 19:18:23 +0100 Subject: [PATCH] Added initial logic for jumping between assistant and settings. Currently, it only jumps to the settings page and nothing is expanded. --- .../Assistants/Agenda/AssistantAgenda.razor.cs | 3 +++ .../Assistants/AssistantBase.razor | 8 +++----- .../Assistants/AssistantBase.razor.cs | 9 +++++++++ .../BiasDay/BiasOfTheDayAssistant.razor.cs | 3 +++ .../Assistants/Coding/AssistantCoding.razor.cs | 5 ++++- .../Assistants/EMail/AssistantEMail.razor.cs | 5 ++++- .../Assistants/ERI/AssistantERI.razor.cs | 3 +++ .../AssistantGrammarSpelling.razor.cs | 5 ++++- .../IconFinder/AssistantIconFinder.razor.cs | 4 ++++ .../JobPosting/AssistantJobPostings.razor.cs | 3 +++ .../LegalCheck/AssistantLegalCheck.razor.cs | 5 ++++- .../Assistants/MyTasks/AssistantMyTasks.razor.cs | 3 +++ .../AssistantRewriteImprove.razor.cs | 5 ++++- .../Assistants/Synonym/AssistantSynonyms.razor.cs | 5 ++++- .../AssistantTextSummarizer.razor.cs | 5 ++++- .../Translation/AssistantTranslation.razor.cs | 5 ++++- .../Components/AssistantBlock.razor | 13 ++++++++++--- .../Settings/SettingsPanelAgenda.razor.cs | 5 ++++- .../SettingsPanelAgentContentCleaner.razor.cs | 5 ++++- .../SettingsPanelAgentDataSourceSelection.razor.cs | 5 ++++- ...gsPanelAgentRetrievalContextValidation.razor.cs | 5 ++++- .../Components/Settings/SettingsPanelApp.razor.cs | 2 ++ .../Settings/SettingsPanelAssistantBias.razor.cs | 2 ++ .../Components/Settings/SettingsPanelBase.cs | 8 ++++++++ .../Components/Settings/SettingsPanelChat.razor.cs | 5 ++++- .../Settings/SettingsPanelCoding.razor.cs | 5 ++++- .../Settings/SettingsPanelDataSources.razor.cs | 2 ++ .../Settings/SettingsPanelERIServer.razor | 2 +- .../Settings/SettingsPanelERIServer.razor.cs | 5 ++++- .../Settings/SettingsPanelEmbeddings.razor.cs | 2 ++ .../Settings/SettingsPanelGrammarSpelling.razor.cs | 5 ++++- .../Settings/SettingsPanelIconFinder.razor.cs | 5 ++++- .../Settings/SettingsPanelJobPostings.razor.cs | 5 ++++- .../Settings/SettingsPanelLegalCheck.razor.cs | 5 ++++- .../Settings/SettingsPanelMyTasks.razor.cs | 5 ++++- .../Settings/SettingsPanelProfiles.razor.cs | 2 ++ .../Settings/SettingsPanelProviders.razor.cs | 2 ++ .../Settings/SettingsPanelRewrite.razor.cs | 5 ++++- .../Settings/SettingsPanelSynonyms.razor.cs | 5 ++++- .../Settings/SettingsPanelTextSummarizer.razor.cs | 5 ++++- .../Settings/SettingsPanelTranslation.razor.cs | 5 ++++- .../Settings/SettingsPanelWorkspaces.razor.cs | 5 ++++- .../Settings/SettingsPanelWritingEMails.razor.cs | 5 ++++- app/MindWork AI Studio/Pages/Settings.razor | 4 ++-- app/MindWork AI Studio/Pages/Settings.razor.cs | 14 ++++++++++++++ app/MindWork AI Studio/Routes.razor.cs | 3 +++ app/MindWork AI Studio/Tools/Event.cs | 3 +++ 47 files changed, 188 insertions(+), 37 deletions(-) diff --git a/app/MindWork AI Studio/Assistants/Agenda/AssistantAgenda.razor.cs b/app/MindWork AI Studio/Assistants/Agenda/AssistantAgenda.razor.cs index 531c2df1..c1dd82f8 100644 --- a/app/MindWork AI Studio/Assistants/Agenda/AssistantAgenda.razor.cs +++ b/app/MindWork AI Studio/Assistants/Agenda/AssistantAgenda.razor.cs @@ -1,6 +1,7 @@ using System.Text; using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.Agenda; @@ -101,6 +102,8 @@ public partial class AssistantAgenda : AssistantBaseCore protected override Func SubmitAction => this.CreateAgenda; + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_AGENDA_PANEL; + protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with { SystemPrompt = SystemPrompts.DEFAULT, diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor b/app/MindWork AI Studio/Assistants/AssistantBase.razor index c787269e..dfe56a61 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor @@ -12,15 +12,13 @@ - + @this.Description - - - Settings - + + diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs index d692bdbd..9e1fc363 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; using AIStudio.Provider; using AIStudio.Settings; using AIStudio.Tools.Services; @@ -68,6 +69,8 @@ public abstract partial class AssistantBase : ComponentBase, IMessageBusReceiver protected abstract string SubmitText { get; } protected abstract Func SubmitAction { get; } + + protected abstract SettingsPanel SettingsPanel { get; } protected virtual bool SubmitDisabled => false; @@ -317,6 +320,12 @@ public abstract partial class AssistantBase : ComponentBase, IMessageBusReceiver return icon; } + protected void NavigateToSettings() + { + MessageBus.INSTANCE.DeferMessage(this, Event.SWITCH_TO_SETTINGS_PANEL, this.SettingsPanel); + this.NavigationManager.NavigateTo(Routes.SETTINGS); + } + protected Task SendToAssistant(Tools.Components destination, SendToButton sendToButton) { if (!destination.AllowSendTo()) diff --git a/app/MindWork AI Studio/Assistants/BiasDay/BiasOfTheDayAssistant.razor.cs b/app/MindWork AI Studio/Assistants/BiasDay/BiasOfTheDayAssistant.razor.cs index 576e4332..0f8f471c 100644 --- a/app/MindWork AI Studio/Assistants/BiasDay/BiasOfTheDayAssistant.razor.cs +++ b/app/MindWork AI Studio/Assistants/BiasDay/BiasOfTheDayAssistant.razor.cs @@ -1,6 +1,7 @@ using System.Text; using AIStudio.Chat; +using AIStudio.Components.Settings; using AIStudio.Settings.DataModel; namespace AIStudio.Assistants.BiasDay; @@ -44,6 +45,8 @@ public partial class BiasOfTheDayAssistant : AssistantBaseCore protected override Func SubmitAction => this.TellBias; + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_BIAS_OF_THE_DAY_PANEL; + protected override bool ShowSendTo => false; protected override bool ShowCopyResult => false; diff --git a/app/MindWork AI Studio/Assistants/Coding/AssistantCoding.razor.cs b/app/MindWork AI Studio/Assistants/Coding/AssistantCoding.razor.cs index c8a61123..3ce73673 100644 --- a/app/MindWork AI Studio/Assistants/Coding/AssistantCoding.razor.cs +++ b/app/MindWork AI Studio/Assistants/Coding/AssistantCoding.razor.cs @@ -1,4 +1,5 @@ using System.Text; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.Coding; @@ -31,7 +32,9 @@ public partial class AssistantCoding : AssistantBaseCore protected override string SubmitText => "Get Support"; protected override Func SubmitAction => this.GetSupport; - + + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_CODING_PANEL; + protected override void ResetForm() { this.codingContexts.Clear(); diff --git a/app/MindWork AI Studio/Assistants/EMail/AssistantEMail.razor.cs b/app/MindWork AI Studio/Assistants/EMail/AssistantEMail.razor.cs index 4606f4b3..69c6028d 100644 --- a/app/MindWork AI Studio/Assistants/EMail/AssistantEMail.razor.cs +++ b/app/MindWork AI Studio/Assistants/EMail/AssistantEMail.razor.cs @@ -1,6 +1,7 @@ using System.Text; using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.EMail; @@ -27,7 +28,9 @@ public partial class AssistantEMail : AssistantBaseCore protected override string SubmitText => "Create email"; protected override Func SubmitAction => this.CreateMail; - + + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_EMAIL_PANEL; + protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with { SystemPrompt = SystemPrompts.DEFAULT, diff --git a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs index c5f0b289..413bc017 100644 --- a/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs +++ b/app/MindWork AI Studio/Assistants/ERI/AssistantERI.razor.cs @@ -2,6 +2,7 @@ using System.Text; using System.Text.RegularExpressions; using AIStudio.Chat; +using AIStudio.Components.Settings; using AIStudio.Dialogs; using AIStudio.Settings.DataModel; @@ -306,6 +307,8 @@ public partial class AssistantERI : AssistantBaseCore protected override Func SubmitAction => this.GenerateServer; + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_ERI_SERVER_PANEL; + protected override bool SubmitDisabled => this.IsNoneERIServerSelected; protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with diff --git a/app/MindWork AI Studio/Assistants/GrammarSpelling/AssistantGrammarSpelling.razor.cs b/app/MindWork AI Studio/Assistants/GrammarSpelling/AssistantGrammarSpelling.razor.cs index 29cf4866..71de8121 100644 --- a/app/MindWork AI Studio/Assistants/GrammarSpelling/AssistantGrammarSpelling.razor.cs +++ b/app/MindWork AI Studio/Assistants/GrammarSpelling/AssistantGrammarSpelling.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.GrammarSpelling; @@ -42,7 +43,9 @@ public partial class AssistantGrammarSpelling : AssistantBaseCore protected override string SubmitText => "Proofread"; protected override Func SubmitAction => this.ProofreadText; - + + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_GRAMMAR_SPELLING_PANEL; + protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with { SystemPrompt = SystemPrompts.DEFAULT, diff --git a/app/MindWork AI Studio/Assistants/IconFinder/AssistantIconFinder.razor.cs b/app/MindWork AI Studio/Assistants/IconFinder/AssistantIconFinder.razor.cs index 54348344..816fea0c 100644 --- a/app/MindWork AI Studio/Assistants/IconFinder/AssistantIconFinder.razor.cs +++ b/app/MindWork AI Studio/Assistants/IconFinder/AssistantIconFinder.razor.cs @@ -1,3 +1,5 @@ +using AIStudio.Components.Settings; + namespace AIStudio.Assistants.IconFinder; public partial class AssistantIconFinder : AssistantBaseCore @@ -33,6 +35,8 @@ public partial class AssistantIconFinder : AssistantBaseCore protected override Func SubmitAction => this.FindIcon; + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_ICON_FINDER_PANEL; + protected override void ResetForm() { this.inputContext = string.Empty; diff --git a/app/MindWork AI Studio/Assistants/JobPosting/AssistantJobPostings.razor.cs b/app/MindWork AI Studio/Assistants/JobPosting/AssistantJobPostings.razor.cs index 164abde7..c96bc289 100644 --- a/app/MindWork AI Studio/Assistants/JobPosting/AssistantJobPostings.razor.cs +++ b/app/MindWork AI Studio/Assistants/JobPosting/AssistantJobPostings.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.JobPosting; @@ -50,6 +51,8 @@ public partial class AssistantJobPostings : AssistantBaseCore protected override Func SubmitAction => this.CreateJobPosting; + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_JOB_POSTING_PANEL; + protected override bool SubmitDisabled => false; protected override bool AllowProfiles => false; diff --git a/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor.cs b/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor.cs index 45755675..67427730 100644 --- a/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor.cs +++ b/app/MindWork AI Studio/Assistants/LegalCheck/AssistantLegalCheck.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.LegalCheck; @@ -29,7 +30,9 @@ public partial class AssistantLegalCheck : AssistantBaseCore protected override string SubmitText => "Ask your questions"; protected override Func SubmitAction => this.AksQuestions; - + + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_LEGAL_CHECK_PANEL; + protected override bool SubmitDisabled => this.isAgentRunning; protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with diff --git a/app/MindWork AI Studio/Assistants/MyTasks/AssistantMyTasks.razor.cs b/app/MindWork AI Studio/Assistants/MyTasks/AssistantMyTasks.razor.cs index b0e52a18..74f4e391 100644 --- a/app/MindWork AI Studio/Assistants/MyTasks/AssistantMyTasks.razor.cs +++ b/app/MindWork AI Studio/Assistants/MyTasks/AssistantMyTasks.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; using AIStudio.Settings; namespace AIStudio.Assistants.MyTasks; @@ -34,6 +35,8 @@ public partial class AssistantMyTasks : AssistantBaseCore protected override Func SubmitAction => this.AnalyzeText; + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_MY_TASKS_PANEL; + protected override bool ShowProfileSelection => false; protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with diff --git a/app/MindWork AI Studio/Assistants/RewriteImprove/AssistantRewriteImprove.razor.cs b/app/MindWork AI Studio/Assistants/RewriteImprove/AssistantRewriteImprove.razor.cs index 216f85a9..d254ea70 100644 --- a/app/MindWork AI Studio/Assistants/RewriteImprove/AssistantRewriteImprove.razor.cs +++ b/app/MindWork AI Studio/Assistants/RewriteImprove/AssistantRewriteImprove.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.RewriteImprove; @@ -43,7 +44,9 @@ public partial class AssistantRewriteImprove : AssistantBaseCore protected override string SubmitText => "Improve"; protected override Func SubmitAction => this.RewriteText; - + + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_REWRITE_PANEL; + protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with { SystemPrompt = SystemPrompts.DEFAULT, diff --git a/app/MindWork AI Studio/Assistants/Synonym/AssistantSynonyms.razor.cs b/app/MindWork AI Studio/Assistants/Synonym/AssistantSynonyms.razor.cs index c849b685..ab89ea54 100644 --- a/app/MindWork AI Studio/Assistants/Synonym/AssistantSynonyms.razor.cs +++ b/app/MindWork AI Studio/Assistants/Synonym/AssistantSynonyms.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.Synonym; @@ -54,7 +55,9 @@ public partial class AssistantSynonyms : AssistantBaseCore protected override string SubmitText => "Find synonyms"; protected override Func SubmitAction => this.FindSynonyms; - + + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_SYNONYMS_PANEL; + protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with { SystemPrompt = SystemPrompts.DEFAULT, diff --git a/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor.cs b/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor.cs index fb9244b0..221ce2a8 100644 --- a/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor.cs +++ b/app/MindWork AI Studio/Assistants/TextSummarizer/AssistantTextSummarizer.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.TextSummarizer; @@ -32,7 +33,9 @@ public partial class AssistantTextSummarizer : AssistantBaseCore protected override string SubmitText => "Summarize"; protected override Func SubmitAction => this.SummarizeText; - + + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_TEXT_SUMMARIZER_PANEL; + protected override bool SubmitDisabled => this.isAgentRunning; protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with diff --git a/app/MindWork AI Studio/Assistants/Translation/AssistantTranslation.razor.cs b/app/MindWork AI Studio/Assistants/Translation/AssistantTranslation.razor.cs index 785aae4c..d6f1d689 100644 --- a/app/MindWork AI Studio/Assistants/Translation/AssistantTranslation.razor.cs +++ b/app/MindWork AI Studio/Assistants/Translation/AssistantTranslation.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Chat; +using AIStudio.Components.Settings; namespace AIStudio.Assistants.Translation; @@ -28,7 +29,9 @@ public partial class AssistantTranslation : AssistantBaseCore protected override string SubmitText => "Translate"; protected override Func SubmitAction => () => this.TranslateText(true); - + + protected override SettingsPanel SettingsPanel => SettingsPanel.ASSISTANT_TRANSLATION_PANEL; + protected override bool SubmitDisabled => this.isAgentRunning; protected override ChatThread ConvertToChatThread => (this.chatThread ?? new()) with diff --git a/app/MindWork AI Studio/Components/AssistantBlock.razor b/app/MindWork AI Studio/Components/AssistantBlock.razor index 0fc497af..49a85803 100644 --- a/app/MindWork AI Studio/Components/AssistantBlock.razor +++ b/app/MindWork AI Studio/Components/AssistantBlock.razor @@ -17,8 +17,15 @@ - - @this.ButtonText - + + + + @this.ButtonText + + + + + + \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgenda.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgenda.razor.cs index 82368a5c..40d2303e 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgenda.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgenda.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelAgenda : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelAgenda : SettingsPanelBase +{ + protected override SettingsPanel Type { get; } +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentContentCleaner.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentContentCleaner.razor.cs index e588f061..0b4837cc 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentContentCleaner.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentContentCleaner.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelAgentContentCleaner : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelAgentContentCleaner : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.AGENT_CONTENT_CLEANER_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentDataSourceSelection.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentDataSourceSelection.razor.cs index 1c191a55..b7c0a04c 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentDataSourceSelection.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentDataSourceSelection.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelAgentDataSourceSelection : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelAgentDataSourceSelection : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.AGENT_DATA_SOURCE_SELECTION_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentRetrievalContextValidation.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentRetrievalContextValidation.razor.cs index aaf0d938..f4cbee64 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentRetrievalContextValidation.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelAgentRetrievalContextValidation.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelAgentRetrievalContextValidation : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelAgentRetrievalContextValidation : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.AGENT_RETRIEVAL_CONTEXT_VALIDATION_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelApp.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelApp.razor.cs index f4b75bfe..b675bf24 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelApp.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelApp.razor.cs @@ -9,4 +9,6 @@ public partial class SettingsPanelApp : SettingsPanelBase this.SettingsManager.ConfigurationData.App.PreviewVisibility = previewVisibility; this.SettingsManager.ConfigurationData.App.EnabledPreviewFeatures = previewVisibility.FilterPreviewFeatures(this.SettingsManager.ConfigurationData.App.EnabledPreviewFeatures); } + + protected override SettingsPanel Type => SettingsPanel.APP_PANEL; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelAssistantBias.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelAssistantBias.razor.cs index 375d644b..4267f70a 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelAssistantBias.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelAssistantBias.razor.cs @@ -24,4 +24,6 @@ public partial class SettingsPanelAssistantBias : SettingsPanelBase await this.MessageBus.SendMessage(this, Event.CONFIGURATION_CHANGED); } + + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_BIAS_OF_THE_DAY_PANEL; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelBase.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelBase.cs index c3384167..391d97e7 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelBase.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelBase.cs @@ -1,3 +1,4 @@ +using System.Runtime.CompilerServices; using AIStudio.Settings; using AIStudio.Tools.Services; @@ -10,6 +11,11 @@ public abstract class SettingsPanelBase : ComponentBase [Parameter] public Func>> AvailableLLMProvidersFunc { get; set; } = () => []; + [Parameter] + public SettingsPanel ChosenPanel { get; set; } + + protected abstract SettingsPanel Type { get; } + [Inject] protected SettingsManager SettingsManager { get; init; } = null!; @@ -21,4 +27,6 @@ public abstract class SettingsPanelBase : ComponentBase [Inject] protected RustService RustService { get; init; } = null!; + + protected bool IsExtended() => this.Type == this.ChosenPanel; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelChat.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelChat.razor.cs index 2650923e..0267b499 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelChat.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelChat.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelChat : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelChat : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.CHAT_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelCoding.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelCoding.razor.cs index 060a30a6..9265a3e5 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelCoding.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelCoding.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelCoding : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelCoding : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_CODING_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelDataSources.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelDataSources.razor.cs index 6f7e74b8..aeed6a07 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelDataSources.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelDataSources.razor.cs @@ -256,4 +256,6 @@ public partial class SettingsPanelDataSources : SettingsPanelBase await this.AvailableDataSourcesChanged.InvokeAsync(this.AvailableDataSources); } + + protected override SettingsPanel Type => SettingsPanel.DATA_SOURCES_PANEL; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelERIServer.razor b/app/MindWork AI Studio/Components/Settings/SettingsPanelERIServer.razor index 62d2fd0c..94778e2e 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelERIServer.razor +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelERIServer.razor @@ -1,7 +1,7 @@ @using AIStudio.Settings @inherits SettingsPanelBase - + diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelERIServer.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelERIServer.razor.cs index 0e01ed2f..74232e54 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelERIServer.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelERIServer.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelERIServer : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelERIServer : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_ERI_SERVER_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor.cs index 7520e596..c9a83aaf 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor.cs @@ -119,4 +119,6 @@ public partial class SettingsPanelEmbeddings : SettingsPanelBase await this.AvailableEmbeddingProvidersChanged.InvokeAsync(this.AvailableEmbeddingProviders); } + + protected override SettingsPanel Type => SettingsPanel.EMBEDDINGS_PANEL; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelGrammarSpelling.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelGrammarSpelling.razor.cs index b15d58a6..894e6101 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelGrammarSpelling.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelGrammarSpelling.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelGrammarSpelling : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelGrammarSpelling : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_GRAMMAR_SPELLING_PANEL; +} diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelIconFinder.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelIconFinder.razor.cs index e545163b..0b6ad633 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelIconFinder.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelIconFinder.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelIconFinder : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelIconFinder : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_ICON_FINDER_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelJobPostings.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelJobPostings.razor.cs index 20ecab68..0a1aa1c2 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelJobPostings.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelJobPostings.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelJobPostings : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelJobPostings : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_JOB_POSTING_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelLegalCheck.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelLegalCheck.razor.cs index 66db4693..ee4ee386 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelLegalCheck.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelLegalCheck.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelLegalCheck : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelLegalCheck : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_LEGAL_CHECK_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelMyTasks.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelMyTasks.razor.cs index 2c4291dc..edcae824 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelMyTasks.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelMyTasks.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelMyTasks : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelMyTasks : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_MY_TASKS_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelProfiles.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelProfiles.razor.cs index 15b3214d..8bb7ebab 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelProfiles.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelProfiles.razor.cs @@ -69,4 +69,6 @@ public partial class SettingsPanelProfiles : SettingsPanelBase await this.MessageBus.SendMessage(this, Event.CONFIGURATION_CHANGED); } + + protected override SettingsPanel Type => SettingsPanel.PROFILES_PANEL; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs index 0aa3afd0..a640fe73 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs @@ -148,4 +148,6 @@ public partial class SettingsPanelProviders : SettingsPanelBase this.SettingsManager.ConfigurationData.LLMProviders.CustomConfidenceScheme[llmProvider] = level; await this.SettingsManager.StoreSettings(); } + + protected override SettingsPanel Type => SettingsPanel.PROVIDER_PANEL; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelRewrite.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelRewrite.razor.cs index ca72bef5..c845b63d 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelRewrite.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelRewrite.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelRewrite : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelRewrite : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_REWRITE_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelSynonyms.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelSynonyms.razor.cs index c4a9ee40..4cf749aa 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelSynonyms.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelSynonyms.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelSynonyms : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelSynonyms : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_SYNONYMS_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelTextSummarizer.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelTextSummarizer.razor.cs index 8eab6d8c..4cd4523e 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelTextSummarizer.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelTextSummarizer.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelTextSummarizer : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelTextSummarizer : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_TEXT_SUMMARIZER_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelTranslation.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelTranslation.razor.cs index d68b5789..d831bd68 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelTranslation.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelTranslation.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelTranslation : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelTranslation : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_TRANSLATION_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelWorkspaces.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelWorkspaces.razor.cs index 881a7381..9cb17d2d 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelWorkspaces.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelWorkspaces.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelWorkspaces : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelWorkspaces : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.WORKSPACE_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelWritingEMails.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelWritingEMails.razor.cs index 5d87b618..5611fe97 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelWritingEMails.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelWritingEMails.razor.cs @@ -1,3 +1,6 @@ namespace AIStudio.Components.Settings; -public partial class SettingsPanelWritingEMails : SettingsPanelBase; \ No newline at end of file +public partial class SettingsPanelWritingEMails : SettingsPanelBase +{ + protected override SettingsPanel Type => SettingsPanel.ASSISTANT_EMAIL_PANEL; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Settings.razor b/app/MindWork AI Studio/Pages/Settings.razor index 4170eb81..0fe9b176 100644 --- a/app/MindWork AI Studio/Pages/Settings.razor +++ b/app/MindWork AI Studio/Pages/Settings.razor @@ -24,7 +24,7 @@ @if (PreviewFeatures.PRE_RAG_2024.IsEnabled(this.SettingsManager)) { - + } @@ -44,7 +44,7 @@ } - + \ No newline at end of file diff --git a/app/MindWork AI Studio/Pages/Settings.razor.cs b/app/MindWork AI Studio/Pages/Settings.razor.cs index aaf55c85..0cc1b967 100644 --- a/app/MindWork AI Studio/Pages/Settings.razor.cs +++ b/app/MindWork AI Studio/Pages/Settings.razor.cs @@ -1,3 +1,4 @@ +using AIStudio.Components.Settings; using AIStudio.Settings; using Microsoft.AspNetCore.Components; @@ -15,6 +16,7 @@ public partial class Settings : ComponentBase, IMessageBusReceiver, IDisposable private List> availableLLMProviders = new(); private List> availableEmbeddingProviders = new(); private List> availableDataSources = new(); + private SettingsPanel chosenSettingsPanel; #region Overrides of ComponentBase @@ -24,6 +26,18 @@ public partial class Settings : ComponentBase, IMessageBusReceiver, IDisposable this.MessageBus.RegisterComponent(this); this.MessageBus.ApplyFilters(this, [], [ Event.CONFIGURATION_CHANGED ]); + this.chosenSettingsPanel = MessageBus.INSTANCE.CheckDeferredMessages(Event.SWITCH_TO_SETTINGS_PANEL).FirstOrDefault(); + // var deferredContent = MessageBus.INSTANCE.CheckDeferredMessages(Event.SWITCH_TO_SETTINGS_PANEL).FirstOrDefault(); + //if (deferredContent != default) + //{ + //switch (deferredContent) + //{ + // case SettingsPanel -am besten nicht alle individuell + //} + + //} + //chosenSettingsPanel = deferredContent; + await base.OnInitializedAsync(); } diff --git a/app/MindWork AI Studio/Routes.razor.cs b/app/MindWork AI Studio/Routes.razor.cs index 98326821..7140bbf7 100644 --- a/app/MindWork AI Studio/Routes.razor.cs +++ b/app/MindWork AI Studio/Routes.razor.cs @@ -26,4 +26,7 @@ public sealed partial class Routes public const string ASSISTANT_BIAS = "/assistant/bias-of-the-day"; public const string ASSISTANT_ERI = "/assistant/eri"; // ReSharper restore InconsistentNaming + + + public const string SETTINGS_ICON_FINDER = "/settings/icons"; } \ No newline at end of file diff --git a/app/MindWork AI Studio/Tools/Event.cs b/app/MindWork AI Studio/Tools/Event.cs index 45005fd1..1843f6c6 100644 --- a/app/MindWork AI Studio/Tools/Event.cs +++ b/app/MindWork AI Studio/Tools/Event.cs @@ -40,4 +40,7 @@ public enum Event SEND_TO_SYNONYMS_ASSISTANT, SEND_TO_MY_TASKS_ASSISTANT, SEND_TO_JOB_POSTING_ASSISTANT, + + // Setting events: + SWITCH_TO_SETTINGS_PANEL, } \ No newline at end of file