update code
This commit is contained in:
parent
5e0b3d5dba
commit
8f68bf431f
5 changed files with 32 additions and 2 deletions
BIN
.DS_Store
vendored
BIN
.DS_Store
vendored
Binary file not shown.
5
app.py
5
app.py
|
|
@ -742,6 +742,7 @@ def save_template():
|
||||||
title = request.form.get('title')
|
title = request.form.get('title')
|
||||||
prompt = request.form.get('prompt')
|
prompt = request.form.get('prompt')
|
||||||
mode = request.form.get('mode', 'generate')
|
mode = request.form.get('mode', 'generate')
|
||||||
|
note = request.form.get('note', '')
|
||||||
category = request.form.get('category', 'User')
|
category = request.form.get('category', 'User')
|
||||||
tags_field = request.form.get('tags')
|
tags_field = request.form.get('tags')
|
||||||
tags = parse_tags_field(tags_field)
|
tags = parse_tags_field(tags_field)
|
||||||
|
|
@ -837,6 +838,7 @@ def save_template():
|
||||||
new_template = {
|
new_template = {
|
||||||
'title': title,
|
'title': title,
|
||||||
'prompt': prompt,
|
'prompt': prompt,
|
||||||
|
'note': note,
|
||||||
'mode': mode,
|
'mode': mode,
|
||||||
'category': category,
|
'category': category,
|
||||||
'preview': preview_path,
|
'preview': preview_path,
|
||||||
|
|
@ -895,6 +897,7 @@ def update_template():
|
||||||
title = request.form.get('title')
|
title = request.form.get('title')
|
||||||
prompt = request.form.get('prompt')
|
prompt = request.form.get('prompt')
|
||||||
mode = request.form.get('mode', 'generate')
|
mode = request.form.get('mode', 'generate')
|
||||||
|
note = request.form.get('note', '')
|
||||||
category = request.form.get('category', 'User')
|
category = request.form.get('category', 'User')
|
||||||
tags_field = request.form.get('tags')
|
tags_field = request.form.get('tags')
|
||||||
tags = parse_tags_field(tags_field)
|
tags = parse_tags_field(tags_field)
|
||||||
|
|
@ -1004,6 +1007,7 @@ def update_template():
|
||||||
|
|
||||||
existing_template['title'] = title
|
existing_template['title'] = title
|
||||||
existing_template['prompt'] = prompt
|
existing_template['prompt'] = prompt
|
||||||
|
existing_template['note'] = note
|
||||||
existing_template['mode'] = mode
|
existing_template['mode'] = mode
|
||||||
existing_template['category'] = category
|
existing_template['category'] = category
|
||||||
if preview_path:
|
if preview_path:
|
||||||
|
|
@ -1047,6 +1051,7 @@ def update_template():
|
||||||
user_prompts[template_index] = {
|
user_prompts[template_index] = {
|
||||||
'title': title,
|
'title': title,
|
||||||
'prompt': prompt,
|
'prompt': prompt,
|
||||||
|
'note': note,
|
||||||
'mode': mode,
|
'mode': mode,
|
||||||
'category': category,
|
'category': category,
|
||||||
'preview': preview_path,
|
'preview': preview_path,
|
||||||
|
|
|
||||||
|
|
@ -452,6 +452,10 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
persistSettings();
|
persistSettings();
|
||||||
refreshPromptHighlight();
|
refreshPromptHighlight();
|
||||||
}
|
}
|
||||||
|
// Fill note (default empty when absent)
|
||||||
|
promptNoteInput.value = template.note !== undefined ? (i18n.getText(template.note) || '') : '';
|
||||||
|
refreshNoteHighlight();
|
||||||
|
persistSettings();
|
||||||
// Stay in template gallery view - don't auto-switch
|
// Stay in template gallery view - don't auto-switch
|
||||||
// User will switch view by selecting image from history or generating
|
// User will switch view by selecting image from history or generating
|
||||||
}
|
}
|
||||||
|
|
@ -963,6 +967,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
|
||||||
const templateTitleInput = document.getElementById('template-title');
|
const templateTitleInput = document.getElementById('template-title');
|
||||||
const templatePromptInput = document.getElementById('template-prompt');
|
const templatePromptInput = document.getElementById('template-prompt');
|
||||||
|
const templateNoteInput = document.getElementById('template-note');
|
||||||
const templateModeSelect = document.getElementById('template-mode');
|
const templateModeSelect = document.getElementById('template-mode');
|
||||||
const templateCategorySelect = document.getElementById('template-category-select');
|
const templateCategorySelect = document.getElementById('template-category-select');
|
||||||
const templateCategoryInput = document.getElementById('template-category-input');
|
const templateCategoryInput = document.getElementById('template-category-input');
|
||||||
|
|
@ -1191,6 +1196,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
// Pre-fill with template data
|
// Pre-fill with template data
|
||||||
templateTitleInput.value = template.title || '';
|
templateTitleInput.value = template.title || '';
|
||||||
templatePromptInput.value = template.prompt || '';
|
templatePromptInput.value = template.prompt || '';
|
||||||
|
templateNoteInput.value = i18n.getText(template.note) || '';
|
||||||
templateModeSelect.value = template.mode || 'generate';
|
templateModeSelect.value = template.mode || 'generate';
|
||||||
templateCategoryInput.classList.add('hidden');
|
templateCategoryInput.classList.add('hidden');
|
||||||
templateCategoryInput.value = '';
|
templateCategoryInput.value = '';
|
||||||
|
|
@ -1274,6 +1280,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
// Clear all fields
|
// Clear all fields
|
||||||
templateTitleInput.value = '';
|
templateTitleInput.value = '';
|
||||||
templatePromptInput.value = '';
|
templatePromptInput.value = '';
|
||||||
|
templateNoteInput.value = promptNoteInput.value || '';
|
||||||
templateModeSelect.value = 'generate';
|
templateModeSelect.value = 'generate';
|
||||||
templateCategoryInput.classList.add('hidden');
|
templateCategoryInput.classList.add('hidden');
|
||||||
templateCategoryInput.value = '';
|
templateCategoryInput.value = '';
|
||||||
|
|
@ -1341,6 +1348,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
// Pre-fill data
|
// Pre-fill data
|
||||||
templateTitleInput.value = '';
|
templateTitleInput.value = '';
|
||||||
templatePromptInput.value = promptInput.value;
|
templatePromptInput.value = promptInput.value;
|
||||||
|
templateNoteInput.value = promptNoteInput.value || '';
|
||||||
templateModeSelect.value = 'generate';
|
templateModeSelect.value = 'generate';
|
||||||
templateCategoryInput.classList.add('hidden');
|
templateCategoryInput.classList.add('hidden');
|
||||||
templateCategoryInput.value = '';
|
templateCategoryInput.value = '';
|
||||||
|
|
@ -1547,6 +1555,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
saveTemplateBtn.addEventListener('click', async () => {
|
saveTemplateBtn.addEventListener('click', async () => {
|
||||||
const title = templateTitleInput.value.trim();
|
const title = templateTitleInput.value.trim();
|
||||||
const prompt = templatePromptInput.value.trim();
|
const prompt = templatePromptInput.value.trim();
|
||||||
|
const note = templateNoteInput.value.trim();
|
||||||
const mode = templateModeSelect.value;
|
const mode = templateModeSelect.value;
|
||||||
let category = templateCategorySelect.value;
|
let category = templateCategorySelect.value;
|
||||||
|
|
||||||
|
|
@ -1574,6 +1583,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append('title', title);
|
formData.append('title', title);
|
||||||
formData.append('prompt', prompt);
|
formData.append('prompt', prompt);
|
||||||
|
formData.append('note', note);
|
||||||
formData.append('mode', mode);
|
formData.append('mode', mode);
|
||||||
formData.append('category', category);
|
formData.append('category', category);
|
||||||
formData.append('tags', JSON.stringify(templateTags));
|
formData.append('tags', JSON.stringify(templateTags));
|
||||||
|
|
|
||||||
|
|
@ -399,7 +399,7 @@ select:focus {
|
||||||
|
|
||||||
textarea {
|
textarea {
|
||||||
resize: vertical;
|
resize: vertical;
|
||||||
min-height: 100px;
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Theme overrides driven from index.css gradients */
|
/* Theme overrides driven from index.css gradients */
|
||||||
|
|
@ -1924,7 +1924,7 @@ button#generate-btn:disabled {
|
||||||
|
|
||||||
.template-preview-dropzone {
|
.template-preview-dropzone {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 220px;
|
height: 150px;
|
||||||
border: 2px dashed rgba(255, 255, 255, 0.15);
|
border: 2px dashed rgba(255, 255, 255, 0.15);
|
||||||
border-radius: 0.75rem;
|
border-radius: 0.75rem;
|
||||||
background: rgba(0, 0, 0, 0.2);
|
background: rgba(0, 0, 0, 0.2);
|
||||||
|
|
@ -2069,6 +2069,16 @@ button#generate-btn:disabled {
|
||||||
backdrop-filter: blur(20px);
|
backdrop-filter: blur(20px);
|
||||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||||
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
|
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
|
||||||
|
max-height: 90vh;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
#create-template-modal .popup-body {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding-right: 0.25rem;
|
||||||
|
margin-right: -0.25rem; /* allow scrollbar without shifting content */
|
||||||
}
|
}
|
||||||
|
|
||||||
#save-template-btn {
|
#save-template-btn {
|
||||||
|
|
|
||||||
|
|
@ -410,6 +410,11 @@
|
||||||
<textarea id="template-prompt" rows="3" placeholder="Template Prompt"></textarea>
|
<textarea id="template-prompt" rows="3" placeholder="Template Prompt"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="template-note">Note</label>
|
||||||
|
<textarea id="template-note" rows="2" placeholder="Template Note (optional)"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="template-mode">Mode</label>
|
<label for="template-mode">Mode</label>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue