桌面 GUI 外链修复 + 主题顺序调整(含结构扁平化进行中的工作区基线)
- 集成 tauri-plugin-opener:Cargo/lib.rs/capabilities/npm 四处接线,新增 src/openExternal.ts(桌面走 opener,浏览器回退 window.open,相对路径绝对化) - 关于页 4 个链接、活动栏官网菜单、代理错误横幅 2 处健康检查链接全部改走 openExternal,桌面端可正常跳转 - 设置→外观 主题顺序调整为 深色/浅色/跟随系统 - release 二进制重编并验证(浏览器实测关于页链接可开文档页) - 附带工作区中未提交的扁平化重构现状(另一会话进行中) - homepage 落地页与文档终检通过(8787 / 与 /docs 双 200)
This commit is contained in:
1 parent
6452026fd6
commit
2bb4ef7a95
299 files changed
+6059
-3322
No files matched your search
@@ -0,0 +1,56 @@
|
||||
package store
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
type PublishedDoc struct {
|
||||
ProjectID string `json:"projectId"`
|
||||
Name string `json:"name"`
|
||||
Token string `json:"token"`
|
||||
Content string `json:"-"`
|
||||
UpdatedAt int64 `json:"updatedAt"`
|
||||
}
|
||||
|
||||
func (s *Store) PublishedDocs() ([]PublishedDoc, error) {
|
||||
rows, err := s.db.Query(`SELECT project_id,name,token,updated_at FROM published_docs ORDER BY name`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
docs := []PublishedDoc{}
|
||||
for rows.Next() {
|
||||
var doc PublishedDoc
|
||||
if err := rows.Scan(&doc.ProjectID, &doc.Name, &doc.Token, &doc.UpdatedAt); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
docs = append(docs, doc)
|
||||
}
|
||||
return docs, rows.Err()
|
||||
}
|
||||
|
||||
func (s *Store) PublishDoc(projectID, name, content string) (PublishedDoc, error) {
|
||||
var token string
|
||||
err := s.db.QueryRow(`SELECT token FROM published_docs WHERE project_id=?`, projectID).Scan(&token)
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
token = newMockToken()
|
||||
} else if err != nil {
|
||||
return PublishedDoc{}, err
|
||||
}
|
||||
doc := PublishedDoc{ProjectID: projectID, Name: name, Token: token, UpdatedAt: time.Now().Unix()}
|
||||
_, err = s.db.Exec(`INSERT INTO published_docs(project_id,name,token,content,updated_at) VALUES(?,?,?,?,?) ON CONFLICT(project_id) DO UPDATE SET name=excluded.name,content=excluded.content,updated_at=excluded.updated_at`, projectID, name, token, content, doc.UpdatedAt)
|
||||
return doc, err
|
||||
}
|
||||
|
||||
func (s *Store) PublishedDocByToken(token string) (PublishedDoc, error) {
|
||||
var doc PublishedDoc
|
||||
err := s.db.QueryRow(`SELECT project_id,name,token,content,updated_at FROM published_docs WHERE token=?`, token).Scan(&doc.ProjectID, &doc.Name, &doc.Token, &doc.Content, &doc.UpdatedAt)
|
||||
return doc, err
|
||||
}
|
||||
|
||||
func (s *Store) RevokeDoc(projectID string) error {
|
||||
_, err := s.db.Exec(`DELETE FROM published_docs WHERE project_id=?`, projectID)
|
||||
return err
|
||||
}
|
||||
Reference in new issue
Block a user