diff --git a/dreditor.user.js b/dreditor.user.js index 85af06d..acd26e2 100644 --- a/dreditor.user.js +++ b/dreditor.user.js @@ -1389,6 +1389,88 @@ Drupal.behaviors.dreditorCommitMessage = function (context) { $(this).prepend($container); } $link.prependTo($container); + + var $link = $('Create triage message'); + $link.prependTo($container); + $link.click( function() { + var $input = $('
    '); + var src = 'http://drupal.org/node/467548'; + src = 'http://drupal.org/node/1118110' + $.ajax({ + url : src, + success: function(data) { + var $placeholder = $('Powered by dreditor (triage patch) and Triage transitions'); + var $list = $(''); + var insert = function(text) { + var old = $('#edit-comment').val(); + if (old.length > 0) { + old += "\n\n"; + } + var banner = 'Powered by dreditor (triage patch) and Triage transitions'; + if (old.indexOf(banner)== -1) { + text += "\n\n" + banner; + } + $('#edit-comment').val( old + text); + return false; + }; + // Find the first dl on the page + $(data).find('dl:first').children('dt').each(function() { + // Each dt needs to be followed by a dd + var $dt = $(this); + var $dd = $(this).next(); + var $li = $('
  1. '); + var $link = $('' + $dt.html() + ''); + $link.appendTo($li); + + // If there is a
    use it + if ($dd.get().length > 0 && $dd.get()[0].tagName == 'DD') { + + // The dd can contain a sub dl + if ( $dd.find('dl:first').size() > 0) { + var $dd = $(this).next(); + var $sub_list = $(''); + + $dd.find('dl:first').children('dt').each(function() { + var $dd = $(this).next(); + var $li = $('
  2. '); + var $link = $('' + $(this).html() + ''); + $link.appendTo($li); + $li.click( function() { + insert($dd.html()); + return false; + }); + $li.appendTo($sub_list); + }); + $sub_list.appendTo($li); + } + else { + $li = $('
  3. '); + + var $link = $('' + $(this).html() + ''); + $link.appendTo($li); + $li.click( function() { + insert($dd.html()); + return false; + }); + } + } + $li.appendTo($list); + }); + $list.appendTo($placeholder); + $placeholder.appendTo($input); + }, + dataType: 'html' + }); + + $link.before($input); + + $link.one('click', function () { + $input.remove(); + return false; + }); + + return false; + }); }); };