it-swarm-eu.dev

Hromadné akce: co dělat, když akci nepodporují všechny položky

Představte si následující scénář: uživatel vybere spoustu položek a objeví se pole „hromadné akce“; uživatel vybere akci, kterou nepodporují všechny položky (z jednoho nebo druhého důvodu).

Co v tomto případě uděláte: použijte akci na položky, které ji podporují? tuto akci vůbec nepoužít a zobrazit chybovou zprávu?

Moje současné nápady jsou buď:

  • Použijte akci na položky, které ji podporují; u akcí, které způsobí, že položky zmizí (například „smazat položku“), nechám problematické položky pozadu, stále vybrané, s chybovou zprávou: „některé položky nelze odstranit“.
  • Zakažte akce, které nejsou podporovány all položkami, a poskytněte odkaz „opravit tento“, který zruší výběr nevhodných položek pro akci.

Můžete mi také ukázat na relevantní příklady z reálného světa?

13
Dan Burzo

Bez dalších informací od vás (např. Je to stolní nebo webová aplikace?), Je zde nápad:

alt text

Když uživatel vybere, kterou akci chce provést, neudělejte nic s položkami seznamu, pokud se akce může vztahovat na všechny vybrané položky. Pokud tomu tak není, zobrazte tučně (nebo jinou barvou) ty, na které se položka vztahuje, spolu s vysvětlujícím textem napravo, např .:

alt text

Určitě byste měli zobrazit celkový počet položek, které lze přemístit, protože seznam může být poměrně dlouhý.

To je samozřejmě jen jedna z několika možných variant.

6
Hisham

Jednoduchá odpověď je nenechte uživatele udělat chybu na prvním místě. Pokud nelze akci provést u všech vybraných položek, které byste měli zakázat, vysvětlete uživateli, proč akci nelze provést, a navrhněte řešení.

5
Antony Quinn

Myslím, že většina řešení uživatelského rozhraní závisí na kontextu: řešení, které funguje pro „smazat“, možná nefunguje pro „přesun“ a řešení, které funguje v elektronickém obchodování, možná nefunguje v průmyslovém nástroji.

To znamená, že v abstraktu bych pravděpodobně přidal číselný ukazatel do „objevujícího se pole“, které jste citovali, a řekl uživateli něco jako: „29 cílených položek, 5 zamčených“, aby mohl bez problémů pokračovat, pokud chce, nebo kliknutím na část „5 zamčené“ zkontrolujte, jaké jsou „varovné položky“.

V žádném případě bych se vyhnul jakékoli „chybové zprávě“: je to váš problém, nikoli problém uživatele. ;)

5
Folletto

V návaznosti na níže uvedený příklad - rád bych viděl seznam se všemi položkami, ve kterém bude uvedeno, že pouze konkrétní položky budou použity (pojmenované) akce (a ty označené v seznamu jinak) - a nabídnu „Jistě, jdi dopředu "a" Zrušit ".

Není příjemné znovu zobrazovat podobný seznam, ale v zájmu dalšího postupu si myslím, že by to byl můj první záběr.

Alespoň to nedělejte jako Microsoft Exchange 2010 Console - vyvolá chybu u všech položek, na kterých není akce podporována (dlouhý seznam v malém nenulovém okně s modálním vyskakovacím oknem) a také se na ni nevztahuje položky, které jej podporují (sic). Neexistuje žádný způsob, jak se dostat ze situace, s výjimkou buď úplného zrušení nápadu a vykočení Powershell, nebo zkuste křížový odkaz na malý modální dialog chyby a ručně zrušit výběr problematických položek jeden po druhém ... ^^

3
Oskar Duveborn

Viděl jsem několik přístupů k řešení této situace, žádný z nich nebyl zvlášť uspokojivý:

  • Tichě odmítnout výběr z více možností. Například aplikace CorelDraw se tomuto problému vyhýbá tím, že neumožňuje uživatelům, aby vybrali směs upravitelných a neupravitelných („uzamčených“) objektů, a to ani pro prohlížení informací pouze pro čtení. Podobně vám IronCAD nedovolí vybírat objekty určitých tříd (např. Fotoaparát a součást). Zdá se mi to jako zbytečné omezení.

  • Tichě odmítnout příkaz. Windows XP vás jednoduše ignoruje, pokud se pokusíte otevřít okno vlastností pro více položek různých tříd (např. Tento počítač a soubor PDF). To by mohlo být matoucí a frustrující.

