diff --git a/backend/apps/webui/main.py b/backend/apps/webui/main.py index 2fd73a22c..82bdea165 100644 --- a/backend/apps/webui/main.py +++ b/backend/apps/webui/main.py @@ -43,6 +43,7 @@ from config import ( JWT_EXPIRES_IN, WEBUI_BANNERS, ENABLE_COMMUNITY_SHARING, + ENABLE_MESSAGE_RATING, AppConfig, OAUTH_USERNAME_CLAIM, OAUTH_PICTURE_CLAIM, @@ -81,6 +82,7 @@ app.state.config.WEBHOOK_URL = WEBHOOK_URL app.state.config.BANNERS = WEBUI_BANNERS app.state.config.ENABLE_COMMUNITY_SHARING = ENABLE_COMMUNITY_SHARING +app.state.config.ENABLE_MESSAGE_RATING = ENABLE_MESSAGE_RATING app.state.config.OAUTH_USERNAME_CLAIM = OAUTH_USERNAME_CLAIM app.state.config.OAUTH_PICTURE_CLAIM = OAUTH_PICTURE_CLAIM diff --git a/backend/apps/webui/routers/auths.py b/backend/apps/webui/routers/auths.py index e2d6a5036..c1f46293d 100644 --- a/backend/apps/webui/routers/auths.py +++ b/backend/apps/webui/routers/auths.py @@ -352,6 +352,7 @@ async def get_admin_config(request: Request, user=Depends(get_admin_user)): "DEFAULT_USER_ROLE": request.app.state.config.DEFAULT_USER_ROLE, "JWT_EXPIRES_IN": request.app.state.config.JWT_EXPIRES_IN, "ENABLE_COMMUNITY_SHARING": request.app.state.config.ENABLE_COMMUNITY_SHARING, + "ENABLE_MESSAGE_RATING": request.app.state.config.ENABLE_MESSAGE_RATING, } @@ -361,6 +362,7 @@ class AdminConfig(BaseModel): DEFAULT_USER_ROLE: str JWT_EXPIRES_IN: str ENABLE_COMMUNITY_SHARING: bool + ENABLE_MESSAGE_RATING: bool @router.post("/admin/config") @@ -382,6 +384,7 @@ async def update_admin_config( request.app.state.config.ENABLE_COMMUNITY_SHARING = ( form_data.ENABLE_COMMUNITY_SHARING ) + request.app.state.config.ENABLE_MESSAGE_RATING = form_data.ENABLE_MESSAGE_RATING return { "SHOW_ADMIN_DETAILS": request.app.state.config.SHOW_ADMIN_DETAILS, @@ -389,6 +392,7 @@ async def update_admin_config( "DEFAULT_USER_ROLE": request.app.state.config.DEFAULT_USER_ROLE, "JWT_EXPIRES_IN": request.app.state.config.JWT_EXPIRES_IN, "ENABLE_COMMUNITY_SHARING": request.app.state.config.ENABLE_COMMUNITY_SHARING, + "ENABLE_MESSAGE_RATING": request.app.state.config.ENABLE_MESSAGE_RATING, } diff --git a/backend/config.py b/backend/config.py index d40487699..e10d23dca 100644 --- a/backend/config.py +++ b/backend/config.py @@ -842,6 +842,12 @@ ENABLE_COMMUNITY_SHARING = PersistentConfig( os.environ.get("ENABLE_COMMUNITY_SHARING", "True").lower() == "true", ) +ENABLE_MESSAGE_RATING = PersistentConfig( + "ENABLE_MESSAGE_RATING", + "ui.enable_message_rating", + os.environ.get("ENABLE_MESSAGE_RATING", "True").lower() == "true", +) + def validate_cors_origins(origins): for origin in origins: diff --git a/backend/main.py b/backend/main.py index 7377cc2df..f516bae35 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1973,6 +1973,7 @@ async def get_app_config(): "enable_web_search": rag_app.state.config.ENABLE_RAG_WEB_SEARCH, "enable_image_generation": images_app.state.config.ENABLED, "enable_community_sharing": webui_app.state.config.ENABLE_COMMUNITY_SHARING, + "enable_message_rating": webui_app.state.config.ENABLE_MESSAGE_RATING, "enable_admin_export": ENABLE_ADMIN_EXPORT, "enable_admin_chat_access": ENABLE_ADMIN_CHAT_ACCESS, }, diff --git a/src/lib/components/admin/Settings.svelte b/src/lib/components/admin/Settings.svelte index afb8736ea..e242ab632 100644 --- a/src/lib/components/admin/Settings.svelte +++ b/src/lib/components/admin/Settings.svelte @@ -336,8 +336,11 @@
{#if selectedTab === 'general'} { + saveHandler={async () => { toast.success($i18n.t('Settings saved successfully!')); + + await tick(); + await config.set(await getBackendConfig()); }} /> {:else if selectedTab === 'users'} diff --git a/src/lib/components/admin/Settings/General.svelte b/src/lib/components/admin/Settings/General.svelte index bc66c2e01..776b7ff8d 100644 --- a/src/lib/components/admin/Settings/General.svelte +++ b/src/lib/components/admin/Settings/General.svelte @@ -1,22 +1,10 @@