Что нового

Бесплатно Запись и восстановление данных формы при добавлении и редактировании новостей в админпанели

  • Автор темы Автор темы ravchik
  • Дата начала Дата начала

ravchik

Участник
OLD SkripTers
Регистрация
18 Дек 2019
Сообщения
98
Реакции
392
Бывают случаи, когда долго и упорно набираешь текст, заполняешь поля при добавлении или редактировании новости, и тут случается какой-нибудь казус вроде отключения света и сбой интернета... Бывает очень обидно потерять разом все данные формы. Для таких случаев сделал плагин, который записывает вводимые данные формы в LocalStorage, затем, при обновлении страницы (без сохранения), появлется панель с предложением вставить данные из сохраненного черновика или удалить этот черновик. Используется исключительно JS код, никаких правок движка.

1.png

Версия DLE: тестировал на 18.1 и 19.1

1. Версия с использованием LocalStorage. Размер записываемых данных максимум 5мб:


2. Версия с использованием IndexedDB (библиотека idb-keyval встроена в код). Размер данных практически не ограничен:
 
Последнее редактирование:
Бывают случаи, когда долго и упорно набираешь текст, заполняешь поля при добавлении или редактировании новости, и тут случается какой-нибудь казус вроде отключения света и сбой интернета... Бывает очень обидно потерять разом все данные формы. Для таких случаев сделал плагин, который записывает вводимые данные формы в LocalStorage, затем, при обновлении страницы (без сохранения), появлется панель с предложением вставить данные из сохраненного черновика или удалить этот черновик. Используется исключительно JS код, никаких правок движка.

Посмотреть вложение 6308

Версия DLE: тестировал на 18.1 и 19.1
*** Скрытый текст не может быть процитирован. ***
В целом неплохое решение для небольшого проекта, но есть нюансы)
К примеру, если один модератор начал редактировать новость и у него сохранился черновик, а в это время другой модератор внес изменения и сохранил их в БД - при восстановлении из черновика первый модератор может затереть правки второго актуальными для "вчерашнего дня" данными.

К тому же, localStorage имеет не резиновую память, около 5мб. Если статья большая с картинками, таблицами и прочим дерьмом, все равно есть вероятность потерять часть данных
 
В целом неплохое решение для небольшого проекта, но есть нюансы)
К примеру, если один модератор начал редактировать новость и у него сохранился черновик, а в это время другой модератор внес изменения и сохранил их в БД - при восстановлении из черновика первый модератор может затереть правки второго актуальными для "вчерашнего дня" данными.

К тому же, localStorage имеет не резиновую память, около 5мб. Если статья большая с картинками, таблицами и прочим дерьмом, все равно есть вероятность потерять часть данных
В целом вся критика аргументированная и по делу) Нюансы есть, возможно есть и решения, но для моих целей текущих возможностей достаточно, и я не планирую дальше развивать плагин. Я просто бесплатно поделился тем, что сделал для своих нужд.

К примеру, если один модератор начал редактировать новость и у него сохранился черновик, а в это время другой модератор внес изменения и сохранил их в БД - при восстановлении из черновика первый модератор может затереть правки второго актуальными для "вчерашнего дня" данными.
Этот нюанс решен) Архив обновил

К тому же, localStorage имеет не резиновую память, около 5мб. Если статья большая с картинками, таблицами и прочим дерьмом, все равно есть вероятность потерять часть данных
Этот нюанс тоже решен) Добавил архив версии с IndexedDB вместо LocalStorage
 
Верх