mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v2.10.3.1
This commit is contained in:
@@ -48,7 +48,7 @@ public class Xoc_layout_mgr implements GfoInvkAble {
|
||||
}
|
||||
}
|
||||
class Enm_mgr {
|
||||
private Ordered_hash str_hash = Ordered_hash_.new_(); private Hash_adp val_hash = Hash_adp_.new_();
|
||||
private Ordered_hash str_hash = Ordered_hash_.New(); private Hash_adp val_hash = Hash_adp_.new_();
|
||||
private Int_obj_ref tmp_val_ref = Int_obj_ref.zero_();
|
||||
public Enm_mgr Add(byte val, String str) {
|
||||
Int_obj_ref val_ref = Int_obj_ref.new_(val);
|
||||
|
||||
@@ -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.users; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.xowa.apps.gfss.*; import gplx.xowa.wikis.*;
|
||||
import gplx.xowa.apps.gfs.*; import gplx.xowa.wikis.*;
|
||||
public class Xou_fsys_mgr implements GfoInvkAble {
|
||||
private Io_url app_root_dir; private Io_url wiki_root_dir; private Io_url cur_root;
|
||||
public Xou_fsys_mgr(Xoae_app app, Xoue_user usr, Io_url user_dir) {
|
||||
|
||||
@@ -19,7 +19,7 @@ package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
||||
public class Xou_log_mgr implements GfoInvkAble {
|
||||
public boolean Log_redlinks() {return log_redlinks;} private boolean log_redlinks;
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_log_redlinks)) return Yn.Xto_str(log_redlinks);
|
||||
if (ctx.Match(k, Invk_log_redlinks)) return Yn.To_str(log_redlinks);
|
||||
else if (ctx.Match(k, Invk_log_redlinks_)) log_redlinks = m.ReadYn("v");
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ public class Xou_security_mgr implements GfoInvkAble {
|
||||
public boolean Web_access_enabled() {return app.Api_root().Net().Enabled();}
|
||||
public void Web_access_enabled_(boolean v) {app.Api_root().Net().Enabled_(v);}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_web_access_enabled)) return Yn.Xto_str(this.Web_access_enabled());
|
||||
if (ctx.Match(k, Invk_web_access_enabled)) return Yn.To_str(this.Web_access_enabled());
|
||||
else if (ctx.Match(k, Invk_web_access_enabled_)) Web_access_enabled_(m.ReadYn("v"));
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -17,12 +17,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.xowa.langs.*; import gplx.xowa.langs.cases.*; import gplx.xowa.wikis.*; import gplx.xowa.xtns.scribunto.*;
|
||||
import gplx.xowa.nss.*;
|
||||
import gplx.xowa.wikis.nss.*;
|
||||
import gplx.xowa.wikis.domains.*;
|
||||
class Xou_user_ {
|
||||
public static Xowe_wiki new_or_create_(Xoue_user user, Xoae_app app) {
|
||||
Io_url wiki_dir = app.Fsys_mgr().Home_wiki_dir();
|
||||
Xol_lang lang = app.Lang_mgr().Get_by_key_or_new(app.Lang_mgr().Default_lang());
|
||||
Xol_lang_itm lang = app.Lang_mgr().Get_by_or_new(Xol_lang_itm_.Key_en);
|
||||
lang.Init_by_load(); // NOTE: lang.Load() must occur before Xowe_wiki.new() b/c wiki will create parsers based on lang
|
||||
Xowe_wiki rv = new Xowe_wiki(app, lang, ns_home_(lang.Case_mgr()), Xow_domain_uid_.To_domain(Xow_domain_uid_.Tid_xowa), wiki_dir);
|
||||
app.Wiki_mgr().Add(rv);
|
||||
@@ -32,7 +32,7 @@ class Xou_user_ {
|
||||
}
|
||||
public static void User_system_cfg_make(Gfo_usr_dlg usr_dlg, Io_url cfg_fil) {
|
||||
usr_dlg.Log_many(GRP_KEY, "user_system_cfg.create", "creating user_system_cfg.gfs: ~{0}", cfg_fil.Raw());
|
||||
Io_mgr.I.SaveFilStr(cfg_fil, User_system_cfg_text);
|
||||
Io_mgr.Instance.SaveFilStr(cfg_fil, User_system_cfg_text);
|
||||
}
|
||||
public static void Bookmarks_make(Xoae_app app, Xowe_wiki home_wiki) {
|
||||
app.Usr_dlg().Log_many(GRP_KEY, "bookmarks.create", "creating bookmarks page");
|
||||
|
||||
@@ -20,7 +20,7 @@ public class Xou_user_mgr implements GfoInvkAble {
|
||||
public Xou_user_mgr(Xoae_app app, Xoue_user user) {this.app = app; this.Add(user);} private Xoae_app app;
|
||||
public void Add(Xoue_user itm) {regy.Add(itm.Key(), itm);}
|
||||
Xoue_user GetByKey(String key) {return (Xoue_user)regy.Get_by(key);}
|
||||
Ordered_hash regy = Ordered_hash_.new_();
|
||||
Ordered_hash regy = Ordered_hash_.New();
|
||||
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_get)) {
|
||||
|
||||
@@ -24,12 +24,12 @@ public class Xou_user_tst {
|
||||
fxt.Test_fil(user_system_cfg_url, ""); // check that it is blank
|
||||
fxt.App().Init_by_app(); // run Init_by_app
|
||||
fxt.Test_fil(user_system_cfg_url, Xou_user_.User_system_cfg_text); // check that it is created
|
||||
Io_mgr.I.SaveFilStr(user_system_cfg_url, ""); // simulate edit by blanking out file
|
||||
Io_mgr.Instance.SaveFilStr(user_system_cfg_url, ""); // simulate edit by blanking out file
|
||||
fxt.App().Init_by_app(); // run Init_by_app again
|
||||
fxt.Test_fil(user_system_cfg_url, ""); // check that it is still blank
|
||||
}
|
||||
@Test public void Available_from_fsys() {
|
||||
Io_mgr.I.CreateDir(fxt.App().Fsys_mgr().Wiki_dir().GenSubDir("en.wikipedia.org"));
|
||||
Io_mgr.Instance.CreateDir(fxt.App().Fsys_mgr().Wiki_dir().GenSubDir("en.wikipedia.org"));
|
||||
fxt.App().Usere().Available_from_fsys();
|
||||
fxt.Test_xwikis
|
||||
( fxt.Make_xwiki(Bool_.N, "home")
|
||||
@@ -39,9 +39,9 @@ public class Xou_user_tst {
|
||||
}
|
||||
class Xou_user_fxt {
|
||||
public Xoae_app App() {return app;} private Xoae_app app = Xoa_app_fxt.app_();
|
||||
public String Make_xwiki(boolean offline, String name) {return String_.Concat_with_str("|", Yn.Xto_str(offline), name);}
|
||||
public String Make_xwiki(boolean offline, String name) {return String_.Concat_with_str("|", Yn.To_str(offline), name);}
|
||||
public void Test_fil(Io_url url, String expd) {
|
||||
Tfds.Eq_str_lines(expd, Io_mgr.I.LoadFilStr(url));
|
||||
Tfds.Eq_str_lines(expd, Io_mgr.Instance.LoadFilStr(url));
|
||||
}
|
||||
public void Test_xwikis(String... expd) {
|
||||
Xow_xwiki_mgr xwiki_mgr = app.Usere().Wiki().Xwiki_mgr();
|
||||
|
||||
@@ -47,7 +47,7 @@ public class Xouc_startup_mgr implements GfoInvkAble {
|
||||
private String Custom_config() {
|
||||
if (custom_config == null) { // NOTE: LoadFilStr never returns null, so this will only execute once
|
||||
Io_url custom_config_url = config.User().Fsys_mgr().App_data_cfg_custom_fil();
|
||||
custom_config = Io_mgr.I.LoadFilStr_args(custom_config_url).MissingIgnored_().Exec();
|
||||
custom_config = Io_mgr.Instance.LoadFilStr_args(custom_config_url).MissingIgnored_().Exec();
|
||||
}
|
||||
return custom_config;
|
||||
} private String custom_config;
|
||||
@@ -60,7 +60,7 @@ public class Xouc_startup_mgr implements GfoInvkAble {
|
||||
}
|
||||
custom_config = v;
|
||||
// Io_url custom_config_url = config.User().Fsys_mgr().App_data_cfg_custom_fil(); // DELETE: no longer sync user_cfg to custom.gfs; already saved in user.gfs; DATE:2014-05-30
|
||||
// Io_mgr.I.SaveFilStr(custom_config_url, v);
|
||||
// Io_mgr.Instance.SaveFilStr(custom_config_url, v);
|
||||
}
|
||||
public static final byte Page_home = 0, Page_last = 1, Page_xowa = 2;
|
||||
}
|
||||
|
||||
@@ -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.users; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.gfui.*; import gplx.xowa.gui.views.*;
|
||||
import gplx.gfui.*; import gplx.xowa.guis.views.*;
|
||||
public class Xouc_window_mgr implements GfoInvkAble {
|
||||
public Xouc_window_mgr(Xoue_user user) {this.user = user;} private Xoue_user user;
|
||||
public byte Mode_tid() {return mode_tid;} private byte mode_tid = Mode_tid_previous;
|
||||
@@ -30,7 +30,7 @@ public class Xouc_window_mgr implements GfoInvkAble {
|
||||
else if (ctx.Match(k, Invk_mode_list)) return Options_mode_list;
|
||||
else if (ctx.Match(k, Invk_rect)) return rect;
|
||||
else if (ctx.Match(k, Invk_rect_)) rect = Rect_ref.parse(m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Invk_safe_mode)) return Yn.Xto_str(safe_mode);
|
||||
else if (ctx.Match(k, Invk_safe_mode)) return Yn.To_str(safe_mode);
|
||||
else if (ctx.Match(k, Invk_safe_mode_)) safe_mode = m.ReadYn("v");
|
||||
else if (ctx.Match(k, Invk_previous_adj)) return previous_adj;
|
||||
else if (ctx.Match(k, Invk_previous_adj_)) previous_adj = Rect_ref.parse(m.ReadStr("v"));
|
||||
|
||||
@@ -38,8 +38,8 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
public Xow_wiki Wikii() {return this.Wiki();}
|
||||
public int Gender() {return Xol_gender_.Tid_unknown;}
|
||||
public Xoae_app Appe() {return app;} private final Xoae_app app;
|
||||
public Xol_lang Lang() {if (lang == null) {lang = app.Lang_mgr().Get_by_key_or_new(app.Sys_cfg().Lang()); lang.Init_by_load();} return lang;} private Xol_lang lang;
|
||||
public void Lang_(Xol_lang v) {
|
||||
public Xol_lang_itm Lang() {if (lang == null) {lang = app.Lang_mgr().Get_by_or_new(app.Sys_cfg().Lang()); lang.Init_by_load();} return lang;} private Xol_lang_itm lang;
|
||||
public void Lang_(Xol_lang_itm v) {
|
||||
lang = v;
|
||||
this.Msg_mgr().Lang_(v);
|
||||
wiki.Msg_mgr().Clear(); // clear home wiki msgs whenever lang changes; else messages cached from old lang will not be replaced; EX:Read/Edit; DATE:2014-05-26
|
||||
@@ -58,7 +58,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
} private Xow_msg_mgr msg_mgr;
|
||||
public void Init_by_app(Xoae_app app) {
|
||||
Io_url user_system_cfg = fsys_mgr.App_data_cfg_dir().GenSubFil(Xou_fsys_mgr.Name_user_system_cfg);
|
||||
if (!Io_mgr.I.ExistsFil(user_system_cfg)) Xou_user_.User_system_cfg_make(app.Usr_dlg(), user_system_cfg);
|
||||
if (!Io_mgr.Instance.ExistsFil(user_system_cfg)) Xou_user_.User_system_cfg_make(app.Usr_dlg(), user_system_cfg);
|
||||
user_db_mgr.Init_by_app(Bool_.N, fsys_mgr.Root_dir().OwnerDir().GenSubFil("xowa.user." + key + ".sqlite3")); // EX: /xowa/user/xowa.user.anonymous.sqlite3
|
||||
if (!Env_.Mode_testing()) {
|
||||
this.Available_from_fsys();
|
||||
@@ -69,7 +69,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
session_mgr.Window_mgr().Save_window(app.Gui_mgr().Browser_win().Win_box());
|
||||
history_mgr.Save(app);
|
||||
if (app.Gui_mgr().Browser_win().Tab_mgr().Html_load_tid__url())
|
||||
Io_mgr.I.DeleteDirDeep(fsys_mgr.App_temp_html_dir());
|
||||
Io_mgr.Instance.DeleteDirDeep(fsys_mgr.App_temp_html_dir());
|
||||
app.File_mgr().Cache_mgr().Db_term();
|
||||
}
|
||||
public void Bookmarks_add(byte[] wiki_domain, byte[] ttl_full_txt) {
|
||||
@@ -102,14 +102,14 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
public static final String Key_xowa_user = "anonymous";
|
||||
public static final String Evt_lang_changed = "lang_changed";
|
||||
public void Available_from_fsys() {
|
||||
Io_url[] dirs = Io_mgr.I.QueryDir_args(app.Fsys_mgr().Wiki_dir()).Recur_(false).DirOnly_().ExecAsUrlAry();
|
||||
Io_url[] dirs = Io_mgr.Instance.QueryDir_args(app.Fsys_mgr().Wiki_dir()).Recur_(false).DirOnly_().ExecAsUrlAry();
|
||||
Xowe_wiki usr_wiki = Wiki();
|
||||
int dirs_len = dirs.length;
|
||||
for (int i = 0; i < dirs_len; i++) {
|
||||
Io_url dir = dirs[i];
|
||||
String name = dir.NameOnly();
|
||||
if (String_.Eq(name, gplx.xowa.bldrs.cmds.utils.Xob_core_batch_utl.Dir_dump)
|
||||
// || !Io_mgr.I.ExistsDir(dir.GenSubFil_nest("ns"))
|
||||
// || !Io_mgr.Instance.ExistsDir(dir.GenSubFil_nest("ns"))
|
||||
) continue;
|
||||
byte[] dir_name_as_bry = Bry_.new_u8(name);
|
||||
Xow_xwiki_itm xwiki = Available_add(usr_wiki, dir_name_as_bry);
|
||||
@@ -126,6 +126,6 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
Available_add(usr_wiki, wikis[i]);
|
||||
}
|
||||
private Xow_xwiki_itm Available_add(Xowe_wiki usr_wiki, byte[] wiki_name) {
|
||||
return usr_wiki.Xwiki_mgr().Add_full(wiki_name, wiki_name);
|
||||
return usr_wiki.Xwiki_mgr().Add_by_atrs(wiki_name, wiki_name);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,8 @@ 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.users; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.xowa.gui.views.*;
|
||||
import gplx.xowa.apis.xowa.startups.tabs.*;
|
||||
import gplx.xowa.guis.views.*;
|
||||
import gplx.xowa.apps.apis.xowa.startups.tabs.*;
|
||||
public class Xous_window_mgr implements GfoInvkAble {
|
||||
public Xous_window_mgr(Xoue_user user) {
|
||||
this.user = user;
|
||||
@@ -27,9 +27,9 @@ public class Xous_window_mgr implements GfoInvkAble {
|
||||
public boolean Maximized() {return maximized;} private boolean maximized = false;
|
||||
public void Save_window(gplx.gfui.GfuiWin win) {
|
||||
Xoae_app app = user.Appe();
|
||||
gplx.xowa.cfgs.Xoa_cfg_mgr cfg_mgr = app.Cfg_mgr();
|
||||
gplx.xowa.apps.cfgs.Xoa_cfg_mgr cfg_mgr = app.Cfg_mgr();
|
||||
if (user.Cfg_mgr().Startup_mgr().Window_mgr().Mode_tid() == Xouc_window_mgr.Mode_tid_previous) {
|
||||
cfg_mgr.Set_by_app("app.user.session.window.maximized" , Yn.Xto_str(win.Maximized()));
|
||||
cfg_mgr.Set_by_app("app.user.session.window.maximized" , Yn.To_str(win.Maximized()));
|
||||
cfg_mgr.Set_by_app("app.user.session.window.rect" , win.Rect().Xto_str());
|
||||
}
|
||||
Xoapi_startup_tabs startup_tabs = app.Api_root().App().Startup().Tabs();
|
||||
@@ -48,12 +48,12 @@ public class Xous_window_mgr implements GfoInvkAble {
|
||||
Xog_tab_itm tab = tab_mgr.Tabs_get_at(i);
|
||||
bfr.Add_str(tab.Page().Url().To_str());
|
||||
}
|
||||
return bfr.Xto_str_and_clear();
|
||||
return bfr.To_str_and_clear();
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_rect)) return rect;
|
||||
else if (ctx.Match(k, Invk_rect_)) rect = Rect_ref.parse(m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Invk_maximized)) return Yn.Xto_str(maximized);
|
||||
else if (ctx.Match(k, Invk_maximized)) return Yn.To_str(maximized);
|
||||
else if (ctx.Match(k, Invk_maximized_)) maximized = m.ReadYn("v");
|
||||
return this;
|
||||
} public static final String Invk_rect = "rect", Invk_rect_ = "rect_", Invk_maximized = "maximized", Invk_maximized_ = "maximized_";
|
||||
|
||||
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.users.bmks; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
import gplx.langs.jsons.*; import gplx.langs.htmls.*;
|
||||
import gplx.xowa.users.data.*; import gplx.xowa.users.bmks.*;
|
||||
import gplx.xowa.html.bridges.*; import gplx.xowa.html.bridges.dbuis.*; import gplx.xowa.html.bridges.dbuis.tbls.*; import gplx.xowa.html.bridges.dbuis.fmtrs.*;
|
||||
import gplx.xowa.htmls.bridges.*; import gplx.xowa.htmls.bridges.dbuis.*; import gplx.xowa.htmls.bridges.dbuis.tbls.*; import gplx.xowa.htmls.bridges.dbuis.fmtrs.*;
|
||||
public class Dbui_tbl_itm__bmk implements Dbui_tbl_itm {
|
||||
private final Xoa_app app; private final Xoud_bmk_itm_tbl tbl;
|
||||
private final Dbui_tbl_fmtr tbl_fmtr = new Dbui_tbl_fmtr();
|
||||
@@ -31,13 +31,13 @@ public class Dbui_tbl_itm__bmk implements Dbui_tbl_itm {
|
||||
public Dbui_btn_itm[] Edit_btns() {return edit_btns;}
|
||||
public Dbui_col_itm[] Cols() {return cols;}
|
||||
public void Reg(Bridge_cmd_mgr bridge_mgr) {
|
||||
Dbui_cmd_mgr dbui_mgr = Dbui_cmd_mgr.I;
|
||||
Dbui_cmd_mgr dbui_mgr = Dbui_cmd_mgr.Instance;
|
||||
dbui_mgr.Init_by_bridge(bridge_mgr);
|
||||
dbui_mgr.Add(this);
|
||||
}
|
||||
public void Select(Bry_bfr bfr, int owner) {
|
||||
Xoud_bmk_itm_row[] db_rows = tbl.Select_grp(owner);
|
||||
byte[] option_link = app.Html__lnki_bldr().Href_(Bry_.new_a7("home"), app.User().Wikii().Ttl_parse(Bry_.new_a7("Help:Options/Bookmarks"))).Img_16x16(gplx.xowa.html.wtrs.Xoh_img_path.Img_option).Bld_to_bry();
|
||||
byte[] option_link = app.Html__lnki_bldr().Href_(Bry_.new_a7("home"), app.User().Wikii().Ttl_parse(Bry_.new_a7("Help:Options/Bookmarks"))).Img_16x16(gplx.xowa.htmls.wtrs.Xoh_img_path.Img_option).Bld_to_bry();
|
||||
byte[] delete_confirm_msg = app.Api_root().Usr().Bookmarks().Delete_confirm() ? Msg__delete_confirm : Bry_.Empty;
|
||||
tbl_fmtr.Write(bfr, this, option_link, delete_confirm_msg, To_ui_rows(db_rows));
|
||||
} private static final byte[] Msg__delete_confirm = Bry_.new_a7(" data-dbui-delete_confirm_msg='Are you sure you want to delete this bookmark?'");
|
||||
@@ -83,14 +83,14 @@ public class Dbui_tbl_itm__bmk implements Dbui_tbl_itm {
|
||||
private String Write_cells(Dbui_val_fmtr val_fmtr, Dbui_btn_itm[] btns, byte[] row_id, Dbui_row_itm row) {
|
||||
cells_fmtr.Ctor(val_fmtr, btns);
|
||||
cells_fmtr.Init(row_id, row);
|
||||
cells_fmtr.XferAry(tmp_bfr, 0);
|
||||
return app.Html__bridge_mgr().Msg_bldr().Clear().Data("html", tmp_bfr.Xto_bry_and_clear()).To_json_str();
|
||||
cells_fmtr.Fmt__do(tmp_bfr);
|
||||
return app.Html__bridge_mgr().Msg_bldr().Clear().Data("html", tmp_bfr.To_bry_and_clear()).To_json_str();
|
||||
}
|
||||
private Xoud_bmk_itm_row Get_db_row(byte[] pkey) {
|
||||
int bmk_id = Bry_.To_int(pkey);
|
||||
return tbl.Select_or_null(bmk_id);
|
||||
}
|
||||
private Dbui_row_itm Get_ui_row(Xoud_bmk_itm_row row) {return Get_ui_row(Int_.Xto_bry(row.Id()), row.Name(), row.Url(), row.Comment());}
|
||||
private Dbui_row_itm Get_ui_row(Xoud_bmk_itm_row row) {return Get_ui_row(Int_.To_bry(row.Id()), row.Name(), row.Url(), row.Comment());}
|
||||
private Dbui_row_itm Get_ui_row(byte[] pkey, byte[] name, byte[] url, byte[] comment) {
|
||||
Dbui_val_itm[] vals = new Dbui_val_itm[3];
|
||||
vals[0] = new Dbui_val_itm(name, Html_utl.Escape_html_as_bry(tmp_bfr, name));
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.users.bmks; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
import gplx.core.primitives.*;
|
||||
import gplx.xowa.html.bridges.dbuis.tbls.*;
|
||||
import gplx.xowa.htmls.bridges.dbuis.tbls.*;
|
||||
import gplx.xowa.users.data.*; import gplx.xowa.specials.*;
|
||||
public class Xows_bmk_page implements Xows_page {
|
||||
public Xows_special_meta Special_meta() {return Xows_special_meta_.Itm__bookmarks;}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Xou_db_mgr {
|
||||
public Xou_cache_mgr Cache_mgr() {return cache_mgr;} private Xou_cache_mgr cache_mgr;
|
||||
public Xou_file_itm_finder File__xfer_itm_finder() {return xfer_itm_finder;} private Xou_file_itm_finder xfer_itm_finder;
|
||||
public void Init_by_app(boolean drd, Io_url db_url) {
|
||||
Db_conn_bldr_data db_conn_bldr = Db_conn_bldr.I.Get_or_new(db_url);
|
||||
Db_conn_bldr_data db_conn_bldr = Db_conn_bldr.Instance.Get_or_new(db_url);
|
||||
Db_conn conn = db_conn_bldr.Conn(); boolean created = db_conn_bldr.Created();
|
||||
this.db_file = new Xou_db_file(conn); db_file.Init_assert();
|
||||
this.cache_mgr = new Xou_cache_mgr(app.Wiki_mgri(), app.Fsys_mgr().File_dir(), db_file);
|
||||
|
||||
@@ -24,8 +24,8 @@ class Xoud_opt_scope {
|
||||
public int Lang_id() {return lang_id;} private final int lang_id;
|
||||
public int Type_id() {return type_id;} private final int type_id;
|
||||
public String To_str() {
|
||||
String lang_str = lang_id == Lang_id_wildcard ? "*" : String_.new_u8(Xol_lang_itm_.Get_by_id(lang_id).Key());
|
||||
String type_str = type_id == Lang_id_wildcard ? "*" : String_.new_u8(Xow_domain_type_.Get_type_as_bry(type_id));
|
||||
String lang_str = lang_id == Lang_id_wildcard ? "*" : String_.new_u8(Xol_lang_stub_.Get_by_id(lang_id).Key());
|
||||
String type_str = type_id == Lang_id_wildcard ? "*" : String_.new_u8(Xow_domain_tid_.Get_type_as_bry(type_id));
|
||||
return lang_str + "." + type_str;
|
||||
}
|
||||
public static final int Lang_id_wildcard = -1, Type_id_wildcard = -1;
|
||||
@@ -34,7 +34,7 @@ class Xoud_opt_scope {
|
||||
class Xoud_opt_scope_parser {
|
||||
private Gfo_usr_dlg usr_dlg; private final List_adp list = List_adp_.new_();
|
||||
public Xoud_opt_scope[] Parse(byte[] src) {
|
||||
usr_dlg = Gfo_usr_dlg_.I;
|
||||
usr_dlg = Gfo_usr_dlg_.Instance;
|
||||
list.Clear();
|
||||
int pos = 0; int src_len = src.length;
|
||||
while (pos < src_len) {
|
||||
@@ -52,7 +52,7 @@ class Xoud_opt_scope_parser {
|
||||
if (lang_dot == 1 && src[bgn] == Byte_ascii.Star)
|
||||
lang_id = Xoud_opt_scope.Lang_id_wildcard;
|
||||
else {
|
||||
Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key_or_null(src, bgn, lang_dot); if (lang_itm == null) return Warn("scope.parse.invalid_lang: src=~{0}", src, bgn, end);
|
||||
Xol_lang_stub lang_itm = Xol_lang_stub_.Get_by_key_or_null(src, bgn, lang_dot); if (lang_itm == null) return Warn("scope.parse.invalid_lang: src=~{0}", src, bgn, end);
|
||||
lang_id = lang_itm.Id();
|
||||
}
|
||||
Object type_tid_obj = btrie_by_type.Match_bgn(src, lang_dot + 1, end); if (type_tid_obj == null) return Warn("scope.parse.invalid_type: src=~{0}", src, bgn, end);
|
||||
@@ -64,22 +64,22 @@ class Xoud_opt_scope_parser {
|
||||
return Xoud_opt_scope.App;
|
||||
}
|
||||
private static final Btrie_slim_mgr btrie_by_type = Btrie_slim_mgr.cs()
|
||||
.Add_str_int("w" , Xow_domain_type_.Int__wikipedia)
|
||||
.Add_str_int("d" , Xow_domain_type_.Int__wiktionary)
|
||||
.Add_str_int("s" , Xow_domain_type_.Int__wikisource)
|
||||
.Add_str_int("v" , Xow_domain_type_.Int__wikivoyage)
|
||||
.Add_str_int("q" , Xow_domain_type_.Int__wikiquote)
|
||||
.Add_str_int("b" , Xow_domain_type_.Int__wikibooks)
|
||||
.Add_str_int("u" , Xow_domain_type_.Int__wikiversity)
|
||||
.Add_str_int("n" , Xow_domain_type_.Int__wikinews)
|
||||
.Add_str_int("w" , Xow_domain_tid_.Int__wikipedia)
|
||||
.Add_str_int("d" , Xow_domain_tid_.Int__wiktionary)
|
||||
.Add_str_int("s" , Xow_domain_tid_.Int__wikisource)
|
||||
.Add_str_int("v" , Xow_domain_tid_.Int__wikivoyage)
|
||||
.Add_str_int("q" , Xow_domain_tid_.Int__wikiquote)
|
||||
.Add_str_int("b" , Xow_domain_tid_.Int__wikibooks)
|
||||
.Add_str_int("u" , Xow_domain_tid_.Int__wikiversity)
|
||||
.Add_str_int("n" , Xow_domain_tid_.Int__wikinews)
|
||||
.Add_str_int("*" , Xoud_opt_scope.Type_id_wildcard)
|
||||
.Add_str_int("xowa" , Xow_domain_type_.Int__home)
|
||||
.Add_str_int("wd" , Xow_domain_type_.Int__wikidata)
|
||||
.Add_str_int("c" , Xow_domain_type_.Int__commons)
|
||||
.Add_str_int("species" , Xow_domain_type_.Int__species)
|
||||
.Add_str_int("meta" , Xow_domain_type_.Int__meta)
|
||||
.Add_str_int("mw" , Xow_domain_type_.Int__mediawiki)
|
||||
.Add_str_int("wmf" , Xow_domain_type_.Int__wmfblog)
|
||||
.Add_str_int("xowa" , Xow_domain_tid_.Int__home)
|
||||
.Add_str_int("wd" , Xow_domain_tid_.Int__wikidata)
|
||||
.Add_str_int("c" , Xow_domain_tid_.Int__commons)
|
||||
.Add_str_int("species" , Xow_domain_tid_.Int__species)
|
||||
.Add_str_int("meta" , Xow_domain_tid_.Int__meta)
|
||||
.Add_str_int("mw" , Xow_domain_tid_.Int__mediawiki)
|
||||
.Add_str_int("wmf" , Xow_domain_tid_.Int__wmfblog)
|
||||
;
|
||||
private static final Xoud_opt_scope[] Ary_app = new Xoud_opt_scope[] {Xoud_opt_scope.App};
|
||||
}
|
||||
|
||||
@@ -22,11 +22,11 @@ public class Xoud_opt_scope_tst {
|
||||
private Xoud_opt_scope_fxt fxt = new Xoud_opt_scope_fxt();
|
||||
@Before public void init() {fxt.Clear();}
|
||||
@Test public void Basic() {
|
||||
fxt.Test_parse("en.w" , fxt.Make(Xol_lang_itm_.Id_en, Xow_domain_type_.Int__wikipedia));
|
||||
fxt.Test_parse("en.*" , fxt.Make(Xol_lang_itm_.Id_en, Xoud_opt_scope.Type_id_wildcard));
|
||||
fxt.Test_parse("*.w" , fxt.Make(Xoud_opt_scope.Lang_id_wildcard, Xow_domain_type_.Int__wikipedia));
|
||||
fxt.Test_parse("en.w" , fxt.Make(Xol_lang_stub_.Id_en, Xow_domain_tid_.Int__wikipedia));
|
||||
fxt.Test_parse("en.*" , fxt.Make(Xol_lang_stub_.Id_en, Xoud_opt_scope.Type_id_wildcard));
|
||||
fxt.Test_parse("*.w" , fxt.Make(Xoud_opt_scope.Lang_id_wildcard, Xow_domain_tid_.Int__wikipedia));
|
||||
fxt.Test_parse("<any>" , Xoud_opt_scope.App);
|
||||
fxt.Test_parse("en.w,fr.d" , fxt.Make(Xol_lang_itm_.Id_en, Xow_domain_type_.Int__wikipedia), fxt.Make(Xol_lang_itm_.Id_fr, Xow_domain_type_.Int__wiktionary));
|
||||
fxt.Test_parse("en.w,fr.d" , fxt.Make(Xol_lang_stub_.Id_en, Xow_domain_tid_.Int__wikipedia), fxt.Make(Xol_lang_stub_.Id_fr, Xow_domain_tid_.Int__wiktionary));
|
||||
}
|
||||
}
|
||||
class Xoud_opt_scope_fxt {
|
||||
@@ -47,6 +47,6 @@ class Xoud_opt_scope_fxt {
|
||||
if (i != 0) bfr.Add_str_a7(",");
|
||||
bfr.Add_str_a7(itm.To_str());
|
||||
}
|
||||
return bfr.Xto_str_and_clear();
|
||||
return bfr.To_str_and_clear();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.users.history; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
import gplx.langs.jsons.*; import gplx.langs.htmls.*;
|
||||
import gplx.xowa.users.data.*; import gplx.xowa.users.bmks.*;
|
||||
import gplx.xowa.html.bridges.*; import gplx.xowa.html.bridges.dbuis.*; import gplx.xowa.html.bridges.dbuis.tbls.*; import gplx.xowa.html.bridges.dbuis.fmtrs.*;
|
||||
import gplx.xowa.htmls.bridges.*; import gplx.xowa.htmls.bridges.dbuis.*; import gplx.xowa.htmls.bridges.dbuis.tbls.*; import gplx.xowa.htmls.bridges.dbuis.fmtrs.*;
|
||||
public class Dbui_tbl_itm__history implements Dbui_tbl_itm {
|
||||
private final Xoa_app app; private final Xoud_history_tbl tbl;
|
||||
private final Dbui_tbl_fmtr tbl_fmtr = new Dbui_tbl_fmtr();
|
||||
@@ -30,7 +30,7 @@ public class Dbui_tbl_itm__history implements Dbui_tbl_itm {
|
||||
public Dbui_btn_itm[] Edit_btns() {return Dbui_btn_itm.Ary_empty;}
|
||||
public Dbui_col_itm[] Cols() {return cols;}
|
||||
public void Reg(Bridge_cmd_mgr bridge_mgr) {
|
||||
Dbui_cmd_mgr dbui_mgr = Dbui_cmd_mgr.I;
|
||||
Dbui_cmd_mgr dbui_mgr = Dbui_cmd_mgr.Instance;
|
||||
dbui_mgr.Init_by_bridge(bridge_mgr);
|
||||
dbui_mgr.Add(this);
|
||||
}
|
||||
@@ -38,7 +38,7 @@ public class Dbui_tbl_itm__history implements Dbui_tbl_itm {
|
||||
public void Select(Bry_bfr bfr, int top) {
|
||||
tbl.Select_by_top(select_list, 100);
|
||||
Xoud_history_row[] db_rows = (Xoud_history_row[])select_list.To_ary_and_clear(Xoud_history_row.class);
|
||||
byte[] option_link = app.Html__lnki_bldr().Href_(Bry_.new_a7("home"), app.User().Wikii().Ttl_parse(Bry_.new_a7("Help:Options/PageHistory"))).Img_16x16(gplx.xowa.html.wtrs.Xoh_img_path.Img_option).Bld_to_bry();
|
||||
byte[] option_link = app.Html__lnki_bldr().Href_(Bry_.new_a7("home"), app.User().Wikii().Ttl_parse(Bry_.new_a7("Help:Options/PageHistory"))).Img_16x16(gplx.xowa.htmls.wtrs.Xoh_img_path.Img_option).Bld_to_bry();
|
||||
byte[] delete_confirm_msg = app.Api_root().Usr().Bookmarks().Delete_confirm() ? Msg__delete_confirm : Bry_.Empty;
|
||||
tbl_fmtr.Write(bfr, this, option_link, delete_confirm_msg, To_ui_rows(db_rows));
|
||||
} private static final byte[] Msg__delete_confirm = Bry_.new_a7(" data-dbui-delete_confirm_msg='Are you sure you want to delete this row?'");
|
||||
@@ -61,12 +61,12 @@ public class Dbui_tbl_itm__history implements Dbui_tbl_itm {
|
||||
int id = Bry_.To_int(pkey);
|
||||
return tbl.Select_or_null(id);
|
||||
}
|
||||
private Dbui_row_itm Get_ui_row(Xoud_history_row row) {return Get_ui_row(Int_.Xto_bry(row.Id()), row.Wiki(), row.Url(), row.Count(), row.Time());}
|
||||
private Dbui_row_itm Get_ui_row(Xoud_history_row row) {return Get_ui_row(Int_.To_bry(row.Id()), row.Wiki(), row.Url(), row.Count(), row.Time());}
|
||||
private Dbui_row_itm Get_ui_row(byte[] pkey, byte[] wiki, byte[] url, int count, DateAdp time) {
|
||||
Dbui_val_itm[] vals = new Dbui_val_itm[4];
|
||||
vals[0] = new Dbui_val_itm(url, url_fmtr.Bld_bry_many(tmp_bfr, Html_utl.Escape_for_atr_val_as_bry(tmp_bfr, Byte_ascii.Apos, url)));
|
||||
vals[1] = new Dbui_val_itm(wiki, wiki);
|
||||
byte[] count_bry = Int_.Xto_bry(count);
|
||||
byte[] count_bry = Int_.To_bry(count);
|
||||
vals[2] = new Dbui_val_itm(count_bry, count_bry);
|
||||
byte[] time_bry = Bry_.new_u8(time.XtoStr_fmt_yyyy_MM_dd_HH_mm_ss());
|
||||
vals[3] = new Dbui_val_itm(time_bry, time_bry);
|
||||
|
||||
@@ -26,7 +26,7 @@ public class Xou_history_html implements Bry_fmtr_arg, Xows_page {
|
||||
html_grp.Bld_bfr_many(bfr, this);
|
||||
page.Data_raw_(bfr.To_bry_and_rls());
|
||||
}
|
||||
public void XferAry(Bry_bfr bfr, int idx) {
|
||||
public void Fmt__do(Bry_bfr bfr) {
|
||||
int len = mgr.Len();
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xou_history_itm itm = mgr.Get_at(i);
|
||||
|
||||
@@ -68,6 +68,6 @@ public class Xou_history_itm {
|
||||
.Add(wiki) .Add_byte(Bry_.Dlm_fld)
|
||||
.Add(page) .Add_byte(Bry_.Dlm_row);
|
||||
}
|
||||
public static byte[] key_(byte[] wiki, byte[] page) {return Bry_.Add(wiki, Key_dlm, page);} private static final byte[] Key_dlm = Xoa_consts.Pipe_bry;
|
||||
public static byte[] key_(byte[] wiki, byte[] page) {return Bry_.Add(wiki, Key_dlm, page);} private static final byte[] Key_dlm = Byte_ascii.Pipe_bry;
|
||||
public static final byte Fld_key = 0, Fld_wiki = 1, Fld_page = 2, Fld_view_count = 3, Fld_view_bgn = 4, Fld_view_end = 5;
|
||||
}
|
||||
|
||||
@@ -16,11 +16,11 @@ 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.users.history; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
import gplx.core.primitives.*; import gplx.core.net.*; import gplx.xowa.html.hrefs.*;
|
||||
import gplx.core.primitives.*; import gplx.core.net.*; import gplx.xowa.htmls.hrefs.*;
|
||||
public class Xou_history_mgr implements GfoInvkAble {
|
||||
private final Xou_history_html html_mgr = new Xou_history_html(); private Xou_history_sorter sorter = new Xou_history_sorter().Sort_fld_(Xou_history_itm.Fld_view_end).Ascending_(false);
|
||||
private final Io_url history_fil;
|
||||
private Ordered_hash itms = Ordered_hash_.new_bry_();
|
||||
private Ordered_hash itms = Ordered_hash_.New_bry();
|
||||
private boolean load_chk = false;
|
||||
private final Bry_bfr tmp_bfr = Bry_bfr.new_();
|
||||
public Xou_history_mgr(Io_url history_fil) {this.history_fil = history_fil;}
|
||||
@@ -73,14 +73,14 @@ public class Xou_history_mgr implements GfoInvkAble {
|
||||
tmp_bfr.Add(page);
|
||||
Gfo_qarg_mgr qarg_mgr = url.Qargs_mgr();
|
||||
qarg_mgr.To_bry(tmp_bfr, Xoa_app_.Utl__encoder_mgr().Href(), Bool_.N);
|
||||
return tmp_bfr.Xto_bry_and_clear();
|
||||
return tmp_bfr.To_bry_and_clear();
|
||||
}
|
||||
public void Sort() {itms.Sort_by(sorter);}
|
||||
public void Load() {
|
||||
if (load_chk) return;
|
||||
load_chk = true;
|
||||
itms.Clear();
|
||||
Xou_history_itm_srl.Load(Io_mgr.I.LoadFilBry(history_fil), itms);
|
||||
Xou_history_itm_srl.Load(Io_mgr.Instance.LoadFilBry(history_fil), itms);
|
||||
itms.Sort_by(sorter);
|
||||
}
|
||||
public void Save(Xoae_app app) {
|
||||
@@ -90,13 +90,13 @@ public class Xou_history_mgr implements GfoInvkAble {
|
||||
itms.Sort_by(sorter);
|
||||
if (itms_len > current_itms_max) itms = Archive(app);
|
||||
byte[] ary = Xou_history_itm_srl.Save(itms);
|
||||
Io_mgr.I.SaveFilBry(app.Usere().Fsys_mgr().App_data_history_fil(), ary);
|
||||
Io_mgr.Instance.SaveFilBry(app.Usere().Fsys_mgr().App_data_history_fil(), ary);
|
||||
}
|
||||
public Ordered_hash Archive(Xoae_app app) {
|
||||
itms.Sort_by(sorter);
|
||||
int itms_len = itms.Count();
|
||||
Ordered_hash current_itms = Ordered_hash_.new_bry_();
|
||||
Ordered_hash archive_itms = Ordered_hash_.new_bry_();
|
||||
Ordered_hash current_itms = Ordered_hash_.New_bry();
|
||||
Ordered_hash archive_itms = Ordered_hash_.New_bry();
|
||||
for (int i = 0; i < itms_len; i++) {
|
||||
Xou_history_itm itm = (Xou_history_itm)itms.Get_at(i);
|
||||
Ordered_hash itms_hash = (i < current_itms_reset) ? current_itms : archive_itms;
|
||||
@@ -104,7 +104,7 @@ public class Xou_history_mgr implements GfoInvkAble {
|
||||
}
|
||||
byte[] ary = Xou_history_itm_srl.Save(archive_itms);
|
||||
Io_url url = app.Usere().Fsys_mgr().App_data_history_fil().GenNewNameOnly(DateAdp_.Now().XtoStr_fmt_yyyyMMdd_HHmmss_fff());
|
||||
Io_mgr.I.SaveFilBry(url, ary);
|
||||
Io_mgr.Instance.SaveFilBry(url, ary);
|
||||
return current_itms;
|
||||
} private int current_itms_max = 512, current_itms_reset = 256;
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
@@ -146,6 +146,6 @@ class Xou_history_itm_srl {
|
||||
int listLen = list.Count();
|
||||
for (int i = 0; i < listLen; i++)
|
||||
((Xou_history_itm)list.Get_at(i)).Save(bb);
|
||||
return bb.Xto_bry();
|
||||
return bb.To_bry();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ class Xou_history_mgr_fxt {
|
||||
wiki = Xoa_app_fxt.wiki_tst_(app);
|
||||
under = app.Usere().History_mgr();
|
||||
}
|
||||
Io_mgr.I.DeleteDirDeep(Io_url_.new_dir_("mem/xowa/user/test_user/app/data/history/"));
|
||||
Io_mgr.Instance.DeleteDirDeep(Io_url_.new_dir_("mem/xowa/user/test_user/app/data/history/"));
|
||||
under.Clear();
|
||||
}
|
||||
public Xou_history_mgr_fxt Add_many(String... ary) {
|
||||
@@ -88,7 +88,7 @@ class Xou_history_mgr_fxt {
|
||||
public Xou_history_mgr_fxt Invk(String key, Object v) {GfoInvkAble_.InvkCmd_val(under, key, v); return this;}
|
||||
public Xou_history_mgr_fxt Save() {under.Save(app); return this;}
|
||||
public Xou_history_mgr_fxt Fil_tst(String expd_url, String expd) {
|
||||
String actl = Io_mgr.I.LoadFilStr(expd_url);
|
||||
String actl = Io_mgr.Instance.LoadFilStr(expd_url);
|
||||
Tfds.Eq_str_lines(expd, actl);
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ public class Xoud_history_tbl implements RlsAble {
|
||||
}
|
||||
public void Select_by_top(List_adp rv, int count) {
|
||||
if (stmt_select_by_top == null) {
|
||||
Db_qry__select_in_tbl qry = new Db_qry__select_in_tbl(tbl_name, flds.To_str_ary(), null, null, null, fld_time + " DESC", " LIMIT " + Int_.Xto_str(count));
|
||||
Db_qry__select_in_tbl qry = new Db_qry__select_in_tbl(tbl_name, flds.To_str_ary(), null, null, null, fld_time + " DESC", " LIMIT " + Int_.To_str(count));
|
||||
stmt_select_by_top = conn.Stmt_new(qry);
|
||||
}
|
||||
Db_rdr rdr = stmt_select_by_top.Clear().Exec_select__rls_manual();
|
||||
|
||||
@@ -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.users.prefs; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
import gplx.xowa.cfgs.*;
|
||||
import gplx.xowa.apps.cfgs.*;
|
||||
public class Prefs_converter {
|
||||
private Bry_bfr bfr = Bry_bfr.new_();
|
||||
private List_adp list = List_adp_.new_();
|
||||
@@ -25,11 +25,11 @@ public class Prefs_converter {
|
||||
if (options_version == 1) {
|
||||
Io_url cfg_dir = app.Usere().Fsys_mgr().App_data_cfg_dir();
|
||||
Io_url cfg_fil = cfg_dir.GenSubFil("user_system_cfg.gfs");
|
||||
Io_url trg_fil = cfg_fil.GenNewNameAndExt(gplx.xowa.cfgs.Xoa_cfg_db_txt.File_name);
|
||||
if (!Io_mgr.I.ExistsFil(trg_fil)) { // do not overwrite file if it is there (i.e.: it's already converted); needed when running in app_mode = cmd (see HACK in Xob_bldr.Run)
|
||||
String old_str = Io_mgr.I.LoadFilStr_args(cfg_fil).MissingIgnored_(true).Exec();
|
||||
Io_url trg_fil = cfg_fil.GenNewNameAndExt(gplx.xowa.apps.cfgs.Xoa_cfg_db_txt.File_name);
|
||||
if (!Io_mgr.Instance.ExistsFil(trg_fil)) { // do not overwrite file if it is there (i.e.: it's already converted); needed when running in app_mode = cmd (see HACK in Xob_bldr.Run)
|
||||
String old_str = Io_mgr.Instance.LoadFilStr_args(cfg_fil).MissingIgnored_(true).Exec();
|
||||
String new_str = Convert(old_str);
|
||||
Io_mgr.I.SaveFilStr(trg_fil, new_str);
|
||||
Io_mgr.Instance.SaveFilStr(trg_fil, new_str);
|
||||
app.Cfg_mgr().Db_load_txt();
|
||||
app.Cfg_mgr().Set_by_app("app.setup.dumps.wiki_storage_type", "sqlite");
|
||||
app.Log_wtr().Log_to_session_fmt("converted options to v2");
|
||||
@@ -38,7 +38,7 @@ public class Prefs_converter {
|
||||
}
|
||||
public String Convert(String raw) {
|
||||
list.Clear();
|
||||
GfoMsg root_msg = gplx.langs.gfss.Gfs_msg_bldr._.ParseToMsg(raw);
|
||||
GfoMsg root_msg = gplx.langs.gfs.Gfs_msg_bldr.Instance.ParseToMsg(raw);
|
||||
int len = root_msg.Subs_count();
|
||||
for (int i = 0; i < len; i++) {
|
||||
GfoMsg msg = root_msg.Subs_getAt(i);
|
||||
@@ -58,7 +58,7 @@ public class Prefs_converter {
|
||||
Write_escaped_str(bfr, itm.Val());
|
||||
bfr.Add_str_a7("';\n");
|
||||
}
|
||||
return bfr.Xto_str_and_clear();
|
||||
return bfr.To_str_and_clear();
|
||||
}
|
||||
private void Write_escaped_str(Bry_bfr bfr, String str) {
|
||||
byte[] bry = Bry_.new_u8(str);
|
||||
@@ -81,7 +81,7 @@ public class Prefs_converter {
|
||||
if (prop_set_key[prop_set_key_len - 1] != Byte_ascii.Underline) return; // doesn't end with _
|
||||
bfr.Add_mid(prop_set_key, 0, prop_set_key_len - 1);
|
||||
Prefs_converter_itm itm = new Prefs_converter_itm();
|
||||
itm.Key_(bfr.Xto_str_and_clear());
|
||||
itm.Key_(bfr.To_str_and_clear());
|
||||
String prop_val = m.Args_getAt(0).Val_to_str_or_empty();
|
||||
itm.Val_(prop_val);
|
||||
list.Add(itm);
|
||||
@@ -105,7 +105,7 @@ public class Prefs_converter {
|
||||
Convert_msg(m.Subs_getAt(0), depth + 1);
|
||||
}
|
||||
}
|
||||
public static final Prefs_converter _ = new Prefs_converter(); Prefs_converter() {}
|
||||
public static final Prefs_converter Instance = new Prefs_converter(); Prefs_converter() {}
|
||||
}
|
||||
class Prefs_converter_itm {
|
||||
public String Key() {return key;} public void Key_(String v) {this.key = v;} private String key;
|
||||
|
||||
@@ -34,7 +34,7 @@ public class Prefs_converter_tst {
|
||||
}
|
||||
}
|
||||
class Prefs_converter_fxt {
|
||||
Prefs_converter converter = Prefs_converter._;
|
||||
Prefs_converter converter = Prefs_converter.Instance;
|
||||
public void Test_convert(String raw, String expd) {
|
||||
String actl = converter.Convert(raw);
|
||||
Tfds.Eq_str_lines(expd, actl);
|
||||
|
||||
@@ -96,13 +96,13 @@ class Prefs_html_wtr {
|
||||
if (cmd == null)
|
||||
cmd = hnde.Atrs_val_by_key_bry(Prefs_mgr.Bry_prop_get);
|
||||
tmp_bfr.Add(cmd).Add_byte(Byte_ascii.Semic);
|
||||
try {return prefs_mgr.Eval(tmp_bfr.Xto_bry_and_clear());}
|
||||
try {return prefs_mgr.Eval(tmp_bfr.To_bry_and_clear());}
|
||||
catch (Exception e) {return Err_.Message_gplx_full(e);}
|
||||
}
|
||||
KeyVal[] Get_select_options(Html_nde hnde) {
|
||||
byte[] options_list_key = hnde.Atrs_val_by_key_bry(Atr_key_xowa_prop_list);
|
||||
tmp_bfr.Add(options_list_key).Add_byte(Byte_ascii.Semic);
|
||||
try {return (KeyVal[])prefs_mgr.Eval(tmp_bfr.Xto_bry_and_clear());}
|
||||
try {return (KeyVal[])prefs_mgr.Eval(tmp_bfr.To_bry_and_clear());}
|
||||
catch (Exception e) {Err_.Noop(e); return KeyVal_.Ary_empty;}
|
||||
}
|
||||
private void Write__nde_end(Bry_bfr bfr) {bfr.Add_byte(Byte_ascii.Gt);}
|
||||
|
||||
@@ -17,8 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.users.prefs; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
import gplx.core.primitives.*; import gplx.core.net.*; import gplx.langs.htmls.*; import gplx.gfui.*;
|
||||
import gplx.xowa.gui.views.*;
|
||||
import gplx.xowa.urls.*;
|
||||
import gplx.xowa.guis.views.*;
|
||||
import gplx.xowa.apps.urls.*;
|
||||
import gplx.xowa.parsers.*;
|
||||
public class Prefs_mgr implements GfoInvkAble {
|
||||
public Prefs_mgr(Xoae_app app) {
|
||||
@@ -50,7 +50,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
pos = hnde.Tag_rhs_end();
|
||||
}
|
||||
bfr.Add_mid(src, pos, src.length);
|
||||
return bfr.Xto_bry_and_clear();
|
||||
return bfr.To_bry_and_clear();
|
||||
} private Bry_fmtr props_get_fmtr;
|
||||
private void Props_set_and_reload() {
|
||||
Xoae_page page = app.Gui_mgr().Browser_win().Active_page();
|
||||
@@ -78,7 +78,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
byte[] eval_code = hnde.Atrs_val_by_key_bry(Bry_prop);
|
||||
if (eval_code == null) eval_code = hnde.Atrs_val_by_key_bry(Bry_prop_set);
|
||||
String hnde_val = null;
|
||||
String hnde_key = "xowa_prop_" + Int_.Xto_str(i);
|
||||
String hnde_key = "xowa_prop_" + Int_.To_str(i);
|
||||
Xog_html_itm html_itm = html_box_mok == null ? app.Gui_mgr().Browser_win().Active_tab().Html_itm() : html_box_mok; // TEST:
|
||||
byte elem_tid = Prefs_mgr.Elem_tid_tid_of(hnde);
|
||||
switch (elem_tid) {
|
||||
|
||||
@@ -17,8 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.users.prefs; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
import org.junit.*;
|
||||
import gplx.gfui.*; import gplx.xowa.apps.gfss.*;
|
||||
import gplx.xowa.gui.views.*;
|
||||
import gplx.gfui.*; import gplx.xowa.apps.gfs.*;
|
||||
import gplx.xowa.guis.views.*;
|
||||
public class Prefs_mgr_tst {
|
||||
private Prefs_mgr_fxt fxt = new Prefs_mgr_fxt();
|
||||
@Before public void init() {fxt.Clear();}
|
||||
@@ -133,7 +133,7 @@ class Prefs_mgr_fxt {
|
||||
private Prefs_mgr prefs_mgr; private Gfui_html_mok html_box;
|
||||
public void Clear() {
|
||||
if (app == null) {
|
||||
GfsCore._.Clear(); // NOTE: clear GfsCore, else Props test will fail for mass run
|
||||
GfsCore.Instance.Clear(); // NOTE: clear GfsCore, else Props test will fail for mass run
|
||||
Xoa_gfs_mgr.Msg_parser_init();
|
||||
app = Xoa_app_fxt.app_();
|
||||
prefs_mgr = new Prefs_mgr(app);
|
||||
|
||||
@@ -22,7 +22,7 @@ public class Prefs_rename_mgr {
|
||||
List_add(list, "app.cfgs.get('app.gui.html.portal.wikis.visible', 'app').val", "app.cfgs.get('xowa.api.html.page.toggles.get(''offline-wikis'').visible', 'app').val");
|
||||
}
|
||||
public boolean Check(Io_url url) {
|
||||
String cur_str = Io_mgr.I.LoadFilStr_args(url).MissingIgnored_().Exec();
|
||||
String cur_str = Io_mgr.Instance.LoadFilStr_args(url).MissingIgnored_().Exec();
|
||||
boolean cur_str_changed = false;
|
||||
int list_len = list.Count();
|
||||
for (int i = 0; i < list_len; ++i) {
|
||||
@@ -30,18 +30,18 @@ public class Prefs_rename_mgr {
|
||||
if (String_.Has(cur_str, itm.Src())) {
|
||||
cur_str_changed = true;
|
||||
cur_str = String_.Replace(cur_str, itm.Src(), itm.Trg());
|
||||
Gfo_usr_dlg_.I.Log_many("", "", "cfg.replace: src=~{src} trg = ~{trg}", itm.Src(), itm.Trg());
|
||||
Gfo_usr_dlg_.Instance.Log_many("", "", "cfg.replace: src=~{src} trg = ~{trg}", itm.Src(), itm.Trg());
|
||||
}
|
||||
}
|
||||
if (cur_str_changed)
|
||||
Io_mgr.I.SaveFilStr(url, cur_str);
|
||||
Io_mgr.Instance.SaveFilStr(url, cur_str);
|
||||
return cur_str_changed;
|
||||
}
|
||||
private static void List_add(List_adp list, String src, String trg) {list.Add(new Prefs_rename_itm(src, trg));}
|
||||
public static final Prefs_rename_mgr _ = new Prefs_rename_mgr();
|
||||
public static final Prefs_rename_mgr Instance = new Prefs_rename_mgr();
|
||||
}
|
||||
class Prefs_rename_itm {
|
||||
public Prefs_rename_itm(String src, String trg) {this.src = src; this.trg = trg;}
|
||||
public String Src() {return src;} private String src;
|
||||
public String Trg() {return trg;} private String trg;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,6 +74,6 @@ class Xofs_url_itm_parser {
|
||||
break;
|
||||
}
|
||||
}
|
||||
itm.Url_(url_bfr.Xto_str_and_clear());
|
||||
itm.Url_(url_bfr.To_str_and_clear());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user