mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Cfg: Convert rest of pages
This commit is contained in:
@@ -16,7 +16,7 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.addons.apps.cfgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*;
|
||||
import gplx.dbs.*; import gplx.xowa.addons.apps.cfgs.mgrs.caches.*; import gplx.xowa.addons.apps.cfgs.mgrs.dflts.*; import gplx.xowa.addons.apps.cfgs.mgrs.types.*;
|
||||
import gplx.dbs.*; import gplx.xowa.addons.apps.cfgs.mgrs.caches.*; import gplx.xowa.addons.apps.cfgs.mgrs.dflts.*; import gplx.xowa.addons.apps.cfgs.mgrs.types.*; import gplx.xowa.addons.apps.cfgs.mgrs.execs.*;
|
||||
public class Xocfg_mgr {
|
||||
private final Xocfg_cache_mgr cache_mgr = new Xocfg_cache_mgr();
|
||||
public Xocfg_mgr() {
|
||||
@@ -24,6 +24,7 @@ public class Xocfg_mgr {
|
||||
}
|
||||
public Xocfg_type_mgr Type_mgr() {return type_mgr;} private final Xocfg_type_mgr type_mgr = new Xocfg_type_mgr();
|
||||
public Xocfg_dflt_mgr Dflt_mgr() {return dflt_mgr;} private final Xocfg_dflt_mgr dflt_mgr;
|
||||
public Xocfg_exec_mgr Exec_mgr() {return exec_mgr;} private final Xocfg_exec_mgr exec_mgr = new Xocfg_exec_mgr();
|
||||
public void Init_by_app(Xoa_app app) {
|
||||
cache_mgr.Init_by_app
|
||||
( gplx.xowa.addons.apps.cfgs.dbs.Xocfg_db_app.New_conn(app)
|
||||
@@ -62,6 +63,10 @@ public class Xocfg_mgr {
|
||||
String rv = cache_mgr.Get_or(Ctx__app, key, null);
|
||||
return rv == null ? or : Int_.parse_or(rv, or);
|
||||
}
|
||||
public long Get_long_app_or(String key, long or) {
|
||||
String rv = cache_mgr.Get_or(Ctx__app, key, null);
|
||||
return rv == null ? or : Long_.parse_or(rv, or);
|
||||
}
|
||||
public String Get_str_app_or(String key, String or) {return cache_mgr.Get_or(Ctx__app, key, 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) {
|
||||
|
||||
@@ -69,6 +69,7 @@ public class Xoitm_gui_tid {
|
||||
else if (String_.Eq(db_type, "memo")) return Itm__memo.key;
|
||||
else if (String_.Eq(db_type, "io.cmd")) return Itm__io_cmd.key;
|
||||
else if (String_.Has_at_bgn(db_type, "list:")) return Itm__list.key;
|
||||
else if (String_.Eq(db_type, "btn")) return Itm__btn.key;
|
||||
else return Itm__str.key;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.addons.apps.cfgs.mgrs.execs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.addons.apps.cfgs.mgrs.*;
|
||||
public class Xocfg_exec_mgr {
|
||||
private final Ordered_hash hash = Ordered_hash_.New();
|
||||
public void Add(Gfo_invk invk, String... cmds) {
|
||||
for (String cmd : cmds) {
|
||||
hash.Add(cmd, invk);
|
||||
}
|
||||
}
|
||||
public void Exec(String cmd, Object... args) {
|
||||
Gfo_invk invk = (Gfo_invk)hash.Get_by(cmd);
|
||||
|
||||
// create msg and add args
|
||||
GfoMsg msg = GfoMsg_.new_parse_(cmd);
|
||||
int args_len = args.length;
|
||||
if (args_len > 0) {
|
||||
for (int i = 0; i < args_len; i += 2) {
|
||||
msg.Add((String)args[i], args[i + 1]);
|
||||
}
|
||||
}
|
||||
Gfo_invk_.Invk_by_msg(invk, cmd, msg);
|
||||
}
|
||||
}
|
||||
@@ -23,13 +23,13 @@ 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.database.general.zip_mode", "text", "gzip", "bzip2", "xz");
|
||||
this.Lists__add("list:xowa.wiki.database.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");
|
||||
this.Lists__add("list:xowa.html.tidy.general.engine", "tidy", "jtidy");
|
||||
this.Lists__add("list:xowa.addon.http_server.general.file_retrieve_mode", Keyval_.new_("wait"), Keyval_.new_("skip"), Keyval_.new_("async_server", "async server"));
|
||||
this.Lists__add("list:xowa.addon.http_server.file_retrieve_mode", Keyval_.new_("wait"), Keyval_.new_("skip"), Keyval_.new_("async_server", "async server"));
|
||||
this.Lists__add("list:xowa.addon.search_suggest.html_bar.search_mode", "Search", "AllPages", "AllPages_(v2)");
|
||||
this.Lists__add("list:xowa.addon.math.general.renderer", "MathJax", "LaTeX");
|
||||
this.Lists__add("list:xowa.addon.math.renderer", Keyval_.new_("mathjax","MathJax"), Keyval_.new_("latex", "LaTeX"));
|
||||
this.Lists__add("list:xowa.addon.scribunto.general.engine", "luaj", "lua");
|
||||
}
|
||||
public void Lists__add(String key, String... vals) {
|
||||
|
||||
@@ -55,6 +55,9 @@ public class Xoedit_itm_html {
|
||||
( "<input class=\"xocfg__io_cmd__arg__txt\" id=\"{1}-arg\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}-arg\" accesskey=\"d\" type=\"text\" value='{2}'>\n"
|
||||
, gui_type_key, key, lines[1]);
|
||||
break;
|
||||
case Xoitm_gui_tid.Tid__btn:
|
||||
bfr.Add_str_u8_fmt("<input id=\"{1}\" data-xocfg-key=\"{1}\" data-xocfg-gui=\"{0}\" class=\"xocfg__btn\" type=\"button\"{2}></input>", gui_type_key, key, key);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -19,8 +19,10 @@ package gplx.xowa.addons.apps.cfgs.specials.edits.pages; import gplx.*; import g
|
||||
import gplx.xowa.specials.*; import gplx.langs.mustaches.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.pages.tags.*;
|
||||
import gplx.xowa.addons.apps.cfgs.specials.edits.services.*; import gplx.xowa.addons.apps.cfgs.specials.edits.objs.*;
|
||||
class Xocfg_edit_html extends Xow_special_wtr__base {
|
||||
private final Xocfg_edit_loader loader;
|
||||
private final String grp, ctx, lang;
|
||||
public Xocfg_edit_html(String grp, String ctx, String lang) {
|
||||
public Xocfg_edit_html(Xocfg_edit_loader loader, String grp, String ctx, String lang) {
|
||||
this.loader = loader;
|
||||
this.grp = grp;
|
||||
this.ctx = ctx;
|
||||
this.lang = lang;
|
||||
@@ -28,8 +30,7 @@ class Xocfg_edit_html extends Xow_special_wtr__base {
|
||||
@Override protected Io_url Get_addon_dir(Xoa_app app) {return app.Fsys_mgr().Http_root().GenSubDir_nest("bin", "any", "xowa", "addon", "app", "cfg", "edit");}
|
||||
@Override protected Io_url Get_mustache_fil(Io_url addon_dir) {return addon_dir.GenSubFil_nest("bin", "xo.cfg_edit.page.mustache.html");}
|
||||
@Override protected Mustache_doc_itm Bld_mustache_root(Xoa_app app) {
|
||||
Xocfg_edit_loader mgr = Xocfg_edit_loader.New(app);
|
||||
return mgr.Load_root(grp, ctx, lang);
|
||||
return loader.Load_root(grp, ctx, lang);
|
||||
}
|
||||
@Override protected void Bld_tags(Xoa_app app, Io_url addon_dir, Xopage_html_data page_data) {
|
||||
Xopg_tag_mgr head_tags = page_data.Head_tags();
|
||||
|
||||
@@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.addons.apps.cfgs.specials.edits.pages; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*; import gplx.xowa.addons.apps.cfgs.specials.*; import gplx.xowa.addons.apps.cfgs.specials.edits.*;
|
||||
import gplx.xowa.specials.*; import gplx.core.net.qargs.*;
|
||||
import gplx.xowa.addons.apps.cfgs.specials.edits.services.*;
|
||||
public class Xocfg_edit_special implements Xow_special_page {
|
||||
public void Special__gen(Xow_wiki wiki, Xoa_page page, Xoa_url url, Xoa_ttl ttl) {
|
||||
Gfo_qarg_mgr url_args = new Gfo_qarg_mgr().Init(url.Qargs_ary());
|
||||
@@ -25,10 +26,16 @@ public class Xocfg_edit_special implements Xow_special_page {
|
||||
String ctx = url_args.Read_str_or("ctx", "app");
|
||||
String lang = url_args.Read_str_or("lang", wiki.App().User().Wikii().Lang().Key_str());
|
||||
|
||||
Xocfg_edit_loader loader = Xocfg_edit_loader.New(wiki.App());
|
||||
if (String_.Eq(grp, "")) {
|
||||
grp = wiki.App().Cfg().Get_str_app("xowa.app.cfg.recent_page");
|
||||
if (!loader.Grp_key_exists(grp)) {
|
||||
grp = "xowa.app.security";
|
||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "cfg:grp_key not found; defaulting to xowa.app.security; key=~{0}", grp);
|
||||
}
|
||||
|
||||
}
|
||||
new Xocfg_edit_html(grp, ctx, lang).Bld_page_by_mustache(wiki.App(), page, this);
|
||||
new Xocfg_edit_html(loader, grp, ctx, lang).Bld_page_by_mustache(wiki.App(), page, this);
|
||||
}
|
||||
|
||||
Xocfg_edit_special(Xow_special_meta special__meta) {this.special__meta = special__meta;}
|
||||
|
||||
@@ -31,6 +31,8 @@ public class Xocfg_edit_loader {
|
||||
this.type_mgr = type_mgr;
|
||||
this.dflt_mgr = dflt_mgr;
|
||||
}
|
||||
public boolean Grp_key_exists(String grp_key) {return db_app.Tbl__grp().Select_by_key_or_null(grp_key) != null;
|
||||
}
|
||||
public Xoedit_root Load_root(String grp_key, String ctx, String lang) {
|
||||
// create lists
|
||||
Ordered_hash grp_temp = Ordered_hash_.New();
|
||||
|
||||
@@ -30,7 +30,7 @@ public class Xoscript_mgr {
|
||||
}
|
||||
public void Write(Bry_bfr rv, Xow_wiki wiki, Xoa_page page) {
|
||||
// init
|
||||
if (!wiki.App().Api_root().Addon().App__scripting__enabled()) return;
|
||||
if (!wiki.Html__wtr_mgr().Scripting_enabled()) return;
|
||||
this.Init(wiki);
|
||||
if (xtn_mgr == null) return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user