1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
(function() {
initCustomSelects();
initFileInputs();
var config = JSON.parse(document.getElementById('new-entry-config').textContent);
var editor = new FancyMiku('#editor-container', {
height: '600px',
placeholder: config.placeholder
});
var addCharBtn = document.getElementById('add-character-btn');
var toggleQuickChar = document.getElementById('toggle-quick-character');
var quickCharForm = document.getElementById('quick-character-form');
var cancelQuickChar = document.getElementById('cancel-quick-character');
var charNameInput = document.getElementById('new-character-name');
var charRoleInput = document.getElementById('new-character-role');
var charBioInput = document.getElementById('new-character-bio');
var charPicker = document.getElementById('characters-picker');
if (toggleQuickChar && quickCharForm) {
toggleQuickChar.addEventListener('click', function() {
quickCharForm.classList.toggle('hidden');
});
if (cancelQuickChar) {
cancelQuickChar.addEventListener('click', function() {
quickCharForm.classList.add('hidden');
charNameInput.value = '';
if (charBioInput) charBioInput.value = '';
});
}
}
if (addCharBtn && charNameInput && charPicker) {
var newCharCount = 0;
function addNewCharacter() {
var name = charNameInput.value.trim();
if (!name) return;
newCharCount++;
var role = charRoleInput ? charRoleInput.value : 'Supporting';
var bio = charBioInput ? charBioInput.value.trim() : '';
var label = document.createElement('label');
label.className = 'tag-pick';
label.innerHTML =
'<input type="checkbox" name="new_character_names" value="' + name.replace(/"/g, '"') + '" checked />' +
'<input type="hidden" name="new_character_roles" value="' + role.replace(/"/g, '"') + '" />' +
'<input type="hidden" name="new_character_bios" value="' + bio.replace(/"/g, '"') + '" />' +
'<span class="tag-pick-label">' + name + ' <small>(' + role + ')</small></span>';
charPicker.appendChild(label);
charNameInput.value = '';
if (charBioInput) charBioInput.value = '';
quickCharForm.classList.add('hidden');
}
addCharBtn.addEventListener('click', addNewCharacter);
}
var toggleQuickTag = document.getElementById('toggle-quick-tag');
var quickTagForm = document.getElementById('quick-tag-form');
var cancelQuickTag = document.getElementById('cancel-quick-tag');
var addTagBtn = document.getElementById('add-tag-btn');
var tagNameInput = document.getElementById('new-tag-name');
var tagsPicker = document.getElementById('tags-picker');
if (toggleQuickTag && quickTagForm) {
toggleQuickTag.addEventListener('click', function() {
quickTagForm.classList.toggle('hidden');
});
if (cancelQuickTag) {
cancelQuickTag.addEventListener('click', function() {
quickTagForm.classList.add('hidden');
tagNameInput.value = '';
});
}
}
if (addTagBtn && tagNameInput && tagsPicker) {
function addNewTag() {
var name = tagNameInput.value.trim();
if (!name) return;
var nameLower = name.toLowerCase();
var existing = tagsPicker.querySelectorAll('.tag-pick');
for (var i = 0; i < existing.length; i++) {
var label = existing[i].querySelector('.tag-pick-label');
if (label && label.textContent.trim().toLowerCase() === nameLower) {
existing[i].querySelector('input[type="checkbox"]').checked = true;
tagNameInput.value = '';
quickTagForm.classList.add('hidden');
return;
}
}
var el = document.createElement('label');
el.className = 'tag-pick';
el.innerHTML =
'<input type="checkbox" name="new_tag_names" value="' + name.replace(/"/g, '"') + '" checked />' +
'<span class="tag-pick-label">' + name + '</span>';
tagsPicker.appendChild(el);
tagNameInput.value = '';
quickTagForm.classList.add('hidden');
}
addTagBtn.addEventListener('click', addNewTag);
tagNameInput.addEventListener('keydown', function(e) {
if (e.key === 'Enter') { e.preventDefault(); addNewTag(); }
});
}
document.getElementById('entry-form').addEventListener('submit', function(e) {
var content = editor.getContent();
document.getElementById('entry-content').value = content;
if (!content || content.trim() === '<p><br></p>' || content.trim() === '') {
e.preventDefault();
alert(config.alertEmpty);
return false;
}
});
})();
|