aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rw-r--r--static-http/mantest.html177
2 files changed, 179 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 613003ed0..61be67f40 100644
--- a/Makefile
+++ b/Makefile
@@ -449,7 +449,7 @@ distclean: $(SUBDIRS_DIST_CLEAN) _clean
rm -rf doc/api
rm -f build_tools/menuselect-deps
-datafiles: _all
+datafiles: _all doc/core-en_US.xml
CFLAGS="$(_ASTCFLAGS) $(ASTCFLAGS)" build_tools/mkpkgconfig $(DESTDIR)$(libdir)/pkgconfig;
# Should static HTTP be installed during make samples or even with its own target ala
# webvoicemail? There are portions here that *could* be customized but might also be
@@ -458,6 +458,7 @@ datafiles: _all
for x in static-http/*; do \
$(INSTALL) -m 644 $$x $(DESTDIR)$(ASTDATADIR)/static-http ; \
done
+ $(INSTALL) -m 644 doc/core-en_US.xml $(DESTDIR)$(ASTDATADIR)/static-http;
if [ -d doc/tex/asterisk ] ; then \
$(INSTALL) -d $(DESTDIR)$(ASTDATADIR)/static-http/docs ; \
for n in doc/tex/asterisk/* ; do \
diff --git a/static-http/mantest.html b/static-http/mantest.html
new file mode 100644
index 000000000..eebac628b
--- /dev/null
+++ b/static-http/mantest.html
@@ -0,0 +1,177 @@
+<!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>Manager Utility</title>
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.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>