From 77a61792960d1233035d5695ab165c6cccac71ae Mon Sep 17 00:00:00 2001 From: Alexander Sabino <32822107+asabino2@users.noreply.github.com> Date: Sat, 9 May 2026 16:22:59 +0100 Subject: [PATCH] =?UTF-8?q?atualiza=20vers=C3=A3o=20para=200.0.5;=20adicio?= =?UTF-8?q?na=20modal=20de=20navegador=20de=20diret=C3=B3rios=20e=20nova?= =?UTF-8?q?=20rota=20API=20para=20listar=20subdiret=C3=B3rios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 +++++-- package.json | 2 +- public/app.js | 62 +++++++++++++++++++++++++++ public/index.html | 27 +++++++++++- public/styles.css | 105 ++++++++++++++++++++++++++++++++++++++++++++++ src/server.js | 24 +++++++++++ 6 files changed, 231 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1002b02..c98bae5 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@
-
+
@@ -18,11 +18,21 @@
> ⚠️ **AVISO CRÍTICO:** Aplicação em estágio inicial de desenvolvimento. Não use em produção — há risco de perda de dados.
-Versão atual: **0.0.2**
+Versão atual: **0.0.5**
---
-## � Changelog### [0.0.4] — Correções de bugs
+## � Changelog
+
+### [0.0.5] — 2026-05-09
+
+#### Adicionado
+- **Navegador de diretórios:** no modal de criação/edição de Storage Location, o campo Diretório ganhou um botão de pesquisa (ícone de pasta). Ao clicar, abre um popup que lista os diretórios do servidor, permitindo navegar hierarquicamente e selecionar o caminho desejado sem precisar digitá-lo manualmente.
+- **Rota `GET /api/browse-dirs`:** nova rota protegida que aceita o parâmetro `path` e retorna os subdiretórios não-ocultos do caminho informado, junto ao caminho pai e ao caminho atual.
+
+---
+
+### [0.0.4] — Correções de bugs
#### Corrigido
- **Progresso do backup:** contador de arquivos processados ultrapassava o total porque `find -type f` contava apenas arquivos regulares, enquanto o `tar -v` emite uma linha por entrada (incluindo diretórios e symlinks). Corrigido removendo `-type f` do comando `find`.
diff --git a/package.json b/package.json
index 66d9f90..fd00261 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "dockerbackup-app",
- "version": "0.0.4",
+ "version": "0.0.5",
"description": "Aplicacao web para backup e restauracao de volumes Docker",
"main": "src/server.js",
"scripts": {
diff --git a/public/app.js b/public/app.js
index fb7bdb2..d39a174 100644
--- a/public/app.js
+++ b/public/app.js
@@ -239,6 +239,68 @@ elements.storageLocationsList?.addEventListener('click', async (e) => {
}
});
+// ─── Directory Browser Modal ──────────────────────────────
+let _dirBrowserCurrentPath = '/';
+
+function openDirBrowser() {
+ const initial = elements.storageLocationDir.value.trim() || '/';
+ _dirBrowserCurrentPath = initial;
+ const modal = document.querySelector('#dirBrowserModal');
+ modal.classList.remove('hidden');
+ modal.setAttribute('aria-hidden', 'false');
+ loadDirBrowserPath(initial);
+}
+
+function closeDirBrowser() {
+ const modal = document.querySelector('#dirBrowserModal');
+ modal.classList.add('hidden');
+ modal.setAttribute('aria-hidden', 'true');
+}
+
+async function loadDirBrowserPath(dirPath) {
+ _dirBrowserCurrentPath = dirPath;
+ document.querySelector('#dirBrowserCurrent').textContent = dirPath;
+ const list = document.querySelector('#dirBrowserList');
+ list.innerHTML = '