fix: partage dirigé — dossier Partage virtuel + ouverture en onglet #196
CI / lint (push) Successful in 3m1s
CI / security (push) Failing after 1m58s
CI / test (push) Successful in 4m43s
CI / build (push) Successful in 1m39s
CI / e2e (push) Successful in 20m28s

- _resolve_shared_file: home-<user>/Partage/<f> -> fichier source (/api/file, raw, download)
- clic dossier Partage: dépliage sans navigation (fix Directory not found)
- fichiers reçus ouverts en onglet applicatif (arbre, recherche, dashboard)
- POST /api/share: path vide/null rejeté (400) — un share path:null cassait /api/shares
- +2 tests (13 total)
This commit is contained in:
2026-10-10 21:48:46 -04:00
parent fdc9f47a0d
commit de6bde1613
16 changed files with 142 additions and 29 deletions
+18 -4
View File
@@ -370,12 +370,19 @@ async function incrementalLoadDirectory(vaultName, dirPath, container) {
fItem.title = t("dashboard.shared_by", { user: s.created_by || "" });
fItem.addEventListener("click", () => {
scrollTreeItemIntoView(fItem, false);
window.open(`/s/${s.token}`, "_blank");
// #196 : ouverture en onglet applicatif — /api/file résout Partage/
// vers le fichier source (lecture seule).
if (window.innerWidth <= 768) {
TabManager.openPersistent(vaultName, `Partage/${(s.path || "").split("/").pop()}`);
} else {
TabManager.openPreview(vaultName, `Partage/${(s.path || "").split("/").pop()}`);
}
closeMobileSidebar();
});
shareSub.appendChild(fItem);
});
shareDir.addEventListener("click", () => {
TabManager.openNav(vaultName, "Partage");
// #196 : dossier virtuel — pas de navigation (pas de répertoire physique).
const expanded = !shareSub.classList.contains("collapsed");
shareSub.classList.toggle("collapsed", expanded);
const chev = shareDir.querySelector("[data-lucide]");
@@ -733,12 +740,19 @@ async function loadDirectory(vaultName, dirPath, container) {
fItem.title = t("dashboard.shared_by", { user: s.created_by || "" });
fItem.addEventListener("click", () => {
scrollTreeItemIntoView(fItem, false);
window.open(`/s/${s.token}`, "_blank");
// #196 : ouverture en onglet applicatif — /api/file résout Partage/
// vers le fichier source (lecture seule).
if (window.innerWidth <= 768) {
TabManager.openPersistent(vaultName, `Partage/${(s.path || "").split("/").pop()}`);
} else {
TabManager.openPreview(vaultName, `Partage/${(s.path || "").split("/").pop()}`);
}
closeMobileSidebar();
});
shareSub.appendChild(fItem);
});
shareDir.addEventListener("click", () => {
TabManager.openNav(vaultName, "Partage");
// #196 : dossier virtuel — pas de navigation (pas de répertoire physique).
const expanded = !shareSub.classList.contains("collapsed");
shareSub.classList.toggle("collapsed", expanded);
const chev = shareDir.querySelector("[data-lucide]");