1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2015-07-19 23:16:49 -04:00
parent 794b5a232f
commit 8e041d6e06
834 changed files with 4749 additions and 4461 deletions

View File

@@ -51,10 +51,10 @@ public class Xouc_setup_mgr implements GfoInvkAble {
boolean pass = false; String fail = "";
try {pass = new ProcessAdp().Exe_url_(Io_url_.new_fil_(exe)).Args_str_(arg).Run_wait_sync().Exit_code_pass();}
catch (Exception e) {
fail = Err_.Message_gplx_brief(e);
fail = Err_.Message_gplx_full(e);
}
if (!pass)
user.Appe().Usr_dlg().Prog_many("xowa.setup_mgr", "run.fail", "process exec failed: ~{0} ~{1} ~{2}", exe, arg, fail);
user.Appe().Usr_dlg().Prog_many("", "", "process exec failed: ~{0} ~{1} ~{2}", exe, arg, fail);
return pass;
}
}

View File

@@ -26,7 +26,7 @@ public class Xouc_startup_mgr implements GfoInvkAble {
case Page_home: return config.Pages_mgr().Home();
case Page_last: return String_.new_u8(config.User().Appe().Gui_mgr().Browser_win().Active_page().Ttl().Raw());
case Page_xowa: return Xouc_pages_mgr.Page_xowa;
default: throw Exc_.new_unhandled(page);
default: throw Err_.new_unhandled(page);
}
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {

View File

@@ -79,7 +79,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
Xoae_page bookmarks_page = wiki.Data_mgr().Get_page(bookmarks_ttl, false);
byte[] new_data = Bry_.Add(bookmarks_page.Data_raw(), new_entry);
wiki.Db_mgr().Save_mgr().Data_update(bookmarks_page, new_data);
} private Bry_fmtr bookmarks_add_fmtr = Bry_fmtr.new_("* [[~{wiki_key}:~{page_name}]]\n", "wiki_key", "page_name"); byte[] Bry_data_bookmarks = Bry_.new_u8("Data:Bookmarks");
} private Bry_fmtr bookmarks_add_fmtr = Bry_fmtr.new_("* [[~{wiki_key}:~{page_name}]]\n", "wiki_key", "page_name"); byte[] Bry_data_bookmarks = Bry_.new_a7("Data:Bookmarks");
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_available_from_bulk)) Available_from_bulk(m.ReadBry("v"));
else if (ctx.Match(k, Invk_available_from_fsys)) Available_from_fsys();
@@ -92,7 +92,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
else if (ctx.Match(k, Invk_prefs)) return prefs_mgr;
else if (ctx.Match(k, Invk_cfg)) return cfg_mgr;
else if (ctx.Match(k, Invk_session)) return session_mgr;
else if (ctx.Match(k, "name")) return key; //throw Exc_.new_unhandled(k); // OBSOLETE: used to return key
else if (ctx.Match(k, "name")) return key; //throw Err_.new_unhandled(k); // OBSOLETE: used to return key
else return GfoInvkAble_.Rv_unhandled;
return this;
}

View File

@@ -20,15 +20,16 @@ import gplx.dbs.*; import gplx.dbs.qrys.*;
public class Xoud_bmk_itm_tbl implements RlsAble {
private final String tbl_name = "bmk_itm"; private final Db_meta_fld_list flds = Db_meta_fld_list.new_();
private final String fld_id, fld_owner, fld_sort, fld_name, fld_wiki, fld_url, fld_comment;
private Db_stmt stmt_update_sort;
public Xoud_bmk_itm_tbl(Db_conn conn) {
this.conn = conn;
fld_id = flds.Add_int_pkey_autonum("itm_id");
fld_owner = flds.Add_int("itm_owner");
fld_sort = flds.Add_int("itm_sort");
fld_name = flds.Add_str("itm_name", 255);
fld_wiki = flds.Add_str("itm_wiki", 255);
fld_url = flds.Add_str("itm_url", 255);
fld_comment = flds.Add_str("itm_comment", 255);
fld_name = flds.Add_str("itm_name" , 255);
fld_wiki = flds.Add_str("itm_wiki" , 255);
fld_url = flds.Add_str("itm_url" , 1024);
fld_comment = flds.Add_str("itm_comment" , 4096);
conn.Rls_reg(this);
}
public Db_conn Conn() {return conn;} private final Db_conn conn;
@@ -49,6 +50,10 @@ public class Xoud_bmk_itm_tbl implements RlsAble {
.Crt_int(fld_id, id)
.Exec_update();
}
public void Update_sort(int id, int sort) {
if (stmt_update_sort == null) stmt_update_sort = conn.Stmt_update(tbl_name, String_.Ary(fld_id), fld_sort);
stmt_update_sort.Clear().Val_int(fld_sort, sort).Crt_int(fld_id, id).Exec_update();;
}
public void Delete(int id) {
Db_stmt stmt_delete = conn.Stmt_delete(tbl_name, fld_id);
stmt_delete.Clear().Crt_int(fld_id, id).Exec_delete();
@@ -77,6 +82,13 @@ public class Xoud_bmk_itm_tbl implements RlsAble {
}
finally {rdr.Rls();}
}
public Xoud_bmk_itm_row Select_or_null(int id) {
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld_id).Crt_int(fld_id, id).Exec_select__rls_manual();
try {
return rdr.Move_next() ? new_row(rdr) : null;
}
finally {rdr.Rls();}
}
private Xoud_bmk_itm_row new_row(Db_rdr rdr) {
return new Xoud_bmk_itm_row
( rdr.Read_int(fld_id)
@@ -88,5 +100,7 @@ public class Xoud_bmk_itm_tbl implements RlsAble {
, rdr.Read_bry_by_str(fld_comment)
);
}
public void Rls() {}
public void Rls() {
stmt_update_sort = null;
}
}

