AJAX RFID Tester Old
by casebash
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-scrollTo/1.4.3/jquery.scrollTo.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ICanHaz.js/0.10/ICanHaz.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.3/underscore-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.9/backbone-min.js"></script>
<html>
<body>Last status: <span id="status">Idle</span>
<div id="content" style="overflow : auto; height: 250px; resize: vertical;"></div>
<div id="controls">
<label>Time</label>
<input name="timestamp" type="text" value="" />
<label>Delay</label>
<input name="delay" type="text" value="" />
<br />
<label>Tag Id</label>
<input name="tagid" type="text" value="" />
<br />
<button class="b index">Index</button>
<button class="b alldetails">All details</button>
<button class="b single">Single</button>
<button class="b since">Since</button>
<button class="replace">Replace</button>
<input type="checkbox" name="loop" value="Loop">Loop
<br>
</div>
</body>
</html>
CSS
label {
font-family: sans-serif;
}
kbd {
border: 1px solid grey;
border-radius: 3px;
background: -webkit-linear-gradient(top, #eeeeee 0%, #cccccc 100%);
}
#content {
font-family:'courier new', 'courier';
min-height: 3em;
background: -webkit-linear-gradient(top, #ffffee 0%, #ddddcc 100%);
}
JavaScript
var DELAY_TIME = 2000;
var BASE_URL = "http://localhost:8888/";
var DEBUG = false;
//Prevent crashes from console.log
if(!DEBUG){
if (!("console" in window)) {
var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
window.console = {};
for (var i = 0, len = names.length; i < len; ++i) {
window.console[names[i]] = function(){};
}
}
}
function ajax(title, url, param, keepdisabled, f) { //Still strings
var container=$("<div><div><b>" + title + " " + JSON.stringify(param) + "</b></div><br /></div>").appendTo('#content');
$('#content').scrollTo(container);
$('#status').text('Waiting for response...');
$.getJSON(url, param)
.done(function (data, status, jqXHR) {
console.log('ajax.success');
html = "<div>";
if ("error_msg" in data) {
$('#status').text('Internal error: ' + data.error_msg);
html += data.error_msg;
} else {
html += "Time: " + data.time + "<br />";
$("#replace").data("time", data.time);
var d = data.data;
if ($.isArray(d)) {
if (d.length === 0) {
html += "None";
}
$.each(data.data, function (i, item) {
//Need to escape any html
html += JSON.stringify(item) + '<br />';
});
} else {
//Dictionary
for (var key in d) {
html += key + ": " + JSON.stringify(d[key]) + "<br />";
}
}
$('#input').val(data[0]);
$('#status').text('AJAX Success');
}
html += "</div><br />";
$(html).appendTo(container);
$('#content').scrollTo(container);
if (!keepdisabled) opDone();
if (f) f(data);
}).fail(function (jqXHR, error, exception) {
console.log('ajax.fail');
var next=$("<div>AJAX FAIL</div><br/>").appendTo(container);
$('#content').scrollTo(container);
$('#status').text('AJAX Fail');
opDone();
//TODO:...