From 06afe7a7b15fc84a74db04a619f4f6efcfabb459 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Sat, 10 Aug 2019 17:17:50 -0400 Subject: [PATCH] Html_dump: Add configuration to show WIKITEXT / HTML indicators in top-right [#525] --- .../src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java | 2 +- .../xowa/htmls/portal/Xow_portal_mgr.java | 40 +++++++++++++++--- .../xowa/htmls/portal/Xow_portal_mgr_tst.java | 2 +- res/bin/any/xowa/addon/app/cfg/xo.cfg.sqlite3 | Bin 278528 -> 278528 bytes 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java index 802c741e8..d2f6408d1 100644 --- a/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java +++ b/400_xowa/src/gplx/xowa/htmls/Xoh_page_wtr_wkr.java @@ -120,7 +120,7 @@ public class Xoh_page_wtr_wkr { , portal_mgr.Div_footer(modified_on_msg, Xoa_app_.Version, Xoa_app_.Build_date) // sidebar divs - , portal_mgr.Div_personal_bry() + , portal_mgr.Div_personal_bry(page.Html_data().Hdump_exists()) , portal_mgr.Div_ns_bry(wiki.Utl__bfr_mkr(), page_ttl, wiki.Ns_mgr()) , portal_mgr.Div_view_bry(wiki.Utl__bfr_mkr(), html_gen_tid, page.Html_data().Xtn_search_text(), page_ttl) , portal_mgr.Div_logo_bry(nightmode_enabled), portal_mgr.Div_home_bry(), new Xopg_xtn_skin_fmtr_arg(page, Xopg_xtn_skin_itm_tid.Tid_sidebar) 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 a9925f242..ed4709789 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 @@ -28,6 +28,11 @@ public class Xow_portal_mgr implements Gfo_invk { private final Vnt_mnu_grp_fmtr vnt_menu_fmtr = new Vnt_mnu_grp_fmtr(); private final Gfo_url_encoder fsys_lnx_encoder = Gfo_url_encoder_.New__fsys_lnx().Make(); private boolean sidebar_enabled; + private boolean indicators_pagesource_enabled = false; + private byte[] + indicators_pagesource_wtxt = Bry_.new_a7("") + , indicators_pagesource_html = Bry_.new_a7("") + ; public Xow_portal_mgr(Xowe_wiki wiki) { this.wiki = wiki; this.sidebar_mgr = new Xoh_sidebar_mgr(wiki); @@ -42,7 +47,11 @@ public class Xow_portal_mgr implements Gfo_invk { lang_is_rtl = !lang.Dir_ltr(); } public void Init_by_wiki(Xowe_wiki wiki) { - wiki.App().Cfg().Bind_many_wiki(this, wiki, Cfg__divs__footer, Cfg__missing_class, Cfg__sidebar_enabled__desktop, Cfg__sidebar_enabled__server); + wiki.App().Cfg().Bind_many_wiki(this, wiki + , Cfg__divs__footer, Cfg__missing_class + , Cfg__sidebar_enabled__desktop, Cfg__sidebar_enabled__server + , Cfg__hdumps_indicators_enabled, Cfg__hdumps_indicators_wtxt, Cfg__hdumps_indicators_html + ); } private void Sidebar_enabled_(boolean is_desktop, boolean val) { // set sidebar_enabled if (a) is_gui and is_desktop; or (b) is_server and !is_desktop @@ -64,11 +73,9 @@ public class Xow_portal_mgr implements Gfo_invk { Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512(); Init_fmtr(tmp_bfr, eval_mgr, div_view_fmtr); Init_fmtr(tmp_bfr, eval_mgr, div_ns_fmtr); - byte[] wiki_user_name = wiki.User().Name(); - div_personal_bry = Init_fmtr(tmp_bfr, eval_mgr, div_personal_fmtr, Bry_.Add(Xoh_href_.Bry__wiki, wiki.Ns_mgr().Ids_get_or_null(Xow_ns_.Tid__user).Name_db_w_colon(), wiki_user_name), wiki_user_name, Ns_cls_by_id(wiki.Ns_mgr(), Xow_ns_.Tid__user), Bry_.Add(Xoh_href_.Bry__wiki, wiki.Ns_mgr().Ids_get_or_null(Xow_ns_.Tid__user_talk).Name_db_w_colon(), wiki_user_name), Ns_cls_by_id(wiki.Ns_mgr(), Xow_ns_.Tid__user_talk)); - byte[] main_page_href_bry = tmp_bfr.Add(Xoh_href_.Bry__site).Add(wiki.Domain_bry()).Add(Xoh_href_.Bry__wiki).To_bry_and_clear(); // NOTE: build /site/en.wikipedia.org/wiki/ href; no Main_Page, as that will be inserted by Xoh_href_parser // logo + byte[] main_page_href_bry = tmp_bfr.Add(Xoh_href_.Bry__site).Add(wiki.Domain_bry()).Add(Xoh_href_.Bry__wiki).To_bry_and_clear(); // NOTE: build /site/en.wikipedia.org/wiki/ href; no Main_Page, as that will be inserted by Xoh_href_parser Io_url wiki_css_dir = wiki.Appe().Usere().Fsys_mgr().Wiki_root_dir().GenSubDir_nest(wiki.Domain_str(), "html"); div_logo_day = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(wiki_css_dir.GenSubFil_nest("logo.png"))); @@ -98,7 +105,22 @@ public class Xow_portal_mgr implements Gfo_invk { return div_footer_bry; } - public byte[] Div_personal_bry() {return div_personal_bry;} private byte[] div_personal_bry = Bry_.Empty; + public byte[] Div_personal_bry(boolean from_hdump) { + Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b512(); + byte[] wiki_user_name = wiki.User().Name(); + byte[] rv = Init_fmtr(tmp_bfr, wiki.Eval_mgr(), div_personal_fmtr + , Bry_.Add(Xoh_href_.Bry__wiki, wiki.Ns_mgr().Ids_get_or_null(Xow_ns_.Tid__user).Name_db_w_colon(), wiki_user_name) + , wiki_user_name + , Ns_cls_by_id(wiki.Ns_mgr(), Xow_ns_.Tid__user) + , Bry_.Add(Xoh_href_.Bry__wiki, wiki.Ns_mgr().Ids_get_or_null(Xow_ns_.Tid__user_talk).Name_db_w_colon(), wiki_user_name) + , Ns_cls_by_id(wiki.Ns_mgr(), Xow_ns_.Tid__user_talk) + , indicators_pagesource_enabled + ? (from_hdump ? indicators_pagesource_html : indicators_pagesource_wtxt) + : Bry_.Empty + ); + tmp_bfr.Mkr_rls(); + return rv; + } public byte[] Div_ns_bry(Bry_bfr_mkr bfr_mkr, Xoa_ttl ttl, Xow_ns_mgr ns_mgr) { Xow_ns ns = ttl.Ns(); byte[] subj_cls = Ns_cls_by_ord(ns_mgr, ns.Ord_subj_id()), talk_cls = Ns_cls_by_ord(ns_mgr, ns.Ord_talk_id()); @@ -168,7 +190,7 @@ public class Xow_portal_mgr implements Gfo_invk { return tmp_bfr.To_bry_and_rls(); } private final Bry_fmtr - div_personal_fmtr = Bry_fmtr.new_("~{portal_personal_subj_href};~{portal_personal_subj_text};~{portal_personal_talk_cls};~{portal_personal_talk_href};~{portal_personal_talk_cls};", "portal_personal_subj_href", "portal_personal_subj_text", "portal_personal_subj_cls", "portal_personal_talk_href", "portal_personal_talk_cls") + div_personal_fmtr = Bry_fmtr.new_("~{portal_personal_subj_href};~{portal_personal_subj_text};~{portal_personal_talk_cls};~{portal_personal_talk_href};~{portal_personal_talk_cls};~{portal_indicators_pagesource}", "portal_personal_subj_href", "portal_personal_subj_text", "portal_personal_subj_cls", "portal_personal_talk_href", "portal_personal_talk_cls", "portal_indicators_pagesource") , div_ns_fmtr = Bry_fmtr.new_("~{portal_ns_subj_href};~{portal_ns_subj_cls};~{portal_ns_talk_href};~{portal_ns_talk_cls};~{portal_div_vnts}", "portal_ns_subj_href", "portal_ns_subj_cls", "portal_ns_talk_href", "portal_ns_talk_cls", "portal_div_vnts") , div_view_fmtr = Bry_fmtr.new_("", "portal_view_read_cls", "portal_view_edit_cls", "portal_view_html_cls", "search_text", "portal_view_read_href", "portal_view_edit_href", "portal_view_html_href", "sitename") , div_logo_fmtr = Bry_fmtr.new_("", "portal_nav_main_href", "portal_logo_url") @@ -192,6 +214,9 @@ public class Xow_portal_mgr implements Gfo_invk { else if (ctx.Match(k, Cfg__sidebar_enabled__desktop)) Sidebar_enabled_(Bool_.Y, m.ReadYn("v")); else if (ctx.Match(k, Cfg__sidebar_enabled__server)) Sidebar_enabled_(Bool_.N, m.ReadYn("v")); else if (ctx.Match(k, Cfg__divs__footer)) div_footer_fmtr.Fmt_(m.ReadBry("v")); + else if (ctx.Match(k, Cfg__hdumps_indicators_enabled)) indicators_pagesource_enabled = m.ReadYn("v"); + else if (ctx.Match(k, Cfg__hdumps_indicators_wtxt)) indicators_pagesource_wtxt = m.ReadBry("v"); + else if (ctx.Match(k, Cfg__hdumps_indicators_html)) indicators_pagesource_html = m.ReadBry("v"); else return Gfo_invk_.Rv_unhandled; return this; } @@ -214,5 +239,8 @@ public class Xow_portal_mgr implements Gfo_invk { , Cfg__sidebar_enabled__desktop = "xowa.html.portal.sidebar_enabled_desktop" , Cfg__sidebar_enabled__server = "xowa.html.portal.sidebar_enabled_server" , Cfg__divs__footer = "xowa.html.divs.footer" + , Cfg__hdumps_indicators_enabled = "xowa.wiki.hdumps.indicators.enabled" + , Cfg__hdumps_indicators_wtxt = "xowa.wiki.hdumps.indicators.html_if_wtxt" + , Cfg__hdumps_indicators_html = "xowa.wiki.hdumps.indicators.html_if_html" ; } 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 51a08a946..162dab39d 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 @@ -73,7 +73,7 @@ class Xowh_portal_mgr_fxt { 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()))); } public void Test_div_personal_bry(String expd) { - Tfds.Eq(expd, String_.new_a7(wiki.Html_mgr().Portal_mgr().Div_personal_bry())); + Tfds.Eq(expd, String_.new_a7(wiki.Html_mgr().Portal_mgr().Div_personal_bry(false))); } public void Test_missing_ns_cls(String expd) { Tfds.Eq(expd, String_.new_a7(wiki.Html_mgr().Portal_mgr().Missing_ns_cls())); diff --git a/res/bin/any/xowa/addon/app/cfg/xo.cfg.sqlite3 b/res/bin/any/xowa/addon/app/cfg/xo.cfg.sqlite3 index 4db4a2a56a453c401d6e52794936d39322d695cd..7d1e3a1e9892484ddfaa7da8e9b48a393b559e6d 100644 GIT binary patch delta 1458 zcma)+Z%i9y9LMkZJuP=V+B=FfqaA+^hhb)03tBi?uq!YJ#LY3ljFBKc;GiAluC|A5 zVjL}v(-(6aY2q1Q7&UvdnV675FY^U1@ej$O!e&g2&d6pkMu#QpoB2kc7Kcg<*(G z@}Fla{g?PEGFO}YStY^y(kJyKxKn5PNT^wFC*QKn59;?kZ6~s7?Lc~Y%0u!fNz;ix z0ZL|*45}7z8*Gz=IG3rPURukp04gz10%1RX4E5>s3JQWbJ=0QQoL@mEvz^QBHBjEk$t@2o9FZ4`XQ=eQTFPs1H_9i2gK)<$bZv7;DU7MOiZDTB;Scz!RG zp($TZBoOz2taS7qJtD*cvLY1Jq1NWGx1cmthz8V{Fsep2rbZ-98j_-Nlx=p0y=+IW zksw6*--r|Bcr`h$3IC7ToOWzsCF8k7lNZgSQ?XsV3dqZ1eGyiG@?!j`7#&s*pj>cRvhov!@a;dH|UD01;}5l zAT+x}K`(JO8Pcl&s(09P9%8SW9CPPppJXv0TNA0UgE~ubHtQ|xHFk(TOg~J!3negWq$@xHe%(p7agc3# zWGONnFy4Luo;Mkfl)<}r-UYv*tN^AG?4hpdv>#fEkb;~R4g; zvN*>YZ!E$o2A9JXonD5R6~4BGY!WQNM{vcMUIsVpW65I3^U#fZGK;R?lk;eKLlPQV zGFERum932B1d9KP*ZBy4n0IhLaqn}lasf^-%EQRS8N}HN%C3XShmYX9I$ej)v!-Y8 zT~jR+W4dRPC-KyNJh0tW^Pg@Ijr(1lFSVH6gL}4RlOh)7t0>ODeAA4v#-R8lWv)bAz2r-CArGUy>f&4mw|BYG;renB1hobQ42J)8r_G!4@R^=4okxSXcc9Ps5pdo3Rd8OVnT!l(8bk7=(Um_F}?^&o?#<~ zZ?r4k-*&OrTj%ZQ?Ge*ih`4JEQcv(MhH!_z;kaDbQMj+L++J#@`Omf8np1E~(eBvkFxV!`v1K;L zp0UU54jW?^SQl$%bx^Hsvy#_%{uVqfZWZAb6l+`YlH#;4u$()O7^N)Ue>@&N-+e~J z-1vwp@&{eQsK65-ZDL-u?f=2lQuE=63=SXg;}o7