订阅和规则组支持从文件导入,配置页与表单一批打磨
文件导入走两步:内容先经新端点 POST /api/provider-files 写进内核工作 目录的 providers/ 下(路径白名单校验,只认两个路径助手生成的形状), 成了再写 file 类型的声明——顺序反了内核重载会去读不存在的文件。 file 类型没有地址和自动更新(内核靠文件监视跟进),详情页照此展示, 编辑按钮禁用。ini 导入的取文件按钮换成同一个拖放模块。 订阅的更新间隔改成开关语义:内核只在 interval > 0 时才起定时拉取 (component/resource/fetcher.go:226-228),关掉开关就是不写这个键。 配置页加「更新所有订阅」,详情的「立刻更新」改叫「更新订阅」。 规则表从零开始写入时自动垫上内网直连——保留地址不直连的话第一条 代理规则一生效,访问局域网的流量就全进了代理;按钮改成「补全内网 直连」,只在有缺口时出现。 所有表单对话框点遮罩关闭;失败横幅右侧加关闭按钮。
This commit is contained in:
@@ -49,9 +49,16 @@ function delayClass(ms: number | null): string {
|
||||
<span class="name">{{ subscription.name }}</span>
|
||||
<div class="acts">
|
||||
<button type="button" :disabled="!online || refreshing" @click="emit('refresh')">
|
||||
<IconRefresh /> {{ refreshing ? '更新中' : '立刻更新' }}
|
||||
<IconRefresh /> {{ refreshing ? '更新中' : '更新订阅' }}
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
:disabled="saving || subscription.type === 'file'"
|
||||
:title="subscription.type === 'file' ? '文件导入的订阅没有可编辑的字段' : undefined"
|
||||
@click="emit('edit')"
|
||||
>
|
||||
<IconEdit /> 编辑
|
||||
</button>
|
||||
<button type="button" :disabled="saving" @click="emit('edit')"><IconEdit /> 编辑</button>
|
||||
<button type="button" class="danger" :disabled="saving" @click="emit('remove')">
|
||||
<IconDelete /> 删除
|
||||
</button>
|
||||
@@ -59,12 +66,18 @@ function delayClass(ms: number | null): string {
|
||||
</div>
|
||||
|
||||
<dl class="facts">
|
||||
<dt>地址</dt>
|
||||
<dd class="mono url">{{ subscription.url }}</dd>
|
||||
<dt>更新间隔</dt>
|
||||
<dd class="mono">
|
||||
{{ subscription.interval !== null ? `${subscription.interval} 秒` : '未设置' }}
|
||||
</dd>
|
||||
<template v-if="subscription.type === 'file'">
|
||||
<dt>文件</dt>
|
||||
<dd class="mono url">{{ subscription.path ?? '—' }}</dd>
|
||||
</template>
|
||||
<template v-else>
|
||||
<dt>地址</dt>
|
||||
<dd class="mono url">{{ subscription.url }}</dd>
|
||||
<dt>自动更新</dt>
|
||||
<dd class="mono">
|
||||
{{ subscription.interval !== null ? `每 ${subscription.interval} 秒` : '已关闭' }}
|
||||
</dd>
|
||||
</template>
|
||||
<dt>健康检查</dt>
|
||||
<dd class="mono">
|
||||
<template v-if="subscription.healthCheck">
|
||||
|
||||
Reference in New Issue
Block a user