<!DOCTYPE html>
|
<html>
|
<head>
|
<div th:replace="common/header.html"></div>
|
|
|
</head>
|
<body th:class="${application.sidebarCollapse}">
|
<div th:replace="common/chart.html"></div>
|
|
<div class="wrapper">
|
|
<div th:replace="common/navbar.html"></div>
|
|
<div th:replace="common/aside.html"></div>
|
|
<!-- Content Wrapper. Contains page content -->
|
<div class="content-wrapper" style="font-size:0.90rem">
|
<!-- Content Header (Page header) -->
|
<section class="content-header" style="height:38px">
|
<div class="container-fluid">
|
<div class="row mb-2" style="margin-top: -7px;">
|
<div class="col-sm-6"></div>
|
<div class="col-sm-6">
|
<ol class="breadcrumb float-sm-right">
|
<li class="breadcrumb-item"><a href="javascript:history.back()">返回上级</a></li>
|
</ol>
|
</div>
|
</div>
|
</div><!-- /.container-fluid -->
|
</section>
|
|
<!-- Main content -->
|
<section class="content">
|
<div class="container-fluid">
|
<div class="row">
|
|
<div class="col-md-12">
|
<div class="card">
|
<div class="card-header">
|
<h3 class="card-title"><i class="nav-icon fa fa-cloud"></i> PING监测列表</h3>
|
<div class=" float-sm-right">
|
<!-- SEARCH FORM -->
|
<form class="form-inline ml-3" th:action="@{'/dceInfo/list'}">
|
<th:block th:if="${session.LOGIN_KEY.role != 'guest'}">
|
<button type="button" title="一键导入所有监控主机到此处,发现已有的相同IP会自动跳过" th:onclick="importHosts()" class="btn btn-primary btn-sm" style="margin-right:5px;">导入监控主机</button>
|
</th:block>
|
<button type="button" onclick="searchByOnline('')" class="btn btn-primary btn-sm" style="margin-right:5px;">全部</button>
|
<button type="button" onclick="searchByOnline('200')" class="btn btn-success btn-sm" style="margin-right:5px;">在线</button>
|
<button type="button" onclick="searchByOnline('500')" class="btn bg-danger btn-sm" style="margin-right:5px;">已下线</button>
|
<th:block th:if="${session.LOGIN_KEY.role != 'guest'}">
|
<button type="button" onclick="delChecks('/dceInfo/del')" class="btn bg-danger btn-sm" style="margin-right:5px;">删除</button>
|
<th:block th:if="${application.hostGroup == 'true'}"><button type="button" th:onclick="showSetGroupId()" class="btn btn-primary btn-sm" style="margin-right:5px;">设置分组</button></th:block>
|
<button type="button" onclick="add()" class="btn btn-primary btn-sm" style="margin-right:5px;">添加</button>
|
</th:block>
|
<div class="input-group input-group-sm" th:if="${application.hostGroup == 'true'}"><select style="width:150px;margin-right:5px;" class="form-control" onchange="searchByGroupId()" name="groupId" id="groupId">
|
<option value="">选择分组</option>
|
<th:block th:each="item,iterStat : ${hostGroupList}">
|
<option th:value="${item.id}" th:text="${item.groupName}">Alabama</option>
|
</th:block>
|
</select></div>
|
<div th:replace="common/accountSelect.html"></div>
|
<div class="input-group input-group-sm">
|
<input class="form-control" id="hostname" name="hostname" autocomplete="off" th:value="${dceInfo.hostname}" type="text" placeholder="输入IP">
|
<div class="input-group-append">
|
<button class="btn btn-primary" type="submit">
|
<i class="fas fa-search"></i>
|
</button>
|
</div>
|
</div>
|
</form>
|
</div>
|
</div>
|
<!-- /.card-header -->
|
<div class="card-body">
|
<table class="table table-bordered table-hover">
|
<thead>
|
<tr>
|
<th style="width: 20px"> <input type="checkbox" value="" name="checkall" id="checkall"></th>
|
<th style="width: 60px">序号</th>
|
<th:block th:if="${dceInfo.orderBy == 'HOST_NAME'}">
|
<th:block th:if="${dceInfo.orderType == 'ASC'}">
|
<th style="cursor:pointer" onclick="searchByOrder('HOST_NAME','DESC')">IP<small class="text-success mr-1 float-right"><i class="fas fa-arrow-up" style="vertical-align:bottom;"></i> </small>
|
</th:block>
|
<th:block th:if="${dceInfo.orderType == 'DESC'}">
|
<th style="cursor:pointer" onclick="searchByOrder('HOST_NAME','ASC')">IP<small class="text-success mr-1 float-right"><i class="fas fa-arrow-down" style="color: #dc3545!important;vertical-align:bottom;"></i> </small>
|
</th:block>
|
</th:block>
|
<th:block th:if="${dceInfo.orderBy ne 'HOST_NAME'}">
|
<th style="cursor:pointer" onclick="searchByOrder('HOST_NAME','ASC')">IP<small class="text-success mr-1 float-right"><i class="fas fa-arrow-up" style="vertical-align:bottom;"></i><i class="fas fa-arrow-down" style="color: #dc3545!important;vertical-align:bottom;"></i></small>
|
</th:block>
|
</th>
|
|
<th:block th:if="${dceInfo.orderBy == 'RES_TIMES'}">
|
<th:block th:if="${dceInfo.orderType == 'ASC'}">
|
<th style="cursor:pointer" onclick="searchByOrder('RES_TIMES','DESC')">响应时间ms<small class="text-success mr-1 float-right"><i class="fas fa-arrow-up" style="vertical-align:bottom;"></i> </small>
|
</th:block>
|
<th:block th:if="${dceInfo.orderType == 'DESC'}">
|
<th style="cursor:pointer" onclick="searchByOrder('RES_TIMES','ASC')">响应时间ms<small class="text-success mr-1 float-right"><i class="fas fa-arrow-down" style="color: #dc3545!important;vertical-align:bottom;"></i> </small>
|
</th:block>
|
</th:block>
|
<th:block th:if="${dceInfo.orderBy ne 'RES_TIMES'}">
|
<th style="cursor:pointer" onclick="searchByOrder('RES_TIMES','ASC')">响应时间ms<small class="text-success mr-1 float-right"><i class="fas fa-arrow-up" style="vertical-align:bottom;"></i><i class="fas fa-arrow-down" style="color: #dc3545!important;vertical-align:bottom;"></i></small>
|
</th:block>
|
</th>
|
<th>备注</th>
|
<th>监控状态</th>
|
<th th:if="${application.showWarnCount == 'true'}" title="累积告警次数">告警次数</th>
|
<th title="若已下线,显示最后在线时间,但监控仍在继续">更新时间</th>
|
<th th:if="${application.hostGroup == 'true'}">分组</th>
|
<th th:if="${application.userInfoManage == 'true' && session.LOGIN_KEY.role == 'admin'}">账号</th>
|
<th>操作</th>
|
</tr>
|
</thead>
|
<tbody>
|
<th:block th:each="item,iterStat : ${page.list}">
|
<tr>
|
<td><input type="checkbox" th:value="${item.id}" name="todo2" th:id="${item.id}+'_check'"/></td>
|
<td th:text="${iterStat.index+1}">1</td>
|
<th:block th:if="${item.resTimes == -1}">
|
<td><span data-trigger="hover" data-container="body" data-toggle="popover" data-placement="top" th:data-content="${item.hostname}+' PING超时或失败,可能已下线'" class="badge bg-danger" th:text="${#strings.abbreviate(item.hostname,20)}"></span>
|
</th:block>
|
<th:block th:if="${item.resTimes > -1}">
|
<td><span data-trigger="hover" data-container="body" data-toggle="popover" data-placement="top" th:data-content="${item.hostname}" th:text="${#strings.abbreviate(item.hostname,20)}"></span>
|
</th:block>
|
<td>
|
<th:block th:if="${item.resTimes >= 500}">
|
<span class="badge bg-danger" th:text="${item.resTimes}"></span>
|
</th:block>
|
<th:block th:if="${item.resTimes < 500 && item.resTimes >= 100 }">
|
<span class="badge bg-warning" th:text="${item.resTimes}"></span>
|
</th:block>
|
<th:block th:if="${item.resTimes < 100 }">
|
<span class="badge bg-primary" th:text="${item.resTimes}"></span>
|
</th:block>
|
</td>
|
<td th:text="${item.remark}">Update software</td>
|
<td>
|
<th:block th:if="${item.active == '1'}">
|
<span class="badge bg-primary">监控中</span>
|
</th:block>
|
<th:block th:if="${item.active == '2'}">
|
<span class="badge bg-danger">已停止</span>
|
</th:block>
|
</td>
|
<td th:if="${application.showWarnCount == 'true'}"><span style="cursor:pointer;color:#007bff;font-weight:bold" th:onclick="goHrefLogInfo([[${item.warnQueryWd}]])" th:text="${item.warnCount}"></span></td>
|
<td th:text="${#dates.format(item.createTime,'yyyy-MM-dd HH:mm:ss')}">Update software</td>
|
<td th:text="${item.groupId}" th:if="${application.hostGroup == 'true'}"></td>
|
<th th:text="${item.account}" th:if="${application.userInfoManage == 'true' && session.LOGIN_KEY.role == 'admin'}"></th>
|
<td>
|
<th:block th:if="${session.LOGIN_KEY.role != 'guest'}">
|
<button type="button" th:onclick="del([[${item.id}]])" class="btn bg-gradient-danger btn-sm">删除</button>
|
<button type="button" th:onclick="edit([[${item.id}]])" class="btn bg-gradient-primary btn-sm">编辑</button>
|
</th:block>
|
<button type="button" th:onclick="view([[${item.id}]])" class="btn bg-gradient-primary btn-sm">图表</button></td>
|
</tr>
|
</th:block>
|
|
</tbody>
|
</table>
|
</div>
|
<!-- /.card-body -->
|
<div th:replace="common/page.html"></div>
|
</div>
|
<!-- /.card -->
|
|
|
</div>
|
|
</div>
|
</div>
|
</section>
|
</div>
|
|
|
<div class="modal fade" id="modal-default3">
|
<div class="modal-dialog">
|
<form method="post" id="form4" th:action="@{'/dceInfo/saveGroupId'}">
|
<div class="modal-content" style="font-size:0.90rem">
|
<div class="modal-header">
|
<h4 class="modal-title">设置分组<span class="text-muted">(在系统管理中维护分组)</span></h4>
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
<span aria-hidden="true">×</span>
|
</button>
|
</div>
|
<div class="modal-body">
|
<p>
|
<input type="hidden" id="id3" name="ids"/>
|
<select style="width:200px" class="form-control" name="groupId">
|
<option value="">请选择</option>
|
<th:block th:each="item,iterStat : ${hostGroupList}">
|
<option th:value="${item.id}" th:text="${item.groupName}">Alabama</option>
|
</th:block>
|
</select>
|
</p>
|
</div>
|
<div class="modal-footer justify-content-between">
|
<button type="button" class="btn btn-default btn-sm" data-dismiss="modal">关闭</button>
|
<button type="button" onclick="ajaxSaveGroupId()" class="btn btn-primary btn-sm">保存</button>
|
</div>
|
</div>
|
</form>
|
<!-- /.modal-content -->
|
</div>
|
<!-- /.modal-dialog -->
|
</div>
|
|
<div th:replace="common/footer.html"></div>
|
<script th:src="@{'/static/js/jQuery/jquery.form.min.js'}" type="text/javascript" charset="utf-8"></script>
|
|
</div>
|
<!-- ./wrapper -->
|
|
<script th:src="@{'/static/js/dce.js?v=3.3.9'}"></script>
|
<script th:inline="javascript">
|
$(document).ready(function(){
|
$("#groupId").val([[${dceInfo.groupId}]]);
|
$("#account").val([[${dceInfo.account}]]);
|
});
|
|
var msg = [[${msg}]];
|
if(msg!='' && msg!=null){
|
toastr.info(msg);
|
}
|
</script>
|
|
</body>
|
</html>
|