x
 
Данила Ковчий
9 марта 2009

Представляю кусочек панели управления информацией о сотрудниках на сайте организации.

Важной задачей было предохранить от случайности нажатия на кнопку «уволить», запускающую необратимый процесс стирания сотрудника из базы. Вместо всплывающих меню для подтверждения я придумал такую вот штуку с чекбоксами.

Как по-вашему, удобен ли и понятен ли без дополнительных пояснений принцип действия?



Ваше решение по-настоящему предохраняет только от механического промаха мимо кнопки «сохранить изменения». А это можно было решить иначе.

Рано или поздно жест «включить флажок — нажать на кнопку» станет автоматическим, и тогда ошибка станет делом случая.

Единственный универсальный способ защиты от ошибки — возможность ее исправить.

Впрочем, даже если исправление будет состоять в добавлении сотрудника заново, но с восстановлением всех старых связей, это лучше, чем ничего.

P. S.

Кнопку «уволить» стоило визуально отключить, пока она ненажимаема. Еще, на мой взгляд, такое навязчивое расположение выглядит странно по отношению ко всем сотрудникам, независимо от интерфейсных вопросов.


Поделиться
Отправить

Комментарии

Юрий Солоницын
9 марта 2009

Вот два интересных решения проблемы случайных нажатий на кнопки в ситуациях, требующих осторожности:

1. Программа Partition Magic (управление жестким диском, создание и удаление разделов, форматирование) требует перед выполнением опасных действий не просто нажать кнопку OK, но и ввести слово «OK» с клавиатуры в специальном поле;

2. В программе установки MS Windows XP (в текстовом режиме, до перехода в графический) практически на все действия кроме отмены (Esc) назначены нестандартные клавиши, поэтому сделать что-то, не разобравшись в инструкции, практически невозможно.

Антон Кулаков
9 марта 2009

Я согласен с А. Г. Лучше сделать в БД пометку — «уволен». Тогда для того что бы кого-то уволить, нужно будет всего лишь поставить еденичку в БД.  Соответственно, вернуть обратно будет так же легко, установив значение поля в нуль. Тогда не нужно будет изобретать подобные велосипеды.

Хотя в целом подход достаточно оригинальный, я бы вынес этот функционал на отдельную страницу. Согласитесь, увольнять сотрудников приходится не так часто )

Леша Захарченко
9 марта 2009

Убрать кнопку подальше, включать только по галочке, после этого еще раз переспросить, а после удаления дать возможность его отменить — максимализм тут полезен.

Саша Сергеев
9 марта 2009

На мой взгляд, если это нечасто выполняемая операция — разумнее сделать отдельную страницу «увольнения» и на ней разместить список сотрудников с галочками и кнопкой «уволить».

Евгений Арутюнов
9 марта 2009

Очень напрашивается в самом низу кнопка «Уволить всех».

Роман Добровенский
9 марта 2009

Очень жестокий получился интерфейс. Особенно в условиях кризиса. В данном случае задачу лучше бы решать организационно: увольнение должны подтвердить несколько человек (минимум двое), а также перед нажатием на кнопку и стиранием из базы должно пройти некоторое время, в течение которого никаких изменений в базу вноситься не будет.

Денис Братчук
9 марта 2009

Вам безусловно пригодится информация об уволенных сотрудниках, так что стирать информацию из базы не очень разумно.

Если сотрудник сам уйдет, вы его тоже будете «увольнять»? Если нажать «уволить», получит ли сотрудник уведомление об увольнении? Стоит переименовать кнопку в «удалить».

Показывать сразу формы редактирования — это не очень хорошее решение. Как минимум, вы не всегда увидите полное имя и адрес. Достаточно показывать значения и кнопку «изменить», это сэкономит место и позволит убрать повторяющиеся элементы (поля ввода и заголовки, кнопки сохранения и удаления). Кстати, как вы собираетесь изменять фотографии сотрудников?

Денис Чмель
9 марта 2009

Еще раз опоздаешь — не промахнусь :)

Александр Шпак
9 марта 2009

