https://github.com/x-mrrobot/file-picker
A file picker for tasker
https://github.com/x-mrrobot/file-picker
css3 html5 javascript shell tasker
Last synced: 7 months ago
JSON representation
A file picker for tasker
- Host: GitHub
- URL: https://github.com/x-mrrobot/file-picker
- Owner: x-mrrobot
- Created: 2025-05-05T17:26:00.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-05-06T20:23:53.000Z (10 months ago)
- Last Synced: 2025-05-06T21:24:57.662Z (10 months ago)
- Topics: css3, html5, javascript, shell, tasker
- Language: JavaScript
- Homepage:
- Size: 252 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FILE PICKER
Um seletor de arquivos e pastas leve, sem dependências, feito com HTML5, CSS3 e JavaScript puro. Projetado para uso independente ou integrado com ambientes como o Tasker no Android, ele permite navegação hierárquica, seleção múltipla, busca e cache de diretórios via localStorage.
---
## Tabela de Conteúdos
- [Demonstração](#demonstração)
- [Funcionalidades](#funcionalidades)
- [Tecnologias](#tecnologias)
- [Como Utilizar](#como-utilizar)
- [Estrutura do Projeto](#estrutura-do-projeto)
- [Contribuição](#contribuição)
- [Licença](#licença)
---
## Demonstração
---
## Lista de Recursos
- **Navegação hierárquica** com trilhas e botão de voltar
- **Listagem com Metadados** (contagem de itens por pasta, tamanho e data de modificação)
- **Metódos de ordenação** para arquivos e pastas
- **Seleção múltipla** de arquivos e pastas e cópia dos caminhos
- **Busca local** por arquivos e pastas no diretório atual
- **Renderização otimizada** com scroll infinito
- **Internacionalização (i18n)** baseada no ambiente (pt-BR, en-US, es-ES)
- **Modo claro/escuro** baseado no ambiente
- **Cache de diretórios** para carregamento rápido
- **Compatível com Tasker (Android)** via script shell `file-picker.sh`
---
## Tecnologias
- **Frontend**: HTML5 + CSS3 + JavaScript
- **Backend (opcional)**: Script shell SH `file-picker.sh` para integração com Tasker ou outro ambiente hospedeiro.
---
## Como Utilizar
### Uso Isolado (modo demonstração)
1. Clone o repositório:
```
git clone https://github.com/x-mrrobot/file-picker.git
```
2. Navegue para a pasta do projeto:
```
cd file-picker
```
3. Acesse `index.html` no navegador (clique no arquivo ou abra com um servidor local).
A navegação usará dados mockados via `data.js`.
### Uso com Tasker (Android)
Para usar o seletor de arquivos diretamente no Tasker:
1. Instale o Tasker na [Play Store](https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm)
2. **Importe o projeto** na [TaskerNet](https://taskernet.com/shares/?user=AS35m8k%2FEQCE%2BJiPvkN1cJcjBE7Yh%2B%2Fa8zZeifxINYS7E94XnS26HrYYgsweBVnbf2VB9WJdrS5k&id=Project%3AFILE+PICKER)
3. **Mostre a cena** executando a tarefa **FP - PICK FILES UI**
4. **Receba o resultado da seleção** na aba toque no link do webview
### Uso Integrado em outros ambientes
1. O ambiente hospedeiro deve:
- Executar comandos via `file-picker.sh`
- Expor propriedades:
- `languageCode: "en-US"`
- `isDarkModeEnabled: true`
- Expor métodos:
- `execute(command, ...args)`
- `notify(message)`
- `terminate()`
- `submitSelection(items)`
2. Comandos esperados no script:
- `list_directory "caminho"`
- `get_sd_card_path`
- `get_subfolder_item_count "caminho"`
---
## Estrutura do Projeto
```
/file-picker
│
├── index.html
│
├── css/
│ ├── variables.css
│ ├── reset.css
│ ├── loading.css
│ ├── header.css
│ ├── sort.css
│ ├── navigation.css
│ ├── search.css
│ ├── file-list.css
│ ├── checkbox.css
│ └── footer.css
│
├── js/
│ ├── fileSystemData.js
│ ├── webEnvironment.js
│ ├── EnvironmentManager.js
│ ├── EventBus.js
│ ├── Utils.js
│ ├── IconManager.js
│ ├── I18nManager.js
│ ├── AppState.js
│ ├── CacheManager.js
│ ├── DOMElements.js
│ ├── FileManager.js
│ ├── NavigationManager.js
│ ├── SearchManager.js
│ ├── SelectionManager.js
│ ├── PaginationManager.js
│ ├── SubfolderQueueManager.js
│ ├── FileListRenderer.js
│ ├── UIRenderer.js
│ ├── SortManager.js
│ ├── PullToRefreshManager.js
│ ├── EventManager.js
│ └── App.js
│
└── file-picker.sh
```
---
## Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para:
- Abrir _issues_ com sugestões ou problemas.
- Enviar _pull requests_ com melhorias, correções ou novas funcionalidades.
---
## Licença
Este projeto está licenciado sob a [MIT License](https://opensource.org/licenses/MIT).