mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Night-mode: Allow custom night-mode logos per wiki
This commit is contained in:
parent
31bc573a29
commit
67fc90d43f
@ -30,8 +30,8 @@ public class Xoa_app_ {
|
||||
}
|
||||
}
|
||||
public static final String Name = "xowa";
|
||||
public static final int Version_id = 528;
|
||||
public static final String Version = "4.5.6.1706";
|
||||
public static final int Version_id = 529;
|
||||
public static final String Version = "4.5.7.1706";
|
||||
public static String Build_date = "2012-12-30 00:00:00";
|
||||
public static String Build_date_fmt = "yyyy-MM-dd HH:mm:ss";
|
||||
public static String Op_sys_str;
|
||||
|
@ -66,8 +66,24 @@ public class Xow_portal_mgr implements Gfo_invk {
|
||||
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
|
||||
div_logo_day = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(wiki.Appe().Usere().Fsys_mgr().Wiki_root_dir().GenSubFil_nest(wiki.Domain_str(), "html", "logo.png")));
|
||||
div_logo_night = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(wiki.Appe().Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("html", "css", "nightmode", "logo.png")));
|
||||
|
||||
// logo
|
||||
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")));
|
||||
|
||||
// night-mode logo; check if wiki-version exists, else use app-version
|
||||
Io_url night_logo = null;
|
||||
Io_url night_logo_wiki = wiki_css_dir.GenSubFil("logo_night.png");
|
||||
if (Io_mgr.Instance.Exists(night_logo_wiki)) {
|
||||
night_logo = night_logo_wiki;
|
||||
}
|
||||
else {
|
||||
night_logo = wiki.Appe().Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("html", "css", "nightmode", "logo.png");
|
||||
}
|
||||
div_logo_night = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(night_logo));
|
||||
|
||||
// div_logo_day = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(wiki.Appe().Usere().Fsys_mgr().Wiki_root_dir().GenSubFil_nest(wiki.Domain_str(), "html", "logo.png")));
|
||||
// div_logo_night = Init_fmtr(tmp_bfr, eval_mgr, div_logo_fmtr, main_page_href_bry, fsys_lnx_encoder.Encode_to_file_protocol(wiki.Appe().Fsys_mgr().Bin_xowa_dir().GenSubFil_nest("html", "css", "nightmode", "logo.png")));
|
||||
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();
|
||||
@ -143,6 +159,7 @@ public class Xow_portal_mgr implements Gfo_invk {
|
||||
, div_sync_fmtr = Bry_fmtr.new_("", "page_url")
|
||||
, div_wikis_fmtr = Bry_fmtr.new_("", "toggle_btn", "toggle_hdr")
|
||||
;
|
||||
public Bry_fmtr Div_logo_fmtr() {return div_logo_fmtr;} // TEST:
|
||||
private byte[] Reverse_li(byte[] bry) {
|
||||
return lang_is_rtl ? Xoh_rtl_utl.Reverse_li(bry) : bry;
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
|
||||
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
*/
|
||||
package gplx.xowa.htmls.portal; import gplx.*; import gplx.xowa.*; import gplx.xowa.htmls.*;
|
||||
import org.junit.*;
|
||||
import org.junit.*; import gplx.core.tests.*;
|
||||
public class Xow_portal_mgr_tst {
|
||||
@Before public void init() {fxt.Init();} private Xowh_portal_mgr_fxt fxt = new Xowh_portal_mgr_fxt();
|
||||
@Test public void Div_ns_bry() {
|
||||
@ -27,15 +27,32 @@ public class Xow_portal_mgr_tst {
|
||||
@Test public void Missing_ns_cls() {
|
||||
fxt.Test_missing_ns_cls("xowa_display_none");
|
||||
}
|
||||
@Test public void Logo() {
|
||||
fxt.Portal_mgr().Div_logo_fmtr().Fmt_("~{portal_logo_url}");
|
||||
|
||||
// day-mode
|
||||
fxt.Portal_mgr().Init();
|
||||
fxt.Test_logo_frag(Bool_.N, "file:///mem/xowa/user/test_user/wiki/en.wikipedia.org/html/logo.png");
|
||||
|
||||
// night-mode: app
|
||||
fxt.Test_logo_frag(Bool_.Y, "file:///mem/xowa/bin/any/xowa/html/css/nightmode/logo.png");
|
||||
|
||||
// night-mode: wiki
|
||||
Io_mgr.Instance.SaveFilStr("mem/xowa/user/test_user/wiki/en.wikipedia.org/html/logo_night.png", "");
|
||||
fxt.Portal_mgr().Init();
|
||||
fxt.Test_logo_frag(Bool_.Y, "file:///mem/xowa/user/test_user/wiki/en.wikipedia.org/html/logo_night.png");
|
||||
}
|
||||
}
|
||||
class Xowh_portal_mgr_fxt {
|
||||
private Xow_portal_mgr portal_mgr;
|
||||
public void Init() {
|
||||
if (app == null) {
|
||||
app = Xoa_app_fxt.Make__app__edit();
|
||||
wiki = Xoa_app_fxt.Make__wiki__edit(app);
|
||||
wiki.Ns_mgr().Ns_main().Exists_(true); // needed for ns
|
||||
wiki.Html_mgr().Portal_mgr().Init_assert(); // needed for personal
|
||||
wiki.Html_mgr().Portal_mgr().Missing_ns_cls_(Bry_.new_a7("xowa_display_none"));
|
||||
this.portal_mgr = wiki.Html_mgr().Portal_mgr();
|
||||
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;
|
||||
public void Test_div_ns_bry(String ttl, String expd) {
|
||||
@ -47,4 +64,9 @@ class Xowh_portal_mgr_fxt {
|
||||
public void Test_missing_ns_cls(String expd) {
|
||||
Tfds.Eq(expd, String_.new_a7(wiki.Html_mgr().Portal_mgr().Missing_ns_cls()));
|
||||
}
|
||||
public Xow_portal_mgr Portal_mgr() {return wiki.Html_mgr().Portal_mgr();}
|
||||
public void Test_logo_frag(boolean nightmode, String expd) {
|
||||
String actl = String_.new_a7(wiki.Html_mgr().Portal_mgr().Div_logo_bry(nightmode));
|
||||
Gftest.Eq__str(expd, actl);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user