Skip to content

x-mrrobot-x/file-picker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 do seletor


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
  2. Importe o projeto na TaskerNet
  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.

Releases

No releases published

Packages

 
 
 

Contributors