machine_guid: null, // the unique ID the netdata server that served dashboard.js
hostname: null, // the hostname of the netdata server that served dashboard.js
urls: null, // the user's other URLs
+ urls_array: null, // the user's other URLs in an array
parsePersonUrls: function(person_urls) {
+ // console.log(person_urls);
+
if(person_urls) {
NETDATA.registry.urls = {};
+ NETDATA.registry.urls_array = new Array();
- // sort based on the timestamp of the last access
- function pu_comparator_asc(a, b) {
- if (a[2] < b[2]) return -1;
- if (a[2] > b[2]) return 1;
- return 0;
- }
-
- var apu = person_urls.sort(pu_comparator_asc);
- var len = apu.length;
- while(len--) {
- if(typeof NETDATA.registry.urls[apu[len][0]] === 'undefined') {
- NETDATA.registry.urls[apu[len][0]] = {
- guid: apu[len][0],
- url: apu[len][1],
- last_t: apu[len][2],
- accesses: apu[len][3],
- name: apu[len][4],
+ var now = new Date().getTime();
+ var apu = person_urls;
+ var i = apu.length;
+ while(i--) {
+ if(typeof NETDATA.registry.urls[apu[i][0]] === 'undefined') {
+ // console.log('adding: ' + apu[i][4] + ', ' + ((now - apu[i][2]) / 1000).toString());
+
+ var obj = {
+ guid: apu[i][0],
+ url: apu[i][1],
+ last_t: apu[i][2],
+ accesses: apu[i][3],
+ name: apu[i][4],
alternate_urls: new Array()
};
+
+ NETDATA.registry.urls[apu[i][0]] = obj;
+ NETDATA.registry.urls_array.push(obj);
+ }
+ else {
+ // console.log('appending: ' + apu[i][4] + ', ' + ((now - apu[i][2]) / 1000).toString());
+
+ var pu = NETDATA.registry.urls[apu[i][0]];
+ if(pu.last_t < apu[i][2]) {
+ pu.url = apu[i][1];
+ pu.last_t = apu[i][2];
+ pu.name = apu[i][4];
+ }
+ pu.accesses += apu[i][3];
+ pu.alternate_urls.push(apu[i][1]);
}
- else
- NETDATA.registry.urls[apu[len][0]].alternate_urls.push(apu[len][1]);
}
}
if(typeof netdataRegistryCallback === 'function')
- netdataRegistryCallback(NETDATA.registry.urls);
+ netdataRegistryCallback(NETDATA.registry.urls_array);
},
init: function() {
return saveLocalStorage('netdataTheme', theme);
}
- var netdataRegistryCallback = function(urls) {
+ var netdataRegistryCallback = function(urls_array) {
var el = '';
var a1 = '';
var found = 0;
- if(urls) {
- $.each(urls, function(i, u) {
- if(u.guid !== NETDATA.registry.machine_guid) {
- found++;
- el += '<li id="registry_server_' + u.guid + '"><a href="' + u.url + '">' + u.name + '</a></li>';
- a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
- }
- });
+ if(urls_array) {
+ function name_comparator_desc(a, b) {
+ if (a.name > b.name) return -1;
+ if (a.name < b.name) return 1;
+ return 0;
+ }
+
+ var urls = urls_array.sort(name_comparator_desc);
+ var len = urls.length;
+ while(len--) {
+ var u = urls[len];
+
+ var status = "enabled";
+ found++;
+
+ if(u.guid === NETDATA.registry.machine_guid)
+ status = "disabled"
+
+ el += '<li id="registry_server_' + u.guid + '" class="' + status + '"><a href="' + u.url + '">' + u.name + '</a></li>';
+ a1 += '<li id="registry_action_' + u.guid + '"><a href="#" onclick="deleteRegistryModalHandler(\'' + u.guid + '\',\'' + u.name + '\',\'' + u.url + '\'); return false;"><i class="fa fa-trash-o" aria-hidden="true" style="color: #999;"></i></a></li>';
+ }
}
if(!found) {
a1 += '<li><a href="#" style="color: #999;" onclick="switchRegistryModalHandler(); return false;"><i class="fa fa-cog" aria-hidden="true" style="color: #999;"></i></a></li>'
document.getElementById('mynetdata_servers').innerHTML = el;
- document.getElementById('mynetdata_actions1').innerHTML = a1;
-
document.getElementById('mynetdata_servers2').innerHTML = el;
+ document.getElementById('mynetdata_actions1').innerHTML = a1;
};
</script>
<!-- load the dashboard manager - it will do the rest -->
- <script type="text/javascript" src="dashboard.js?v35"></script>
+ <script type="text/javascript" src="dashboard.js?v36"></script>
</head>
<body data-spy="scroll" data-target="#sidebar">
<div style="padding: 10px;"></div>
<small>Keep in mind, this server will be added back if and when you visit it again.</small>
<br/>
- <div id="deleteRegistryResponse" style="display: block; width: 100%; text-align: center; padding-top: 20px; color: #fff;"></div>
+ <div id="deleteRegistryResponse" style="display: block; width: 100%; text-align: center; padding-top: 20px;"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">keep it</button>
<li>to get a new ID, just clear your browser cookies.</li>
</ul>
</small></p>
- <div id="switchRegistryResponse" style="display: block; width: 100%; text-align: center; padding-top: 20px; color: #fff;"></div>
+ <div id="switchRegistryResponse" style="display: block; width: 100%; text-align: center; padding-top: 20px;"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success" data-dismiss="modal">cancel</button>
function switchRegistryModalHandler() {
document.getElementById('switchRegistryPersonGUID').value = NETDATA.registry.person_guid;
document.getElementById('switchRegistryURL').innerHTML = NETDATA.registry.server;
+ document.getElementById('switchRegistryResponse').innerHTML = '';
$('#switchRegistryModal').modal('show');
}
document.getElementById('deleteRegistryServerName').innerHTML = name;
document.getElementById('deleteRegistryServerName2').innerHTML = name;
document.getElementById('deleteRegistryServerURL').innerHTML = url;
+ document.getElementById('deleteRegistryResponse').innerHTML = '';
$('#deleteRegistryModal').modal('show');
}