Implementação completa de funcionalidades pendentes
- Settings persistentes (modelo padrão, workdir, max concurrent) - Import/export de agentes via JSON - Agendamentos persistentes com restore no startup - Edição de agendamentos e tarefas existentes - Filtros e busca em todas as seções - Isolamento de WebSocket por clientId - Autenticação via AUTH_TOKEN e CORS configurável - Graceful shutdown com cancelamento de execuções - Correção: --max-tokens removido (flag inválida do CLI) - Correção: pipeline agora verifica exit code e propaga erros - Correção: streaming de output em pipelines via WebSocket - Permission mode bypassPermissions como padrão - Página de configurações do sistema - Contagem diária de execuções no dashboard - Histórico de execuções recentes
This commit is contained in:
@@ -18,16 +18,28 @@ const PipelinesUI = {
|
||||
}
|
||||
},
|
||||
|
||||
render() {
|
||||
filter(searchText) {
|
||||
const search = (searchText || '').toLowerCase();
|
||||
const filtered = PipelinesUI.pipelines.filter((p) => {
|
||||
const name = (p.name || '').toLowerCase();
|
||||
const desc = (p.description || '').toLowerCase();
|
||||
return !search || name.includes(search) || desc.includes(search);
|
||||
});
|
||||
PipelinesUI.render(filtered);
|
||||
},
|
||||
|
||||
render(filteredPipelines) {
|
||||
const grid = document.getElementById('pipelines-grid');
|
||||
if (!grid) return;
|
||||
|
||||
const pipelines = filteredPipelines || PipelinesUI.pipelines;
|
||||
|
||||
const existingCards = grid.querySelectorAll('.pipeline-card');
|
||||
existingCards.forEach((c) => c.remove());
|
||||
|
||||
const emptyState = grid.querySelector('.empty-state');
|
||||
|
||||
if (PipelinesUI.pipelines.length === 0) {
|
||||
if (pipelines.length === 0) {
|
||||
if (!emptyState) {
|
||||
grid.insertAdjacentHTML('beforeend', PipelinesUI.renderEmpty());
|
||||
}
|
||||
@@ -38,7 +50,7 @@ const PipelinesUI = {
|
||||
if (emptyState) emptyState.remove();
|
||||
|
||||
const fragment = document.createDocumentFragment();
|
||||
PipelinesUI.pipelines.forEach((pipeline) => {
|
||||
pipelines.forEach((pipeline) => {
|
||||
const wrapper = document.createElement('div');
|
||||
wrapper.innerHTML = PipelinesUI.renderCard(pipeline);
|
||||
fragment.appendChild(wrapper.firstElementChild);
|
||||
|
||||
Reference in New Issue
Block a user