Twitter Boostrap + modal + AJAX

Вот такой конгламерат пришлось мастерить. Суть:

С помощью Twitter Boostrap и функции modal() создал формуляр, загружаемый посредством AJAX (data-remote = true). Полученный формуляр должен проверяться с помощью библиотеки ClientSideValidations.

Проблема заключается в том, что Twitter Boostrap при переключении режима в видимый использует собственные events, (например ‘shown’), которые сбрасывают другие (в моем случае от client side validators) и потому скрипт ClientSideValidations в этом формуляре не работает.

Для того, чтобы подключить ClientSideValidations к загруженному через AJAX формуляру, согласно документации я активировал client side validators в удаленной загрузке формуляра

new.js.erb

$('#ajax_form_content').html("<%= escape_javascript( render(partial: 'form', locals: { stock: @stock }) )%>");
$('#ajax_form').modal();
$('.modal').on('shown', function(){
  $(this).find('input:visible:first').focus().end().find('form').enableClientSideValidations();
});

Тем не менее возникала ошибка ClientSideValidations ‘settings not found’

Проблема решилась просто: нужно было добавить

$("form[data-validate]").validate()

в этот же скрипт, или более элегантно

$("body").bind "ajax:success", ->
  $("form[data-validate]").validate()  if $("form[data-validate]").length

в соответственный coffee-script

Доступ к API-интерфейсу через HTTP POST

Как-то понадобилось протестировать API-interface «в ручную». C GET проблем нет —можно просто задать нужные параметры в адресной строке любимого броузера. А вот если нужно отправить данные через POST, то всё становится немного сложнее.

Для решения проблемы я воспользовался любимым curl
Для передачи данных формуляра через POST:

curl -X POST -d "token=RqpnhswuquS6N0PM86dDOQ&user=john&password=badpassword" http://host:port/controller/123.xml

Если это REST через PUT (например, RubyObnRails API), то дабавляем в параметры _method=PUT

curl -X POST -d "_method=PUT&token=RqpnhswuquS6N0PM86dDOQ&user=john&password=badpassword" http://host:port/controller/123.xml

Установка php 5.3/5.4 на Snow Leopard/Lion

На сайте http://php-osx.liip.ch/ нашел способ быстро и безболезненно установить актуальную версию PHP. Установка актуальной PHP 5.3 сводится к выполнению команды в окне терминала

 curl -s http://php-osx.liip.ch/install.sh | bash -s 5.3

А  PHP 5.4 соответственно этой командой.

 curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4

Правда лично у меня что-то пошло как всегда криво и после успешной установки пакетов скрипт не смог перезаписать пути. Мне пришлось подправить их ручками, а также включить путь к библиотеке

LoadModule php5_module /usr/local/php5/libphp5.so

убрав коммнетарий. После этого все пошло как надо.

Другой адекватный вариант с использованием MacPorts, который также у меня работает, описан здесь: https://gist.github.com/2721719

Проблема в RubyOnRails с джемом rmagick

При обновлении установленных модулей (gems) в библиотеке RubyOnRails столкнулся с выдачей сообщения об ошибке:

RMagick2.bundle: This installation of RMagick was configured with ImageMagick 6.6.3 but ImageMagick 6.7.0-7 is in use. (RuntimeError)

После некоторых телодвижений с попыткой совместить версии обнаружил простое решение: добавляем в файл boot.rb простую константу

RMAGICK_BYPASS_VERSION_TEST = true

и всё работает как в старые добрые времена

Проблема совместимости pdf_generator2 и RealURL в Typo3

При использовании обеих расширений обнаружилась проблема. При создании PDF-файлов ссылкой /another_page/print.pdf в полученном файле вместо содержимого странички появлялось содержимое первой страницы сайта. Анализ кода показал, что причиной оказалась функция в pdf_generator2, отвечающая за перехват альтернативных форматов вызова PDF-генератора, в том числе по расширению .pdf. Читать далее Проблема совместимости pdf_generator2 и RealURL в Typo3