diff --git a/Makefile b/Makefile index 613003ed06d7236fe94cbaddea9e9f8c3d97dcec..61be67f4089a2698774f0c9a18f0705f5dfe4e29 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 0000000000000000000000000000000000000000..eebac628be6087eba54a009ba615cf5be4089542 --- /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: </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+': </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: </label><input id="username" name="username" /> + <label for="secret">Secret: </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: </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>