diff --git a/ansible/playbooks/roles/video-control-server/files/all.css b/ansible/playbooks/roles/video-control-server/files/all.css new file mode 100644 index 00000000..08ad25df --- /dev/null +++ b/ansible/playbooks/roles/video-control-server/files/all.css @@ -0,0 +1,27 @@ +body { + margin: 0px; + background: #1f212a; + color: #fefefe; +} +img { + width: 100% +} +td { + /* width: 100px; */ + box-shadow: inset 0px 0px 3px #575a5f; + background: #1f212a; + color: #fefefe; + padding: 2px +} + +#list td > * { + display: block; +} + +h3 { + padding: 0px; + margin: 0px; + text-align: center; + font-weight: 400; + font-size: 1em; +} diff --git a/ansible/playbooks/roles/video-control-server/files/all.html b/ansible/playbooks/roles/video-control-server/files/all.html index c7abd96d..b4e0f403 100644 --- a/ansible/playbooks/roles/video-control-server/files/all.html +++ b/ansible/playbooks/roles/video-control-server/files/all.html @@ -2,396 +2,13 @@ Control.video.fosdem.org - overview of all streams - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
- janson
- - - -
- - - - - - -
- aw1120
- - - -
- - - - - - -
- aw1121
- - - -
- - - - - - -
- aw1125
- - - -
- - - - - - -
- aw1126
- - - -
- - - - - - -
- h1302
- - - -
- - - - - - -
- h1308
- - - -
- - - - - - -
- h1309
- - - -
- - - - - - -
- h2213
- - - -
- - - - - - -
- h2214
- - - -
- - - - - - -
- h2215
- - - -
- - - - - - -
- k1105
- - - -
- - - - - - -
- k3201
- - - -
- - - - - - -
- k3401
- - - -
- - - - - - -
- k4201
- - - -
- - - - - - -
- k4401
- - - -
- - - - - - -
- k4601
- - - -
- - - - - - -
- ua2114
- - - -
- - - - - - -
- ua2118
- - - -
- - - - - - -
- ua2220
- - - -
- - - - - - -
- ub5132
- - - -
- - - - - - -
- ub2252a
- - - -
- - - - - - -
- ud2120
- - - -
- - - - - - -
ud2119
- - - -
- - - - - - -
- ud2208
- - - -
- - - - - - -
- - ud2218a
- - - -
- - - - - - -
+ +
- - diff --git a/ansible/playbooks/roles/video-control-server/files/all.js b/ansible/playbooks/roles/video-control-server/files/all.js new file mode 100644 index 00000000..8d650f71 --- /dev/null +++ b/ansible/playbooks/roles/video-control-server/files/all.js @@ -0,0 +1,65 @@ +function create_add (tag, parent) { + var el = document.createElement(tag); + parent.appendChild(el); + return el; +} +function getSearchParams () { + return window.location.search.slice(1) + .split('&').map(exp => exp.split('=')) + .reduce((params, exp) => Object.assign({}, params, {[exp[0]]: exp[1]}), {}); +} +function fetch_images() { + return Array.from(document.getElementsByTagName('img')); +} +function refresh() { + fetch_images().forEach(function(img) { + var src = img.src + '?'; + src = src.split('?')[0]; + img.src = src + '?' + Date.now() + }) +} +function add_room (room_code, parent) { + var room = create_add("td", parent); + room.innerHTML = ` +

${room_code}

+ + + + + + + + + + `; +} +function init (cols) { + var params = getSearchParams(); + console.log(params); + var listTable = document.querySelector('#list tbody'); + listTable.innerHTML = ''; + cols = cols || 10; + fetch('./config.json') + .then(res => res.json()) + // .then(conf => Object.keys(conf)) + .then(buildings => { + var rooms = params.building && buildings[params.building] + ? Object.keys(buildings[params.building]) + : Object.keys(buildings) + .reduce((rooms, building) => [].concat(rooms, Object.keys(buildings[building])), []); + cols = rooms.length < cols ? rooms.length : cols; + rows = Math.ceil(rooms.length / cols); + new Array(rows).fill({}) + .map(() => create_add('tr', listTable)) + .map((row, y) => new Array(cols).fill({}) + .map((n1, x) => rooms[y * cols + x] && add_room( + rooms[y * cols + x], + row + )) + .forEach(col => { + col && col.setAttribute('width', (100 / cols).toFixed(2) + '%'); + }) + ) + setInterval(refresh, 10000); + }) +} diff --git a/ansible/playbooks/roles/video-control-server/files/config.json b/ansible/playbooks/roles/video-control-server/files/config.json new file mode 100644 index 00000000..af29faa6 --- /dev/null +++ b/ansible/playbooks/roles/video-control-server/files/config.json @@ -0,0 +1,45 @@ +{ + "aw": { + "aw1120" : "aw1120-voctop.video.fosdem.org", + "aw1121" : "aw1121-voctop.video.fosdem.org", + "aw1125" : "aw1125-voctop.video.fosdem.org", + "aw1126" : "aw1126-voctop.video.fosdem.org" + }, + "h": { + "h1301" : "h1301-voctop.video.fosdem.org", + "h1302" : "h1302-voctop.video.fosdem.org", + "h1308" : "h1308-voctop.video.fosdem.org", + "h1309" : "h1309-voctop.video.fosdem.org", + "h2213" : "h2213-voctop.video.fosdem.org", + "h2214" : "h2214-voctop.video.fosdem.org", + "h2215" : "h2215-voctop.video.fosdem.org" + }, + "janson": { + "janson" : "janson-voctop.video.fosdem.org" + }, + "k": { + "k1105" : "k1105-voctop.video.fosdem.org", + "k3201" : "k3201-voctop.video.fosdem.org", + "k3401" : "k3401-voctop.video.fosdem.org", + "k4201" : "k4201-voctop.video.fosdem.org", + "k4401" : "k4401-voctop.video.fosdem.org", + "k4601" : "k4601-voctop.video.fosdem.org" + }, + "ua": { + "ua2114" : "ua2114-voctop.video.fosdem.org", + "ua2220" : "ua2220-voctop.video.fosdem.org" + }, + "ub": { + "ub2147" : "ub2147-voctop.video.fosdem.org", + "ub2252a" : "ub2252a-voctop.video.fosdem.org", + "ub4136" : "ub4136-voctop.video.fosdem.org", + "ub5132" : "ub5132-voctop.video.fosdem.org", + "ub5230" : "ub5230-voctop.video.fosdem.org" + }, + "ud": { + "ud2119" : "ud2119-voctop.video.fosdem.org", + "ud2120" : "ud2120-voctop.video.fosdem.org", + "ud2208" : "ud2208-voctop.video.fosdem.org", + "ud2218a" : "ud2218a-voctop.video.fosdem.org" + } +}