lib/riemann/dash/public/toolbar.js in riemann-dash-0.2.5 vs lib/riemann/dash/public/toolbar.js in riemann-dash-0.2.6

- old
+ new

@@ -5,11 +5,16 @@ toolbar.append(form); var pager = $('<div class="pager">'); var load = $('<div class="load"><div class="bar load1" /><div class="bar load5" /><span title="1- and 5-second subscription manager load averages">Load</span></div>'); var server = $('<input class="server" type="text" name="text">'); + var server_type = $('<div class="server"><label><input type="radio" id="ws" name="server_type" value="ws" checked>websockets</label><input type="radio" id="sse" name="server_type" value="sse">sse</label></div>'); + var server_type_selector = $("input[name=server_type]"); + var server_type_sse_selector = $("input#ws"); + var server_type_ws_selector = $("input#sse"); form.append(pager); + form.append(server_type); form.append(server); form.append(load); form.submit(function(e) { return false; }); @@ -26,23 +31,43 @@ // Server /////////////////////////////////////////////////////////////////// // Callbacks var onServerChangeCallbacks = []; + var onServerTypeChangeCallbacks = []; // React to server being set. var onServerChange = function(callback) { onServerChangeCallbacks.push(callback); } + var onServerTypeChange = function(callback) { + onServerTypeChangeCallbacks.push(callback); + } + // When server is set, call callbacks. server.change(function() { onServerChangeCallbacks.forEach(function(f) { f(server.val()); }); server.blur(); }); + + // When server_type is set, call callbacks. + $('input#ws').change(function(e) { + onServerTypeChangeCallbacks.forEach(function(f) { + f($("input[name=server_type]:checked").val()); + }); + server.blur(); + }); + + $('input#sse').change(function(e) { + onServerTypeChangeCallbacks.forEach(function(f) { + f($("input[name=server_type]:checked").val()); + }); + server.blur(); + }); // Suppress keybindings server.focus(keys.disable); server.blur(keys.enable); @@ -203,10 +228,25 @@ } else { server.val(s); return s; } }, + server_type: function(s) { + if (s === undefined) { + return $("input[name=server_type]:checked").val(); + } else { + console.log("handling server_type: " + s); + if (s == "sse") { + $("input[name=server_type]#sse").attr("checked",true); + } else if (s == "ws") { + $("input[name=server_type]#ws").attr("checked",true); + } + return s; + } + }, + onServerChange: onServerChange, + onServerTypeChange: onServerTypeChange, onWorkspaceChange: onWorkspaceChange, onWorkspaceReorder: onWorkspaceReorder, onWorkspaceSwitch: onWorkspaceSwitch, onWorkspaceAdd: onWorkspaceAdd, onWorkspaceDelete: onWorkspaceDelete,