New Gratitude Entry
Loading prompt...
Journal Log & Insights
Most Frequent Tags (in current view):
No entries to analyze.
Journal Entries:
Manage Tags/Categories
Add New Tag
Your Custom Tags:
${entry.tags.map(t => `${wgj_titleCase(t)}`).join(' ')}
` : ''}
`;
listEl.appendChild(itemDiv);
});
wgj_updateTagFrequencyDisplay(filteredEntries);
}
function wgj_resetFiltersAndSearch(renderLog = true) {
document.getElementById('wgj-filterStartDate').value = '';
document.getElementById('wgj-filterEndDate').value = '';
document.getElementById('wgj-filterTags').value = '';
document.getElementById('wgj-filterKeyword').value = '';
wgj_currentLogPage = 1;
if(renderLog) wgj_renderJournalLog();
}
function wgj_loadMoreLogEntries() { wgj_currentLogPage++; wgj_renderJournalLog(); }
function wgj_editEntry(id) {
const entry = wgj_entries.find(e => e.id === id);
if (!entry) return;
const newEntryTabButton = document.querySelector(`.wgj-tab-button[onclick*="'wgj-newEntryTab'"]`);
wgj_openTab({currentTarget: newEntryTabButton}, 'wgj-newEntryTab');
document.getElementById('wgj-entryId').value = entry.id;
document.getElementById('wgj-entryDate').value = entry.date;
document.getElementById('wgj-gratitudeStatement').value = entry.statement;
document.getElementById('wgj-entryTags').value = (entry.tags || []).map(t => wgj_titleCase(t)).join(', ');
document.getElementById('wgj-feelingIntensity').value = entry.intensity;
document.getElementById('wgj-feelingIntensityValue').textContent = entry.intensity;
document.getElementById('wgj-cancelEntryEditBtn').style.display = 'inline-block';
}
function wgj_deleteEntry(id) {
if (confirm("Are you sure you want to delete this gratitude entry?")) {
wgj_entries = wgj_entries.filter(e => e.id !== id);
wgj_saveData();
wgj_renderJournalLog(); // Re-render current view
}
}
function wgj_showRandomEntry() {
const displayEl = document.getElementById('wgj-randomEntryDisplay');
if (wgj_entries.length === 0) {
displayEl.innerHTML = 'No entries in your journal yet to display.
'; displayEl.style.display = 'block'; return; } const randomIndex = Math.floor(Math.random() * wgj_entries.length); const entry = wgj_entries[randomIndex]; displayEl.style.borderLeftColor = `#${(entry.intensity * 50).toString(16).padStart(2,'0')}B74D`; displayEl.innerHTML = `
${new Date(entry.date+"T00:00:00").toLocaleDateString()} | Intensity: ${'⭐'.repeat(entry.intensity)}
${entry.statement.replace(/\n/g, '
')}
${entry.tags.map(t => `${wgj_titleCase(t)}`).join(' ')}
` : ''}
`;
displayEl.style.display = 'block';
}
function wgj_updateTagFrequencyDisplay(entriesToAnalyze) {
const tagFreq = {};
entriesToAnalyze.forEach(entry => {
(entry.tags || []).forEach(tag => {
const lowerTag = tag.toLowerCase();
tagFreq[lowerTag] = (tagFreq[lowerTag] || 0) + 1;
});
});
const sortedTags = Object.entries(tagFreq).sort(([,a],[,b]) => b-a).slice(0, 10); // Top 10
const displayEl = document.getElementById('wgj-tagFrequencyDisplay');
if (sortedTags.length === 0) {
displayEl.innerHTML = 'No tags used in the current view to analyze.'; return;
}
displayEl.innerHTML = sortedTags.map(([tag, count]) =>
`${wgj_titleCase(tag)} (${count})`
).join(' ');
}
// --- Manage Tags Tab ---
document.getElementById('wgj-tagManagementForm').onsubmit = (e) => {
e.preventDefault();
const tagName = document.getElementById('wgj-newTagName').value.trim();
const lowerTagName = tagName.toLowerCase();
if (!tagName) { alert("Tag name cannot be empty."); return; }
if (wgj_tags.some(t => t.name.toLowerCase() === lowerTagName)) {
alert("This tag already exists."); return;
}
wgj_tags.push({ id: wgj_generateId(), name: wgj_titleCase(tagName), isDefault: false });
wgj_saveData();
wgj_renderCustomTagsList();
wgj_displayExistingTagsPreview(); // Refresh tag previews in new entry tab
document.getElementById('wgj-tagManagementForm').reset();
};
function wgj_renderCustomTagsList() {
const listEl = document.getElementById('wgj-customTagsList');
listEl.innerHTML = '';
const customTags = wgj_tags.filter(t => !t.isDefault);
if (customTags.length === 0) { listEl.innerHTML = '