Gist Delete Button

Adds Delete buttons to the list page of gist.com

  1. // ==UserScript==
  2. // @name Gist Delete Button
  3. // @namespace http://ostrow.tech
  4. // @version 0.1
  5. // @description Adds Delete buttons to the list page of gist.com
  6. // @author Stephen Ostrow <stephen@ostrow.tech>
  7. // @match https://gist.github.com/isleshocky77
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. function addGlobalStyle(css) {
  15. var head, style;
  16. head = document.getElementsByTagName('head')[0];
  17. if (!head) { return; }
  18. style = document.createElement('style');
  19. style.type = 'text/css';
  20. style.innerHTML = css;
  21. head.appendChild(style);
  22. console.log(head, style);
  23. }
  24.  
  25. addGlobalStyle('.creator form { display: inline; }');
  26.  
  27. var gists = document.getElementsByClassName('gist-snippet');
  28. for (var i = 0; i< gists.length; i++) {
  29. (function(gist) {
  30. var viewLink = gist.getElementsByClassName('link-overlay')[0].getAttribute('href');
  31.  
  32. var xhr = new XMLHttpRequest();
  33. xhr.onreadystatechange = function() {
  34. if (xhr.readyState == XMLHttpRequest.DONE) {
  35. var parser = new DOMParser();
  36. var htmlDoc = parser.parseFromString(xhr.responseText,"text/html");
  37. var deleteForm = htmlDoc.getElementsByClassName('pagehead-actions')[0].getElementsByTagName('form')[0];
  38.  
  39. var creatorDiv = gist.getElementsByClassName('creator')[0];
  40. creatorDiv.appendChild(deleteForm);
  41. }
  42. };
  43. xhr.open('GET', viewLink, true);
  44. xhr.send(null);
  45. })(gists[i]);
  46. }
  47. })();