Zdá se mi, že chcete uživateli poskytnout maximální flexibilitu tím, že povolíte vícenásobný výběr čehokoli a uděláte maximum pro to, co je vybráno. Zároveň nechcete uživatele zaplavovat zprávami, které popsal Oskar Duveborn na této stránce.

Je diskutabilní, pokud uživatelé dělají chybu: možná chtěli zavázat příkaz X na všechny objekty roztroušené po celém okně, na které se příkaz X vztahuje, a dobře věděli, že se na určité objekty nevztahuje. Napíšou Ctrl-A a vyberou příkaz X. Podporují, že „trik“ bude velmi pohodlný. Nebo možná vybrali spoustu věcí, aby použili příkaz X a poté příkaz Y. Bylo by užitečné, kdyby nemuseli opakovaně vybírat nebo upravovat výběr mezi příkazy, aby vyloučili objekty, které nejsou neplatí.

Zde je několik nápadů:

  • Nejprve zkuste označit relevantní informace v hlavním/nadřazeném okně, aby uživatel mohl hádat, že některé akce neovlivní některé vybrané objekty. Například dejte objektům jen pro čtení odlišný vzhled, snad pouze při výběru (představuji si malé visací zámky pro kliky pro aplikaci typu CAD). Každá třída objektu by měla mít zřetelný vzhled, snad tím, že označí každý konkrétní ikonou. Tímto způsobem, jak uživatelé vybírají, mohou předvídat, jaké příkazy dělají, a nedávají smysl (např. Tato položka je kamera, takže ji lze přesunout, ale samozřejmě ji nelze změnit).

  • Pokud aplikace nedokáže zjistit, co se týká toho, co se otevře, pak možná změní vzhled výběru objektů, na které se akce nevztahuje. Například když uživatel změní hodnotu vlastnosti, všechny objekty, které tuto vlastnost postrádají, se v nadřazeném okně objeví „sekundárním“ výběrem.

  • Pokud nejsou kritéria pro provedení akce zřejmá, možná budete potřebovat nějaké textové narážky. Položka nabídky tlačítka vyvolávající akci může v titulku obsahovat, kolik položek ovlivní nebo co ovlivní (např. „Pouze plech“). Do pole Vlastnosti můžete přidat sloupec vedle sloupce vlastností, který říká pro mnoho položek, na které se každá vlastnost vztahuje nebo pro které lze změnit.

  • To může být příliš prostorově náročné, ale možná budete muset pouze uvést, že jsou ovlivněny pouze některé objekty (nikoli přesné číslo, identita nebo poměr). V takovém případě můžete v dialogovém okně použít poznámku pod čarou. Vytvořte symbol, který znamená „částečný“, možná napůl naplněný kruh? (Nepoužívejte hvězdičku - to příliš často znamená „vyžadováno“). Umístěte tento symbol jakoukoli kontrolou, která ovlivňuje podmnožinu výběru. Ve spodní části dialogu zobrazte symbol s textem „= platí pouze pro některé vybrané položky“. U akcí, které nepoužívají dialog, použijte stejný symbol v položce nabídky nebo titulcích příkazového tlačítka, včetně popisku, který to znamená.

  • V ideálním případě byste měli uvést, že akce se použije pouze částečně, než uživatel akci provede, ale jako záložku byste po akci mohli poskytnout zpětnou vazbu. Obecně chcete, aby byl účinek jakékoli akce vizuálně patrný ve vašich objektech v nadřazeném okně, což může být dostačující. Pokud se však stále obáváte, že jsou uživatelé zmateni (např. Objekty, které se posunuly mimo zorné pole, které si později všimli, že se nezměnily), možná můžete poskytnout nemodální textové oznámení (samo-odmítnutí), které říká „ [akce] [n] z [m] vybraných položek “po dokončení akce. Možná poskytne odkaz nápovědy pro případ, že uživatel nerozumí proč.

Nevím, jak to z nich bude ve skutečnosti fungovat, takže bude dobré vyzkoušet si, co si o uživatelích vyberete.

1
Michael Zuschlag

Jednoduchá odpověď je nenechte uživatele udělat chybu na prvním místě. Pokud nelze akci provést u všech vybraných položek, kterou byste měli zakázat, vysvětlete uživateli, proč akci nelze provést, a navrhněte řešení.

1
Antony Quinn

