it-swarm-vi.tech

Hành động hàng loạt: phải làm gì khi không phải tất cả các mục đều hỗ trợ một hành động

Hình ảnh kịch bản sau đây: người dùng chọn một loạt các mặt hàng và hộp 'hành động hàng loạt' xuất hiện; người dùng chọn một hành động mà không phải tất cả các mục đều hỗ trợ (vì lý do này hay lý do khác).

Bạn làm gì trong trường hợp này: áp dụng hành động cho các mục hỗ trợ nó? không áp dụng hành động nào cả và hiển thị thông báo lỗi?

Ý tưởng hiện tại của tôi là:

  • Áp dụng hành động cho các mục hỗ trợ nó; đối với các hành động khiến các mục biến mất (như 'xóa mục'), tôi sẽ để lại các mục vi phạm phía sau, vẫn được chọn, với thông báo lỗi: "một số mục không thể bị xóa".
  • Vô hiệu hóa các hành động không được hỗ trợ bởi tất cả các mục và cung cấp liên kết 'sửa lỗi này để bỏ chọn các mục vi phạm cho hành động.

Ngoài ra, bạn có thể chỉ cho tôi về bất kỳ ví dụ thực tế có liên quan?

13
Dan Burzo

Không có thêm thông tin từ bạn (ví dụ: đó là ứng dụng dành cho máy tính để bàn hay web?), Đây là một ý tưởng:

alt text

Khi người dùng chọn hành động nào cô ấy muốn thực hiện, không làm gì với các mục danh sách nếu hành động đó có thể áp dụng cho tất cả các mục đã chọn. Nếu không thể, sau đó hiển thị in đậm (hoặc màu khác) những màu mà mục đó áp dụng, cùng với một văn bản giải thích ở bên phải, ví dụ:

alt text

Bạn chắc chắn nên hiển thị tổng số mục có thể được di dời vì danh sách có thể khá dài.

Tất nhiên, đây chỉ là một trong một số biến thể có thể.

6
Hisham

Câu trả lời đơn giản là đừng để người dùng mắc lỗi ngay từ đầ. Nếu một hành động không thể được thực hiện trên tất cả các mục đã chọn, bạn nên vô hiệu hóa hành động đó, giải thích cho người dùng lý do tại sao hành động đó không thể được thực hiện và đề xuất giải pháp.

5
Antony Quinn

Tôi nghĩ rằng hầu hết các giải pháp UI đều phụ thuộc vào ngữ cảnh: một giải pháp hoạt động cho "xóa" có thể không hoạt động cho "di chuyển" và một giải pháp hoạt động trong thương mại điện tử có thể không hoạt động trong một công cụ công nghiệp.

Điều đó nói rằng, trong tóm tắt, tôi có thể thêm một chỉ báo số vào "hộp xuất hiện" mà bạn đã trích dẫn, nói với người dùng một cái gì đó như: "29 mục tiêu, 5 khóa" để anh ta có thể tiếp tục mà không gặp vấn đề gì nếu anh ta muốn, hoặc kiểm tra "mục cảnh báo" là gì bằng cách nhấp vào phần "5 bị khóa".

Bằng mọi cách, tôi sẽ tránh mọi "thông báo lỗi": đó là vấn đề của bạn, không phải vấn đề của người dùng. ;)

5
Folletto

Dựa trên ví dụ ngược lại bên dưới - Tôi muốn thấy một danh sách với tất cả các mục bật lên nói rằng chỉ những mục cụ thể mới được áp dụng hành động (được đặt tên) (và những mục được đánh dấu khác nhau trong danh sách) - và đưa ra "Chắc chắn, đi phía trước "và hành động" Hủy ".

Tôi không cảm thấy thoải mái khi hiển thị lại một danh sách tương tự nhưng vì lợi ích của việc đi tiếp tôi nghĩ rằng đó là lần đầu tiên của tôi.

Atleast không làm như Microsoft Exchange 2010 Console - nó gây ra lỗi cho tất cả các mục mà hành động không được hỗ trợ (một danh sách dài trong cửa sổ bật lên phương thức không phải là resizeble nhỏ) và nó cũng không áp dụng cho các mặt hàng hỗ trợ nó (sic). Không có cách nào để thoát khỏi tình huống ngoại trừ việc hủy bỏ hoàn toàn ý tưởng và đào ra Powershell, hoặc cố gắng tham khảo chéo hộp thoại lỗi phương thức nhỏ để chọn thủ công từng mục một vi phạm đằng sau nó ... ^^

