Rails: редактор на месте, но без обратной передачи? - PullRequest
3 голосов
/ 22 января 2010

Я использую Prototype в моем проекте Rails для редактирования на месте (через Ajax.InPlaceEditor) формы. Однако я не хочу, чтобы он немедленно отправлял сообщения и делал обновление - сама форма довольно сложная, и пользователь может отказаться от своих изменений. Только теперь они не могут, потому что форма незаметно (для них) обновила базу данных.

Итак, я думал о том, чтобы использовать Prototype InPlaceEditor без указания URL-адреса обратной передачи (или сделать его универсальным URL-адресом обратной передачи, возвращающим значение true), а затем в качестве части «onLeaveEditMode» для поля обновить его скрытым поле формы с новым значением.

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

Итак, я приступил к выполнению этой миссии в небольшом тестовом прототипе, и, похоже, он работает - за исключением того, что он означает значительный объем кода javascript и, в некотором смысле, кажется, что он убивает цель InPlaceEditor. Это должно быть решенной проблемой, но мой гугл-фу не возвращает ничего, как я хочу.

Что-то вроде этого (но, очевидно, не в виде сетки), где вы можете редактировать поля на месте, но должны нажать «сохранить», чтобы зафиксировать ваши изменения: http://www.nitobi.com/products/grid/editors/

Пара вопросов: 1) Есть ли существующий плагин rails или класс Prototype, чтобы сделать это для меня? 2) Если нет, мой подход звучит разумно?

Спасибо !!

1 Ответ

3 голосов
/ 23 января 2010

Если вы просто хотите модно почувствовать встроенное редактирование. Поддельные.

  • Сохранить границы полей формы нет. Так это будет выглядеть как обычный текст.
  • При наведении курсора выделите фон поля.
  • На рамке показа фокуса (путем добавления класса или изменения встроенных стилей).
  • На Blur снова скрываются границы.

Вам не нужны призрачные скрытые поля. И большая часть материала - CSS.

Используйте jquery, чтобы минимизировать код JavaScript. : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...