类别显示名可自己维护,顺手把两套对不上的中文名合成一套
你要改的那个「海滩」原来根本不在数据里——它是 Go 里硬编码的 map,所以改不动。
更糟的是这样的 map 有**两张**,而且对不上:
MKPOICategoryFoodMarket 菜市场(编辑页) / 食品市场(补全页、GPX)
MKPOICategoryCafe 咖啡馆 / 咖啡厅
MKPOICategoryFitnessCenter 健身房 / 健身中心
外加 ATM / Atm 大小写各写一份、一条永远匹配不上的 MKPOICategoryMarina2
现在合成一张内置表(42 条,冲突处取编辑页那套),并在它上面加了一层站点覆盖:
- 新表 category_labels(value, label),站点级、不挂 dataset——值本身才是稳定键
- 端点 POST /admin/edit/category/label;传空 label = 删掉覆盖行、恢复内置默认名
- 类别台账那行改成两个带标签的输入框:
导出值 [MKPOICategoryBeach] ← 会跟着导出写回手机
显示名 [ ] ← 只影响站内显示,placeholder 写着默认值
是 MKPOICategory 枚举但内置表里没有的,会提示「填一个中文名」,这就是你要的补全入口
**显示名绝不写进 places.poi_category**——中文跟着写进去就把导出数据污染了,
专门加了 TestCategoryLabelNeverTouchesValue 钉这条。显示名会贯穿到所有中文名的地方:
编辑页/照片页/补全页的下拉、补全页「在用」标签、访客地点页、GPX 的 desc。
连带删掉两个绑在旧表上的模板函数 catName / poiname:模板里算不出显示名(要读站点覆盖),
改成在 Go 侧算好塞进数据(FillupRow.CatLabel、PlaceData.CategoryLabel)。
This commit is contained in:
@@ -69,8 +69,17 @@
|
||||
{{range .CategoryRows}}
|
||||
<tr data-value="{{.Value}}">
|
||||
<td data-label="类别">
|
||||
<input list="cat-values" type="text" name="cat-value" value="{{.Value}}" style="min-width:12em">
|
||||
<div class="card-sub" style="margin:2px 0 0">{{.Label}}</div>
|
||||
<label class="f" style="margin-bottom:6px"><span>导出值</span>
|
||||
<input list="cat-values" type="text" name="cat-value" value="{{.Value}}" style="min-width:12em">
|
||||
</label>
|
||||
<label class="f" style="margin-bottom:6px"><span>显示名</span>
|
||||
<input type="text" name="cat-label" value="{{if .Custom}}{{.Label}}{{end}}"
|
||||
placeholder="{{if .Missing}}填一个中文名{{else}}留空=默认「{{.Label}}」{{end}}"
|
||||
style="min-width:12em">
|
||||
</label>
|
||||
<button class="btn sm" type="button" data-act="label">保存显示名</button>
|
||||
{{if .Missing}}<span class="muted">还没有中文名</span>
|
||||
{{else if .Custom}}<span class="muted">已自定义</span>{{end}}
|
||||
</td>
|
||||
<td data-label="地点">{{num .Places}}</td>
|
||||
<td class="ops">
|
||||
@@ -1341,6 +1350,13 @@
|
||||
reload('已把 ' + count(tr, '地点') + ' 个地点的类别改成「' + (d.label || v) + '」');
|
||||
});
|
||||
});
|
||||
var labelInput = tr.querySelector('input[name="cat-label"]');
|
||||
tr.querySelector('[data-act="label"]').addEventListener('click', function () {
|
||||
var v = (labelInput.value || '').trim();
|
||||
post('/admin/edit/category/label', { value: from, label: v }, function (d) {
|
||||
reload(d.custom ? '显示名已改成「' + d.label + '」' : '已恢复默认显示名「' + d.label + '」');
|
||||
});
|
||||
});
|
||||
tr.querySelector('[data-act="clear"]').addEventListener('click', function () {
|
||||
var n = count(tr, '地点');
|
||||
if (!window.confirm('清空 ' + n + ' 个地点的「' + from + '」类别?\n' +
|
||||
|
||||
Reference in New Issue
Block a user