1
0
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:
gnosygnu 2017-02-17 23:28:40 -05:00
parent c9e22b69f7
commit 083ab133f7
7 changed files with 35 additions and 11 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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