]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[WebUI] Update Maps table
authorAlexander Moisseev <moiseev@mezonplus.ru>
Tue, 25 Mar 2025 11:00:21 +0000 (14:00 +0300)
committerAlexander Moisseev <moiseev@mezonplus.ru>
Tue, 25 Mar 2025 11:00:21 +0000 (14:00 +0300)
- Display new map flags.
- Rename "Lists" heading to "Maps".
- Add table header.

interface/index.html
interface/js/app/config.js
interface/js/app/rspamd.js

index 9c42f4e7f69c83a99715905122c142b1b761d3eb..a759ac48f9f286394e3eede6a11fa14e0a407943 100644 (file)
                                <div class="card bg-light shadow my-3">
                                        <div class="card-header text-secondary py-2 d-flex align-items-center">
                                                <span class="icon me-3"><i class="fas fa-list"></i></span>
-                                               <span class="h6 fw-bolder my-auto">Lists</span>
+                                               <span class="h6 fw-bolder my-auto">Maps</span>
                                                <div class="input-group-sm ms-auto me-1">
                                                        Editor:
                                                        <div id="btnGroupEditor" class="btn-group btn-group-xs ms-1">
                                        </div>
                                        <div class="card-body p-0">
                                                <table class="table table-sm table-hover mb-0" id="listMaps">
+                                                       <thead><tr><th>Flags</th><th>Type</th><th>URL</th><th>Description</th></tr></thead>
+                                                       <tbody/>
                                                </table>
                                        </div>
                                </div>
index 0f35e3107397d5d301e041d4d2abbf9eeb6f4a10..48cac10872ffaca42e0fb17b5cc915da59272c5c 100644 (file)
@@ -115,22 +115,27 @@ define(["jquery", "app/common"],
             common.query("maps", {
                 success: function (json) {
                     const [{data}] = json;
-                    $listmaps.empty();
-                    const $tbody = $("<tbody>");
+                    const $tbody = $listmaps.children("tbody").empty();
 
                     $.each(data, (i, item) => {
-                        let $td = '<td><span class="badge text-bg-secondary">Read</span></td>';
-                        if (!(item.editable === false || common.read_only)) {
-                            $td = $($td).append('&nbsp;<span class="badge text-bg-success">Write</span>');
-                        }
-                        const $tr = $("<tr>").append($td);
+                        const $td = $("<td>");
+
+                        const badges = [
+                            {text: "Not loaded", cls: "text-bg-warning", cond: !item.loaded},
+                            {text: "Cached", cls: "text-bg-info", cond: item.cached},
+                            {text: "Writable", cls: "text-bg-success", cond: !(item.editable === false || common.read_only)}
+                        ];
+                        badges.forEach((b) => {
+                            if (b.cond) $td.append($(`<span class="badge me-1 ${b.cls}">${b.text}</span>`));
+                        });
+
+                        const $tr = $("<tr>").append($td).append($("<td>" + item.type + "</td>"));
 
                         const $span = $('<span class="map-link">' + item.uri + "</span>").data("item", item);
                         $span.wrap("<td>").parent().appendTo($tr);
                         $("<td>" + item.description + "</td>").appendTo($tr);
                         $tr.appendTo($tbody);
                     });
-                    $tbody.appendTo($listmaps);
                     $listmaps.closest(".card").show();
                 },
                 server: common.getServer()
index 61b7cf1554c023214c2b83fa7f6cfa687af44f30..6d047d6f6648d3816888f72c861c02be2acf9ab5 100644 (file)
@@ -52,7 +52,7 @@ define(["jquery", "app/common", "stickytabs", "visibility",
     function cleanCredentials() {
         sessionStorage.clear();
         $("#statWidgets").empty();
-        $("#listMaps").empty();
+        $("#listMaps").children("tbody").empty();
         $("#modalBody").empty();
     }