web-development-kb-pt.site

Ações em massa: o que fazer quando nem todos os itens suportam uma ação

Imagine o seguinte cenário: o usuário seleciona vários itens e a caixa 'ações em massa' é exibida; O usuário seleciona uma ação que nem todos os itens suportam (por um motivo ou outro).

O que você faz neste caso: aplica a ação aos itens que a suportam? não aplica a ação e mostra uma mensagem de erro?

Minhas idéias atuais são:

  • Aplique a ação aos itens que a suportam; para ações que fazem com que os itens desapareçam (como 'excluir item'), deixaria os itens incorretos para trás, ainda selecionados, com uma mensagem de erro: "alguns itens não puderam ser excluídos".
  • Desative as ações que não são suportadas por todos os itens e forneça um link 'conserte isso' que desmarca os itens incorretos da ação.

Além disso, você pode me indicar algum exemplo relevante do mundo real?

13
Dan Burzo

Sem mais informações suas (por exemplo, é um aplicativo para computador ou web?), Eis uma ideia:

alt text

Quando o usuário selecionar qual ação ele deseja executar, não faça nada nos itens da lista se a ação puder ser aplicada a todos itens selecionados. Se não puder, mostre em negrito (ou uma cor diferente) às quais o item se aplica, juntamente com um texto explicativo à direita, por exemplo:

alt text

Você definitivamente deve mostrar o número total de itens que podem ser realocados, pois a lista pode ser bastante longa.

Obviamente, essa é apenas uma das várias variações possíveis.

6
Hisham

A resposta simples é não deixe o usuário cometer o erro em primeiro lugar. Se uma ação não puder ser executada em todos os itens selecionados, desative a ação, explique ao usuário por que a ação não pode ser executada e sugira uma solução.

5
Antony Quinn

Eu acho que a maioria das soluções de interface do usuário depende do contexto: uma solução que funciona para "excluir" talvez não funcione para "mover" e uma solução que funciona em um comércio eletrônico talvez não funcione em uma ferramenta industrial.

Dito isto, em resumo, eu provavelmente adicionaria um indicador numérico na "caixa de apresentação" que você citou, dizendo ao usuário algo como: "29 itens direcionados, 5 bloqueados" para que ele possa continuar sem problemas, se quiser verifique quais são os "itens de aviso" clicando na parte "5 bloqueados".

De qualquer forma, evitaria qualquer "mensagem de erro": o problema é seu, não do usuário. ;)

5
Folletto

Com base no contra-exemplo abaixo - eu gostaria de ver uma lista com todos os itens pop-up, afirmando que apenas itens específicos terão a ação (nomeada) aplicada (e as marcadas de forma diferente na lista) - e oferecerão "Claro, vá à frente "e uma ação" Cancelar ".

Não é confortável exibir novamente uma lista semelhante, mas no interesse de seguir em frente, acho que essa seria minha primeira tentativa.

Pelo menos não faz isso como o Microsoft Exchange 2010 Console - gera um erro para todos os itens nos quais a ação não é suportada (uma lista longa em uma pequena janela pop-up modal não redimensionável) e também não a aplica a os itens de suporte (sic). Não há como sair da situação, exceto cancelar completamente a ideia e desenterrar o PowerShell, ou tentar fazer referência cruzada ao pequeno diálogo de erro modal para desmarcar manualmente os itens incorretos um por um atrás dele ... ^^

3
Oskar Duveborn

Eu já vi algumas abordagens para lidar com essa situação, nenhuma delas particularmente satisfatória:

  • Negar silenciosamente a seleção múltipla. O CorelDraw, por exemplo, evita o problema ao não permitir que os usuários selecionem uma mistura de objetos editáveis ​​e não editáveis ​​("bloqueados"), mesmo que apenas visualizem informações somente leitura. Da mesma forma, o IronCAD não permite selecionar vários objetos de determinadas classes diferentes (por exemplo, uma câmera e uma peça). Isso parece uma restrição desnecessária para mim.

  • Negar silenciosamente comando. Windows XP simplesmente ignora você se tentar abrir uma janela de propriedades para vários itens de classes diferentes (por exemplo, Meu Computador e um arquivo pdf). Isso pode ser confuso e frustrante.

