Автосохранение форм типов контента

InstantCMS 2.X
#1 20 сентября 2024 в 21:32

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

Изображение

Текст фразы, кнопок, интервал вынесены в настройки

Изображение

Тестировалось на 2.16.2
Будет ли работать на более старой версии или default шаблоне не знаю.

Идеи развития компонента, сообщения о найденных недочетах и багах приветствуются.

Компонент не появился бы без финансовой поддержки от CEH9I

Прикрепленный файл
zdrafts20240920-1-0-2.zip 11 Кб
#2 20 сентября 2024 в 22:10

Спасибо, постараюсь протестировать.
Есть вопрос: Если эту функцию захотят использовать в деструктивных целях — заспамить обрывами — пару символов внес и имитировал обрыв и потом так 100500 раз.  Дураков много, мешать будут. Предусмотреть крон чистку этого.

#3 20 сентября 2024 в 23:53

Спасибо, постараюсь протестировать.
Есть вопрос: Если эту функцию захотят использовать в деструктивных целях — заспамить обрывами — пару символов внес и имитировал обрыв и потом так 100500 раз.  Дураков много, мешать будут. Предусмотреть крон чистку этого.

dChirkis

Невозможно более одной копии черновика иметь автосохраненного в каждом ТК.

#4 25 сентября 2024 в 10:07

Было бы здорово еще выдавать над записью сервисное сообщение каждые N секунд, что черновик в 10:07 обновлен. 
таким образом понятно, что есть какие-то черновики :)

#5 25 сентября 2024 в 11:02

Оно было. Через системный toastr. Это ппц как бесит после 2-3 всплытия.

Кроме того, среднестатический юзер никогда не столкнется с черновиками, ему даже и знать о них не за чем.

#6 26 сентября 2024 в 12:07

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

А вот если делать как на vc уведомление об обновлении черновика и потом при заходе на страницу записи (если автор не сохранил запись по кнопке «Сохранить» и редактирования для автора показывать виджет о том, что есть черновик от такого-то времени, то это было бы удобно и информативно, так как сразу понятно, что сохранилась версия, которая не была сохранена при создании. 

#7 1 октября 2024 в 07:53

Небольшое обновление: учет интервала из опций (правка потерялась в прошлом пакете и опция игнорировалась, использовалось 30 сек) и небольшие улучшения в коде.

Прикрепленный файл
zdrafts20241001-1-0-3.zip 11 Кб
#8 1 октября 2024 в 08:30

а если я набирал текст, потом вкладку сам принудительно в браузере закрыл, но не сохранил запись. То в  этом случае при попытке добавить новую запись после открытия новой вкладки браузера, должно показаться сообщение?

#9 1 октября 2024 в 10:13

 Def, да. Если интервал успел пройти и черновик сохранился. 

Если открыть, напечатать за 5 секунд и закрыть, черновик создаться не успеет

#10 1 октября 2024 в 10:43

Крон должен быть подключен или без крона происходит? Уточняю так как ждал минуту, в настройках опции стоит 10 секунд. Закрыл вкладку принудительно. Открыл вновь ссылку для добавления материала и сообщение не выдало. 

Вот думаю чтио упустил в настройках. Может какой-то виджет надо вывести?

#11 1 октября 2024 в 11:21

 Def, проверил последнюю версию. Все работает. Попробуйте переустановить компонент. Проверяйте настройки компонента, их надо сохранить обязательно хотя бы один раз, смотрите в исходном коде страницы добавления материала, подключается ли скрипт /templates/modern/controllers/zdrafts/js/zdrafts.js

Если не поможет, обратитесь к специалисту.

#12 1 октября 2024 в 13:00

Да, скрипт в подвале грузится, файл стилей сверху документа. 

Странно что модалка не появляется. При этом вижу в консоли, что запросы на черновик отдают 200 ответ, т.е все ок

Проверил на чистой системе. Все работает корректно! Спасибо. 
Буду думать что не так:(

#13 1 октября 2024 в 20:36

Если у вас шаблон не modern, обратите внимание, что форма для сохранения черновика ищется с помощью селектора

  1. $('article form')[0]

С modern данный селектор работает нормально. Если у вас свой шаблон, поправьте селектор в файле templates\modern\controllers\zdrafts\js\zdrafts.js в 14 строке. 

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

#14 2 октября 2024 в 10:25

Если у вас шаблон не modern, обратите внимание, что форма для сохранения черновика ищется с помощью селектора

  1. $('article form')[0]

С modern данный селектор работает нормально. Если у вас свой шаблон, поправьте селектор в файле templates\modern\controllers\zdrafts\js\zdrafts.js в 14 строке. 

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

Zau4man

Евгений, спасибо за подсказку!

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

Добавлено спустя 13 часов

Евгений, а скрипт может проверять есть ли интернет соединение и выдавать соообщение, что соединение прервано, черновик сохранен?

Добавлено спустя Только что

или черновик сохрняется в браузере, а не на сервере?

#15 2 октября 2024 в 11:40

Черновик сохраняется на сервере. Проверять может, в теории.

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