Parcourir la source

Merge remote-tracking branch 'origin/dev' into dev

Vanessa il y a 2 ans
Parent
commit
424ff7776c
2 fichiers modifiés avec 18 ajouts et 2 suppressions
  1. 6 2
      kernel/model/file.go
  2. 12 0
      kernel/util/path.go

+ 6 - 2
kernel/model/file.go

@@ -1012,7 +1012,11 @@ func MoveDocs(fromPaths []string, toBoxID, toPath string) (err error) {
 		return
 	}
 
-	fromPaths = util.FilterSelfChildDocs(fromPaths)
+	fromPaths = util.FilterMoveDocFromPaths(fromPaths, toPath)
+	if 1 > len(fromPaths) {
+		return
+	}
+
 	pathsBoxes := getBoxesByPaths(fromPaths)
 
 	// 检查路径深度是否超过限制
@@ -1024,7 +1028,7 @@ func MoveDocs(fromPaths []string, toBoxID, toPath string) (err error) {
 		}
 	}
 
-	needShowProgress := 32 < len(fromPaths)
+	needShowProgress := 16 < len(fromPaths)
 	if needShowProgress {
 		util.PushEndlessProgress(Conf.Language(116))
 	}

+ 12 - 0
kernel/util/path.go

@@ -175,6 +175,18 @@ func NormalizeEndpoint(endpoint string) string {
 	return endpoint
 }
 
+func FilterMoveDocFromPaths(fromPaths []string, toPath string) (ret []string) {
+	tmp := FilterSelfChildDocs(fromPaths)
+	for _, fromPath := range tmp {
+		fromDir := strings.TrimSuffix(fromPath, ".sy")
+		if strings.HasPrefix(toPath, fromDir) {
+			continue
+		}
+		ret = append(ret, fromPath)
+	}
+	return
+}
+
 func FilterSelfChildDocs(paths []string) (ret []string) {
 	sort.Slice(paths, func(i, j int) bool { return strings.Count(paths[i], "/") < strings.Count(paths[j], "/") })