X-Git-Url: http://cgit.babelmonkeys.de/?p=adhocweb.git;a=blobdiff_plain;f=js%2Fmain.js;h=8724764fc49cb711496bb102ebd044a48c171df8;hp=fb76f3810bc0c361f4e453f5c137eee32cd9cc51;hb=f4cb3215b33bff04fce978513f77aff1e621a1ff;hpb=043000b3ce1e5b64299def211df4306df2b06315 diff --git a/js/main.js b/js/main.js index fb76f38..8724764 100644 --- a/js/main.js +++ b/js/main.js @@ -1,4 +1,5 @@ var BOSH_SERVICE = 'http://localhost:5280/http-bind/'; +var show_log = false; Strophe.addNamespace("ADHOC", "http://jabber.org/protocol/commands"); @@ -54,8 +55,10 @@ function addForm(elem, x) { form.submit(function(){return false;}); var fieldset = $("
"); form.append(fieldset); - $("").text($(x).find("title").text()).appendTo(fieldset); - $("

").text($(x).find("instructions").text()).appendTo(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"); @@ -103,7 +106,7 @@ function addForm(elem, x) { item = $(""); } item.addClass("df-item"); - if ($(this).find("value")) { + if ($(this).find("value").length > 0) { var value = null; if ((type == "text-multi") || (type == "jid-multi")) { value = ""; @@ -134,17 +137,23 @@ function serializeToDataform(form, st) { st.c("x", {"xmlns":"jabber:x:data", "type": "submit"}); $(form).find(".df-item").each(function(){ st.c("field", {"var": $(this).attr("name")}); - if(this.nodeName.toLowerCase() == "select" && this.multiple) { - for(var i = 0; i < this.options.length; i++) - if(options[i].selected) - st.c("value").text(options[i]).up(); - } else if(this.nodeName.toLowerCase() == "textarea") { - var sp_value = this.value.split(/\r\n?|\r/g); + if (this.nodeName.toLowerCase() == "select" && this.multiple) { + for (var i = 0; i < this.options.length; i++) + if (options[i].selected) + st.c("value").t(options[i]).up(); + } else if (this.nodeName.toLowerCase() == "textarea") { + var sp_value = this.value.split(/\r?\n|\r/g); for(var i = 0; i < sp_value.length; i++) - st.c("value").text(sp_value[i]).up(); + st.c("value").t(sp_value[i]).up(); + } else if (this.nodeName.toLowerCase() == "input" && this.type == "checkbox") { + if (this.checked) { + st.c("value").t("1"); + } else { + st.c("value").t("0"); + } } else { // if this has value then - st.c("value").text($(this).val()).up(); + st.c("value").t($(this).val()).up(); } st.up(); }); @@ -154,7 +163,7 @@ function serializeToDataform(form, st) { function displayResult(result) { var status = $(result).find("command").attr("status"); - $("#output *").remove(); + $("#output").empty(); $(result).find("command > *").each(function(index, e) { if ($(e).is("note")) { addNote("#output", $(e).text(), $(e).attr("type")); @@ -172,16 +181,23 @@ function displayResult(result) { if ($(result).find('actions ' + kind).length > 0) $('#' + kind + 'Button').attr("disabled", "false"); } + $('#executeButton').bind("click", function() { + var execIQ = $iq({ type: "set", to: connection.domain, id: connection.getUniqueId() }) + .c("command", { xmlns: Strophe.NS.ADHOC, node: cmdNode, sessionid: sessionid, action: "execute" }); + serializeToDataform($('form'), execIQ); + connection.sendIQ(execIQ, displayResult); + }); + $('#cancelButton').bind("click", function() { - var cancelIQ = $iq({ type: "set", to: "localhost", id: connection.getUniqueId() }) + var cancelIQ = $iq({ type: "set", to: connection.domain, id: connection.getUniqueId() }) .c("command", { xmlns: Strophe.NS.ADHOC, node: cmdNode, sessionid: sessionid, action: "cancel" }); cmdNode = null sessionid = null; connection.sendIQ(cancelIQ, displayResult); }); } else { - input = $("").bind("click", function() { - $('#output *').remove(); + input = $("").bind("click", function() { + $('#output').empty(); sessionid = null; cmdNode = null; getCommandNodes(); @@ -191,8 +207,8 @@ function displayResult(result) { } function runCommand() { - cmdNode = $(this).attr("id"); // Save not of executed command (in global) - var execIQ = $iq({ type: "set", to: "localhost", id: connection.getUniqueId() }) + cmdNode = $(this).attr("id"); // Save node of executed command (in global var) + var execIQ = $iq({ type: "set", to: connection.domain, id: connection.getUniqueId() }) .c("command", { xmlns: Strophe.NS.ADHOC, node: cmdNode, action: "execute" }); connection.sendIQ(execIQ, function(result) { sessionid = $(result).find("command").attr("sessionid"); @@ -201,7 +217,7 @@ function runCommand() { } function getCommandNodes() { - var nodesIQ = $iq({ type: "get", to: "localhost", id: "nodes1" }).c("query", {xmlns: Strophe.NS.DISCO_ITEMS, node: Strophe.NS.ADHOC}); + var nodesIQ = $iq({ type: "get", to: connection.domain, id: "nodes1" }).c("query", {xmlns: Strophe.NS.DISCO_ITEMS, node: Strophe.NS.ADHOC}); connection.sendIQ(nodesIQ, function(result) { $('#output').append("

"); $(result).find("item").each(function(index, e) { @@ -212,7 +228,7 @@ function getCommandNodes() { } function checkFeatures() { - featureIQ = $iq({ type: "get", to: "localhost", id: "features1" }).c("query", {xmlns: Strophe.NS.DISCO_INFO}); + featureIQ = $iq({ type: "get", to: connection.domain, id: "features1" }).c("query", {xmlns: Strophe.NS.DISCO_INFO}); connection.sendIQ(featureIQ, function(result) { if ($(result).find("feature[var='" + Strophe.NS.ADHOC + "']").length > 0) { $('#output').append("

This entitiy does support AdHoc commands

"); @@ -232,7 +248,7 @@ function showConnect() { pass.show(); jid.show(); $('label').show(); - $('#output *').remove(); + $('#output').empty(); return false; } @@ -250,8 +266,11 @@ function showDisconnect() { $(document).ready(function () { connection = new Strophe.Connection(BOSH_SERVICE); - connection.rawInput = rawInput; - connection.rawOutput = rawOutput; + if (show_log) { + $('#log_container').show(); + connection.rawInput = rawInput; + connection.rawOutput = rawOutput; + } $("#log_toggle").click(function () { $("#log").toggle(); @@ -265,7 +284,7 @@ $(document).ready(function () { if (button.value == 'connect') { showDisconnect(); - $('#log *').remove(); + $('#log').empty(); connection.connect(localJID, pass.get(0).value, onConnect);