Envolva todos os checkbox em um elemento com a classe ui_checkAll
Pode ser qualquer marcação (tag), como span, li, div, etc.
Coloque a classe ui_checkMain no checkbox que irá atuar em todos os demais checkbox.
O ui_checkMain deve ficar fora do ui_checkAll
Pronto! Isso é suficiente. Caso queira, você pode customizar a função:
É possível alternar o rótulo do botão ui_checkMain:
Para isso, use a classe ui_checkLabel em algum elemento que receberá o rótulo padrão "Marcar tudo/Desmarcar tudo" (Não é obrigatório)
Caso queira editar o rótulo padrão, insira em ui_checkLabel o atributo data-label-turnon com o valor inicial e data-label-turnon com o valor do rótulo quando ativo
Pode usar mais de uma vez na mesma página (inclusive se contiver abas). Cada ui_checkMain irá atuar no ui_checkAll mais próximo de acordo com a ordem de renderização da página. Ou seja, não é necessário que um contenha o outro. Mas o primeiro ui_checkMain renderizado irá atuar no primeiro ui_checkAll encontrado na página e assim sucessivamente.
O botão ui_checkMain pode ter ou não ter um value, mas o comportamento é diferente. Ou seja, use value="" (vazio) ou value="valor" ou não declare o value, entenda:
Se todos os checkbox estiverem marcados e se o botão ui_checkMain tiver um value com valor, consideramos o valor do botão ui_checkMain, resultado: page.html?parâmetro=todos
Se todos os checkbox estiverem marcado e se o botão ui_checkMainnão tiver um value declarado, consideramos a mesma condicional do item 1, ou seja, passar o value do ui_checkMain, mesmo que ele não exista. Nesse caso, o resultado será só: page.html (sem parâmetros - ou value declarado) - Isso é necessário para algumas consultas que interpretam as chamadas sem parâmetros como uma consulta completa.
Se todos os checkbox estiverem marcados e se o botão ui_checkMain tiver um value vazio, então ignoramos a sentença acima. Nesse caso, a url será com todos os parâmetros juntos, resultado: page.html?parâmetro=1&parâmetro=2&parâmetro=3...
Se apenas alguns dos checkbox estiverem marcados, desconsideramos o value do botão ui_checkMain e consideramos apenas os check marcados, resultado da url: page.html?parâmetro=2&parâmetro=4...