diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xoa_cfg_addon.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xoa_cfg_addon.java
index dbd8601d8..362a0b17c 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xoa_cfg_addon.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/Xoa_cfg_addon.java
@@ -17,18 +17,19 @@ along with this program. If not, see .
*/
package gplx.xowa.addons.apps.cfgs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*;
import gplx.xowa.specials.*; import gplx.xowa.htmls.bridges.*;
-import gplx.xowa.addons.apps.cfgs.specials.lists.*; import gplx.xowa.addons.apps.cfgs.specials.items.*;
+import gplx.xowa.addons.apps.cfgs.specials.edits.pages.*; import gplx.xowa.addons.apps.cfgs.specials.edits.services.*;
+import gplx.xowa.addons.apps.cfgs.specials.maints.pages.*; import gplx.xowa.addons.apps.cfgs.specials.maints.services.*;
public class Xoa_cfg_addon implements Xoax_addon_itm, Xoax_addon_itm__special, Xoax_addon_itm__json {
public Xow_special_page[] Special_pages() {
return new Xow_special_page[]
- { Xocfg_item_special.Prototype
- , Xocfg_list_special.Prototype
+ { Xocfg_maint_special.Prototype
+ , Xocfg_edit_special.Prototype
};
}
public Bridge_cmd_itm[] Json_cmds() {
return new Bridge_cmd_itm[]
- { Xocfg_item_bridge.Prototype
- , Xocfg_list_bridge.Prototype
+ { Xocfg_maint_bridge.Prototype
+ , Xocfg_edit_bridge.Prototype
};
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_map_tbl.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_map_tbl.java
index d64997639..f230d6a1a 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_map_tbl.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_map_tbl.java
@@ -30,7 +30,11 @@ public class Xogrp_map_tbl implements Db_tbl {
conn.Rls_reg(this);
}
public String Tbl_name() {return tbl_name;} private final String tbl_name;
- public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
+ public void Create_tbl() {
+ conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds
+ , Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, "core", fld__map_src, fld__map_trg)
+ ));
+ }
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);
}
@@ -48,9 +52,3 @@ public class Xogrp_map_tbl implements Db_tbl {
}
public void Rls() {}
}
-/*
-grp_0 -> Name of page
-grp_1 -> H2
-grp_2 -> H3
-...
-*/
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_meta_tbl.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_meta_tbl.java
index bb97d60fb..80801f837 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_meta_tbl.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xogrp_meta_tbl.java
@@ -23,12 +23,16 @@ public class Xogrp_meta_tbl implements Db_tbl {
private final Db_conn conn;
public Xogrp_meta_tbl(Db_conn conn) {
this.conn = conn;
- this.fld__grp_id = flds.Add_int("grp_id");
+ this.fld__grp_id = flds.Add_int_pkey("grp_id");
this.fld__grp_key = flds.Add_str("grp_key", 255);
conn.Rls_reg(this);
}
public String Tbl_name() {return tbl_name;} private final String tbl_name = TBL_NAME;
- public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
+ public void Create_tbl() {
+ conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds
+ , Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, fld__grp_key, fld__grp_key)
+ ));
+ }
public void Upsert(int grp_id, String grp_key) {
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__grp_id), grp_id, grp_key);
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_tbl.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_tbl.java
index 85dce1b1f..28713c2a8 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_tbl.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_data_tbl.java
@@ -33,7 +33,7 @@ public class Xoitm_data_tbl implements Db_tbl {
public String Tbl_name() {return tbl_name;} private final String tbl_name;
public void Create_tbl() {
conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds
- , Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "", fld__itm_id, fld__itm_ctx)
+ , Dbmeta_idx_itm.new_normal_by_tbl(tbl_name, "core", fld__itm_id, fld__itm_ctx)
));
}
public void Upsert(int itm_id, String ctx, String itm_val, String itm_date) {
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_tbl.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_tbl.java
index aa4341dad..9b4d8cdc1 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_tbl.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xoitm_meta_tbl.java
@@ -24,7 +24,7 @@ public class Xoitm_meta_tbl implements Db_tbl {
public Xoitm_meta_tbl(Db_conn conn) {
this.conn = conn;
this.tbl_name = "cfg_itm_meta";
- this.fld__itm_id = flds.Add_int("itm_id"); // EX: '2'
+ this.fld__itm_id = flds.Add_int_pkey("itm_id"); // EX: '2'
this.fld__itm_key = flds.Add_str("itm_key", 255); // EX: 'cfg_1'
this.fld__itm_scope_id = flds.Add_int("itm_scope_id"); // EX: '1'; ENUM: Xoitm_scope_tid
this.fld__itm_db_type = flds.Add_int("itm_db_type"); // EX: '1'; ENUM: Type_adp_
@@ -34,7 +34,10 @@ public class Xoitm_meta_tbl implements Db_tbl {
conn.Rls_reg(this);
}
public String Tbl_name() {return tbl_name;} private final String tbl_name;
- public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
+ public void Create_tbl() {
+ conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds
+ , Dbmeta_idx_itm.new_unique_by_tbl(tbl_name, fld__itm_key, fld__itm_key)));
+ }
public void Upsert(int itm_id, int scope_id, int db_type, int gui_type, String gui_args, String itm_key, String itm_dflt) {
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__itm_id), itm_id, itm_key, scope_id, db_type, gui_type, gui_args, itm_dflt);
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_itm.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_itm.java
index 62f894fdb..b228ee2b2 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_itm.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_itm.java
@@ -27,4 +27,6 @@ public class Xonde_i18n_itm {
public String Lang() {return lang;} private final String lang;
public String Name() {return name;} private final String name;
public String Help() {return help;} private final String help;
+
+ public static final int Tid__grp = 1, Tid__itm = 2;
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_nde_tid.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_nde_tid.java
deleted file mode 100644
index 7b54eb392..000000000
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/dbs/Xonde_i18n_nde_tid.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-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 .
-*/
-package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
-public class Xonde_i18n_nde_tid {
- public static final int Tid__grp = 1, Tid__itm = 2;
-}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_html.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/pages/Xocfg_edit_html.java
similarity index 72%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_html.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/pages/Xocfg_edit_html.java
index 132e69ee4..73df8b36a 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_html.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/pages/Xocfg_edit_html.java
@@ -15,21 +15,21 @@ 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 .
*/
-package gplx.xowa.addons.apps.cfgs.specials.lists; 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.*;
+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.langs.mustaches.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.pages.tags.*;
import gplx.xowa.addons.apps.cfgs.gui.*;
-class Xocfg_list_html extends Xow_special_wtr__base {
- private final String grp_key, ctx, lang;
- public Xocfg_list_html(String grp_key, String ctx, String lang) {
- this.grp_key = grp_key;
+class Xocfg_edit_html extends Xow_special_wtr__base {
+ private final String grp, ctx, lang;
+ public Xocfg_edit_html(String grp, String ctx, String lang) {
+ this.grp = grp;
this.ctx = ctx;
this.lang = lang;
}
- @Override protected Io_url Get_addon_dir(Xoa_app app) {return app.Fsys_mgr().Http_root().GenSubDir_nest("bin", "any", "xowa", "addon", "app", "cfg", "list");}
- @Override protected Io_url Get_mustache_fil(Io_url addon_dir) {return addon_dir.GenSubFil_nest("bin", "xocfg_list.core.mustache.html");}
+ @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) {
Xogui_mgr mgr = Xogui_mgr.New(app);
- return mgr.Get_root(grp_key, ctx, lang);
+ return mgr.Get_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();
@@ -41,8 +41,8 @@ class Xocfg_list_html extends Xow_special_wtr__base {
Xopg_tag_wtr_.Add__xotmpl (head_tags, app.Fsys_mgr().Http_root());
Xopg_tag_wtr_.Add__xoajax (head_tags, app.Fsys_mgr().Http_root(), app);
- head_tags.Add(Xopg_tag_itm.New_htm_frag(addon_dir.GenSubFil_nest("bin", "xocfg_list.grps.mustache.html"), "xocfg.grps"));
- head_tags.Add(Xopg_tag_itm.New_css_file(addon_dir.GenSubFil_nest("bin", "xocfg_list.css")));
- head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("bin", "xocfg_list.js")));
+ head_tags.Add(Xopg_tag_itm.New_htm_frag(addon_dir.GenSubFil_nest("bin", "xo.cfg_edit.grps.mustache.html"), "xocfg.grps"));
+ head_tags.Add(Xopg_tag_itm.New_css_file(addon_dir.GenSubFil_nest("bin", "xo.cfg_edit.css")));
+ head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("bin", "xo.cfg_edit.js")));
}
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_special.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/pages/Xocfg_edit_special.java
similarity index 68%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_special.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/pages/Xocfg_edit_special.java
index 55219c359..b0e60e5d6 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_special.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/pages/Xocfg_edit_special.java
@@ -15,9 +15,9 @@ 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 .
*/
-package gplx.xowa.addons.apps.cfgs.specials.lists; 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.*;
+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.*;
-public class Xocfg_list_special implements Xow_special_page {
+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 +25,11 @@ public class Xocfg_list_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());
- new Xocfg_list_html(grp, ctx, lang).Bld_page_by_mustache(wiki.App(), page, this);
+ new Xocfg_edit_html(grp, ctx, lang).Bld_page_by_mustache(wiki.App(), page, this);
}
- Xocfg_list_special(Xow_special_meta special__meta) {this.special__meta = special__meta;}
+
+ Xocfg_edit_special(Xow_special_meta special__meta) {this.special__meta = special__meta;}
public Xow_special_meta Special__meta() {return special__meta;} private final Xow_special_meta special__meta;
public Xow_special_page Special__clone() {return this;}
- public static final Xow_special_page Prototype = new Xocfg_list_special(Xow_special_meta.New_xo("XowaCfgList", "Options"));
+ public static final Xow_special_page Prototype = new Xocfg_edit_special(Xow_special_meta.New_xo("XowaCfg", "Options"));
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_bridge.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/services/Xocfg_edit_bridge.java
similarity index 66%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_bridge.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/services/Xocfg_edit_bridge.java
index 1ce0d0907..e30e133a5 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_bridge.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/services/Xocfg_edit_bridge.java
@@ -15,23 +15,21 @@ 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 .
*/
-package gplx.xowa.addons.apps.cfgs.specials.lists; 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.*;
+package gplx.xowa.addons.apps.cfgs.specials.edits.services; 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.langs.jsons.*;
import gplx.xowa.htmls.bridges.*;
-public class Xocfg_list_bridge implements Bridge_cmd_itm {
- private Xoa_app app;
- private Xocfg_list_bridge_mgr mgr;
+public class Xocfg_edit_bridge implements Bridge_cmd_itm {
+ private Xocfg_edit_service svc;
public void Init_by_app(Xoa_app app) {
- this.app = app;
+ this.svc = new Xocfg_edit_service(app);
}
public String Exec(Json_nde data) {
- if (mgr == null) this.mgr = new Xocfg_list_bridge_mgr(app);
byte proc_id = proc_hash.Get_as_byte_or(data.Get_as_bry_or(Bridge_cmd_mgr.Msg__proc, null), Byte_ascii.Max_7_bit);
Json_nde args = data.Get_kv(Bridge_cmd_mgr.Msg__args).Val_as_nde();
switch (proc_id) {
- case Proc__upsert: mgr.Upsert(args); break;
- case Proc__revert: mgr.Revert(args); break;
- case Proc__load: mgr.Load(args); break;
+ case Proc__upsert: svc.Upsert(args); break;
+ case Proc__revert: svc.Revert(args); break;
+ case Proc__load: svc.Load(args); break;
default: throw Err_.new_unhandled_default(proc_id);
}
return Bridge_cmd_mgr.Msg__ok;
@@ -44,6 +42,6 @@ public class Xocfg_list_bridge implements Bridge_cmd_itm {
.Add_str_byte("load" , Proc__load)
;
- public byte[] Key() {return BRIDGE_KEY;} public static final byte[] BRIDGE_KEY = Bry_.new_a7("cfg.item.exec");
- public static final Xocfg_list_bridge Prototype = new Xocfg_list_bridge(); Xocfg_list_bridge() {}
+ public byte[] Key() {return BRIDGE_KEY;} public static final byte[] BRIDGE_KEY = Bry_.new_a7("xo.cfg_edit");
+ public static final Xocfg_edit_bridge Prototype = new Xocfg_edit_bridge(); Xocfg_edit_bridge() {}
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_bridge_mgr.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/services/Xocfg_edit_service.java
similarity index 70%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_bridge_mgr.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/services/Xocfg_edit_service.java
index 35eaf4287..1094432e5 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/lists/Xocfg_list_bridge_mgr.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/edits/services/Xocfg_edit_service.java
@@ -15,13 +15,14 @@ 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 .
*/
-package gplx.xowa.addons.apps.cfgs.specials.lists; 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.*;
+package gplx.xowa.addons.apps.cfgs.specials.edits.services; 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.langs.jsons.*;
import gplx.xowa.guis.cbks.*; import gplx.xowa.addons.apps.cfgs.dbs.*; import gplx.xowa.addons.apps.cfgs.gui.*;
-public class Xocfg_list_bridge_mgr {
+import gplx.xowa.addons.apps.cfgs.specials.edits.pages.*;
+public class Xocfg_edit_service {
private final Xoa_app app;
- private final Xog_cbk_trg cbk_trg = Xog_cbk_trg.New(Xocfg_list_special.Prototype.Special__meta().Ttl_bry());
- public Xocfg_list_bridge_mgr(Xoa_app app) {
+ private final Xog_cbk_trg cbk_trg = Xog_cbk_trg.New(Xocfg_edit_special.Prototype.Special__meta().Ttl_bry());
+ public Xocfg_edit_service(Xoa_app app) {
this.app = app;
}
public void Upsert(Json_nde args) {
@@ -40,6 +41,6 @@ public class Xocfg_list_bridge_mgr {
String key = args.Get_as_str("key");
Xogui_mgr gui_mgr = new Xogui_mgr(new Xocfg_db_mgr(app.User().User_db_mgr().Conn()));
Xogui_root gui_root = gui_mgr.Get_root(key, ctx, "en");
- app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_list.load__recv", gui_root.To_nde());
+ app.Gui__cbk_mgr().Send_json(cbk_trg, "xo.cfg_edit.load__recv", gui_root.To_nde());
}
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_html.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/pages/Xocfg_maint_html.java
similarity index 75%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_html.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/pages/Xocfg_maint_html.java
index 00f971f95..041a6960f 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_html.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/pages/Xocfg_maint_html.java
@@ -15,13 +15,13 @@ 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 .
*/
-package gplx.xowa.addons.apps.cfgs.specials.items; 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.*;
+package gplx.xowa.addons.apps.cfgs.specials.maints.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.maints.*;
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.gui.*;
-class Xocfg_item_html extends Xow_special_wtr__base {
- public Xocfg_item_html() {}
- @Override protected Io_url Get_addon_dir(Xoa_app app) {return app.Fsys_mgr().Http_root().GenSubDir_nest("bin", "any", "xowa", "addon", "app", "cfg", "item");}
- @Override protected Io_url Get_mustache_fil(Io_url addon_dir) {return addon_dir.GenSubFil_nest("bin", "xocfg_item.mustache.html");}
+class Xocfg_maint_html extends Xow_special_wtr__base {
+ public Xocfg_maint_html() {}
+ @Override protected Io_url Get_addon_dir(Xoa_app app) {return app.Fsys_mgr().Http_root().GenSubDir_nest("bin", "any", "xowa", "addon", "app", "cfg", "maint");}
+ @Override protected Io_url Get_mustache_fil(Io_url addon_dir) {return addon_dir.GenSubFil_nest("bin", "xo.cfg_maint.mustache.html");}
@Override protected Mustache_doc_itm Bld_mustache_root(Xoa_app app) {
return new Xogui_grp(0, 1, "test");
}
@@ -32,7 +32,7 @@ class Xocfg_item_html extends Xow_special_wtr__base {
Xopg_tag_wtr_.Add__xolog (head_tags, app.Fsys_mgr().Http_root());
Xopg_tag_wtr_.Add__xoajax (head_tags, app.Fsys_mgr().Http_root(), app);
- head_tags.Add(Xopg_tag_itm.New_css_file(addon_dir.GenSubFil_nest("bin", "xocfg_item.css")));
- head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("bin", "xocfg_item.js")));
+ head_tags.Add(Xopg_tag_itm.New_css_file(addon_dir.GenSubFil_nest("bin", "xo.cfg_maint.css")));
+ head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("bin", "xo.cfg_maint.js")));
}
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_special.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/pages/Xocfg_maint_special.java
similarity index 60%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_special.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/pages/Xocfg_maint_special.java
index 3b62932bb..f42b75b09 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_special.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/pages/Xocfg_maint_special.java
@@ -15,14 +15,15 @@ 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 .
*/
-package gplx.xowa.addons.apps.cfgs.specials.items; 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.*;
+package gplx.xowa.addons.apps.cfgs.specials.maints.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.maints.*;
import gplx.xowa.specials.*; import gplx.core.net.qargs.*;
-public class Xocfg_item_special implements Xow_special_page {
+public class Xocfg_maint_special implements Xow_special_page {
public void Special__gen(Xow_wiki wiki, Xoa_page page, Xoa_url url, Xoa_ttl ttl) {
- new Xocfg_item_html().Bld_page_by_mustache(wiki.App(), page, this);
+ new Xocfg_maint_html().Bld_page_by_mustache(wiki.App(), page, this);
}
- Xocfg_item_special(Xow_special_meta special__meta) {this.special__meta = special__meta;}
+
+ Xocfg_maint_special(Xow_special_meta special__meta) {this.special__meta = special__meta;}
public Xow_special_meta Special__meta() {return special__meta;} private final Xow_special_meta special__meta;
public Xow_special_page Special__clone() {return this;}
- public static final Xow_special_page Prototype = new Xocfg_item_special(Xow_special_meta.New_xo("XowaCfgItem", "Option Admin"));
+ public static final Xow_special_page Prototype = new Xocfg_maint_special(Xow_special_meta.New_xo("XowaCfgMaint", "Option Maintenance"));
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_bridge.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_bridge.java
similarity index 50%
rename from 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_bridge.java
rename to 400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_bridge.java
index cdf3afaca..95aec57f7 100644
--- a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/items/Xocfg_item_bridge.java
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_bridge.java
@@ -15,44 +15,29 @@ 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 .
*/
-package gplx.xowa.addons.apps.cfgs.specials.items; 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.*;
+package gplx.xowa.addons.apps.cfgs.specials.maints.services; 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.maints.*;
import gplx.langs.jsons.*;
import gplx.xowa.htmls.bridges.*;
-public class Xocfg_item_bridge implements Bridge_cmd_itm {
- private Xoa_app app;
+public class Xocfg_maint_bridge implements Bridge_cmd_itm {
+ private Xocfg_maint_service svc;
public void Init_by_app(Xoa_app app) {
- this.app = app;
+ this.svc = new Xocfg_maint_service(app);
}
public String Exec(Json_nde data) {
byte proc_id = proc_hash.Get_as_byte_or(data.Get_as_bry_or(Bridge_cmd_mgr.Msg__proc, null), Byte_ascii.Max_7_bit);
Json_nde args = data.Get_kv(Bridge_cmd_mgr.Msg__args).Val_as_nde();
switch (proc_id) {
- case Proc__upsert: Save(args); break;
- default: throw Err_.new_unhandled_default(proc_id);
+ case Proc__upsert: svc.Upsert(args.Get_as_str("data")); break;
+ default: throw Err_.new_unhandled_default(proc_id);
}
return "";
}
- private void Save(Json_nde args) {
- String data = args.Get_as_str("data");
- gplx.xowa.addons.apps.cfgs.dbs.Xocfg_itm_bldr itm_bldr = new gplx.xowa.addons.apps.cfgs.dbs.Xocfg_itm_bldr(new gplx.xowa.addons.apps.cfgs.dbs.Xocfg_db_mgr(app.User().User_db_mgr().Conn()));
- String[] lines = String_.Split(data, "\n");
- for (String line : lines) {
- String[] ary = String_.Split(line, "|");
- if (ary.length < 4) continue;
- if (String_.Eq(ary[0], "grp")) {
- itm_bldr.Create_grp(ary[1], ary[2], ary[3], ary[4]);
- }
- else {
- itm_bldr.Create_itm(ary[1], ary[2], ary[3], Type_adp_.To_tid(ary[4]), ary[5], ary[6], ary[7], ary[8], ary[9]);
- }
- }
- }
private static final byte Proc__upsert = 0;
private static final Hash_adp_bry proc_hash = Hash_adp_bry.cs()
.Add_str_byte("upsert" , Proc__upsert)
;
- public byte[] Key() {return BRIDGE_KEY;} public static final byte[] BRIDGE_KEY = Bry_.new_a7("cfg.maint");
- public static final Xocfg_item_bridge Prototype = new Xocfg_item_bridge(); Xocfg_item_bridge() {}
+ public byte[] Key() {return BRIDGE_KEY;} public static final byte[] BRIDGE_KEY = Bry_.new_a7("xo.cfg_maint");
+ public static final Xocfg_maint_bridge Prototype = new Xocfg_maint_bridge(); Xocfg_maint_bridge() {}
}
diff --git a/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_service.java b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_service.java
new file mode 100644
index 000000000..8cd130052
--- /dev/null
+++ b/400_xowa/src/gplx/xowa/addons/apps/cfgs/specials/maints/services/Xocfg_maint_service.java
@@ -0,0 +1,40 @@
+/*
+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 .
+*/
+package gplx.xowa.addons.apps.cfgs.specials.maints.services; 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.maints.*;
+import gplx.xowa.addons.apps.cfgs.dbs.*;
+class Xocfg_maint_service {
+ private Xoa_app app;
+ public Xocfg_maint_service(Xoa_app app) {
+ this.app = app;
+ }
+ public void Upsert(String data) {
+ Xocfg_itm_bldr itm_bldr = new Xocfg_itm_bldr(new Xocfg_db_mgr(app.User().User_db_mgr().Conn()));
+ String[] lines = String_.Split(data, "\n");
+ for (String line : lines) {
+ String[] ary = String_.Split(line, "|");
+ if (ary.length < 4) continue; // ignore blank lines
+ String type = String_.Trim(ary[0]); // get 1st arg and ignore leading space
+ if (String_.Eq(type, "grp")) {
+ itm_bldr.Create_grp(ary[1], ary[2], ary[3], ary[4]);
+ }
+ else {
+ itm_bldr.Create_itm(ary[1], ary[2], ary[3], Type_adp_.To_tid(ary[4]), ary[5], ary[6], ary[7], ary[8], ary[9]);
+ }
+ }
+ }
+}