Skip to content

Commit 0b6cc67

Browse files
forbid rename CLUSTERS and ORPHANS folders
1 parent 17709fa commit 0b6cc67

File tree

5 files changed

+44
-12
lines changed

5 files changed

+44
-12
lines changed

src/createFamily/commit_info.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
## Did
22

3-
- [*] forbid make child or sibling with -cluster suffix
3+
- [*] forbid rename CLUSTERS and ORPHANS folders
44

55
## ToDo
66

77
- [ ] FIX you need to add buttons line when onload if there is an active file
88
- [ ] make the extra buttons [ puzzle ] functionality implementation
9-
- [ ] when you rename parent note you need rename the son's containing folder with same name
109
- [ ] اخفي زر الحذف ضمن مجلد الكلستر عند الصغط على زر اليمين
11-
- [ ] forbid rename CLUSTERS and ORPHANS folders
1210
- [ ] son --> child , father --> parent , brother --> sibling
1311
- [ ] READEME.md
1412
- [ ] modifyFirst Template

src/mainParts/events.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export function addEvents(plugin: ExtendedPlugin) {
3636
plugin.registerEvent(
3737
plugin.app.vault.on("rename", async (file, oldPath) => {
3838

39-
if (file && file.parent && file.path.startsWith("CLUSTER")) {
39+
if (file && file.parent && (oldPath.startsWith("CLUSTERS") || oldPath.startsWith("ORPHANS"))) {
4040
const partsOfOldPath = oldPath.split("/")
4141
const renamedFile: RenamedItem<TAbstractFile> = {
4242
file: file,
@@ -47,8 +47,7 @@ export function addEvents(plugin: ExtendedPlugin) {
4747
}
4848
await renamer(plugin, renamedFile)
4949
}
50-
// setTimeout(() => P.newNavTreeStart(plugin), 100)
51-
}),
50+
})
5251
);
5352

5453
plugin.registerEvent(

src/renamer/doModify.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ async function renameChildrenFolder(plugin: Plugin, fileItem: RenamedItem<TFile>
7272
}
7373
}
7474
async function forbidClusterRenaming(plugin: Plugin, fileItem: RenamedItem<TAbstractFile>): Promise<boolean> {
75+
//= files
7576
if (fileItem.file instanceof TFile && isItem.isFileCluster(plugin, fileItem as RenamedItem<TFile>) === "theCluster") {
7677
const oldName = fileItem.oldPath.split("/")[1].slice(0, -3)
7778
const newName = fileItem.newPath.split("/")[1].slice(0, -3)
@@ -97,6 +98,7 @@ async function forbidClusterRenaming(plugin: Plugin, fileItem: RenamedItem<TAbst
9798
}
9899
}
99100
}
101+
//= folders
100102
if (fileItem.file instanceof TFolder && isItem.isFolderCluster(fileItem as RenamedItem<TFolder>) === "theCluster") {
101103
const oldName = fileItem.oldPath.split("/")[1];
102104
const newName = fileItem.newPath.split("/")[1];

src/renamer/isItem.ts

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Plugin, TFile, TFolder } from "obsidian"
1+
import { Notice, Plugin, TAbstractFile, TFile, TFolder } from "obsidian"
22
import { RenamedItem } from "src/types/obsidian"
33
import U from "src/util/U"
44

@@ -88,12 +88,38 @@ function whatClusteringState(fileItem: RenamedItem<TFolder>): "linked" | "unLink
8888
return "unLinked"
8989
}
9090

91+
async function isCLUSTERSorORPHANS(plugin: Plugin, fileItem: RenamedItem<TAbstractFile>): Promise<boolean> {
92+
if (fileItem.file instanceof TFolder && fileItem.oldPath === "CLUSTERS") {
93+
if (fileItem.newPath !== "CLUSTERS") {
94+
try {
95+
await plugin.app.fileManager.renameFile(fileItem.file, "CLUSTERS");
96+
new Notice("This folder should remains with CLUSTERS name", 3000)
97+
return true
98+
} catch (error) {
99+
console.error("Error renaming cluster file:", error);
100+
}
101+
}
102+
}
103+
if (fileItem.file instanceof TFolder && fileItem.oldPath === "ORPHANS") {
104+
if (fileItem.newPath !== "ORPHANS") {
105+
try {
106+
await plugin.app.fileManager.renameFile(fileItem.file, "ORPHANS");
107+
new Notice("This folder should remains with ORPHANS name", 3000)
108+
return true
109+
} catch (error) {
110+
console.error("Error renaming cluster file:", error);
111+
}
112+
}
113+
}
114+
return false
115+
}
91116

92117
const isItem = {
93118
isFileHasChildren,
94119
isFileCluster,
95120
isFolderCluster,
96-
whatClusteringState
121+
whatClusteringState,
122+
isCLUSTERSorORPHANS
97123
}
98124

99125
export default isItem

src/renamer/renamer.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,27 @@ import { TFile, TFolder, Plugin, TAbstractFile } from 'obsidian';
22
import { RenamedFileItemType, RenamedItem } from '../types/obsidian';
33
import { checkRenamedFileItemType } from './checkRenamedFileItemType';
44
import doModify from './doModify';
5-
5+
import isItem from './isItem';
6+
//_ renamer
67
export async function renamer(plugin: Plugin, fileItem: RenamedItem<TAbstractFile>) {
8+
// check if the name CLUSTERS or ORPHANS
9+
if (await isItem.isCLUSTERSorORPHANS(plugin, fileItem)) {
10+
return
11+
}
712
const renamedFileItemType = checkRenamedFileItemType(plugin, fileItem)
813
if (!renamedFileItemType) {
9-
console.log(fileItem.file.name + ": undifined -->", renamedFileItemType);
14+
console.log(fileItem.file.name + ": undefined -->", renamedFileItemType);
1015
return
1116
}
1217
console.log(fileItem.file.name + "-->", renamedFileItemType);
18+
1319
//do rename
14-
rename(plugin, fileItem, renamedFileItemType)
20+
await rename(plugin, fileItem, renamedFileItemType)
1521
}
1622

1723

18-
export async function rename(plugin: Plugin, fileItem: RenamedItem<TAbstractFile>, type: RenamedFileItemType) {
24+
//_ rename
25+
async function rename(plugin: Plugin, fileItem: RenamedItem<TAbstractFile>, type: RenamedFileItemType) {
1926
// file:alone:notTheCluster
2027
if (type === "file:alone:notTheCluster") {
2128
const forbid = await doModify.file.forbidClusterRenaming(plugin, fileItem as RenamedItem<TFile>)

0 commit comments

Comments
 (0)