You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asterisk/static-http/mantest.html

194 lines
4.6 KiB

<!--
Asterisk -- An open source telephony toolkit.
Copyright (C) 1999 - 2012, Digium, Inc.
Mark Spencer <markster@digium.com>
See http://www.asterisk.org for more information about
the Asterisk project. Please do not directly contact
any of the maintainers of this project for assistance;
the project provides a web site, mailing lists and IRC
channels for your use.
This program is free software, distributed under the terms of
the GNU General Public License Version 2. See the LICENSE file
at the top of the source tree.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type="text/css">
#container {
margin: 0 auto;
width: 100%;
height: 100%;
background: #fff;
}
#top {
float: left;
width: 100%;
background: #fff;
}
#bottom {
float: left;
width: 100%;
background: #fff;
}
#sender {
clear: left;
float: left;
width: 20%;
display: inline;
overflow: auto;
}
#output {
float: right;
width: 79%;
display: inline;
overflow: auto;
border: thin solid black;
}
.required {
color: red;
}
</style>
<title>Asterisk Manager Utility</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#output').height($(document).height() - $('#top').height() - 100);
$.ajax({
type: "GET",
url: "core-en_US.xml",
dataType: "xml",
success: parseXml
});
$("#login").submit(function() {
$("#output").empty();
submitCommand($(this));
$("#command").focus();
return false;
});
$("#search_button").click(function() {
var command = $("#command").val();
$("#command").val("");
$("#output").empty();
if (commands) {
commands.each(function() {
if ($(this).attr("name").toLowerCase() == command.toLowerCase()) {
buildCommandForm($(this));
}
});
}
$('#output').height($(document).height() - $('#top').height() - 100);
return false;
});
$('#command').keyup(function(event) {
if (event.keyCode == '13') {
return;
}
var matches = [];
var search = $("#command").val().toLowerCase();
$("#output").empty();
if (search.length && commands) {
commands.each(function() {
var com = $(this).attr("name").toLowerCase();
if (com.substr(0, search.length) === search) {
matches.push(com);
}
});
}
if (matches.length) {
$("#output").append(matches.sort().join("<br/>"));
}
});
});
function parseXml(xml) {
commands = $(xml).find("manager")
}
function buildCommandForm(command) {
var name = command.attr("name");
var i = 0;
$("#sendcommand").empty();
$("#sendcommand").unbind('submit');
$("#sendcommand").append('<label>Action:&nbsp;</label><input name="action" readonly="readonly" value="'+name+'"/><br />');
command.find("parameter").each(function() {
var param = $(this).attr("name");
if (param != "ActionID") {
$("#sendcommand").append('<label for="'+param+'">'+param+':&nbsp;</label><input name="'+param+'" /><br />');
if ($(this).attr("required")) {
$('label[for='+param+']').addClass("required");
}
if (i == 0) {
$("input[name="+param+"]").focus();
}
i++;
}
});
$("#sendcommand").append('<button type="submit" id="commandbutton">Send</button>');
$("#sendcommand").submit(function() {
$("#output").empty();
submitCommand($(this));
$("#command").focus();
return false;
});
// If we don't have any fields to fill in, go ahead and submit!
if (i == 0) {
$("#sendcommand").submit();
}
}
function submitCommand(form) {
$.ajax({
type: "GET",
url: "../rawman",
dataType: "text",
data: $(form).serializeArray(),
success: displayResponse,
failure: function() {alert("Error!");}
});
return false;
}
function displayResponse(data) {
data = data.replace(/\r\n/g, "<br />");
$("#output").append(data);
return false;
}
</script>
</head>
<body>
<div id="container">
<div id="top">
<form id="login" name="login">
<label for="username">Username:&nbsp;</label><input id="username" name="username" />
<label for="secret">Secret:&nbsp;</label><input id="secret" name="secret" type="password"/>
<input type="hidden" name="action" value="login" />
<button id="login_button" type="submit">Submit</button>
</form>
<hr />
<form id="search" name="search">
<label for="txt">Action:&nbsp;</label><input name="command" id="command"/>
<button id="search_button">Submit</button>
</form>
</div>
<hr />
<div id="bottom">
<div id="sender">
<form id="sendcommand" name="sendcommand"></form>
</div>
<div id="output"></div>
</div>
</div>
</body>
</html>