Daily Archives: 22.06.2010
Greasemonkey-скрипт для Redmine
Redmine, конечно, настраиваемый и гибкий, но иногда очень не удобный. Захотелось сделать кнопочку «Взять в работу», которая появлялась бы на странице тикета. Делать плагин долго, просто подключить яваскрипт в шаблон — плохо, проблемы при обновлении Redmine. В итоге решил написать Greasemonkey-скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// ==UserScript== // @name Redmine Ticket // @namespace hc // @include [урл к Redmine]/issues/* // ==/UserScript== var tt = document.createElement('DIV'); tt.innerHTML = "<script>\ var linkInWork = '<a href=\"javascript:void(0);\" onclick=\"setInWork(); return false;\" class=\"icon\">In work</a>';\ $A( $$( '#content .contextual a.icon-del' ) ).each( function( Elem ) {\ Elem.insert( {'after': linkInWork} );\ });\ function setInWork()\ {\ var t = $('loggedas').innerHTML;\ var userId = /\\/users\\/([0-9]*)/.exec(t);\ if ( userId !== null ) {\ userId = userId[1];\ }\ var statusValue = 2;\ setSelectOptionSelected( 'issue_assigned_to_id', userId );\ setSelectOptionSelected( 'issue_status_id', statusValue );\ $('issue-form').submit();\ }\ function setSelectOptionSelected( SelId, Value )\ {\ var sel = $( SelId );\ $A( sel.options ).find( function( option, index ) {\ if( option.value == Value ) {\ sel.selectedIndex = index;\ }\ });\ }\ </script>"; document.getElementById('content').appendChild(tt); |
Добавляет ссылки «In work» в список ссылок вверху и внизу страницы.