Ну почему так сложно разнести в разные стороны кнопки две кнопки? Ни чекбокс, ни предупреждение в вашем случае не помогут. Тут, по-моему, есть два варианта. Или делать по принципу корзины, не увольняя сотрудника, а перенося его в отдельную таблицу например, и по истечению определенного срока она бы сама удаляла свое содержимое. Или просто разнести кнопки в разные стороны, одну вверх, другую оставить внизу, например. Если первый вариант может остановить лень, то второй отлично защитит от механических действий без лишних телодвижений.

Алисей Лебедев
9 марта 2009

Стрелка четко показывает куда нужно жать, к тому же кнопка удаления завершает собой форму, прямо действие по умолчанию.

Я бы сделал маленькую ссылку «Удалить», при нажатии на которую разворачивается textarea, в нее можно вписать причину удаления, и потом уже сделать последний шаг.

Почему не «уволить», а «удалить». Во-первых, для увольнения наверное нужно сделать несколько больше, чем просто нажать кнопку. А во-вторых, сотрудник мог к примеру погибнуть в ДТП, и слово «уволить» в таком случае будет звучать как издевательство.

Еще в форме слишком тесные поля для имени и номера телефона.

Дмитрий Олляк
9 марта 2009

Данила, если решать задачу чисто механически, то избавиться от всплывающего окна с запросом подтверждения — рискованная идея. Я (думаю, и многие другие пользователи) принял бы галочку за неудобство в интерфейсе, а потом бы рвал на себе волосы в поисках кнопки «Отменить». Я за всплывающее окно, а лучше с таймером на 10 секунд после нажатия кнопки, подтверждающей удаление. Чтобы можно было спохватиться и отменить.

А если вдуматься в постановку задачи, то при увольнении работника информация о нем может оказаться полезной и востребованной еще около полугода (из моего личного руководящего опыта). Если это был классный продуктивный сотрудник, то без контакта с ним никак, всплывают различные «хвосты», старые сделки, необходимы советы по той или иной ситуации и т. п. Сделайте вместо удаления функцию «переместить в архив» с возможностью отмены. Например, выбор галочками личных карточек и кнопка с действием с выбранными карточками внизу страницы. Всплывающее окно с подтверждением — с перечислением ФИО перемещаемых сотрудников.

А если ваша программа воссоздает в электронном виде кадровый учет, то в соответствии с законодательством личные дела работников после увольнения должны храниться в архиве 10 лет.

Анатолий Rr Буров
10 марта 2009

Кнопка «Сохранить изменения» действует только на одного сотрудника? А если поменять информацию у десяти, ее придется нажимать десять раз? Не перезагрузит ли кнопка страницу, потеряв изменения у остальных?


Варианты решения пробемы:
1. Кнопка «Сохранить» действует через ajax. Кроме того, нужно отдельно добавить кнопку «Сохранить все изменения». И если есть несохраненные изменения, предупреждать при уходе со страницы.

2. Режим редактирования включать только если этого специально попросят, для каждого сотрудника индивидуально.

Руслан Юлдашев
10 марта 2009

Кнопка «Уволить» вообще не должна быть на этой странице. Телефон и почта могут меняться довольно часто (кстати, а почему в представленном интерфейсе нельзя добавить два и более адресов для связи?), а увольнение сотрудника — не такое частое и гораздо более важное изменение (телефон может поменять даже секретарша, а удалять сотрудника из базы должнен человек с соответствующими полномочиями).

Поэтому «увольнение» сотрудника я бы выделил в отдельную страницу или, в крайнем случае, в другой, визуально отделенный блок.

Александр Пономарев
10 марта 2009

Описание поля должно находится слева или сверху. Если вы делаете интерфейс «для себя», можно вообще отказаться от пояснений, либо сделать их в виде подсказок внутри полей, как значения полей по умолчанию. В данном, конкретном случае, внутри уже заполненной формы подсказки ни к чему.

Сами формы не должны выглядеть как формы, пока у пользователя нет нужды редактировать значения полей. Добиться этого можно, используя разные стили формы в фокусе мыши и за его пределами.

Кнопка «Уволить» может становиться доступной после того, как вы удалите значение поля «Имя». Одновременно с этим, кнопка «Сохранить изменения» должна становиться недоступной. Названия кнопок, как и названия полей, надо писать с заглавной буквы.

Олег Томенко
10 марта 2009

