Ext.ux.HistoryTree - дерево с историей
- для всех переходов по дереву (раскрытие/скрытие ветки, выделение ветки) работают кнопки Назад/Вперед
- в урле браузера всегда прямая ссылка на текущее состояние дерева
Загрузить
Ext.ux.HistoryTree.zip
Демо
Схема работы
- при раскрытии/скрытии/выделении ветки новое состояние дерева отображается в URL и добавляется в историю браузера
- при нажатии кнопок Назад/Вперед дерево переходит в состояние, соответствующее текущему URL
Формат JSON для хранения состояния дерева
например: {"1":{"2":{},"3":{"6":{},sel:"7"}},"5":{}}
"1","5" - номера раскрытых узлов уровня 1
"2","3" - номера раскрытых узлов, дочерних для "1",
"6" - номера раскрытых узлов, дочерних для "3",
"7" - номер выделенного узла, дочернего для "3"
API
Ext.ux.HistoryTree
Config Options
- historyId - уникальный идентификатор компонента, используется для сохранения состояния (если не задан, то используется id компонента)
- hprovider - провайдер для сохранения состояния Ext.ux.HistoryTree (по умолчанию - Ext.ux.HistoryProvider)
Замечания
- root - должен быть Ext.tree.AsyncTreeNode
- rootVisible - должен быть false, если true корневой узел будет принудительно раскрыт при инициализации дерева
- selModel - должен быть Ext.tree.DefaultSelectionModel
Ext.ux.HistoryProvider
Config Options
- fieldId, iframeId - параметры для инкапсулированной Ext.History
Совместимость
- IE6+ (с определенными ограничениями), FF, Opera, Safari, Chrome
- ExtJS версии 2.3.0, 3.2.1 (это все версии, что я тестировала)
Лицензия
GPL
Автор
Ольга Петрова, gyoushe@gmail.com
Если у вас есть вопросы, замечания или предложения по работе HistoryTree плагина, напишите мне.
Если у вас есть предложения по участию в интересных проектах - буду очень рада.