User_wiki: Change input from file to folder

v3.3.4
gnosygnu 8 years ago
parent 6d327749fc
commit ff869ecfc3

@ -47,6 +47,7 @@ public class Io_url_ {
public static Io_url lnx_dir_(String raw) {return new_inf_(EndsWith_or_add(raw, Op_sys.Lnx.Fsys_dir_spr_str()), IoUrlInfo_.Lnx);} public static Io_url lnx_dir_(String raw) {return new_inf_(EndsWith_or_add(raw, Op_sys.Lnx.Fsys_dir_spr_str()), IoUrlInfo_.Lnx);}
public static Io_url new_fil_(String raw) {return new_any_(raw);} public static Io_url new_fil_(String raw) {return new_any_(raw);}
public static Io_url new_dir_(String raw) {return new_any_(raw);} // NOTE: for now, same as new_fil; stack overflow when doing new_dir public static Io_url new_dir_(String raw) {return new_any_(raw);} // NOTE: for now, same as new_fil; stack overflow when doing new_dir
public static Io_url new_dir_infer(String raw) {return Op_sys.Cur().Tid_is_wnt() ? wnt_dir_(raw) : lnx_dir_(raw);}
public static Io_url new_any_(String raw) {return new_inf_(raw, IoUrlInfoRegy.Instance.Match(raw));} public static Io_url new_any_(String raw) {return new_inf_(raw, IoUrlInfoRegy.Instance.Match(raw));}
public static Io_url new_inf_(String raw, IoUrlInfo info) {return String_.Eq(raw, "") ? Io_url_.Empty : new Io_url(raw, info);} public static Io_url new_inf_(String raw, IoUrlInfo info) {return String_.Eq(raw, "") ? Io_url_.Empty : new Io_url(raw, info);}
public static Io_url New__http_or_fail(String raw) {return New__http_or_fail(Bry_.new_u8(raw));} public static Io_url New__http_or_fail(String raw) {return New__http_or_fail(Bry_.new_u8(raw));}

@ -178,7 +178,6 @@ public class Xowe_wiki implements Xow_wiki, Gfo_invk, Gfo_evt_itm {
public void Init_by_wiki() {Init_assert();} public void Init_by_wiki() {Init_assert();}
public Xowe_wiki Init_assert() {if (init_needed) Init_wiki(app.Usere()); return this;} public Xowe_wiki Init_assert() {if (init_needed) Init_wiki(app.Usere()); return this;}
public void Init_db_mgr() { public void Init_db_mgr() {
int j = 1;
Io_url core_db_url = gplx.xowa.wikis.data.Xow_db_file__core_.Find_core_fil(this); Io_url core_db_url = gplx.xowa.wikis.data.Xow_db_file__core_.Find_core_fil(this);
if (core_db_url == null) { if (core_db_url == null) {
tdb_fsys_mgr.Scan_dirs(); tdb_fsys_mgr.Scan_dirs();

@ -42,8 +42,8 @@ public class Xou_wiki_tbl implements Db_tbl {
.Exec_insert() .Exec_insert()
; ;
} }
public boolean Upsert(int id, String domain, String name, String file) { public boolean Upsert(int id, String domain, String name, Io_url core_url) {
return Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__wiki_id), id, domain, name, file, ""); return Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__wiki_id), id, domain, name, core_url.Xto_api(), "");
} }
public Xou_wiki_itm[] Select_all() { public Xou_wiki_itm[] Select_all() {
Db_rdr rdr = conn.Stmt_select(tbl_name, flds).Exec_select__rls_auto(); Db_rdr rdr = conn.Stmt_select(tbl_name, flds).Exec_select__rls_auto();

@ -21,19 +21,19 @@ import gplx.langs.mustaches.*;
class Xouw_itm_doc implements Mustache_doc_itm { class Xouw_itm_doc implements Mustache_doc_itm {
private final boolean mode_is_new; private final boolean mode_is_new;
private final int id; private final int id;
private final String domain, name, file; private final String domain, name, dir;
public Xouw_itm_doc(int id, String domain, String name, String file) { public Xouw_itm_doc(int id, String domain, String name, String dir) {
this.mode_is_new = id == -1; this.mode_is_new = id == -1;
this.id = id; this.id = id;
this.domain = domain; this.domain = domain;
this.name = name; this.name = name;
this.file = file; this.dir = dir;
} }
public boolean Mustache__write(String key, Mustache_bfr bfr) { public boolean Mustache__write(String key, Mustache_bfr bfr) {
if (String_.Eq(key, "id")) bfr.Add_int(id); if (String_.Eq(key, "id")) bfr.Add_int(id);
else if (String_.Eq(key, "domain")) bfr.Add_str_u8(domain); else if (String_.Eq(key, "domain")) bfr.Add_str_u8(domain);
else if (String_.Eq(key, "name")) bfr.Add_str_u8(name); else if (String_.Eq(key, "name")) bfr.Add_str_u8(name);
else if (String_.Eq(key, "file")) bfr.Add_str_u8(file); else if (String_.Eq(key, "dir")) bfr.Add_str_u8(dir);
else return false; else return false;
return true; return true;
} }

@ -31,7 +31,7 @@ class Xouw_itm_html extends Xow_special_wtr__base {
Xou_wiki_itm itm = db_mgr.Tbl__wiki().Select_by_key_or_null(domain); Xou_wiki_itm itm = db_mgr.Tbl__wiki().Select_by_key_or_null(domain);
if (itm == null) if (itm == null)
itm = new Xou_wiki_itm(-1, "", "", Io_url_.Empty, ""); itm = new Xou_wiki_itm(-1, "", "", Io_url_.Empty, "");
return new Xouw_itm_doc(itm.Id(), itm.Domain(), itm.Name(), itm.Url().Xto_api()); return new Xouw_itm_doc(itm.Id(), itm.Domain(), itm.Name(), itm.Url().OwnerDir().Xto_api());
} }
@Override protected void Bld_tags(Xoa_app app, Io_url addon_dir, Xopage_html_data page_data) { @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(); Xopg_tag_mgr head_tags = page_data.Head_tags();

@ -26,9 +26,9 @@ class Xouw_itm_mgr {
this.app = app; this.app = app;
} }
public void Save(Json_nde args) { public void Save(Json_nde args) {
Save(args.Get_as_int("id"), args.Get_as_str("domain"), args.Get_as_str("name"), args.Get_as_str("file")); Save(args.Get_as_int("id"), args.Get_as_str("domain"), args.Get_as_str("name"), args.Get_as_str("dir"));
} }
public void Save(int id, String domain, String name, String url_str) { public void Save(int id, String domain, String name, String dir_str) {
boolean itm_is_new = false; boolean itm_is_new = false;
// get next id if none provided // get next id if none provided
if (id == -1) { if (id == -1) {
@ -39,8 +39,10 @@ class Xouw_itm_mgr {
// insert into user_db.user_wiki // insert into user_db.user_wiki
Xouw_db_mgr db_mgr = new Xouw_db_mgr(app.User().User_db_mgr().Conn()); Xouw_db_mgr db_mgr = new Xouw_db_mgr(app.User().User_db_mgr().Conn());
db_mgr.Tbl__wiki().Upsert(id, domain, name, url_str); Io_url dir_url = Io_url_.new_dir_infer(dir_str);
Io_url fil_url = dir_url.GenSubFil(domain + ".xowa");
db_mgr.Tbl__wiki().Upsert(id, domain, name, fil_url);
if (itm_is_new) if (itm_is_new)
Xow_db_mkr.Create_wiki(new Xodb_wiki_data(domain, Io_url_.new_fil_(url_str))); Xow_db_mkr.Create_wiki(new Xodb_wiki_data(domain, fil_url));
} }
} }

@ -28,5 +28,5 @@ public class Xouw_itm_special implements Xow_special_page {
Xouw_itm_special(Xow_special_meta special__meta) {this.special__meta = special__meta;} Xouw_itm_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_meta Special__meta() {return special__meta;} private final Xow_special_meta special__meta;
public Xow_special_page Special__clone() {return this;} public Xow_special_page Special__clone() {return this;}
public static final Xow_special_page Prototype = new Xouw_itm_special(Xow_special_meta.New_xo("XowaWikiRegister", "Register Wiki")); public static final Xow_special_page Prototype = new Xouw_itm_special(Xow_special_meta.New_xo("XowaWikiItem", "Wiki Data"));
} }

@ -15,7 +15,7 @@ GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License 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/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package gplx.xowa.addons.users.wikis.regys.specials.itms; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.users.*; import gplx.xowa.addons.users.wikis.*; import gplx.xowa.addons.users.wikis.regys.*; import gplx.xowa.addons.users.wikis.regys.specials.*; package gplx.xowa.addons.users.wikis.regys.specials.itms.bldrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.users.*; import gplx.xowa.addons.users.wikis.*; import gplx.xowa.addons.users.wikis.regys.*; import gplx.xowa.addons.users.wikis.regys.specials.*; import gplx.xowa.addons.users.wikis.regys.specials.itms.*;
import gplx.dbs.*; import gplx.dbs.cfgs.*; import gplx.dbs.*; import gplx.dbs.cfgs.*;
import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*; import gplx.xowa.wikis.dbs.*; import gplx.xowa.wikis.data.*; import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.addons.users.wikis.regys.dbs.*; import gplx.xowa.addons.users.wikis.regys.dbs.*;
Loading…
Cancel
Save