]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: stats: Support "select all" for backend actions
authorDavid Harrigan <dharrigan@gmail.com>
Fri, 30 Dec 2016 12:12:49 +0000 (12:12 +0000)
committerWilly Tarreau <w@1wt.eu>
Mon, 2 Jan 2017 15:56:33 +0000 (16:56 +0100)
Allow the user to quickly select all servers within a group before invoking an
action.

src/stats.c

index b0c0fc5bbdd027683c66dd4592a5228a14150f19..b7d030351f168fcfcae3ad68f563e85f2383b068 100644 (file)
@@ -636,7 +636,8 @@ static int stats_dump_fields_html(struct chunk *out, const struct field *stats,
 
                if (flags & ST_SHOWADMIN)
                        chunk_appendf(out,
-                                     "<td><input type=\"checkbox\" name=\"s\" value=\"%s\"></td>",
+                                     "<td><input class='%s-checkbox' type=\"checkbox\" name=\"s\" value=\"%s\"></td>",
+                                     field_str(stats, ST_F_PXNAME),
                                      field_str(stats, ST_F_SVNAME));
 
                chunk_appendf(out,
@@ -1642,7 +1643,12 @@ static void stats_dump_html_px_hdr(struct stream_interface *si, struct proxy *px
 
        if ((px->cap & PR_CAP_BE) && px->srv && (appctx->ctx.stats.flags & STAT_ADMIN)) {
                /* Column heading for Enable or Disable server */
-               chunk_appendf(&trash, "<th rowspan=2 width=1></th>");
+        chunk_appendf(&trash,
+                "<th rowspan=2 width=1><input type=\"checkbox\" \
+                onclick=\"for(c in document.getElementsByClassName('%s-checkbox')) \
+                document.getElementsByClassName('%s-checkbox').item(c).checked = this.checked\"></th>",
+                px->id,
+                px->id);
        }
 
        chunk_appendf(&trash,