Add Open Next dropdown for WallView
parent
47e612cbc9
commit
729046807b
|
@ -235,6 +235,7 @@
|
||||||
"Hide List": "Hide List",
|
"Hide List": "Hide List",
|
||||||
"Motion GUI": "Motion GUI",
|
"Motion GUI": "Motion GUI",
|
||||||
"Motion": "Motion",
|
"Motion": "Motion",
|
||||||
|
"Open Next": "Open Next",
|
||||||
"Over by": "Over by",
|
"Over by": "Over by",
|
||||||
"Under by": "Under by",
|
"Under by": "Under by",
|
||||||
"Global Detector Settings": "Global Detector Settings",
|
"Global Detector Settings": "Global Detector Settings",
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
#wallview-controls{
|
#wallview-controls{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 100%;
|
|
||||||
top: 0;
|
top: 0;
|
||||||
|
right: 0;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: 0.2s;
|
transition: 0.2s;
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
var loadedMonitors = {}
|
var loadedMonitors = {}
|
||||||
var selectedMonitors = {}
|
var selectedMonitors = {}
|
||||||
var selectedMonitorsCount = 0
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
PNotify.prototype.options.styling = "fontawesome";
|
PNotify.prototype.options.styling = "fontawesome";
|
||||||
var wallViewMonitorList = $('#wallview-monitorList')
|
var wallViewMonitorList = $('#wallview-monitorList')
|
||||||
|
@ -76,7 +75,6 @@ $(document).ready(function(){
|
||||||
if(numberOfSelected > 3 && !featureIsActivated(true)){
|
if(numberOfSelected > 3 && !featureIsActivated(true)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
++selectedMonitorsCount
|
|
||||||
selectedMonitors[monitorId] = Object.assign({}, loadedMonitors[monitorId]);
|
selectedMonitors[monitorId] = Object.assign({}, loadedMonitors[monitorId]);
|
||||||
wallViewCanvas.append(`<div class="wallview-video p-0 m-0" live-stream="${monitorId}" style="left:${css.left || 0}px;top:${css.top || 0}px;width:${css.width ? css.width + 'px' : '50vw'};height:${css.height ? css.height + 'px' : '50vh'};"><div class="overlay"><div class="wallview-item-controls text-end"><a class="btn btn-sm btn-outline-danger wallview-item-close"><i class="fa fa-times"></i></a></div></div><iframe src="${getApiPrefix('embed')}/${monitorId}/fullscreen%7Cjquery%7Crelative?host=${embedHost}"></iframe></div>`)
|
wallViewCanvas.append(`<div class="wallview-video p-0 m-0" live-stream="${monitorId}" style="left:${css.left || 0}px;top:${css.top || 0}px;width:${css.width ? css.width + 'px' : '50vw'};height:${css.height ? css.height + 'px' : '50vh'};"><div class="overlay"><div class="wallview-item-controls text-end"><a class="btn btn-sm btn-outline-danger wallview-item-close"><i class="fa fa-times"></i></a></div></div><iframe src="${getApiPrefix('embed')}/${monitorId}/fullscreen%7Cjquery%7Crelative?host=${embedHost}"></iframe></div>`)
|
||||||
wallViewCanvas.find(`[live-stream="${monitorId}"]`)
|
wallViewCanvas.find(`[live-stream="${monitorId}"]`)
|
||||||
|
@ -98,7 +96,6 @@ $(document).ready(function(){
|
||||||
getMonitorListItem(monitorId).addClass('active')
|
getMonitorListItem(monitorId).addClass('active')
|
||||||
}
|
}
|
||||||
function deselectMonitor(monitorId){
|
function deselectMonitor(monitorId){
|
||||||
--selectedMonitorsCount
|
|
||||||
delete(selectedMonitors[monitorId])
|
delete(selectedMonitors[monitorId])
|
||||||
var monitorItem = wallViewCanvas.find(`[live-stream="${monitorId}"]`);
|
var monitorItem = wallViewCanvas.find(`[live-stream="${monitorId}"]`);
|
||||||
monitorItem.find('iframe').attr('src','about:blank')
|
monitorItem.find('iframe').attr('src','about:blank')
|
||||||
|
@ -171,7 +168,7 @@ $(document).ready(function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayInfoScreen(){
|
function displayInfoScreen(){
|
||||||
if(selectedMonitorsCount === 0){
|
if(getCurrentLayout().length === 0){
|
||||||
wallViewInfoScreen.css('display','flex')
|
wallViewInfoScreen.css('display','flex')
|
||||||
}else{
|
}else{
|
||||||
wallViewInfoScreen.hide()
|
wallViewInfoScreen.hide()
|
||||||
|
@ -239,13 +236,38 @@ $(document).ready(function(){
|
||||||
|
|
||||||
function openAllMonitors(){
|
function openAllMonitors(){
|
||||||
$.each(loadedMonitors,function(monitorId, monitor){
|
$.each(loadedMonitors,function(monitorId, monitor){
|
||||||
selectMonitor(monitorId)
|
var modeAccepted = monitor.mode !== 'stop' && monitor.mode !== 'idle'
|
||||||
|
if(modeAccepted)selectMonitor(monitorId)
|
||||||
})
|
})
|
||||||
autoPlaceCurrentMonitorItems()
|
autoPlaceCurrentMonitorItems()
|
||||||
displayInfoScreen()
|
displayInfoScreen()
|
||||||
saveLayout()
|
saveLayout()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function openNextMonitors(numberOf){
|
||||||
|
var allLayouts = getAllLayouts()
|
||||||
|
var ignoreMonitors = []
|
||||||
|
var availableMonitors = []
|
||||||
|
var numberToOpen = parseInt(numberOf) || 4;
|
||||||
|
$.each(allLayouts,function(windowName, { layout }){
|
||||||
|
$.each(layout,function(n, { monitorId }){
|
||||||
|
ignoreMonitors.push(monitorId)
|
||||||
|
})
|
||||||
|
});
|
||||||
|
$.each(loadedMonitors,function(monitorId, monitor){
|
||||||
|
if(ignoreMonitors.indexOf(monitor.mid) === -1){
|
||||||
|
var modeAccepted = monitor.mode !== 'stop' && monitor.mode !== 'idle'
|
||||||
|
if(modeAccepted)availableMonitors.push(monitorId)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
for (let i = 0; i < numberToOpen; i++) {
|
||||||
|
selectMonitor(availableMonitors[i])
|
||||||
|
}
|
||||||
|
autoPlaceCurrentMonitorItems()
|
||||||
|
displayInfoScreen()
|
||||||
|
saveLayout()
|
||||||
|
}
|
||||||
|
|
||||||
function closeAllMonitors(){
|
function closeAllMonitors(){
|
||||||
$.each(loadedMonitors,function(monitorId, monitor){
|
$.each(loadedMonitors,function(monitorId, monitor){
|
||||||
deselectMonitor(monitorId)
|
deselectMonitor(monitorId)
|
||||||
|
@ -301,6 +323,11 @@ $(document).ready(function(){
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
openAllMonitors()
|
openAllMonitors()
|
||||||
})
|
})
|
||||||
|
.on('click', '.wallview-open-next', function(e){
|
||||||
|
e.preventDefault()
|
||||||
|
var numberOf = $(this).attr('number-of')
|
||||||
|
openNextMonitors(numberOf)
|
||||||
|
})
|
||||||
.on('click', '.wallview-close-all', function(e){
|
.on('click', '.wallview-close-all', function(e){
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
closeAllMonitors()
|
closeAllMonitors()
|
||||||
|
|
|
@ -63,6 +63,16 @@
|
||||||
<a class="btn btn-danger wallview-close-all" href="#"><%- lang['Close All'] %></a>
|
<a class="btn btn-danger wallview-close-all" href="#"><%- lang['Close All'] %></a>
|
||||||
<a class="btn btn-success wallview-autoplace" href="#"><%- lang['Auto Placement'] %></a>
|
<a class="btn btn-success wallview-autoplace" href="#"><%- lang['Auto Placement'] %></a>
|
||||||
<a class="btn btn-primary open-wallview" href="#"><%- lang['New Wall Display'] %></a>
|
<a class="btn btn-primary open-wallview" href="#"><%- lang['New Wall Display'] %></a>
|
||||||
|
<div class="dropdown d-inline-block">
|
||||||
|
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="monitorListButton2" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<%- lang['Open Next'] %>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu text-center pb-0" aria-labelledby="monitorListButton2">
|
||||||
|
<% [2,4,6,9,12,16,32].forEach((numberOf) => { %>
|
||||||
|
<a class="btn btn-primary mb-2 wallview-open-next" number-of="<%- numberOf %>" href="#"><%- numberOf %></a>
|
||||||
|
<% }) %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
<div class="dropdown d-inline-block">
|
<div class="dropdown d-inline-block">
|
||||||
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="monitorListButton" data-bs-toggle="dropdown" aria-expanded="false">
|
<a class="btn btn-secondary dropdown-toggle" href="#" role="button" id="monitorListButton" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
<%- lang.Monitors %>
|
<%- lang.Monitors %>
|
||||||
|
|
Loading…
Reference in New Issue