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 4db4a2a56..7d1e3a1e9 100644
Binary files a/res/bin/any/xowa/addon/app/cfg/xo.cfg.sqlite3 and b/res/bin/any/xowa/addon/app/cfg/xo.cfg.sqlite3 differ