mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 14:40:12 +01:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
be3f57512a
15 changed files with 65 additions and 41 deletions
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "تمت إضافة هذا المقطع بالفعل إلى قاعدة البيانات [%s]",
|
||||
"270": "يتم تحسين فهرس البيانات، يرجى الانتظار...",
|
||||
"271": "اكتملت عملية تحسين فهرس البيانات، تم تحرير [%s] من مساحة القرص",
|
||||
"272": "حقل غير مسمى"
|
||||
"272": "حقل غير مسمى",
|
||||
"273": "لا تقم بإنشاء مساحة العمل في مسار جذر القسم، يرجى إنشاء مجلد جديد كمساحة عمل",
|
||||
"274": "يحتوي هذا المجلد على ملفات أخرى، يرجى إنشاء مجلد جديد كمساحة عمل"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "Dieser Block wurde bereits zur Datenbank [%s] hinzugefügt",
|
||||
"270": "Datenindex wird optimiert, bitte warten...",
|
||||
"271": "Datenindex-Optimierung abgeschlossen, [%s] Speicherplatz freigegeben",
|
||||
"272": "Unbenanntes Feld"
|
||||
"272": "Unbenanntes Feld",
|
||||
"273": "Erstellen Sie den Arbeitsbereich nicht im Stammverzeichnis der Partition, erstellen Sie bitte einen neuen Ordner als Arbeitsbereich",
|
||||
"274": "Dieser Ordner enthält andere Dateien, erstellen Sie bitte einen neuen Ordner als Arbeitsbereich"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "This block has already been added to the database [%s]",
|
||||
"270": "Optimizing data index, please wait...",
|
||||
"271": "Data index optimization completed, [%s] disk space freed",
|
||||
"272": "Unnamed field"
|
||||
"272": "Unnamed field",
|
||||
"273": "Do not create the workspace in the partition root path, please create a new folder as the workspace",
|
||||
"274": "This folder contains other files, please create a new folder as the workspace"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "Este bloque ya ha sido añadido a la base de datos [%s]",
|
||||
"270": "Optimizando el índice de datos, por favor espere...",
|
||||
"271": "Optimización del índice de datos completada, se liberaron [%s] de espacio en disco",
|
||||
"272": "Campo sin nombre"
|
||||
"272": "Campo sin nombre",
|
||||
"273": "No cree el espacio de trabajo en la ruta raíz de la partición, cree una nueva carpeta como espacio de trabajo",
|
||||
"274": "Esta carpeta contiene otros archivos, cree una nueva carpeta como espacio de trabajo"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "Ce bloc a déjà été ajouté à la base de données [%s]",
|
||||
"270": "Optimisation de l'index des données en cours, veuillez patienter...",
|
||||
"271": "Optimisation de l'index des données terminée, [%s] d'espace disque libéré",
|
||||
"272": "Champ sans nom"
|
||||
"272": "Champ sans nom",
|
||||
"273": "Ne créez pas l’espace de travail à la racine de la partition, créez un nouveau dossier comme espace de travail",
|
||||
"274": "Ce dossier contient d’autres fichiers, créez un nouveau dossier comme espace de travail"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "הבלוק נוסף כבר למסד הנתונים [%s]",
|
||||
"270": "מתבצעת אופטימיזציה של אינדקס הנתונים, נא להמתין...",
|
||||
"271": "אופטימיזציית אינדקס הנתונים הושלמה, שוחררו [%s] שטח דיסק",
|
||||
"272": "שדה ללא שם"
|
||||
"272": "שדה ללא שם",
|
||||
"273": "אל תיצור סביבת עבודה בנתיב השורש של המחיצה, צור תיקיה חדשה כסביבת עבודה",
|
||||
"274": "התיקיה הזו מכילה קבצים נוספים, צור תיקיה חדשה כסביבת עבודה"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "Questo blocco è già stato aggiunto al database [%s]",
|
||||
"270": "Ottimizzazione dell'indice dei dati in corso, attendere prego...",
|
||||
"271": "Ottimizzazione dell'indice dei dati completata, liberati [%s] di spazio su disco",
|
||||
"272": "Campo senza nome"
|
||||
"272": "Campo senza nome",
|
||||
"273": "Non creare lo spazio di lavoro nella directory radice della partizione, crea una nuova cartella come spazio di lavoro",
|
||||
"274": "Questa cartella contiene altri file, crea una nuova cartella come spazio di lavoro"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "このブロックはすでにデータベース [%s] に追加されています",
|
||||
"270": "データインデックスを最適化しています。しばらくお待ちください...",
|
||||
"271": "データインデックスの最適化が完了しました。合計 [%s] のディスク容量が解放されました",
|
||||
"272": "未命名フィールド"
|
||||
"272": "未命名フィールド",
|
||||
"273": "パーティションのルートパスにワークスペースを作成しないでください。新しいフォルダーをワークスペースとして作成してください",
|
||||
"274": "このフォルダーには他のファイルが含まれています。新しいフォルダーをワークスペースとして作成してください"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "Ten blok został już dodany do bazy danych [%s]",
|
||||
"270": "Optymalizacja indeksu danych, proszę czekać...",
|
||||
"271": "Optymalizacja indeksu danych zakończona, zwolniono [%s] miejsca na dysku",
|
||||
"272": "Nienazwane pole"
|
||||
"272": "Nienazwane pole",
|
||||
"273": "Nie twórz przestrzeni roboczej w katalogu głównym partycji, utwórz nowy folder jako przestrzeń roboczą",
|
||||
"274": "Ten folder zawiera inne pliki, utwórz nowy folder jako przestrzeń roboczą"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "Este bloco já foi adicionado ao banco de dados [%s]",
|
||||
"270": "Otimizando o índice de dados, por favor aguarde...",
|
||||
"271": "Otimização do índice de dados concluída, [%s] de espaço liberado",
|
||||
"272": "Campo sem nome"
|
||||
"272": "Campo sem nome",
|
||||
"273": "Não crie o espaço de trabalho na raiz da partição, crie uma nova pasta para o espaço de trabalho",
|
||||
"274": "Esta pasta contém outros arquivos, crie uma nova pasta para o espaço de trabalho"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "Этот блок уже добавлен в базу данных [%s]",
|
||||
"270": "Оптимизация индекса данных, пожалуйста, подождите...",
|
||||
"271": "Оптимизация индекса данных завершена, освобождено [%s] дискового пространства",
|
||||
"272": "Неименованное поле"
|
||||
"272": "Неименованное поле",
|
||||
"273": "Не создавайте рабочее пространство в корневом каталоге раздела, создайте отдельную папку для рабочего пространства",
|
||||
"274": "Эта папка содержит другие файлы, создайте отдельную папку для рабочего пространства"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "該塊已經添加到資料庫 [%s] 中",
|
||||
"270": "正在優化資料索引,請稍等...",
|
||||
"271": "資料索引優化完畢,共釋放 [%s] 磁碟空間",
|
||||
"272": "未命名欄位"
|
||||
"272": "未命名欄位",
|
||||
"273": "請勿在分區根路徑上建立工作空間,請新建一個資料夾作為工作空間",
|
||||
"274": "該資料夾包含其他檔案,請新建一個資料夾作為工作空間"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1671,6 +1671,8 @@
|
|||
"269": "该块已经添加到数据库 [%s] 中",
|
||||
"270": "正在优化数据索引,请稍等...",
|
||||
"271": "数据索引优化完毕,共释放 [%s] 磁盘空间",
|
||||
"272": "未命名字段"
|
||||
"272": "未命名字段",
|
||||
"273": "请勿在分区根路径上创建工作空间,请新建一个文件夹作为工作空间",
|
||||
"274": "该文件夹包含了其他文件,请新建一个文件夹作为工作空间"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,28 @@ func checkWorkspaceDir(c *gin.Context) {
|
|||
}
|
||||
|
||||
path := arg["path"].(string)
|
||||
// 检查路径是否是分区根路径
|
||||
if util.IsPartitionRootPath(path) {
|
||||
ret.Code = -1
|
||||
ret.Msg = model.Conf.Language(273)
|
||||
ret.Data = map[string]interface{}{"closeTimeout": 7000}
|
||||
return
|
||||
}
|
||||
|
||||
// 检查路径是否包含其他文件
|
||||
entries, err := os.ReadDir(path)
|
||||
if err != nil {
|
||||
ret.Code = -1
|
||||
ret.Msg = fmt.Sprintf("read dir [%s] failed: %s", path, err)
|
||||
return
|
||||
}
|
||||
if 0 < len(entries) {
|
||||
ret.Code = -1
|
||||
ret.Msg = model.Conf.Language(274)
|
||||
ret.Data = map[string]interface{}{"closeTimeout": 7000}
|
||||
return
|
||||
}
|
||||
|
||||
if isInvalidWorkspacePath(path) {
|
||||
ret.Code = -1
|
||||
ret.Msg = "This workspace name is not allowed, please use another name"
|
||||
|
|
@ -55,32 +77,8 @@ func checkWorkspaceDir(c *gin.Context) {
|
|||
return
|
||||
}
|
||||
|
||||
entries, err := os.ReadDir(path)
|
||||
if err != nil {
|
||||
ret.Code = -1
|
||||
ret.Msg = fmt.Sprintf("read workspace dir [%s] failed: %s", path, err)
|
||||
}
|
||||
|
||||
var existsConf, existsData bool
|
||||
for _, entry := range entries {
|
||||
if !existsConf {
|
||||
existsConf = "conf" == entry.Name() && entry.IsDir()
|
||||
}
|
||||
if !existsData {
|
||||
existsData = "data" == entry.Name() && entry.IsDir()
|
||||
}
|
||||
|
||||
if existsConf && existsData {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if existsConf {
|
||||
existsConf = gulu.File.IsExist(filepath.Join(path, "conf", "conf.json"))
|
||||
}
|
||||
|
||||
ret.Data = map[string]interface{}{
|
||||
"isWorkspace": existsConf && existsData,
|
||||
"isWorkspace": util.IsWorkspaceDir(path),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -300,7 +298,7 @@ func setWorkspaceDir(c *gin.Context) {
|
|||
// 检查路径是否在已有的工作空间路径中
|
||||
pathIsWorkspace := util.IsWorkspaceDir(path)
|
||||
if !pathIsWorkspace {
|
||||
for p := filepath.Dir(path); !util.IsRootPath(p); p = filepath.Dir(p) {
|
||||
for p := filepath.Dir(path); !util.IsPartitionRootPath(p); p = filepath.Dir(p) {
|
||||
if util.IsWorkspaceDir(p) {
|
||||
ret.Code = -1
|
||||
ret.Msg = fmt.Sprintf(model.Conf.Language(256), path, p)
|
||||
|
|
|
|||
|
|
@ -383,8 +383,8 @@ func IsWorkspaceDir(dir string) bool {
|
|||
return strings.Contains(string(data), "kernelVersion")
|
||||
}
|
||||
|
||||
// IsRootPath checks if the given path is a root path.
|
||||
func IsRootPath(path string) bool {
|
||||
// IsPartitionRootPath checks if the given path is a partition root path.
|
||||
func IsPartitionRootPath(path string) bool {
|
||||
if path == "" {
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue