X-Git-Url: http://cgit.babelmonkeys.de/?p=adhocweb.git;a=blobdiff_plain;f=js%2Fmain.js;h=621596162d3ce61b9068efa0eed6c07c7fd9605e;hp=85f2ccaeaa2ec8887710ca2fe8baed05aff0ada7;hb=5a45869a032410c17d02374b8de20e496c114de3;hpb=7ef6024aa84881aba55e61c38073fc9465aac876 diff --git a/js/main.js b/js/main.js index 85f2cca..6215961 100644 --- a/js/main.js +++ b/js/main.js @@ -1,15 +1,10 @@ var BOSH_SERVICE = 'http://localhost:5280/http-bind/'; var show_log = true; -Strophe.addNamespace("ADHOC", "http://jabber.org/protocol/commands"); - var localJID = null; var connection = null; -var adhoc_status = { - sessionid: null, - cmdNode: null, - queryJID: null -}; + +var commandCenter = null; function log(msg) { var entry = $('
').append(document.createTextNode(msg)); @@ -24,6 +19,17 @@ function rawOutput(data) { log('SENT: ' + data); } +function getFeatures(jid) { + var cb, ecb; + cb = function(result) { /* Callback */ + commandCenter.getCommandNodes(function(items) { $('#output').empty(); $('#output').append(items) }); + } + ecb = function(result) { /* Errback */ + $('#output').append("

" + jid + " does NOT support AdHoc commands

"); + } + commandCenter.checkFeatures(jid, cb, ecb); +} + function onConnect(status) { if (status == Strophe.Status.CONNECTING) { log('Strophe is connecting.'); @@ -42,242 +48,18 @@ function onConnect(status) { } } else if (status == Strophe.Status.CONNECTED) { log('Strophe is connected.'); - adhoc_status.queryJID = connection.domain; - $('#queryJID').val(adhoc_status.queryJID); + $('#queryJID').val(connection.domain); $('#query').show(); - checkFeatures("#output"); + commandCenter = new Adhoc("#output", function() { + $("").bind("click", function() { + $('#output').empty(); + commandCenter.getCommandNodes(function(items) { $('#output').append(items) }); + }).appendTo('#output'); + }); + getFeatures(connection.domain); } } -function addNote(elem, text, type) { - if (!type) { - type = "info"; - } - text = text.replace(/\n/g, "
"); - $(elem).append("

" + text + "

"); -} - -function addForm(elem, x) { - var form = $("
"); - form.submit(function(event) { - executeCommand("execute", serializeToDataform('form'), function(e) { displayResult(elem, e) }); - event.preventDefault(); - }); - var fieldset = $("
"); - form.append(fieldset); - if ($(x).find("title").length > 0) - $("").text($(x).find("title").text()).appendTo(fieldset); - if ($(x).find("instructions").length > 0) - $("

").text($(x).find("instructions").text()).appendTo(fieldset); - $(x).find("field").each(function() { - var item = null; - var type = $(this).attr("type"); - if($(this).attr("label")) { - $("