TestLink
Время от времени занимаюсь модификацией используемого внутри компании инструмента «TestLink». Сложная задача — приделать к нему ЧПУ (TestLink целиком на фреймах, у него не то что ЧПУ,
С задачей справился чуть менее, чем полностью — осталась пара мелочей, а в пятницу по половины одиннадцатого вечера боролся с деревом
Осложняется всё тем, что дерево снаружи недоступно (изолируется внутри функции), а менять
function fireEvent(element, eventname){
if (document.createEventObject){
return element.fireEvent('on' + eventname, document.createEventObject())
} else{
var event = document.createEvent("HTMLEvents")
event.initEvent(eventname, true, true)
return !element.dispatchEvent(event)
}
}В итоге получилась дикая вещь — когда человек вводит этот самый понятный ему URL, браузер спрашивает у сервера путь по дереву, получает его, по таймеру долбит дерево в плюсики (дерево грузит каждый узер через AJAX), чтобы развернуть каждый узел по пути следования к test case, а когда добирается до цели, таймер тушится.
Такие развесистые клюквы там приходится программировать на каждом шагу. Зато все URL абсолютно понятны пользователю и роутинг правится очень просто.
Добавлено 8 декабря 2009 0:41: потом я переписал всё на чистом ExtJS, воспользовавшись getCmp, expandPath и внутренней реализацией fireevent, но код всё равно тут оставлю — пригодится.
Комментарии 3
Там в дереве не было ссылок. Кликать надо на картинки.
Ну уж нет, jQuery — отличный framework, при этом я очень люблю JS.