mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Full-text search: Add autosave options; read query from url args
This commit is contained in:
parent
37b78543af
commit
062d958ead
@ -30,6 +30,7 @@ public class Gfo_qarg_mgr {
|
||||
public byte[] Read_bry_or_empty(byte[] key) {return Read_bry_or(key, Bry_.Empty);}
|
||||
public byte[] Read_bry_or_null(String key) {return Read_bry_or(Bry_.new_u8(key), null);}
|
||||
public byte[] Read_bry_or_null(byte[] key) {return Read_bry_or(key, null);}
|
||||
public byte[] Read_bry_or(String key, byte[] or) {return Read_bry_or(Bry_.new_u8(key), or);}
|
||||
public byte[] Read_bry_or(byte[] key, byte[] or) {
|
||||
Gfo_qarg_itm arg = (Gfo_qarg_itm)hash.Get_by_bry(key);
|
||||
return arg == null ? or : arg.Val_bry();
|
||||
|
@ -40,13 +40,15 @@ class Xosearch_fulltext_svc implements Gfo_invk {
|
||||
Xocfg_mgr cfg_mgr = app.Cfg();
|
||||
Xosearch_search_args thread_args = Xosearch_search_args.New_by_json(args);
|
||||
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.case_match", thread_args.case_match);
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.auto_wildcard_bgn", thread_args.auto_wildcard_bgn);
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.auto_wildcard_end", thread_args.auto_wildcard_end);
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.expand_matches_section", thread_args.expand_matches_section);
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.show_all_matches", thread_args.show_all_matches);
|
||||
cfg_mgr.Get_int_app_or ("xowa.addon.search.fulltext.special.max_pages_per_wiki", thread_args.max_pages_per_wiki);
|
||||
cfg_mgr.Get_str_app_or ("xowa.addon.search.fulltext.special.namespaces", thread_args.namespaces);
|
||||
if (cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.options.autosave_enabled", true)) {
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.case_match", thread_args.case_match);
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.auto_wildcard_bgn", thread_args.auto_wildcard_bgn);
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.auto_wildcard_end", thread_args.auto_wildcard_end);
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.expand_matches_section", thread_args.expand_matches_section);
|
||||
cfg_mgr.Set_bool_app("xowa.addon.search.fulltext.special.show_all_matches", thread_args.show_all_matches);
|
||||
cfg_mgr.Get_int_app_or ("xowa.addon.search.fulltext.special.max_pages_per_wiki", thread_args.max_pages_per_wiki);
|
||||
cfg_mgr.Get_str_app_or ("xowa.addon.search.fulltext.special.namespaces", thread_args.namespaces);
|
||||
}
|
||||
|
||||
gplx.core.threads.Thread_adp_.Start_by_val("search", Cancelable_.Never, this, Invk__search, thread_args);
|
||||
}
|
||||
|
@ -16,14 +16,16 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
|
||||
package gplx.xowa.addons.wikis.searchs.fulltexts.specials; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.wikis.*; import gplx.xowa.addons.wikis.searchs.*; import gplx.xowa.addons.wikis.searchs.fulltexts.*;
|
||||
import gplx.langs.mustaches.*;
|
||||
public class Xosearch_fulltext_doc implements Mustache_doc_itm {
|
||||
private final byte[] query;
|
||||
private final boolean case_match, auto_wildcard_bgn, auto_wildcard_end, expand_matches_section, show_all_matches;
|
||||
private final int max_pages_per_wiki;
|
||||
private final String wikis, namespaces;
|
||||
public Xosearch_fulltext_doc
|
||||
( boolean case_match, boolean auto_wildcard_bgn, boolean auto_wildcard_end
|
||||
( byte[] query, boolean case_match, boolean auto_wildcard_bgn, boolean auto_wildcard_end
|
||||
, boolean expand_matches_section, boolean show_all_matches
|
||||
, int max_pages_per_wiki
|
||||
, String wikis, String namespaces) {
|
||||
this.query = query;
|
||||
this.case_match = case_match;
|
||||
this.auto_wildcard_bgn = auto_wildcard_bgn;
|
||||
this.auto_wildcard_end = auto_wildcard_end;
|
||||
@ -40,6 +42,8 @@ public class Xosearch_fulltext_doc implements Mustache_doc_itm {
|
||||
bfr.Add_str_u8(namespaces);
|
||||
else if (String_.Eq(key, "max_pages_per_wiki"))
|
||||
bfr.Add_int(max_pages_per_wiki);
|
||||
else if (String_.Eq(key, "query"))
|
||||
bfr.Add_bry(query);
|
||||
else
|
||||
return false;
|
||||
return true;
|
||||
|
@ -17,14 +17,16 @@ package gplx.xowa.addons.wikis.searchs.fulltexts.specials; import gplx.*; import
|
||||
import gplx.xowa.specials.*; import gplx.langs.mustaches.*; import gplx.xowa.wikis.pages.*; import gplx.xowa.wikis.pages.tags.*;
|
||||
import gplx.dbs.*;
|
||||
class Xosearch_fulltext_html extends Xow_special_wtr__base {
|
||||
private final byte[] query;
|
||||
private final boolean case_match, auto_wildcard_bgn, auto_wildcard_end, expand_matches_section, show_all_matches;
|
||||
private final int max_pages_per_wiki;
|
||||
private final String wikis, namespaces;
|
||||
public Xosearch_fulltext_html
|
||||
( boolean case_match, boolean auto_wildcard_bgn, boolean auto_wildcard_end
|
||||
( byte[] query, boolean case_match, boolean auto_wildcard_bgn, boolean auto_wildcard_end
|
||||
, boolean expand_matches_section, boolean show_all_matches
|
||||
, int max_pages_per_wiki
|
||||
, String wikis, String namespaces) {
|
||||
this.query = query;
|
||||
this.case_match = case_match;
|
||||
this.auto_wildcard_bgn = auto_wildcard_bgn;
|
||||
this.auto_wildcard_end = auto_wildcard_end;
|
||||
@ -38,7 +40,7 @@ class Xosearch_fulltext_html extends Xow_special_wtr__base {
|
||||
@Override protected Io_url Get_mustache_fil(Io_url addon_dir) {return addon_dir.GenSubFil_nest("bin", "xosearch_fulltext.template.html");}
|
||||
@Override protected Mustache_doc_itm Bld_mustache_root(Xoa_app app) {
|
||||
return new Xosearch_fulltext_doc
|
||||
( case_match, auto_wildcard_bgn, auto_wildcard_end
|
||||
( query, case_match, auto_wildcard_bgn, auto_wildcard_end
|
||||
, expand_matches_section, show_all_matches
|
||||
, max_pages_per_wiki, wikis, namespaces);
|
||||
}
|
||||
|
@ -18,11 +18,15 @@ import gplx.xowa.specials.*; import gplx.core.net.qargs.*;
|
||||
import gplx.xowa.addons.apps.cfgs.*;
|
||||
public class Xosearch_fulltext_special implements Xow_special_page {
|
||||
public void Special__gen(Xow_wiki wiki, Xoa_page page, Xoa_url url, Xoa_ttl ttl) {
|
||||
// Gfo_qarg_mgr url_args = new Gfo_qarg_mgr().Init(url.Qargs_ary());
|
||||
// get qry if any
|
||||
Gfo_qarg_mgr url_args = new Gfo_qarg_mgr().Init(url.Qargs_ary());
|
||||
byte[] query = url_args.Read_bry_or("query", Bry_.Empty);
|
||||
|
||||
// get options and create page
|
||||
Xocfg_mgr cfg_mgr = wiki.App().Cfg();
|
||||
new Xosearch_fulltext_html
|
||||
( cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.case_match", false)
|
||||
( query
|
||||
, cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.case_match", false)
|
||||
, cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.auto_wildcard_bgn", false)
|
||||
, cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.auto_wildcard_end", false)
|
||||
, cfg_mgr.Get_bool_app_or("xowa.addon.search.fulltext.special.expand_matches_section", false)
|
||||
|
Loading…
Reference in New Issue
Block a user