Parece-me que você deseja permitir ao usuário a maior flexibilidade, permitindo a seleção múltipla de qualquer coisa e fazer o máximo possível no que for selecionado. Ao mesmo tempo, você não deseja inundar o usuário com caixas de mensagens, conforme descrito por Oskar Duveborn nesta página.

É discutível se os usuários estão cometendo um erro: talvez eles quisessem cometer o Comando X em todos os objetos espalhados pela janela à qual o Comando X se aplica, sabendo muito bem que ele não se aplica a determinados objetos. Então eles digitam Ctrl-A e selecionam Comando X. Apoiar esse "truque" seria muito conveniente. Ou talvez eles tenham selecionado várias coisas para aplicar o Comando X e depois o Comando Y. Seria útil se eles não tivessem que re-selecionar ou ajustar a seleção múltipla entre os comandos para excluir objetos que não aplicar.

Aqui estão algumas idéias:

  • Primeiro, tente indicar as informações relevantes na janela principal/principal para que o usuário possa adivinhar que algumas ações não afetarão determinados objetos selecionados. Por exemplo, dê aos objetos somente leitura uma aparência distinta, talvez apenas na seleção (estou imaginando pequenos cadeados para alças de um aplicativo do tipo CAD). Cada classe de objeto deve ter uma aparência distinta, talvez marcando cada uma com um ícone específico. Dessa forma, à medida que os usuários fazem a seleção múltipla, eles podem prever quais comandos fazem e não fazem sentido (por exemplo, este item é uma câmera, para que possa ser movido, mas obviamente não pode ser redimensionado).

  • Se o aplicativo não puder dizer o que se aplica a quê até que a caixa de diálogo seja aberta, talvez mude a aparência da seleção de objetos aos quais a ação não se aplica. Por exemplo, quando o usuário altera um valor de propriedade, todos os objetos que não possuem essa propriedade têm uma aparência de seleção "secundária" na janela pai.

  • Se os critérios para aplicar uma ação não forem óbvios, você pode precisar de algumas dicas de texto. O item de menu do botão que chama a ação pode incluir em sua legenda quantos itens isso afeta ou o que afeta (por exemplo, "Somente chapa metálica"). Em uma caixa Propriedades, você pode incluir uma coluna ao lado da coluna de propriedades que diz para muitos itens que cada propriedade se aplica ou pode ser alterada.

  • Isso pode exigir muito espaço, mas talvez você precise apenas indicar que apenas alguns objetos são afetados (não o número exato, identidade ou proporção). Nesse caso, talvez você possa usar uma nota de rodapé na caixa de diálogo. Crie um símbolo que significa "parcial", talvez um círculo meio cheio? (Não use um asterisco - isso muitas vezes significa "obrigatório"). Coloque esse símbolo em qualquer controle que afete um subconjunto da seleção. Na parte inferior da caixa de diálogo, mostre o símbolo com o texto "= aplica-se apenas a alguns itens selecionados". Para ações que não usam uma caixa de diálogo, use o mesmo símbolo nas legendas do item de menu ou do botão de comando, incluindo uma dica de ferramenta para explicar o que isso significa.

  • Idealmente, você deve indicar que a ação se aplica apenas parcialmente antes que o usuário a confirme, mas como alternativa, você pode fornecer algum feedback após a ação. Em geral, você deseja tornar visualmente o efeito de qualquer ação em seus objetos na janela pai, e isso pode ser suficiente. No entanto, se você ainda estiver preocupado com a confusão dos usuários (por exemplo, por objetos que rolaram para fora da vista que mais tarde perceberam que não foram alterados), talvez seja possível fornecer uma notificação de texto sem modelo (dispensa automática) que diz " [ação] [n] de [m] itens selecionados ”quando a ação estiver concluída. Talvez forneça um link de Ajuda, caso o usuário não entenda o porquê.

Não sei como isso funcionará, por isso, será uma boa ideia testar o que você decidir sobre os usuários.

1
Michael Zuschlag

A resposta simples é não deixe o usuário cometer o erro em primeiro lugar. Se uma ação não puder ser executada em todos os itens selecionados, desative a ação, explique ao usuário por que a ação não pode ser executada e sugira uma solução.

