diff --git a/plugins/qlab/main.js b/plugins/qlab/main.js index 03bddc5..e369756 100644 --- a/plugins/qlab/main.js +++ b/plugins/qlab/main.js @@ -68,9 +68,13 @@ exports.data = function data(_device, oscData) { }; device.send(`/workspace/${wksp.uniqueID}/connect`, device.fields.passcode); }); + + if (Object.keys(device.data.workspaces).length === 0) { + device.data.permission = 'no workspaces'; + device.draw(); + } } else if (match(oscAddressParts, ['reply', 'workspace', '*', 'connect'])) { device.send(`/workspace/${oscAddressParts[2]}/updates`, [{ type: 'i', value: 1 }]); - device.send(`/workspace/${oscAddressParts[2]}/cueLists`); } else if (match(oscAddressParts, ['reply', 'workspace', '*', 'cueLists'])) { this.deviceInfoUpdate(device, 'status', 'ok'); @@ -81,9 +85,10 @@ exports.data = function data(_device, oscData) { workspace.cues = {}; if (json.status === 'denied') { - device.data.permission = false; + device.data.permission = 'denied'; + device.draw(); } else if (json.data) { - device.data.permission = true; + device.data.permission = 'ok'; json.data.forEach((cueList) => { workspace.cueLists[cueList.uniqueID] = cueList; diff --git a/plugins/qlab/template.ejs b/plugins/qlab/template.ejs index 571482d..09084b1 100644 --- a/plugins/qlab/template.ejs +++ b/plugins/qlab/template.ejs @@ -3,7 +3,7 @@

QLab <%= data.version || "" %>

-<% +<% const fs = require('fs'); let _ = require('lodash'); const path = require('path'); @@ -12,39 +12,27 @@ let tileTemplate = _.template(fs.readFileSync(path.join(__dirname, `/plugins/qlab/tile.ejs`))); let cartTemplate = _.template(fs.readFileSync(path.join(__dirname, `/plugins/qlab/cart.ejs`))); let listTemplate = _.template(fs.readFileSync(path.join(__dirname, `/plugins/qlab/cuelist.ejs`))); - %> + + <% if(data.permission=="ok"){ + for(const workspace_id in data.workspaces){ + const workspace = data.workspaces[workspace_id]; + for(const cueList_id in workspace.cueLists){ + const ql = workspace.cueLists[cueList_id]; %> + + <% if(ql.type=="Cue List"){ %> + <%= listTemplate({cueList: ql, allCues: workspace.cues, rowTemplate: cueTemplate, workspace: workspace}) %> + <% }else if(ql.type=="Cart"){ %> + <%= cartTemplate({cueList: ql, allCues: workspace.cues, tileTemplate: tileTemplate}) %> + <% } %> +<% }}}else if(data.permission=="no workspaces"){ %> +

QLab is launched but there are no open Workspaces

-<% - if(data.permission){ +<% }else if(data.permission=="denied"){ %> - for(const workspace_id in data.workspaces){ - const workspace = data.workspaces[workspace_id]; - - for(const cueList_id in workspace.cueLists){ - const ql = workspace.cueLists[cueList_id]; -%> - - - - <% if(ql.type=="Cue List"){ %> - - <%= listTemplate({cueList: ql, allCues: workspace.cues, rowTemplate: cueTemplate, workspace: workspace}) %> - - <% }else if(ql.type=="Cart"){ %> - - <%= cartTemplate({cueList: ql, allCues: workspace.cues, tileTemplate: tileTemplate}) %> - - - <% } %> - - - -<% }}}else{ %>

Incorrect Passcode or OSC Access Permissions

+ + <% } %> - - -