deb-python-autobahn/examples/twisted/wamp/app/keyvalue/index.html

127 lines
4.1 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.block {
background-color: #ccc;
padding: 1em;
margin: 1em;
}
</style>
</head>
<body>
<h1>Key-Value Store Client</h1>
<noscript>
<span style="color: #f00; font-weight: bold;">
You need to turn on JavaScript.
</span>
</noscript>
<div class="block"><button onclick="getAll()">Get all</button> Retrieve all key-value pairs from store and log to console.</div>
<div class="block"><button onclick="deleteAll()">Delete all</button> Delete all data from store.</div>
<div class="block">
<form>
<p>Key: <input id="form_key" type="text" size="50" maxlength="50" value="key1"></p>
<p>Value 1: <input id="form_value1" type="text" size="50" maxlength="50" value="foobar"></p>
<p>Value 2: <input id="form_value2" type="text" size="50" maxlength="50" value="123"></p>
<p>Value 3: <input id="form_value3" type="checkbox" checked></p>
</form>
<p><button onclick="setKeyValue()">Set Value</button> Set key-value pair.</p>
<p><button onclick="deleteKey()">Delete Key</button> Delete key-value by key.</p>
<p><button onclick="getValue()">Get Key</button> Get key-value by key.</p>
</div>
<pre id="log" style="height: 20em; overflow-y: scroll; background-color: #faa;"></pre>
<script src="/autobahn.min.js"></script>
<script type="text/javascript">
var session = null;
// the URL of the WAMP Router (e.g. Crossbar.io)
//
var wsuri;
if (document.location.origin == "file://") {
wsuri = "ws://localhost:9000";
} else {
wsuri = "ws://" + document.location.hostname + ":9000";
}
// connect to WAMP server
//
var connection = new autobahn.Connection({
url: wsuri,
realm: 'realm1'
});
connection.onopen = function (new_session) {
console.log("connected to " + wsuri);
session = new_session;
};
connection.onclose = function (reason, details) {
console.log("connection gone", reason, details);
new_session = null;
}
connection.open();
function setKeyValue() {
var key = document.getElementById('form_key').value;
var value = {
value1: document.getElementById('form_value1').value,
value2: document.getElementById('form_value2').value,
value3: document.getElementById('form_value3').checked,
modified: new Date()
}
session.call("com.example.keyvalue.set", [key, value]).then(
function () {
console.log("Value stored!");
}
);
}
function getValue() {
var key = document.getElementById('form_key').value;
session.call("com.example.keyvalue.get", [key]).then(
function (value) {
console.log(value);
document.getElementById('form_value1').value = value.value1;
document.getElementById('form_value2').value = value.value2;
document.getElementById('form_value3').checked = value.value3;
}
);
}
function deleteKey() {
var key = document.getElementById('form_key').value;
session.call("com.example.keyvalue.set", [key]).then(
function () {
log("Key-Value deleted!");
}
);
}
function getAll() {
session.call("com.example.keyvalue.get").then(
function (res) {
console.log(res);
}
);
}
function deleteAll() {
session.call("com.example.keyvalue.set").then(
function () {
log("All Key-Values deleted!");
}
);
}
</script>
</body>
</html>