1
Antony Quinn

Quanto a um exemplo do mundo real, Jira vem à mente. E mostra pelo menos uma desvantagem possível das ações ocultas: quando as pessoas não percebem que uma determinada ação não está disponível, pode ser bastante frustrante. Você não pode mover questões que estão fechadas, mas eu não sabia disso a princípio. Eu pesquisei muito e muito antes de descobrir por que de repente não havia ação de movimento quando eu tinha muita certeza de que movi os problemas dessa maneira antes.

Penso que, por esse motivo, esconder-se não é o melhor caminho. Você pode marcar as ações que não estão disponíveis para todos, de preferência com uma explicação de por que elas estão marcadas. Eu acho que poderia funcionar muito bem se você permitir que as pessoas o selecionem independentemente e que se apliquem aos 'disponíveis'. Caso contrário, acho melhor desabilitar os itens do que ocultar. (Por outro lado, é preciso tomar cuidado para que você não termine com uma lista de ações que são infinitamente longas.)

1
Inca

Por que não fazer o que os inspetores de propriedades/objetos de muitos Ambientes de Desenvolvimento Integrado fazem: apenas exibem propriedades comuns a todos os objetos selecionados em um formulário?

No seu cenário: ofereça apenas as ações em massa suportadas por todos os itens selecionados. E atualize a disponibilidade (aparência habilitada) versus a não disponibilidade (aparência desabilitada) de todas as ações em massa com cada item selecionado/desmarcado. Dessa forma, o usuário receberá um feedback e selecionará rapidamente quais ações em massa estão disponíveis em quais itens (e quais itens têm quais ações em massa em comum).

1
Marjan Venema

Parece que a segunda solução oferecida na pergunta em si funciona melhor:

Ative a ação apenas quando todos os itens selecionados a suportarem.

Você pode mostrá-lo desativado, com uma explicação ao lado ou em uma dica de ferramenta para informar ao usuário por que essa ação está desativada.

Eu acredito que pode ser muito confuso permitir que o usuário execute uma ação que afeta apenas parte de sua seleção, notificando-o depois ou antes que o fato possa não funcionar desde os usuários não lêem texto.

Portanto, há chances de que quaisquer avisos ou explicações não impeçam o usuário de simplesmente clicar no botão E imediatamente descartar a caixa de diálogo de notificações.

Dito isto, depende da ação e da aplicação - se a ação acionar uma alteração no ciclo de vida de um objeto, afetando seu estado, etc. Eu aplicaria a "ação de permissão somente quando todos os itens selecionados o suportarem". Para coisas que não são essenciais para a missão, você pode preferir um fluxo melhor do que precisão.

1
Dan Barak

Eu aplicaria a ação aos itens que a aceitam e deixe o resto. Eu acho o usuário é inteligente o suficiente para saber que a ação não pode ser aplicada aos outros itens.

Se você criar o restante da interface para que o usuário entenda isso diretamente, não deverá haver nenhum problema e poderá deixar os outros itens sem uma mensagem especial.

Também é assim que é feito no Gmail, por exemplo. Pegue duas mensagens, uma não lida e uma lida, selecione as duas e escolha marcar como lida. A mensagem não lida é marcada como lida e a já lida não muda. O restante da interface (texto em negrito e outra cor de fundo) deixa claro que a mensagem lida já foi lida.

(O Gmail até diz que duas mensagens foram marcadas como lidas, o que parece um pouco estranho, mas ok.)

1
Lode

Minha abordagem:

Permita que os usuários selecionem os itens que desejam, permita que os usuários selecionem a ação que desejam, se pelo menos um item puder ser afetado pela ação e depois que a ação for feita, retorne uma mensagem informativa: "os itens x, y, z não suportam * ação porque * motivo ".

Filtrar as ações que podem ser aplicadas a pelo menos um item selecionado pode ser um pouco complicado.

0
Bobby Tables

Eu faria algo como: postar uma mensagem que nem todos os itens têm a possibilidade de excluir/editar/mover/etc. e tenha uma lista com a entidade que define os valores do campo posteriormente. Ou se eles não são para muitos têm uma temperatura. reordenando com os itens n/a no topo da lista, destacados.

0
Billy