mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.6.3.1'
This commit is contained in:
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.core.primitives.*; import gplx.core.envs.*; import gplx.gfui.*;
|
||||
public class Xoc_layout_mgr implements GfoInvkAble {
|
||||
public class Xoc_layout_mgr implements Gfo_invk {
|
||||
public Xoc_layout_mgr(Xoae_app app) {
|
||||
this.app = app;
|
||||
Ctor_by_os();
|
||||
@@ -35,11 +35,11 @@ public class Xoc_layout_mgr implements GfoInvkAble {
|
||||
private void Refresh_window() {
|
||||
app.Gui_mgr().Browser_win().Refresh_win_size();
|
||||
}
|
||||
public static final String
|
||||
public static final String
|
||||
Invk_html_box_adj_type = "html_box_adj_type", Invk_html_box_adj_type_ = "html_box_adj_type_", Invk_html_box_adj_type_list = "html_box_adj_type_list"
|
||||
, Invk_html_box_adj_rect = "html_box_adj_rect", Invk_html_box_adj_rect_ = "html_box_adj_rect_";
|
||||
public static final byte Html_box_adj_type_none_byte = 0, Html_box_adj_type_rel_byte = 1, Html_box_adj_type_abs_byte = 2;
|
||||
private static final Enm_mgr html_box_adj_type_enm = new Enm_mgr().Add(Html_box_adj_type_none_byte, "none").Add(Html_box_adj_type_rel_byte, "relative").Add(Html_box_adj_type_abs_byte, "absolute");
|
||||
private static final Enm_mgr html_box_adj_type_enm = new Enm_mgr().Add(Html_box_adj_type_none_byte, "none").Add(Html_box_adj_type_rel_byte, "relative").Add(Html_box_adj_type_abs_byte, "absolute");
|
||||
private void Ctor_by_os() {
|
||||
if (Op_sys.Cur().Tid_is_osx()) {
|
||||
html_box_adj_type = Html_box_adj_type_rel_byte;
|
||||
@@ -48,10 +48,10 @@ 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 Int_obj_ref tmp_val_ref = Int_obj_ref.zero_();
|
||||
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.New_zero();
|
||||
public Enm_mgr Add(byte val, String str) {
|
||||
Int_obj_ref val_ref = Int_obj_ref.new_(val);
|
||||
Int_obj_ref val_ref = Int_obj_ref.New(val);
|
||||
Keyval kv = Keyval_.new_(str, val_ref);
|
||||
str_hash.Add(str, kv);
|
||||
val_hash.Add(val_ref, kv);
|
||||
|
||||
@@ -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.*;
|
||||
public class Xou_cfg implements GfoInvkAble {
|
||||
public class Xou_cfg implements Gfo_invk {
|
||||
public Xou_cfg(Xoue_user user) {
|
||||
this.user = user;
|
||||
pages_mgr = new Xouc_pages_mgr(this); startup_mgr = new Xouc_startup_mgr(this); setup_mgr = new Xouc_setup_mgr(user);
|
||||
@@ -29,7 +29,7 @@ public class Xou_cfg implements GfoInvkAble {
|
||||
public Xouc_setup_mgr Setup_mgr() {return setup_mgr;} private Xouc_setup_mgr setup_mgr;
|
||||
public Xoc_layout_mgr Layout_mgr() {return layout_mgr;} private Xoc_layout_mgr layout_mgr;
|
||||
public Xou_security_mgr Security_mgr() {return security_mgr;} private Xou_security_mgr security_mgr;
|
||||
public Xou_log_mgr Log_mgr() {return log_mgr;} private final Xou_log_mgr log_mgr = new Xou_log_mgr();
|
||||
public Xou_log_mgr Log_mgr() {return log_mgr;} private final Xou_log_mgr log_mgr = new Xou_log_mgr();
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_pages)) return pages_mgr;
|
||||
else if (ctx.Match(k, Invk_startup)) return startup_mgr;
|
||||
@@ -39,7 +39,7 @@ public class Xou_cfg implements GfoInvkAble {
|
||||
else if (ctx.Match(k, Invk_log)) return log_mgr;
|
||||
return this;
|
||||
}
|
||||
public static final String
|
||||
public static final String
|
||||
Invk_pages = "pages", Invk_startup = "startup", Invk_setup = "setup", Invk_layout = "layout", Invk_security = "security", Invk_log = "log"
|
||||
;
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ 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.gfs.*; import gplx.xowa.wikis.*;
|
||||
public class Xou_fsys_mgr implements GfoInvkAble {
|
||||
public class Xou_fsys_mgr implements Gfo_invk {
|
||||
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) {
|
||||
this.cur_root = user_dir;
|
||||
@@ -40,6 +40,6 @@ public class Xou_fsys_mgr implements GfoInvkAble {
|
||||
public static final String Name_user_system_cfg = "user_system_cfg.gfs";
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_root_dir)) return cur_root;
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
} private static final String Invk_root_dir = "root_dir";
|
||||
}
|
||||
|
||||
@@ -16,14 +16,14 @@ 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.*;
|
||||
public class Xou_log_mgr implements GfoInvkAble {
|
||||
public class Xou_log_mgr implements Gfo_invk {
|
||||
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.To_str(log_redlinks);
|
||||
else if (ctx.Match(k, Invk_log_redlinks_)) log_redlinks = m.ReadYn("v");
|
||||
return this;
|
||||
}
|
||||
public static final String
|
||||
public static final String
|
||||
Invk_log_redlinks = "log_redlinks", Invk_log_redlinks_ = "log_redlinks_"
|
||||
;
|
||||
}
|
||||
|
||||
@@ -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.*;
|
||||
public class Xou_security_mgr implements GfoInvkAble {
|
||||
public class Xou_security_mgr implements Gfo_invk {
|
||||
public Xou_security_mgr(Xoae_app app) {this.app = app;} private Xoae_app app;
|
||||
public boolean Web_access_enabled() {return app.Api_root().Net().Enabled();}
|
||||
public void Web_access_enabled_(boolean v) {app.Api_root().Net().Enabled_(v);}
|
||||
@@ -25,6 +25,6 @@ public class Xou_security_mgr implements GfoInvkAble {
|
||||
else if (ctx.Match(k, Invk_web_access_enabled_)) Web_access_enabled_(m.ReadYn("v"));
|
||||
return this;
|
||||
}
|
||||
public static final String
|
||||
public static final String
|
||||
Invk_web_access_enabled = "web_access_enabled", Invk_web_access_enabled_ = "web_access_enabled_";
|
||||
}
|
||||
|
||||
@@ -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.*;
|
||||
public class Xou_session implements GfoInvkAble {
|
||||
public class Xou_session implements Gfo_invk {
|
||||
public Xou_session(Xoue_user user) {this.user = user; window_mgr = new Xous_window_mgr(user);}
|
||||
public Xoue_user User() {return user;} private Xoue_user user;
|
||||
public Xous_window_mgr Window_mgr() {return window_mgr;} private Xous_window_mgr window_mgr;
|
||||
|
||||
@@ -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.*;
|
||||
public class Xou_user_mgr implements GfoInvkAble {
|
||||
public class Xou_user_mgr implements Gfo_invk {
|
||||
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);}
|
||||
@@ -32,7 +32,7 @@ public class Xou_user_mgr implements GfoInvkAble {
|
||||
}
|
||||
return user;
|
||||
}
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
// return this;
|
||||
} private static final String Invk_get = "get";
|
||||
}
|
||||
|
||||
@@ -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.*;
|
||||
public class Xouc_pages_mgr implements GfoInvkAble {
|
||||
public class Xouc_pages_mgr implements Gfo_invk {
|
||||
public Xouc_pages_mgr(Xou_cfg config) {}
|
||||
public String Home() {return home;} public Xouc_pages_mgr Home_(String v) {home = v; return this;} private String home = Page_xowa;
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.core.envs.*;
|
||||
public class Xouc_setup_mgr implements GfoInvkAble {
|
||||
public class Xouc_setup_mgr implements Gfo_invk {
|
||||
public Xouc_setup_mgr(Xoue_user user) {this.user = user;}
|
||||
public Xoue_user User() {return user;} private Xoue_user user;
|
||||
private String setup_completed = "";
|
||||
|
||||
@@ -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.*;
|
||||
public class Xouc_startup_mgr implements GfoInvkAble {
|
||||
public class Xouc_startup_mgr implements Gfo_invk {
|
||||
public Xouc_startup_mgr(Xou_cfg config) {this.config = config; window_mgr = new Xouc_window_mgr(config.User());} private Xou_cfg config;
|
||||
public Xouc_window_mgr Window_mgr() {return window_mgr;} private Xouc_window_mgr window_mgr;
|
||||
public String Page() {return page;} public Xouc_startup_mgr Page_(String v) {page = v; return this;} private String page = "xowa";
|
||||
@@ -54,7 +54,7 @@ public class Xouc_startup_mgr implements GfoInvkAble {
|
||||
private void Custom_config_(String v) {
|
||||
Xoae_app app = config.User().Appe();
|
||||
Object rslt = app.Gfs_mgr().Run_str(v);
|
||||
if (rslt == GfoInvkAble_.Rv_error) {
|
||||
if (rslt == Gfo_invk_.Rv_error) {
|
||||
app.Usr_dlg().Warn_many("", "", "custom script failed: ~{0}", v);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -17,8 +17,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.users; import gplx.*; import gplx.xowa.*;
|
||||
import gplx.core.envs.*;
|
||||
import gplx.gfui.*; import gplx.xowa.guis.views.*;
|
||||
public class Xouc_window_mgr implements GfoInvkAble {
|
||||
import gplx.gfui.*; import gplx.gfui.envs.*; import gplx.gfui.controls.windows.*;
|
||||
import gplx.xowa.guis.views.*;
|
||||
public class Xouc_window_mgr implements Gfo_invk {
|
||||
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;
|
||||
public String Mode_str() {return mode_str;} private String mode_str = "previous";
|
||||
|
||||
@@ -22,10 +22,10 @@ import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*;
|
||||
import gplx.xowa.wikis.*; import gplx.xowa.wikis.xwikis.*; import gplx.xowa.users.history.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.users.data.*;
|
||||
import gplx.xowa.files.*; import gplx.xowa.files.caches.*;
|
||||
import gplx.xowa.langs.genders.*;
|
||||
public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
public class Xoue_user implements Xou_user, Gfo_evt_mgr_owner, Gfo_invk {
|
||||
public Xoue_user(Xoae_app app, Io_url user_dir) {
|
||||
this.app = app; this.key = user_dir.NameOnly();
|
||||
this.ev_mgr = GfoEvMgr.new_(this);
|
||||
this.ev_mgr = new Gfo_evt_mgr(this);
|
||||
this.fsys_mgr = new Xou_fsys_mgr(app, this, user_dir);
|
||||
this.user_db_mgr = new Xou_db_mgr(app);
|
||||
this.history_mgr = new Xou_history_mgr(fsys_mgr.App_data_history_fil());
|
||||
@@ -33,7 +33,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
this.cfg_mgr = new Xou_cfg(this);
|
||||
this.session_mgr = new Xou_session(this);
|
||||
}
|
||||
public GfoEvMgr EvMgr() {return ev_mgr;} private final GfoEvMgr ev_mgr;
|
||||
public Gfo_evt_mgr Evt_mgr() {return ev_mgr;} private final Gfo_evt_mgr ev_mgr;
|
||||
public String Key() {return key;} private String key;
|
||||
public Xou_db_mgr User_db_mgr() {return user_db_mgr;} private final Xou_db_mgr user_db_mgr;
|
||||
public Xow_wiki Wikii() {return this.Wiki();}
|
||||
@@ -44,7 +44,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
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
|
||||
GfoEvMgr_.PubVal(this, Evt_lang_changed, lang);
|
||||
Gfo_evt_mgr_.Pub_val(this, Evt_lang_changed, lang);
|
||||
}
|
||||
public Xou_fsys_mgr Fsys_mgr() {return fsys_mgr;} private Xou_fsys_mgr fsys_mgr;
|
||||
public Xowe_wiki Wiki() {if (wiki == null) wiki = Xou_user_.new_or_create_(this, app); return wiki;} private Xowe_wiki wiki;
|
||||
@@ -78,7 +78,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
bookmarks_add_fmtr.Bld_bfr_many(tmp_bfr, wiki_domain, ttl_full_txt);
|
||||
byte[] new_entry = tmp_bfr.To_bry_and_rls();
|
||||
Xoa_ttl bookmarks_ttl = Xoa_ttl.parse(wiki, Bry_data_bookmarks);
|
||||
Xoae_page bookmarks_page = wiki.Data_mgr().Get_page(bookmarks_ttl, false);
|
||||
Xoae_page bookmarks_page = wiki.Data_mgr().Load_page_by_ttl(bookmarks_ttl);
|
||||
byte[] new_data = Bry_.Add(bookmarks_page.Data_raw(), new_entry);
|
||||
wiki.Db_mgr().Save_mgr().Data_update(bookmarks_page, new_data);
|
||||
} private Bry_fmtr bookmarks_add_fmtr = Bry_fmtr.new_("* [[~{wiki_key}:~{page_name}]]\n", "wiki_key", "page_name"); byte[] Bry_data_bookmarks = Bry_.new_a7("Data:Bookmarks");
|
||||
@@ -95,7 +95,7 @@ public class Xoue_user implements Xou_user, GfoEvMgrOwner, GfoInvkAble {
|
||||
else if (ctx.Match(k, Invk_cfg)) return cfg_mgr;
|
||||
else if (ctx.Match(k, Invk_session)) return session_mgr;
|
||||
else if (ctx.Match(k, "name")) return key; //throw Err_.new_unhandled(k); // OBSOLETE: used to return key
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Invk_available_from_fsys = "available_from_fsys", Invk_available_from_bulk = "available_from_bulk", Invk_bookmarks_add_fmt_ = "bookmarks_add_fmt_"
|
||||
|
||||
@@ -16,16 +16,17 @@ 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.controls.windows.*;
|
||||
import gplx.xowa.guis.views.*;
|
||||
import gplx.xowa.apps.apis.xowa.startups.tabs.*;
|
||||
public class Xous_window_mgr implements GfoInvkAble {
|
||||
public class Xous_window_mgr implements Gfo_invk {
|
||||
public Xous_window_mgr(Xoue_user user) {
|
||||
this.user = user;
|
||||
}
|
||||
public Xoue_user User() {return user;} private Xoue_user user;
|
||||
public Rect_ref Rect() {if (rect == null) rect = Rect_new(); return rect;} Rect_ref rect;
|
||||
public boolean Maximized() {return maximized;} private boolean maximized = false;
|
||||
public void Save_window(gplx.gfui.GfuiWin win) {
|
||||
public void Save_window(GfuiWin win) {
|
||||
Xoae_app app = user.Appe();
|
||||
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) {
|
||||
@@ -41,7 +42,7 @@ public class Xous_window_mgr implements GfoInvkAble {
|
||||
cfg_mgr.Db_save_txt();
|
||||
}
|
||||
private String Calc_previous_tabs(Xog_tab_mgr tab_mgr) {
|
||||
Bry_bfr bfr = Bry_bfr.new_();
|
||||
Bry_bfr bfr = Bry_bfr_.New();
|
||||
int len = tab_mgr.Tabs_len();
|
||||
for (int i = 0; i < len; ++i) {
|
||||
if (i != 0) bfr.Add_byte_nl();
|
||||
|
||||
@@ -24,7 +24,7 @@ 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();
|
||||
private final Dbui_cells_fmtr cells_fmtr = new Dbui_cells_fmtr(); private final Dbui_val_fmtr edit_val_fmtr = Dbui_val_fmtr_.new_edit(); private final Dbui_val_fmtr view_val_fmtr = Dbui_val_fmtr_.new_view();
|
||||
private final Bry_bfr tmp_bfr = Bry_bfr.new_(255);
|
||||
private final Bry_bfr tmp_bfr = Bry_bfr_.New_w_size(255);
|
||||
private final Bridge_msg_bldr msg_bldr;
|
||||
public Dbui_tbl_itm__bmk(Xoa_app app, Xoud_bmk_itm_tbl tbl) {this.app = app; this.tbl = tbl; this.msg_bldr = app.Html__bridge_mgr().Msg_bldr();}
|
||||
public byte[] Key() {return key;} private static final byte[] key = Bry_.new_a7("bmk");
|
||||
|
||||
@@ -18,8 +18,8 @@ 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.dbs.*; import gplx.dbs.qrys.*;
|
||||
public class Xoud_bmk_dir_tbl implements Rls_able {
|
||||
private final String tbl_name = "bmk_dir"; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
|
||||
private final String fld_id, fld_owner, fld_sort, fld_name;
|
||||
private final String tbl_name = "bmk_dir"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
private final String fld_id, fld_owner, fld_sort, fld_name;
|
||||
public Xoud_bmk_dir_tbl(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
fld_id = flds.Add_int_pkey_autonum("dir_id");
|
||||
@@ -28,7 +28,7 @@ public class Xoud_bmk_dir_tbl implements Rls_able {
|
||||
fld_name = flds.Add_str("dir_name", 255);
|
||||
conn.Rls_reg(this);
|
||||
}
|
||||
public Db_conn Conn() {return conn;} private final Db_conn conn;
|
||||
public Db_conn Conn() {return conn;} private final Db_conn conn;
|
||||
public String Tbl_name() {return tbl_name;}
|
||||
public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds.To_fld_ary()));}
|
||||
public void Insert(int owner, int sort, byte[] name) {
|
||||
|
||||
@@ -18,8 +18,8 @@ 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.dbs.*; import gplx.dbs.qrys.*;
|
||||
public class Xoud_bmk_itm_tbl implements Rls_able {
|
||||
private final String tbl_name = "bmk_itm"; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
|
||||
private final String fld_id, fld_owner, fld_sort, fld_name, fld_wiki, fld_url, fld_comment;
|
||||
private final String tbl_name = "bmk_itm"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
private final String fld_id, fld_owner, fld_sort, fld_name, fld_wiki, fld_url, fld_comment;
|
||||
private Db_stmt stmt_update_sort;
|
||||
public Xoud_bmk_itm_tbl(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
@@ -32,7 +32,7 @@ public class Xoud_bmk_itm_tbl implements Rls_able {
|
||||
fld_comment = flds.Add_str("itm_comment" , 4096);
|
||||
conn.Rls_reg(this);
|
||||
}
|
||||
public Db_conn Conn() {return conn;} private final Db_conn conn;
|
||||
public Db_conn Conn() {return conn;} private final Db_conn conn;
|
||||
public String Tbl_name() {return tbl_name;}
|
||||
public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds.To_fld_ary()));}
|
||||
public void Insert(int owner, int sort, byte[] name, byte[] wiki, byte[] url, byte[] comment) {
|
||||
@@ -59,7 +59,7 @@ public class Xoud_bmk_itm_tbl implements Rls_able {
|
||||
stmt_delete.Clear().Crt_int(fld_id, id).Exec_delete();
|
||||
}
|
||||
public Xoud_bmk_itm_row[] Select_grp(int owner) {
|
||||
List_adp list = List_adp_.new_();
|
||||
List_adp list = List_adp_.New();
|
||||
Db_rdr rdr = conn.Stmt_select_order(tbl_name, flds, String_.Ary(fld_owner), fld_sort)
|
||||
.Crt_int(fld_owner, owner)
|
||||
.Exec_select__rls_auto();
|
||||
|
||||
@@ -19,8 +19,8 @@ package gplx.xowa.users.bmks; import gplx.*; import gplx.xowa.*; import gplx.xow
|
||||
import gplx.core.primitives.*;
|
||||
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;}
|
||||
public class Xows_bmk_page implements Xow_special_page {
|
||||
public Xow_special_meta Special__meta() {return Xow_special_meta_.Itm__bookmarks;}
|
||||
public void Special__gen(Xow_wiki wikii, Xoa_page pagei, Xoa_url url, Xoa_ttl ttl) {
|
||||
Xowe_wiki wiki = (Xowe_wiki)wikii; Xoae_page page = (Xoae_page)pagei;
|
||||
Xoa_app app = wiki.App();
|
||||
@@ -31,5 +31,5 @@ public class Xows_bmk_page implements Xows_page {
|
||||
page.Hdump_data().Body_(bfr.To_bry_and_rls());
|
||||
}
|
||||
|
||||
public Xows_page Special__clone() {return this;}
|
||||
public Xow_special_page Special__clone() {return this;}
|
||||
}
|
||||
|
||||
@@ -21,13 +21,13 @@ import gplx.xowa.files.caches.*;
|
||||
import gplx.xowa.users.bmks.*; import gplx.xowa.users.history.*;
|
||||
public class Xou_db_mgr {
|
||||
private final Xoa_app app;
|
||||
private final Xoud_id_mgr id_mgr;
|
||||
private Db_conn conn;
|
||||
private final Xoud_id_mgr id_mgr;
|
||||
public Xou_db_mgr(Xoa_app app) {
|
||||
this.app = app;
|
||||
this.id_mgr = new Xoud_id_mgr(cfg_mgr);
|
||||
this.site_mgr = new Xoud_site_mgr(id_mgr);
|
||||
}
|
||||
public Db_conn Conn() {return conn;} private Db_conn conn;
|
||||
public Xou_db_file Db_file() {return db_file;} private Xou_db_file db_file;
|
||||
public Xoud_cfg_mgr Cfg_mgr() {return cfg_mgr;} private final Xoud_cfg_mgr cfg_mgr = new Xoud_cfg_mgr();
|
||||
public Xoud_site_mgr Site_mgr() {return site_mgr;} private final Xoud_site_mgr site_mgr;
|
||||
|
||||
@@ -54,9 +54,18 @@ public class Xoud_cfg_mgr {
|
||||
else
|
||||
Update_int(grp, key, val);
|
||||
}
|
||||
public void Upsert_str(String grp, String key, String val) {
|
||||
String exists = Select_str_or(grp, key, null);
|
||||
if (exists == null)
|
||||
Insert_str(grp, key, val);
|
||||
else
|
||||
Update_str(grp, key, val);
|
||||
}
|
||||
public void Update_str(String grp, String key, String val) {Update_bry(grp, key, Bry_.new_u8(val));}
|
||||
public void Update_bry(String key, byte[] val) {Update_bry("", key, val);}
|
||||
public void Update_bry(String grp, String key, byte[] val) {tbl.Update_bry(grp, key, val);}
|
||||
public void Update_int(String grp, String key, int val) {tbl.Update_int(grp, key, val);}
|
||||
public void Insert_str(String grp, String key, String val) {Insert_bry(grp, key, Bry_.new_u8(val));}
|
||||
public void Insert_bry(String key, byte[] val) {Insert_bry("", key, val);}
|
||||
public void Insert_bry(String grp, String key, byte[] val) {tbl.Insert_bry(grp, key, val);}
|
||||
public void Insert_int(String grp, String key, int val) {tbl.Insert_int(grp, key, val);}
|
||||
|
||||
@@ -21,18 +21,18 @@ import gplx.xowa.langs.*;
|
||||
import gplx.xowa.wikis.domains.*;
|
||||
class Xoud_opt_scope {
|
||||
public Xoud_opt_scope(int lang_id, int type_id) {this.lang_id = lang_id; this.type_id = type_id;}
|
||||
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 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_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;
|
||||
public static final Xoud_opt_scope App = new Xoud_opt_scope(Lang_id_wildcard, Type_id_wildcard);
|
||||
public static final Xoud_opt_scope App = new Xoud_opt_scope(Lang_id_wildcard, Type_id_wildcard);
|
||||
}
|
||||
class Xoud_opt_scope_parser {
|
||||
private Gfo_usr_dlg usr_dlg; private final List_adp list = List_adp_.new_();
|
||||
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_.Instance;
|
||||
list.Clear();
|
||||
@@ -63,7 +63,7 @@ class Xoud_opt_scope_parser {
|
||||
usr_dlg.Warn_many("", "", fmt, String_.new_u8(src, bgn, end));
|
||||
return Xoud_opt_scope.App;
|
||||
}
|
||||
private static final Btrie_slim_mgr btrie_by_type = Btrie_slim_mgr.cs()
|
||||
private static final Btrie_slim_mgr btrie_by_type = Btrie_slim_mgr.cs()
|
||||
.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)
|
||||
@@ -81,5 +81,5 @@ class Xoud_opt_scope_parser {
|
||||
.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};
|
||||
private static final Xoud_opt_scope[] Ary_app = new Xoud_opt_scope[] {Xoud_opt_scope.App};
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class Xoud_opt_scope_tst {
|
||||
}
|
||||
}
|
||||
class Xoud_opt_scope_fxt {
|
||||
private final Xoud_opt_scope_parser parser = new Xoud_opt_scope_parser();
|
||||
private final Xoud_opt_scope_parser parser = new Xoud_opt_scope_parser();
|
||||
public void Clear() {
|
||||
// Gfo_usr_dlg_.I = Xoa_app_.usr_dlg_console_();
|
||||
}
|
||||
@@ -40,7 +40,7 @@ class Xoud_opt_scope_fxt {
|
||||
Tfds.Eq(To_str(expd), To_str(actl));
|
||||
}
|
||||
private static String To_str(Xoud_opt_scope[] ary) {
|
||||
Bry_bfr bfr = Bry_bfr.new_();
|
||||
Bry_bfr bfr = Bry_bfr_.New();
|
||||
int len = ary.length;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Xoud_opt_scope itm = ary[i];
|
||||
|
||||
@@ -25,21 +25,17 @@ public class Xoud_site_mgr {
|
||||
tbl = new Xoud_site_tbl(conn);
|
||||
if (created) tbl.Create_tbl();
|
||||
}
|
||||
public Xoud_site_row[] Get_all() {return tbl.Select_all();}
|
||||
public void Import(String domain, String name, String path, String xtn) { // insert or update wiki
|
||||
Xoud_site_row[] ary = tbl.Select_by_domain(domain);
|
||||
int len = ary.length, update_id = -1, priority = 0;
|
||||
for (int i = 0; i < len; ++i) {
|
||||
Xoud_site_row itm = ary[i];
|
||||
if (priority <= itm.Priority()) priority = itm.Priority() + 1;
|
||||
if (String_.Eq(path, itm.Path())) { // same domain and same path; change insert to update;
|
||||
update_id = itm.Id();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (update_id == -1)
|
||||
tbl.Insert(id_mgr.Get_next_and_save("xowa.user.site"), priority, domain, name, path, xtn);
|
||||
public Xoud_site_row[] Get_all() {return tbl.Select_all();}
|
||||
public Xoud_site_row Select_by_domain(byte[] domain) {return tbl.Select_by_domain(domain);}
|
||||
public void Delete_by_domain(byte[] domain) {tbl.Delete_by_domain(domain);}
|
||||
public void Import(String domain, String name, String path, String date, String xtn) { // insert or update wiki
|
||||
Xoud_site_row itm = tbl.Select_by_domain(Bry_.new_u8(domain));
|
||||
if (itm == null)
|
||||
tbl.Insert(id_mgr.Get_next_and_save("xowa.user.site"), 0, domain, name, path, date, xtn);
|
||||
else
|
||||
tbl.Update(update_id, priority, domain, name, path, xtn);
|
||||
tbl.Update(itm.Id(), 0, domain, name, path, date, xtn);
|
||||
}
|
||||
public void Update(Xoud_site_row row) {
|
||||
tbl.Update(row.Id(), row.Priority(), row.Domain(), row.Name(), row.Path(), row.Date(), row.Xtn());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,13 +17,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.users.data; import gplx.*; import gplx.xowa.*; import gplx.xowa.users.*;
|
||||
public class Xoud_site_row {
|
||||
public Xoud_site_row(int id, int priority, String domain, String name, String path, String xtn) {
|
||||
this.id = id; this.priority = priority; this.domain = domain; this.name = name; this.path = path; this.xtn = xtn;
|
||||
public Xoud_site_row(int id, int priority, String domain, String name, String path, String date, String xtn) {
|
||||
this.id = id; this.priority = priority; this.domain = domain; this.name = name; this.path = path; this.date = date; this.xtn = xtn;
|
||||
}
|
||||
public int Id() {return id;} private final int id;
|
||||
public int Priority() {return priority;} private final int priority;
|
||||
public String Domain() {return domain;} private final String domain;
|
||||
public String Name() {return name;} private final String name;
|
||||
public String Path() {return path;} private final String path;
|
||||
public int Id() {return id;} private final int id;
|
||||
public int Priority() {return priority;} private final int priority;
|
||||
public String Domain() {return domain;} private final String domain;
|
||||
public String Name() {return name;} private final String name;
|
||||
public String Path() {return path;} private final String path;
|
||||
public String Date() {return date;} private String date; public void Date_(String v) {this.date = v;}
|
||||
public String Xtn() {return xtn;} private String xtn;
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ package gplx.xowa.users.data; import gplx.*; import gplx.xowa.*; import gplx.xow
|
||||
import gplx.dbs.*;
|
||||
public class Xoud_site_tbl implements Rls_able {
|
||||
public static final String Tbl_name = "user_site";
|
||||
private final String tbl_name = Tbl_name; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
|
||||
private final String fld_site_id, fld_site_priority, fld_site_domain, fld_site_name, fld_site_path, fld_site_xtn;
|
||||
private final String tbl_name = Tbl_name; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
private final String fld_site_id, fld_site_priority, fld_site_domain, fld_site_name, fld_site_path, fld_site_xtn, fld_site_date;
|
||||
private final Db_conn conn;
|
||||
public Xoud_site_tbl(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
@@ -29,54 +29,62 @@ public class Xoud_site_tbl implements Rls_able {
|
||||
fld_site_domain = flds.Add_str("site_domain", 255); // EX: en.wikipedia.org; NOTE: no protocol (https:)
|
||||
fld_site_name = flds.Add_str("site_name", 255); // EX: English Wikipedia
|
||||
fld_site_path = flds.Add_str("site_path", 255); // EX: ~{xowa_root}/wiki/en.wikipedia.org/
|
||||
fld_site_date = conn.Meta_fld_append_if_missing(tbl_name, flds, Dbmeta_fld_itm.new_str("site_date", 255).Default_("")); // EX: 2016-06-10
|
||||
fld_site_xtn = flds.Add_text("site_xtn");
|
||||
conn.Rls_reg(this);
|
||||
}
|
||||
public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
|
||||
public void Rls() {}
|
||||
public void Insert(int site_id, int priority, String domain, String name, String path, String xtn) {
|
||||
Db_stmt stmt = conn.Stmt_insert(tbl_name, flds);
|
||||
stmt.Val_int(fld_site_id, site_id)
|
||||
.Val_int(fld_site_priority, priority).Val_str(fld_site_domain, domain).Val_str(fld_site_name, name).Val_str(fld_site_path, path).Val_str(fld_site_xtn, xtn)
|
||||
.Exec_insert();
|
||||
public void Insert(int site_id, int priority, String domain, String name, String path, String date, String xtn) {
|
||||
Db_stmt stmt = conn.Stmt_insert(tbl_name, flds);
|
||||
Exec_stmt(stmt, Bool_.N, site_id, priority, domain, name, path, date, xtn);
|
||||
}
|
||||
public void Update(int site_id, int priority, String domain, String name, String path, String xtn) {
|
||||
public void Update(int site_id, int priority, String domain, String name, String path, String date, String xtn) {
|
||||
Db_stmt stmt = conn.Stmt_update_exclude(tbl_name, flds, fld_site_id);
|
||||
stmt.Val_int(fld_site_priority, priority).Val_str(fld_site_domain, domain).Val_str(fld_site_name, name).Val_str(fld_site_path, path).Val_str(fld_site_xtn, xtn)
|
||||
.Crt_int(fld_site_id, site_id)
|
||||
.Exec_update();
|
||||
Exec_stmt(stmt, Bool_.Y, site_id, priority, domain, name, path, date, xtn);
|
||||
}
|
||||
public void Delete(int site_id) {
|
||||
Db_stmt stmt = conn.Stmt_delete(tbl_name, fld_site_id);
|
||||
stmt.Crt_int(fld_site_id, site_id).Exec_delete();
|
||||
}
|
||||
public void Delete_by_domain(byte[] domain) {
|
||||
conn.Stmt_delete(tbl_name, fld_site_domain).Crt_bry_as_str(fld_site_domain, domain).Exec_delete();
|
||||
}
|
||||
public Xoud_site_row[] Select_all() {
|
||||
List_adp rv = List_adp_.new_();
|
||||
List_adp rv = List_adp_.New();
|
||||
Db_rdr rdr = conn.Stmt_select(tbl_name, flds).Exec_select__rls_auto();
|
||||
try {
|
||||
while (rdr.Move_next())
|
||||
rv.Add(new_row(rdr));
|
||||
rv.Add(New_site(rdr));
|
||||
return (Xoud_site_row[])rv.To_ary_and_clear(Xoud_site_row.class);
|
||||
}
|
||||
finally {rdr.Rls();}
|
||||
}
|
||||
public Xoud_site_row[] Select_by_domain(String domain) {
|
||||
List_adp rv = List_adp_.new_();
|
||||
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld_site_domain).Crt_str(fld_site_domain, domain).Exec_select__rls_auto();
|
||||
try {
|
||||
while (rdr.Move_next())
|
||||
rv.Add(new_row(rdr));
|
||||
return (Xoud_site_row[])rv.To_ary_and_clear(Xoud_site_row.class);
|
||||
}
|
||||
public Xoud_site_row Select_by_domain(byte[] domain) {
|
||||
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld_site_domain).Crt_bry_as_str(fld_site_domain, domain).Exec_select__rls_auto();
|
||||
try {return rdr.Move_next() ? New_site(rdr) : null;} // NOTE: old versions allowed multiple wikis with same domain; only return 1st
|
||||
finally {rdr.Rls();}
|
||||
}
|
||||
private Xoud_site_row new_row(Db_rdr rdr) {
|
||||
private void Exec_stmt(Db_stmt stmt, boolean update, int site_id, int priority, String domain, String name, String path, String date, String xtn) {
|
||||
if (!update)
|
||||
stmt.Val_int(fld_site_id, site_id);
|
||||
stmt.Val_int(fld_site_priority, priority).Val_str(fld_site_domain, domain).Val_str(fld_site_name, name).Val_str(fld_site_path, path)
|
||||
.Val_str(fld_site_date, date).Val_str(fld_site_xtn, xtn);
|
||||
if (update)
|
||||
stmt.Crt_int(fld_site_id, site_id);
|
||||
if (update)
|
||||
stmt.Exec_update();
|
||||
else
|
||||
stmt.Exec_insert();
|
||||
}
|
||||
private Xoud_site_row New_site(Db_rdr rdr) {
|
||||
return new Xoud_site_row
|
||||
( rdr.Read_int(fld_site_id)
|
||||
, rdr.Read_int(fld_site_priority)
|
||||
, rdr.Read_str(fld_site_domain)
|
||||
, rdr.Read_str(fld_site_name)
|
||||
, rdr.Read_str(fld_site_path)
|
||||
, rdr.Read_str(fld_site_date)
|
||||
, rdr.Read_str(fld_site_xtn)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ class Xoud_user_mgr {
|
||||
}
|
||||
}
|
||||
class Xoud_user_tbl {
|
||||
private String tbl_name = "user_user_regy"; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
|
||||
private String tbl_name = "user_user_regy"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
private String fld_id, fld_name;
|
||||
private Db_conn conn;
|
||||
public void Conn_(Db_conn new_conn, boolean created) {
|
||||
|
||||
@@ -23,7 +23,7 @@ import gplx.xowa.htmls.bridges.*; import gplx.xowa.htmls.bridges.dbuis.*; import
|
||||
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();
|
||||
private final Bry_bfr tmp_bfr = Bry_bfr.new_(255);
|
||||
private final Bry_bfr tmp_bfr = Bry_bfr_.New_w_size(255);
|
||||
private final Bridge_msg_bldr msg_bldr;
|
||||
public Dbui_tbl_itm__history(Xoa_app app, Xoud_history_tbl tbl) {this.app = app; this.tbl = tbl; this.msg_bldr = app.Html__bridge_mgr().Msg_bldr();}
|
||||
public byte[] Key() {return key;} private static final byte[] key = Bry_.new_a7("history");
|
||||
@@ -35,7 +35,7 @@ public class Dbui_tbl_itm__history implements Dbui_tbl_itm {
|
||||
dbui_mgr.Init_by_bridge(bridge_mgr);
|
||||
dbui_mgr.Add(this);
|
||||
}
|
||||
private final List_adp select_list = List_adp_.new_();
|
||||
private final List_adp select_list = List_adp_.New();
|
||||
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);
|
||||
|
||||
@@ -16,14 +16,14 @@ 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.*;
|
||||
public class Xou_history_cfg implements GfoInvkAble {
|
||||
public class Xou_history_cfg implements Gfo_invk {
|
||||
public Xou_history_cfg() {
|
||||
this.enabled = true; // CFG: default to true for general user; privacy-conscious users must disable
|
||||
}
|
||||
public boolean Enabled() {return enabled;} private boolean enabled;
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_enabled_)) enabled = m.ReadBool("v");
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_enabled_ = "enabled_";
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ 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.brys.fmtrs.*;
|
||||
import gplx.xowa.specials.*;
|
||||
public class Xou_history_html implements gplx.core.brys.Bfr_arg, Xows_page {
|
||||
public Xows_special_meta Special__meta() {return Xows_special_meta_.Itm__page_history;}
|
||||
public class Xou_history_html implements gplx.core.brys.Bfr_arg, Xow_special_page {
|
||||
public Xow_special_meta Special__meta() {return Xow_special_meta_.Itm__page_history;}
|
||||
public void Special__gen(Xow_wiki wikii, Xoa_page pagei, Xoa_url url, Xoa_ttl ttl) {
|
||||
Xowe_wiki wiki = (Xowe_wiki)wikii; Xoae_page page = (Xoae_page)pagei;
|
||||
this.app = wiki.Appe(); this.mgr = app.Usere().History_mgr();
|
||||
@@ -55,5 +55,5 @@ public class Xou_history_html implements gplx.core.brys.Bfr_arg, Xows_page {
|
||||
, " </tr>"
|
||||
), "itm_wiki", "itm_page", "itm_count", "itm_last");
|
||||
|
||||
public Xows_page Special__clone() {return this;}
|
||||
public Xow_special_page Special__clone() {return this;}
|
||||
}
|
||||
|
||||
@@ -16,13 +16,13 @@ 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.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;
|
||||
import gplx.core.primitives.*; import gplx.core.net.*; import gplx.core.net.qargs.*; import gplx.xowa.htmls.hrefs.*;
|
||||
public class Xou_history_mgr implements Gfo_invk {
|
||||
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 boolean load_chk = false;
|
||||
private final Bry_bfr tmp_bfr = Bry_bfr.new_();
|
||||
private final Bry_bfr tmp_bfr = Bry_bfr_.New();
|
||||
public Xou_history_mgr(Io_url history_fil) {this.history_fil = history_fil;}
|
||||
public int Len() {return itms.Count();}
|
||||
public void Clear() {itms.Clear();}
|
||||
@@ -71,7 +71,7 @@ public class Xou_history_mgr implements GfoInvkAble {
|
||||
private byte[] To_full_db_w_qargs(Xoa_url url, Xoa_ttl ttl) {
|
||||
byte[] page = Xoa_ttl.Replace_spaces(ttl.Full_txt_wo_qarg());
|
||||
tmp_bfr.Add(page);
|
||||
Gfo_qarg_mgr qarg_mgr = url.Qargs_mgr();
|
||||
Gfo_qarg_mgr_old qarg_mgr = url.Qargs_mgr();
|
||||
qarg_mgr.To_bry(tmp_bfr, gplx.langs.htmls.encoders.Gfo_url_encoder_.Href, Bool_.N);
|
||||
return tmp_bfr.To_bry_and_clear();
|
||||
}
|
||||
@@ -114,12 +114,12 @@ public class Xou_history_mgr implements GfoInvkAble {
|
||||
else if (ctx.Match(k, Invk_html_itm_)) html_mgr.Html_itm().Fmt_(m.ReadBry("v"));
|
||||
else if (ctx.Match(k, Invk_current_itms_max_)) current_itms_max = m.ReadInt("v");
|
||||
else if (ctx.Match(k, Invk_current_itms_reset_)) current_itms_reset = m.ReadInt("v");
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Invk_html_grp = "html_grp", Invk_html_grp_ = "html_grp_", Invk_html_itm = "html_itm", Invk_html_itm_ = "html_itm_", Invk_current_itms_max_ = "current_itms_max_", Invk_current_itms_reset_ = "current_itms_reset_";
|
||||
public static final byte[] Ttl_name = Bry_.new_a7("XowaPageHistory");
|
||||
public static final byte[] Ttl_full = Bry_.new_a7("Special:XowaPageHistory");
|
||||
public static final byte[] Ttl_name = Bry_.new_a7("XowaPageHistory");
|
||||
public static final byte[] Ttl_full = Bry_.new_a7("Special:XowaPageHistory");
|
||||
}
|
||||
class Xou_history_itm_srl {
|
||||
public static void Load(byte[] ary, Ordered_hash list) {
|
||||
@@ -127,7 +127,7 @@ class Xou_history_itm_srl {
|
||||
list.Clear();
|
||||
int aryLen = ary.length;
|
||||
if (aryLen == 0) return; // no file
|
||||
Int_obj_ref pos = Int_obj_ref.zero_();
|
||||
Int_obj_ref pos = Int_obj_ref.New_zero();
|
||||
while (true) {
|
||||
if (pos.Val() == aryLen) break;
|
||||
Xou_history_itm itm = Xou_history_itm.csv_(ary, pos);
|
||||
@@ -142,7 +142,7 @@ class Xou_history_itm_srl {
|
||||
catch (Exception e) {throw Err_.new_parse_exc(e, Xou_history_itm.class, String_.new_u8(ary));}
|
||||
}
|
||||
public static byte[] Save(Ordered_hash list) {
|
||||
Bry_bfr bb = Bry_bfr.new_();
|
||||
Bry_bfr bb = Bry_bfr_.New();
|
||||
int listLen = list.Count();
|
||||
for (int i = 0; i < listLen; i++)
|
||||
((Xou_history_itm)list.Get_at(i)).Save(bb);
|
||||
|
||||
@@ -85,7 +85,7 @@ class Xou_history_mgr_fxt {
|
||||
Tfds.Eq_ary_str(expd, actl);
|
||||
return this;
|
||||
}
|
||||
public Xou_history_mgr_fxt Invk(String key, Object v) {GfoInvkAble_.InvkCmd_val(under, key, v); return this;}
|
||||
public Xou_history_mgr_fxt Invk(String key, Object v) {Gfo_invk_.Invk_by_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.Instance.LoadFilStr(expd_url);
|
||||
|
||||
@@ -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.core.threads.*; import gplx.dbs.*;
|
||||
import gplx.xowa.specials.*;
|
||||
public class Xoud_history_mgr implements GfoInvkAble {
|
||||
public class Xoud_history_mgr implements Gfo_invk {
|
||||
private Xoud_history_tbl history_tbl;
|
||||
public void Conn_(Db_conn conn, boolean created) {
|
||||
this.history_tbl = new Xoud_history_tbl(conn);
|
||||
@@ -41,16 +41,16 @@ public class Xoud_history_mgr implements GfoInvkAble {
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_update)) Update(m.ReadStr("wiki"), m.ReadStr("page"), m.ReadStr("qarg"));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_update = "update";
|
||||
public static boolean Skip_history(Xoa_ttl ttl) {
|
||||
byte[] page_db = ttl.Page_db();
|
||||
return ( ttl.Ns().Id_is_special()
|
||||
&& ( Bry_.Eq(page_db, gplx.xowa.users.history.Xou_history_mgr.Ttl_name) // do not add XowaPageHistory to history
|
||||
|| Bry_.Eq(page_db, Xows_special_meta_.Itm__popup_history.Key_bry())
|
||||
|| Bry_.Eq(page_db, Xows_special_meta_.Itm__default_tab.Key_bry())
|
||||
|| Bry_.Eq(page_db, Xows_special_meta_.Itm__page_history.Key_bry())
|
||||
|| Bry_.Eq(page_db, Xow_special_meta_.Itm__popup_history.Key_bry())
|
||||
|| Bry_.Eq(page_db, Xow_special_meta_.Itm__default_tab.Key_bry())
|
||||
|| Bry_.Eq(page_db, Xow_special_meta_.Itm__page_history.Key_bry())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@ 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.xowa.specials.*;
|
||||
public class Xoud_history_special implements Xows_page {
|
||||
public Xows_special_meta Special__meta() {return Xows_special_meta_.Itm__page_history;}
|
||||
public class Xoud_history_special implements Xow_special_page {
|
||||
public Xow_special_meta Special__meta() {return Xow_special_meta_.Itm__page_history;}
|
||||
public void Special__gen(Xow_wiki wikii, Xoa_page pagei, Xoa_url url, Xoa_ttl ttl) {
|
||||
Xowe_wiki wiki = (Xowe_wiki)wikii; Xoae_page page = (Xoae_page)pagei;
|
||||
Xoa_app app = wiki.App();
|
||||
@@ -29,5 +29,5 @@ public class Xoud_history_special implements Xows_page {
|
||||
page.Hdump_data().Body_(bfr.To_bry_and_rls());
|
||||
}
|
||||
|
||||
public Xows_page Special__clone() {return this;}
|
||||
public Xow_special_page Special__clone() {return this;}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ 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.dbs.*; import gplx.dbs.qrys.*; import gplx.dbs.metas.*; import gplx.dbs.metas.updates.*;
|
||||
public class Xoud_history_tbl implements Rls_able {
|
||||
private final String tbl_name = "user_history"; private final Dbmeta_fld_list flds = Dbmeta_fld_list.new_();
|
||||
private final String fld_id, fld_wiki, fld_url, fld_time, fld_count;
|
||||
private final Db_conn conn; private Db_stmt stmt_select_by_page, stmt_select_by_top, stmt_insert, stmt_update, stmt_delete;
|
||||
private final String tbl_name = "user_history"; private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
private final String fld_id, fld_wiki, fld_url, fld_time, fld_count;
|
||||
private final Db_conn conn; private Db_stmt stmt_select_by_page, stmt_select_by_top, stmt_insert, stmt_update, stmt_delete;
|
||||
public Xoud_history_tbl(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
fld_id = flds.Add_int_pkey_autonum("hist_id");
|
||||
|
||||
@@ -18,8 +18,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.xowa.apps.cfgs.*;
|
||||
public class Prefs_converter {
|
||||
private Bry_bfr bfr = Bry_bfr.new_();
|
||||
private List_adp list = List_adp_.new_();
|
||||
private Bry_bfr bfr = Bry_bfr_.New();
|
||||
private List_adp list = List_adp_.New();
|
||||
public void Check(Xoae_app app) {
|
||||
int options_version = app.Sys_cfg().Options_version();
|
||||
if (options_version == 1) {
|
||||
@@ -105,7 +105,7 @@ public class Prefs_converter {
|
||||
Convert_msg(m.Subs_getAt(0), depth + 1);
|
||||
}
|
||||
}
|
||||
public static final Prefs_converter Instance = 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;
|
||||
|
||||
@@ -18,7 +18,7 @@ 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.langs.htmls.*;
|
||||
class Prefs_html_wtr {
|
||||
public Prefs_html_wtr(Prefs_mgr prefs_mgr) {this.prefs_mgr = prefs_mgr;} Prefs_mgr prefs_mgr; Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
|
||||
public Prefs_html_wtr(Prefs_mgr prefs_mgr) {this.prefs_mgr = prefs_mgr;} Prefs_mgr prefs_mgr; Bry_bfr tmp_bfr = Bry_bfr_.Reset(255);
|
||||
public void Write(Bry_bfr bfr, byte[] src, Gfh_nde hnde, int prop_idx, byte[] trg_type, byte[] trg_val) {
|
||||
Object prop_val = Eval_prop_get(hnde);
|
||||
byte elem_type = Prefs_mgr.Elem_tid_tid_of(hnde);
|
||||
@@ -84,7 +84,7 @@ class Prefs_html_wtr {
|
||||
bfr.Add_str_a7("\", \"").Add(xowa_io_msg).Add_str_a7("\");'>");
|
||||
bfr.Add_str_a7("...</button>").Add_byte_nl();
|
||||
}
|
||||
private static final byte[] Atr_key_xowa_prop_list = Bry_.new_a7("xowa_prop_list")
|
||||
private static final byte[] Atr_key_xowa_prop_list = Bry_.new_a7("xowa_prop_list")
|
||||
, Atr_stub_id = Bry_.new_a7(" id='xowa_prop_")
|
||||
, Atr_stub_value = Bry_.new_a7(" value='")
|
||||
, Atr_stub_checked = Bry_.new_a7(" checked='checked'")
|
||||
|
||||
@@ -16,11 +16,12 @@ 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.core.primitives.*; import gplx.core.brys.fmtrs.*; import gplx.core.net.*; import gplx.langs.htmls.*; import gplx.gfui.*;
|
||||
import gplx.core.primitives.*; import gplx.core.brys.fmtrs.*; import gplx.core.net.*; import gplx.core.net.qargs.*; import gplx.langs.htmls.*;
|
||||
import gplx.gfui.*; import gplx.gfui.controls.standards.*;
|
||||
import gplx.xowa.guis.views.*;
|
||||
import gplx.xowa.apps.urls.*;
|
||||
import gplx.xowa.parsers.*;
|
||||
public class Prefs_mgr implements GfoInvkAble {
|
||||
public class Prefs_mgr implements Gfo_invk {
|
||||
public Prefs_mgr(Xoae_app app) {
|
||||
this.app = app;
|
||||
atrs_hash = Hash_adp_bry.cs();
|
||||
@@ -36,7 +37,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
if (props_get_fmtr == null) props_get_fmtr = Bry_fmtr.keys_().Eval_mgr_(app.Gfs_mgr().Eval_mgr());
|
||||
src = this.Parse_wikitext_to_html(src);
|
||||
props_get_fmtr.Fmt_(src);
|
||||
Bry_bfr bfr = Bry_bfr.new_();
|
||||
Bry_bfr bfr = Bry_bfr_.New();
|
||||
try {src = props_get_fmtr.Fmt_(src).Bld_bry_none(bfr);}
|
||||
catch (Exception e) {src = Bry_.Add(src, Bry_.new_u8(Err_.Message_gplx_full(e)));}
|
||||
Gfh_nde[] hndes = html_rdr.Parse_as_ary(src);
|
||||
@@ -67,7 +68,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
hndes = Gfh_selecter.Select(src, hndes, atrs_hash);
|
||||
int len = hndes.length;
|
||||
boolean tidy_enabled = app.Html_mgr().Tidy_mgr().Enabled();
|
||||
Bry_bfr cmd_bfr = Bry_bfr.reset_(255);
|
||||
Bry_bfr cmd_bfr = Bry_bfr_.Reset(255);
|
||||
for (int i = 0; i < len; i++) {
|
||||
Gfh_nde hnde = hndes[i];
|
||||
Props_set_by_hnde(cmd_bfr, src, hnde, i, tidy_enabled);
|
||||
@@ -84,8 +85,8 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
switch (elem_tid) {
|
||||
case Elem_tid_input_text:
|
||||
case Elem_tid_input_xowa_io:
|
||||
case Elem_tid_select: hnde_val = html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value); break;
|
||||
case Elem_tid_textarea: hnde_val = Gfh_utl.Unescape_as_str(html_itm.Html_elem_atr_get_str(hnde_key, gplx.gfui.Gfui_html.Atr_value)); break;
|
||||
case Elem_tid_select: hnde_val = html_itm.Html_elem_atr_get_str(hnde_key, Gfui_html.Atr_value); break;
|
||||
case Elem_tid_textarea: hnde_val = Gfh_utl.Unescape_as_str(html_itm.Html_elem_atr_get_str(hnde_key, Gfui_html.Atr_value)); break;
|
||||
case Elem_tid_input_checkbox: hnde_val = html_itm.Html_elem_atr_get_bool(hnde_key, "checked") ? "y" : "n"; break;
|
||||
}
|
||||
byte[] get_cmd = Props_get(eval_code);
|
||||
@@ -112,11 +113,11 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_exec_get)) return Props_get(m.ReadBry("v"));
|
||||
else if (ctx.Match(k, Invk_save)) Props_set_and_reload();
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_exec_get = "exec_get", Invk_save = "save";
|
||||
private static final byte Tid_prop = 0, Tid_prop_get = 1, Tid_prop_set = 2;
|
||||
public static final byte[] Bry_prop = Bry_.new_a7("xowa_prop"), Bry_prop_get = Bry_.new_a7("xowa_prop_get"), Bry_prop_set = Bry_.new_a7("xowa_prop_set"), Bry_id = Bry_.new_a7("id");
|
||||
public static final byte[] Bry_prop = Bry_.new_a7("xowa_prop"), Bry_prop_get = Bry_.new_a7("xowa_prop_get"), Bry_prop_set = Bry_.new_a7("xowa_prop_set"), Bry_id = Bry_.new_a7("id");
|
||||
public static byte Elem_tid_tid_of(Gfh_nde hnde) {
|
||||
byte[] elem_name = Bry_.Mid(hnde.Src(), hnde.Name_bgn(), hnde.Name_end());
|
||||
if (Bry_.Eq(elem_name, Nde_textarea)) return Elem_tid_textarea;
|
||||
@@ -131,7 +132,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
else return Elem_tid_null;
|
||||
}
|
||||
else return Elem_tid_null;
|
||||
} static final byte[] Input_type = Bry_.new_a7("type"), Nde_input = Bry_.new_a7("input"), Nde_textarea = Bry_.new_a7("textarea"), Nde_select = Bry_.new_a7("select"), Type_text = Bry_.new_a7("text"), Type_checkbox = Bry_.new_a7("checkbox"), Type_combo = Bry_.new_a7("xowa_combo"), Type_xowa_io = Bry_.new_a7("xowa_io");
|
||||
} static final byte[] Input_type = Bry_.new_a7("type"), Nde_input = Bry_.new_a7("input"), Nde_textarea = Bry_.new_a7("textarea"), Nde_select = Bry_.new_a7("select"), Type_text = Bry_.new_a7("text"), Type_checkbox = Bry_.new_a7("checkbox"), Type_combo = Bry_.new_a7("xowa_combo"), Type_xowa_io = Bry_.new_a7("xowa_io");
|
||||
public static String Scrub_tidy_trailing_nl_in_textarea(boolean tidy_enabled, byte elem_tid, String val) {
|
||||
return // if tidy_enabled and text_area and ends with \n, then remove \n; DATE:2014-06-21
|
||||
( tidy_enabled
|
||||
@@ -145,7 +146,7 @@ public class Prefs_mgr implements GfoInvkAble {
|
||||
public static final byte Elem_tid_null = 0, Elem_tid_input_text = 1, Elem_tid_textarea = 2, Elem_tid_input_checkbox = 3, Elem_tid_select = 4, Elem_tid_input_combo = 5, Elem_tid_input_xowa_io = 6;
|
||||
}
|
||||
class Prefs_trg_mgr {
|
||||
private Gfo_qarg_mgr arg_hash = new Gfo_qarg_mgr();
|
||||
private Gfo_qarg_mgr_old arg_hash = new Gfo_qarg_mgr_old();
|
||||
public byte[] Trg_type() {return trg_type;} private byte[] trg_type;
|
||||
public byte[] Trg_val() {return trg_val;} private byte[] trg_val;
|
||||
public void Init(Xoa_url url) {
|
||||
@@ -153,5 +154,5 @@ class Prefs_trg_mgr {
|
||||
trg_type = arg_hash.Get_val_bry_or(Prefs_trg_mgr.Arg_option_trg_type_bry, null);
|
||||
trg_val = arg_hash.Get_val_bry_or(Prefs_trg_mgr.Arg_option_trg_val_bry, null);
|
||||
}
|
||||
public static final byte[] Arg_option_trg_type_bry = Bry_.new_a7("option_trg_type"), Arg_option_trg_val_bry = Bry_.new_a7("option_trg_val");
|
||||
public static final byte[] Arg_option_trg_type_bry = Bry_.new_a7("option_trg_type"), Arg_option_trg_val_bry = Bry_.new_a7("option_trg_val");
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ 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.gfs.*; import gplx.langs.gfs.*;
|
||||
import gplx.gfui.*; import gplx.gfui.controls.standards.*; import gplx.xowa.apps.gfs.*; import gplx.langs.gfs.*;
|
||||
import gplx.xowa.guis.views.*;
|
||||
public class Prefs_mgr_tst {
|
||||
private Prefs_mgr_fxt fxt = new Prefs_mgr_fxt();
|
||||
@@ -143,7 +143,7 @@ class Prefs_mgr_fxt {
|
||||
}
|
||||
public Xop_fxt Parser_fxt() {return new Xop_fxt(app, app.Usere().Wiki());}
|
||||
public Prefs_mgr_fxt Init_elem_atr_val(String elem_id, String atr_val) {
|
||||
html_box.Html_elem_atr_add(elem_id, gplx.gfui.Gfui_html.Atr_value, atr_val);
|
||||
html_box.Html_elem_atr_add(elem_id, Gfui_html.Atr_value, atr_val);
|
||||
return this;
|
||||
}
|
||||
public Prefs_mgr_fxt Init_elem_atr_checked(String elem_id, String v) {
|
||||
@@ -151,7 +151,7 @@ class Prefs_mgr_fxt {
|
||||
return this;
|
||||
}
|
||||
public Prefs_mgr_fxt Init_elem_atr_innerHtml(String elem_id, String v) {
|
||||
html_box.Html_elem_atr_add(elem_id, gplx.gfui.Gfui_html.Atr_innerHTML, v);
|
||||
html_box.Html_elem_atr_add(elem_id, Gfui_html.Atr_innerHTML, v);
|
||||
return this;
|
||||
}
|
||||
public Prefs_mgr_fxt Exec_get(String src_str, String expd) {
|
||||
@@ -173,7 +173,7 @@ class Prefs_mgr_fxt {
|
||||
Tfds.Eq(expd, actl);
|
||||
}
|
||||
}
|
||||
class Gfui_html_mok extends Xog_html_itm { private Hash_adp elem_atrs = Hash_adp_.new_();
|
||||
class Gfui_html_mok extends Xog_html_itm { private Hash_adp elem_atrs = Hash_adp_.New();
|
||||
public void Html_elem_atr_add(String elem_id, String atr_key, Object atr_val) {elem_atrs.Add_if_dupe_use_nth(elem_id + "." + atr_key, atr_val);}
|
||||
@Override public String Html_elem_atr_get_str(String id, String atr_key) {
|
||||
return (String)elem_atrs.Get_by(id + "." + atr_key);
|
||||
|
||||
@@ -17,7 +17,7 @@ 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.*;
|
||||
public class Prefs_rename_mgr {
|
||||
private List_adp list = List_adp_.new_();
|
||||
private List_adp list = List_adp_.New();
|
||||
public 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");
|
||||
}
|
||||
@@ -38,7 +38,7 @@ public class Prefs_rename_mgr {
|
||||
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 Instance = 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;}
|
||||
|
||||
@@ -23,9 +23,9 @@ class Xofs_url_itm {
|
||||
public String Url() {return url;} public void Url_(String v) {url = v;} private String url;
|
||||
}
|
||||
class Xofs_url_itm_parser {
|
||||
private static final byte[] Xowa_fs_protocol = Bry_.new_a7("xowa-fs://");
|
||||
private static final int Xowa_fa_protocol_len = Xowa_fs_protocol.length;
|
||||
private Bry_bfr url_bfr = Bry_bfr.reset_(16);
|
||||
private static final byte[] Xowa_fs_protocol = Bry_.new_a7("xowa-fs://");
|
||||
private static final int Xowa_fa_protocol_len = Xowa_fs_protocol.length;
|
||||
private Bry_bfr url_bfr = Bry_bfr_.Reset(16);
|
||||
private Hash_adp_bry names = Hash_adp_bry.cs();
|
||||
public byte Dir_spr() {return dir_spr;} public void Dir_spr_(byte v) {dir_spr = v;} private byte dir_spr = Op_sys.Cur().Fsys_dir_spr_byte();
|
||||
public void Names_add(String key_str, String val_str) {
|
||||
|
||||
Reference in New Issue
Block a user