extend transip domain with easy-to-copy-paste url,token and DNS records
// ==UserScript==
// @name Export TransIP DNS
// @namespace http://tampermonkey.net/
// @version 0.3
// @description extend transip domain with easy-to-copy-paste url,token and DNS records
// @author Tomas van Rijsse
// @match https://www.transip.nl/cp/domein-hosting/*
// @match https://www.transip.eu/cp/domain-hosting/*
// @grant none
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==
/* jshint -W097 */
/* global jQuery */
'use strict';
jQuery(function(){
exportDNS();
var waitingForFragment = setInterval(
function(){
if(jQuery('.fragment').length > 0){
startObserver();
clearInterval(waitingForFragment);
}
}, 100
);
});
function startObserver(){
// Select the node that will be observed for mutations
var targetNode = jQuery('.fragment')[0];
// Options for the observer (which mutations to observe)
var config = { childList: true };
// Callback function to execute when mutations are observed
var callback = function(mutationsList, observer) {
observer.disconnect();
exportDNS();
observer.observe(targetNode, config);
};
// Create an observer instance linked to the callback function
var observer = new MutationObserver(callback);
// Start observing the target node for configured mutations
observer.observe(targetNode, config);
}
function exportDNS(){
var $rows = jQuery('.dns-form-panels').find('.form-panel');
if($rows.length == 0){
return false;
}
var $table = jQuery('<table></table>');
$table.append('<tr><th>Name</th><th>Type</th><th>Value</th></tr>');
$rows.each(function(){
var $ = jQuery;
if($(this).find('input.content').val() != ""){
var $row = $('<tr></tr>');
$row.append('<td>'+ $(this).find('input.name').val() + '</td>');
$row.append('<td>'+ $(this).find('select.type').val() + '</td>');
$row.append('<td>'+ $(this).find('input.content').val() + '</td>');
$table.append($row);
}
});
$table.find('th,td').css({
padding:'0 10px 0 0',
textOverflow: 'ellipsis',
whiteSpace: 'nowrap',
overflow: 'hidden',
maxWidth: '400px'
})
$table.find('th').css('text-align','left');
$table.css('padding','10px');
var $export = jQuery('<div class="overview-panel"></div>');
$export.append('<h3 class="ocp-overview-panel-header--border-bottom">DNS export: ' + jQuery('a.ocp-overview-panel-header__title-link').text().trim() + '</h3>');
if(jQuery('.auth-code-result:not(.hidden) input.js-authcode-input').length){
$export.append('<p>Auth code: '+ jQuery('input.js-authcode-input').data('authtoken') +'</p>');
}
$export.append($table);
jQuery('div.fragment-overview').append($export);
}