|   |   | 
| 
 | Кто-нибудь делал поддержку истории (Ctrl+Z Ctrl+Y)? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Юрий Лазаренко 01.11.11✎ 10:11 | 
        Есть форма, на ней поле HTML с набором объектов. Объекты можно перемещать мышой, изменять размер, менять текст внутри или цвет, удалять с поля и т.д.
  Задача - реализовать ведение истории изменений, чтобы потом можно было отменить любое действие нажатием клавиш или, например, открыть окошко со списком изменений и отменить любое из них выбором. Кто-нибудь заморачивался этим? Или хотя бы ткните в примеры реализации. | |||
| 1
    
        Ёпрст гуру 01.11.11✎ 10:14 | 
        я делал, только для клюшек.
  По "кругу" гоняются вс реквизиты формы. | |||
| 2
    
        Ёпрст гуру 01.11.11✎ 10:17 | 
        +1 для снеговика есть падобные поделки, только в части полностью сохраненных объектов ИБ (сохранение после нажатия кнопки "записать"), я же делал - сохранение атрибутов при любом изменении.
  Под снеговика, с кандачка переписать не получится - там нет некоторых событий, реализованных в клюшках с помощью ВК. | |||
| 3
    
        Jstunner 01.11.11✎ 10:18 | 
        (0) ничего сложного     | |||
| 4
    
        Stepa86 01.11.11✎ 10:20 | 
        Сделать то легко - или сз или тз с колонками ИмяОбъекта, Значение. Но вот к горячим клавишам привязаться может быть сложнее     | |||
| 5
    
        Stepa86 01.11.11✎ 10:22 | 
        Тут главный вопрос, а нужна ли так сильно эта история?     | |||
| 6
    
        Юрий Лазаренко 01.11.11✎ 10:25 | 
        (1) "По кругу гоняются" это как?
  (2) Мне алгоритм посмотреть, если не жалко конечно. В любом примере всегда можно взять что-то полезное. (5) Нужна. Во всяком случае были у меня уже моменты, когда ее не хватало, а раз так, то и у клиентов появится потребность. | |||
| 7
    
        Stepa86 01.11.11✎ 10:28 | 
        (6) при изменении поля клади его в стек, при восстановлении из стека просто подменяй поле сохраненным значением... при достаточной инкапсуляции стека можно сделать сперва версию на коленке "чтоб работало" за 10 минут, а при необходимости добавить плюшек, типа времени изменения, хранения между сеансами итп...     | |||
| 8
    
        Ёпрст гуру 01.11.11✎ 10:28 | 
        (6) по Ctrl+z возвращаются предыдущие значения всех атрибутов,еще раз нажмешь - еще предыдущие и т.д..     | |||
| 9
    
        acsent 01.11.11✎ 10:28 | 
        (0) Не проще ли нормальный хтмл редактор запускать? Найти актив-х какой нибудь если уж очень хочестся в 1с     | |||
| 10
    
        Ёпрст гуру 01.11.11✎ 10:31 | 
        (6) идея такая - перехватчиком ловитятся предопределенные события , в которых ведётся запись в ТЗ+ в формулу всех атрибутов формы программно устанавливается вызов своей процы, которая пишет в ТЗ.
  По горячей клавише из ТЗ переписываются все значения атрибутов формы назад. | |||
| 11
    
        Ёпрст гуру 01.11.11✎ 10:31 | 
        +10 но для html, такой способ не катит
  :( | |||
| 12
    
        Юрий Лазаренко 01.11.11✎ 10:48 | 
        (10) Ну в общем как я и думал. А почему думаешь для HTML не прокатит? Я записываю в ТЗ УИД объекта, для которого произведено действие, тип действия (размер, перемещение, цвет, текст и т.д.) старые значения и новые значения. При отмене просто устанавливаем для объекта те атрибуты, которые сохранены в колонке "Старые значений".
  (9) Я же не редактор леплю, а средство визуализации. Объекты HTML-поля привязаны к объектам БД, а сама вся эта поделка позволяет юзеру по-другому взглянуть на эти объекты, распределить их по определенным критериям и т.д. Поэтому необходимо перемещение, размер, установка текстовых пояснялок ну и отмена ошибочно или случайно сделанных действий. | |||
| 13
    
        Юрий Лазаренко 01.11.11✎ 10:51 | 
        (9) Можно, конечно, и редактор, но это сделает решение менее гибким и более тяжелым, так что не покатит такой вариант...     | |||
| 14
    
        polymorph 01.11.11✎ 10:54 | 
        не знаю как именно работает хтмл там но может прокатит пересоздание цсс файла и при откате подсовывать старый     | |||
| 15
    
        Юрий Лазаренко 01.11.11✎ 10:57 | 
        (14) CSS влияет на расцветку-компоновку всех объектов определенного типа, а мне надо дать юзеру возможность задать определенные параметры для каждого из объектов. То есть новый объект рисуется по правилам из CSS, а дальше юзер творит с ним все что хочет, и вот эти самые изменения надо в случае чего уметь откатить.     | |||
| 16
    
        polymorph 01.11.11✎ 11:04 | 
        (15) какие параметры? при изменении юзером объектов дублируй его изменения в цсс.     | |||
| 17
    
        Юрий Лазаренко 01.11.11✎ 11:12 | 
        (16) И для каждого объекта держать описание в CSS? Ну размер, положение и цвет так можно сохранять, а текст внутри?
  Хотя, на самом деле, идея хорошая, кое-где ее можно применить, спасибо! | |||
| 18
    
        polymorph 01.11.11✎ 11:24 | 
        (17) ну может есть параметры текст по умолчанию.     | |||
| 19
    
        Юрий Лазаренко 01.11.11✎ 11:35 | 
        (18) Каскад - это разметка, не помню я там текста...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |