fix activation text and updating of cards

This commit is contained in:
Sj-Si 2024-04-22 15:02:00 -04:00
parent 58eef032cd
commit 2c5c1263c2
3 changed files with 19 additions and 21 deletions

View file

@ -236,17 +236,18 @@ class ExtraNetworksTab {
this.prompts_elem.classList.toggle("extra-page-prompts-active", show_neg_prompt || show_prompt);
}
refreshSingleCard(name) {
refreshSingleCard(elem) {
requestGet(
"./sd_extra_networks/get-single-card",
{
tabname: this.tabname,
extra_networks_tabname: this.extra_networks_tabname,
name: name,
name: elem.dataset.name,
div_id: elem.dataset.divId,
},
(data) => {
if (data && data.html) {
this.cards_list.updateCard(name, data.html);
this.cards_list.updateCard(elem, data.html);
}
},
);
@ -686,7 +687,9 @@ function extraNetworksShowMetadata(text) {
function extraNetworksRefreshSingleCard(tabname, extra_networks_tabname, name) {
const tab = extra_networks_tabs[`${tabname}_${extra_networks_tabname}`];
tab.refreshSingleCard(name);
const elem = tab.cards_list.content_elem.querySelector(`.card[data-name="${name}"]`);
isElementThrowError(elem);
tab.refreshSingleCard(elem);
}
function extraNetworksRefreshTab(tabname_full) {

View file

@ -522,26 +522,14 @@ class ExtraNetworksClusterizeCardsList extends ExtraNetworksClusterize {
this.data_obj = await this.options.callbacks.initData();
}
updateCard(name, new_html) {
updateCard(elem, new_html) {
const parsed_html = htmlStringToElement(new_html);
const old_card = this.content_elem.querySelector(`.card[data-name="${name}"]`);
if (!isElementLogError(old_card)) {
return;
}
const div_id = old_card.dataset.divId;
// replace new html's data attributes with the current ones
for (const [k, v] of Object.entries(old_card.dataset)) {
parsed_html.dataset[k] = v;
}
// replace the element in DOM with our new element
old_card.replaceWith(parsed_html);
elem.replaceWith(parsed_html);
// update the internal cache with the new html
this.lru.set(String(div_id), new_html);
this.lru.set(String(elem.dataset.divId), new_html);
}
async fetchData(idx_start, idx_end) {

View file

@ -1020,7 +1020,12 @@ def get_metadata(extra_networks_tabname: str = "", item: str = "") -> JSONRespon
return JSONResponse({"metadata": json.dumps(metadata, indent=4, ensure_ascii=False)})
def get_single_card(tabname: str = "", extra_networks_tabname: str = "", name: str = "") -> JSONResponse:
def get_single_card(
tabname: str = "",
extra_networks_tabname: str = "",
name: str = "",
div_id: str = "",
) -> JSONResponse:
page = get_page_by_name(extra_networks_tabname)
try:
@ -1034,7 +1039,9 @@ def get_single_card(tabname: str = "", extra_networks_tabname: str = "", name: s
return JSONResponse({})
page.read_user_metadata(item, use_cache=False)
item_html = page.create_card_html(tabname=tabname, item=item)
item_html = page.create_card_html(tabname=tabname, item=item, div_id=div_id)
# Update the card's HTML in the page's dataset.
page.cards[div_id].html = item_html
return JSONResponse({"html": item_html})