Merge branch 'master' of https://github.com/vbfox/ingress-intel-total-conversion
This commit is contained in:
commit
9b4eaaf4e8
13
code/chat.js
13
code/chat.js
@ -241,6 +241,14 @@ window.chat.renderFull = function(oldMsgsWereAdded) {
|
||||
// common
|
||||
//
|
||||
|
||||
window.chat.nicknameClicked = function(event, nickname) {
|
||||
var hookData = { event: event, nickname: nickname };
|
||||
|
||||
if (window.runHooks('nicknameClicked', hookData)) {
|
||||
window.chat.addNickname('@' + nickname);
|
||||
}
|
||||
}
|
||||
|
||||
window.chat.writeDataToHash = function(newData, storageHash, isPublicChannel) {
|
||||
$.each(newData.result, function(ind, json) {
|
||||
// avoid duplicates
|
||||
@ -283,9 +291,10 @@ window.chat.writeDataToHash = function(newData, storageHash, isPublicChannel) {
|
||||
case 'AT_PLAYER':
|
||||
var thisToPlayer = (markup[1].plain == ('@'+window.PLAYER.nickname));
|
||||
var spanClass = thisToPlayer ? "pl_nudge_me" : (markup[1].team + " pl_nudge_player");
|
||||
var atPlayerName = markup[1].plain.replace(/^@/, "");
|
||||
msg += $('<div/>').html($('<span/>')
|
||||
.attr('class', spanClass)
|
||||
.attr('onclick',"window.chat.addNickname('"+markup[1].plain+"')")
|
||||
.attr('onclick',"window.chat.nicknameClicked(event, '"+atPlayerName+"')")
|
||||
.text(markup[1].plain)).html();
|
||||
msgToPlayer = msgToPlayer || thisToPlayer;
|
||||
break;
|
||||
@ -401,7 +410,7 @@ window.chat.renderMsg = function(msg, nick, time, team, msgToPlayer, systemNarro
|
||||
var s = 'style="cursor:pointer; color:'+color+'"';
|
||||
var title = nick.length >= 8 ? 'title="'+nick+'" class="help"' : '';
|
||||
var i = ['<span class="invisep"><</span>', '<span class="invisep">></span>'];
|
||||
return '<tr><td>'+t+'</td><td>'+i[0]+'<mark class="nickname" onclick="window.chat.addNickname(\'@' + nick + '\')" ' + s + '>'+ nick+'</mark>'+i[1]+'</td><td>'+msg+'</td></tr>';
|
||||
return '<tr><td>'+t+'</td><td>'+i[0]+'<mark class="nickname" onclick="window.chat.nicknameClicked(event, \'' + nick + '\')" ' + s + '>'+ nick+'</mark>'+i[1]+'</td><td>'+msg+'</td></tr>';
|
||||
}
|
||||
|
||||
window.chat.addNickname= function(nick){
|
||||
|
@ -4,7 +4,14 @@
|
||||
window.setupGeosearch = function() {
|
||||
$('#geosearch').keypress(function(e) {
|
||||
if((e.keyCode ? e.keyCode : e.which) != 13) return;
|
||||
$.getJSON(NOMINATIM + encodeURIComponent($(this).val()), function(data) {
|
||||
|
||||
var search = $(this).val();
|
||||
|
||||
if (!runHooks('geoSearch', search)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$.getJSON(NOMINATIM + encodeURIComponent(search), function(data) {
|
||||
if(!data || !data[0]) return;
|
||||
var b = data[0].boundingbox;
|
||||
if(!b) return;
|
||||
|
@ -59,15 +59,21 @@
|
||||
window._hooks = {}
|
||||
window.VALID_HOOKS = ['portalAdded', 'portalDetailsUpdated',
|
||||
'publicChatDataAvailable', 'factionChatDataAvailable', 'portalDataLoaded',
|
||||
'beforePortalReRender', 'checkRenderLimit', 'requestFinished'];
|
||||
'beforePortalReRender', 'checkRenderLimit', 'requestFinished', 'nicknameClicked',
|
||||
'geoSearch'];
|
||||
|
||||
window.runHooks = function(event, data) {
|
||||
if(VALID_HOOKS.indexOf(event) === -1) throw('Unknown event type: ' + event);
|
||||
|
||||
if(!_hooks[event]) return;
|
||||
if(!_hooks[event]) return true;
|
||||
var interupted = false;
|
||||
$.each(_hooks[event], function(ind, callback) {
|
||||
callback(data);
|
||||
if (callback(data) === false) {
|
||||
interupted = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return !interupted;
|
||||
}
|
||||
|
||||
|
||||
|
@ -62,6 +62,8 @@ window.plugin.playerTracker.setup = function() {
|
||||
window.plugin.playerTracker.zoomListener();
|
||||
});
|
||||
window.plugin.playerTracker.zoomListener();
|
||||
|
||||
plugin.playerTracker.setupUserSearch();
|
||||
}
|
||||
|
||||
window.plugin.playerTracker.stored = {};
|
||||
@ -341,8 +343,57 @@ window.plugin.playerTracker.handleData = function(data) {
|
||||
plugin.playerTracker.drawData();
|
||||
}
|
||||
|
||||
window.plugin.playerTracker.findUserPosition = function(nick) {
|
||||
nick = nick.toLowerCase();
|
||||
var foundPlayerData = undefined;
|
||||
$.each(plugin.playerTracker.stored, function(pguid, playerData) {
|
||||
if (playerData.nick.toLowerCase() === nick) {
|
||||
foundPlayerData = playerData;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if (!foundPlayerData) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var evtsLength = foundPlayerData.events.length;
|
||||
var last = foundPlayerData.events[evtsLength-1];
|
||||
return plugin.playerTracker.getLatLngFromEvent(last);
|
||||
}
|
||||
|
||||
window.plugin.playerTracker.centerMapOnUser = function(nick) {
|
||||
var position = plugin.playerTracker.findUserPosition(nick);
|
||||
|
||||
if (position === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
map.setView(position, map.getZoom());
|
||||
}
|
||||
|
||||
window.plugin.playerTracker.onNicknameClicked = function(info) {
|
||||
if (info.event.ctrlKey) {
|
||||
plugin.playerTracker.centerMapOnUser(info.nickname);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
window.plugin.playerTracker.onGeoSearch = function(search) {
|
||||
if (/^@/.test(search)) {
|
||||
plugin.playerTracker.centerMapOnUser(search.replace(/^@/, ''));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
window.plugin.playerTracker.setupUserSearch = function() {
|
||||
addHook('nicknameClicked', window.plugin.playerTracker.onNicknameClicked);
|
||||
addHook('geoSearch', window.plugin.playerTracker.onGeoSearch);
|
||||
|
||||
var geoSearch = $('#geosearch');
|
||||
var beforeEllipsis = /(.*)…/.exec(geoSearch.attr('placeholder'))[1];
|
||||
geoSearch.attr('placeholder', beforeEllipsis + ' or @player…');
|
||||
}
|
||||
|
||||
|
||||
var setup = plugin.playerTracker.setup;
|
||||
|
Loading…
x
Reference in New Issue
Block a user