View File

@@ -23,12 +23,11 @@ public class Xoud_bmk_mgr {
public void Conn_(Db_conn conn, boolean created) {
this.tbl__dir = new Xoud_bmk_dir_tbl(conn);
this.tbl__itm = new Xoud_bmk_itm_tbl(conn);
// if (!conn.Meta_tbl_exists(tbl__dir.Tbl_name())) tbl__dir.Create_tbl(); // bmk_v2
// if (!conn.Meta_tbl_exists(tbl__itm.Tbl_name())) tbl__itm.Create_tbl();
// if (!conn.Meta_tbl_exists(tbl__dir.Tbl_name())) tbl__dir.Create_tbl(); // bmk_v2
if (!conn.Meta_tbl_exists(tbl__itm.Tbl_name())) tbl__itm.Create_tbl();
}
public void Itms__add(int owner, Xoa_url url) {
tbl__itm.Insert(owner, tbl__itm.Select_sort_next(owner), Xoa_ttl.Replace_unders(url.Page_bry()), url.Wiki_bry(), url.Raw(), Bry_.Empty);
}
public Xoud_bmk_itm_row[] Itms__get(int owner) {return tbl__itm.Select_grp(owner);}
public static final int Owner_root = -1;
}

View File

@@ -38,7 +38,7 @@ public class Xou_history_itm {
case Fld_view_count : return view_count;
case Fld_view_bgn : return view_bgn;
case Fld_view_end : return view_end;
default : throw Exc_.new_unhandled(idx);
default : throw Err_.new_unhandled(idx);
}
}
public void Tally() {

View File

@@ -131,7 +131,7 @@ class Xou_history_itm_srl {
existing.Merge(itm);
}
}
catch (Exception e) {throw Exc_.new_parse_exc(e, Xou_history_itm.class, String_.new_u8(ary));}
catch (Exception e) {throw Err_.new_parse_exc(e, Xou_history_itm.class, String_.new_u8(ary));}
}
public static byte[] Save(Ordered_hash list) {
Bry_bfr bb = Bry_bfr.new_();

View File

@@ -42,9 +42,9 @@ class Prefs_converter_fxt {
public void Parse(String raw_str) {
byte[] raw_bry = Bry_.new_u8(raw_str);
int bgn_pos = Bry_finder.Find_fwd(raw_bry, Byte_ascii.Paren_bgn);
if (bgn_pos == Bry_.NotFound) throw Exc_.new_("unable to find paren_bgn", "raw", raw_str);
if (bgn_pos == Bry_.NotFound) throw Err_.new_wo_type("unable to find paren_bgn", "raw", raw_str);
int end_pos = Bry_finder.Find_fwd(raw_bry, Byte_ascii.Paren_end, bgn_pos);
if (end_pos == Bry_.NotFound) throw Exc_.new_("unable to find paren_end", "raw", raw_str);
if (end_pos == Bry_.NotFound) throw Err_.new_wo_type("unable to find paren_end", "raw", raw_str);
raw_bry = Bry_.Mid(raw_bry, bgn_pos, end_pos);
int len = raw_bry.length;
for (int i = 0; i < len; i++) {

View File

@@ -97,13 +97,13 @@ class Prefs_html_wtr {
cmd = hnde.Atrs_val_by_key_bry(Prefs_mgr.Bry_prop_get);
tmp_bfr.Add(cmd).Add_byte(Byte_ascii.Semic);
try {return prefs_mgr.Eval(tmp_bfr.Xto_bry_and_clear());}
catch (Exception e) {return Err_.Message_gplx_brief(e);}
catch (Exception e) {return Err_.Message_gplx_full(e);}
}
KeyVal[] Get_select_options(Html_nde hnde) {
byte[] options_list_key = hnde.Atrs_val_by_key_bry(Atr_key_xowa_prop_list);
tmp_bfr.Add(options_list_key).Add_byte(Byte_ascii.Semic);
try {return (KeyVal[])prefs_mgr.Eval(tmp_bfr.Xto_bry_and_clear());}
catch (Exception e) {Exc_.Noop(e); return KeyVal_.Ary_empty;}
catch (Exception e) {Err_.Noop(e); return KeyVal_.Ary_empty;}
}
private void Write__nde_end(Bry_bfr bfr) {bfr.Add_byte(Byte_ascii.Gt);}
private void Write__id(Bry_bfr bfr, int prop_idx) {

View File

@@ -36,7 +36,7 @@ public class Prefs_mgr implements GfoInvkAble {
props_get_fmtr.Fmt_(src);
Bry_bfr bfr = Bry_bfr.new_();
try {src = props_get_fmtr.Fmt_(src).Bld_bry_none(bfr);}
catch (Exception e) {src = Bry_.Add(src, Bry_.new_u8(Err_.Message_gplx_brief(e)));}
catch (Exception e) {src = Bry_.Add(src, Bry_.new_u8(Err_.Message_gplx_full(e)));}
Html_nde[] hndes = html_rdr.Parse_as_ary(src);
hndes = Html_selecter.Select(src, hndes, atrs_hash);
int pos = 0;
@@ -93,11 +93,11 @@ public class Prefs_mgr implements GfoInvkAble {
get_str = Scrub_tidy_trailing_nl_in_textarea(tidy_enabled, elem_tid, get_str);
if (String_.Eq(get_str, hnde_val)) return;
try {app.Cfg_mgr().Set_by_app(String_.new_u8(get_cmd), hnde_val);}
catch (Exception e) {app.Usr_dlg().Warn_many("", "", "pref update failed: code=~{0} err=~{1}", String_.new_u8(eval_code), Err_.Message_gplx_brief(e));}
catch (Exception e) {app.Usr_dlg().Warn_many("", "", "pref update failed: code=~{0} err=~{1}", eval_code, Err_.Message_gplx_full(e));}
}
private Object Eval_run(byte[] cmd) {
try {return Eval(cmd);}
catch (Exception e) {Exc_.Noop(e); return null;}
catch (Exception e) {Err_.Noop(e); return null;}
}
private byte[] Parse_wikitext_to_html(byte[] src) {
Xowe_wiki wiki = app.Usere().Wiki(); // NOTE: this limits prefs to home_wiki only
@@ -122,10 +122,10 @@ public class Prefs_mgr implements GfoInvkAble {
else if (Bry_.Eq(elem_name, Nde_input)) {
byte[] input_type = hnde.Atrs_val_by_key_bry(Input_type);
if (input_type == null) return Elem_tid_input_text;// treat <input /> as <input type='text'/>
if (Bry_.Eq(input_type, Type_text)) return Elem_tid_input_text;
else if (Bry_.Eq(input_type, Type_checkbox)) return Elem_tid_input_checkbox;
else if (Bry_.Eq(input_type, Type_combo)) return Elem_tid_input_combo;
else if (Bry_.Eq(input_type, Type_xowa_io)) return Elem_tid_input_xowa_io;
if (Bry_.Eq(input_type, Type_text)) return Elem_tid_input_text;
else if (Bry_.Eq(input_type, Type_checkbox)) return Elem_tid_input_checkbox;
else if (Bry_.Eq(input_type, Type_combo)) return Elem_tid_input_combo;
else if (Bry_.Eq(input_type, Type_xowa_io)) return Elem_tid_input_xowa_io;
else return Elem_tid_null;
}
else return Elem_tid_null;

View File

@@ -32,7 +32,7 @@ public class Prefs_mgr_tst {
fxt.Exec_get("~{<>app.user.name;<>}", "test_user");
}
@Test public void Get_eval_fail() {
fxt.Exec_get_has("~{<>fail.prop;<>}", "~{<>fail.prop;<>}[err 0] key not found: key=fail");
fxt.Exec_get_has("~{<>fail.prop;<>}", "~{<>fail.prop;<>}[err 0] <gplx> key not found: key=fail");
}
@Test public void Set() {
fxt.Init_elem_atr_val("xowa_prop_0", "abc");
@@ -161,7 +161,7 @@ class Prefs_mgr_fxt {
}
public Prefs_mgr_fxt Exec_get_has(String src_str, String expd) {
String actl = String_.new_u8(prefs_mgr.Props_get(Bry_.new_u8(src_str)));
Tfds.Eq_true(String_.Has_at_bgn(actl, expd));
Tfds.Eq_true(String_.Has(actl, expd));
return this;
}
public Prefs_mgr_fxt Test_set(String src_str) {

View File

@@ -60,7 +60,7 @@ class Xofs_url_itm_parser {
int name_bgn = i + 2; // skip "~{"
int name_end = Bry_finder.Find_fwd(raw, Byte_ascii.Curly_end, name_bgn);
byte[] name = (byte[])names.Get_by_mid(raw, name_bgn, name_end);
if (name == null) throw Exc_.new_("name not found", "raw", raw_str, "name", String_.new_u8(raw, name_bgn, name_end));
if (name == null) throw Err_.new_wo_type("name not found", "raw", raw_str, "name", String_.new_u8(raw, name_bgn, name_end));
url_bfr.Add(name);
i = name_end;
}