mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-06-09 20:39:25 -03:00
fix(ui): auto-focus tag input and flush uncommitted text on save (#934)
- ModelModal (ModelTags.js): auto-focus input on entering tag edit mode - ModelModal (ModelTags.js): flush uncommitted input text as tag on Save - Bulk Add Tags (BulkManager.js): same two fixes - RecipeModal already handled both cases correctly
This commit is contained in:
@@ -274,7 +274,17 @@ async function saveTags() {
|
|||||||
|
|
||||||
const filePath = editBtn.dataset.filePath;
|
const filePath = editBtn.dataset.filePath;
|
||||||
const tagElements = document.querySelectorAll('.metadata-item');
|
const tagElements = document.querySelectorAll('.metadata-item');
|
||||||
const tags = Array.from(tagElements).map(tag => tag.dataset.tag);
|
let tags = Array.from(tagElements).map(tag => tag.dataset.tag);
|
||||||
|
|
||||||
|
// Flush uncommitted input as a tag so it's not silently lost on save
|
||||||
|
const tagInput = document.querySelector('.metadata-input');
|
||||||
|
if (tagInput) {
|
||||||
|
const pendingTag = tagInput.value.trim().toLowerCase();
|
||||||
|
if (pendingTag && !tags.includes(pendingTag)) {
|
||||||
|
tags.push(pendingTag);
|
||||||
|
}
|
||||||
|
tagInput.value = '';
|
||||||
|
}
|
||||||
|
|
||||||
// Get original tags to compare
|
// Get original tags to compare
|
||||||
const originalTagElements = document.querySelectorAll('.tooltip-tag');
|
const originalTagElements = document.querySelectorAll('.tooltip-tag');
|
||||||
@@ -465,6 +475,7 @@ function setupTagInput() {
|
|||||||
const tagInput = document.querySelector('.metadata-input');
|
const tagInput = document.querySelector('.metadata-input');
|
||||||
|
|
||||||
if (tagInput) {
|
if (tagInput) {
|
||||||
|
tagInput.focus();
|
||||||
tagInput.addEventListener('keydown', function(e) {
|
tagInput.addEventListener('keydown', function(e) {
|
||||||
if (e.key === 'Enter') {
|
if (e.key === 'Enter') {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|||||||
@@ -785,6 +785,7 @@ export class BulkManager {
|
|||||||
// Setup tag input behavior
|
// Setup tag input behavior
|
||||||
const tagInput = document.querySelector('.bulk-metadata-input');
|
const tagInput = document.querySelector('.bulk-metadata-input');
|
||||||
if (tagInput) {
|
if (tagInput) {
|
||||||
|
tagInput.focus();
|
||||||
tagInput.addEventListener('keydown', (e) => {
|
tagInput.addEventListener('keydown', (e) => {
|
||||||
if (e.key === 'Enter') {
|
if (e.key === 'Enter') {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
@@ -1008,7 +1009,17 @@ export class BulkManager {
|
|||||||
|
|
||||||
async saveBulkTags(mode = 'append') {
|
async saveBulkTags(mode = 'append') {
|
||||||
const tagElements = document.querySelectorAll('#bulkTagsItems .metadata-item');
|
const tagElements = document.querySelectorAll('#bulkTagsItems .metadata-item');
|
||||||
const tags = Array.from(tagElements).map(tag => tag.dataset.tag);
|
let tags = Array.from(tagElements).map(tag => tag.dataset.tag);
|
||||||
|
|
||||||
|
// Flush uncommitted input as a tag so it's not silently lost on save
|
||||||
|
const tagInput = document.querySelector('.bulk-metadata-input');
|
||||||
|
if (tagInput) {
|
||||||
|
const pendingTag = tagInput.value.trim().toLowerCase();
|
||||||
|
if (pendingTag && !tags.includes(pendingTag)) {
|
||||||
|
tags.push(pendingTag);
|
||||||
|
}
|
||||||
|
tagInput.value = '';
|
||||||
|
}
|
||||||
|
|
||||||
if (tags.length === 0) {
|
if (tags.length === 0) {
|
||||||
showToast('toast.models.noTagsToAdd', {}, 'warning');
|
showToast('toast.models.noTagsToAdd', {}, 'warning');
|
||||||
|
|||||||
Reference in New Issue
Block a user