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:
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user