Skip to content

Commit

Permalink
add options to hide ui components
Browse files Browse the repository at this point in the history
  • Loading branch information
binary-husky committed Feb 6, 2025
1 parent 936e2f5 commit 37f9b94
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 27 deletions.
4 changes: 2 additions & 2 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def main():
# 如果WEB_PORT是-1, 则随机选取WEB端口
PORT = find_free_port() if WEB_PORT <= 0 else WEB_PORT
from check_proxy import get_current_version
from themes.theme import adjust_theme, advanced_css, theme_declaration, js_code_clear, js_code_show_or_hide, js_code_show_or_hide_group2
from themes.theme import adjust_theme, advanced_css, theme_declaration, js_code_clear, js_code_show_or_hide
from themes.theme import js_code_for_toggle_darkmode
from themes.theme import load_dynamic_theme, to_cookie_str, from_cookie_str, assign_user_uuid
title_html = f"<h1 align=\"center\">GPT 学术优化 {get_current_version()}</h1>{theme_declaration}"
Expand Down Expand Up @@ -210,7 +210,7 @@ def fn_area_visibility_2(a):
ret.update({area_customize: gr.update(visible=("自定义菜单" in a))})
return ret
checkboxes_2.select(fn_area_visibility_2, [checkboxes_2], [area_customize] )
checkboxes_2.select(None, [checkboxes_2], None, _js=js_code_show_or_hide_group2)
checkboxes_2.select(None, [checkboxes_2], None, _js="""apply_checkbox_change_for_group2""")

# 整理反复出现的控件句柄组合
input_combo = [cookies, max_length_sl, md_dropdown, txt, txt2, top_p, temperature, chatbot, history, system_prompt, plugin_advanced_arg]
Expand Down
4 changes: 2 additions & 2 deletions themes/gui_toolbar.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ def define_gui_toolbar(AVAIL_LLM_MODELS, LLM_MODEL, INIT_SYS_PROMPT, THEME, AVAI
fontfamily_dropdown = gr.Dropdown(AVAIL_FONTS, value=get_conf("FONT"), elem_id="elem_fontfamily", label="更换字体类型").style(container=False)
fontsize_slider = gr.Slider(minimum=5, maximum=25, value=15, step=1, interactive=True, label="字体大小(默认15)", elem_id="elem_fontsize")
checkboxes = gr.CheckboxGroup(["基础功能区", "函数插件区", "浮动输入区", "输入清除键", "插件参数区"], value=["基础功能区", "函数插件区"], label="显示/隐藏功能区", elem_id='cbs').style(container=False)
opt = ["自定义菜单"]
value=[]
opt = ["自定义菜单", "主标题", "副标题", "显示logo"]
value=["主标题", "副标题", "显示logo"]
if ADD_WAIFU: opt += ["添加Live2D形象"]; value += ["添加Live2D形象"]
checkboxes_2 = gr.CheckboxGroup(opt, value=value, label="显示/隐藏自定义菜单", elem_id='cbsc').style(container=False)
dark_mode_btn = gr.Button("切换界面明暗 ☀", variant="secondary").style(size="sm")
Expand Down
139 changes: 136 additions & 3 deletions themes/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,14 @@ function gpt_academic_change_chatbot_font(fontfamily, fontsize, fontcolor) {
}
}

function footer_show_hide(show) {
if (show) {
document.querySelector('footer').style.display = '';
} else {
document.querySelector('footer').style.display = 'none';
}
}

async function GptAcademicJavaScriptInit(dark, prompt, live2d, layout, tts) {
// 第一部分,布局初始化
remove_legacy_cookie();
Expand Down Expand Up @@ -179,6 +187,7 @@ async function GptAcademicJavaScriptInit(dark, prompt, live2d, layout, tts) {
}
}
}

// 字体
gpt_academic_gradio_saveload("load", "elem_fontfamily", "js_fontfamily", null, "str");
gpt_academic_change_chatbot_font(getCookie("js_fontfamily"), null, null);
Expand All @@ -205,7 +214,87 @@ async function GptAcademicJavaScriptInit(dark, prompt, live2d, layout, tts) {
}