3
Oskar Duveborn

Tôi đã thấy một vài cách tiếp cận để xử lý tình huống này, cả hai đều không thỏa đáng:

  • Âm thầm từ chối đa lựa chọn. Ví dụ, CorelDraw tránh được vấn đề bằng cách không cho phép người dùng đa lựa chọn kết hợp các đối tượng có thể chỉnh sửa và không thể chỉnh sửa (bị khóa khóa) ngay cả khi chỉ xem thông tin chỉ đọc. Tương tự, IronCAD giành chiến thắng cho phép bạn chọn nhiều đối tượng của các lớp khác nhau (ví dụ: máy ảnh và một phần). Đó dường như là một hạn chế không cần thiết đối với tôi.

  • Lệnh từ chối âm thầm. Windows XP chỉ đơn giản là bỏ qua bạn nếu cố gắng mở cửa sổ thuộc tính cho nhiều mục thuộc các lớp khác nhau (ví dụ: Máy tính của tôi và tệp pdf). Điều đó có thể gây nhầm lẫn và bực bội.

Dường như với tôi, bạn muốn cho phép người dùng linh hoạt nhất bằng cách cho phép đa lựa chọn bất cứ thứ gì và làm nhiều nhất có thể trên bất cứ thứ gì được chọn. Đồng thời, bạn không muốn lừa đảo người dùng của mình bằng các hộp thông báo như được mô tả bởi Oskar Duveborn trên trang này.

Nó tranh cãi nếu người dùng mắc lỗi: có lẽ họ muốn thực hiện Command X trên tất cả các đối tượng nằm rải rác trong cửa sổ mà Command X áp dụng, biết rõ rằng nó không áp dụng cho một số đối tượng nhất định. Vì vậy, họ gõ Ctrl-A và chọn Command X. Hỗ trợ rằng lừa lừa trực tiếp sẽ rất thuận tiện. Hoặc có thể họ đã chọn nhiều thứ để áp dụng Lệnh X và sau đó là Lệnh Y. Sẽ rất hữu ích nếu họ không phải chọn lại nhiều lần hoặc điều chỉnh đa lựa chọn giữa các lệnh để loại trừ các đối tượng không cho áp dụng.

