From 14d978e2af04afc5667cf306ad905924dde2801b Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Wed, 20 Mar 2019 22:46:14 -0400 Subject: [PATCH] Html: Reformat HTML for jump-to div [#394] --- .../gplx/xowa/htmls/portal/Xow_portal_mgr.java | 14 ++++++++++---- .../xowa/htmls/portal/Xow_portal_mgr_tst.java | 16 +++++++++++++++- .../src/gplx/xowa/langs/msgs/Xow_msg_mgr.java | 7 +++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr.java b/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr.java index 94927cc78..2de535b6d 100644 --- a/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr.java +++ b/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr.java @@ -79,7 +79,7 @@ public class Xow_portal_mgr implements Gfo_invk { div_home_bry = Init_fmtr(tmp_bfr, eval_mgr, div_home_fmtr); div_wikis_fmtr.Eval_mgr_(eval_mgr); Xow_msg_mgr msg_mgr = wiki.Msg_mgr(); - div_jump_to = Div_jump_to_fmtr.Bld_bry_many(tmp_bfr, msg_mgr.Val_by_key_obj("jumpto"), msg_mgr.Val_by_key_obj("jumptonavigation"), msg_mgr.Val_by_key_obj("comma-separator"), msg_mgr.Val_by_key_obj("jumptosearch")); + div_jump_to = Div_jump_to_fmtr.Bld_bry_many(tmp_bfr, msg_mgr.Val_by_key_obj("jumpto"), msg_mgr.Val_by_key_obj("jumptonavigation"), msg_mgr.Val_by_key_obj("jumptosearch")); tmp_bfr.Mkr_rls(); sidebar_mgr.Init_by_wiki(); } private boolean init_needed = true; @@ -199,9 +199,15 @@ public class Xow_portal_mgr implements Gfo_invk { , Invk_div_sync_ = "div_sync_", Invk_div_wikis_ = "div_wikis_"; public static final String Invk_div_logo_ = "div_logo_"; private static final byte[] Missing_ns_cls_hide = Bry_.new_a7("xowa_display_none"); - private static final Bry_fmtr Div_jump_to_fmtr = Bry_fmtr.new_ - ( "\n
~{jumpto}~{jumptonavigation}~{comma-separator}~{jumptosearch}
" - , "jumpto", "jumptonavigation", "comma-separator", "jumptosearch"); + + // NOTE: emulate recent change but support backward compatibility; ISSUE#:394; REF.MW:https://phabricator.wikimedia.org/source/Vector/browse/master/includes/templates/index.mustache DATE:2019-03-20 + // TODO: use "vector-jumptosearch", but need to update language.gfs files + private static final Bry_fmtr Div_jump_to_fmtr = Bry_fmtr.new_(String_.Concat + ( "\n
" // NOTE:class=mw-jump is for backward compatibility + , "\n ~{jumpto}~{jumptonavigation}" + , "\n ~{jumpto}~{jumptosearch}" + , "\n
" // NOTE: is for backward compatibility; current MW places right after jump-to-nav + ), "jumpto", "jumptonavigation", "jumptosearch"); private static final String Cfg__missing_class = "xowa.html.portal.missing_class" diff --git a/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr_tst.java b/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr_tst.java index 04aba7d39..5cb4b3fcb 100644 --- a/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr_tst.java +++ b/400_xowa/src/gplx/xowa/htmls/portal/Xow_portal_mgr_tst.java @@ -42,6 +42,19 @@ public class Xow_portal_mgr_tst { fxt.Portal_mgr().Init(); fxt.Test_logo_frag(Bool_.Y, "file:///mem/xowa/user/test_user/wiki/en.wikipedia.org/html/logo_night.png"); } + @Test public void Jumpto() { + fxt.Wiki().Msg_mgr().Set("jumpto", "Jump to:"); + fxt.Wiki().Msg_mgr().Set("jumptonavigation", "navigation"); + fxt.Wiki().Msg_mgr().Set("jumptosearch", "search"); + fxt.Portal_mgr().Init(); + Gftest.Eq__ary__lines(String_.Concat_lines_nl + ( "" + , "
" + , " Jump to:navigation" + , " Jump to:search" + , "
" + ), fxt.Portal_mgr().Div_jump_to()); + } } class Xowh_portal_mgr_fxt { private Xow_portal_mgr portal_mgr; @@ -54,7 +67,8 @@ class Xowh_portal_mgr_fxt { portal_mgr.Init_assert(); // needed for personal portal_mgr.Missing_ns_cls_(Bry_.new_a7("xowa_display_none")); } - } private Xoae_app app; Xowe_wiki wiki; + } private Xoae_app app; + public Xowe_wiki Wiki() {return wiki;} private Xowe_wiki wiki; public void Test_div_ns_bry(String ttl, String expd) { Tfds.Eq(expd, String_.new_a7(wiki.Html_mgr().Portal_mgr().Div_ns_bry(wiki.Utl__bfr_mkr(), Xoa_ttl.Parse(wiki, Bry_.new_a7(ttl)), wiki.Ns_mgr()))); } diff --git a/400_xowa/src/gplx/xowa/langs/msgs/Xow_msg_mgr.java b/400_xowa/src/gplx/xowa/langs/msgs/Xow_msg_mgr.java index c9ce14f4d..c761b79c2 100644 --- a/400_xowa/src/gplx/xowa/langs/msgs/Xow_msg_mgr.java +++ b/400_xowa/src/gplx/xowa/langs/msgs/Xow_msg_mgr.java @@ -105,6 +105,13 @@ public class Xow_msg_mgr implements Gfo_invk { return null; } } private static final byte[] CONST_prefix_tooltip = Bry_.new_a7("tooltip-"), CONST_prefix_accesskey = Bry_.new_a7("accesskey-"), CONST_atr_title = Bry_.new_a7(" title=\""), CONST_atr_accesskey = Bry_.new_a7(" accesskey=\""); + public Xol_msg_itm Set(String key_str, String val_str) { // TEST + Xol_msg_itm msg_itm = this.Get_or_make(Bry_.new_u8(key_str)); + msg_itm.Atrs_set(Bry_.new_u8(val_str), false, false); + msg_itm.Defined_in_(Xol_msg_itm.Defined_in__lang); + return msg_itm; + } + public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) { if (ctx.Match(k, Invk_get)) return this.Val_by_key_obj(m.ReadBry("v")); else if (ctx.Match(k, Invk_get_html_accesskey_and_title)) return this.Val_html_accesskey_and_title(m.ReadBry("v"));