From a6b30069f021391be49089bb5e642e6f2d602fbb Mon Sep 17 00:00:00 2001 From: Miao Xiang Date: Sun, 26 Mar 2023 15:10:16 -0700 Subject: [PATCH] semi real solution --- html/extra-networks-card.html | 3 ++- javascript/extraNetworks.js | 23 +++++++++++++++++------ modules/ui_extra_networks.py | 27 +++++++++++++++++++++++++++ style.css | 14 -------------- 4 files changed, 46 insertions(+), 21 deletions(-) diff --git a/html/extra-networks-card.html b/html/extra-networks-card.html index ef4b613af..df301eb5c 100644 --- a/html/extra-networks-card.html +++ b/html/extra-networks-card.html @@ -4,7 +4,8 @@
diff --git a/javascript/extraNetworks.js b/javascript/extraNetworks.js index 9cde37e5b..20007a7ab 100644 --- a/javascript/extraNetworks.js +++ b/javascript/extraNetworks.js @@ -95,6 +95,23 @@ function saveCardPreview(event, tabname, filename){ event.preventDefault() } +function saveCardDescription(event, tabname, filename,descript){ + var textarea = gradioApp().querySelector("#" + tabname + '_description_filename > label > textarea') + var button = gradioApp().getElementById(tabname + '_save_description') + var description = gradioApp().getElementById(tabname+ '_description_input') + + textarea.value = filename + description.value=descript + updateInput(textarea) + + button.click() + + //alert("add description here!") + + event.stopPropagation() + event.preventDefault() +} + function extraNetworksSearchButton(tabs_id, event){ searchTextarea = gradioApp().querySelector("#" + tabs_id + ' > div > textarea') button = event.target @@ -118,12 +135,6 @@ function popup(contents){ close.title = "Close"; globalPopup.appendChild(close) - var addDescrip = document.createElement('div') - addDescrip.classList.add('global-popup-addDescrip'); - addDescrip.onclick = function(){ alert("add descript you idiot") }; - addDescrip.title = "add descript"; - globalPopup.appendChild(addDescrip) - globalPopupInner = document.createElement('div') globalPopupInner.onclick = function(event){ event.stopPropagation(); return false; }; globalPopupInner.classList.add('global-popup-inner'); diff --git a/modules/ui_extra_networks.py b/modules/ui_extra_networks.py index daea03d62..525cd9f3b 100644 --- a/modules/ui_extra_networks.py +++ b/modules/ui_extra_networks.py @@ -163,6 +163,7 @@ class ExtraNetworksPage: "name": item["name"], "description": (item.get("description") or ""), "card_clicked": onclick, + "save_card_description": '"' + html.escape(f"""return saveCardDescription(event, {json.dumps(tabname)}, {json.dumps(item["local_preview"])})""") + '"', "save_card_preview": '"' + html.escape(f"""return saveCardPreview(event, {json.dumps(tabname)}, {json.dumps(item["local_preview"])})""") + '"', "search_term": item.get("search_term", ""), "metadata_button": metadata_button, @@ -212,6 +213,11 @@ class ExtraNetworksUi: self.button_save_preview = None self.preview_target_filename = None + self.button_save_description = None + self.description_target_filename = None + + self.description_input = None + self.tabname = None @@ -250,6 +256,10 @@ def create_ui(container, button, tabname): ui.button_save_preview = gr.Button('Save preview', elem_id=tabname+"_save_preview", visible=False) ui.preview_target_filename = gr.Textbox('Preview save filename', elem_id=tabname+"_preview_filename", visible=False) + ui.button_save_description = gr.Button('Save description', elem_id=tabname+"_save_description", visible=False) + ui.description_target_filename = gr.Textbox('Description save filename', elem_id=tabname+"_description_filename", visible=False) + ui.description_input = gr.Text(elem_id=tabname+"_description_input") + def toggle_visibility(is_visible): is_visible = not is_visible return is_visible, gr.update(visible=is_visible) @@ -310,3 +320,20 @@ def setup_ui(ui, gallery): outputs=[*ui.pages] ) + def save_description(filenamex,images,filename,descrip): + filename = filename.split('.')[0]+".description.txt" + file1 = open(filename,'w') + print(file1) + file1.write(descrip) + file1.close() + return [page.create_html(ui.tabname) for page in ui.stored_extra_pages] + + ui.button_save_description.click( + fn=save_description, + _js="function(x,y,z){return selected_gallery_index(), y, z]}", + inputs=[ui.description_target_filename, gallery, ui.description_target_filename, ui.description_input], + outputs=[*ui.pages] + ) + + + diff --git a/style.css b/style.css index 4c1099768..0dcc3e25d 100644 --- a/style.css +++ b/style.css @@ -424,20 +424,6 @@ div.dimensions-tools{ font-size: 32pt; } -.global-popup-addDescrip:before { - content: "+"; -} - -.global-popup-addDescrip{ - position: fixed; - right: 2em; - top: 0; - cursor: pointer; - color: white; - font-size: 32pt; -} - - .global-popup-inner{ display: inline-block; margin: auto;