mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-09-28 14:30:51 +00:00
Personal_wikis: Add Main_Page back to json
This commit is contained in:
parent
c9e22b69f7
commit
083ab133f7
@ -52,6 +52,12 @@ public class Db_cfg_tbl implements Db_tbl {
|
||||
stmt_insert.Clear().Val_str(fld_grp, grp).Val_str(fld_key, key).Val_str(fld_val, val).Exec_insert();
|
||||
} catch (Exception e) {throw Err_.new_exc(e, "db", "db_cfg.insert failed", "grp", grp, "key", key, "val", val, "db", conn.Conn_info().Db_api());}
|
||||
}
|
||||
public void Insert_str (String key, String val) {
|
||||
if (stmt_insert == null) stmt_insert = conn.Stmt_insert(tbl_name, flds);
|
||||
try {
|
||||
stmt_insert.Clear().Val_str(fld_grp, "").Val_str(fld_key, key).Val_str(fld_val, val).Exec_insert();
|
||||
} catch (Exception e) {throw Err_.new_exc(e, "db", "db_cfg.insert failed", "key", key, "val", val, "db", conn.Conn_info().Db_api());}
|
||||
}
|
||||
public void Update_yn (String grp, String key, boolean val) {Update_str(grp, key, val ? "y" : "n");}
|
||||
public void Update_byte (String grp, String key, byte val) {Update_str(grp, key, Byte_.To_str(val));}
|
||||
public void Update_int (String grp, String key, int val) {Update_str(grp, key, Int_.To_str(val));}
|
||||
@ -63,6 +69,10 @@ public class Db_cfg_tbl implements Db_tbl {
|
||||
if (stmt_update == null) stmt_update = conn.Stmt_update_exclude(tbl_name, flds, fld_grp, fld_key);
|
||||
stmt_update.Clear().Val_str(fld_val, val).Crt_str(fld_grp, grp).Crt_str(fld_key, key).Exec_update();
|
||||
}
|
||||
public void Update_str (String key, String val) {
|
||||
if (stmt_update == null) stmt_update = conn.Stmt_update_exclude(tbl_name, flds, fld_grp, fld_key);
|
||||
stmt_update.Clear().Val_str(fld_val, val).Crt_str(fld_grp, "").Crt_str(fld_key, key).Exec_update();
|
||||
}
|
||||
public void Upsert_yn (String grp, String key, boolean val) {Upsert_str(grp, key, val ? "y" : "n");}
|
||||
public void Upsert_int (String grp, String key, int val) {Upsert_str(grp, key, Int_.To_str(val));}
|
||||
public void Upsert_date (String grp, String key, DateAdp val) {Upsert_str(grp, key, val.XtoStr_fmt_yyyyMMdd_HHmmss());}
|
||||
@ -73,6 +83,11 @@ public class Db_cfg_tbl implements Db_tbl {
|
||||
if (cur_val == null) this.Insert_str(grp, key, val);
|
||||
else this.Update_str(grp, key, val);
|
||||
}
|
||||
public void Upsert_str (String key, String val) {
|
||||
String cur_val = this.Select_str_or(key, null);
|
||||
if (cur_val == null) this.Insert_str(key, val);
|
||||
else this.Update_str(key, val);
|
||||
}
|
||||
public boolean Select_yn (String grp, String key) {String val = Select_str(grp, key); return Parse_yn (grp, key, val);}
|
||||
public byte Select_byte (String grp, String key) {String val = Select_str(grp, key); return Parse_byte (grp, key, val);}
|
||||
public int Select_int (String grp, String key) {String val = Select_str(grp, key); return Parse_int (grp, key, val);}
|
||||
@ -96,6 +111,11 @@ public class Db_cfg_tbl implements Db_tbl {
|
||||
Db_rdr rdr = stmt_select.Clear().Crt_str(fld_grp, grp).Crt_str(fld_key, key).Exec_select__rls_manual();
|
||||
try {return rdr.Move_next() ? rdr.Read_str(fld_val) : or;} finally {rdr.Rls();}
|
||||
}
|
||||
public String Select_str_or (String key, String or) {
|
||||
if (stmt_select == null) stmt_select = conn.Stmt_select(tbl_name, String_.Ary(fld_val), fld_grp, fld_key);
|
||||
Db_rdr rdr = stmt_select.Clear().Crt_str(fld_grp, "").Crt_str(fld_key, key).Exec_select__rls_manual();
|
||||
try {return rdr.Move_next() ? rdr.Read_str(fld_val) : or;} finally {rdr.Rls();}
|
||||
}
|
||||
public Db_cfg_hash Select_as_hash(String grp) {
|
||||
Db_cfg_hash rv = new Db_cfg_hash(grp);
|
||||
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld_grp).Crt_str(fld_grp, grp).Exec_select__rls_auto();
|
||||
|
@ -18,15 +18,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.addons.wikis.directorys.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.directorys.*;
|
||||
import gplx.langs.jsons.*;
|
||||
public class Xowdir_wiki_json {
|
||||
public Xowdir_wiki_json(String name) {
|
||||
public Xowdir_wiki_json(String name, String main_page) {
|
||||
this.name = name;
|
||||
this.main_page = main_page;
|
||||
}
|
||||
public String Name() {return name;} private String name; public void Name_(String v) {name = v;}
|
||||
public String Main_page() {return main_page;} private String main_page; public void Main_page_(String v) {main_page = v;}
|
||||
public String To_str(Json_wtr wtr) {
|
||||
wtr.Doc_nde_bgn();
|
||||
|
||||
wtr.Nde_bgn("core");
|
||||
wtr.Kv_str("name", name);
|
||||
wtr.Kv_str("main_page", main_page);
|
||||
wtr.Nde_end();
|
||||
|
||||
wtr.Doc_nde_end();
|
||||
@ -36,9 +39,10 @@ public class Xowdir_wiki_json {
|
||||
public static Xowdir_wiki_json New_by_json(Json_parser json_parser, String json) {
|
||||
Json_doc jdoc = json_parser.Parse(json);
|
||||
String name = jdoc.Get_val_as_str_or(Bry_.Ary("core", "name"), "");
|
||||
return new Xowdir_wiki_json(name);
|
||||
String main_page = jdoc.Get_val_as_str_or(Bry_.Ary("core", "main_page"), "");
|
||||
return new Xowdir_wiki_json(name, main_page);
|
||||
}
|
||||
public static Xowdir_wiki_json New_empty() {
|
||||
return new Xowdir_wiki_json("");
|
||||
return new Xowdir_wiki_json("", "Main_Page");
|
||||
}
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ public interface Xowdir_wiki_props_mgr {
|
||||
String Wiki_cfg__select_or(String key, String or);
|
||||
void User_reg__upsert(String domain, String val);
|
||||
String User_reg__select(String domain);
|
||||
Xowdir_wiki_props Verify(boolean mode_is_import, String domain_str, Io_url core_db_url);
|
||||
Xowdir_wiki_props Verify(boolean mode_is_import, String domain, Io_url core_db_url);
|
||||
}
|
||||
abstract class Xowdir_wiki_props_mgr__base implements Xowdir_wiki_props_mgr {
|
||||
private final Gfo_usr_dlg usr_dlg;
|
||||
@ -34,7 +34,7 @@ abstract class Xowdir_wiki_props_mgr__base implements Xowdir_wiki_props_mgr {
|
||||
public abstract String Wiki_cfg__select_or(String key, String or);
|
||||
public abstract void User_reg__upsert(String domain, String val);
|
||||
public abstract String User_reg__select(String domain);
|
||||
public Xowdir_wiki_props Verify(boolean mode_is_import, String domain_str, Io_url core_db_url) {
|
||||
public Xowdir_wiki_props Verify(boolean mode_is_import, String domain, Io_url core_db_url) {
|
||||
Xowdir_wiki_props rv = new Xowdir_wiki_props();
|
||||
|
||||
Verify_or_fix(rv, core_db_url, Xowd_cfg_key_.Key__wiki_core__domain);
|
||||
|
@ -35,11 +35,11 @@ class Xowdir_wiki_props_mgr__xowa extends Xowdir_wiki_props_mgr__base {
|
||||
}
|
||||
@Override public void Wiki_cfg__upsert(String key, String val) {
|
||||
Wiki_cfg__assert_tbl();
|
||||
wiki_cfg_tbl.Upsert_str("init", key, val);
|
||||
wiki_cfg_tbl.Upsert_str(gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__wiki_init, key, val);
|
||||
}
|
||||
@Override public String Wiki_cfg__select_or(String key, String or) {
|
||||
Wiki_cfg__assert_tbl();
|
||||
return wiki_cfg_tbl.Select_str_or("init", key, or);
|
||||
return wiki_cfg_tbl.Select_str_or(gplx.xowa.wikis.data.Xowd_cfg_key_.Grp__wiki_init, key, or);
|
||||
}
|
||||
private void User_reg__assert_tbl() {
|
||||
if (user_reg_tbl == null) {
|
||||
|
@ -44,12 +44,12 @@ public class Xowdir_item_doc implements Mustache_doc_itm {
|
||||
}
|
||||
|
||||
public static final Xowdir_item_doc[] Ary_empty = new Xowdir_item_doc[0];
|
||||
public static Xowdir_item_doc New(Xowdir_wiki_itm itm, String main_page) {return new Xowdir_item_doc(itm.Id(), itm.Domain(), itm.Json().Name(), itm.Url().OwnerDir().Xto_api(), main_page);}
|
||||
public static Xowdir_item_doc New(Xowdir_wiki_itm itm) {return new Xowdir_item_doc(itm.Id(), itm.Domain(), itm.Json().Name(), itm.Url().OwnerDir().Xto_api(), itm.Json().Main_page());}
|
||||
public static Xowdir_item_doc[] New_ary(Xowdir_wiki_itm[] itms_ary) {
|
||||
int len = itms_ary.length;
|
||||
Xowdir_item_doc[] rv = new Xowdir_item_doc[itms_ary.length];
|
||||
for (int i = 0; i < len; i++) {
|
||||
rv[i] = New(itms_ary[i], ""); // NOTE: main_page empty b/c not shown on list page
|
||||
rv[i] = New(itms_ary[i]);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ class Xowdir_item_html extends Xow_special_wtr__base {
|
||||
Xowdir_wiki_itm itm = db_mgr.Tbl__wiki().Select_by_key_or_null(domain);
|
||||
if (itm == null)
|
||||
itm = new Xowdir_wiki_itm(-1, "", Io_url_.Empty, Xowdir_wiki_json.New_empty());
|
||||
return Xowdir_item_doc.New(itm, itm.Json().Name());
|
||||
return Xowdir_item_doc.New(itm);
|
||||
}
|
||||
@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();
|
||||
|
@ -55,7 +55,7 @@ class Xowdir_list_svc {
|
||||
|
||||
// add it to user_wiki
|
||||
int id = Xowdir_db_utl.Wiki_id__next(app);
|
||||
db_mgr.Tbl__wiki().Upsert(id, domain, core_db_url, new Xowdir_wiki_json(wiki_props.Name()).To_str(new Json_wtr()));
|
||||
db_mgr.Tbl__wiki().Upsert(id, domain, core_db_url, new Xowdir_wiki_json(wiki_props.Name(), wiki_props.Main_page()).To_str(new Json_wtr()));
|
||||
|
||||
// add it to personal wikis
|
||||
gplx.xowa.addons.wikis.directorys.specials.items.bldrs.Xow_wiki_factory.Load_personal((Xoae_app)app, Bry_.new_u8(domain), core_db_url.OwnerDir());
|
||||
|
Loading…
Reference in New Issue
Block a user