mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-03-23 03:21:50 +00:00
服务监控支持触发任务执行
This commit is contained in:
3
resource/l10n/zh-CN.toml
vendored
3
resource/l10n/zh-CN.toml
vendored
@@ -184,6 +184,9 @@ other = "始终触发"
|
||||
[ModeOnetimeTrigger]
|
||||
other = "单次触发"
|
||||
|
||||
[EnableTriggerTask]
|
||||
other = "启用触发任务"
|
||||
|
||||
[FailTriggerTasks]
|
||||
other = "故障时触发任务"
|
||||
|
||||
|
||||
@@ -330,22 +330,61 @@ function addOrEditMonitor(monitor) {
|
||||
modal.find("a.ui.label.visible").each((i, el) => {
|
||||
el.remove();
|
||||
});
|
||||
if (monitor && monitor.EnableTriggerTask) {
|
||||
modal.find(".ui.nb-EnableTriggerTask.checkbox").checkbox("set checked");
|
||||
} else {
|
||||
modal.find(".ui.nb-EnableTriggerTask.checkbox").checkbox("set unchecked");
|
||||
}
|
||||
var servers;
|
||||
var failTriggerTasks;
|
||||
var recoverTriggerTasks;
|
||||
if (monitor) {
|
||||
servers = monitor.SkipServersRaw;
|
||||
const serverList = JSON.parse(servers || "[]");
|
||||
const node = modal.find("i.dropdown.icon");
|
||||
const node = modal.find("i.dropdown.icon.specificServer");
|
||||
for (let i = 0; i < serverList.length; i++) {
|
||||
node.after(
|
||||
'<a class="ui label transition visible" data-value="' +
|
||||
serverList[i] +
|
||||
'" style="display: inline-block !important;">ID:' +
|
||||
serverList[i] +
|
||||
'<i class="delete icon"></i></a>'
|
||||
'<a class="ui label transition visible" data-value="' +
|
||||
serverList[i] +
|
||||
'" style="display: inline-block !important;">ID:' +
|
||||
serverList[i] +
|
||||
'<i class="delete icon"></i></a>'
|
||||
);
|
||||
}
|
||||
|
||||
failTriggerTasks = monitor.FailTriggerTasksRaw;
|
||||
recoverTriggerTasks = monitor.RecoverTriggerTasksRaw;
|
||||
const failTriggerTasksList = JSON.parse(failTriggerTasks || "[]");
|
||||
const recoverTriggerTasksList = JSON.parse(recoverTriggerTasks || "[]");
|
||||
const node1 = modal.find("i.dropdown.icon.failTask");
|
||||
const node2 = modal.find("i.dropdown.icon.recoverTask");
|
||||
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
|
||||
modal
|
||||
.find("input[name=FailTriggerTasksRaw]")
|
||||
.val(monitor ? "[]," + failTriggerTasks.substr(1, failTriggerTasks.length - 2) : "[]");
|
||||
modal
|
||||
.find("input[name=RecoverTriggerTasksRaw]")
|
||||
.val(monitor ? "[]," + recoverTriggerTasks.substr(1, recoverTriggerTasks.length - 2) : "[]");
|
||||
|
||||
modal
|
||||
.find("input[name=SkipServersRaw]")
|
||||
.val(monitor ? "[]," + servers.substr(1, servers.length - 2) : "[]");
|
||||
showFormModal(".monitor.modal", "#monitorForm", "/api/monitor");
|
||||
|
||||
29
resource/template/component/monitor.html
vendored
29
resource/template/component/monitor.html
vendored
@@ -39,7 +39,7 @@
|
||||
<label>{{tr "SpecificServers"}}</label>
|
||||
<div class="ui fluid multiple servers search selection dropdown">
|
||||
<input type="hidden" name="SkipServersRaw" />
|
||||
<i class="dropdown icon"></i>
|
||||
<i class="dropdown icon specificServer"></i>
|
||||
<div class="default text">{{tr "EnterIdAndNameToSearch"}}</div>
|
||||
<div class="menu"></div>
|
||||
</div>
|
||||
@@ -68,6 +68,33 @@
|
||||
<label>{{tr "EnableLatencyNotification"}}</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<div class="ui nb-EnableTriggerTask checkbox">
|
||||
<input name="EnableTriggerTask" type="checkbox" tabindex="0" class="hidden" />
|
||||
<label>{{tr "EnableTriggerTask"}}</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label>{{tr "FailTriggerTasks"}}</label>
|
||||
<div class="ui fluid multiple tasks search selection dropdown">
|
||||
<input type="hidden" name="FailTriggerTasksRaw">
|
||||
<i class="dropdown icon failTask"></i>
|
||||
<div class="default text">{{tr "EnterIdAndNameToSearch"}}</div>
|
||||
<div class="menu"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>{{tr "RecoverTriggerTasks"}}</label>
|
||||
<div class="ui fluid multiple tasks search selection dropdown">
|
||||
<input type="hidden" name="RecoverTriggerTasksRaw">
|
||||
<i class="dropdown icon recoverTask"></i>
|
||||
<div class="default text">{{tr "EnterIdAndNameToSearch"}}</div>
|
||||
<div class="menu"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<div class="ui warning message">
|
||||
<p>
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
<th>{{tr "NotificationMethodGroup"}}</th>
|
||||
<th>{{tr "FailureNotification"}}</th>
|
||||
<th>{{tr "LatencyNotification"}}</th>
|
||||
<th>{{tr "EnableTriggerTask"}}</th>
|
||||
<th>{{tr "FailTriggerTasks"}}</th>
|
||||
<th>{{tr "RecoverTriggerTasks"}}</th>
|
||||
<th>{{tr "Administration"}}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -41,6 +44,9 @@
|
||||
<td>{{$monitor.NotificationTag}}</td>
|
||||
<td>{{$monitor.Notify}}</td>
|
||||
<td>{{$monitor.LatencyNotify}}</td>
|
||||
<td>{{$monitor.EnableTriggerTask}}</td>
|
||||
<td>{{$monitor.FailTriggerTasksRaw}}</td>
|
||||
<td>{{$monitor.RecoverTriggerTasksRaw}}</td>
|
||||
<td>
|
||||
<div class="ui mini icon buttons">
|
||||
<button class="ui button" onclick="addOrEditMonitor({{$monitor}})">
|
||||
|
||||
Reference in New Issue
Block a user