diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_app_version_itm.java b/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_app_version_itm.java index 753ff6e70..6b8b4e465 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_app_version_itm.java +++ b/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_app_version_itm.java @@ -29,13 +29,14 @@ public class Xoa_app_version_itm { public int Priority() {return priority;} private final int priority; public String Summary() {return summary;} private final String summary; public String Details() {return details;} private final String details; - public String Priority_str() { - switch (priority) { - case 3: return "trivial"; - case 5: return "minor"; + + public static final int Priority__major = 7, Priority__minor = 5, Priority__trivial = 3; + public static String Priority__to_name(int v) { + switch (v) { + case Priority__trivial: return "trivial"; + case Priority__minor: return "minor"; case Priority__major: return "major"; - default: throw Err_.new_unhandled_default(priority); + default: throw Err_.new_unhandled_default(v); } } - public static final int Priority__major = 7; } diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_app_version_tbl.java b/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_app_version_tbl.java index a553d4d29..c916ddc1f 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_app_version_tbl.java +++ b/400_xowa/src/gplx/xowa/addons/apps/updates/dbs/Xoa_app_version_tbl.java @@ -37,7 +37,7 @@ public class Xoa_app_version_tbl implements Db_tbl { ( "SELECT *" , "FROM app_version" , "WHERE version_date > '{0}'" - , "ORDER BY version_date" + , "ORDER BY version_date DESC" ), date); Db_rdr rdr = conn.Stmt_sql(sql).Exec_select__rls_auto(); diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_html.java b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_html.java index 04cce5529..1d2dbf0a9 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_html.java +++ b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_html.java @@ -35,25 +35,17 @@ class Xoa_update_html extends Xow_special_wtr__base { } // load from db + String check_date = "2016-11-01 02:03:04"; Xoa_app_version_itm[] db_itms = db_mgr.Tbl__app_version().Select_by_date(Xoa_app_.Build_date); - if (db_itms.length == 0) return new Xoa_update_itm__root(Xoa_app_.Version, Xoa_app_.Build_date, "", "up-to-date", "", "", "", ""); + String build_date = String_.Mid(Xoa_app_.Build_date, 0, String_.FindFwd(Xoa_app_.Build_date, " ")); + if (db_itms.length == 0) return new Xoa_update_itm__root(Xoa_app_.Version, build_date, check_date, "", "", Xoa_app_version_itm.Priority__trivial, "", ""); // convert to gui itm Xoa_app_version_itm db_itm = db_itms[0]; - Xoa_update_itm__root root = new Xoa_update_itm__root(Xoa_app_.Version, Xoa_app_.Build_date, Find_major(db_itms), db_itm.Id(), db_itm.Date(), db_itm.Priority_str(), db_itm.Summary(), db_itm.Details()); + Xoa_update_itm__root root = new Xoa_update_itm__root(Xoa_app_.Version, build_date, check_date, db_itm.Id(), db_itm.Date(), db_itm.Priority(), db_itm.Summary(), db_itm.Details()); root.Itms_(To_gui_itm(db_itms)); return root; } - private static String Find_major(Xoa_app_version_itm[] db_itms) { - int len = db_itms.length; - Xoa_app_version_itm major = null; - for (int i = 0; i < len; i++) { - Xoa_app_version_itm db_itm = db_itms[i]; - if (db_itm.Priority() >= Xoa_app_version_itm.Priority__major) - major = db_itm; - } - return major == null ? "" : String_.Format("({0}) {1}: {2}", major.Priority_str(), major.Id(), major.Summary()); - } private static Xoa_update_itm__leaf[] To_gui_itm(Xoa_app_version_itm[] db_itms) { int len = db_itms.length; Xoa_update_itm__leaf[] rv = new Xoa_update_itm__leaf[len]; @@ -63,7 +55,7 @@ class Xoa_update_html extends Xow_special_wtr__base { return rv; } private static Xoa_update_itm__leaf To_gui_itm(Xoa_app_version_itm db_itm) { - return new Xoa_update_itm__leaf(db_itm.Id(), db_itm.Date(), db_itm.Priority_str(), db_itm.Summary(), db_itm.Details()); + return new Xoa_update_itm__leaf(db_itm.Id(), db_itm.Date(), db_itm.Priority(), db_itm.Summary(), db_itm.Details()); } @Override protected void Bld_tags(Xoa_app app, Io_url addon_dir, Xopage_html_data page_data) { @@ -72,6 +64,7 @@ class Xoa_update_html extends Xow_special_wtr__base { Xopg_tag_wtr_.Add__xohelp (head_tags, app.Fsys_mgr().Http_root()); Xopg_tag_wtr_.Add__xolog (head_tags, app.Fsys_mgr().Http_root()); Xopg_tag_wtr_.Add__xoajax (head_tags, app.Fsys_mgr().Http_root(), app); + Xopg_alertify_.Add_tags (head_tags, app.Fsys_mgr().Http_root()); head_tags.Add(Xopg_tag_itm.New_css_file(addon_dir.GenSubFil_nest("bin", "xoa_update.css"))); head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("bin", "xoa_update.js"))); diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_itm__leaf.java b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_itm__leaf.java index 4238342c9..1374c7027 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_itm__leaf.java +++ b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_itm__leaf.java @@ -17,9 +17,11 @@ along with this program. If not, see . */ package gplx.xowa.addons.apps.updates.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.updates.*; import gplx.langs.mustaches.*; +import gplx.xowa.addons.apps.updates.dbs.*; class Xoa_update_itm__leaf implements Mustache_doc_itm { - private final String version, date, priority, summary, details; - public Xoa_update_itm__leaf(String version, String date, String priority, String summary, String details) { + private final String version, date, summary, details; + private final int priority; + public Xoa_update_itm__leaf(String version, String date, int priority, String summary, String details) { this.version = version; this.date = date; this.priority = priority; @@ -29,12 +31,13 @@ class Xoa_update_itm__leaf implements Mustache_doc_itm { @gplx.Virtual public boolean Mustache__write(String k, Mustache_bfr bfr) { if (String_.Eq(k, "version")) bfr.Add_str_u8(version); else if (String_.Eq(k, "date")) bfr.Add_str_u8(date); - else if (String_.Eq(k, "priority")) bfr.Add_str_u8(priority); + else if (String_.Eq(k, "priority")) bfr.Add_str_u8(Xoa_app_version_itm.Priority__to_name(priority)); else if (String_.Eq(k, "summary")) bfr.Add_str_u8(summary); else if (String_.Eq(k, "details")) bfr.Add_str_u8(details); return true; } @gplx.Virtual public Mustache_doc_itm[] Mustache__subs(String key) { + if (String_.Eq(key, "priority_is_major")) return Mustache_doc_itm_.Ary__bool(priority >= Xoa_app_version_itm.Priority__major); return Mustache_doc_itm_.Ary__empty; } diff --git a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_itm__root.java b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_itm__root.java index f23a410ab..34406c53a 100644 --- a/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_itm__root.java +++ b/400_xowa/src/gplx/xowa/addons/apps/updates/specials/Xoa_update_itm__root.java @@ -17,15 +17,15 @@ along with this program. If not, see . */ package gplx.xowa.addons.apps.updates.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.updates.*; import gplx.langs.mustaches.*; -class Xoa_update_itm__root extends Xoa_update_itm__leaf { private final String current_version, current_date, major; +class Xoa_update_itm__root extends Xoa_update_itm__leaf { private final String current_version, current_date, check_date; private Xoa_update_itm__leaf[] itms = Xoa_update_itm__leaf.Ary__empty; public Xoa_update_itm__root - ( String current_version, String current_date, String major - , String version, String date, String priority, String summary, String details + ( String current_version, String current_date, String check_date + , String version, String date, int priority, String summary, String details ) {super(version, date, priority, summary, details); this.current_version = current_version; this.current_date = current_date; - this.major = major; + this.check_date = check_date; } public void Itms_(Xoa_update_itm__leaf[] v) { this.itms = v; @@ -33,11 +33,12 @@ class Xoa_update_itm__root extends Xoa_update_itm__leaf { private final Stri @Override public boolean Mustache__write(String k, Mustache_bfr bfr) { if (String_.Eq(k, "current_version")) bfr.Add_str_u8(current_version); else if (String_.Eq(k, "current_date")) bfr.Add_str_u8(current_date); - else if (String_.Eq(k, "major")) bfr.Add_str_u8(major); + else if (String_.Eq(k, "check_date")) bfr.Add_str_u8(check_date); return super.Mustache__write (k, bfr); } @Override public Mustache_doc_itm[] Mustache__subs(String key) { if (String_.Eq(key, "itms")) return itms; + else if (String_.Eq(key, "itms_exist")) return Mustache_doc_itm_.Ary__bool(itms.length > 0); return super.Mustache__subs(key); } } diff --git a/400_xowa/src/gplx/xowa/langs/Xol_lang_itm_.java b/400_xowa/src/gplx/xowa/langs/Xol_lang_itm_.java index 19424af8f..fa537e009 100644 --- a/400_xowa/src/gplx/xowa/langs/Xol_lang_itm_.java +++ b/400_xowa/src/gplx/xowa/langs/Xol_lang_itm_.java @@ -111,6 +111,8 @@ kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_talk_txt, "TALKPAGENAME"); kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_talk_url, "TALKPAGENAMEE"); kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_subj_txt, "SUBJECTPAGENAME", "ARTICLEPAGENAME"); kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_subj_url, "SUBJECTPAGENAMEE", "ARTICLEPAGENAMEE"); +kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_ttl_root_txt, "ROOTPAGENAME"); +kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_ttl_root_url, "ROOTPAGENAMEE"); kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_msg, "msg"); kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_subst, "subst:"); kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_safesubst, "safesubst:"); diff --git a/400_xowa/src/gplx/xowa/langs/kwds/Xol_kwd_grp_.java b/400_xowa/src/gplx/xowa/langs/kwds/Xol_kwd_grp_.java index 28e7fdb51..035c456d1 100644 --- a/400_xowa/src/gplx/xowa/langs/kwds/Xol_kwd_grp_.java +++ b/400_xowa/src/gplx/xowa/langs/kwds/Xol_kwd_grp_.java @@ -235,8 +235,10 @@ public static final int , Id_categorytree = 213 , Id_lsth = 214 , Id_assessment = 215 +, Id_ttl_root_txt = 216 +, Id_ttl_root_url = 217 ; -public static final int Id__max = 216; +public static final int Id__max = 218; private static byte[] ary_itm_(int id) { switch (id) { @@ -294,6 +296,8 @@ case Xol_kwd_grp_.Id_ttl_talk_txt: return Bry_.new_a7("talkpagename"); case Xol_kwd_grp_.Id_ttl_talk_url: return Bry_.new_a7("talkpagenamee"); case Xol_kwd_grp_.Id_ttl_subj_txt: return Bry_.new_a7("subjectpagename"); case Xol_kwd_grp_.Id_ttl_subj_url: return Bry_.new_a7("subjectpagenamee"); +case Xol_kwd_grp_.Id_ttl_root_txt: return Bry_.new_u8("rootpagename"); +case Xol_kwd_grp_.Id_ttl_root_url: return Bry_.new_u8("rootpagenamee"); case Xol_kwd_grp_.Id_msg: return Bry_.new_a7("msg"); case Xol_kwd_grp_.Id_subst: return Bry_.new_a7("subst"); case Xol_kwd_grp_.Id_safesubst: return Bry_.new_a7("safesubst"); diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/Pf_func_.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/Pf_func_.java index 6097a698b..1d7ce19df 100644 --- a/400_xowa/src/gplx/xowa/xtns/pfuncs/Pf_func_.java +++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/Pf_func_.java @@ -150,6 +150,8 @@ public class Pf_func_ { , Xol_kwd_grp_.Id_ttl_subj_txt , Xol_kwd_grp_.Id_ttl_subj_url , Xol_kwd_grp_.Id_ttl_talk_txt + , Xol_kwd_grp_.Id_ttl_root_url + , Xol_kwd_grp_.Id_ttl_root_txt , Xol_kwd_grp_.Id_ttl_talk_url , Xol_kwd_grp_.Id_site_sitename , Xol_kwd_grp_.Id_site_servername @@ -302,6 +304,8 @@ public class Pf_func_ { case Xol_kwd_grp_.Id_ttl_leaf_url: case Xol_kwd_grp_.Id_ttl_subj_txt: case Xol_kwd_grp_.Id_ttl_subj_url: + case Xol_kwd_grp_.Id_ttl_root_txt: + case Xol_kwd_grp_.Id_ttl_root_url: case Xol_kwd_grp_.Id_ttl_talk_txt: case Xol_kwd_grp_.Id_ttl_talk_url: return Pfunc_ttl.Instance; diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_ttl.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_ttl.java index 4d367d590..c983c6d1a 100644 --- a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_ttl.java +++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_ttl.java @@ -33,6 +33,8 @@ public class Pfunc_ttl extends Pf_func_base { case Xol_kwd_grp_.Id_ttl_leaf_url: bfr.Add(ttl.Leaf_url()); break; case Xol_kwd_grp_.Id_ttl_base_txt: bfr.Add(ttl.Base_txt()); break; case Xol_kwd_grp_.Id_ttl_base_url: bfr.Add(ttl.Base_url()); break; + case Xol_kwd_grp_.Id_ttl_root_txt: bfr.Add(ttl.Root_txt()); break; + case Xol_kwd_grp_.Id_ttl_root_url: bfr.Add(Xoa_ttl.Replace_spaces(ttl.Root_txt())); break; case Xol_kwd_grp_.Id_ttl_subj_txt: bfr.Add(ttl.Subj_txt()); break; case Xol_kwd_grp_.Id_ttl_subj_url: bfr.Add(ttl.Subj_url()); break; case Xol_kwd_grp_.Id_ttl_talk_txt: bfr.Add(ttl.Talk_txt()); break; diff --git a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_ttl_tst.java b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_ttl_tst.java index fef4bec8e..d5137fde5 100644 --- a/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_ttl_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/pfuncs/ttls/Pfunc_ttl_tst.java @@ -18,7 +18,7 @@ along with this program. If not, see . package gplx.xowa.xtns.pfuncs.ttls; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*; import org.junit.*; public class Pfunc_ttl_tst { - private final Xop_fxt fxt = new Xop_fxt(); + private final Xop_fxt fxt = new Xop_fxt(); @Before public void init() {fxt.Reset();} @Test public void Ttl_page_txt() {fxt.Page_ttl_("a b"); fxt.Test_parse_tmpl_str_test("{{PAGENAME}}" , "{{test}}", "A b");} @Test public void Ttl_page_txt_empty() {fxt.Page_ttl_("a b"); fxt.Test_parse_tmpl_str_test("{{PAGENAME:}}" , "{{test}}", "");} @@ -32,6 +32,8 @@ public class Pfunc_ttl_tst { @Test public void Ttl_leaf_url() {fxt.Page_ttl_("a b/c/d e"); fxt.Test_parse_tmpl_str_test("{{SUBPAGENAMEE}}" , "{{test}}", "d_e");} @Test public void Ttl_base_txt() {fxt.Page_ttl_("a b/c/d e"); fxt.Test_parse_tmpl_str_test("{{BASEPAGENAME}}" , "{{test}}", "A b/c");} @Test public void Ttl_base_url() {fxt.Page_ttl_("a b/c/d e"); fxt.Test_parse_tmpl_str_test("{{BASEPAGENAMEE}}" , "{{test}}", "A_b/c");} + @Test public void Rootpagename() {fxt.Page_ttl_("a b/c/d e"); fxt.Test_parse_tmpl_str_test("{{ROOTPAGENAME}}" , "{{test}}", "A b");} + @Test public void Rootpagenamee() {fxt.Page_ttl_("a b/c/d e"); fxt.Test_parse_tmpl_str_test("{{ROOTPAGENAMEE}}" , "{{test}}", "A_b");} @Test public void Ttl_subj_txt() {fxt.Page_ttl_("Help talk:a b"); fxt.Test_parse_tmpl_str_test("{{SUBJECTPAGENAME}}" , "{{test}}", "Help:A b");} @Test public void Ttl_subj_url() {fxt.Page_ttl_("Help talk:a b"); fxt.Test_parse_tmpl_str_test("{{SUBJECTPAGENAMEE}}" , "{{test}}", "Help:A_b");} @Test public void Ttl_talk_txt() {fxt.Page_ttl_("Help:a b"); fxt.Test_parse_tmpl_str_test("{{TALKPAGENAME}}" , "{{test}}", "Help talk:A b");} diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property.java index 67b8c33f8..7960e1be6 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property.java @@ -69,9 +69,9 @@ public class Wdata_pf_property extends Pf_func_base { num_parser.Parse(bry, 1, bry_len); return num_parser.Has_err() ? Wdata_wiki_mgr.Pid_null : num_parser.Rv_as_int(); } - public static void Print_self(Gfo_usr_dlg usr_dlg, Bry_bfr bfr, byte[] src, Xot_invk self, String warn_cls, String warn_fmt, Object... args) { + private static void Print_self(Gfo_usr_dlg usr_dlg, Bry_bfr bfr, byte[] src, Xot_invk self, String warn_cls, String warn_fmt, Object... args) { bfr.Add_mid(src, self.Src_bgn(), self.Src_end()); - usr_dlg.Warn_many(GRP_KEY, warn_cls, warn_fmt, args); + usr_dlg.Log_many(GRP_KEY, warn_cls, warn_fmt, args); } public static void Print_empty(Gfo_usr_dlg usr_dlg, String warn_cls, String warn_fmt, Object... args) { usr_dlg.Warn_many(GRP_KEY, warn_cls, warn_fmt, args);