mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2025-09-02 15:42:56 +00:00
Added option for update installation behavior (#539)
Some checks failed
Build and Release / Read metadata (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage deb updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage deb updater) (push) Has been cancelled
Build and Release / Prepare & create release (push) Has been cancelled
Build and Release / Publish release (push) Has been cancelled
Some checks failed
Build and Release / Read metadata (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, appimage deb updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis updater) (push) Has been cancelled
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage deb updater) (push) Has been cancelled
Build and Release / Prepare & create release (push) Has been cancelled
Build and Release / Publish release (push) Has been cancelled
This commit is contained in:
parent
c1826426d9
commit
5d17dcc29b
@ -1828,6 +1828,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T1907446663"]
|
|||||||
-- Language behavior
|
-- Language behavior
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Language behavior"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Language behavior"
|
||||||
|
|
||||||
|
-- Update installation method
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T237706157"] = "Update installation method"
|
||||||
|
|
||||||
-- Language
|
-- Language
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Language"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Language"
|
||||||
|
|
||||||
@ -1858,6 +1861,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T602293588"]
|
|||||||
-- Choose the color theme that best suits for you.
|
-- Choose the color theme that best suits for you.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Choose the color theme that best suits for you."
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Choose the color theme that best suits for you."
|
||||||
|
|
||||||
|
-- Should updates be installed automatically or manually?
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T707880477"] = "Should updates be installed automatically or manually?"
|
||||||
|
|
||||||
-- Energy saving is enabled
|
-- Energy saving is enabled
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energy saving is enabled"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energy saving is enabled"
|
||||||
|
|
||||||
@ -4870,6 +4876,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2128088682
|
|||||||
-- Navigation expands on mouse hover
|
-- Navigation expands on mouse hover
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigation expands on mouse hover"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigation expands on mouse hover"
|
||||||
|
|
||||||
|
-- Install updates manually
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T220653235"] = "Install updates manually"
|
||||||
|
|
||||||
-- Also show features ready for release; these should be stable
|
-- Also show features ready for release; these should be stable
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Also show features ready for release; these should be stable"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Also show features ready for release; these should be stable"
|
||||||
|
|
||||||
@ -4909,6 +4918,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3137986690
|
|||||||
-- Delete disappearing chats older than 180 days
|
-- Delete disappearing chats older than 180 days
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Delete disappearing chats older than 180 days"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Delete disappearing chats older than 180 days"
|
||||||
|
|
||||||
|
-- Install updates automatically
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3569059463"] = "Install updates automatically"
|
||||||
|
|
||||||
-- Disable workspaces
|
-- Disable workspaces
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Disable workspaces"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Disable workspaces"
|
||||||
|
|
||||||
@ -5575,6 +5587,9 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::RUSTSERVICE::SECRETS::T4007657575"]
|
|||||||
-- No update found.
|
-- No update found.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "No update found."
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "No update found."
|
||||||
|
|
||||||
|
-- Failed to install update automatically. Please try again manually.
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T3709709946"] = "Failed to install update automatically. Please try again manually."
|
||||||
|
|
||||||
-- The hostname is not a valid HTTP(S) URL.
|
-- The hostname is not a valid HTTP(S) URL.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "The hostname is not a valid HTTP(S) URL."
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "The hostname is not a valid HTTP(S) URL."
|
||||||
|
|
||||||
|
@ -13,7 +13,8 @@
|
|||||||
<ConfigurationSelect OptionDescription="@T("Color theme")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.PreferredTheme)" Data="@ConfigurationSelectDataFactory.GetThemesData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.PreferredTheme = selectedValue)" OptionHelp="@T("Choose the color theme that best suits for you.")"/>
|
<ConfigurationSelect OptionDescription="@T("Color theme")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.PreferredTheme)" Data="@ConfigurationSelectDataFactory.GetThemesData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.PreferredTheme = selectedValue)" OptionHelp="@T("Choose the color theme that best suits for you.")"/>
|
||||||
<ConfigurationOption OptionDescription="@T("Save energy?")" LabelOn="@T("Energy saving is enabled")" LabelOff="@T("Energy saving is disabled")" State="@(() => this.SettingsManager.ConfigurationData.App.IsSavingEnergy)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.App.IsSavingEnergy = updatedState)" OptionHelp="@T("When enabled, streamed content from the AI is updated once every third second. When disabled, streamed content will be updated as soon as it is available.")"/>
|
<ConfigurationOption OptionDescription="@T("Save energy?")" LabelOn="@T("Energy saving is enabled")" LabelOff="@T("Energy saving is disabled")" State="@(() => this.SettingsManager.ConfigurationData.App.IsSavingEnergy)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.App.IsSavingEnergy = updatedState)" OptionHelp="@T("When enabled, streamed content from the AI is updated once every third second. When disabled, streamed content will be updated as soon as it is available.")"/>
|
||||||
<ConfigurationOption OptionDescription="@T("Enable spellchecking?")" LabelOn="@T("Spellchecking is enabled")" LabelOff="@T("Spellchecking is disabled")" State="@(() => this.SettingsManager.ConfigurationData.App.EnableSpellchecking)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.App.EnableSpellchecking = updatedState)" OptionHelp="@T("When enabled, spellchecking will be active in all input fields. Depending on your operating system, errors may not be visually highlighted, but right-clicking may still offer possible corrections.")"/>
|
<ConfigurationOption OptionDescription="@T("Enable spellchecking?")" LabelOn="@T("Spellchecking is enabled")" LabelOff="@T("Spellchecking is disabled")" State="@(() => this.SettingsManager.ConfigurationData.App.EnableSpellchecking)" StateUpdate="@(updatedState => this.SettingsManager.ConfigurationData.App.EnableSpellchecking = updatedState)" OptionHelp="@T("When enabled, spellchecking will be active in all input fields. Depending on your operating system, errors may not be visually highlighted, but right-clicking may still offer possible corrections.")"/>
|
||||||
<ConfigurationSelect OptionDescription="@T("Check for updates")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.UpdateBehavior)" Data="@ConfigurationSelectDataFactory.GetUpdateBehaviorData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.UpdateBehavior = selectedValue)" OptionHelp="@T("How often should we check for app updates?")" IsLocked="() => ManagedConfiguration.TryGet(x => x.App, x => x.UpdateBehavior, out var meta) && meta.IsLocked"/>
|
<ConfigurationSelect OptionDescription="@T("Check for updates")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.UpdateInterval)" Data="@ConfigurationSelectDataFactory.GetUpdateIntervalData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.UpdateInterval = selectedValue)" OptionHelp="@T("How often should we check for app updates?")" IsLocked="() => ManagedConfiguration.TryGet(x => x.App, x => x.UpdateInterval, out var meta) && meta.IsLocked"/>
|
||||||
|
<ConfigurationSelect OptionDescription="@T("Update installation method")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.UpdateInstallation)" Data="@ConfigurationSelectDataFactory.GetUpdateBehaviourData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.UpdateInstallation = selectedValue)" OptionHelp="@T("Should updates be installed automatically or manually?")" IsLocked="() => ManagedConfiguration.TryGet(x => x.App, x => x.UpdateInstallation, out var meta) && meta.IsLocked"/>
|
||||||
<ConfigurationSelect OptionDescription="@T("Navigation bar behavior")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.NavigationBehavior)" Data="@ConfigurationSelectDataFactory.GetNavBehaviorData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.NavigationBehavior = selectedValue)" OptionHelp="@T("Select the desired behavior for the navigation bar.")"/>
|
<ConfigurationSelect OptionDescription="@T("Navigation bar behavior")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.NavigationBehavior)" Data="@ConfigurationSelectDataFactory.GetNavBehaviorData()" SelectionUpdate="@(selectedValue => this.SettingsManager.ConfigurationData.App.NavigationBehavior = selectedValue)" OptionHelp="@T("Select the desired behavior for the navigation bar.")"/>
|
||||||
<ConfigurationSelect OptionDescription="@T("Preview feature visibility")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.PreviewVisibility)" Data="@ConfigurationSelectDataFactory.GetPreviewVisibility()" SelectionUpdate="@this.UpdatePreviewFeatures" OptionHelp="@T("Do you want to show preview features in the app?")"/>
|
<ConfigurationSelect OptionDescription="@T("Preview feature visibility")" SelectedValue="@(() => this.SettingsManager.ConfigurationData.App.PreviewVisibility)" Data="@ConfigurationSelectDataFactory.GetPreviewVisibility()" SelectionUpdate="@this.UpdatePreviewFeatures" OptionHelp="@T("Do you want to show preview features in the app?")"/>
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan
|
|||||||
[
|
[
|
||||||
Event.UPDATE_AVAILABLE, Event.CONFIGURATION_CHANGED, Event.COLOR_THEME_CHANGED, Event.SHOW_ERROR,
|
Event.UPDATE_AVAILABLE, Event.CONFIGURATION_CHANGED, Event.COLOR_THEME_CHANGED, Event.SHOW_ERROR,
|
||||||
Event.SHOW_ERROR, Event.SHOW_WARNING, Event.SHOW_SUCCESS, Event.STARTUP_PLUGIN_SYSTEM,
|
Event.SHOW_ERROR, Event.SHOW_WARNING, Event.SHOW_SUCCESS, Event.STARTUP_PLUGIN_SYSTEM,
|
||||||
Event.PLUGINS_RELOADED
|
Event.PLUGINS_RELOADED, Event.INSTALL_UPDATE,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Set the snackbar for the update service:
|
// Set the snackbar for the update service:
|
||||||
@ -143,6 +143,11 @@ public partial class MainLayout : LayoutComponentBase, IMessageBusReceiver, ILan
|
|||||||
{
|
{
|
||||||
switch (triggeredEvent)
|
switch (triggeredEvent)
|
||||||
{
|
{
|
||||||
|
case Event.INSTALL_UPDATE:
|
||||||
|
this.performingUpdate = true;
|
||||||
|
this.StateHasChanged();
|
||||||
|
break;
|
||||||
|
|
||||||
case Event.UPDATE_AVAILABLE:
|
case Event.UPDATE_AVAILABLE:
|
||||||
if (data is UpdateResponse updateResponse)
|
if (data is UpdateResponse updateResponse)
|
||||||
{
|
{
|
||||||
|
@ -62,9 +62,13 @@ CONFIG["LLM_PROVIDERS"][#CONFIG["LLM_PROVIDERS"]+1] = {
|
|||||||
|
|
||||||
CONFIG["SETTINGS"] = {}
|
CONFIG["SETTINGS"] = {}
|
||||||
|
|
||||||
-- Configure the update behavior:
|
-- Configure the update check interval:
|
||||||
-- Allowed values are: NO_CHECK, ONCE_STARTUP, HOURLY, DAILY, WEEKLY
|
-- Allowed values are: NO_CHECK, ONCE_STARTUP, HOURLY, DAILY, WEEKLY
|
||||||
-- CONFIG["SETTINGS"]["DataApp.UpdateBehavior"] = "NO_CHECK"
|
-- CONFIG["SETTINGS"]["DataApp.UpdateInterval"] = "NO_CHECK"
|
||||||
|
|
||||||
|
-- Configure how updates are installed:
|
||||||
|
-- Allowed values are: MANUAL, AUTOMATIC
|
||||||
|
-- CONFIG["SETTINGS"]["DataApp.UpdateInstallation"] = "MANUAL"
|
||||||
|
|
||||||
-- Configure the user permission to add providers:
|
-- Configure the user permission to add providers:
|
||||||
-- Allowed values are: true, false
|
-- Allowed values are: true, false
|
||||||
|
@ -1830,6 +1830,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T1907446663"]
|
|||||||
-- Language behavior
|
-- Language behavior
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Sprachverhalten"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Sprachverhalten"
|
||||||
|
|
||||||
|
-- Update installation method
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T237706157"] = "Installationsmethode für Updates"
|
||||||
|
|
||||||
-- Language
|
-- Language
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Sprache"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Sprache"
|
||||||
|
|
||||||
@ -1860,6 +1863,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T602293588"]
|
|||||||
-- Choose the color theme that best suits for you.
|
-- Choose the color theme that best suits for you.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Wählen Sie das Farbschema, das am besten zu Ihnen passt."
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Wählen Sie das Farbschema, das am besten zu Ihnen passt."
|
||||||
|
|
||||||
|
-- Should updates be installed automatically or manually?
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T707880477"] = "Sollen Updates automatisch oder manuell installiert werden?"
|
||||||
|
|
||||||
-- Energy saving is enabled
|
-- Energy saving is enabled
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energiesparmodus ist aktiviert"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energiesparmodus ist aktiviert"
|
||||||
|
|
||||||
@ -4872,6 +4878,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2128088682
|
|||||||
-- Navigation expands on mouse hover
|
-- Navigation expands on mouse hover
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigationsleiste erweitert sich, wenn sich die Maus darüber befindet"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigationsleiste erweitert sich, wenn sich die Maus darüber befindet"
|
||||||
|
|
||||||
|
-- Install updates manually
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T220653235"] = "Updates manuell installieren"
|
||||||
|
|
||||||
-- Also show features ready for release; these should be stable
|
-- Also show features ready for release; these should be stable
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Auch Funktionen anzeigen, die bereit für die Veröffentlichung sind; diese sollten stabil sein."
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Auch Funktionen anzeigen, die bereit für die Veröffentlichung sind; diese sollten stabil sein."
|
||||||
|
|
||||||
@ -4911,6 +4920,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3137986690
|
|||||||
-- Disappearing chats: delete chats older than 180 days
|
-- Disappearing chats: delete chats older than 180 days
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Selbstlöschende Chats: lösche Chats die älter als 180 Tage sind"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Selbstlöschende Chats: lösche Chats die älter als 180 Tage sind"
|
||||||
|
|
||||||
|
-- Install updates automatically
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3569059463"] = "Updates automatisch installieren"
|
||||||
|
|
||||||
-- Disable workspaces
|
-- Disable workspaces
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Arbeitsbereiche deaktivieren"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Arbeitsbereiche deaktivieren"
|
||||||
|
|
||||||
@ -5577,6 +5589,9 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::RUSTSERVICE::SECRETS::T4007657575"]
|
|||||||
-- No update found.
|
-- No update found.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "Kein Update gefunden."
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "Kein Update gefunden."
|
||||||
|
|
||||||
|
-- Failed to install update automatically. Please try again manually.
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T3709709946"] = "Fehler bei der automatischen Installation des Updates. Bitte versuchen Sie es manuell erneut."
|
||||||
|
|
||||||
-- The hostname is not a valid HTTP(S) URL.
|
-- The hostname is not a valid HTTP(S) URL.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "Der Hostname ist keine gültige HTTP(S)-URL."
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "Der Hostname ist keine gültige HTTP(S)-URL."
|
||||||
|
|
||||||
|
@ -1830,6 +1830,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T1907446663"]
|
|||||||
-- Language behavior
|
-- Language behavior
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Language behavior"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2341504363"] = "Language behavior"
|
||||||
|
|
||||||
|
-- Update installation method
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T237706157"] = "Update installation method"
|
||||||
|
|
||||||
-- Language
|
-- Language
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Language"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T2591284123"] = "Language"
|
||||||
|
|
||||||
@ -1860,6 +1863,9 @@ UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T602293588"]
|
|||||||
-- Choose the color theme that best suits for you.
|
-- Choose the color theme that best suits for you.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Choose the color theme that best suits for you."
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T654667432"] = "Choose the color theme that best suits for you."
|
||||||
|
|
||||||
|
-- Should updates be installed automatically or manually?
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T707880477"] = "Should updates be installed automatically or manually?"
|
||||||
|
|
||||||
-- Energy saving is enabled
|
-- Energy saving is enabled
|
||||||
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energy saving is enabled"
|
UI_TEXT_CONTENT["AISTUDIO::COMPONENTS::SETTINGS::SETTINGSPANELAPP::T71162186"] = "Energy saving is enabled"
|
||||||
|
|
||||||
@ -4872,6 +4878,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2128088682
|
|||||||
-- Navigation expands on mouse hover
|
-- Navigation expands on mouse hover
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigation expands on mouse hover"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2195945406"] = "Navigation expands on mouse hover"
|
||||||
|
|
||||||
|
-- Install updates manually
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T220653235"] = "Install updates manually"
|
||||||
|
|
||||||
-- Also show features ready for release; these should be stable
|
-- Also show features ready for release; these should be stable
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Also show features ready for release; these should be stable"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T2301448762"] = "Also show features ready for release; these should be stable"
|
||||||
|
|
||||||
@ -4911,6 +4920,9 @@ UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3137986690
|
|||||||
-- Disappearing chats: delete chats older than 180 days
|
-- Disappearing chats: delete chats older than 180 days
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Disappearing chats: delete chats older than 180 days"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3491430707"] = "Disappearing chats: delete chats older than 180 days"
|
||||||
|
|
||||||
|
-- Install updates automatically
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3569059463"] = "Install updates automatically"
|
||||||
|
|
||||||
-- Disable workspaces
|
-- Disable workspaces
|
||||||
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Disable workspaces"
|
UI_TEXT_CONTENT["AISTUDIO::SETTINGS::CONFIGURATIONSELECTDATAFACTORY::T3612390107"] = "Disable workspaces"
|
||||||
|
|
||||||
@ -5577,6 +5589,9 @@ UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::RUSTSERVICE::SECRETS::T4007657575"]
|
|||||||
-- No update found.
|
-- No update found.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "No update found."
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T1015418291"] = "No update found."
|
||||||
|
|
||||||
|
-- Failed to install update automatically. Please try again manually.
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::SERVICES::UPDATESERVICE::T3709709946"] = "Failed to install update automatically. Please try again manually."
|
||||||
|
|
||||||
-- The hostname is not a valid HTTP(S) URL.
|
-- The hostname is not a valid HTTP(S) URL.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "The hostname is not a valid HTTP(S) URL."
|
UI_TEXT_CONTENT["AISTUDIO::TOOLS::VALIDATION::DATASOURCEVALIDATION::T1013354736"] = "The hostname is not a valid HTTP(S) URL."
|
||||||
|
|
||||||
|
@ -63,13 +63,19 @@ public static class ConfigurationSelectDataFactory
|
|||||||
yield return new(TB("Enter is sending the input"), SendBehavior.ENTER_IS_SENDING);
|
yield return new(TB("Enter is sending the input"), SendBehavior.ENTER_IS_SENDING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IEnumerable<ConfigurationSelectData<UpdateBehavior>> GetUpdateBehaviorData()
|
public static IEnumerable<ConfigurationSelectData<UpdateInterval>> GetUpdateIntervalData()
|
||||||
{
|
{
|
||||||
yield return new(TB("No automatic update checks"), UpdateBehavior.NO_CHECK);
|
yield return new(TB("No automatic update checks"), UpdateInterval.NO_CHECK);
|
||||||
yield return new(TB("Once at startup"), UpdateBehavior.ONCE_STARTUP);
|
yield return new(TB("Once at startup"), UpdateInterval.ONCE_STARTUP);
|
||||||
yield return new(TB("Check every hour"), UpdateBehavior.HOURLY);
|
yield return new(TB("Check every hour"), UpdateInterval.HOURLY);
|
||||||
yield return new(TB("Check every day"), UpdateBehavior.DAILY);
|
yield return new(TB("Check every day"), UpdateInterval.DAILY);
|
||||||
yield return new (TB("Check every week"), UpdateBehavior.WEEKLY);
|
yield return new (TB("Check every week"), UpdateInterval.WEEKLY);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<ConfigurationSelectData<UpdateInstallation>> GetUpdateBehaviourData()
|
||||||
|
{
|
||||||
|
yield return new(TB("Install updates manually"), UpdateInstallation.MANUAL);
|
||||||
|
yield return new(TB("Install updates automatically"), UpdateInstallation.AUTOMATIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IEnumerable<ConfigurationSelectData<WorkspaceStorageBehavior>> GetWorkspaceStorageBehaviorData()
|
public static IEnumerable<ConfigurationSelectData<WorkspaceStorageBehavior>> GetWorkspaceStorageBehaviorData()
|
||||||
|
@ -40,7 +40,12 @@ public sealed class DataApp(Expression<Func<Data, DataApp>>? configSelection = n
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// If and when we should look for updates.
|
/// If and when we should look for updates.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public UpdateBehavior UpdateBehavior { get; set; } = ManagedConfiguration.Register(configSelection, n => n.UpdateBehavior, UpdateBehavior.HOURLY);
|
public UpdateInterval UpdateInterval { get; set; } = ManagedConfiguration.Register(configSelection, n => n.UpdateInterval, UpdateInterval.HOURLY);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// How updates should be installed.
|
||||||
|
/// </summary>
|
||||||
|
public UpdateInstallation UpdateInstallation { get; set; } = ManagedConfiguration.Register(configSelection, n => n.UpdateInstallation, UpdateInstallation.MANUAL);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The navigation behavior.
|
/// The navigation behavior.
|
||||||
|
@ -41,7 +41,7 @@ public sealed class DataV1V3
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// If and when we should look for updates.
|
/// If and when we should look for updates.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public UpdateBehavior UpdateBehavior { get; set; } = UpdateBehavior.ONCE_STARTUP;
|
public UpdateInterval UpdateInterval { get; set; } = UpdateInterval.ONCE_STARTUP;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The navigation behavior.
|
/// The navigation behavior.
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
namespace AIStudio.Settings.DataModel;
|
||||||
|
|
||||||
|
public enum UpdateInstallation
|
||||||
|
{
|
||||||
|
MANUAL,
|
||||||
|
AUTOMATIC,
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
namespace AIStudio.Settings.DataModel;
|
namespace AIStudio.Settings.DataModel;
|
||||||
|
|
||||||
public enum UpdateBehavior
|
public enum UpdateInterval
|
||||||
{
|
{
|
||||||
NO_CHECK,
|
NO_CHECK,
|
||||||
ONCE_STARTUP,
|
ONCE_STARTUP,
|
@ -90,7 +90,7 @@ public static class SettingsMigrations
|
|||||||
IsSavingEnergy = previousData.IsSavingEnergy,
|
IsSavingEnergy = previousData.IsSavingEnergy,
|
||||||
NextProviderNum = previousData.NextProviderNum,
|
NextProviderNum = previousData.NextProviderNum,
|
||||||
ShortcutSendBehavior = previousData.ShortcutSendBehavior,
|
ShortcutSendBehavior = previousData.ShortcutSendBehavior,
|
||||||
UpdateBehavior = previousData.UpdateBehavior,
|
UpdateInterval = previousData.UpdateInterval,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ public static class SettingsMigrations
|
|||||||
IsSavingEnergy = previousData.IsSavingEnergy,
|
IsSavingEnergy = previousData.IsSavingEnergy,
|
||||||
NextProviderNum = previousData.NextProviderNum,
|
NextProviderNum = previousData.NextProviderNum,
|
||||||
ShortcutSendBehavior = previousData.ShortcutSendBehavior,
|
ShortcutSendBehavior = previousData.ShortcutSendBehavior,
|
||||||
UpdateBehavior = previousData.UpdateBehavior,
|
UpdateInterval = previousData.UpdateInterval,
|
||||||
WorkspaceStorageBehavior = previousData.WorkspaceStorageBehavior,
|
WorkspaceStorageBehavior = previousData.WorkspaceStorageBehavior,
|
||||||
WorkspaceStorageTemporaryMaintenancePolicy = previousData.WorkspaceStorageTemporaryMaintenancePolicy,
|
WorkspaceStorageTemporaryMaintenancePolicy = previousData.WorkspaceStorageTemporaryMaintenancePolicy,
|
||||||
};
|
};
|
||||||
@ -141,7 +141,7 @@ public static class SettingsMigrations
|
|||||||
{
|
{
|
||||||
EnableSpellchecking = previousConfig.EnableSpellchecking,
|
EnableSpellchecking = previousConfig.EnableSpellchecking,
|
||||||
IsSavingEnergy = previousConfig.IsSavingEnergy,
|
IsSavingEnergy = previousConfig.IsSavingEnergy,
|
||||||
UpdateBehavior = previousConfig.UpdateBehavior,
|
UpdateInterval = previousConfig.UpdateInterval,
|
||||||
NavigationBehavior = previousConfig.NavigationBehavior,
|
NavigationBehavior = previousConfig.NavigationBehavior,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ public enum Event
|
|||||||
// Update events:
|
// Update events:
|
||||||
USER_SEARCH_FOR_UPDATE,
|
USER_SEARCH_FOR_UPDATE,
|
||||||
UPDATE_AVAILABLE,
|
UPDATE_AVAILABLE,
|
||||||
|
INSTALL_UPDATE,
|
||||||
|
|
||||||
// Chat events:
|
// Chat events:
|
||||||
HAS_CHAT_UNSAVED_CHANGES,
|
HAS_CHAT_UNSAVED_CHANGES,
|
||||||
|
@ -53,7 +53,10 @@ public sealed class PluginConfiguration(bool isInternal, LuaState state, PluginT
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Config: check for updates, and if so, how often?
|
// Config: check for updates, and if so, how often?
|
||||||
ManagedConfiguration.TryProcessConfiguration(x => x.App, x => x.UpdateBehavior, this.Id, settingsTable, dryRun);
|
ManagedConfiguration.TryProcessConfiguration(x => x.App, x => x.UpdateInterval, this.Id, settingsTable, dryRun);
|
||||||
|
|
||||||
|
// Config: how should updates be installed?
|
||||||
|
ManagedConfiguration.TryProcessConfiguration(x => x.App, x => x.UpdateInstallation, this.Id, settingsTable, dryRun);
|
||||||
|
|
||||||
// Config: allow the user to add providers?
|
// Config: allow the user to add providers?
|
||||||
ManagedConfiguration.TryProcessConfiguration(x => x.App, x => x.AllowUserToAddProvider, this.Id, settingsTable, dryRun);
|
ManagedConfiguration.TryProcessConfiguration(x => x.App, x => x.AllowUserToAddProvider, this.Id, settingsTable, dryRun);
|
||||||
|
@ -139,7 +139,11 @@ public static partial class PluginFactory
|
|||||||
wasConfigurationChanged = true;
|
wasConfigurationChanged = true;
|
||||||
|
|
||||||
// Check for update behavior:
|
// Check for update behavior:
|
||||||
if(ManagedConfiguration.IsConfigurationLeftOver<DataApp, UpdateBehavior>(x => x.App, x => x.UpdateBehavior, AVAILABLE_PLUGINS))
|
if(ManagedConfiguration.IsConfigurationLeftOver<DataApp, UpdateInterval>(x => x.App, x => x.UpdateInterval, AVAILABLE_PLUGINS))
|
||||||
|
wasConfigurationChanged = true;
|
||||||
|
|
||||||
|
// Check for update installation behavior:
|
||||||
|
if(ManagedConfiguration.IsConfigurationLeftOver<DataApp, UpdateInstallation>(x => x.App, x => x.UpdateInstallation, AVAILABLE_PLUGINS))
|
||||||
wasConfigurationChanged = true;
|
wasConfigurationChanged = true;
|
||||||
|
|
||||||
// Check for users allowed to added providers:
|
// Check for users allowed to added providers:
|
||||||
|
@ -42,14 +42,14 @@ public sealed class UpdateService : BackgroundService, IMessageBusReceiver
|
|||||||
//
|
//
|
||||||
// Set the update interval based on the user's settings.
|
// Set the update interval based on the user's settings.
|
||||||
//
|
//
|
||||||
this.updateInterval = this.settingsManager.ConfigurationData.App.UpdateBehavior switch
|
this.updateInterval = this.settingsManager.ConfigurationData.App.UpdateInterval switch
|
||||||
{
|
{
|
||||||
UpdateBehavior.NO_CHECK => Timeout.InfiniteTimeSpan,
|
UpdateInterval.NO_CHECK => Timeout.InfiniteTimeSpan,
|
||||||
UpdateBehavior.ONCE_STARTUP => Timeout.InfiniteTimeSpan,
|
UpdateInterval.ONCE_STARTUP => Timeout.InfiniteTimeSpan,
|
||||||
|
|
||||||
UpdateBehavior.HOURLY => TimeSpan.FromHours(1),
|
UpdateInterval.HOURLY => TimeSpan.FromHours(1),
|
||||||
UpdateBehavior.DAILY => TimeSpan.FromDays(1),
|
UpdateInterval.DAILY => TimeSpan.FromDays(1),
|
||||||
UpdateBehavior.WEEKLY => TimeSpan.FromDays(7),
|
UpdateInterval.WEEKLY => TimeSpan.FromDays(7),
|
||||||
|
|
||||||
_ => TimeSpan.FromHours(1)
|
_ => TimeSpan.FromHours(1)
|
||||||
};
|
};
|
||||||
@ -58,7 +58,7 @@ public sealed class UpdateService : BackgroundService, IMessageBusReceiver
|
|||||||
// When the user doesn't want to check for updates, we can
|
// When the user doesn't want to check for updates, we can
|
||||||
// return early.
|
// return early.
|
||||||
//
|
//
|
||||||
if(this.settingsManager.ConfigurationData.App.UpdateBehavior is UpdateBehavior.NO_CHECK)
|
if(this.settingsManager.ConfigurationData.App.UpdateInterval is UpdateInterval.NO_CHECK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -115,6 +115,24 @@ public sealed class UpdateService : BackgroundService, IMessageBusReceiver
|
|||||||
var response = await this.rust.CheckForUpdate();
|
var response = await this.rust.CheckForUpdate();
|
||||||
if (response.UpdateIsAvailable)
|
if (response.UpdateIsAvailable)
|
||||||
{
|
{
|
||||||
|
if (this.settingsManager.ConfigurationData.App.UpdateInstallation is UpdateInstallation.AUTOMATIC)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await this.messageBus.SendMessage<bool>(null, Event.INSTALL_UPDATE);
|
||||||
|
await this.rust.InstallUpdate();
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
SNACKBAR!.Add(TB("Failed to install update automatically. Please try again manually."), Severity.Error, config =>
|
||||||
|
{
|
||||||
|
config.Icon = Icons.Material.Filled.Error;
|
||||||
|
config.IconSize = Size.Large;
|
||||||
|
config.IconColor = Color.Error;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
await this.messageBus.SendMessage(null, Event.UPDATE_AVAILABLE, response);
|
await this.messageBus.SendMessage(null, Event.UPDATE_AVAILABLE, response);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
# v0.9.51, build 226 (2025-08-xx xx:xx UTC)
|
# v0.9.51, build 226 (2025-08-xx xx:xx UTC)
|
||||||
- Added support for predefined chat templates in configuration plugins to help enterprises roll out consistent templates across the organization.
|
- Added support for predefined chat templates in configuration plugins to help enterprises roll out consistent templates across the organization.
|
||||||
|
- Added the ability to choose between automatic and manual update installation to the app settings (default is manual).
|
||||||
|
- Added the ability to control the update installation behavior by configuration plugins.
|
||||||
- Improved memory usage in several areas of the app.
|
- Improved memory usage in several areas of the app.
|
||||||
- Improved plugin management for configuration plugins so that hot reload detects when a provider or chat template has been removed.
|
- Improved plugin management for configuration plugins so that hot reload detects when a provider or chat template has been removed.
|
||||||
|
- Changed the configuration plugin setting name for how often to check for updates from `UpdateBehavior` to `UpdateInterval`.
|
||||||
- Fixed a bug in various assistants where some text fields were not reset when resetting.
|
- Fixed a bug in various assistants where some text fields were not reset when resetting.
|
||||||
|
Loading…
Reference in New Issue
Block a user