Так же как гмыло делает с отправкой писем: "перезагружу VM через 10 секунд… отменить | перезагрузить незамедлительно"
если удаление достаточно редкая операция, в БД нам придется делать отдельный флаг и везде собственно его проверять
Или добавить отдельную таблицу, куда добавлять ссылки на объекты для удаления. Много места она не займёт. Или ещё как-нибудь. Смотреть на архитектуру надо.
В общем случае атрибут "удалено" содержащий дату и время "удаления" объекта и периодически запускаемая задача по удалению "всего, что удалено X минут назад" решают проблему. Излишним усложнением системы это тяжело назвать.
А вообще — да, надо думать и реализовывать. Собственно, это и отличает хороший продукт от основной массы. В одном сели и подумали, а в другом нафигачили как проще.
Очевидно, нужно переводить фокус на элемент "отредактировать". С фокусом браузер сам вам прокрутит.
Если не помещается — что делать?
Давай ТЗ и бюджет — обсудим, что делать в вашем конкретном случае. Разработчику голова дана не чтобы код копипастить шаблонный, а чтобы удобный инструмент для решения задач пользователей предоставлять.
я еще могу кучу проблем найти в таком примере, которых модалка не имеет.
Для того, чтобы об этом узнать, достаточно один раз провести AB тестирование.
Вы его, конечно, провели. Результатами и их анализом поделитесь? Ну и было бы неплохо посмотреть на реализацию, чтобы исключить проблему в её некорректности.
Если это какая-нибудь "корзина" онлайн магазина, то позицию можно не убирать из списка, а зачёркивать/делать еле видимой и поверх неё разместить сообщение "товар удалён, через N секунд он исчезнет с экрана. Восстановить товар в корзине".
Если это какой-то сложный АРМ, где данные нужно убрать с экрана здесь и сейчас, то на странице историй действий оператора можно отдельно выводить доступное к восстановлению (отмене удаления) + в общем списке у того, что ещё не удалено фактически, выводить кнопку "отменить удаление". Или опция "показывать удалённые" на странице с объектами которыми оперирует пользователь.
Это сложнее для "разработать", но удобнее для "использовать". Модальные окна проще "написать", но заставляют пользователей совершать лишние действия. А пользователь лишних телодвижений должен совершать только если он сделал что-то неправильно. Когда человеку необходимо удалить несколько десятков объектов, он лучше пару раз "сходит" в "корзину" восстановить ошибочно удалённые данные, чем несколько десятков раз будет нажимать на "да, я уверен, что хочу это удалить"
Заблокировать поля ввода и немодально вывести кнопки «Подтвердить платёж» и «Скорректировать данные» на той же странице.
Если пользователь хотел перевести деньги — он нажмёт кнопку подтверждения. Если пользователь опечатался — нажмёт на кнопку изменения данных, чем разблокирует форму и снова "перевести"→"подтвердить".
Если пользователь не хочет этот трансфер — он первым же кликом перейдёт на другую страницу по любой из ссылок в личном кабинете. С модальным окном ему придётся сначала закрыть это окно.
Если пользователь захочет уточнить какие-то данные (историю переводов, реквизиты получателя, основание трансфера) — он в новой вкладке откроет другую часть личного кабинета, уточнит данные и подтвердит платёж вернувшись во вкладку с трансфером. В случае с модальным окном ему придётся сначала закрыть окно, потом сходить за данными, потом заново открывать модальное окно и только тогда подтверждать платёж.
Вместо запроса "Вы действительно хотите удалить?" лучше сразу скрывать с глаз пользователя данные и в уведомлении ему сообщить: «в течение такого-то времени вы можете данные восстановить, после они будут удалены навсегда», — а по истечении указанного интервала фактически уничтожить данные.
Подобный аргумент на статью потянет, а то и не на одну.
Но если хотите, можете назвать ситуацию, где без модального окна ну никак не обойтись, я вам постараюсь ответить как сделать без него и лучше.
Вы меня простите за категоричность, но единственный способ сделать нормальное модальное окно — никогда не использовать модальные окна, исключение есть только для окна ОС с запросом пароля пользователя для повышения прав приложения, и то не факт.
Что «последние китайские предупреждения», что любые другие модальные окна есть следствие непродуманности интерфейса.
Две недели — не срок. Поверьте моему горькому опыту. Места соприкосновения гитары и стойки должны быть защищены, иначе через пару лет потёртости уже будут заметны. Хотя бы мягкой тканью надо защитить лак от фанеры.
Если смогли, то что же в скрипте её нет?
Всяких веб морд для хостинга куча на выбор, а впн только одна. Почему не выбрана самая простая? "Симплификация" же.
btw, если устанавливать дополнительное ПО — фу, то что в скрипте "Установить какую-либо программу" делает?
Не стыдно сказать "не научился ещё, потому и нет". Стыдно отговорки из пальца высасывать.
Ну а на работе вам администратор как настроил, так и пользуетесь.
Ни я, ни KlimovDm, как оказалось, вас не минусовали. Может это люди со стороны?
Кому-то компьютер работать, кому-то фапать на пустой список установленных программ.
Почему вы приводите только плохие сценарии использования? Обойти блокировку, обмануть авторов сервиса, накачать игорей с рутрэкера…Помогать ему в этом не надо. А с обходом рикошетом РКН задетых сайтов справляется тор, который на локалхосте работает и серверов не требует.
Есть два варианта: сделать нормально, но установив приложение, которое (открою секрет, наверное) службой висит и молча поднимает соединение, или через задницу, но используя то, что тебе установили Microsoft. А чем установленное пользователем приложение отличается от того же скайпа, который в W10 планируют из коробки поставлять? Кроме возможности без проблем его удалить.
Если человек ключи в дропбокс кинет, то и пароли там же в txt оставит.
По поводу перевеса в плюс песня и правило 95 + толпа тех, кто плюсик поставил просто за старания, не вникая в суть.
Не сделали OpenVPN потому что не смогли. Не надо отмазок про сознательность.
Зачем вы унижаете аудиторию хабра? Местная аудитория, имхо, способна нагуглить рецепт, коих тысячи в интернете.
Писать вам разбор полётов? Работу над ошибками? Вы сначала репетиторство оплатите. Направление куда копать, чтобы научиться, я вам и так уже подсказал.
Баксов за 50 расскажу, что клиент есть. Полный дурак должен платить. Не полный найдёт в маркете бесплатный клиент, и в аппсторе найдёт.
С чего это мою утилитку? Это вы тут автоматизировать дураков пытаетесь. А вот, почему вы не снабжаете пользователей необходимой информацией — уже сами себе можете ответить.
Рутрэкер спокойно в торе работает. Зачем для него VPS\VDS держать? Да и готовых VPN сервисов навалом для этих целей. А вообще, пиратить не нужно.
И да, у вас в статье написано много юзкейсов, где кража данных может принести ущерб. Где в скрипте предупреждение, мол «если что ценное есть — впн скриптом не поднимай. дырявое будет»?
1. Не имеет значения. К слову: просканируйте сеть своего района\города. Удивитесь, сколько у скольких дебилов win2k3 торчит наружу 3389/TCP и пароли квертиподобные.
2. Билайну плевать на вашу приватность. Им pptp нужен не как средство повышения безопасности клиентов, а как способ их аутентификации. Так что тоже мимо.
3. Предоставить удобный инструмент для поднятия сервера и настройки клиента OpenVPN. Но ни в коем случае не автоматизировать установку дырявого сервера.
Так же как гмыло делает с отправкой писем: "перезагружу VM через 10 секунд… отменить | перезагрузить незамедлительно"
Или добавить отдельную таблицу, куда добавлять ссылки на объекты для удаления. Много места она не займёт. Или ещё как-нибудь. Смотреть на архитектуру надо.
В общем случае атрибут "удалено" содержащий дату и время "удаления" объекта и периодически запускаемая задача по удалению "всего, что удалено X минут назад" решают проблему. Излишним усложнением системы это тяжело назвать.
А вообще — да, надо думать и реализовывать. Собственно, это и отличает хороший продукт от основной массы. В одном сели и подумали, а в другом нафигачили как проще.
Очевидно, нужно переводить фокус на элемент "отредактировать". С фокусом браузер сам вам прокрутит.
Давай ТЗ и бюджет — обсудим, что делать в вашем конкретном случае. Разработчику голова дана не чтобы код копипастить шаблонный, а чтобы удобный инструмент для решения задач пользователей предоставлять.
Не стесняйтесь, оглашайте.
Вы его, конечно, провели. Результатами и их анализом поделитесь? Ну и было бы неплохо посмотреть на реализацию, чтобы исключить проблему в её некорректности.
Сообщать пользователю "я удалил" тоже надо не просто для галочки, а так, чтобы он этим смог воспользоваться.
А на тему "конфирм спасёт от случайного удаления" в Бюро в советах давно хорошая заметка была: https://bureau.ru/bb/soviet/20151215/
Если это какая-нибудь "корзина" онлайн магазина, то позицию можно не убирать из списка, а зачёркивать/делать еле видимой и поверх неё разместить сообщение "товар удалён, через N секунд он исчезнет с экрана. Восстановить товар в корзине".
Если это какой-то сложный АРМ, где данные нужно убрать с экрана здесь и сейчас, то на странице историй действий оператора можно отдельно выводить доступное к восстановлению (отмене удаления) + в общем списке у того, что ещё не удалено фактически, выводить кнопку "отменить удаление". Или опция "показывать удалённые" на странице с объектами которыми оперирует пользователь.
Это сложнее для "разработать", но удобнее для "использовать". Модальные окна проще "написать", но заставляют пользователей совершать лишние действия. А пользователь лишних телодвижений должен совершать только если он сделал что-то неправильно. Когда человеку необходимо удалить несколько десятков объектов, он лучше пару раз "сходит" в "корзину" восстановить ошибочно удалённые данные, чем несколько десятков раз будет нажимать на "да, я уверен, что хочу это удалить"
От вас не дождался примера в этой ветке. Ответил выше вам, + в соседней ветке: https://habr.com/ru/post/483114/#comment_21101194
Заблокировать поля ввода и немодально вывести кнопки «Подтвердить платёж» и «Скорректировать данные» на той же странице.
Если пользователь хотел перевести деньги — он нажмёт кнопку подтверждения. Если пользователь опечатался — нажмёт на кнопку изменения данных, чем разблокирует форму и снова "перевести"→"подтвердить".
Если пользователь не хочет этот трансфер — он первым же кликом перейдёт на другую страницу по любой из ссылок в личном кабинете. С модальным окном ему придётся сначала закрыть это окно.
Если пользователь захочет уточнить какие-то данные (историю переводов, реквизиты получателя, основание трансфера) — он в новой вкладке откроет другую часть личного кабинета, уточнит данные и подтвердит платёж вернувшись во вкладку с трансфером. В случае с модальным окном ему придётся сначала закрыть окно, потом сходить за данными, потом заново открывать модальное окно и только тогда подтверждать платёж.
Вместо запроса "Вы действительно хотите удалить?" лучше сразу скрывать с глаз пользователя данные и в уведомлении ему сообщить: «в течение такого-то времени вы можете данные восстановить, после они будут удалены навсегда», — а по истечении указанного интервала фактически уничтожить данные.
Подобный аргумент на статью потянет, а то и не на одну.
Но если хотите, можете назвать ситуацию, где без модального окна ну никак не обойтись, я вам постараюсь ответить как сделать без него и лучше.
Вы меня простите за категоричность, но единственный способ сделать нормальное модальное окно — никогда не использовать модальные окна, исключение есть только для окна ОС с запросом пароля пользователя для повышения прав приложения, и то не факт.
Что «последние китайские предупреждения», что любые другие модальные окна есть следствие непродуманности интерфейса.
Две недели — не срок. Поверьте моему горькому опыту. Места соприкосновения гитары и стойки должны быть защищены, иначе через пару лет потёртости уже будут заметны. Хотя бы мягкой тканью надо защитить лак от фанеры.
Чтобы записи не рассинхронизировались, можно не отрезать кусок, а затирать его тишиной.
В шапке подряд два хабрахабра ссылаются на одну и ту же страницу. На GT два гиктаймса:
Если смогли, то что же в скрипте её нет?
Всяких веб морд для хостинга куча на выбор, а впн только одна. Почему не выбрана самая простая? "Симплификация" же.
btw, если устанавливать дополнительное ПО — фу, то что в скрипте "Установить какую-либо программу" делает?
Не стыдно сказать "не научился ещё, потому и нет". Стыдно отговорки из пальца высасывать.
Ну а на работе вам администратор как настроил, так и пользуетесь.
TLDR
Ни я, ни KlimovDm, как оказалось, вас не минусовали. Может это люди со стороны?
Кому-то компьютер работать, кому-то фапать на пустой список установленных программ.
Почему вы приводите только плохие сценарии использования? Обойти блокировку, обмануть авторов сервиса, накачать игорей с рутрэкера…Помогать ему в этом не надо. А с обходом рикошетом РКН задетых сайтов справляется тор, который на локалхосте работает и серверов не требует.
Есть два варианта: сделать нормально, но установив приложение, которое (открою секрет, наверное) службой висит и молча поднимает соединение, или через задницу, но используя то, что тебе установили Microsoft. А чем установленное пользователем приложение отличается от того же скайпа, который в W10 планируют из коробки поставлять? Кроме возможности без проблем его удалить.
Если человек ключи в дропбокс кинет, то и пароли там же в txt оставит.
По поводу перевеса в плюс песня и правило 95 + толпа тех, кто плюсик поставил просто за старания, не вникая в суть.
Не сделали OpenVPN потому что не смогли. Не надо отмазок про сознательность.
Писать вам разбор полётов? Работу над ошибками? Вы сначала репетиторство оплатите. Направление куда копать, чтобы научиться, я вам и так уже подсказал.
С чего это мою утилитку? Это вы тут автоматизировать дураков пытаетесь. А вот, почему вы не снабжаете пользователей необходимой информацией — уже сами себе можете ответить.
Рутрэкер спокойно в торе работает. Зачем для него VPS\VDS держать? Да и готовых VPN сервисов навалом для этих целей. А вообще, пиратить не нужно.
И да, у вас в статье написано много юзкейсов, где кража данных может принести ущерб. Где в скрипте предупреждение, мол «если что ценное есть — впн скриптом не поднимай. дырявое будет»?
2. Билайну плевать на вашу приватность. Им pptp нужен не как средство повышения безопасности клиентов, а как способ их аутентификации. Так что тоже мимо.
3. Предоставить удобный инструмент для поднятия сервера и настройки клиента OpenVPN. Но ни в коем случае не автоматизировать установку дырявого сервера.