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

Cfg: Convert 'Wiki - HTML databases'

This commit is contained in:
gnosygnu
2016-12-13 12:49:05 -05:00
parent c73c917c48
commit 200707b1c6
14 changed files with 64 additions and 95 deletions

View File

@@ -33,7 +33,8 @@ public class Xocfg_mgr {
public void Clear() {
cache_mgr.Clear();
}
public void Bind_many_app(Gfo_invk sub, String... keys) {Bind_many(sub, Xocfg_mgr.Ctx__app, keys);}
public void Bind_many_app (Gfo_invk sub, String... keys) {Bind_many(sub, Xocfg_mgr.Ctx__app, keys);}
public void Bind_many_wiki (Gfo_invk sub, Xow_wiki wiki, String... keys) {Bind_many(sub, wiki.Domain_itm().Abrv_xo_str(), keys);}
public void Bind_many(Gfo_invk sub, String ctx, String... keys) {
try {
for (String key : keys) {

View File

@@ -38,8 +38,18 @@ public class Xocfg_map_tbl implements Db_tbl {
public void Upsert(int map_src, int map_trg, int map_sort) {
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__map_src, fld__map_trg), map_src, map_trg, map_sort);
}
public int Select_next_sort(int owner_id) {
Db_rdr rdr = conn.Stmt_select_max(tbl_name, fld__map_sort, fld__map_src).Crt_int(fld__map_src, owner_id).Exec_select__rls_auto();
public int Select_sort_or_next(int src_id, int trg_id) {
// select map_sort by map_src,map_trg
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__map_src, fld__map_trg).Crt_int(fld__map_src, src_id).Crt_int(fld__map_trg, trg_id).Exec_select__rls_auto();
try {
if (rdr.Move_next()) {
return rdr.Read_int(fld__map_sort);
}
}
finally {rdr.Rls();}
// pairing doesn't exist; select max
rdr = conn.Stmt_select_max(tbl_name, fld__map_sort, fld__map_src).Crt_int(fld__map_src, src_id).Exec_select__rls_auto();
try {
if (!rdr.Move_next()) return 0;
Object max = rdr.Read_obj(fld__map_sort);

View File

@@ -23,7 +23,6 @@ public class Xocfg_type_mgr {
this.Lists__add("list:xowa.app.startup.window.mode", "previous", "maximized", "absolute", "relative", "default");
this.Lists__add("list:xowa.app.startup.pages.type", "blank", "xowa", "previous", "custom");
this.Lists__add("list:xowa.gui.window.html_box.adj_type", "none", "relative", "absolute");
this.Lists__add("list:xowa.wiki.dbs.html.basic.html_mode", Keyval_.new_("shown", "Shown"), Keyval_.new_("hdump_save", "Saved for HTML DB"), Keyval_.new_("hdump_load", "Loaded by HTML DB"));
this.Lists__add("list:xowa.wiki.database.general.zip_mode", "text", "gzip", "bzip2", "xz");
this.Lists__add("list:xowa.html.wiki.portal.missing_class", Keyval_.new_("", "Show as blue link"), Keyval_.new_("new", "Show as red link"), Keyval_.new_("xowa_display_none", "Hide"));
this.Lists__add("list:xowa.html.category.basic.missing_class", "normal", "hide", "red_link");
@@ -42,7 +41,8 @@ public class Xocfg_type_mgr {
Lists__add(key, itms);
}
public void Lists__add(String key, Keyval... itms) {
list_hash.Add(key, itms);
if (!list_hash.Has(key)) // ignore multiple calls from Init_by_wiki; EX: Xow_hdump_mode
list_hash.Add(key, itms);
}
public Keyval[] Lists__get(String key) {
return (Keyval[])list_hash.Get_by_or_fail(key);

View File

@@ -39,8 +39,9 @@ public class Xoedit_itm_html {
bfr.Add_str_u8_fmt("<select id=\"{0}\" data-xocfg=\"0\" type=\"text\" accesskey=\"d\" class=\"xocfg_select\" size=\"{1}\">", key, len);
for (int i = 0; i < len; i++) {
Keyval kv = kvs_ary[i];
String kv_key = kv.Key();
String kv_val = kv.Val_to_str_or_null();
bfr.Add_str_u8_fmt("<option value=\"{0}\"{2}>{1}</option>", kv.Key(), kv_val, String_.Eq(data, kv_val) ? " selected=\"selected\"" : "");
bfr.Add_str_u8_fmt("<option value=\"{0}\"{2}>{1}</option>", kv_key, kv_val, String_.Eq(data, kv_key) ? " selected=\"selected\"" : "");
}
bfr.Add_str_u8_fmt("</select>");
break;

View File

@@ -51,12 +51,13 @@ public class Xocfg_maint_svc {
}
public static void Create_grp(Xocfg_db_app db_app, String key, String owner, String name, String help) {
// insert grp_meta
int grp_id = db_app.Conn().Sys_mgr().Autonum_next("cfg_grp_meta.grp_id");
Xocfg_grp_row grp = db_app.Tbl__grp().Select_by_key_or_null(key);
int grp_id = grp == null ? db_app.Conn().Sys_mgr().Autonum_next("cfg_grp_meta.grp_id") : grp.Id();
db_app.Tbl__grp().Upsert(grp_id, key);
// insert grp_map
int owner_id = String_.Len_eq_0(owner) ? Xocfg_grp_row.Id__root : db_app.Tbl__grp().Select_id_by_key_or_fail(owner);
int map_sort = db_app.Tbl__map().Select_next_sort(owner_id);
int map_sort = db_app.Tbl__map().Select_sort_or_next(owner_id, grp_id);
db_app.Tbl__map().Upsert(owner_id, grp_id, map_sort);
// insert nde_i18n
@@ -73,7 +74,7 @@ public class Xocfg_maint_svc {
db_app.Tbl__itm().Upsert(itm_id, scope_id, db_type, gui_type_id, gui_args, key, dflt);
// insert grp_map
int itm_sort = db_app.Tbl__map().Select_next_sort(grp_id);
int itm_sort = db_app.Tbl__map().Select_sort_or_next(grp_id, itm_id);
db_app.Tbl__map().Upsert(grp_id, itm_id, itm_sort);
// insert nde_i18n