mirror of
https://github.com/netcccyun/dnsmgr.git
synced 2026-05-02 11:56:27 +02:00
1.修复智能解析页面的搜索。2.修复Cloudflare自定义主机名的分页,去掉多余代码 (#447)
* Update RewriteRule in .htaccess for cleaner routing 修复Apache环境下路由重写规则 废弃旧版 index.php/$1 写法,改用兼容新版PHP的PATH_INFO传参方式 解决访问时报错 No input file specified. 问题 * Add files via upload 1.添加DCV 委派一键添加CNAME 2.添加证书验证方法和最低 TLS 版本 3.添加批量添加 修改 删除 4.修复华为云一键txt解析失败(我没其他dns, 其他的需关注) 5.Cloudflare增强改Cloudflare自定义主机名 * 1.添加快速解析 2.Cloudflare自定义主机名添加搜索功能 * Add files via upload 1.Cloudflare自定义主机名自动获取默认线路(支持所有dns,华为云退回之前) 2.优化手机上显示问题 3.一键添加 DCV 委派支持选择要写入的解析域名 * 优化手机显示 * 添加1. 批量 DCV 委派 2. 批量主机名 TXT 验证 3. 批量证书 TXT 验证 4. 批量刷新验证 1. 批量 DCV 委派 2. 批量主机名 TXT 验证 3. 批量证书 TXT 验证 4. 批量刷新验证 * 快速解析改名智能解析,添加已有解析记录和智能批量添加 * 快速解析改名智能解析,添加已有解析记录和智能批量添加 * 由于之前复制保存的,代码有些差异 * 修复已有解析记录的备注功能 * 备注按dns显示 * 修复记录值过长无法复制,优化显示 * 优化显示 * 1.修复智能解析页面的搜索。2.修复Cloudflare自定义主机名的分页,去掉多余代码
This commit is contained in:
@@ -182,25 +182,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal" id="modal-batch-dcv-target-picker" role="dialog" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content animated flipInX">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal"><span>×</span></button>
|
||||
<h4 class="modal-title">选择解析服务商 - 批量 DCV 委派</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert alert-warning" style="margin-bottom:12px;">检测到多个可用解析域名,请确认要写入哪个服务商。</div>
|
||||
<div id="batchDcvTargetPickerList"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-white" data-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-primary" onclick="confirmBatchDcvTargetSelection()">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal" id="modal-batch-hostname-txt" role="dialog" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content animated flipInX">
|
||||
@@ -443,6 +424,11 @@ $(document).ready(function(){
|
||||
toolbar: '#toolbar',
|
||||
classes: 'table table-striped table-hover table-bordered',
|
||||
uniqueId: 'id',
|
||||
sidePagination: 'client',
|
||||
pagination: true,
|
||||
pageSize: 20,
|
||||
pageList: [10, 20, 50, 100],
|
||||
queryParams: function(params){ return {}; },
|
||||
responseHandler: hostnameResponseHandler,
|
||||
columns: [
|
||||
{field: 'checkbox', checkbox: true, width: '50px'},
|
||||
@@ -550,8 +536,6 @@ function confirmBatchDelete(){
|
||||
}
|
||||
|
||||
var batchDcvHostnamesData = [];
|
||||
var batchDcvSelectedTarget = null;
|
||||
var batchDcvCnameValue = '';
|
||||
|
||||
function batchDcvDelegation(){
|
||||
var selectedRows = $("#listTable").bootstrapTable('getSelections');
|
||||
|
||||
@@ -1611,25 +1611,89 @@ function changePageSize(){
|
||||
}
|
||||
|
||||
function searchRecords(){
|
||||
var keyword = $('#searchKeyword').val().toLowerCase();
|
||||
|
||||
var keyword = $('#searchKeyword').val().trim();
|
||||
var domainId = $('#domainSelect').val();
|
||||
|
||||
if(!domainId){
|
||||
layer.msg('请先选择域名', {icon: 0, time: 1500});
|
||||
return;
|
||||
}
|
||||
|
||||
if(!keyword){
|
||||
filteredRecords = allRecords;
|
||||
}else{
|
||||
filteredRecords = allRecords.filter(function(row){
|
||||
// 无搜索词时,恢复正常加载
|
||||
currentPage = 1;
|
||||
loadRecordList();
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取所有记录进行搜索(分页获取所有数据)
|
||||
var ii = layer.load(2);
|
||||
var allData = [];
|
||||
var offset = 0;
|
||||
var limit = 100; // 每页100条
|
||||
var hasMore = true;
|
||||
|
||||
// 递归获取所有数据
|
||||
function fetchAllRecords(){
|
||||
if(!hasMore){
|
||||
// 所有数据已获取,开始搜索
|
||||
performSearch();
|
||||
return;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
url : '/record/data/' + domainId,
|
||||
data : {offset: offset, limit: limit},
|
||||
dataType : 'json',
|
||||
success : function(data) {
|
||||
var rows = data.rows || [];
|
||||
allData = allData.concat(rows);
|
||||
|
||||
if(rows.length < limit){
|
||||
hasMore = false; // 已获取完所有数据
|
||||
}
|
||||
|
||||
offset += limit;
|
||||
fetchAllRecords(); // 递归获取下一页
|
||||
},
|
||||
error : function(xhr, status, error) {
|
||||
layer.close(ii);
|
||||
layer.alert('获取数据失败:' + (error || '网络错误'), {icon: 2});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 执行搜索
|
||||
function performSearch(){
|
||||
layer.close(ii);
|
||||
|
||||
// 客户端搜索
|
||||
filteredRecords = allData.filter(function(row){
|
||||
var name = (row.Name || '').toLowerCase();
|
||||
var value = Array.isArray(row.Value) ? row.Value.join(', ') : (row.Value || '').toLowerCase();
|
||||
var remark = (row.Remark || '').toLowerCase();
|
||||
return name.indexOf(keyword) > -1 || value.indexOf(keyword) > -1 || remark.indexOf(keyword) > -1;
|
||||
var line = (row.LineName || '').toLowerCase();
|
||||
var kw = keyword.toLowerCase();
|
||||
return name.indexOf(kw) > -1 || value.indexOf(kw) > -1 || remark.indexOf(kw) > -1 || line.indexOf(kw) > -1;
|
||||
});
|
||||
}
|
||||
|
||||
allRecords = allData;
|
||||
totalRecords = filteredRecords.length;
|
||||
currentPage = 1;
|
||||
|
||||
if(filteredRecords.length > 0){
|
||||
renderRecordList(filteredRecords);
|
||||
}else{
|
||||
$('#recordListBody').html('<tr><td colspan="9" class="no-records"><i class="fa fa-search fa-3x"></i><br>未找到匹配的记录</td></tr>');
|
||||
$('#selectedCount').text('');
|
||||
if(filteredRecords.length > 0){
|
||||
renderRecordList(filteredRecords);
|
||||
}else{
|
||||
$('#recordListBody').html('<tr><td colspan="9" class="no-records"><i class="fa fa-search fa-3x"></i><br>未找到匹配的记录</td></tr>');
|
||||
$('#selectedCount').text('');
|
||||
$('#paginationWrapper').hide();
|
||||
}
|
||||
renderPagination();
|
||||
}
|
||||
|
||||
// 开始获取数据
|
||||
fetchAllRecords();
|
||||
}
|
||||
|
||||
function toggleCheckAll(obj){
|
||||
|
||||
Reference in New Issue
Block a user