en add sort and other updates

This commit is contained in:
Vladimir Mandic
2023-10-29 10:29:47 -04:00
parent 0fb95df44d
commit 19203aab6c
17 changed files with 101 additions and 15 deletions
+32 -1
View File
@@ -58,7 +58,8 @@ function readCardTags(el, tags) {
e.preventDefault();
e.stopPropagation();
const textarea = activePromptTextarea[getENActiveTab()];
if (textarea.value.indexOf(tag) !== -1) textarea.value = textarea.value.replace(tag, '');
if (textarea.value.indexOf(` ${tag}`) !== -1) textarea.value = textarea.value.replace(` ${tag}`, '');
else if (textarea.value.indexOf(`${tag} `) !== -1) textarea.value = textarea.value.replace(` ${tag} `, '');
else textarea.value += ` ${tag}`;
updateInput(textarea);
};
@@ -144,6 +145,34 @@ function tryToRemoveExtraNetworkFromPrompt(textarea, text) {
return false;
}
let sortVal = 0;
function sortExtraNetworks() {
const sortDesc = ['Name [A-Z]', 'Name [Z-A]', 'Date [Newest]', 'Date [Oldest]', 'Size [Largest]', 'Size [Smallest]'];
const tabname = getENActiveTab();
const pagename = getENActivePage();
if (!tabname || !pagename) return 'sort error: unknown page';
const pg = gradioApp().getElementById(`${tabname.toLowerCase()}_${pagename.toLowerCase()}_cards`);
const cards = Array.from(pg.querySelectorAll('.card') || []);
if (cards.length === 0) return 'sort: no cards';
cards.sort((a, b) => {
switch (sortVal) {
case 0: return a.dataset.name ? a.dataset.name.localeCompare(b.dataset.name) : 0;
case 1: return b.dataset.name ? b.dataset.name.localeCompare(a.dataset.name) : 0;
case 2: return a.dataset.mtime && !isNaN(a.dataset.mtime) ? parseFloat(b.dataset.mtime) - parseFloat(a.dataset.mtime) : 0;
case 3: return b.dataset.mtime && !isNaN(b.dataset.mtime) ? parseFloat(a.dataset.mtime) - parseFloat(b.dataset.mtime) : 0;
case 4: return a.dataset.size && !isNaN(a.dataset.size) ? parseFloat(b.dataset.size) - parseFloat(a.dataset.size) : 0;
case 5: return b.dataset.size && !isNaN(b.dataset.size) ? parseFloat(a.dataset.size) - parseFloat(b.dataset.size) : 0;
}
return 0;
});
for (const card of cards) pg.appendChild(card);
const desc = sortDesc[sortVal];
sortVal = (sortVal + 1) % 6;
log('sortExtraNetworks', tabname, pagename, desc);
return `sort page ${pagename} cards ${cards.length} by ${desc}`;
}
function refreshExtraNetworks(tabname) {
log('refreshExtraNetworks', tabname, gradioApp().querySelector(`#${tabname}_extra_networks textarea`)?.value);
gradioApp().querySelector(`#${tabname}_extra_networks textarea`)?.dispatchEvent(new Event('input'));
@@ -195,6 +224,7 @@ function setupExtraNetworksForTab(tabname) {
const btnScan = gradioApp().getElementById(`${tabname}_extra_scan`);
const btnSave = gradioApp().getElementById(`${tabname}_extra_save`);
const btnClose = gradioApp().getElementById(`${tabname}_extra_close`);
const btnSort = gradioApp().getElementById(`${tabname}_extra_sort`);
const btnModel = gradioApp().getElementById(`${tabname}_extra_model`);
const btnApply = gradioApp().getElementById(`${tabname}_extra_apply`);
const buttons = document.createElement('span');
@@ -204,6 +234,7 @@ function setupExtraNetworksForTab(tabname) {
if (btnApply) buttons.appendChild(btnApply);
if (btnScan) buttons.appendChild(btnScan);
if (btnSave) buttons.appendChild(btnSave);
if (btnSort) buttons.appendChild(btnSort);
if (btnClose) buttons.appendChild(btnClose);
btnModel.onclick = () => btnModel.classList.toggle('toolbutton-selected');
tabs.appendChild(buttons);