mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Cfg: Convert 'Addon - Popups'
This commit is contained in:
@@ -53,9 +53,13 @@ public class Xocfg_mgr {
|
||||
cache_mgr.Sub(sub, ctx, key, key);
|
||||
return cache_mgr.Get(ctx, key);
|
||||
}
|
||||
public boolean Get_bool_by_app_or(String key, boolean or) {
|
||||
String rv = Get_str(Ctx__app, key);
|
||||
return rv == null ? or : Yn.parse_or(rv, or);
|
||||
}
|
||||
public boolean Get_bool_by_wiki_or(Xow_wiki wiki, String key, boolean or) {
|
||||
String rv = Get_str(wiki.Domain_itm().Abrv_xo_str(), key);
|
||||
return rv == null ? Yn.parse_or(rv, or) : or;
|
||||
return rv == null ? or : Yn.parse_or(rv, or);
|
||||
}
|
||||
public String Get_str_app(String key) {return Get_str(Xocfg_mgr.Ctx__app, key);}
|
||||
public boolean Get_bool_or(String ctx, String key, boolean or) {
|
||||
@@ -67,6 +71,15 @@ public class Xocfg_mgr {
|
||||
return or;
|
||||
}
|
||||
}
|
||||
public int Get_int_by_wiki_or(Xow_wiki wiki, String key, int or) {
|
||||
String rv = Get_str(wiki.Domain_itm().Abrv_xo_str(), key);
|
||||
try {return Int_.parse(rv);}
|
||||
catch (Exception exc) {
|
||||
Err_.Noop(exc);
|
||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "cfg:failed to parse int; key=~{0} val=~{1}", key, rv);
|
||||
return or;
|
||||
}
|
||||
}
|
||||
public int Get_int_or(String ctx, String key, int or) {
|
||||
String rv = cache_mgr.Get(ctx, key);
|
||||
try {return Int_.parse(rv);}
|
||||
|
||||
@@ -19,7 +19,7 @@ package gplx.xowa.addons.apps.cfgs.specials.edits.objs; import gplx.*; import gp
|
||||
import gplx.langs.mustaches.*;
|
||||
import gplx.core.gfobjs.*;
|
||||
public class Xoedit_grp implements Xoedit_nde, Mustache_doc_itm {
|
||||
private String lang, name, help;
|
||||
private String lang, name;
|
||||
public Xoedit_grp(int id, String key, int sort) {
|
||||
this.id = id;
|
||||
this.key = key;
|
||||
@@ -27,7 +27,9 @@ public class Xoedit_grp implements Xoedit_nde, Mustache_doc_itm {
|
||||
}
|
||||
public int Id() {return id;} private final int id;
|
||||
public String Key() {return key;} private final String key;
|
||||
public int Sort() {return sort;} private final int sort;
|
||||
public int Sort() {return sort;} private final int sort;
|
||||
public String Help() {return help;} private String help;
|
||||
|
||||
public Xoedit_itm[] Itms() {return itms;} private Xoedit_itm[] itms = new Xoedit_itm[0];
|
||||
public void Itms_(Xoedit_itm[] v) {this.itms = v;}
|
||||
public void Load_by_i18n(String lang, String name, String help) {
|
||||
|
||||
@@ -22,7 +22,7 @@ import gplx.xowa.addons.apps.cfgs.mgrs.types.*;
|
||||
public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
|
||||
private int gui_type;
|
||||
private boolean edited;
|
||||
private String data_type, gui_args, dflt, lang, name, help, ctx, val, date;
|
||||
private String data_type, gui_args, dflt, lang, name, ctx, val, date;
|
||||
private Xocfg_type_mgr type_mgr;
|
||||
public Xoedit_itm(Xocfg_type_mgr type_mgr, int id, String key, int sort) {
|
||||
this.type_mgr = type_mgr;
|
||||
@@ -32,6 +32,8 @@ public class Xoedit_itm implements Xoedit_nde, Mustache_doc_itm {
|
||||
}
|
||||
public int Id() {return id;} private final int id;
|
||||
public String Key() {return key;} private final String key;
|
||||
public String Help() {return help;} private String help;
|
||||
|
||||
public int Sort() {return sort;} private final int sort;
|
||||
public void Load_by_meta(int scope_id, String data_type, int gui_type, String gui_args, String dflt) {
|
||||
this.data_type = data_type;
|
||||
|
||||
@@ -19,5 +19,6 @@ package gplx.xowa.addons.apps.cfgs.specials.edits.objs; import gplx.*; import gp
|
||||
public interface Xoedit_nde {
|
||||
int Id();
|
||||
String Key();
|
||||
String Help();
|
||||
void Load_by_i18n(String lang, String name, String help);
|
||||
}
|
||||
|
||||
@@ -21,8 +21,10 @@ import gplx.core.gfobjs.*;
|
||||
public class Xoedit_root implements Mustache_doc_itm {
|
||||
private final Xoedit_nav_mgr nav_mgr;
|
||||
private final Xoedit_grp[] grps;
|
||||
public Xoedit_root(Xoedit_nav_mgr nav_mgr, Xoedit_grp[] grps) {
|
||||
private final String page_help;
|
||||
public Xoedit_root(Xoedit_nav_mgr nav_mgr, String page_help, Xoedit_grp[] grps) {
|
||||
this.nav_mgr = nav_mgr;
|
||||
this.page_help = page_help;
|
||||
this.grps = grps;
|
||||
}
|
||||
public Gfobj_nde To_nde() {
|
||||
@@ -33,16 +35,18 @@ public class Xoedit_root implements Mustache_doc_itm {
|
||||
Xoedit_grp itm = grps[i];
|
||||
list.Add(itm.To_nde());
|
||||
}
|
||||
rv.Add_str("page_help", page_help);
|
||||
rv.Add_ary("grps", new Gfobj_ary((Gfobj_nde[])list.To_ary_and_clear(Gfobj_nde.class)));
|
||||
return rv;
|
||||
}
|
||||
public boolean Mustache__write(String k, Mustache_bfr bfr) {
|
||||
if (String_.Eq(k, "page_help")) bfr.Add_str_u8(page_help);
|
||||
return true;
|
||||
}
|
||||
public Mustache_doc_itm[] Mustache__subs(String key) {
|
||||
if (String_.Eq(key, "grps")) return grps;
|
||||
else if (String_.Eq(key, "nav_exists")) return Mustache_doc_itm_.Ary__bool(nav_mgr.Itms().length > 1); // NOTE: do not show combo if 0 or 1 item
|
||||
else if (String_.Eq(key, "itms")) return nav_mgr.Itms();
|
||||
public Mustache_doc_itm[] Mustache__subs(String k) {
|
||||
if (String_.Eq(k, "grps")) return grps;
|
||||
else if (String_.Eq(k, "nav_exists")) return Mustache_doc_itm_.Ary__bool(nav_mgr.Itms().length > 1); // NOTE: do not show combo if 0 or 1 item
|
||||
else if (String_.Eq(k, "itms")) return nav_mgr.Itms();
|
||||
return Mustache_doc_itm_.Ary__empty;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,8 +56,10 @@ public class Xocfg_edit_loader {
|
||||
Load_itm_data(itm_list, ctx);
|
||||
Load_i18n(grp_list, itm_list, lang);
|
||||
|
||||
Xoedit_nde page_nde = grp_list.Get_by_or_fail(grp_key);
|
||||
|
||||
grp_list.Delete_container_grps();
|
||||
return new Xoedit_root(Load_nav_mgr(grp_key), (Xoedit_grp[])grp_list.To_grp_ary_and_clear());
|
||||
return new Xoedit_root(Load_nav_mgr(grp_key), page_nde.Help(), (Xoedit_grp[])grp_list.To_grp_ary_and_clear());
|
||||
}
|
||||
private Xoedit_nav_mgr Load_nav_mgr(String grp_key) {
|
||||
// get grp_id
|
||||
|
||||
@@ -37,13 +37,13 @@ public class Xocfg_maint_svc {
|
||||
db_app.Conn().Txn_bgn("xo__cfg_maint__upsert");
|
||||
byte[] anch_find_bry = Bry_.new_a7("<a "), anch_repl_bry = Bry_.new_a7("<a tabindex=\"-1\" ");
|
||||
for (Xocfg_maint_nde nde : ndes) {
|
||||
byte[] help = parser_mgr.Main().Parse_text_to_html(parser_mgr.Ctx(), Bry_.new_u8(nde.Help()));
|
||||
help = Bry_.Replace(help, anch_find_bry, anch_repl_bry); // replace "<a " with "<a tabindex=-1 " else tabbing will go to hidden anchors in help text
|
||||
if (nde.Type_is_grp()) {
|
||||
Xocfg_maint_svc.Create_grp(db_app, nde.Key(), nde.Owner(), nde.Name(), nde.Help());
|
||||
Xocfg_maint_svc.Create_grp(db_app, nde.Key(), nde.Owner(), nde.Name(), String_.new_u8(help));
|
||||
}
|
||||
else {
|
||||
Xocfg_maint_itm itm = (Xocfg_maint_itm)nde;
|
||||
byte[] help = parser_mgr.Main().Parse_text_to_html(parser_mgr.Ctx(), Bry_.new_u8(itm.Help()));
|
||||
help = Bry_.Replace(help, anch_find_bry, anch_repl_bry); // replace "<a " with "<a tabindex=-1 " else tabbing will go to hidden anchors in help text
|
||||
Xocfg_maint_svc.Create_itm(db_app, nde.Key(), nde.Owner(), nde.Name(), String_.new_u8(help), itm.Scope(), itm.Db_type(), itm.Dflt(), itm.Gui_type(), itm.Gui_args());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user