123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- function lwsgt_get_appropriate_ws_url()
- {
- var pcol;
- var u = document.URL;
- if (u.substring(0, 5) == "https") {
- pcol = "wss://";
- u = u.substr(8);
- } else {
- pcol = "ws://";
- if (u.substring(0, 4) == "http")
- u = u.substr(7);
- }
- return pcol + u;
- }
- function lwsgt_app_hdr(j, bc, ws)
- {
- var s = "", n, m = 0;
- ws.bcq = 0;
-
- for (n = 0; n < j.cols.length; n++)
- if (!j.cols[n].hide)
- m++;
- s = "<tr><td colspan=\"" + m + "\" class=\"lwsgt_title\">" + ws.lwsgt_title + "</td></tr>"
- if (!!bc) {
- s += "<tr><td colspan=\"" + m + "\" class=\"lwsgt_breadcrumbs\">";
- for (n = 0; n < bc.length; n++) {
- s += " / ";
- if (!bc[n].url && bc[n].url !== "")
- s += " " + lws_san(bc[n].name) + " ";
- else {
- s = s + "<a href=# id=\"bc_"+ ws.divname + ws.bcq + "\" h=\"" + ws.lwsgt_cb + "\" p=\""+ws.lwsgt_parent+"\" aa=\"="+
- lws_san(encodeURI(bc[n].url))+"\" m=\"-1\" n=\"-1\">" +
- lws_san(bc[n].name) + "</a> ";
- ws.bcq++;
- }
- }
- s += "</td></tr>";
- }
- s += "<tr>";
- for (n = 0; n < j.cols.length; n++)
- if (!j.cols[n].hide)
- s = s + "<td class=\"lwsgt_hdr\">" + lws_san(j.cols[n].name) + "</td>";
-
- s += "</tr>";
-
- return s;
- }
- function lwsgt_initial(title, pcol, divname, cb, gname)
- {
- this.divname = divname;
-
- lws_gray_out(true,{'zindex':'499'});
- if (typeof MozWebSocket != "undefined")
- this.lwsgt_ws = new MozWebSocket(lwsgt_get_appropriate_ws_url(), pcol);
- else
- this.lwsgt_ws = new WebSocket(lwsgt_get_appropriate_ws_url(), pcol);
- this.lwsgt_ws.divname = divname;
- this.lwsgt_ws.lwsgt_cb = cb;
- this.lwsgt_ws.lwsgt_parent = gname;
- this.lwsgt_ws.lwsgt_title = title;
- try {
- this.lwsgt_ws.onopen = function() {
- lws_gray_out(false);
- // document.getElementById("debug").textContent =
- // "ws opened " + lwsgt_get_appropriate_ws_url();
- }
- this.lwsgt_ws.onmessage = function got_packet(msg) {
- var s, m, n, j = JSON.parse(msg.data);
- document.getElementById("debug").textContent = msg.data;
- if (j.cols) {
- this.hdr = j;
- }
- if (j.breadcrumbs)
- this.breadcrumbs = j.breadcrumbs;
- if (j.data) {
- var q = 0;
- s = "<table class=\"lwsgt_table\">" +
- lwsgt_app_hdr(this.hdr, this.breadcrumbs, this);
- for (m = 0; m < j.data.length; m++) {
- s = s + "<tr class=\"lwsgt_tr\">";
- for (n = 0; n < this.hdr.cols.length; n++) {
- if (!this.hdr.cols[n].hide) {
- if (!this.hdr.cols[n].align)
- s = s + "<td class=\"lwsgt_td\">";
- else
- s = s + "<td class=\"lwsgt_td\" style=\"text-align: right\">";
- if (this.hdr.cols[n].href &&
- !!j.data[m][this.hdr.cols[n].href]) {
- s = s + "<a href=# id=\""+ this.divname + q + "\" h=\"" + this.lwsgt_cb + "\" p=\""+this.lwsgt_parent+"\" aa=\""+
- lws_san(encodeURI(j.data[m][this.hdr.cols[n].href]))+"\" m=\""+m+"\" n=\""+n+"\">" +
- lws_san(j.data[m][this.hdr.cols[n].name]) +
- "</a>";
- q++;
- }
- else
- s = s + lws_san(j.data[m][this.hdr.cols[n].name]);
-
- s = s + "</td>";
- }
- }
-
- s = s + "</tr>";
- }
- s = s + "</table>";
- document.getElementById(this.divname).innerHTML = s;
- for (n = 0; n < q; n++)
- document.getElementById(this.divname + n).onclick = lwsgt_click_callthru;
- for (n = 0; n < this.bcq; n++)
- document.getElementById("bc_" + this.divname + n).onclick = lwsgt_click_callthru;
- }
- }
- this.lwsgt_ws.onclose = function(){
- lws_gray_out(true,{'zindex':'499'});
- }
- } catch(exception) {
- alert('<p>Error' + exception);
- }
- }
- function lwsgt_click_callthru()
- {
- window[this.getAttribute("h")](this.getAttribute("p"), this.getAttribute("aa"), this.getAttribute("m"), this.getAttribute("n"));
- event.preventDefault();
- }
|