feat(ui): streamline workspace settings and remove sharing
Unify compact workspace controls and panel transitions, move directory actions into the context menu, and remove backlink UI. Reorganize settings with searchable sections, per-setting resets, shortcut search, and accurate save feedback. Remove sharing UI, APIs, authentication helpers, and storage code; provide a transactional cleanup script with retirement tests. Reject directories during orphan image cleanup and cover mixed-batch preservation.
This commit is contained in:
1 parent
a716794e41
commit
19aab631ec
63 files changed
+1077
-3343
No files matched your search
@@ -142,57 +142,3 @@ func (s *Server) getTheme(w http.ResponseWriter, r *http.Request) {
|
||||
CSS string `json:"css"`
|
||||
}{manifest, css})
|
||||
}
|
||||
|
||||
// 只有有效分享的访客可读取外观;不返回账户、插件和其他应用设置。
|
||||
func (s *Server) publicAppearance(w http.ResponseWriter, r *http.Request) {
|
||||
if _, ok := s.openShare(w, r); !ok {
|
||||
return
|
||||
}
|
||||
settings, err := s.readSettings()
|
||||
if err != nil {
|
||||
internalError(w, r, err)
|
||||
return
|
||||
}
|
||||
out := map[string]any{}
|
||||
for _, key := range []string{"colorMode", "uiFontSize", "fontSize", "contentWidth", "textFont", "codeFont", "lineHeight", "paragraphSpacing", "glassOpacity"} {
|
||||
if value, ok := settings[key]; ok {
|
||||
out[key] = value
|
||||
}
|
||||
}
|
||||
var snippets []struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
CSS string `json:"css"`
|
||||
Enabled bool `json:"enabled"`
|
||||
}
|
||||
if value, ok := settings["cssSnippets"]; ok {
|
||||
if err := json.Unmarshal(value, &snippets); err != nil {
|
||||
internalError(w, r, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
active := snippets[:0]
|
||||
for _, snippet := range snippets {
|
||||
if snippet.Enabled {
|
||||
active = append(active, snippet)
|
||||
}
|
||||
}
|
||||
out["cssSnippets"] = active
|
||||
var theme string
|
||||
if value, ok := settings["theme"]; ok {
|
||||
if err := json.Unmarshal(value, &theme); err != nil {
|
||||
internalError(w, r, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
if theme != "" && theme != "default" {
|
||||
_, css, err := s.readTheme(theme)
|
||||
if err != nil {
|
||||
internalError(w, r, err)
|
||||
return
|
||||
}
|
||||
out["themeCSS"] = css
|
||||
}
|
||||
out["theme"] = theme
|
||||
writeJSON(w, 200, out)
|
||||
}
|
||||
Reference in new issue
Block a user