Skip to content

Commit

Permalink
Make sure tabs and links work again
Browse files Browse the repository at this point in the history
  • Loading branch information
Dave Conway-Jones committed Jan 27, 2017
1 parent baa8cc5 commit 7a8576d
Show file tree
Hide file tree
Showing 8 changed files with 43 additions and 25 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -1 +1,2 @@
/node_modules
/dist
1 change: 1 addition & 0 deletions .jscsrc
Expand Up @@ -6,6 +6,7 @@
"disallowMixedSpacesAndTabs": true,
"disallowMultipleSpaces": {"allowEOLComments": true},
"disallowKeywordsOnNewLine": [],
//"requireKeywordsOnNewLine": ["else", "catch"],
"requireSpaceBeforeBlockStatements": 1,
//"requireSpaceBeforeObjectValues": false,
//"requireSemicolons": true,
Expand Down
24 changes: 15 additions & 9 deletions nodes/ui_audio.html
Expand Up @@ -11,7 +11,8 @@
defaults: {
name: {value:""},
group: {type: 'ui_group', required: true},
voice: {value:""}
voice: {value:""},
always: {value:""}
},
inputs:1,
outputs:0,
Expand Down Expand Up @@ -49,14 +50,19 @@
</script>

<script type="text/x-red" data-template-name="ui_audio">
<div class="form-row">
<label for="node-input-group"><i class="fa fa-table"></i> Group</label>
<input type="text" id="node-input-group">
</div>
<div class="form-row" id="voice-input-row">
<label for="node-input-voice"><i class="fa fa-language"></i> TTS Voice</label>
<select id="node-input-voice" style="width:70%"></select>
</div>
<div class="form-row">
<label for="node-input-group"><i class="fa fa-table"></i> Group</label>
<input type="text" id="node-input-group">
</div>
<div class="form-row" id="voice-input-row">
<label for="node-input-voice"><i class="fa fa-language"></i> TTS Voice</label>
<select id="node-input-voice" style="width:70%"></select>
</div>
<div class="form-row">
<label for="node-input-always"></label>
<input type="checkbox" checked id="node-input-always" style="display:inline-block; width:auto; vertical-align:top;">
Play audio when window not in focus.
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
Expand Down
5 changes: 3 additions & 2 deletions nodes/ui_audio.js
Expand Up @@ -5,16 +5,17 @@ module.exports = function(RED) {
RED.nodes.createNode(this,config);
this.voice = config.voice;
this.group = config.group;
this.always = config.always || false;
if (this.group && RED.nodes.getNode(this.group).hasOwnProperty("config")) {
this.tabname = RED.nodes.getNode(RED.nodes.getNode(this.group).config.tab).name;
}
var node = this;
this.on('input', function(msg) {
if (Buffer.isBuffer(msg.payload)) {
ui.emit('ui-audio', { audio:msg.payload, tabname:node.tabname });
ui.emit('ui-audio', { audio:msg.payload, tabname:node.tabname, always:node.always });
}
else if (typeof msg.payload === "string") {
ui.emit('ui-audio', { tts:msg.payload, voice:(node.voice || msg.voice || 0), tabname:node.tabname });
ui.emit('ui-audio', { tts:msg.payload, voice:(node.voice || msg.voice || 0), tabname:node.tabname, always:node.always });
}
});
}
Expand Down
7 changes: 6 additions & 1 deletion nodes/ui_template.html
Expand Up @@ -133,7 +133,12 @@
Will display if the number received as <code>msg.payload</code> is even or odd. It will also
change the color of the text to green if the number is even or red if odd.<br><br>
<b>Sending a message:</b><br>
<pre>&lt;md-button ng-click=&quot;send({payload: 'Hello World'})&quot;&gt;
<pre>&lt;script&gt;
var value = "hello world";
// or overwrite value in your callback function ...
this.scope.action = function() { return value; }
&lt;/script&gt;
&lt;md-button ng-click=&quot;send({payload:action()})&quot;&gt;
Click me to send a hello world
&lt;/md-button&gt;</pre>
Will display a button that when clicked will send a message with the payload <code>'Hello world'</code>.
Expand Down
24 changes: 14 additions & 10 deletions src/main.js
Expand Up @@ -86,17 +86,19 @@ app.controller('MainController', ['$mdSidenav', '$window', 'UiEvents', '$locatio
main.tabs = ui.tabs;
main.links = ui.links;
var name;
if (ui.site) { name = ui.site.name };
if (ui.title) { name = ui.title };
if (ui.site) { name = ui.site.name }
if (ui.title) { name = ui.title }
$document[0].title = name || "Node-RED Dashboard";
$document[0].theme = ui.theme;

var prevTabIndex = parseInt($location.path().substr(1));
var finishLoading = function() {
if (main.selectedTab && typeof(main.selectedTab.theme) === 'object') {
applyStyle(main.selectedTab.theme);
applyStyle(main.selectedTab.theme);
$mdToast.hide();
done();
} else if (typeof(ui.theme) === 'object' && ui.theme.themeState['base-color'].value) {
applyStyle(ui.theme);
applyStyle(ui.theme);
}
}
if (!isNaN(prevTabIndex) && prevTabIndex < main.tabs.length) {
Expand All @@ -109,9 +111,9 @@ app.controller('MainController', ['$mdSidenav', '$window', 'UiEvents', '$locatio
finishLoading();
}, 50 );
}
main.len = main.tabs.length + main.links.length;
}, function () {
main.loaded = true;
main.len = main.tabs.length + main.links.length;
});

function findControl(id, items) {
Expand Down Expand Up @@ -222,12 +224,14 @@ app.controller('MainController', ['$mdSidenav', '$window', 'UiEvents', '$locatio
});

events.on('ui-audio', function(msg) {
var totab;
for (var i in main.tabs) {
if (msg.tabname === main.tabs[i].header) { totab = i; }
if (!msg.always) {
var totab;
for (var i in main.tabs) {
if (msg.tabname === main.tabs[i].header) { totab = i; }
}
// only play sound/tts to tab if in focus
if (totab != parseInt($location.path().substr(1))) { return; }
}
// only play sound/tts to tab if in focus
if (totab != parseInt($location.path().substr(1))) { return; }

if (msg.hasOwnProperty("tts")) {
if ('speechSynthesis' in window) {
Expand Down
2 changes: 1 addition & 1 deletion src/partials/main.html
@@ -1,4 +1,4 @@
<md-sidenav ng-show="main.len <= 1" layout="column" class="md-sidenav-left" md-component-id="left">
<md-sidenav ng-hide="main.len <= 1" layout="column" class="md-sidenav-left" md-component-id="left">
<md-list>
<md-list-item ng-repeat="tab in main.tabs" ng-click="main.select($index)">
<ui-icon icon="{{tab.icon}}" style="margin:5px"></ui-icon>
Expand Down
4 changes: 2 additions & 2 deletions ui.js
Expand Up @@ -278,9 +278,9 @@ function updateUi(to) {
});
to.emit('ui-controls', {
site: baseConfiguration.site,
theme: baseConfiguration.theme,
tabs: tabs,
links: links,
theme: baseConfiguration.theme
links: links
});
updateUiPending = false;
});
Expand Down

0 comments on commit 7a8576d

Please sign in to comment.