Simplified component-creation, dropping IE8 compatibility.
This commit is contained in:
parent
6eface57ae
commit
6622db1b2c
5 changed files with 173 additions and 192 deletions
|
|
@ -1,53 +1,47 @@
|
|||
componentconstructors['chatballoon'] = function(dynmap, configuration) {
|
||||
return {
|
||||
dynmap: dynmap,
|
||||
options: configuration,
|
||||
chatpopups: {},
|
||||
initialize: function() {
|
||||
var me = this;
|
||||
$(dynmap).bind('chat', function(event, message) {
|
||||
if (message.source != 'player') {
|
||||
return;
|
||||
}
|
||||
var player = dynmap.players[message.name];
|
||||
var playerMarker = player && player.marker;
|
||||
if (!playerMarker) {
|
||||
return;
|
||||
}
|
||||
var popup = me.chatpopups[message.name];
|
||||
if (!popup) {
|
||||
popup = { lines: [ message.text ] };
|
||||
} else {
|
||||
popup.lines[popup.lines.length] = message.text;
|
||||
}
|
||||
|
||||
var MAX_LINES = 5;
|
||||
if (popup.lines.length > MAX_LINES) {
|
||||
popup.lines = popup.lines.slice(1);
|
||||
}
|
||||
var htmlMessage = '<div id="content"><b>' + message.name + "</b><br/><br/>";
|
||||
var line;
|
||||
for (line in popup.lines) {
|
||||
htmlMessage = htmlMessage + popup.lines[line] + "<br/>";
|
||||
}
|
||||
htmlMessage = htmlMessage + "</div>";
|
||||
if (!popup.infoWindow) {
|
||||
popup.infoWindow = new google.maps.InfoWindow({
|
||||
disableAutoPan: !(me.options.focuschatballoons || false),
|
||||
content: htmlMessage
|
||||
});
|
||||
} else {
|
||||
popup.infoWindow.setContent(htmlMessage);
|
||||
}
|
||||
popup.infoWindow.open(dynmap.map, playerMarker);
|
||||
me.chatpopups[message.name] = popup;
|
||||
if (popup.timeout) { window.clearTimeout(popup.timeout); }
|
||||
popup.timeout = window.setTimeout(function() {
|
||||
popup.infoWindow.close();
|
||||
popup.infoWindow = null;
|
||||
delete me.chatpopups[message.name];
|
||||
}, 8000);
|
||||
});
|
||||
var me = this;
|
||||
me.chatpopups = {};
|
||||
$(dynmap).bind('chat', function(event, message) {
|
||||
if (message.source != 'player') {
|
||||
return;
|
||||
}
|
||||
};
|
||||
var player = dynmap.players[message.name];
|
||||
var playerMarker = player && player.marker;
|
||||
if (!playerMarker) {
|
||||
return;
|
||||
}
|
||||
var popup = me.chatpopups[message.name];
|
||||
if (!popup) {
|
||||
popup = { lines: [ message.text ] };
|
||||
} else {
|
||||
popup.lines[popup.lines.length] = message.text;
|
||||
}
|
||||
|
||||
var MAX_LINES = 5;
|
||||
if (popup.lines.length > MAX_LINES) {
|
||||
popup.lines = popup.lines.slice(1);
|
||||
}
|
||||
var htmlMessage = '<div id="content"><b>' + message.name + "</b><br/><br/>";
|
||||
var line;
|
||||
for (line in popup.lines) {
|
||||
htmlMessage = htmlMessage + popup.lines[line] + "<br/>";
|
||||
}
|
||||
htmlMessage = htmlMessage + "</div>";
|
||||
if (!popup.infoWindow) {
|
||||
popup.infoWindow = new google.maps.InfoWindow({
|
||||
disableAutoPan: !(me.options.focuschatballoons || false),
|
||||
content: htmlMessage
|
||||
});
|
||||
} else {
|
||||
popup.infoWindow.setContent(htmlMessage);
|
||||
}
|
||||
popup.infoWindow.open(dynmap.map, playerMarker);
|
||||
me.chatpopups[message.name] = popup;
|
||||
if (popup.timeout) { window.clearTimeout(popup.timeout); }
|
||||
popup.timeout = window.setTimeout(function() {
|
||||
popup.infoWindow.close();
|
||||
popup.infoWindow = null;
|
||||
delete me.chatpopups[message.name];
|
||||
}, 8000);
|
||||
});
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue