From 14889a8b6d4dcfb3cc7cb3be5ed74b244cc12e76 Mon Sep 17 00:00:00 2001 From: tore Date: Mon, 21 Sep 2026 16:42:59 +0000 Subject: [PATCH] =?UTF-8?q?=D1=84=D0=B8=D0=BB=D1=8C=D1=82=D1=80=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=BF=D1=80=D0=B8=D0=BE=D1=80=D0=B8=D1=82=D0=B5=D1=82?= =?UTF-8?q?=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 6 ++++++ script.js | 40 ++++++++++++++++++++++++++++++++++++---- style.css | 11 +++++++++++ 3 files changed, 53 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 7bc1b9b..c0eb66e 100644 --- a/index.html +++ b/index.html @@ -51,6 +51,12 @@
+
+ Приоритет +
+ +
+
diff --git a/script.js b/script.js index bc3b13c..3d966fe 100644 --- a/script.js +++ b/script.js @@ -14,10 +14,17 @@ var STATUSES = { var PRIORITIES = { low: { label: "Низкий" }, - normal: { label: "Средний" }, - high: { label: "Высокий" } + normal: { label: "Средний", tone: "muted" }, + high: { label: "Высокий", tone: "risk" } }; +var PRIORITY_OPTIONS = [ + { key: "", label: "Все" }, + { key: "high", label: "Высокий" }, + { key: "normal", label: "Средний" }, + { key: "low", label: "Низкий" } +]; + function todayIso(offsetDays) { var d = new Date(); d.setDate(d.getDate() + (offsetDays || 0)); @@ -57,6 +64,7 @@ var state = { requests: [], query: "", statusFilter: "", // "" = все + priorityFilter: "", // "" = все openId: null, // id записи в drawer drawerMode: "" // "" | "view" | "new" | "edit" }; @@ -138,12 +146,18 @@ function statusPill(status) { return '' + esc(st.label) + ""; } +function prioChip(p) { + var pr = PRIORITIES[p] || PRIORITIES.normal; + return '' + esc(pr.label) + ""; +} + function filteredRequests(q) { q = (q == null ? "" : q).trim().toLowerCase(); var out = []; for (var i = 0; i < state.requests.length; i++) { var r = state.requests[i]; if (state.statusFilter && r.status !== state.statusFilter) continue; + if (state.priorityFilter && r.priority !== state.priorityFilter) continue; if (q) { if (String(r.equipment).toLowerCase().indexOf(q) === -1) continue; } @@ -156,6 +170,7 @@ function statusCounts(q) { var c = { "": 0, new: 0, inwork: 0, waiting: 0, done: 0, cancelled: 0 }; for (var i = 0; i < state.requests.length; i++) { var r = state.requests[i]; + if (state.priorityFilter && r.priority !== state.priorityFilter) continue; if (q) { if (String(r.equipment).toLowerCase().indexOf(q) === -1) continue; } @@ -227,13 +242,12 @@ function renderTable() { for (var i = 0; i < vis.length; i++) { var r = vis[i]; - var prio = PRIORITIES[r.priority] || { label: "—" }; h += '' + '' + esc(r.id) + "" + '' + esc(r.equipment) + '' + '' + esc(r.address) + "" + "" + statusPill(r.status) + "" + - '' + esc(prio.label) + "" + + '' + prioChip(r.priority) + "" + '' + esc(fmtDate(r.created)) + "" + '' + esc(r.reporter) + "" + ""; @@ -244,9 +258,22 @@ function renderTable() { if (el) el.textContent = vis.length + " из " + state.requests.length; } +function renderPrioSelect() { + var sel = $("prioSelect"); + if (!sel) return; + var h = ""; + for (var i = 0; i < PRIORITY_OPTIONS.length; i++) { + var o = PRIORITY_OPTIONS[i]; + var active = state.priorityFilter === o.key ? "1" : "0"; + h += '"; + } + sel.innerHTML = h; +} + function renderAll() { renderKpis(); renderStatusSeg(); + renderPrioSelect(); renderTable(); } @@ -547,6 +574,11 @@ S.onSearch = function (v) { renderAll(); }; +S.setPrio = function (v) { + state.priorityFilter = v; + renderAll(); +}; + S.toggleSidebar = function () { var sb = $("sidebar"); if (sb) sb.setAttribute("data-open", sb.getAttribute("data-open") === "true" ? "false" : "true"); diff --git a/style.css b/style.css index 705bbee..7b004d8 100644 --- a/style.css +++ b/style.css @@ -9,6 +9,17 @@ flex-wrap: wrap; } +/* Выборка приоритета в тулбаре */ +.j-filters { + display: flex; + align-items: center; + gap: var(--kt-ai-space-3); +} +.j-filters-label { + font-size: var(--kt-ai-text-xs); + color: var(--kt-ai-fg-muted); +} + /* Заголовок экрана */ .j-page-head { display: flex;