Pokud jde o příklad skutečného světa, Jira přijde na mysl. A ukazuje alespoň jednu možnou nevýhodu skrývání: když si lidé neuvědomí, že určitá akce není k dispozici, může to být docela frustrující. Nemůžete přesouvat problémy, které jsou uzavřené, ale já to zpočátku nevěděl. Hledal jsem dlouho a tvrdě, než jsem zjistil, proč najednou nedošlo k žádné akci, když jsem si byl velmi jistý, že jsem problémy přesunul dříve.

Myslím si proto, že přikrývka není nejlepší způsob. Můžete označit akce, které nejsou dostupné všem, nejlépe s vysvětlením, proč jsou označeny. Myslím, že by to mohlo fungovat velmi dobře, kdybyste lidem umožnili vybrat to bez ohledu na to, a nechat je, aby se vztahovali na „dostupné“. Pokud ne, myslím, že zakázání položek je lepší než skrytí. (Na druhou stranu je třeba dbát na to, abyste nekončili seznamem akcí, které jsou nekonečně dlouhé.)

1
Inca

Proč neudělat to, co dělají inspektoři vlastností/objektů mnoha integrovaných vývojových prostředí: ve formuláři zobrazují pouze vlastnosti společné pro všechny vybrané objekty?

Ve vašem scénáři: nabízejí pouze hromadné akce podporované všemi vybranými položkami. A aktualizujte dostupnost (povolený vzhled) vs nedostupnost (zakázaný vzhled) všech hromadných akcí s každou vybranou/nezaškrtnutou položkou. Tímto způsobem uživatel získá zpětnou vazbu a rychle zjistí, které hromadné akce jsou k dispozici pro které položky (a které položky mají společné hromadné akce).

1
Marjan Venema

Zdá se, že druhé řešení nabízené v samotné otázce funguje nejlépe:

Povolit akci, pouze pokud ji podporují všechny vybrané položky.

Můžete ji zobrazit jako deaktivovanou, s vysvětlením buď vedle ní, nebo v nápovědě, která uživateli dá vědět, proč je tato akce zakázána.

Domnívám se, že může být velmi matoucí umožnit uživateli provést akci, která ovlivňuje pouze část jejich výběru, a to i tehdy, když je upozorní poté, co tato skutečnost nemusí fungovat, protože živatelé nečtou text.

Je tedy pravděpodobné, že jakákoli varování nebo vysvětlení nebrání uživateli jednoduše kliknout na tlačítko A poté okamžitě zrušit dialogové okno oznámení.

Přesto to záleží na akci a aplikaci - pokud akce vyvolá změnu životního cyklu objektu, ovlivní jeho stav atd. Vynucuji „povolení akce pouze tehdy, když ji podporují všechny vybrané položky“. U věcí, které nejsou kritické, můžete preferovat lepší tok než přesnost.

1
Dan Barak

Chtěl bych použít akci na položky, které ji přijímají, a zbytek nechat. Myslím, že živatel je dostatečně chytrý, aby věděl, že akci nelze použít na ostatní položky.

Pokud uděláte zbytek rozhraní tak, aby to uživatel přímo pochopil, neměl by to být žádný problém a ostatní položky můžete nechat bez zvláštní zprávy.

To je také způsob, jakým se to dělá například v Gmailu. Vezměte dvě zprávy, jednu nepřečtenou a jednu přečtenou, vyberte obě a zvolte označit jako přečtené. Nepřečtená zpráva bude označena jako přečtená a již přečtená se nezmění. Zbytek rozhraní (tučný text a další barva pozadí) objasňuje, že přečtená zpráva již byla přečtena.

(Gmail dokonce říká, že 2 zprávy byly označeny jako přečtené, což se zdá trochu divné, ale v pořádku.)

1
Lode

Můj přístup:

Umožněte uživatelům vybrat požadované položky, nechat uživatele vybrat akci, kterou chtějí, pokud akce může být ovlivněna alespoň některou z položek a po provedení akce vraťte informační zprávu: „položky x, y, z nepodporují * akce, protože * motiv. "

Filtrování akcí, které lze použít na alespoň jednu vybranou položku, může být trochu složité.

0
Bobby Tables

Udělal bych něco jako: poslat zprávu, že ne všechny položky mají možnost smazat/upravit/přesunout/atd. a poté mít seznam s jejich entitou definující hodnoty pole. Nebo pokud jejich ne mnoho má temp. změna pořadí s n/a položkami v horní části seznamu, zvýrazněna.

0
Billy