mirror of
https://github.com/smartyellow/status.git
synced 2025-06-28 04:35:11 +00:00
@ -3,7 +3,7 @@
|
||||
import TileRawValue from './tile-rawvalue.svelte';
|
||||
import Settings from './settings.svelte';
|
||||
import { flip } from 'svelte/animate';
|
||||
import { shuffle } from './lib';
|
||||
import { shuffle, ringBell } from './lib';
|
||||
|
||||
const [ send, receive ] = shuffle;
|
||||
const size = 3 * 4 - 1;
|
||||
@ -43,29 +43,38 @@
|
||||
ws.onmessage = async evt => {
|
||||
const data = JSON.parse(evt.data || '""');
|
||||
|
||||
if (data.cmd === 'data') {
|
||||
let servicesTemp = [];
|
||||
const { servicesUp, servicesDown, servicesUnknown, total } = data;
|
||||
const upOrUnknown = [ ...servicesUp, ...servicesUnknown ];
|
||||
servicesTemp = servicesDown.slice(0, size);
|
||||
switch (data.cmd) {
|
||||
case 'data':
|
||||
let servicesTemp = [];
|
||||
const { servicesUp, servicesDown, servicesUnknown, total } = data;
|
||||
const upOrUnknown = [ ...servicesUp, ...servicesUnknown ];
|
||||
servicesTemp = servicesDown.slice(0, size);
|
||||
|
||||
if (pageNum === -1 || total >= size) {
|
||||
pageNum++;
|
||||
if (pageNum === -1 || total >= size) {
|
||||
pageNum++;
|
||||
|
||||
if (pageNum > Math.ceil(upOrUnknown.length / size)) {
|
||||
pageNum = 0;
|
||||
if (pageNum > Math.ceil(upOrUnknown.length / size)) {
|
||||
pageNum = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const placesLeft = size - servicesTemp.length;
|
||||
const offset = placesLeft * pageNum;
|
||||
if (placesLeft > 0) {
|
||||
servicesTemp.push(
|
||||
...upOrUnknown.slice(offset, placesLeft + offset)
|
||||
);
|
||||
}
|
||||
const placesLeft = size - servicesTemp.length;
|
||||
const offset = placesLeft * pageNum;
|
||||
if (placesLeft > 0) {
|
||||
servicesTemp.push(
|
||||
...upOrUnknown.slice(offset, placesLeft + offset)
|
||||
);
|
||||
}
|
||||
|
||||
tiles = servicesTemp;
|
||||
tiles = servicesTemp;
|
||||
break;
|
||||
|
||||
case 'bell':
|
||||
ringBell();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,3 +34,10 @@ export const shuffle = crossfade({
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
//export const ringBell = bell.play;
|
||||
|
||||
export function ringBell() {
|
||||
const bell = new Audio('http://__SERVER__/statusdashboard/sound');
|
||||
bell.addEventListener('canplaythrough', () => bell.play());
|
||||
}
|
||||
|
BIN
gui/sounds/bell.wav
Normal file
BIN
gui/sounds/bell.wav
Normal file
Binary file not shown.
Reference in New Issue
Block a user