if (getCookie("js_show_title")) {
// have cookie
bool_value = getCookie("js_show_title")
bool_value = bool_value == "True";
searchString = "主标题";
tool_bar_group = "cbsc";
const true_function = function () {
document.querySelector('.prose.svelte-1ybaih5 h1').style.display = '';
}
const false_function = function () {
document.querySelector('.prose.svelte-1ybaih5 h1').style.display = 'none';
}
if (bool_value) {
// make btns appear
true_function();
// deal with checkboxes
let arr_with_clear_btn = update_array(
await get_data_from_gradio_component(tool_bar_group), searchString, "add"
)
push_data_to_gradio_component(arr_with_clear_btn, tool_bar_group, "no_conversion");
} else {
false_function();
// deal with checkboxes
let arr_without_clear_btn = update_array(
await get_data_from_gradio_component(tool_bar_group), searchString, "remove"
)
push_data_to_gradio_component(arr_without_clear_btn, tool_bar_group, "no_conversion");
}
}
if (getCookie("js_show_subtitle")) {
// have cookie
bool_value = getCookie("js_show_subtitle")
bool_value = bool_value == "True";
searchString = "副标题";
tool_bar_group = "cbsc";
const true_function = function () {
document.querySelector('.prose.svelte-1ybaih5 h2').style.display = '';
}
const false_function = function () {
document.querySelector('.prose.svelte-1ybaih5 h2').style.display = 'none';
}
if (bool_value) {
// make btns appear
true_function();
// deal with checkboxes
let arr_with_clear_btn = update_array(
await get_data_from_gradio_component(tool_bar_group), searchString, "add"
)
push_data_to_gradio_component(arr_with_clear_btn, tool_bar_group, "no_conversion");
} else {
false_function();
// deal with checkboxes
let arr_without_clear_btn = update_array(
await get_data_from_gradio_component(tool_bar_group), searchString, "remove"
)
push_data_to_gradio_component(arr_without_clear_btn, tool_bar_group, "no_conversion");
}
}
if (getCookie("js_show_footer")) {
// have cookie
bool_value = getCookie("js_show_footer")
searchString = "显示logo";
tool_bar_group = "cbsc";
bool_value = bool_value == "True";
if (bool_value) {
// make btns appear
footer_show_hide(true);
// deal with checkboxes
let arr_with_clear_btn = update_array(
await get_data_from_gradio_component(tool_bar_group), searchString, "add"
)
push_data_to_gradio_component(arr_with_clear_btn, tool_bar_group, "no_conversion");
} else {
footer_show_hide(false);
// deal with checkboxes
let arr_without_clear_btn = update_array(
await get_data_from_gradio_component(tool_bar_group), searchString, "remove"
)
push_data_to_gradio_component(arr_without_clear_btn, tool_bar_group, "no_conversion");
}
}
// clearButton 自动清除按钮
if (getCookie("js_clearbtn_show_cookie")) {
// have cookie
Expand All @@ -219,7 +308,7 @@ async function GptAcademicJavaScriptInit(dark, prompt, live2d, layout, tts) {
let clearButton2 = document.getElementById("elem_clear2"); clearButton2.style.display = "block";
// deal with checkboxes
let arr_with_clear_btn = update_array(
await get_data_from_gradio_component('cbs'), "输入清除键", "add"
await get_data_from_gradio_component("cbs"), "输入清除键", "add"
)
push_data_to_gradio_component(arr_with_clear_btn, "cbs", "no_conversion");
} else {
Expand All @@ -228,7 +317,7 @@ async function GptAcademicJavaScriptInit(dark, prompt, live2d, layout, tts) {
let clearButton2 = document.getElementById("elem_clear2"); clearButton2.style.display = "none";
// deal with checkboxes
let arr_without_clear_btn = update_array(
await get_data_from_gradio_component('cbs'), "输入清除键", "remove"
await get_data_from_gradio_component("cbs"), "输入清除键", "remove"
)
push_data_to_gradio_component(arr_without_clear_btn, "cbs", "no_conversion");
}
Expand Down Expand Up @@ -268,3 +357,47 @@ async function GptAcademicJavaScriptInit(dark, prompt, live2d, layout, tts) {
change_theme("", "")

}



function apply_checkbox_change_for_group2(display_panel_arr) {
setTimeout(() => {
display_panel_arr = get_checkbox_selected_items("cbsc");

let searchString = "添加Live2D形象";
if (display_panel_arr.includes(searchString)) {
setCookie("js_live2d_show_cookie", "True", 365);
loadLive2D();
} else {
try {
setCookie("js_live2d_show_cookie", "False", 365);
$('.waifu').hide();
} catch (e) {
}
}


function handleDisplay(searchString, key, displayElement, showFn, hideFn) {
if (display_panel_arr.includes(searchString)) {
setCookie(key, "True", 365);
if (showFn) showFn();
if (displayElement) displayElement.style.display = '';
} else {
setCookie(key, "False", 365);
if (hideFn) hideFn();
if (displayElement) displayElement.style.display = 'none';
}
}

// 主标题
const mainTitle = document.querySelector('.prose.svelte-1ybaih5 h1');
handleDisplay("主标题", "js_show_title", mainTitle, null, null);

// 副标题
const subTitle = document.querySelector('.prose.svelte-1ybaih5 h2');
handleDisplay("副标题", "js_show_subtitle", subTitle, null, null);

// 显示logo
handleDisplay("显示logo", "js_show_footer", null, () => footer_show_hide(true), () => footer_show_hide(false));
}, 50);
}
20 changes: 0 additions & 20 deletions themes/theme.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,23 +141,3 @@ def from_cookie_str(c):
}
"""



js_code_show_or_hide_group2 = """
(display_panel_arr)=>{
setTimeout(() => {
display_panel_arr = get_checkbox_selected_items("cbsc");
let searchString = "添加Live2D形象";
let ele = "none";
if (display_panel_arr.includes(searchString)) {
setCookie("js_live2d_show_cookie", "True", 365);
loadLive2D();
} else {
setCookie("js_live2d_show_cookie", "False", 365);
$('.waifu').hide();
}
}, 50);
}
"""

0 comments on commit 37f9b94

Please sign in to comment.