Обновление js-библиотек пакета mbgserver-jquery
Деб-пакет mbgserver-jquery содержит базовые javascript библиотеки, используемые в наших проектах. Многие из них поправлены мною для исправления багов или получения желаемой функциональности. В целях унификации и упрощения поддержки периодически проверяю состояние апстрима, и по возможности заменяю правленную версию на оригинальную. И вот наконец-то удалось собрать набор библиотек, вовсе не требующих правки! jgrowl и ajaxupload доведены до ума в апстриме, причем все мои патчи независимо реализованы разработчиками :-) Конечно, не мешало бы им патчи эти отправить своевременно, но я разработку на javascript не люблю и занимаюсь этим лишь по необходимости. Расширение autocomplete заменяем на аналог из JQuery UI, появившийся в последнем релизе. Замечу, что указанный аналог имеет глюк с позиционированием списка вариантов при изменении масштаба страницы (а именно, замечено при нажатии Ctrl + в браузере google chrome). Расширения thickbox и cluetip заменит стандартный dialog из JQuery UI, сделать для него обертку с поддержкой AJAX тривиально. А вот treeview просто выкидываем, поскольку такой интерфейс неудобен, использовался у нас вынужденно в одном месте, и уже удалось придумать, чем его заменить: Прототип интерфейса рассылки сообщений для ПО оффлайн-сервис
Новые версии библиотек помещены в поддиректорию js пакета, а соответствующие стили - в поддиректорию css. В настоящий момент также включено 8 стилей оформления для JQuery UI, выбранные мною по своему вкусу; картинки внедрены непосредственно в файлы css.
Ниже привожу список патчей, которые были использованы в предыдущей версии библиотек. Эта информация предназначена исключительно в роли подсказки при обновлении библиотек в существующих проектах.
Upd. Баги все же обнаружились - в JQuery UI аж в 4-х местах написана потрясающая конструкция вида "+ ++" вместо "+ (++ )". Обновил пакет, тестируем дальше.
Upd. В ajaxupload не поддерживаются Firefox 1.x/2.x. Мой патч эту проблему решает, но таковых пользователей единицы, рекомендуем им обновить браузер, нежели поддерживать совместимость с указанными ископаемыми браузерами.
Новые версии библиотек помещены в поддиректорию js пакета, а соответствующие стили - в поддиректорию css. В настоящий момент также включено 8 стилей оформления для JQuery UI, выбранные мною по своему вкусу; картинки внедрены непосредственно в файлы css.
Ниже привожу список патчей, которые были использованы в предыдущей версии библиотек. Эта информация предназначена исключительно в роли подсказки при обновлении библиотек в существующих проектах.
jquery.autocomplete.js - добавлен обработчик для onItemSelect jquery.jgrowl.js - подправлено для отображения _и_ первого сообщения в виде плавающего меню if($('div.jGrowl-notification:parent',this.element).size()>2 заменено на if($('div.jGrowl-notification:parent',this.element).size()>1 thickbox.js - добавлен аргумент onLoadFunction к функции tb_show (необходим для отображения datapicker во всплывающем окне) заменил <a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div> на <a href='#' id='TB_closeWindowButton'>[×]</a></div> указал путь к картинке var tb_pathToImage="/img/jquery/thickbox/loadingAnimation.gif"; jquery.autocomplete.min.js - переименован служебный параметр limit в ajax_limit_autocomplete: limit:options.max на ajax_limit_autocomplete:options.max jquery.autocomplete.min.js - добавлен второй параметр onItemSelectParam в функцию onItemSelect jquery.autocomplete.min.js - для указания кол-ва элементов в выпадающем списке поправить константу в коде проверки значения параметра options.scroll options.scroll?10 заменено на options.scroll?20 #jquery.form.min.js - заменено el.disabled на el.disabled1 - чтобы значения # задизэбленных элементов тоже передавались на сервер #jquery.form.min.js - для невыбранных чекбоксов теперь возвращает пустые значения # (t == 'checkbox' || t == 'radio') && !el.checked => (t == 'radio') && !el.checked # # // fixed - hidden inputs must be cleaned too! # if (t == 'text' || t == 'password' || tag == 'textarea' || t == 'hidden') jquery.treeview - добавлена поддержка json-атрибута onclick 3.ajaxupload.3.1.js - поправлена обработка JSON-ответа сервера. Проверено в Firefox и Opera.
Upd. Баги все же обнаружились - в JQuery UI аж в 4-х местах написана потрясающая конструкция вида "+ ++" вместо "+ (++ )". Обновил пакет, тестируем дальше.
Upd. В ajaxupload не поддерживаются Firefox 1.x/2.x. Мой патч эту проблему решает, но таковых пользователей единицы, рекомендуем им обновить браузер, нежели поддерживать совместимость с указанными ископаемыми браузерами.
Comments