Đây là một số ý tưởng:

  • Trước tiên, hãy cố gắng chỉ ra thông tin có liên quan trong cửa sổ chính/cha mẹ để người dùng có thể đoán rằng một số hành động đã giành được ảnh hưởng đến một số đối tượng được chọn. Ví dụ: cung cấp cho các đối tượng chỉ đọc một giao diện khác biệt, có lẽ chỉ trên vùng chọn (I Tưởngm tưởng tượng khóa móc nhỏ để xử lý cho ứng dụng loại CAD). Mỗi lớp đối tượng nên có một diện mạo riêng biệt, có thể bằng cách gắn thẻ cho mỗi đối tượng với một biểu tượng cụ thể. Bằng cách này, khi người dùng đa lựa chọn, họ có thể dự đoán những lệnh nào được thực hiện và don lồng có ý nghĩa (ví dụ: mục này là máy ảnh, vì vậy nó có thể được di chuyển nhưng rõ ràng có thể thay đổi kích thước).

  • Nếu ứng dụng có thể nói với những gì áp dụng cho những gì cho đến khi hộp thoại được mở, thì có thể thay đổi giao diện lựa chọn các đối tượng mà hành động không áp dụng. Ví dụ, khi người dùng thay đổi một giá trị thuộc tính, tất cả các đối tượng thiếu thuộc tính đó sẽ xuất hiện lựa chọn thứ cấp của Lọ trên cửa sổ cha.

  • Nếu các tiêu chí để áp dụng một hành động không rõ ràng, bạn có thể cần một số tín hiệu văn bản. Mục menu của nút gọi hành động có thể bao gồm trong chú thích của nó có bao nhiêu mục mà nó ảnh hưởng hoặc những gì nó ảnh hưởng (ví dụ: kim loại Tấm chỉ có kim loại). Trong hộp Thuộc tính, bạn có thể bao gồm một cột bên cạnh cột thuộc tính cho biết nhiều mục mà mỗi thuộc tính áp dụng hoặc có thể được thay đổi cho.

  • Điều đó có thể quá tốn dung lượng, nhưng có lẽ bạn chỉ cần chỉ ra rằng một số đối tượng bị ảnh hưởng (không phải là số lượng, danh tính hoặc tỷ lệ chính xác). Trong trường hợp đó, có lẽ bạn có thể sử dụng chú thích trong hộp thoại. Tạo một biểu tượng có nghĩa là một phần, có thể là một nửa hình tròn? (Donv sử dụng một dấu hoa thị quá thường xuyên có nghĩa là bắt buộc phải có). Đặt biểu tượng này bằng bất kỳ điều khiển nào ảnh hưởng đến một tập hợp con của lựa chọn. Ở dưới cùng của hộp thoại, hiển thị biểu tượng với văn bản mệnh đề = chỉ áp dụng cho một số mục đã chọn. Đối với các hành động không sử dụng hộp thoại, hãy sử dụng cùng một biểu tượng trong mục menu hoặc chú thích nút lệnh, bao gồm cả chú giải công cụ để giải thích ý nghĩa của nó.

  • Tốt nhất, bạn nên chỉ ra rằng hành động chỉ áp dụng một phần trước khi người dùng thực hiện hành động đó, nhưng như một dự phòng, bạn có thể cung cấp một số phản hồi sau hành động. Nói chung, bạn muốn làm cho hiệu ứng của bất kỳ hành động nào hiển thị rõ ràng trong các đối tượng của bạn trong cửa sổ cha mẹ, và điều đó có thể là đủ. Tuy nhiên, nếu bạn vẫn lo lắng về việc người dùng bị nhầm lẫn (ví dụ: bởi các đối tượng đã di chuyển khỏi chế độ xem mà sau đó họ nhận thấy không thay đổi), thì có thể bạn có thể cung cấp một thông báo văn bản không có chế độ (tự loại bỏ) nói rằng [đã hành động] [n] trong số [m] các mục đã chọn, khi hành động được hoàn thành. Có thể cung cấp một liên kết Trợ giúp trong trường hợp người dùng không hiểu tại sao.

Tôi không biết những thứ này sẽ thực sự hoạt động như thế nào, vì vậy nó sẽ là một ý tưởng tốt để kiểm tra bất cứ điều gì bạn quyết định với người dùng.

1
Michael Zuschlag

Câu trả lời đơn giản là đừng để người dùng mắc lỗi ngay từ đầ. Nếu một hành động không thể được thực hiện trên tất cả các mục đã chọn, bạn nên vô hiệu hóa hành động đó, giải thích cho người dùng lý do tại sao hành động đó không thể được thực hiện và đề xuất giải pháp.

1
Antony Quinn

Đối với một ví dụ trong thế giới thực, Jira nghĩ đến. Và nó cho thấy ít nhất một nhược điểm có thể có của các hành động che giấu: khi mọi người không nhận ra một hành động nào đó không khả dụng, điều đó có thể khá bực bội. Bạn không thể di chuyển các vấn đề đã bị đóng, nhưng ban đầu tôi không biết điều đó. Tôi đã tìm kiếm rất lâu và chăm chỉ trước khi tìm ra lý do tại sao đột nhiên không có hành động di chuyển khi tôi rất chắc chắn rằng tôi đã di chuyển các vấn đề theo cách đó trước đây.

Tôi nghĩ vì lý do đó mà giấu chăn không phải là cách tốt nhất. Bạn có thể đánh dấu các hành động không có sẵn cho tất cả, tốt nhất là với một lời giải thích tại sao chúng được đánh dấu. Tôi nghĩ rằng nó có thể hoạt động rất tốt nếu bạn cho phép mọi người chọn nó bất kể và để họ áp dụng cho 'những thứ có sẵn'. Nếu không, tôi nghĩ vô hiệu hóa các mục tốt hơn là ẩn. (Mặt khác, cần lưu ý rằng bạn không kết thúc với một danh sách các hành động dài vô tận.)

