release(secrets-mcp): 0.5.19 — 条目列表文件夹列与筛选重置文案;偶数行名称列斑马纹;文档同步 Web 列说明
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "secrets-mcp"
|
||||
version = "0.5.18"
|
||||
version = "0.5.19"
|
||||
edition.workspace = true
|
||||
|
||||
[[bin]]
|
||||
|
||||
@@ -145,12 +145,13 @@
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
min-width: 1100px;
|
||||
min-width: 1240px;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
table-layout: fixed;
|
||||
}
|
||||
col[data-col="name"] { width: 220px; }
|
||||
col[data-col="folder"] { width: 140px; }
|
||||
col[data-col="type"] { width: 120px; }
|
||||
col[data-col="notes"] { width: 320px; }
|
||||
col[data-col="tags"] { width: 220px; }
|
||||
@@ -172,8 +173,8 @@
|
||||
}
|
||||
td { font-size: 13px; line-height: 1.45; color: #c9d1d9; }
|
||||
tbody tr:nth-child(2n) td { background: rgba(255, 255, 255, 0.01); }
|
||||
tbody tr:nth-child(2n) td.col-name { background: #0f1620; }
|
||||
.mono { font-family: 'JetBrains Mono', monospace; }
|
||||
.col-folder { text-align: center; vertical-align: middle; }
|
||||
.col-type { text-align: center; vertical-align: middle; }
|
||||
.col-secrets { vertical-align: middle; }
|
||||
.col-secrets .secret-list { max-height: 120px; overflow: auto; }
|
||||
@@ -557,7 +558,7 @@
|
||||
</div>
|
||||
<div class="filter-actions">
|
||||
<button type="submit" class="btn-filter" data-i18n="filterSubmit">筛选</button>
|
||||
<a href="/entries" class="btn-clear" data-i18n="filterClear">清空</a>
|
||||
<a href="/entries" class="btn-clear" data-i18n="filterClear">重置</a>
|
||||
<div class="col-menu">
|
||||
<button type="button" class="btn-col-toggle" id="col-toggle-btn" data-i18n-title="columnSettings" title="显示列">▥</button>
|
||||
<div class="col-panel" id="col-panel"></div>
|
||||
@@ -572,6 +573,7 @@
|
||||
<table>
|
||||
<colgroup>
|
||||
<col data-col="name">
|
||||
<col data-col="folder">
|
||||
<col data-col="type">
|
||||
<col data-col="notes">
|
||||
<col data-col="tags">
|
||||
@@ -582,6 +584,7 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-col="name" data-i18n="colName">名称</th>
|
||||
<th data-col="folder" data-i18n="colFolder">文件夹</th>
|
||||
<th data-col="type" data-i18n="colType">类型</th>
|
||||
<th data-col="notes" data-i18n="colNotes">备注</th>
|
||||
<th data-col="tags" data-i18n="colTags">标签</th>
|
||||
@@ -594,6 +597,7 @@
|
||||
{% for entry in entries %}
|
||||
<tr data-entry-id="{{ entry.id }}" data-entry-folder="{{ entry.folder }}" data-entry-metadata="{{ entry.metadata_json }}" data-entry-secrets="{{ entry.secrets_json }}" data-entry-parents="{{ entry.parents_json }}" data-updated-at="{{ entry.updated_at_iso }}">
|
||||
<td class="col-name mono cell-name" data-col="name" data-label="名称">{{ entry.name }}</td>
|
||||
<td class="col-folder mono cell-folder" data-col="folder" data-label="文件夹">{{ entry.folder }}</td>
|
||||
<td class="col-type mono cell-type" data-col="type" data-label="类型">{{ entry.entry_type }}</td>
|
||||
<td class="col-notes cell-notes" data-col="notes" data-label="备注">{% if !entry.notes.is_empty() %}<div class="notes-scroll cell-notes-val">{{ entry.notes }}</div>{% endif %}</td>
|
||||
<td class="col-tags mono cell-tags-val" data-col="tags" data-label="标签">{{ entry.tags }}</td>
|
||||
@@ -714,9 +718,10 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
filterTypeLabel: '类型',
|
||||
filterTypeAll: '全部',
|
||||
filterSubmit: '筛选',
|
||||
filterClear: '清空',
|
||||
filterClear: '重置',
|
||||
emptyEntries: '暂无条目。',
|
||||
colName: '名称',
|
||||
colFolder: '文件夹',
|
||||
colType: '类型',
|
||||
colNotes: '备注',
|
||||
colTags: '标签',
|
||||
@@ -740,6 +745,7 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
modalCancel: '取消',
|
||||
modalSave: '保存',
|
||||
mobileLabelName: '名称',
|
||||
mobileLabelFolder: '文件夹',
|
||||
mobileLabelType: '类型',
|
||||
mobileLabelNotes: '备注',
|
||||
mobileLabelTags: '标签',
|
||||
@@ -798,9 +804,10 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
filterTypeLabel: '類型',
|
||||
filterTypeAll: '全部',
|
||||
filterSubmit: '篩選',
|
||||
filterClear: '清除',
|
||||
filterClear: '重置',
|
||||
emptyEntries: '暫無條目。',
|
||||
colName: '名稱',
|
||||
colFolder: '資料夾',
|
||||
colType: '類型',
|
||||
colNotes: '備註',
|
||||
colTags: '標籤',
|
||||
@@ -824,6 +831,7 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
modalCancel: '取消',
|
||||
modalSave: '儲存',
|
||||
mobileLabelName: '名稱',
|
||||
mobileLabelFolder: '資料夾',
|
||||
mobileLabelType: '類型',
|
||||
mobileLabelNotes: '備註',
|
||||
mobileLabelTags: '標籤',
|
||||
@@ -882,9 +890,10 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
filterTypeLabel: 'Type',
|
||||
filterTypeAll: 'All',
|
||||
filterSubmit: 'Filter',
|
||||
filterClear: 'Clear',
|
||||
filterClear: 'Reset',
|
||||
emptyEntries: 'No entries.',
|
||||
colName: 'Name',
|
||||
colFolder: 'Folder',
|
||||
colType: 'Type',
|
||||
colNotes: 'Notes',
|
||||
colTags: 'Tags',
|
||||
@@ -908,6 +917,7 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
modalCancel: 'Cancel',
|
||||
modalSave: 'Save',
|
||||
mobileLabelName: 'Name',
|
||||
mobileLabelFolder: 'Folder',
|
||||
mobileLabelType: 'Type',
|
||||
mobileLabelNotes: 'Notes',
|
||||
mobileLabelTags: 'Tags',
|
||||
@@ -962,6 +972,7 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
document.querySelectorAll('tr[data-entry-id]').forEach(function (tr) {
|
||||
var map = {
|
||||
'.col-name': 'mobileLabelName',
|
||||
'.col-folder': 'mobileLabelFolder',
|
||||
'.col-type': 'mobileLabelType',
|
||||
'.col-notes': 'mobileLabelNotes',
|
||||
'.col-tags': 'mobileLabelTags',
|
||||
@@ -977,9 +988,9 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
rebuildColPanel();
|
||||
};
|
||||
|
||||
var COL_ORDER = ['name', 'type', 'notes', 'tags', 'relations', 'secrets', 'actions'];
|
||||
var COL_ORDER = ['name', 'folder', 'type', 'notes', 'tags', 'relations', 'secrets', 'actions'];
|
||||
var COL_ALWAYS_ON = { name: true, actions: true };
|
||||
var COL_DEFAULTS = { name: true, type: true, notes: false, tags: true, relations: true, secrets: false, actions: true };
|
||||
var COL_DEFAULTS = { name: true, folder: true, type: true, notes: false, tags: true, relations: true, secrets: false, actions: true };
|
||||
var COL_STORAGE_KEY = 'entries_col_vis';
|
||||
var colPanel = document.getElementById('col-panel');
|
||||
var colToggleBtn = document.getElementById('col-toggle-btn');
|
||||
@@ -987,7 +998,16 @@ var SECRET_TYPE_OPTIONS = JSON.parse(document.getElementById('secret-type-option
|
||||
function getColVis() {
|
||||
try {
|
||||
var saved = localStorage.getItem(COL_STORAGE_KEY);
|
||||
if (saved) { var parsed = JSON.parse(saved); if (parsed && typeof parsed === 'object') return parsed; }
|
||||
if (saved) {
|
||||
var parsed = JSON.parse(saved);
|
||||
if (parsed && typeof parsed === 'object') {
|
||||
var merged = {};
|
||||
COL_ORDER.forEach(function (col) {
|
||||
merged[col] = parsed[col] !== undefined ? parsed[col] : COL_DEFAULTS[col];
|
||||
});
|
||||
return merged;
|
||||
}
|
||||
}
|
||||
} catch (e) {}
|
||||
var defaults = {};
|
||||
COL_ORDER.forEach(function (col) { defaults[col] = COL_DEFAULTS[col]; });
|
||||
|
||||
Reference in New Issue
Block a user