Ну, в таком случае это должно выглядеть примерно так (извините за «красоту»). То есть вы сначала выбираете сотрудников, а затем уже нажимаете кнопку «уволить выбранных». Тогда они исчезают из списка и перемещаются в список «уволенных», из которого сотрудников можно восстановить. Я убрал кнопки про «сохранение», потому что данные должны сохраняться сами при переходе из поля в поле, человек не должен нажимать ничего лишнего. По крайней мере, было бы чудесно :)

Александр Пономарев
10 марта 2009

Олег, кнопка «Сохранить» нужна на случай отсутствия у вас потребности этого самого «перехода из поля в поле». Например, при изменении данных в последней редактируемой вами форме.

Олег Томенко
10 марта 2009

Уважаемые советчики: всплывающие окна, предупреждения о том, что я увольняю кого-то, никого не спасет от ошибки. Главное здесь, как и во многих интерфейсах, я считаю, не предохранить от случайного удаления, а предусмотреть легкое восстановление в случае нажатия кнопки.

Алексей Мельников
11 марта 2009

В общем случае вопрос решается при помощи аякса: пользователь нажимает «удалить», запись исчезает и на ее месте появляется ссылка «восстановить». После обновления страницы (или просто ухода по другой ссылке) запись исчезает полностью.

Дмитрий Кравчик
11 марта 2009

Ни в одной кадровой БД данные об уволенных сотрудниках не удаляются. Меняется лишь статус.

Иван Неслуховский
12 марта 2009

«Уволен» — это статус, наряду со статусом «работает» (или какими-то еще, например, «в декрете», «на испытательном сроке» и т. п.) Его можно оформить в виде выпадающего списка (в данном компактном случае) и редактировать вместе с остальными данными. Причем статус так же легко может быть изменен обратно. Так что это не кнопка, а часть данных о сотруднике. На какой-то специализированной странице (например, «Увольнения», муа-ха-ха) перевод статуса можно оформить и в виде операции (т. е. кнопки), но суть именно в том, что это такой же вид данных, как и название должности.

Денис Братчук
12 марта 2009

Раз уж столько людей собралось и с увольнением более-менее разобрались, давайте усложним задачу?

Представьте, что данные таки удаляются навсегда и восстановлению не подлежат. Как избежать случайного удаления?

Миша Болдов
13 марта 2009

Если задача стоит «Случайно не нажать на кнопку» — можно передвинуть кнопку так, чтобы она не стояла рядом с сохранением изменений. Удалить случайно можно что угодно — здесь спасет возможность мгновенного отката (Вконтакте и Gmail делают именно так): после удаления сразу предлагается откатить операцию (пока не перезагружу страницу). Эти способы помогут предотвратить запись от случайного удаления.

На мой взгляд, даже при удалении полезно оставлять базу данных профессионалов, к которым, возможно, можно будет обращаться в будущем. Таким образом, при увольнении записи просто присваивается статус «в базе контактов» или «уволен», после чего она просто переносится в другую вкладку системы (Обратная связь: при переносе записи возникает «+1», говорящий о том, что в соответствующую вкладку добавлена 1 запись). В «базе контактов» также полезно вести историю взаимоотношений с человеком.

Кирилл Борисов
25 марта 2009

По нажатию кнопки «удалить» показывается таймер с кнопкой «отмена», скажем заведенный на 5 мин., по истечению которых происходит безвозвратное удаление. Моторную ошибку за 5 минут заметит и исправит и инвалид.


Цель рубрики — обсуждение вопросов дизайна всех видов, текста в дизайне и взаимоотношений дизайнеров с клиентами.

Мы публикуем комментарии, которые добавляют к уже сказанному новые мысли и хорошие примеры. Мы ожидаем, что такие комментарии составят около 20% от общего числа.

Решение о публикации принимается один раз; мы не имеем возможности комментировать или пересматривать свое решение, хотя оно может быть ошибочно. Уже опубликованные комментарии могут быть удалены через некоторое время, если без них обсуждение не становится менее ценным или интересным.

Вот такой веб 2.0.

5 Иногда люди, когда пытаются оценить, насколько выгодно расположены элементы на форме, рисуют линию, по которой якобы глаз скользит 2 6 3