improved client-side message display
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>de.srsoftware</groupId>
|
<groupId>de.srsoftware</groupId>
|
||||||
<artifactId>web4rail</artifactId>
|
<artifactId>web4rail</artifactId>
|
||||||
<version>1.4.16</version>
|
<version>1.4.17</version>
|
||||||
<name>Web4Rail</name>
|
<name>Web4Rail</name>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<description>Java Model Railway Control</description>
|
<description>Java Model Railway Control</description>
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ var messageTimer = null;
|
|||||||
var messageOpacity = 0;
|
var messageOpacity = 0;
|
||||||
var pendingAssignment = null;
|
var pendingAssignment = null;
|
||||||
var clickHistory = [];
|
var clickHistory = [];
|
||||||
|
var messages = [];
|
||||||
|
|
||||||
function addClass(data){
|
function addClass(data){
|
||||||
parts = data.split(" ");
|
parts = data.split(" ");
|
||||||
@@ -22,10 +23,10 @@ function addClass(data){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function addMessage(txt){
|
function addMessage(txt){
|
||||||
$('#messages').html(txt);
|
messages.unshift(txt);
|
||||||
if (messageTimer != null) window.clearInterval(messageTimer);
|
if (messages.length>5) messages.pop();
|
||||||
messageOpacity = 3000;
|
updateMessages();
|
||||||
messageTimer = setInterval(fadeMessage,100);
|
setTimeout(fadeMessage,30000);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addTile(x,y){
|
function addTile(x,y){
|
||||||
@@ -158,11 +159,21 @@ function enableMove(ev){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function fadeMessage(){
|
function fadeMessage(){
|
||||||
messageOpacity -= 10;
|
if (messages.length > 1) {
|
||||||
if (messageOpacity < 1) window.clearInterval(messageTimer);
|
messages.pop();
|
||||||
var o = messageOpacity;
|
updateMessages();
|
||||||
if (o>OPAC) o=OPAC;
|
} else {
|
||||||
$('#messages').css('opacity',o/OPAC);
|
messageOpacity -= 5;
|
||||||
|
if (messageOpacity < 1) {
|
||||||
|
messages.pop();
|
||||||
|
updateMessages();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
messageTimer = setTimeout(fadeMessage,100);
|
||||||
|
var o = messageOpacity;
|
||||||
|
if (o>OPAC) o=OPAC;
|
||||||
|
$('#messages').css('opacity',o/OPAC);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCookie(key) {
|
function getCookie(key) {
|
||||||
@@ -279,7 +290,7 @@ function runAction(ev){
|
|||||||
|
|
||||||
function stream(ev){
|
function stream(ev){
|
||||||
var data = ev.data;
|
var data = ev.data;
|
||||||
console.log("received: ",data);
|
//console.log("received: ",data);
|
||||||
if (data.startsWith('<svg')) return place(data);
|
if (data.startsWith('<svg')) return place(data);
|
||||||
if (data.startsWith("heartbeat")) return heartbeat(data);
|
if (data.startsWith("heartbeat")) return heartbeat(data);
|
||||||
if (data.startsWith("place ")) return place(data.substring(6));
|
if (data.startsWith("place ")) return place(data.substring(6));
|
||||||
@@ -323,6 +334,13 @@ function toggleFullscreen(){
|
|||||||
} else document.exitFullscreen();
|
} else document.exitFullscreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateMessages() {
|
||||||
|
if (messages.length>0) {
|
||||||
|
messageOpacity = 100;
|
||||||
|
$('#messages').html(messages.join('<br/>')).css('opacity',messageOpacity/OPAC);
|
||||||
|
} else $('#messages').html('');
|
||||||
|
}
|
||||||
|
|
||||||
window.onload = function () {
|
window.onload = function () {
|
||||||
var isDragging = false;
|
var isDragging = false;
|
||||||
$('.menu > div').click(closeMenu);
|
$('.menu > div').click(closeMenu);
|
||||||
|
|||||||
Reference in New Issue
Block a user