mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
Personal_wikis: Add search-indexing and auto-page rescan
This commit is contained in:
@@ -30,7 +30,7 @@ class Xobc_task_html extends Xow_special_wtr__base {
|
||||
Xopg_tag_wtr_.Add__xohelp (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__mustache (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__jquery (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__notifyjs (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__xonotify (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__xolog (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__xoajax (head_tags, app.Fsys_mgr().Http_root(), app);
|
||||
|
||||
@@ -38,7 +38,6 @@ class Xobc_task_html extends Xow_special_wtr__base {
|
||||
head_tags.Add(Xopg_tag_itm.New_htm_frag(addon_dir.GenSubFil_nest("bin", "xobc.row.mustache.html"), "xobc.row"));
|
||||
head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("js", "xo.elem.js")));
|
||||
head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("js", "xo.tmpl.js")));
|
||||
head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("js", "xo.notify.js")));
|
||||
head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("js", "xobc.util.js")));
|
||||
head_tags.Add(Xopg_tag_itm.New_js_file(addon_dir.GenSubFil_nest("js", "xobc.js")));
|
||||
}
|
||||
|
||||
@@ -30,15 +30,17 @@ public class Xowdir_item_bridge implements Bridge_cmd_itm {
|
||||
switch (proc_id) {
|
||||
case Proc__save: itm_mgr.Save(args); break;
|
||||
case Proc__delete: itm_mgr.Delete(args); break;
|
||||
case Proc__reindex_search: itm_mgr.Reindex_search(args); break;
|
||||
default: throw Err_.new_unhandled_default(proc_id);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private static final byte Proc__save = 0, Proc__delete = 1;
|
||||
private static final byte Proc__save = 0, Proc__delete = 1, Proc__reindex_search = 2;
|
||||
private static final Hash_adp_bry proc_hash = Hash_adp_bry.cs()
|
||||
.Add_str_byte("save" , Proc__save)
|
||||
.Add_str_byte("delete" , Proc__delete)
|
||||
.Add_str_byte("reindex_search" , Proc__reindex_search)
|
||||
;
|
||||
|
||||
public byte[] Key() {return BRIDGE_KEY;} public static final byte[] BRIDGE_KEY = Bry_.new_a7("wiki.directory.item");
|
||||
|
||||
@@ -39,6 +39,8 @@ class Xowdir_item_html extends Xow_special_wtr__base {
|
||||
Xopg_tag_wtr_.Add__xohelp (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__xolog (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__xoajax (head_tags, app.Fsys_mgr().Http_root(), app);
|
||||
Xopg_tag_wtr_.Add__jquery (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_tag_wtr_.Add__xonotify (head_tags, app.Fsys_mgr().Http_root());
|
||||
Xopg_alertify_.Add_tags (head_tags, app.Fsys_mgr().Http_root());
|
||||
|
||||
head_tags.Add(Xopg_tag_itm.New_css_file(addon_dir.GenSubFil_nest("bin", "xowdir_item.css")));
|
||||
|
||||
@@ -96,6 +96,25 @@ class Xowdir_item_mgr {
|
||||
// navigate back to wiki_directory
|
||||
app.Gui__cbk_mgr().Send_redirect(cbk_trg, "/site/home/wiki/Special:XowaWikiDirectory");
|
||||
}
|
||||
public void Reindex_search(Json_nde args) {
|
||||
String domain = args.Get_as_str("domain");
|
||||
Xowe_wiki wiki = (Xowe_wiki)app.Wiki_mgri().Get_by_or_null(Bry_.new_u8(domain));
|
||||
|
||||
// update page count; needed else search cannot generate correct ranges when normalizing search_scores
|
||||
int page_count = wiki.Data__core_mgr().Tbl__page().Select_count_all();
|
||||
if (page_count == -1) {
|
||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "negative page count while reindexing search; domain=~{0}", domain);
|
||||
}
|
||||
wiki.Data__core_mgr().Db__core().Tbl__site_stats().Update(page_count, page_count, 0);
|
||||
wiki.Data__core_mgr().Db__core().Tbl__site_stats().Select(wiki.Stats());
|
||||
|
||||
// run reindexer
|
||||
gplx.xowa.addons.wikis.searchs.bldrs.Srch_bldr_mgr_.Setup(wiki);
|
||||
app.Bldr().Run();
|
||||
|
||||
// send notify
|
||||
app.Gui__cbk_mgr().Send_notify(cbk_trg, "search reindex done");
|
||||
}
|
||||
private String Validate(Xoa_app app, Xowdir_db_mgr db_mgr, boolean itm_is_new, String domain, String name, Io_url dir_url, String mainpage_name) {
|
||||
// domain
|
||||
if (itm_is_new) {
|
||||
|
||||
Reference in New Issue
Block a user