(function () { var chosenServer = IO_SERVERS[0]; // Is the array even necessary for the ACP? var opts = { secure: chosenServer.secure, withCredentials: true // needed for sio cookie to work }; window.socket = io.connect(chosenServer.url, opts); window.socket.on("connect", function () { window.socket.emit("initACP"); window.socket.emit("acp-list-activechannels"); readEventlog(); }); window.socket.on("errMessage", function (data) { alert(data.msg); }); })(); function addMenuItem(target, text) { var ul = $("#nav-acp-section ul"); var li = $("
  • ").appendTo(ul); var a = $("").attr("href", "javascript:void(0)") .text(text) .appendTo(li) .click(function () { $(".acp-panel").hide(); $(target).show(); }); }; addMenuItem("#acp-logview", "Log Viewer"); addMenuItem("#acp-announcements", "Announcements"); addMenuItem("#acp-global-bans", "Global Bans"); addMenuItem("#acp-user-lookup", "Users"); addMenuItem("#acp-channel-lookup", "Channels"); addMenuItem("#acp-loaded-channels", "Active Channels"); addMenuItem("#acp-eventlog", "Event Log"); /* Log Viewer */ function readSyslog() { $.ajax(location.protocol + "//" + location.host + "/acp/syslog").done(function (data) { $("#acp-log").text(data); $("#acp-log").scrollTop($("#acp-log").prop("scrollHeight")); }); } function readErrlog() { $.ajax(location.protocol + "//" + location.host + "/acp/errlog").done(function (data) { $("#acp-log").text(data); $("#acp-log").scrollTop($("#acp-log").prop("scrollHeight")); }); } function readHttplog() { $.ajax(location.protocol + "//" + location.host + "/acp/httplog").done(function (data) { $("#acp-log").text(data); $("#acp-log").scrollTop($("#acp-log").prop("scrollHeight")); }); } function readEventlog() { $.ajax(location.protocol + "//" + location.host + "/acp/eventlog").done(function (data) { handleEventLog(data); }); } function readChanlog(name) { $.ajax(location.protocol + "//" + location.host + "/acp/chanlog/" + name).done(function (data) { $("#acp-log").text(data); $("#acp-log").scrollTop($("#acp-log").prop("scrollHeight")); }); } $("#acp-syslog-btn").click(readSyslog); $("#acp-errlog-btn").click(readErrlog); $("#acp-httplog-btn").click(readHttplog); $("#acp-chanlog-name").keyup(function (ev) { if (ev.keyCode === 13) { readChanlog($("#acp-chanlog-name").val()); } }); /* Announcements */ $("#acp-announce-submit").click(function () { socket.emit("acp-announce", { title: $("#acp-announce-title").val(), content: $("#acp-announce-content").val() }); }); socket.on("announcement", function (data) { $("#acp-announcements").find(".announcement").remove(); var signature = "
    \u2014" + data.from; var al = makeAlert(data.title, data.text + signature) .removeClass("col-md-12") .addClass("announcement") .insertAfter($("#acp-announcements h3")[0]); al.find(".close").click(function () { socket.emit("acp-announce-clear"); }); $("#acp-announce-title").val(data.title); $("#acp-announce-content").val(data.text); }); /* Global bans */ $("#acp-gban-submit").click(function () { socket.emit("acp-gban", { ip: $("#acp-gban-ip").val(), note: $("#acp-gban-note").val() }); }); socket.on("acp-gbanlist", function (bans) { var tbl = $("#acp-global-bans table"); tbl.find("tbody").remove(); bans.forEach(function (b) { var tr = $("").appendTo(tbl); var td = $("").appendTo(tr); var del = $("