2023-02-13 12:52:00 +08:00

192 lines
8.3 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% import 'macro/form.html' as FORM %}
<div class="container-xl">
<!-- Page title -->
<div class="page-header d-print-none">
<div class="row align-items-center">
<div class="col">
<h2 class="page-title">
索引器
</h2>
</div>
</div>
</div>
</div>
<!-- 业务页面代码 -->
<div class="page-body">
<div class="container-xl">
<div class="d-grid gap-3 grid-normal-card">
<a class="card card-link-pop p-0" href="#" data-bs-toggle="modal" data-bs-target="#modal-builtin">
<div class="card-cover card-cover-blurred text-center" style="background-color: #2E72B9">
<span class="avatar avatar-xl avatar-thumb avatar-rounded"
style="background-image: url(../static/img/indexer.jpg)">
</span>
</div>
<div class="card-body text-center">
<div class="card-title mb-1">内建索引器</div>
<div class="text-muted">{% if Config.pt.search_indexer == "builtin" %}<span class="badge bg-green"
title="已开启"></span>
正在使用{% endif %}</div>
</div>
</a>
{% for Type, Indexer in IndexerConf.items() %}
<a class="card card-link-pop p-0" href="#" data-bs-toggle="modal" data-bs-target="#modal-{{ Type }}">
<div class="card-cover card-cover-blurred text-center {{ Indexer.background }}">
<span class="avatar avatar-xl avatar-thumb avatar-rounded"
style="background-image: url('{{ Indexer.img_url }}')">
</span>
</div>
<div class="card-body text-center">
<div class="card-title mb-1">{{ Indexer.name }}</div>
<div class="text-muted">{% if Config.pt.search_indexer == Type %}<span class="badge bg-green"
title="已开启"></span>
正在使用{% endif %}</div>
</div>
</a>
{% endfor %}
</div>
</div>
</div>
{% for Type, Indexer in IndexerConf.items() %}
<div class="modal modal-blur fade" id="modal-{{ Type }}" tabindex="-1" role="dialog" aria-hidden="true"
data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-lg modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">{{ Indexer.name }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
{{ FORM.gen_form_config_elements(Type, Config, Indexer.config) }}
</div>
<div class="modal-footer">
<button onclick="test_indexer_config('{{ Type }}')" id="{{ Type }}_test_btn" class="btn me-auto">
测试
</button>
<button onclick="save_indexer_config('{{ Type }}')" id="{{ Type }}_save_btn" class="btn btn-primary">
确定
</button>
</div>
</div>
</div>
</div>
{% endfor %}
<div class="modal modal-blur fade" id="modal-builtin" tabindex="-1" role="dialog" aria-hidden="true"
data-bs-backdrop="static" data-bs-keyboard="false">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">内建索引器</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="row">
<div class="col">
<div class="mb-3">
<div class="btn-list">
<label class="form-label required">私有站点 <span class="form-help"
title="当前可以使用的私有站点清单内建索引器支持私有站点的先决条件1、在站点维护中正确配置站点地址和Cookie2、站点己被支持"
data-bs-toggle="tooltip">?</span></label>
<a href="javascript:void(0)" class="ms-auto" onclick="select_btn_SelectALL(this, 'indexer_sites_private')">全选</a>
</div>
<div class="form-selectgroup">
{% if PrivateCount > 0 %}
{% for Indexer in Indexers %}
{% if not Indexer.public %}
<label class="form-selectgroup-item">
<input type="checkbox" name="indexer_sites_private" value="{{ Indexer.id }}"
class="form-selectgroup-input"
{% if Config.pt.indexer_sites and Indexer.id in Config.pt.indexer_sites %}checked{% endif %}>
<span class="form-selectgroup-label">{{ Indexer.name }}</span>
</label>
{% endif %}
{% endfor %}
{% else %}
<label class="form-selectgroup-item">
<span class="form-selectgroup-label"></span>
</label>
{% endif %}
</div>
</div>
{% if PublicCount > 0 %}
<div class="mb-3">
<div class="btn-list">
<label class="form-label">公开站点 <span class="form-help"
title="当前可用的公开站点,公开站点只要被内建索引器支持了就会在这里显示;部分站点需要有浏览器内核环境才能使用;同时大部分公开站点都需要网络代理才能访问"
data-bs-toggle="tooltip">?</span></label>
<a href="javascript:void(0)" class="ms-auto" onclick="select_btn_SelectALL(this, 'indexer_sites_public')">全选</a>
</div>
<div class="form-selectgroup">
{% for Indexer in Indexers %}
{% if Indexer.public %}
<label class="form-selectgroup-item">
<input type="checkbox" name="indexer_sites_public" value="{{ Indexer.id }}"
class="form-selectgroup-input"
{% if Config.pt.indexer_sites and Indexer.id in Config.pt.indexer_sites %}checked{% endif %}>
<span class="form-selectgroup-label">{{ Indexer.name }}</span>
</label>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div class="modal-footer">
<button onclick="save_indexer_config('builtin')" id="builtin_save_btn" class="btn btn-primary">确定</button>
</div>
</div>
</div>
</div>
<script type="text/javascript">
// 当前处理的类型
var currType = "";
// 保存配置
function save_config(type, func, test) {
currType = type;
let params = {};
if (type !== "builtin") {
params = input_select_GetVal(`modal-${type}`);
$(`#modal-${type} textarea`).each(function () {
const key = $(this).attr("id");
params[key] = $(this).val();
});
} else {
let sites = select_GetSelectedVAL("^indexer_sites");
params['pt.indexer_sites'] = sites
}
params['test'] = test || false;
params['pt.search_indexer'] = type;
ajax_post("update_config", params, func);
}
//保存配置、关闭和刷新页面
function save_indexer_config(type) {
$(`#modal-${type}`).modal('hide');
save_config(type, function (ret) {
window_history_refresh();
});
}
//保存配置和测试配置
function test_indexer_config(type) {
$(`#${type}_test_btn`).text("测试中...").attr("disabled", true);
save_config(type, function (ret) {
let command;
{% for Type, Indexer in IndexerConf.items() %}
if (currType === "{{ Type }}") {
command = "{{ Indexer.test_command }}";
}
{% endfor %}
ajax_post("test_connection", {"command": command}, function (ret) {
if (ret.code === 0) {
$(`#${currType}_test_btn`).text("测试成功").attr("disabled", false);
} else {
$(`#${currType}_test_btn`).text("测试失败!").attr("disabled", false);
}
});
}, true);
}
</script>