My Merge Requests Gitlab

Show Link to opened Merge Requests, auto click swipe on MR with pics

  1. // ==UserScript==
  2. // https://github.com/hannsen/userscripts
  3. // @name My Merge Requests Gitlab
  4. // @namespace http://tampermonkey.net/
  5. // @version 2.5
  6. // @description Show Link to opened Merge Requests, auto click swipe on MR with pics
  7. // @author hannsen
  8. // @match https://git04.quodata.de/*
  9. // @grant GM_setValue
  10. // @grant GM_getValue
  11. // ==/UserScript==
  12. (function() {
  13. 'use strict';
  14.  
  15. // var swipe = 0;
  16. // function scrollFunction() {
  17. // if(!swipe)
  18. // swipe = $('li.swipe');
  19. //
  20. // for(var i = 0; i < swipe.length; i++){
  21. // if(isScrolledIntoView(swipe[i])){
  22. // swipe[i].click();
  23. // return;
  24. // }
  25. // }
  26. // }
  27. //
  28. // function isScrolledIntoView(elem) {
  29. // var docViewTop = $(window).scrollTop();
  30. // var docViewBottom = docViewTop + $(window).height();
  31. // var elemTop = $(elem).offset().top;
  32. // var elemBottom = elemTop + $(elem).height();
  33. // return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
  34. // }
  35. //
  36. //
  37. //
  38.  
  39. // Set ur own clone url prefix with GM_setValue("git_url_prefix", "username:token");
  40. var git_url_prefix = GM_getValue("git_url_prefix");
  41. var $http_clone = $('input[name="http_project_clone"]');
  42. if(git_url_prefix && $http_clone.val()){
  43. var clone_url = $http_clone.val();
  44. clone_url = clone_url.replace("https://", "https://" + git_url_prefix + "@");
  45. $http_clone.val(clone_url);
  46. }
  47.  
  48. function colorCollapsed(){
  49. $("div.diff-collapsed").css('background-color', 'red');
  50. }
  51.  
  52. if(window.location.href.indexOf("merge_requests") > 0){
  53. window.onscroll = colorCollapsed;
  54. }
  55.  
  56. var last_mr_count = GM_getValue("open_mr_count") || 0;
  57.  
  58. var $merge_button = $($(".user-counter:eq( 1 )").prop('outerHTML'));
  59. var new_href = $merge_button.children().attr('href').replace('assignee_username', 'scope=all&state=opened&author_username');
  60. $merge_button.children().attr('href', new_href);
  61. $merge_button.find('span').toggleClass('gitlab-own-merge-requests merge-requests-count issues-count')
  62. .removeClass('hidden');
  63. $merge_button.find('span').html(last_mr_count);
  64. $($merge_button.prop('outerHTML')).insertBefore(".user-counter:eq( 2 )");
  65.  
  66. $.ajax({
  67. url: new_href,
  68. })
  69. .done(function(data) {
  70. var open_mr_count = $(data).find('a#state-opened > span.badge').html();
  71. $('.gitlab-own-merge-requests').html(open_mr_count);
  72. GM_setValue("open_mr_count", open_mr_count);
  73. });
  74.  
  75. // Grey out issues with pending Merge Request
  76. if(document.location.href.indexOf('dashboard/issues?') !== -1 && document.location.href.indexOf('assignee_username=') !== -1){
  77. $('li.issue:has(.issuable-mr)').css('opacity', 0.4);
  78. }
  79.  
  80. })();