node-red-nodes/social/pushbullet/57-pushbullet.html
Antoine Aflalo d4debc330d Refactor deviceId -> deviceIdent
Since the deviceId will be deprecated, better move to the deviceIdent
2014-04-20 15:24:34 +03:00

177 lines
6.1 KiB
HTML

<!--
Copyright 2013 IBM Corp.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<script type="text/x-red" data-template-name="pushbullet">
<div class="form-row" id="node-input-credentials-row">
<label for="node-input-creds"><i class="icon-folder-close"></i> Credentials</label>
<select id="node-input-creds">
<option value="global">Use global credentials</option>
<option value="local">Use local credentials</option>
</select>
</div>
<div class="form-row" id="node-input-device-row">
<label for="node-input-device"><i class="icon-tasks"></i> Device</label>
<input type="text" id="node-input-device">
</div>
<div class="form-row">
<label for="node-input-title"><i class="icon-flag"></i> Title</label>
<input type="text" id="node-input-title" placeholder="Node-RED">
</div>
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="pushbullet">
<p>Uses PushBullet to push the <b>msg.payload</b> to an Android device that has PushBullet app installed.</p>
<p>Optionally uses <b>msg.topic</b> to set the title, if not already set in the properties.</p>
<p>When creating a node, you'll have to first set a device that contain it's ID and your API key that you can find in the <a href="https://www.pushbullet.com/account">Account Settings</a></p>
<p>The Device Ident can be found by hovering over you required device on the <a href="https://www.pushbullet.com/">PushBullet website</a>.</p>
</script>
<script type="text/x-red" data-template-name="bullet-device">
<div class="form-row">
<label for="node-config-input-name"><i class="icon-tasks"></i>Name</label>
<input type="text" id="node-config-input-name" >
</div>
<div class="form-row">
<label for="node-config-input-apikey"><i class="icon-tasks"></i>API-Key</label>
<input type="password" id="node-config-input-apikey" >
</div>
<div class="form-row">
<label for="node-config-input-deviceIdent"><i class="icon-tasks"></i>Device Ident</label>
<input type="text" id="node-config-input-deviceIdent" >
</div>
<div class="form-tips">The API key can be found on the <a target="_blank" href="https://www.pushbullet.com/account">Account Settings</a></div>
</script>
<script type="text/javascript">
var hasGlobal = false;
$.getJSON('pushbullet-api/global', function (data) {
hasGlobal = data.hasApiKey;
});
RED.nodes.registerType('bullet-device', {
category: 'config',
defaults: {
name: {value: "", required: true}
//apikey: -> credentials
//deviceIdent -> credentials
},
label: function () {
return this.name;
},
oneditprepare: function () {
$.getJSON('pushbullet-api/' + this.id, function (data) {
if (data.deviceIdent) {
$('#node-config-input-deviceIdent').val(data.deviceIdent);
}
if (data.hasApiKey) {
$('#node-config-input-apikey').val('__PWRD__');
} else {
$('#node-config-input-apikey').val('');
}
});
},
oneditsave: function () {
var newApiKey = $('#node-config-input-apikey').val();
var credentials = {};
if (newApiKey != '__PWRD__') {
credentials.apikey = newApiKey;
}
credentials.deviceIdent = $('#node-config-input-deviceIdent').val();
$.ajax({
url: 'pushbullet-api/' + this.id,
type: 'POST',
data: credentials,
success: function (result) {
}
});
},
ondelete: function () {
$.ajax({
url: 'pushbullet-api/' + this.id,
type: 'DELETE',
success: function (result) {
}
});
}
});
RED.nodes.registerType('pushbullet', {
category: 'output',
defaults: {
device: {type: "bullet-device", validate: function (v) {
return hasGlobal || (v && v != "_ADD_")
}},
title: {value: ""},
name: {value: ""}
},
color: "#a7c9a0",
inputs: 1,
outputs: 0,
icon: "bullet.png",
align: "right",
label: function () {
return this.name || this.title || (this.device) ? RED.nodes.node(this.device).label() : "pushbullet";
},
labelStyle: function () {
return this.name ? "node_label_italic" : "";
},
oneditprepare: function () {
if (hasGlobal) {
$("#node-input-creds").change(function () {
var val = $(this).val();
if (val == "global") {
$("#node-input-device-row").hide();
} else {
$("#node-input-device-row").show();
}
});
$("#node-input-credentials-row").show();
if (!this.device) {
$("#node-input-creds").val("global");
} else {
$("#node-input-creds").val("local");
}
$("#node-input-creds").change();
} else {
$("#node-input-credentials-row").hide();
}
}
});
</script>