1
Inca

Tại sao không làm những gì mà thanh tra thuộc tính/đối tượng của nhiều Môi trường phát triển tích hợp làm: chỉ hiển thị các thuộc tính chung cho tất cả các đối tượng được chọn trên một biểu mẫu?

Trong kịch bản của bạn: chỉ cung cấp các hành động hàng loạt được hỗ trợ bởi tất cả các mục đã chọn. Và cập nhật tính khả dụng (giao diện được bật) so với không khả dụng (giao diện bị vô hiệu hóa) của tất cả các hành động hàng loạt với từng mục được chọn/bỏ chọn. Bằng cách này, người dùng sẽ nhận được phản hồi và nhanh chóng chọn ra những hành động hàng loạt có sẵn trên những mặt hàng nào (và mặt hàng nào có những hành động chung chung).

1
Marjan Venema

Có vẻ như giải pháp thứ hai được đưa ra trong chính câu hỏi hoạt động tốt nhất:

Chỉ kích hoạt hành động khi tất cả các mục đã chọn hỗ trợ.

Bạn có thể hiển thị nó bị vô hiệu hóa, với một lời giải thích bên cạnh nó hoặc trong một chú giải công cụ để cho người dùng biết lý do tại sao hành động này bị vô hiệu hóa.

Tôi tin rằng có thể rất khó hiểu khi cho phép người dùng thực hiện một hành động chỉ ảnh hưởng đến một phần lựa chọn của họ, thậm chí thông báo cho họ sau hoặc trước khi thực tế có thể không hoạt động kể từ người dùng không đọc văn bản.

Do đó, rất có thể bất kỳ cảnh báo hoặc giải thích nào sẽ không ngăn người dùng chỉ cần nhấp vào nút VÀ sau đó ngay lập tức bỏ qua hộp thoại thông báo.

Có nói rằng, nó phụ thuộc vào hành động và ứng dụng - nếu hành động kích hoạt thay đổi vòng đời của một đối tượng, ảnh hưởng đến trạng thái của nó, v.v. Tôi sẽ thực thi "chỉ cho phép hành động khi tất cả các mục được chọn hỗ trợ". Đối với những thứ không quan trọng, bạn có thể thích dòng chảy tốt hơn độ chính xác.

1
Dan Barak

Tôi sẽ áp dụng hành động cho các mục chấp nhận nó và phần còn lại. Tôi nghĩ người dùng đủ thông minh để biết rằng hành động không thể được áp dụng cho các mục khác.

Nếu bạn thực hiện phần còn lại của giao diện để người dùng trực tiếp hiểu điều này, thì đó không phải là vấn đề và bạn có thể để các mục khác mà không có thông báo đặc biệt.

Đây cũng là cách nó được thực hiện trong Gmail chẳng hạn. Lấy hai tin nhắn, một chưa đọc và một đọc, chọn cả hai và chọn đánh dấu là đã đọc. Tin nhắn chưa đọc được đánh dấu là đã đọc và tin nhắn đã đọc không thay đổi. Phần còn lại của giao diện (văn bản in đậm và màu nền khác) cho thấy rõ rằng tin nhắn đã đọc đã được đọc.

(Gmail thậm chí còn tiết lộ rằng 2 thư được đánh dấu là đã đọc, có vẻ hơi lạ, nhưng ok.)

1
Lode

Cách tiếp cận của tôi:

Cho phép người dùng chọn các mục họ muốn, cho phép người dùng chọn hành động họ muốn nếu ít nhất một mục có thể bị ảnh hưởng bởi hành động và sau khi hành động được thực hiện, hãy trả lại thông báo thông tin: "các mục x, y, z không hỗ trợ * hành động vì * mô típ. "

Lọc các hành động có thể được áp dụng cho ít nhất một mục được chọn có thể hơi khó khăn '.

0
Bobby Tables

Tôi sẽ làm một cái gì đó như: đăng một thông báo rằng không phải tất cả các mục đều có khả năng xóa/chỉnh sửa/di chuyển/v.v. và có một danh sách với thực thể xác định giá trị trường sau đó. Hoặc nếu họ không có nhiều tạm thời. sắp xếp lại với n/a mục trên đầu danh sách, được tô sáng.

0
Billy