4 <title>Goto a host you know...</title>
5 <meta name="application-name" content="netdata">
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
10 <meta name="viewport" content="width=device-width, initial-scale=1">
11 <meta name="apple-mobile-web-app-capable" content="yes">
12 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
14 <script>var netdataRegistry = true;</script>
15 <script type="text/javascript" src="dashboard.js?v46"></script>
22 hasProperty: function(property) {
23 // console.log('checking property ' + property + ' of type ' + typeof(this[property]));
24 return typeof this[property] !== 'undefined';
28 function netdataQueryParse() {
29 var query = document.location.search.split('?');
30 var variables = query[1].split('&');
31 var len = variables.length;
33 var p = variables[len].split('=');
34 if(urlOptions.hasProperty(p[0]) && typeof p[1] !== 'undefined')
35 urlOptions[p[0]] = p[1];
38 console.log(urlOptions);
41 function netdataURL(url) {
42 return url + '#' + urlOptions.family;
45 var gotoServerValidateRemaining = 0;
46 var gotoServerMiddleClick = false;
47 var gotoServerStop = false;
48 function gotoServerValidateUrl(id, guid, url) {
54 if(document.location.toString().startsWith('http://') && url.toString().startsWith('https://'))
55 // we penalize https only if the current url is http
56 // to allow the user walk through all its servers.
59 var finalURL = netdataURL(url);
61 setTimeout(function() {
62 document.getElementById('gotoServerList').innerHTML += '<tr><td style="padding-left: 20px;"><a href="' + finalURL + '" target="_blank">' + url + '</a></td><td style="padding-left: 30px;"><code id="' + guid + '-' + id + '-status">checking...</code></td></tr>';
64 NETDATA.registry.hello(url, function(data) {
66 // console.log('OK ' + id + ' URL: ' + url);
67 document.getElementById(guid + '-' + id + '-status').innerHTML = "OK";
70 gotoServerStop = true;
72 if(gotoServerMiddleClick) {
73 window.open(finalURL, '_blank');
74 gotoServerMiddleClick = false;
75 document.getElementById('gotoServerResponse').innerHTML = '<b>Opening new window to ' + NETDATA.registry.machines[guid].name + '<br/><a href="' + finalURL + '">' + url + '</a></b><br/>(check your pop-up blocker if it fails)';
78 document.location = finalURL;
82 document.getElementById(guid + '-' + id + '-status').innerHTML = "failed!";
83 gotoServerValidateRemaining--;
84 if(gotoServerValidateRemaining <= 0) {
85 gotoServerMiddleClick = false;
86 document.getElementById('gotoServerResponse').innerHTML = '<b>Sorry! I cannot find any operational URL for this server</b>';
90 }, (id * 50) + penaldy);
93 var netdataRegistryCallback = function(machines_array) {
95 var len = machines_array.length;
97 if(machines_array[len].name === urlOptions.host) {
98 console.log(machines_array[len]);
100 var ulen = machines_array[len].alternate_urls.length;
101 gotoServerValidateRemaining = ulen;
103 gotoServerValidateUrl(ulen, machines_array[len].guid, machines_array[len].alternate_urls[ulen]);
110 document.getElementById('bodylog').innerHTML = "Sorry... your account is not linked to a netdata server named: <b>" + urlOptions.host + '</b>';
115 if(typeof urlOptions.host !== 'string')
116 document.getElementById('bodylog').innerHTML = "Sorry... bad request.";
118 if(typeof urlOptions.family !== 'string')
119 urlOptions.family = '';
121 if(typeof urlOptions.chart !== 'string')
122 urlOptions.chart = '';
127 <div class="container" id="">
128 <div id="bodylog" style="padding-top: 40px; font-size: 18px;">
131 <div style="padding-top: 20px;">
132 <table id="gotoServerList">
135 <p style="padding-top: 10px;"><small>
136 This page can only find netdata URLs you have already visited and are active for your account on this registry.
138 <div id="gotoServerResponse" style="display: block; width: 100%; text-align: center; padding-top: 20px;"></div>