Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5300ee426d | ||
|
|
8ac6f1af6b |
1
app.py
1
app.py
@@ -137,6 +137,7 @@ def compute_stats():
|
|||||||
all_study_items.append({
|
all_study_items.append({
|
||||||
'name': name.strip(),
|
'name': name.strip(),
|
||||||
'done': si.get('done', False) if isinstance(si, dict) else False,
|
'done': si.get('done', False) if isinstance(si, dict) else False,
|
||||||
|
'note': si.get('note', '') if isinstance(si, dict) else '',
|
||||||
'pillar': pillar
|
'pillar': pillar
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1026,18 +1026,9 @@
|
|||||||
if (!container) return;
|
if (!container) return;
|
||||||
var html = '';
|
var html = '';
|
||||||
PILLARS.forEach(function(p){
|
PILLARS.forEach(function(p){
|
||||||
var info = pb[p.name] || {};
|
|
||||||
var m = info.morning || 0, e = info.evening || 0, s = info.study || 0;
|
|
||||||
var total = m + e + s;
|
|
||||||
html += '<div class="blueprint-pillar" data-pillar="' + p.name + '">' +
|
html += '<div class="blueprint-pillar" data-pillar="' + p.name + '">' +
|
||||||
'<div class="bp-icon">' + p.emoji + '</div>' +
|
'<div class="bp-icon">' + p.emoji + '</div>' +
|
||||||
'<div class="bp-name">' + p.name + '</div>' +
|
'<div class="bp-name">' + p.name + '</div>' +
|
||||||
'<div class="bp-count">' +
|
|
||||||
(m ? '<span class="bp-type morning">🥼' + m + '</span>' : '') +
|
|
||||||
(e ? '<span class="bp-type evening">🔍' + e + '</span>' : '') +
|
|
||||||
(s ? '<span class="bp-type study">📚' + s + '</span>' : '') +
|
|
||||||
(total === 0 ? '<span class="bp-type">—</span>' : '') +
|
|
||||||
'</div>' +
|
|
||||||
'</div>';
|
'</div>';
|
||||||
});
|
});
|
||||||
container.innerHTML = html;
|
container.innerHTML = html;
|
||||||
@@ -1057,7 +1048,7 @@
|
|||||||
(info.evening_items || []).forEach(function(ei){ items.push({pillar: p, text: ei.mistake || ei.improvement, type: 'evening'}); });
|
(info.evening_items || []).forEach(function(ei){ items.push({pillar: p, text: ei.mistake || ei.improvement, type: 'evening'}); });
|
||||||
}
|
}
|
||||||
if (blueprintFilter === 'all' || blueprintFilter === 'study') {
|
if (blueprintFilter === 'all' || blueprintFilter === 'study') {
|
||||||
(info.study_items || []).forEach(function(si){ items.push({pillar: p, text: si.name, type: 'study', done: si.done}); });
|
(info.study_items || []).forEach(function(si){ items.push({pillar: p, text: si.name, type: 'study', done: si.done, note: si.note}); });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if (items.length === 0) {
|
if (items.length === 0) {
|
||||||
@@ -1069,10 +1060,12 @@
|
|||||||
var typeLabels = {morning: '立志', evening: '责善', study: '勤学'};
|
var typeLabels = {morning: '立志', evening: '责善', study: '勤学'};
|
||||||
var html = '';
|
var html = '';
|
||||||
items.forEach(function(item){
|
items.forEach(function(item){
|
||||||
|
var noteHtml = item.type === 'study' && item.note ? '<span class="bp-item-note">' + esc(item.note) + '</span>' : '';
|
||||||
html += '<div class="bp-list-item">' +
|
html += '<div class="bp-list-item">' +
|
||||||
'<span class="bp-item-pillar">' + item.pillar.emoji + ' ' + item.pillar.name + '</span>' +
|
'<span class="bp-item-pillar">' + item.pillar.emoji + ' ' + item.pillar.name + '</span>' +
|
||||||
'<span class="bp-item-type ' + item.type + '">' + (typeLabels[item.type] || item.type) + '</span>' +
|
'<span class="bp-item-type ' + item.type + '">' + (typeLabels[item.type] || item.type) + '</span>' +
|
||||||
'<span class="bp-item-text">' + esc(item.text) + '</span>' +
|
'<span class="bp-item-text">' + esc(item.text) + '</span>' +
|
||||||
|
noteHtml +
|
||||||
'</div>';
|
'</div>';
|
||||||
});
|
});
|
||||||
list.innerHTML = html;
|
list.innerHTML = html;
|
||||||
|
|||||||
@@ -1524,13 +1524,18 @@ body {
|
|||||||
.bp-item-type.evening { background: var(--danger-light); color: var(--danger); }
|
.bp-item-type.evening { background: var(--danger-light); color: var(--danger); }
|
||||||
.bp-item-type.study { background: var(--success-light); color: var(--success); }
|
.bp-item-type.study { background: var(--success-light); color: var(--success); }
|
||||||
.bp-item-text {
|
.bp-item-text {
|
||||||
flex: 1;
|
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: var(--text);
|
color: var(--text);
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
.bp-item-note {
|
||||||
|
font-size: 11px;
|
||||||
|
color: var(--text-muted);
|
||||||
|
margin-left: 4px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
.bp-list-empty {
|
.bp-list-empty {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
|
|||||||
Reference in New Issue
Block a user