function fn_list_endpoints() { var qs = $.trim($("input[name='endpoint_search']").val()); var tags = $.trim($("input[name='tag_search']").val()); var limit = $("#endpoint-limit").val(); var page = $("#endpoint-page").val(); $(".loading").show(); $.getJSON("/api/endpoints", {q: qs, tags: tags, limit:limit, page:page, _r:Math.random()}, function(ret){ $(".loading").hide(); if (!ret.ok) { err_message_quietly(ret.msg); return; } // display_endpoints var tbody_hosts = $("#tbody-endpoints"); tbody_hosts.html(""); for (var hidx in ret.data) { var h = ret.data[hidx].endpoint; var eid = ret.data[hidx].id; var line_html = '' + '' + '' + h + '' + ''; tbody_hosts.append($(line_html)); tbody_hosts.find('.shiftCheckbox').shiftcheckbox(); } fn_check_all_hosts(); }).error(function(req, ret, errorThrown){ $(".loading").hide(); err_message_quietly(req.statusText) }) } function fn_list_counters(){ var qs = $.trim($("#counter-search").val()); var eids = new Array(); $("#tbody-endpoints input:checked").each(function(i, o){ var eid = $(o).attr("data-eid"); eids.push(eid); }); if (eids.length === 0){ err_message_quietly("先选定一些endpoints"); return false; } var limit = $("#counter-limit").val(); var page = $("#counter-page").val(); $(".loading").show(); $.ajax({ method: "POST", url: "/api/counters", dataType: "json", data: {"eids": JSON.stringify(eids), "q": qs, "limit": limit, "page":page, "_r": Math.random()}, success:function(ret){ $(".loading").hide(); if(ret.ok){ var items = ret.data; // display counters var tbody_items = $("#tbody-counters"); tbody_items.html(""); for (var i in items) { var c = items[i]; var display_counter_type = "计数器"; if(c[1] == "GAUGE") { display_counter_type = "原始值"; } var line_html = '' + '' + '' + c[0] + '' + ''+ display_counter_type +'' + ''+ c[2] +'s' + '' tbody_items.append($(line_html)); tbody_items.find('.shiftCheckbox').shiftcheckbox(); } }else{ err_message_quietly("搜索失败:" + ret.msg); return false; } } }); } function fn_delete_counters(){ var checked_hosts = new Array(); $("#tbody-endpoints input:checked").each(function(i, o){ if($(o).is(":visible")){ var hostfullname = $(o).attr("data-fullname"); checked_hosts.push(hostfullname); } }); if(checked_hosts.length === 0){ err_message_quietly("先选endpoint:)"); return false; } var checked_items = new Array(); $("#tbody-counters input:checked").each(function(i, o){ if($(o).is(":visible")){ var key_ = $(o).attr("data-fullkey"); checked_items.push(key_); } }); if (checked_items.length === 0){ err_message_quietly("请选择counter"); return false; } if(checked_items.length > 10) { err_message_quietly("每次删除不能超过10个,免得你后悔:"); return false; } my_confirm("真的要删除么?这会删除MySQL中对应的内容,也会清除磁盘上对应的数据文件", [ '确定', '取消' ], function() { $.ajax({ url: "/api/counters", dataType: "json", method: "DELETE", data: {"endpoints": checked_hosts, "counters": checked_items, "_r": Math.random()}, success: function(ret) { if (ret.ok) { ok_message_quietly(ret.data); }else { err_message_quietly("请求出错了"); } }, error: function(){ err_message_quietly("请求出错了"); } }); }, function() { }); return false; } function fn_delete_endpoints(){ var checked_hosts = new Array(); $("#tbody-endpoints input:checked").each(function(i, o){ if($(o).is(":visible")){ var hostfullname = $(o).attr("data-fullname"); checked_hosts.push(hostfullname); } }); if(checked_hosts.length === 0){ err_message_quietly("先选endpoint:)"); return false; } if(checked_hosts.length > 2) { err_message_quietly("每次删除不能超过2个,免得你后悔:"); return false; } my_confirm("真的要删除么?这会删除MySQL中对应的内容,也会清除磁盘上对应的数据文件", [ '确定', '取消' ], function() { $.ajax({ url: "/api/endpoints", dataType: "json", method: "DELETE", data: {"endpoints": checked_hosts, "_r": Math.random()}, success: function(ret) { if (ret.ok) { ok_message_quietly(ret.data); }else { err_message_quietly("请求出错了"); } }, error: function(){ err_message_quietly("请求出错了"); } }); }, function() { }); return false; } function filter_endpoint() { var filter_text = $("#endpoint-filter").val().toLowerCase(); var targets = $("#tbody-endpoints tr"); if(!filter_text){ targets.each(function(i, obj){ $(obj).show(); }); }else{ var filter_pattern = new RegExp(filter_text, "i"); targets.each(function(i, obj){ var checkbox = $($(obj).find("input[type='checkbox']")[0]); var name = checkbox.attr("data-fullname"); if(filter_pattern.exec(name) == null){ $(obj).hide(); }else{ $(obj).show(); } if($(obj).is(":visible")){ checkbox.prop("checked", true); }else{ checkbox.prop("checked", false); } }); } }; function filter_counter() { var filter_text = $("#counter-filter").val().toLowerCase(); var targets = $("#tbody-counters tr"); if(!filter_text){ targets.each(function(i, obj){ $(obj).show(); }); }else{ var filter_pattern = new RegExp(filter_text, "i"); targets.each(function(i, obj){ var checkbox = $($(obj).find("input[type='checkbox']")[0]); var name = checkbox.attr("data-fullkey"); if(filter_pattern.exec(name) == null){ $(obj).hide(); }else{ $(obj).show(); } if($(obj).is(":visible")){ checkbox.prop("checked", true); }else{ checkbox.prop("checked", false); } }); } }; function fn_show_chart(counter) { var checked_hosts = new Array(); $("#tbody-endpoints input:checked").each(function(i, o){ if($(o).is(":visible")){ var hostfullname = $(o).attr("data-fullname"); checked_hosts.push(hostfullname); } }); if(checked_hosts.length === 0){ err_message_quietly("先选endpoint:)"); return false; } checked_items = new Array(); checked_items.push(counter); var w = window.open(); $.ajax({ url: "/chart", dataType: "json", method: "POST", data: {"endpoints": checked_hosts, "counters": checked_items, "graph_type": "h", "_r": Math.random()}, success: function(ret) { if (ret.ok) { setTimeout(function(){w.location='/chart/big?id='+ret.id;}, 0); } else { err_message_quietly("请求出错了"); } }, error: function(){ err_message_quietly("请求出错了"); } }); return false; } function fn_show_all(graph_type) { var checked_hosts = new Array(); $("#tbody-endpoints input:checked").each(function(i, o){ if($(o).is(":visible")){ var hostfullname = $(o).attr("data-fullname"); checked_hosts.push(hostfullname); } }); if(checked_hosts.length === 0){ err_message_quietly("先选endpoint:)"); return false; } var checked_items = new Array(); $("#tbody-counters input:checked").each(function(i, o){ if($(o).is(":visible")){ var key_ = $(o).attr("data-fullkey"); checked_items.push(key_); } }); if (checked_items.length === 0){ err_message_quietly("请选择counter"); return false; } var w = window.open(); $.ajax({ url: "/chart", dataType: "json", method: "POST", data: {"endpoints": checked_hosts, "counters": checked_items, "graph_type": graph_type, "_r": Math.random()}, success: function(ret) { if (ret.ok) { setTimeout(function(){w.location="/charts?id="+ret.id+"&graph_type="+graph_type;}, 0); }else { err_message_quietly("请求出错了"); } }, error: function(){ err_message_quietly("请求出错了"); } }); return false; } function fn_check_all_items() { var box = $("#check_all_counters"); if(box.prop("checked")){ $("#tbody-counters").find("input:checkbox").each(function(i, o){ $(o).prop("checked", true); }); }else{ $("#tbody-counters").find("input:checkbox").each(function(i, o){ $(o).prop("checked", false); }); } } function fn_check_all_hosts() { var box = $("#check_all_endpoints"); if(box.prop("checked")){ $("#tbody-endpoints").find("input:checkbox").each(function(i, o){ $(o).prop("checked", true); }); }else{ $("#tbody-endpoints").find("input:checkbox").each(function(i, o){ $(o).prop("checked", false); }); } } function fn_filter_group() { var filter_text = $("#group-filter").val().toLowerCase(); var group_objs = $(".group"); if(!filter_text){ group_objs.each(function(i, obj){ $(obj).show(); }); }else if (filter_text.length <= 2) { }else{ group_objs.each(function(i, obj){ var groupname = $($(obj).children("a")[0]).attr("data-gname"); if(groupname.toLowerCase().indexOf(filter_text) === -1){ $(obj).hide(); }else{ $(obj).show(); } }); fn_collapse_in_groups(); } }; function fn_collapse_in_groups() { $(".accordion-body").each(function(i, obj){ if(!$(obj).hasClass("in")){ $(obj).collapse("show"); } }); };