From 3108ab2fbe0800b494e4b61ffccf358bccfdb30c Mon Sep 17 00:00:00 2001 From: totoro Date: Sun, 2 Aug 2026 17:57:00 +0900 Subject: [PATCH] add support of bootstrap for flags_menu with flags_menu_bs function --- web_controllers/language/language_management.anubis | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/web_controllers/language/language_management.anubis b/web_controllers/language/language_management.anubis index 2504486..3f62940 100644 --- a/web_controllers/language/language_management.anubis +++ b/web_controllers/language/language_management.anubis @@ -227,7 +227,79 @@ public define HTML flags_menu(app_dictionnary, lang, show_symbolic) . - +define HTML + language_line_bs + ( + String language_code, + String language + )= +// li([style("background-image: url(/xlib/flags/lang/24/"+language_code+".png);"), +// event(onclick, "language_changed('"+language_code+"');")], text(language)) + + div(class("l3-flags"), a(class("dropdown-item l3-flag"), href(url("?aws_c=language&aws_a=do_change_language&language_code="+language_code)), [ img(class("l3-flag"), "/xlib/flags/lang/24/"+language_code+".png"), text(language)])) +. + +public define HTML + flags_menu_bs + ( + String dictionary_collection_name, + String lang, + Bool show_symbolic + ) = + with make_line = (L3LangDicProperty dico_prop) |-> + if dico_prop is l3LangDicProperty( _, sha1, lang_code, user_def, creat, update) then + with lang_info = l3_get_language_info(lang_code), + //if the language is already selected language, don't add as selectable language + if lang_code = lang then + empty + else + language_line_bs(lang_code, self_name(lang_info)), + + head_tags([ + css(css_file("/xlib/css/flags_menu.css")), + //js(js_file("/xlib/js/xlib.js")) + ], + li( class("nav-item dropdown"), [ + //literal("
 
\n"), + //literal(""), + a([id("l3-flag"), class("nav-link dropdown-toggle l3-flag"), role("button"), data("bs-toggle", "dropdown")], img(class("l3-flag"), "/xlib/flags/24x24/"+lang+".png")), + //img([event(onmouseover, "showObject('l3-flag');"), event(onmouseout, "hideObject('l3-flag');")], "/xlib/flags/lang/24/"+lang+".png" ), + //dd([style("display: none"),id("l3-flag"), event(onmouseover, "showObject('l3-flag');"), event(onmouseout, "hideObject('l3-flag');")], + div( class("dropdown-menu dropdown-menu-end"), [ + //line with current selected language + + div(class("l3-flag"), a(class("dropdown-item l3-flag"), href(url("#")), [img(class("l3-flag"), "/xlib/flags/lang/24/"+lang+".png"), text(l3_get_language_info(lang).self_name)])) + , + div(class("dropdown-divider")) + + ] + + map(make_line, l3_get_all_dicos(dictionary_collection_name))+ + [ + if show_symbolic then + language_line_bs("symb", "symbolic") + else + empty + ] + ) + ]) + //]) //!dl + ) +. + + +public define HTML + flags_menu_bs + ( + WEB_Session _session, + Bool show_symbolic, + (LogLevel, String) -> One logger + ) = + with lang = _session.language, + app_dictionnary = get_dictionary(_session), + + flags_menu_bs(app_dictionnary, lang, show_symbolic) +. + public define HTML choose_lang_dialog ( -- libgit2 0.21.4