diff --git a/plugins/debug-raw-portal-data.user.js b/plugins/debug-raw-portal-data.user.js index 38317807..afbdf8b3 100644 --- a/plugins/debug-raw-portal-data.user.js +++ b/plugins/debug-raw-portal-data.user.js @@ -22,82 +22,77 @@ window.plugin.rawdata = function() {}; window.plugin.rawdata.setupCallback = function() { - addHook('portalDetailsUpdated', window.plugin.rawdata.addLink); + addHook('portalDetailsUpdated', window.plugin.rawdata.addLink); } window.plugin.rawdata.addLink = function(d) { - var guidString = JSON.stringify(window.selectedPortal, null, 2); - guidString = encodeURIComponent('"guid": ' + guidString); - - var detailsString = JSON.stringify(d.portalDetails, null, 2); - detailsString = encodeURIComponent('"portalDetails": ' + detailsString); - - var linksString = ""; - $.each(window.links, function(it, link) { - var guid = link.options.guid; - link = link.options.data; - if (link.edge.destinationPortalGuid == window.selectedPortal || - link.edge.originPortalGuid == window.selectedPortal) { - linksString += encodeURIComponent('"' + guid + '": ' + JSON.stringify(link, null, 2) + '\n'); - if (it != guid) { // assertion - console.log(error); - } - } - }); - - var fieldsString = ""; - $.each(window.fields, function(it, field) { - var guid = field.options.guid; - field = field.options.data; - if (field.capturedRegion.vertexA.guid == window.selectedPortal || - field.capturedRegion.vertexB.guid == window.selectedPortal || - field.capturedRegion.vertexC.guid == window.selectedPortal) { - fieldsString += encodeURIComponent('"' + guid + '": ' + JSON.stringify(field, null, 2) + '\n'); - if (it != guid) { // assertion - console.log(error); - } - } - }); - - var linkParam = '\'' + d.portalDetails.portalV2.descriptiveText.TITLE + '\',' + - '\''+ guidString + '\',' + - '\'' + detailsString + '\',' + - '\'' + linksString + '\',' + - '\'' + fieldsString + '\''; - $('.linkdetails').append(''); + $('.linkdetails').append(''); } -window.plugin.rawdata.getRawData = function(title, guid, details, links, fields) { - dialog({ - title: 'Raw Data: '+ - title + - ' (' + - decodeURIComponent(guid) + - ')', - html: '
' +
-        	decodeURIComponent(guid) + '\n' +
-        	decodeURIComponent(details) + '\n\n' +
-        	decodeURIComponent(links) + '\n\n' +
-        	decodeURIComponent(fields) + '\n\n' +
-        '
', - id: 'dialog-rawdata', - dialogClass: 'ui-dialog-rawdata', - }); +window.plugin.rawdata.showPortalData = function(guid) { + if (!window.portals[guid]) { + console.warn ('Error: failed to find portal details for guid '+guid+' - failed to show debug data'); + return; + } + + + var d = window.portals[guid].options.details; + var ts = window.portals[guid].options.timestamp; + + var title = 'Raw portal data: ' + (d.portalV2.descriptiveText.TITLE || '') + ' ('+guid+')'; + + var body = + 'Portal GUID: '+guid+'
' + + 'Entity timestamp: '+ts+' - '+new Date(ts).toLocaleString()+'
' + + '
'+JSON.stringify(d,null,2)+'
'; + + body += '

Links referencing this portal

'; + var haslinks = false; + for (var lguid in window.links) { + var l = window.links[lguid]; + var ld = l.options.details; + if (ld.edge.originPortalGuid == guid || ld.edge.destinationPortalGuid == guid) { + body += 'Link GUID: '+l.options.guid+'
'+JSON.stringify(ld,null,2)+'
'; + haslinks = true; + } + } + if (!haslinks) body += '

No links to/from this portal

'; + + body += '

Fields referencing this portal

'; + var hasfields = false; + for (var fguid in window.fields) { + var f = window.fields[fguid]; + var fd = f.options.details; + if (fd.capturedRegion.vertexA.guid == guid || + fd.capturedRegion.vertexB.guid == guid || + fd.capturedRegion.vertexC.guid == guid) { + body += 'Field guid: '+f.options.guid+'
'+JSON.stringify(fd,null,2)+'
'; + hasfields = true; + } + } + if (!hasfields) body += '

No fields linked to this portal

'; + + dialog({ + title: title, + html: body, + id: 'dialog-rawdata', + dialogClass: 'ui-dialog-rawdata', + }); } var setup = function () { - window.plugin.rawdata.setupCallback(); - $('head').append(''); + window.plugin.rawdata.setupCallback(); + $('head').append(''); }