1
0
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:
gnosygnu
2016-12-13 21:42:48 -05:00
parent 42e7f5f2c6
commit 3ebc5aa2cd
19 changed files with 235 additions and 339 deletions

View File

@@ -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);}

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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());
}
}

View File

@@ -21,7 +21,7 @@ class Xoh_sidebar_htmlr {
public static byte[] To_html(Bry_bfr bfr, Xowe_wiki wiki, List_adp grps) {
Xoh_sidebar_itms_fmtr itms_fmtr = new Xoh_sidebar_itms_fmtr();
int len = grps.Count();
boolean popups_enabled = wiki.Appe().Api_root().Html().Modules().Popups().Enabled();
boolean popups_enabled = wiki.Html_mgr().Head_mgr().Popup_mgr().Enabled();
for (int i = 0; i < len; ++i) {
Xoh_sidebar_itm grp = (Xoh_sidebar_itm)grps.Get_at(i);
itms_fmtr.Init_by_grp(popups_enabled, grp);

View File

@@ -169,7 +169,10 @@ class Xoh_sidebar_mgr_fxt {
rv.Init_by_title_and_accesskey(Bry_.new_a7(title), Bry_.new_a7(accesskey), null);
return rv;
}
public Xoh_sidebar_mgr_fxt Init__popups_enabled(boolean v) {app.Api_root().Html().Modules().Popups().Enabled_(v); return this;}
public Xoh_sidebar_mgr_fxt Init__popups_enabled(boolean v) {
wiki.Html_mgr().Head_mgr().Popup_mgr().Enabled_(v);
return this;
}
public Xoh_sidebar_mgr_fxt Init__msg__grp(String key, String text, String title) {
Init_msg(key, text);
Init_msg("tooltip-n-" + key, title);