mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Search: Do not fail with error when searching in wikidata / commons [#539]
This commit is contained in:
parent
8c55d2406a
commit
a7029f8cf1
@ -49,6 +49,12 @@ public class Srch_search_mgr implements Gfo_invk {
|
||||
public void Search(Srch_search_qry qry, Srch_rslt_cbk cbk) { // NOTE: main entry point for search
|
||||
if (qry.Phrase.Orig.length == 0) return;
|
||||
|
||||
// exit early if no search database; else multiple NPE's during search-suggest; ISSUE#:539; DATE:2019-08-21
|
||||
if (addon.Db_mgr().Cfg() == null) {
|
||||
Gfo_usr_dlg_.Instance.Warn_many("", "", "Search databases are missing; wiki=~{0}", wiki.Domain_str());
|
||||
return;
|
||||
}
|
||||
|
||||
// handle obsolete search dbs;
|
||||
if (addon.Db_mgr().Cfg().Version_id__needs_upgrade()
|
||||
&& !upgrade_prompted) {
|
||||
|
@ -22,6 +22,7 @@ public class Srch_html_page_bldr {
|
||||
private Srch_search_qry qry; private Xow_wiki wiki; private Xol_num_mgr num_mgr;
|
||||
private int slab_idx;
|
||||
private Xoh_lnki_bldr lnki_bldr; private Xoh_anchor_kv_bldr self_lnkr = new Xoh_anchor_kv_bldr(); private Srch_html_row_bldr html_row_bldr;
|
||||
private Srch_search_addon addon;
|
||||
public void Init_by_wiki(Xow_wiki wiki, Xol_num_mgr num_mgr, Srch_search_qry qry) {
|
||||
this.wiki = wiki; this.num_mgr = num_mgr; this.qry = qry;
|
||||
this.lnki_bldr = wiki.Html__lnki_bldr();
|
||||
@ -31,6 +32,14 @@ public class Srch_html_page_bldr {
|
||||
self_lnkr.Init_w_qarg(tmp_bfr.Add(Bry__special_search).Add(qry.Phrase.Orig).Add(Bry__fulltext).To_bry_and_clear());
|
||||
}
|
||||
public byte[] Bld_page(byte[] html_tbls_bry) {
|
||||
// show a message if no search databases exist; ISSUE#:539; DATE:2019-08-21
|
||||
if (addon == null) {
|
||||
addon = Srch_search_addon.Get(wiki);
|
||||
}
|
||||
if (addon != null && addon.Db_mgr().Cfg() == null) {
|
||||
return Bry_.new_u8("<span style='color:red'>Search databases are missing</span>");
|
||||
}
|
||||
|
||||
byte[] rslts_hdr = fmtr_rslts.Bld_bry_many(tmp_bfr, num_mgr.Format_num(qry.Slab_bgn + List_adp_.Base1), num_mgr.Format_num(qry.Slab_end), qry.Phrase.Orig);
|
||||
byte[] option_link = lnki_bldr.Href_(Bry_.new_a7("home"), wiki.Ttl_parse(Bry_.new_a7("Options/Search"))).Img_16x16(Xoh_img_path.Img_option).Bld_to_bry(); // HOME
|
||||
fmtr_page.Bld_bfr_many(tmp_bfr, rslts_hdr, option_link, Bld_paging_link(Bool_.N), Bld_paging_link(Bool_.Y), html_tbls_bry);
|
||||
|
Loading…
Reference in New Issue
Block a user