# Adicionar controles "Selecionar Tudo" na parte inferior da lista

**URL:** https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020
**Category:** Feature
**Tags:** bulk-actions
**Created:** [Fevereiro 1, 2021, 9:11pm UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020 "2021-02-01T21:11:42Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![jericson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jericson/32/116215_2.png) [@jericson](https://meta.discourse.org/u/jericson)
#### Post date: [Fevereiro 1, 2021, 9:11pm UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/1 "2021-02-01T21:11:42Z")

</div>

Estou tentando marcar todos os tópicos de uma categoria e movê-los para uma categoria mais geral. (Temos várias categorias de teatro musical que não estão tão ativas atualmente.) O controle “Selecionar Todos” seleciona apenas os tópicos que foram carregados. (No meu caso, são os 30 mais recentes.) Então, aprendi a rolar até o final da lista e depois voltar ao tópico para selecionar todos os tópicos:

![topic_select](https://global.discourse-cdn.com/meta/original/3X/2/c/2c1386bc2cd723464568c7442d0e81ceaf5d933a.gif)

Para um pequeno número de tópicos, isso não é tão ruim. Mas se torna doloroso quando há centenas de tópicos para rolar para baixo e novamente para cima. Em um mundo ideal, o botão “Selecionar Todos” carregaria todos os tópicos ou algo assim, para que eu não precise rolar nem uma vez.

Mas, a menos que isso aconteça, seria útil ter outro botão “Selecionar Todos” no final da página também. Isso me economizaria metade do tempo de rolagem.

A propósito, adoro alguns dos pequenos toques de UI que estou vendo enquanto faço isso. Quando entro em uma nova subcategoria, a ferramenta de seleção já está ativa, então não preciso pressionar esse botão. Quando vou adicionar tags, o slug da categoria é sugerido como uma categoria, então não preciso digitá-lo a cada vez. Assim que envio as novas tags, um pequeno contador de progresso me diz quantas foram concluídas. Sério, isso é muito trabalho para um recurso de administrador. Obrigado!

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [Fevereiro 3, 2021, 1:24am UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/2 "2021-02-03T01:24:09Z")

</div>

Isso é muito complicado, pois uma lista pode continuar crescendo e crescendo. Não podemos “pré-carregar” 50 mil tópicos ao clicar no botão, isso faria muitas coisas explodirem. Existem truques (poderíamos passar relações por aí), mas fica muito, muito complicado.

Uma pequena melhoria que pode ajudá-lo aqui é se “lembrarmos” que você clicou em “selecionar tudo” e, em seguida, selecionarmos automaticamente o lote que carregamos quando você faz o carregamento sob demanda.

Pelo menos isso torna seu processo significativamente mais fácil de executar (você só precisa rolar e rolar). Isso parece uma melhoria adequada?

---

<div class="post-metadata">

### Author: ![jericson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jericson/32/116215_2.png) [@jericson](https://meta.discourse.org/u/jericson)
#### Post date: [Fevereiro 3, 2021, 4:28am UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/5 "2021-02-03T04:28:12Z")

</div>

Minha primeira reação foi: “Sim, isso funcionaria bem.” E resolveria o problema de precisar voltar ao topo da lista para “Selecionar Tudo”. **Mas** acabei de marcar outra categoria e percebi que o ícone de chave inglesa que preciso pressionar para fazer qualquer coisa com essa lista está lá no topo da página. Então, ainda teria que rolar até o fim e voltar ao topo, independentemente de todos os tópicos serem selecionados durante a descida ou não.

Talvez tornar a chave inglesa fixa, além de selecionar automaticamente enquanto rolo?

* * *

O outro problema é uma questão de expectativas. Quando selecionei todas as primeiras categorias que fiz, assumi que isso selecionaria todos os tópicos da categoria. achei estranho que todas essas categorias tivessem exatamente 30 tópicos. Mas depois voltei para verificar se tinha marcado tudo como queria e percebi que elas têm mais de 30. Foram apenas os primeiros 30 que acabaram sendo carregados que eu selecionei.

Com certeza entendo que não é uma boa ideia carregar milhares de tópicos se você apertar um único botão. Mas meio que parece uma promessa quebrada quando se descobre que “todos” significa apenas “todos na página”. Não tenho uma sugestão boa, exceto talvez avisar as pessoas quando fizerem uma ação em massa para que verifiquem se conseguiram tudo o que queriam.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [Fevereiro 3, 2021, 4:38am UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/6 "2021-02-03T04:38:00Z")

</div>

> [@jericson](#):
>
> Talvez você possa fazer a chave inglesa ficar fixa, além de selecionar automaticamente enquanto eu rolo a página?

Isso já é o comportamento padrão. Suspeito que algo no seu tema esteja alterando isso; talvez você possa tentar o “modo seguro”?

 ![image](https://global.discourse-cdn.com/meta/original/3X/8/1/817b63eafd38e0a3e16db8900b7e9bed8c36101b.png)

> [@jericson](#):
>
> O outro problema é uma questão de expectativas.

Sim, um refinamento para a V2 seria exibir um pequeno painel que conta quantos itens você selecionou.

> Você tem 30 tópicos selecionados; continue rolando para selecionar mais.
> 
> 🔧

Vamos prosseguir com a seleção automática, mas refinamentos nas expectativas e um painel de chave inglesa mais rico terão que esperar um pouco.

---

<div class="post-metadata">

### Author: ![jericson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jericson/32/116215_2.png) [@jericson](https://meta.discourse.org/u/jericson)
#### Post date: [Fevereiro 3, 2021, 4:49am UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/7 "2021-02-03T04:49:41Z")

</div>

> [@sam](#):
>
> Já é assim. Suspeito que algo do seu tema esteja causando essa mudança. Talvez valha a pena tentar o “modo seguro”?

O modo seguro não funcionou, mas eu ainda aposto que nosso site está fazendo algo indevido para quebrar isso. Obrigado por me avisar.

Agradeço muito a solução de seleção automática. Obrigado!

---

<div class="post-metadata">

### Author: ![tshenry](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tshenry/32/119495_2.png) [@tshenry](https://meta.discourse.org/u/tshenry)
#### Post date: [Fevereiro 9, 2021, 1:41am UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/8 "2021-02-09T01:41:02Z")

</div>

> [@jericson](#):
>
> Talvez tornasse a chave de fenda fixa, além de selecionar automaticamente enquanto eu rolo?

A fixação desse botão havia, na verdade, quebrado por um tempo e foi corrigida com:

> <https://github.com/discourse/discourse/pull/11888>
>
> Previously the bulk select top positioning was dictated by padding on \`#main-out…let\`... but when the header was converted to \`position: sticky\` that padding was set to 0, so the positioning needed to be updated to be based on the header height instead.

Se você atualizar seu site e ainda tiver problemas, eu recomendaria verificar suas personalizações.

---

<div class="post-metadata">

### Author: ![jericson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jericson/32/116215_2.png) [@jericson](https://meta.discourse.org/u/jericson)
#### Post date: [Fevereiro 9, 2021, 5:26pm UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/9 "2021-02-09T17:26:40Z")

</div>

> [@tshenry](#):
>
> A adesão daquele botão havia ficado quebrada por um tempo, mas foi corrigida.

Uhu! Sim, a última atualização resolveu o problema de adesão.

---

<div class="post-metadata">

### Author: ![Osama](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/osama/32/98013_2.png) [@Osama](https://meta.discourse.org/u/Osama)
#### Post date: [Fevereiro 10, 2021, 4:20am UTC](https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/10 "2021-02-10T04:20:51Z")

</div>

> [@sam](#):
>
> Uma pequena melhoria que pode ajudar você aqui seria se nós “lembrássemos” que você clicou em “selecionar tudo” e, em seguida, selecionássemos automaticamente o lote que carregamos quando você faz o carregamento sob demanda.

Este PR deve fazer isso:

> <https://github.com/discourse/discourse/pull/12026>
>
> Currently it's very tedious to bulk select hundreds of topics in a topic list --… each time a new batch of topics is loaded you have to scroll all the way to the top to click the \`Select All\` button and scroll back down to load the next batch, or you have to tick each topic individually.
> 
> This PR should make that process a lot easier because we will now remember if the \`Select All\` button was clicked and so whenever a new batch of topics is loaded, it'll be automatically added to bulk select (if bulk select is activated of course).
> 
> Meta topic: https://meta.discourse.org/t/add-select-all-controls-at-the-bottom-of-the-list/178020/2?u=osama.
