Skip to content

Commit be6bc20

Browse files
author
mguyenanastacio
committed
fix: restore language from web-settings.json on server startup; set cookie on lang switch for login page consistency
1 parent 536ed2b commit be6bc20

2 files changed

Lines changed: 15 additions & 5 deletions

File tree

server/server.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,6 +1012,12 @@ func New(agent *p115pkg.Agent, port int) *Server {
10121012
s.JackettURL = ws.JackettURL
10131013
s.JackettAPIKey = ws.JackettAPIKey
10141014
s.JackettAdminPassword = ws.JackettAdminPassword
1015+
// Restore language preference from persisted settings
1016+
if ws.Lang != "" && s.Agent != nil {
1017+
st := s.Agent.GetSettings()
1018+
st.Lang = ws.Lang
1019+
s.Agent.UpdateSettings(st)
1020+
}
10151021
// Apply proxy to Jackett client (same as engine)
10161022
cfg, _, _ := config.LoadWithOptions(config.CLIParams{}, config.LoadOptions{})
10171023
if cfg.Proxy.HTTP != "" {
@@ -2877,6 +2883,8 @@ func (s *Server) handleAPILang(w http.ResponseWriter, r *http.Request) {
28772883
st.Lang = lang
28782884
s.Agent.UpdateSettings(st)
28792885
}
2886+
// Set cookie for login page language consistency
2887+
http.SetCookie(w, &http.Cookie{Name: "r2c_lang", Value: lang, Path: "/", MaxAge: 365 * 24 * 3600})
28802888
w.Header().Set("Content-Type", "application/json")
28812889
fmt.Fprint(w, `{"ok":true}`)
28822890
}

server/templates.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package server
22

3-
import ("html/template"
4-
"strings"
3+
import (
4+
"html/template"
5+
"strings"
56
)
67

78

@@ -1466,14 +1467,15 @@ var dashboardTemplate = template.Must(template.New("dashboard").Funcs(template.F
14661467
}
14671468
async function addTaskWithBrowse(magnet){
14681469
pendingMagnet=magnet;
1469-
browseCallback=function(id){closeModal();doAddTask(id);};
1470+
browseCallback=function(id){var sp=document.getElementById('browse-subdir')?.value?.trim()||'';closeModal();doAddTask(id,sp);};
14701471
browseDirs('0');
14711472
}
1472-
async function doAddTask(cid){
1473+
async function doAddTask(cid,savepath){
14731474
closeModal();
14741475
try{
14751476
var body='tasks='+encodeURIComponent(pendingMagnet);
14761477
if(cid&&cid!=='0')body+='&cid='+encodeURIComponent(cid);
1478+
if(savepath)body+='&savepath='+encodeURIComponent(savepath);
14771479
var r=await fetch('/add',{method:'POST',headers:{'Content-Type':'application/x-www-form-urlencoded'},body:body});
14781480
var j=await r.json();
14791481
if(j.status==='ok'){alertModal('{{index .T "task_added"}}');}else{alertModal(j.message||'{{index .T "add_failed"}}');}
@@ -1507,7 +1509,7 @@ var dashboardTemplate = template.Must(template.New("dashboard").Funcs(template.F
15071509
}
15081510
function updateBrowseModal(title,body,pid){
15091511
document.getElementById('g-modal-title').textContent=title;
1510-
document.getElementById('g-modal-body').innerHTML=body;
1512+
document.getElementById('g-modal-body').innerHTML=body+'<div style="margin-top:10px;"><label style="font-size:12px;color:var(--muted);display:block;margin-bottom:4px;">子目录 (可选):</label><input id="browse-subdir" type="text" placeholder="新建子文件夹名称" style="width:100%;box-sizing:border-box;font-size:13px;padding:6px 10px;"></div>';
15111513
var btns=document.getElementById('g-modal-btns');
15121514
btns.innerHTML='<button onclick="browseCallback(\''+pid+'\')" style="margin:0;padding:6px 16px;background:var(--accent-2);">{{index .T "select_current_dir"}}</button><button onclick="closeModal()" style="margin:0;padding:6px 16px;background:var(--danger);">{{index .T "close_btn"}}</button>';
15131515
document.getElementById('g-modal').style.display='flex';

0 commit comments

Comments
 (0)