Export TransIP DNS

extend transip domain with easy-to-copy-paste url,token and DNS records

当前为 2019-09-06 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Export TransIP DNS
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.2
  5. // @description extend transip domain with easy-to-copy-paste url,token and DNS records
  6. // @author Tomas van Rijsse
  7. // @match https://www.transip.nl/cp/domein-hosting/*
  8. // @grant none
  9. // @require http://code.jquery.com/jquery-latest.js
  10. // ==/UserScript==
  11. /* jshint -W097 */
  12. /* global jQuery */
  13. 'use strict';
  14.  
  15. jQuery(function(){
  16.  
  17. exportDNS();
  18.  
  19. var waitingForFragment = setInterval(
  20. function(){
  21. if(jQuery('.fragment').length > 0){
  22. startObserver();
  23. clearInterval(waitingForFragment);
  24. }
  25. }, 100
  26. );
  27. });
  28.  
  29. function startObserver(){
  30.  
  31. // Select the node that will be observed for mutations
  32. var targetNode = jQuery('.fragment')[0];
  33.  
  34. // Options for the observer (which mutations to observe)
  35. var config = { childList: true };
  36.  
  37. // Callback function to execute when mutations are observed
  38. var callback = function(mutationsList, observer) {
  39. observer.disconnect();
  40. exportDNS();
  41. observer.observe(targetNode, config);
  42. };
  43.  
  44. // Create an observer instance linked to the callback function
  45. var observer = new MutationObserver(callback);
  46.  
  47. // Start observing the target node for configured mutations
  48. observer.observe(targetNode, config);
  49.  
  50. }
  51.  
  52. function exportDNS(){
  53. var $rows = jQuery('.dns-form-panels').find('.form-panel');
  54.  
  55. if($rows.length == 0){
  56. return false;
  57. }
  58.  
  59. var $table = jQuery('<table></table>');
  60.  
  61. $table.append('<tr><th>Name</th><th>Type</th><th>Value</th></tr>');
  62.  
  63. $rows.each(function(){
  64. var $ = jQuery;
  65.  
  66. if($(this).find('input.content').val() != ""){
  67.  
  68. var $row = $('<tr></tr>');
  69. $row.append('<td>'+ $(this).find('input.name').val() + '</td>');
  70. $row.append('<td>'+ $(this).find('select.type').val() + '</td>');
  71. $row.append('<td>'+ $(this).find('input.content').val() + '</td>');
  72. $table.append($row);
  73.  
  74. }
  75. });
  76.  
  77. $table.find('th,td').css({
  78. padding:'0 10px 0 0',
  79. textOverflow: 'ellipsis',
  80. whiteSpace: 'nowrap',
  81. overflow: 'hidden',
  82. maxWidth: '400px'
  83. })
  84. $table.find('th').css('text-align','left');
  85. $table.css('padding','10px');
  86.  
  87. var $export = jQuery('<div class="overview-panel"></div>');
  88.  
  89. $export.append('<h3 class="ocp-overview-panel-header--border-bottom">DNS export: ' + jQuery('a.ocp-overview-panel-header__title-link').text().trim() + '</h3>');
  90. if(jQuery('.auth-code-result:not(.hidden) input.js-authcode-input').length){
  91. $export.append('<p>Autorisatiecode: '+ jQuery('input.js-authcode-input').data('authtoken') +'</p>');
  92. }
  93. $export.append($table);
  94.  
  95. jQuery('div.fragment-overview').append($export);
  96. }