前端更新: 支持报警规则绑定触发任务

This commit is contained in:
Akkia
2022-09-14 11:32:15 +08:00
parent 13d1be59b6
commit 93e1d58bcb
7 changed files with 140 additions and 1 deletions

View File

@@ -70,6 +70,7 @@ function showFormModal(modelSelector, formID, URL, getData) {
item.name === "RequestType" ||
item.name === "RequestMethod" ||
item.name === "TriggerMode" ||
item.name === "TaskType" ||
item.name === "DisplayIndex" ||
item.name === "Type" ||
item.name === "Cover" ||
@@ -90,6 +91,16 @@ function showFormModal(modelSelector, formID, URL, getData) {
}
}
if (item.name.endsWith("TasksRaw")) {
if (item.value.length > 2) {
obj[item.name] = JSON.stringify(
[...item.value.matchAll(/\d+/gm)].map((k) =>
parseInt(k[0])
)
);
}
}
return obj;
}, {});
$.post(URL, JSON.stringify(data))
@@ -138,6 +149,44 @@ function addOrEditAlertRule(rule) {
} else {
modal.find(".ui.rule-enable.checkbox").checkbox("set unchecked");
}
modal.find("a.ui.label.visible").each((i, el) => {
el.remove();
});
var failTriggerTasks;
var recoverTriggerTasks;
if (rule) {
failTriggerTasks = rule.FailTriggerTasksRaw;
recoverTriggerTasks = rule.RecoverTriggerTasksRaw;
const failTriggerTasksList = JSON.parse(failTriggerTasks || "[]");
const recoverTriggerTasksList = JSON.parse(recoverTriggerTasks || "[]");
const node1 = modal.find("i.dropdown.icon.1");
const node2 = modal.find("i.dropdown.icon.2");
for (let i = 0; i < failTriggerTasksList.length; i++) {
node1.after(
'<a class="ui label transition visible" data-value="' +
failTriggerTasksList[i] +
'" style="display: inline-block !important;">ID:' +
failTriggerTasksList[i] +
'<i class="delete icon"></i></a>'
);
}
for (let i = 0; i < recoverTriggerTasksList.length; i++) {
node2.after(
'<a class="ui label transition visible" data-value="' +
recoverTriggerTasksList[i] +
'" style="display: inline-block !important;">ID:' +
recoverTriggerTasksList[i] +
'<i class="delete icon"></i></a>'
);
}
}
modal
.find("input[name=FailTriggerTasksRaw]")
.val(rule ? "[]," + failTriggerTasks.substr(1, failTriggerTasks.length - 2) : "[]");
modal
.find("input[name=RecoverTriggerTasksRaw]")
.val(rule ? "[]," + recoverTriggerTasks.substr(1, recoverTriggerTasks.length - 2) : "[]");
showFormModal(".rule.modal", "#ruleForm", "/api/alert-rule");
}
@@ -298,6 +347,8 @@ function addOrEditCron(cron) {
);
modal.find("input[name=ID]").val(cron ? cron.ID : null);
modal.find("input[name=Name]").val(cron ? cron.Name : null);
modal.find("select[name=TaskType]").val(cron ? cron.TaskType : 0);
modal.find("select[name=Cover]").val(cron ? cron.Cover : 0);
modal.find("input[name=NotificationTag]").val(cron ? cron.NotificationTag : null);
modal.find("input[name=Scheduler]").val(cron ? cron.Scheduler : null);
modal.find("a.ui.label.visible").each((i, el) => {
@@ -435,3 +486,15 @@ $(document).ready(() => {
});
} catch (error) { }
});
$(document).ready(() => {
try {
$(".ui.tasks.search.dropdown").dropdown({
clearable: true,
apiSettings: {
url: "/api/search-tasks?word={query}",
cache: false,
},
});
} catch (error) { }
});