diff --git a/code/map_data.js b/code/map_data.js
index dd5c2636..2c956a95 100644
--- a/code/map_data.js
+++ b/code/map_data.js
@@ -173,16 +173,17 @@ window.handlePortalsRender = function(portals) {
// Preserve selectedPortal because it will get lost on re-rendering
// the portal
var oldSelectedPortal = selectedPortal;
-
runHooks('portalDataLoaded', {portals : portals});
$.each(portals, function(ind, portal) {
//~ if(selectedPortal === portal[0]) portalUpdateAvailable = true;
- if(urlPortal && portal[0] === urlPortal) portalInUrlAvailable = true;
if(urlPortalLL && urlPortalLL[0] === portal[2].locationE6.latE6/1E6 && urlPortalLL[1] === portal[2].locationE6.lngE6/1E6) {
urlPortal = portal[0];
portalInUrlAvailable = true;
urlPortalLL = null;
}
+ if(window.portals[portal[0]]) {
+ highlightPortal(window.portals[portal[0]]);
+ }
renderPortal(portal);
});
@@ -285,7 +286,7 @@ window.renderPortal = function(ent) {
// do nothing if portal did not change
var layerGroup = portalsLayers[parseInt(portalLevel)];
var old = findEntityInLeaflet(layerGroup, window.portals, ent[0]);
- if(old) {
+ if(!changing_highlighters && old) {
var oo = old.options;
// Default checks to see if a portal needs to be re-rendered
@@ -333,6 +334,7 @@ window.renderPortal = function(ent) {
clickable: true,
level: portalLevel,
team: team,
+ ent: ent,
details: ent[2],
guid: ent[0]});
@@ -370,7 +372,7 @@ window.renderPortal = function(ent) {
});
window.renderResonators(ent, null);
-
+ highlightPortal(p);
window.runHooks('portalAdded', {portal: p});
p.addTo(layerGroup);
}
diff --git a/code/portal_highlighter.js b/code/portal_highlighter.js
new file mode 100644
index 00000000..e36274d9
--- /dev/null
+++ b/code/portal_highlighter.js
@@ -0,0 +1,64 @@
+// Portal Highlighter //////////////////////////////////////////////////////////
+// these functions handle portal highlighters
+
+
+window._highlighters = null;
+window._current_highlighter = localStorage.portal_highlighter;
+window.changing_highlighters = false;
+window._no_highlighter = 'No Highlights';
+
+window.addPortalHighlighter = function(name, callback) {
+ if(_highlighters === null) {
+ _highlighters = {};
+ }
+ _highlighters[name] = callback;
+ if(localStorage.portal_highlighter === undefined) {
+ _current_highlighter = name;
+ localStorage.portal_highlighter = name;
+ }
+ portalHighlighterControl();
+}
+
+window.portalHighlighterControl = function() {
+ if(_highlighters !== null) {
+ if($('#portal_highlight_select').length === 0) {
+ $("body").append("");
+ }
+ $("#portal_highlight_select").html('');
+ $("#portal_highlight_select").append($("