1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

'v3.8.1.1'

This commit is contained in:
gnosygnu
2016-07-31 21:41:19 -04:00
parent 8e91ac0bc4
commit b0fdf78a41
388 changed files with 3517 additions and 2553 deletions

View File

@@ -22,13 +22,13 @@ import gplx.xowa.htmls.heads.*; import gplx.xowa.htmls.sections.*; import gplx.x
import gplx.xowa.wikis.pages.dbs.*; import gplx.xowa.wikis.pages.hdumps.*; import gplx.xowa.wikis.pages.htmls.*;
public class Xoh_page implements Xoa_page {
// core
public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
public Xoa_url Url() {return page_url;} private Xoa_url page_url;
public Xoa_ttl Ttl() {return page_ttl;} private Xoa_ttl page_ttl;
public Xopg_db_data Db() {return db;} private final Xopg_db_data db = new Xopg_db_data();
public Xopg_redirect_mgr Redirect() {return redirect;} private final Xopg_redirect_mgr redirect = new Xopg_redirect_mgr();
public Xopg_html_data Html_data() {return html;} private final Xopg_html_data html = new Xopg_html_data();
public Xopg_hdump_data Hdump_mgr() {return hdump;} private final Xopg_hdump_data hdump = new Xopg_hdump_data();
public Xow_wiki Wiki() {return wiki;} private Xow_wiki wiki;
public Xoa_url Url() {return page_url;} private Xoa_url page_url;
public Xoa_ttl Ttl() {return page_ttl;} private Xoa_ttl page_ttl;
public Xopg_db_data Db() {return db;} private final Xopg_db_data db = new Xopg_db_data();
public Xopg_redirect_mgr Redirect_trail() {return redirect;} private final Xopg_redirect_mgr redirect = new Xopg_redirect_mgr();
public Xopg_html_data Html_data() {return html;} private final Xopg_html_data html = new Xopg_html_data();
public Xopg_hdump_data Hdump_mgr() {return hdump;} private final Xopg_hdump_data hdump = new Xopg_hdump_data();
public void Xtn_gallery_packed_exists_y_() {}
public boolean Xtn__timeline_exists() {return xtn__timeline_exists;} private boolean xtn__timeline_exists; public void Xtn__timeline_exists_y_() {xtn__timeline_exists = true;}
@@ -54,7 +54,7 @@ public class Xoh_page implements Xoa_page {
html.Redlink_list().Disabled_(page_ttl.Ns().Id_is_module()); // never redlink in Module ns; particularly since Lua has multi-line comments for [[ ]]
html.Toc_mgr().Init(wiki.Lang().Msg_mgr().Itm_by_id_or_null(gplx.xowa.langs.msgs.Xol_msg_itm_.Id_toc).Val(), page_url.Raw());
}
public Xoh_page Ctor_by_hdiff(Bry_bfr tmp_bfr, Xoae_page page) {
public Xoh_page Ctor_by_hdiff(Bry_bfr tmp_bfr, Xoae_page page, byte[] toc_label) {
this.wiki = page.Wiki(); this.page_url = page.Url(); this.page_ttl = page.Ttl(); this.page_id = page.Db().Page().Id();
db.Html().Html_bry_(page.Db().Html().Html_bry());
@@ -67,7 +67,7 @@ public class Xoh_page implements Xoa_page {
this.content_sub = html.Content_sub();
this.sidebar_div = Xoh_page_.Save_sidebars(tmp_bfr, page, html);
html.Toc_mgr().Init(Bry_.Empty, page_url.Page_bry());
html.Toc_mgr().Init(toc_label, page_url.Page_bry());
return this;
}
public void Ctor_by_db(int head_flag, byte[] display_ttl, byte[] content_sub, byte[] sidebar_div, int zip_tid, int hzip_tid, byte[] body) {

View File

@@ -19,7 +19,7 @@ package gplx.xowa.htmls; import gplx.*; import gplx.xowa.*;
import gplx.core.brys.fmtrs.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*; import gplx.langs.htmls.*; import gplx.xowa.langs.vnts.*; import gplx.xowa.htmls.core.htmls.*;
import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.pages.skins.*;
import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.parsers.*; import gplx.xowa.xtns.wdatas.*;
import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.*; import gplx.xowa.wikis.domains.*; import gplx.xowa.parsers.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.xtns.pagebanners.*;
import gplx.xowa.apps.gfs.*; import gplx.xowa.htmls.portal.*;
public class Xoh_page_wtr_wkr {
@@ -45,7 +45,7 @@ public class Xoh_page_wtr_wkr {
// ctx.Page().Redlink_list().Clear(); // not sure if this is the best place to put it, but redlinks (a) must only fire once; (b) must fire before html generation; (c) cannot fire during edit (preview will handle separately); NOTE: probably put in to handle reusable redlink lists; redlink lists are now instantiated per page, so clear is not useful
break;
}
Bry_bfr page_bfr = Xoa_app_.Utl__bfr_mkr().Get_m001(); // NOTE: get separate page rv to output page; do not reuse tmp_bfr b/c it will be used inside Fmt_do
Bry_bfr page_bfr = wiki.Utl__bfr_mkr().Get_m001(); // NOTE: get separate page rv to output page; do not reuse tmp_bfr b/c it will be used inside Fmt_do
Xoh_wtr_ctx hctx = null;
if (page_mode == Xopg_page_.Tid_html && wiki.App().Api_root().Wiki().Hdump().Html_mode().Tid_is_hdump_save()) {
hctx = Xoh_wtr_ctx.Hdump;

View File

@@ -23,7 +23,7 @@ public class Xoh_page_wtr_wkr_ {
public static byte[] Bld_page_content_sub(Xoae_app app, Xowe_wiki wiki, Xoae_page page, Bry_bfr tmp_bfr) {
byte[] subpages = app.Html_mgr().Page_mgr().Subpages_bldr().Bld(wiki.Ns_mgr(), page.Ttl());
byte[] page_content_sub = page.Html_data().Content_sub(); // contentSub exists; SEE: {{#isin}}
byte[] redirect_msg = Xop_redirect_mgr.Bld_redirect_msg(app, wiki, page.Redirect());
byte[] redirect_msg = Xop_redirect_mgr.Bld_redirect_msg(app, wiki, page.Redirect_trail());
return Bry_.Add(subpages, page_content_sub, redirect_msg);
}
public static byte[] Bld_page_name(Bry_bfr tmp_bfr, Xoa_ttl ttl, byte[] display_ttl) {

View File

@@ -47,15 +47,15 @@ class Xoh_ctg_itm_fmtr implements gplx.core.brys.Bfr_arg {
public void Set(Xoae_page page, Bry_fmtr itm_fmtr) {this.page = page; this.itm_fmtr = itm_fmtr;} private Xoae_page page; Bry_fmtr itm_fmtr;
public void Bfr_arg__add(Bry_bfr bfr) {
int ctgs_len = page.Category_list().length;
Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b128();
Bry_bfr tmp_href = Xoa_app_.Utl__bfr_mkr().Get_b128();
Xowe_wiki wiki = page.Wikie();
Bry_bfr tmp_bfr = wiki.Utl__bfr_mkr().Get_b128();
Bry_bfr tmp_href = wiki.Utl__bfr_mkr().Get_b128();
Xoae_app app = wiki.Appe();
byte[] ctg_prefix = wiki.Ns_mgr().Ns_category().Name_db_w_colon();
for (int i = 0; i < ctgs_len; i++) {
byte[] page_name = page.Category_list()[i];
tmp_bfr.Add(ctg_prefix).Add(page_name);
page.Wikie().Html__href_wtr().Build_to_bfr(tmp_href, app, wiki.Domain_bry(), wiki.Ttl_parse(tmp_bfr.To_bry_and_clear()));
wiki.Html__href_wtr().Build_to_bfr(tmp_href, app, wiki.Domain_bry(), wiki.Ttl_parse(tmp_bfr.To_bry_and_clear()));
itm_fmtr.Bld_bfr(bfr, tmp_href.To_bry_and_clear(), page_name, page_name);
}
tmp_bfr.Mkr_rls();

View File

@@ -61,7 +61,7 @@ public class Xow_html_mgr implements Gfo_invk {
public byte[] Img_xowa_protocol() {return img_xowa_protocol;} private byte[] img_xowa_protocol;
public boolean Img_suppress_missing_src() {return img_suppress_missing_src;} public Xow_html_mgr Img_suppress_missing_src_(boolean v) {img_suppress_missing_src = v; return this;} private boolean img_suppress_missing_src = true;
public Xohp_ctg_grp_mgr Ctg_mgr() {return ctg_mgr;} private Xohp_ctg_grp_mgr ctg_mgr = new Xohp_ctg_grp_mgr();
public Xoctg_html_mgr Ns_ctg() {return ns_ctg;} private Xoctg_html_mgr ns_ctg = new Xoctg_html_mgr();
public Xoctg_html_mgr Ns_ctg() {return ns_ctg;} private final Xoctg_html_mgr ns_ctg = new Xoctg_html_mgr();
public Xoh_imgs_mgr Imgs_mgr() {return imgs_mgr;} private Xoh_imgs_mgr imgs_mgr;
public void Copy_cfg(Xow_html_mgr html_mgr) {imgs_mgr.Copy_cfg(html_mgr.Imgs_mgr());}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {

View File

@@ -19,8 +19,8 @@ package gplx.xowa.htmls.bridges.dbuis.fmtrs; import gplx.*; import gplx.xowa.*;
import gplx.core.brys.fmtrs.*;
import gplx.xowa.htmls.bridges.dbuis.tbls.*;
public class Dbui_cells_fmtr implements gplx.core.brys.Bfr_arg {
private final Dbui_cell_fmtr cell_fmtr = new Dbui_cell_fmtr();
private final Dbui_btn_fmtr btn_fmtr = new Dbui_btn_fmtr();
private final Dbui_cell_fmtr cell_fmtr = new Dbui_cell_fmtr();
private final Dbui_btn_fmtr btn_fmtr = new Dbui_btn_fmtr();
private Dbui_btn_itm[] btns;
private byte[] row_key; private Dbui_row_itm row_itm;
public void Ctor(Dbui_val_fmtr val_fmtr, Dbui_btn_itm[] btns) {
@@ -33,7 +33,7 @@ public class Dbui_cells_fmtr implements gplx.core.brys.Bfr_arg {
public void Bfr_arg__add(Bry_bfr bfr) {
fmtr.Bld_bfr_many(bfr, cell_fmtr.Init(row_key, row_itm), btn_fmtr.Init(row_key, btns));
}
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, " <div class='xo_drag_handle xo_cell'></div>~{vals}"
, " <div class='xo_cell'>~{btns}"
@@ -53,7 +53,7 @@ class Dbui_cell_fmtr implements gplx.core.brys.Bfr_arg {
fmtr.Bld_bfr_many(bfr, row_key, i, val_fmtr.Init(cols[i], row_key, val));
}
}
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, " <div class='xo_cell'>~{html}</div>"
), "row_key", "val_idx", "html");
@@ -71,7 +71,7 @@ class Dbui_btn_fmtr implements gplx.core.brys.Bfr_arg {
fmtr.Bld_bfr_many(bfr, row_key, btn.Cmd(), img_dir.GenSubFil(btn.Img()).To_http_file_bry(), btn.Text());
}
}
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, " <span><a href='javascript:~{btn_cmd}(\"~{row_key}\");'><img src='~{btn_img}' title='~{btn_text}'/></a></span>"
), "row_key", "btn_cmd", "btn_img", "btn_text");

View File

@@ -38,11 +38,11 @@ class Dbui_val_fmtr__edit implements gplx.core.brys.Bfr_arg, Dbui_val_fmtr {
default: throw Err_.new_unimplemented();
}
}
private static final Bry_fmtr input_fmtr_str = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
private static final Bry_fmtr input_fmtr_str = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, " <input class='dbui_cell xo_resizable_col' dbui_col='~{col_key}' style='border:1px solid black; width:~{width}px' value='~{value}' onkeyup='Dbui__edit__keyup(event, \"~{row_id}\");'/>"
), "col_key", "width", "value", "row_id");
private static final Bry_fmtr textarea_fmtr_str = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
private static final Bry_fmtr textarea_fmtr_str = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, " <textarea class='dbui_cell' dbui_col='~{col_key}' style='border:1px solid black; width:~{width}px; height:18px;' onkeyup='Dbui__edit__keyup(event, \"~{row_id}\");'>~{value}</textarea>"
), "col_key", "width", "value", "row_id");

View File

@@ -32,7 +32,7 @@ public class Xow_hdump_mgr__save {
public int Save(Xoae_page page) {
synchronized (tmp_hpg) {
Bld_hdump(page);
tmp_hpg.Ctor_by_hdiff(tmp_bfr, page);
tmp_hpg.Ctor_by_hdiff(tmp_bfr, page, page.Wikie().Msg_mgr().Val_by_id(gplx.xowa.langs.msgs.Xol_msg_itm_.Id_toc));
Xow_db_file html_db = Get_html_db(wiki, page, html_db_is_new.Val_n_());
return Save(tmp_hpg, html_db.Tbl__html(), html_db_is_new.Val());
}

View File

@@ -28,14 +28,17 @@ public class Xob_hdump_bldr implements Gfo_invk {
private int prv_row_len = 0;
private final Xoh_page tmp_hpg = new Xoh_page(); private final Bry_bfr tmp_bfr = Bry_bfr_.New();
private boolean op_sys_is_wnt;
private byte[] toc_label = Bry_.Empty;
public Xob_hdump_bldr Enabled_(boolean v) {this.enabled = v; return this;}
public Xob_hdump_bldr Hzip_enabled_(boolean v) {this.hzip_enabled = v; return this;}
public Xob_hdump_bldr Hzip_diff_(boolean v) {this.hzip_diff = v; return this;}
public Xob_hdump_bldr Zip_tid_(byte v) {this.zip_tid = v; return this;}
public boolean Init(Xowe_wiki wiki, Db_conn make_conn, Xob_hdump_tbl_retriever html_tbl_retriever) {
if (!enabled) return false;
this.op_sys_is_wnt = gplx.core.envs.Op_sys.Cur().Tid_is_wnt();
this.wiki = wiki; this.hdump_mgr = wiki.Html__hdump_mgr(); this.html_tbl_retriever = html_tbl_retriever;
this.stat_tbl = new Xoh_stat_tbl(make_conn); this.stat_itm = hdump_mgr.Hzip_mgr().Hctx().Hzip__stat();
this.toc_label = wiki.Msg_mgr().Val_by_id(gplx.xowa.langs.msgs.Xol_msg_itm_.Id_toc);
Xoapi_import import_cfg = wiki.Appe().Api_root().Bldr().Wiki().Import();
if (zip_tid == Byte_.Max_value_127) zip_tid = import_cfg.Zip_tid_html();
@@ -54,7 +57,7 @@ public class Xob_hdump_bldr implements Gfo_invk {
// save to db
Xowd_html_tbl html_tbl = html_tbl_retriever.Get_html_tbl(wpg.Ttl().Ns(), prv_row_len); // get html_tbl
this.prv_row_len = hdump_mgr.Save_mgr().Save(tmp_hpg.Ctor_by_hdiff(tmp_bfr, wpg), html_tbl, true); // save to db
this.prv_row_len = hdump_mgr.Save_mgr().Save(tmp_hpg.Ctor_by_hdiff(tmp_bfr, wpg, toc_label), html_tbl, true); // save to db
stat_tbl.Insert(tmp_hpg, stat_itm, wpg.Root().Root_src().length, tmp_hpg.Db().Html().Html_bry().length, prv_row_len); // save stats
// run hzip diff if enabled

View File

@@ -22,7 +22,7 @@ import gplx.xowa.htmls.core.wkrs.hdrs.*; import gplx.xowa.htmls.core.wkrs.lnkes.
import gplx.xowa.wikis.domains.*;
import gplx.xowa.parsers.*; import gplx.xowa.parsers.apos.*; import gplx.xowa.parsers.amps.*; import gplx.xowa.parsers.lnkes.*; import gplx.xowa.parsers.lists.*; import gplx.xowa.htmls.core.wkrs.lnkis.htmls.*; import gplx.xowa.parsers.tblws.*; import gplx.xowa.parsers.paras.*; import gplx.xowa.parsers.xndes.*; import gplx.xowa.parsers.lnkis.*; import gplx.xowa.parsers.miscs.*; import gplx.xowa.parsers.htmls.*;
import gplx.xowa.xtns.*; import gplx.xowa.xtns.cites.*; import gplx.xowa.parsers.hdrs.*;
public class Xoh_html_wtr {
public class Xoh_html_wtr {
private final Xoae_app app; private final Xowe_wiki wiki; private final Xow_html_mgr html_mgr; private final Xop_xatr_whitelist_mgr whitelist_mgr;
private Xoae_page page;
private int indent_level;

View File

@@ -18,8 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.htmls.core.wkrs.bfr_args; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.core.wkrs.*;
import gplx.core.brys.*; import gplx.core.brys.fmtrs.*;
public class Bfr_arg__hatr_fmtr implements Bfr_arg {
private final byte[] atr_bgn;
private final Bry_fmtr fmtr = Bry_fmtr.new_();
private final byte[] atr_bgn;
private final Bry_fmtr fmtr = Bry_fmtr.new_();
private Object[] args;
public Bfr_arg__hatr_fmtr(byte[] key, String fmt, String... keys) {
this.atr_bgn = Bfr_arg__hatr_.Bld_atr_bgn(key);

View File

@@ -22,6 +22,7 @@ import gplx.xowa.parsers.*; import gplx.xowa.parsers.lnkes.*;
import gplx.xowa.htmls.core.htmls.*;
public class Xoh_lnke_html {
private static final byte[] Disabled_button = Bry_.new_a7("&#x2297;");
private final Gfo_url_encoder href_encoder = Gfo_url_encoder_.New__html_href_quotes().Make();
public void Write_html(Bry_bfr bfr, Xow_html_mgr html_mgr, Xoh_html_wtr html_wtr, Xoh_wtr_ctx hctx, Xop_ctx ctx, byte[] src, Xop_lnke_tkn lnke) {
int href_bgn = lnke.Lnke_href_bgn(), href_end = lnke.Lnke_href_end(); boolean proto_is_xowa = lnke.Proto_tid() == Gfo_protocol_itm.Tid_xowa;
byte lnke_type = Calc_type(lnke);
@@ -68,9 +69,9 @@ public class Xoh_lnke_html {
}
}
else { // xwiki
Gfo_url_encoder href_encoder = gplx.langs.htmls.encoders.Gfo_url_encoder_.Href_quotes;
byte[] xwiki_page_enc = href_encoder.Encode(lnke.Lnke_xwiki_page());
bfr.Add(Xoh_href_.Bry__site).Add(lnke_xwiki_wiki).Add(Xoh_href_.Bry__wiki)
.Add(href_encoder.Encode(lnke.Lnke_xwiki_page())); // NOTE: must encode page; EX:%22%3D -> '">' which will end attribute; PAGE:en.w:List_of_Category_A_listed_buildings_in_West_Lothian DATE:2014-07-15
.Add(xwiki_page_enc); // NOTE: must encode page; EX:%22%3D -> '">' which will end attribute; PAGE:en.w:List_of_Category_A_listed_buildings_in_West_Lothian DATE:2014-07-15
if (lnke.Lnke_xwiki_qargs() != null)
Gfo_qarg_mgr_old.Concat_bfr(bfr, href_encoder, lnke.Lnke_xwiki_qargs()); // NOTE: must encode args
return ctx.Wiki().App().Xwiki_mgr__missing(lnke_xwiki_wiki); // write "external" if hdump or xwiki is missing

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.htmls.core.wkrs.lnkis.htmls; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*; import gplx.xowa.htmls.core.*; import gplx.xowa.htmls.core.wkrs.*; import gplx.xowa.htmls.core.wkrs.lnkis.*;
import gplx.langs.htmls.*; import gplx.xowa.files.*; import gplx.xowa.users.history.*; import gplx.xowa.xtns.pfuncs.ttls.*; import gplx.xowa.xtns.relatedSites.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.xwikis.*; import gplx.xowa.xtns.wdatas.core.*;
import gplx.xowa.wikis.xwikis.*; import gplx.xowa.xtns.wbases.core.*;
import gplx.xowa.htmls.core.htmls.*; import gplx.xowa.htmls.core.hzips.*;
import gplx.xowa.parsers.*; import gplx.xowa.parsers.lnkis.*; import gplx.xowa.wikis.pages.lnkis.*;
public class Xoh_lnki_wtr {

View File

@@ -45,7 +45,7 @@ public class Xow_fragment_mgr implements Gfo_invk {
}
public static final String Invk_html_js_edit_toolbar_fmt_ = "html_js_edit_toolbar_fmt_", Invk_html_js_edit_toolbar = "html_js_edit_toolbar";
public void Evt_lang_changed(Xol_lang_itm lang) {
Bry_bfr bfr = Xoa_app_.Utl__bfr_mkr().Get_b512();
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
Xow_msg_mgr msg_mgr = wiki.Appe().Usere().Msg_mgr();
html_js_edit_toolbar = html_js_edit_toolbar_fmtr.Bld_bry_many(bfr
, msg_mgr.Val_by_id(Xol_msg_itm_.Id_edit_toolbar_bold_tip)

View File

@@ -131,7 +131,7 @@ public class Xoh_js_cbk implements Gfo_invk {
private String[] Wikidata_get_label(GfoMsg m) {
try {
Thread_adp_.Sleep(10); // slow down calls to prevent random crashing in XulRunner; DATE:2014-04-23
gplx.xowa.xtns.wdatas.Wdata_wiki_mgr wdata_mgr = app.Wiki_mgr().Wdata_mgr();
gplx.xowa.xtns.wbases.Wdata_wiki_mgr wdata_mgr = app.Wiki_mgr().Wdata_mgr();
wdata_mgr.Wdata_wiki().Init_assert(); // NOTE: must assert else ns_mgr won't load Property
int len = m.Args_count();
if (len < 1) return null;
@@ -141,7 +141,7 @@ public class Xoh_js_cbk implements Gfo_invk {
for (int i = 1; i < len; i++) {
try {
byte[] ttl_bry = m.Args_getAt(i).Val_to_bry();
gplx.xowa.xtns.wdatas.Wdata_doc page = wdata_mgr.Doc_mgr.Get_by_xid_or_null(ttl_bry); if (page == null) continue;
gplx.xowa.xtns.wbases.Wdata_doc page = wdata_mgr.Doc_mgr.Get_by_xid_or_null(ttl_bry); if (page == null) continue;
for (int j = 0; j < langs_len; j++) {
byte[] lang_key = langs[j];
if (Bry_.Eq(lang_key, Wikidata_get_label_xowa_ui_lang))

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.htmls.js; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
import org.junit.*; import gplx.xowa.xtns.wdatas.*;
import org.junit.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.guis.views.*;
public class Xoh_js_cbk_tst {
@Before public void init() {fxt.Clear();} private Xoh_js_cbk_fxt fxt = new Xoh_js_cbk_fxt();

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.htmls.js; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
import org.junit.*; import gplx.langs.jsons.*; import gplx.xowa.xtns.wdatas.*;
import org.junit.*; import gplx.langs.jsons.*; import gplx.xowa.xtns.wbases.*;
public class Xoh_js_cbk_wdata_labels_tst {
@Before public void init() {fxt.Init();} private final Wdata_wiki_mgr_fxt fxt = new Wdata_wiki_mgr_fxt();
@Test public void Basic() {

View File

@@ -23,7 +23,7 @@ public class Xoh_file_page_wtr {
public Int_2_ref[] Size_alts() {return size_alts;} private Int_2_ref[] size_alts = new Int_2_ref[] {new Int_2_ref(320, 240), new Int_2_ref(640, 480), new Int_2_ref(800, 600), new Int_2_ref(1024, 768), new Int_2_ref(1280, 1024)};
public byte[] Html_alt_dlm_dflt() {return html_alt_dlm_dflt;} private byte[] html_alt_dlm_dflt = Bry_.new_a7("|");
public byte[] Html_alt_dlm_last() {return html_alt_dlm_last;} private byte[] html_alt_dlm_last = Bry_.new_a7(".");
public Bry_fmtr Html_main() {return html_main;} private final Bry_fmtr html_main = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
public Bry_fmtr Html_main() {return html_main;} private final Bry_fmtr html_main = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( "~{commons_notice}<ul id=\"filetoc\">"
, " <li>"
, " <a href=\"#file\">"
@@ -49,7 +49,7 @@ public class Xoh_file_page_wtr {
, "~{media}"
)
, "media", "commons_notice");
public Bry_fmtr Html_main_img() {return html_main_img;} private final Bry_fmtr html_main_img = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
public Bry_fmtr Html_main_img() {return html_main_img;} private final Bry_fmtr html_main_img = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( "<div class=\"fullImageLink\" id=\"file\">"
, " <a href=\"~{orig_href}\" xowa_title=\"~{thumb_name}\">"
, " <img id=\"xoimg_~{elem_id}\" alt=\"~{thumb_alt}\" src=\"~{thumb_href}\" width=\"~{thumb_width}\" height=\"~{thumb_height}\" />"
@@ -76,13 +76,13 @@ public class Xoh_file_page_wtr {
, "</div>"
, ""
), "orig_width", "orig_height", "orig_href", "orig_file_size", "orig_mime_type", "elem_id", "thumb_width", "thumb_height", "thumb_href", "thumb_alt", "thumb_name", "section_alts");
public Bry_fmtr Html_main_aud() {return html_main_aud;} private final Bry_fmtr html_main_aud = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
public Bry_fmtr Html_main_aud() {return html_main_aud;} private final Bry_fmtr html_main_aud = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( "<div class=\"fullImageLink\" id=\"file\">"
, " <div><a href=\"~{lnki_url}\" xowa_title=\"~{xowa_title}\" class=\"xowa_media_play\" style=\"width:~{play_width}px;max-width:~{play_max_width}px;\" alt=\"Play sound\"></a></div>"
, "</div>"
, ""
), "lnki_url", "xowa_title", "play_width", "play_max_width", "play_icon");
public Bry_fmtr Html_main_vid() {return html_main_vid;} private final Bry_fmtr html_main_vid = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
public Bry_fmtr Html_main_vid() {return html_main_vid;} private final Bry_fmtr html_main_vid = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( "<div class=\"fullImageLink\" id=\"file\">"
, " <div>"
, " <a href=\"~{lnki_href}\" class=\"~{lnki_class}\" title=\"~{xowa_title}\">"
@@ -93,7 +93,7 @@ public class Xoh_file_page_wtr {
, "</div>"
, ""
), "elem_id", "lnki_href", "lnki_class", "xowa_title", "lnki_src", "lnki_width", "lnki_height", "lnki_alt", "lnki_url", "play_width", "play_max_width", "play_icon");
public Bry_fmtr Html_alts() {return html_alts;} private final Bry_fmtr html_alts = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
public Bry_fmtr Html_alts() {return html_alts;} private final Bry_fmtr html_alts = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( " <a href=\"~{thumb_href}\" class=\"mw-thumbnail-link\" xowa_title=\"~{xowa_title}\">"
, " ~{thumb_width} × ~{thumb_height}"
, " </a>"

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.htmls.portal; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.*;
import gplx.xowa.wikis.*; import gplx.xowa.xtns.wbases.*;
import gplx.xowa.wikis.nss.*;
public class Xoh_page_body_cls { // REF.MW:Skin.php|getPageClasses
public static byte[] Calc(Bry_bfr tmp_bfr, Xoa_ttl ttl, int page_tid) {

View File

@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.htmls.portal; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
import org.junit.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.wdatas.*;
import org.junit.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.wbases.*;
public class Xoh_page_body_cls_tst {
@Before public void init() {} private Xoh_page_body_cls_fxt fxt = new Xoh_page_body_cls_fxt();
@Test public void Escape_cls() {

View File

@@ -19,7 +19,7 @@ package gplx.xowa.htmls.portal.vnts; import gplx.*; import gplx.xowa.*; import g
import gplx.core.brys.fmtrs.*;
import gplx.xowa.langs.vnts.*;
public class Vnt_mnu_grp_fmtr implements gplx.core.brys.Bfr_arg {
private final Xolg_vnt_itm_fmtr itm_fmtr = new Xolg_vnt_itm_fmtr();
private final Xolg_vnt_itm_fmtr itm_fmtr = new Xolg_vnt_itm_fmtr();
private Xol_vnt_regy mgr; private byte[] page_vnt;
public void Init(Xol_vnt_regy mgr, byte[] wiki_domain, byte[] page_href, byte[] page_vnt) {
this.mgr = mgr; this.page_vnt = page_vnt;
@@ -29,7 +29,7 @@ public class Vnt_mnu_grp_fmtr implements gplx.core.brys.Bfr_arg {
Xol_vnt_itm mnu_itm = mgr.Get_by(page_vnt);
fmtr.Bld_bfr_many(bfr, mnu_itm == null ? Bry_.Empty : mnu_itm.Name(), itm_fmtr);
}
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last
( ""
, " <div id='p-variants' role='navigation' class='vectorMenu' aria-labelledby='p-variants-label'>"
, " <h3 id='p-variants-label'><span>~{grp_text}</span><a href='#'></a></h3>"
@@ -53,8 +53,8 @@ class Xolg_vnt_itm_fmtr implements gplx.core.brys.Bfr_arg {
fmtr.Bld_bfr_many(bfr, i, itm_cls_selected, wiki_domain, itm.Key(), itm.Name(), page_href);
}
}
private static final byte[] Itm_cls_selected_y = Bry_.new_a7(" class='selected'");
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last // NOTE: using "/site/zh.w/zh-hans/A" instead of "/zh-hans/A" b/c it is easier for href_parser; if /site/ ever needs to truly mean "not-this-site", then change this to "/lang/"; DATE:2015-07-30
private static final byte[] Itm_cls_selected_y = Bry_.new_a7(" class='selected'");
private static final Bry_fmtr fmtr = Bry_fmtr.new_(String_.Concat_lines_nl_skip_last // NOTE: using "/site/zh.w/zh-hans/A" instead of "/zh-hans/A" b/c it is easier for href_parser; if /site/ ever needs to truly mean "not-this-site", then change this to "/lang/"; DATE:2015-07-30
( ""
, " <li id='ca-varlang-~{itm_idx}'~{itm_cls_selected}><a href='/site/~{wiki_domain}/~{itm_lang}/~{itm_href}' lang='~{itm_lang}' hreflang='~{itm_lang}' class='xowa-hover-off'>~{itm_text}</a></li>"
), "itm_idx", "itm_cls_selected", "wiki_domain", "itm_lang", "itm_text", "itm_href"