mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v3.1.1.1
This commit is contained in:
@@ -94,9 +94,9 @@ public class Dbui_tbl_itm__bmk implements Dbui_tbl_itm {
|
||||
private Dbui_row_itm Get_ui_row(Xoud_bmk_itm_row row) {return Get_ui_row(Int_.To_bry(row.Id()), row.Name(), row.Url(), row.Comment());}
|
||||
private Dbui_row_itm Get_ui_row(byte[] pkey, byte[] name, byte[] url, byte[] comment) {
|
||||
Dbui_val_itm[] vals = new Dbui_val_itm[3];
|
||||
vals[0] = new Dbui_val_itm(name, Html_utl.Escape_html_as_bry(tmp_bfr, name));
|
||||
vals[1] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Html_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
|
||||
vals[2] = new Dbui_val_itm(comment, Html_utl.Escape_html_as_bry(comment));
|
||||
vals[0] = new Dbui_val_itm(name, Gfh_utl.Escape_html_as_bry(tmp_bfr, name));
|
||||
vals[1] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Gfh_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
|
||||
vals[2] = new Dbui_val_itm(comment, Gfh_utl.Escape_html_as_bry(comment));
|
||||
return new Dbui_row_itm(this, pkey, vals);
|
||||
}
|
||||
private String Fail_missing_row(byte[] row_pkey) {
|
||||
|
||||
@@ -46,9 +46,17 @@ public class Xoud_cfg_mgr {
|
||||
else
|
||||
return Bry_.new_u8(rv);
|
||||
}
|
||||
public void Update_bry(String key, byte[] val) {Update_bry("", key, val);}
|
||||
public void Update_bry(String grp, String key, byte[] val) {tbl.Update_bry(grp, key, val);}
|
||||
public void Insert_bry(String key, byte[] val) {Insert_bry("", key, val);}
|
||||
public void Upsert_int(String grp, String key, int val) {
|
||||
int exists = Select_int_or(grp, key, Int_.Min_value);
|
||||
if (exists == Int_.Min_value)
|
||||
Insert_int(grp, key, val);
|
||||
else
|
||||
Update_int(grp, key, val);
|
||||
}
|
||||
public void Update_bry(String key, byte[] val) {Update_bry("", key, val);}
|
||||
public void Update_bry(String grp, String key, byte[] val) {tbl.Update_bry(grp, key, val);}
|
||||
public void Update_int(String grp, String key, int val) {tbl.Update_int(grp, key, val);}
|
||||
public void Insert_bry(String key, byte[] val) {Insert_bry("", key, val);}
|
||||
public void Insert_bry(String grp, String key, byte[] val) {tbl.Insert_bry(grp, key, val);}
|
||||
public void Insert_int(String grp, String key, int val) {tbl.Insert_int(grp, key, val);}
|
||||
public int Next_id(String tbl_name) {
|
||||
|
||||
@@ -20,7 +20,7 @@ public class Xoud_id_mgr {
|
||||
private Xoud_cfg_mgr cfg_mgr;
|
||||
public Xoud_id_mgr(Xoud_cfg_mgr cfg_mgr) {this.cfg_mgr = cfg_mgr;}
|
||||
public int Get_next(String key) {return cfg_mgr.Select_int_or(Grp_key, key, 1);}
|
||||
public void Set_next(String key, int v) {cfg_mgr.Insert_int(Grp_key, key, v);}
|
||||
public void Set_next(String key, int v) {cfg_mgr.Upsert_int(Grp_key, key, v);}
|
||||
public int Get_next_and_save(String key) {
|
||||
int rv = Get_next(key);
|
||||
Set_next(key, rv + 1);
|
||||
|
||||
@@ -65,7 +65,7 @@ public class Dbui_tbl_itm__history implements Dbui_tbl_itm {
|
||||
private Dbui_row_itm Get_ui_row(Xoud_history_row row) {return Get_ui_row(Int_.To_bry(row.Id()), row.Wiki(), row.Url(), row.Count(), row.Time());}
|
||||
private Dbui_row_itm Get_ui_row(byte[] pkey, byte[] wiki, byte[] url, int count, DateAdp time) {
|
||||
Dbui_val_itm[] vals = new Dbui_val_itm[4];
|
||||
vals[0] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Html_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
|
||||
vals[0] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Gfh_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
|
||||
vals[1] = new Dbui_val_itm(wiki, wiki);
|
||||
byte[] count_bry = Int_.To_bry(count);
|
||||
vals[2] = new Dbui_val_itm(count_bry, count_bry);
|
||||
|
||||
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.users.history; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
import gplx.core.brys.fmtrs.*;
|
||||
import gplx.xowa.specials.*;
|
||||
public class Xou_history_html extends gplx.core.brys.Bfr_arg_base implements Xows_page {
|
||||
public class Xou_history_html implements gplx.core.brys.Bfr_arg, Xows_page {
|
||||
public Xows_special_meta Special_meta() {return Xows_special_meta_.Itm__page_history;}
|
||||
public void Special_gen(Xowe_wiki wiki, Xoae_page page, Xoa_url url, Xoa_ttl ttl) {
|
||||
this.app = wiki.Appe(); this.mgr = app.Usere().History_mgr();
|
||||
@@ -27,7 +27,7 @@ public class Xou_history_html extends gplx.core.brys.Bfr_arg_base implements Xow
|
||||
html_grp.Bld_bfr_many(bfr, this);
|
||||
page.Data_raw_(bfr.To_bry_and_rls());
|
||||
}
|
||||
@Override public void Bfr_arg__add(Bry_bfr bfr) {
|
||||
public void Bfr_arg__add(Bry_bfr bfr) {
|
||||
int len = mgr.Len();
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xou_history_itm itm = mgr.Get_at(i);
|
||||
|
||||
@@ -19,7 +19,7 @@ package gplx.xowa.users.prefs; import gplx.*; import gplx.xowa.*; import gplx.xo
|
||||
import gplx.langs.htmls.*;
|
||||
class Prefs_html_wtr {
|
||||
public Prefs_html_wtr(Prefs_mgr prefs_mgr) {this.prefs_mgr = prefs_mgr;} Prefs_mgr prefs_mgr; Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
|
||||
public void Write(Bry_bfr bfr, byte[] src, Html_nde hnde, int prop_idx, byte[] trg_type, byte[] trg_val) {
|
||||
public void Write(Bry_bfr bfr, byte[] src, Gfh_nde hnde, int prop_idx, byte[] trg_type, byte[] trg_val) {
|
||||
Object prop_val = Eval_prop_get(hnde);
|
||||
byte elem_type = Prefs_mgr.Elem_tid_tid_of(hnde);
|
||||
bfr.Add_mid(src, hnde.Tag_lhs_bgn(), hnde.Tag_lhs_end() - 1);
|
||||
@@ -32,25 +32,25 @@ class Prefs_html_wtr {
|
||||
}
|
||||
bfr.Add_mid(src, hnde.Tag_rhs_bgn(), hnde.Tag_rhs_end());
|
||||
}
|
||||
private void Write_input(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
|
||||
private void Write_input(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
|
||||
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
|
||||
Write__value_atr(bfr, prop_val); // " value='abc'"
|
||||
Write__nde_end(bfr); // ">"
|
||||
}
|
||||
private void Write_textarea(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
|
||||
private void Write_textarea(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
|
||||
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
|
||||
Write__nde_end(bfr); // ">"
|
||||
bfr.Add(Html_utl.Escape_html_as_bry(Bry_.new_u8(Object_.Xto_str_strict_or_empty(prop_val))));
|
||||
bfr.Add(Gfh_utl.Escape_html_as_bry(Bry_.new_u8(Object_.Xto_str_strict_or_empty(prop_val))));
|
||||
// "abcde"
|
||||
}
|
||||
private void Write_checkbox(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
|
||||
private void Write_checkbox(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
|
||||
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
|
||||
boolean prop_val_is_true = String_.Eq((String)prop_val, "y");
|
||||
if (prop_val_is_true)
|
||||
bfr.Add(Atr_stub_checked); // " checked='checked'"
|
||||
Write__nde_end(bfr); // ">"
|
||||
}
|
||||
private void Write_select(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
|
||||
private void Write_select(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
|
||||
KeyVal[] options_list = Get_select_options(hnde);
|
||||
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
|
||||
Write__nde_end(bfr); // ">"
|
||||
@@ -68,14 +68,14 @@ class Prefs_html_wtr {
|
||||
bfr.Add(Nde_stub_option_end); // "</option>\n"
|
||||
}
|
||||
}
|
||||
private void Write_io(Bry_bfr bfr, Html_nde hnde, int prop_idx, Object prop_val) {
|
||||
private void Write_io(Bry_bfr bfr, Gfh_nde hnde, int prop_idx, Object prop_val) {
|
||||
Write__id(bfr, prop_idx); // " id='xowa_prop_123'"
|
||||
Write__value_atr(bfr, prop_val); // " value='abc'"
|
||||
Write__nde_end(bfr); // ">"
|
||||
Write__tag_end(bfr, hnde); // "</input>"
|
||||
Write_io_btn(bfr, hnde, prop_idx);
|
||||
}
|
||||
private void Write_io_btn(Bry_bfr bfr, Html_nde hnde, int prop_idx) {
|
||||
private void Write_io_btn(Bry_bfr bfr, Gfh_nde hnde, int prop_idx) {
|
||||
bfr.Add_str_a7("<button id='xowa_prop_").Add_int_variable(prop_idx).Add_str_a7("_io").Add_byte(Byte_ascii.Apos);
|
||||
bfr.Add_str_a7(" class='options_button' onclick='xowa_io_select(\"file\", \"");
|
||||
bfr.Add_str_a7("xowa_prop_").Add_int_variable(prop_idx);
|
||||
@@ -91,7 +91,7 @@ class Prefs_html_wtr {
|
||||
, Nde_stub_option_bgn = Bry_.new_a7(" <option value='")
|
||||
, Nde_stub_option_end = Bry_.new_a7("</option>\n")
|
||||
;
|
||||
Object Eval_prop_get(Html_nde hnde) {
|
||||
Object Eval_prop_get(Gfh_nde hnde) {
|
||||
byte[] cmd = hnde.Atrs_val_by_key_bry(Prefs_mgr.Bry_prop);
|
||||
if (cmd == null)
|
||||
cmd = hnde.Atrs_val_by_key_bry(Prefs_mgr.Bry_prop_get);
|
||||
@@ -99,7 +99,7 @@ class Prefs_html_wtr {
|
||||
try {return prefs_mgr.Eval(tmp_bfr.To_bry_and_clear());}
|
||||
catch (Exception e) {return Err_.Message_gplx_full(e);}
|
||||
}
|
||||
KeyVal[] Get_select_options(Html_nde hnde) {
|
||||
KeyVal[] Get_select_options(Gfh_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.To_bry_and_clear());}
|
||||
@@ -113,11 +113,11 @@ class Prefs_html_wtr {
|
||||
}
|
||||
private void Write__value_atr(Bry_bfr bfr, Object prop_val) {
|
||||
bfr.Add(Atr_stub_value); // " value='"
|
||||
bfr.Add(Html_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, Object_.Xto_str_strict_or_empty(prop_val)));
|
||||
bfr.Add(Gfh_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, Object_.Xto_str_strict_or_empty(prop_val)));
|
||||
// "abcde"
|
||||
bfr.Add_byte(Byte_ascii.Apos); // "'"
|
||||
}
|
||||
private void Write__tag_end(Bry_bfr bfr, Html_nde hnde) {
|
||||
private void Write__tag_end(Bry_bfr bfr, Gfh_nde hnde) {
|
||||
bfr.Add_mid(hnde.Src(), hnde.Tag_rhs_bgn(), hnde.Tag_rhs_end()); // "</input>"
|
||||
// bfr.Add_byte_nl(); // "\n"; NOTE: do not write \n; will move to next line; DATE:2013-10-16
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
atrs_hash.Add(Bry_prop_get, Byte_obj_val.new_(Tid_prop_get));
|
||||
atrs_hash.Add(Bry_prop_set, Byte_obj_val.new_(Tid_prop_set));
|
||||
html_wtr = new Prefs_html_wtr(this);
|
||||
} private Xoae_app app; private Hash_adp_bry atrs_hash; private Html_parser html_rdr = new Html_parser(); private Prefs_html_wtr html_wtr;
|
||||
} private Xoae_app app; private Hash_adp_bry atrs_hash; private Gfh_parser html_rdr = new Gfh_parser(); private Prefs_html_wtr html_wtr;
|
||||
private Prefs_trg_mgr option_trgs_mgr = new Prefs_trg_mgr();
|
||||
public void Html_box_mok_(Xog_html_itm v) {this.html_box_mok = v;} private Xog_html_itm html_box_mok;
|
||||
public byte[] Props_get(byte[] src) {
|
||||
@@ -39,12 +39,12 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
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_full(e)));}
|
||||
Html_nde[] hndes = html_rdr.Parse_as_ary(src);
|
||||
hndes = Html_selecter.Select(src, hndes, atrs_hash);
|
||||
Gfh_nde[] hndes = html_rdr.Parse_as_ary(src);
|
||||
hndes = Gfh_selecter.Select(src, hndes, atrs_hash);
|
||||
int pos = 0;
|
||||
int len = hndes.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
Html_nde hnde = hndes[i];
|
||||
Gfh_nde hnde = hndes[i];
|
||||
bfr.Add_mid(src, pos, hnde.Tag_lhs_bgn());
|
||||
html_wtr.Write(bfr, src, hnde, i, option_trgs_mgr.Trg_type(), option_trgs_mgr.Trg_val());
|
||||
pos = hnde.Tag_rhs_end();
|
||||
@@ -63,18 +63,18 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
src = Bry_.Replace(src, Bry_.new_a7("<xowa_cmd>"), Bry_.new_a7("<xowa_cmd>"));
|
||||
src = Bry_.Replace(src, Bry_.new_a7("</xowa_cmd>"), Bry_.new_a7("</xowa_cmd>"));
|
||||
src = this.Parse_wikitext_to_html(src);
|
||||
Html_nde[] hndes = html_rdr.Parse_as_ary(src);
|
||||
hndes = Html_selecter.Select(src, hndes, atrs_hash);
|
||||
Gfh_nde[] hndes = html_rdr.Parse_as_ary(src);
|
||||
hndes = Gfh_selecter.Select(src, hndes, atrs_hash);
|
||||
int len = hndes.length;
|
||||
boolean tidy_enabled = app.Html_mgr().Tidy_mgr().Enabled();
|
||||
Bry_bfr cmd_bfr = Bry_bfr.reset_(255);
|
||||
for (int i = 0; i < len; i++) {
|
||||
Html_nde hnde = hndes[i];
|
||||
Gfh_nde hnde = hndes[i];
|
||||
Props_set_by_hnde(cmd_bfr, src, hnde, i, tidy_enabled);
|
||||
}
|
||||
app.Cfg_mgr().Db_save_txt();
|
||||
}
|
||||
private void Props_set_by_hnde(Bry_bfr cmd_bfr, byte[] src, Html_nde hnde, int i, boolean tidy_enabled) {
|
||||
private void Props_set_by_hnde(Bry_bfr cmd_bfr, byte[] src, Gfh_nde hnde, int i, boolean tidy_enabled) {
|
||||
byte[] eval_code = hnde.Atrs_val_by_key_bry(Bry_prop);
|
||||
if (eval_code == null) eval_code = hnde.Atrs_val_by_key_bry(Bry_prop_set);
|
||||
String hnde_val = null;
|
||||
@@ -85,7 +85,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
case Elem_tid_input_text:
|
||||
case Elem_tid_input_xowa_io:
|
||||
case Elem_tid_select: hnde_val = html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value); break;
|
||||
case Elem_tid_textarea: hnde_val = Html_utl.Unescape_as_str(html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value)); break;
|
||||
case Elem_tid_textarea: hnde_val = Gfh_utl.Unescape_as_str(html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value)); break;
|
||||
case Elem_tid_input_checkbox: hnde_val = html_itm.Html_elem_atr_get_bool(hnde_key, "checked") ? "y" : "n"; break;
|
||||
}
|
||||
byte[] get_cmd = Props_get(eval_code);
|
||||
@@ -117,7 +117,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
} private static final String Invk_exec_get = "exec_get", Invk_save = "save";
|
||||
private static final byte Tid_prop = 0, Tid_prop_get = 1, Tid_prop_set = 2;
|
||||
public static final byte[] Bry_prop = Bry_.new_a7("xowa_prop"), Bry_prop_get = Bry_.new_a7("xowa_prop_get"), Bry_prop_set = Bry_.new_a7("xowa_prop_set"), Bry_id = Bry_.new_a7("id");
|
||||
public static byte Elem_tid_tid_of(Html_nde hnde) {
|
||||
public static byte Elem_tid_tid_of(Gfh_nde hnde) {
|
||||
byte[] elem_name = Bry_.Mid(hnde.Src(), hnde.Name_bgn(), hnde.Name_end());
|
||||
if (Bry_.Eq(elem_name, Nde_textarea)) return Elem_tid_textarea;
|
||||
else if (Bry_.Eq(elem_name, Nde_select)) return Elem_tid_select;
|
||||
|
||||
Reference in New Issue
Block a user