1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2025-06-13 12:54:14 +00:00

DownloadCentral: Preserve lang / type choices next time page is opened

This commit is contained in:
gnosygnu 2016-10-24 09:16:24 -04:00
parent 2720fdae1e
commit 69b5678350
2 changed files with 17 additions and 3 deletions

View File

@ -16,11 +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.addons.bldrs.centrals; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.bldrs.*;
import gplx.core.gfobjs.*;
import gplx.xowa.addons.bldrs.centrals.tasks.*;
import gplx.xowa.wikis.domains.*;
import gplx.xowa.langs.*;
public class Xobc_filter_mgr {
public static Xobc_task_itm[] Filter(Xobc_task_regy__base task_list, String lang_key_str, String type_key_str) {
private String lang_key_str = Xow_domain_itm_.Lang_key__all, type_key_str = Xow_domain_itm_.Type_key__all;
public Xobc_task_itm[] Filter(Xobc_task_regy__base task_list) {return Filter(task_list, lang_key_str, type_key_str);}
public Xobc_task_itm[] Filter(Xobc_task_regy__base task_list, String lang_key_str, String type_key_str) {
this.lang_key_str = lang_key_str;
this.type_key_str = type_key_str;
List_adp tmp = List_adp_.New();
// loop tasks and find matches
@ -38,4 +44,10 @@ public class Xobc_filter_mgr {
return (Xobc_task_itm[])tmp.To_ary_and_clear(Xobc_task_itm.class);
}
public Gfobj_nde Make_init_msg() {
Gfobj_nde root = Gfobj_nde.New();
root.New_nde("langs").Add_str("active", lang_key_str);
root.New_nde("types").Add_str("active", type_key_str);
return root;
}
}

View File

@ -43,6 +43,7 @@ public class Xobc_task_mgr implements Xog_json_wkr {
public Xobc_user_db User_db() {return user_db;} private final Xobc_user_db user_db;
public Gfo_rate_mgr Rate_mgr() {return rate_mgr;} private final Gfo_rate_mgr rate_mgr;
public Xobc_step_factory Step_mgr() {return step_mgr;} private final Xobc_step_factory step_mgr;
public Xobc_filter_mgr Filter_mgr() {return filter_mgr;} private final Xobc_filter_mgr filter_mgr = new Xobc_filter_mgr();
public void Send_json(String func, Gfobj_nde data) {cbk_mgr.Send_json(cbk_trg, func, data);}
public Xobc_task_mgr Load_or_init() {
Gfo_log_.Instance.Info("task_mgr.load_or_init.bgn");
@ -56,15 +57,16 @@ public class Xobc_task_mgr implements Xog_json_wkr {
Gfobj_nde root = Gfobj_nde.New();
Gfobj_nde lists_nde = root.New_nde("lists");
work_mgr.Save_to(lists_nde.New_ary("work"));
todo_mgr.Save_to(lists_nde.New_ary("todo"));
todo_mgr.Save_to(lists_nde.New_ary("todo"), filter_mgr.Filter(todo_mgr));
done_mgr.Save_to(lists_nde.New_ary("done"));
root.Add_nde("filters", filter_mgr.Make_init_msg());
cbk_mgr.Send_json(cbk_trg, "xo.bldr.core.reload__recv", root);
}
public void Filter_todo(String lang_key, String type_key) {
Gfo_log_.Instance.Info("task_mgr.filter_by_lang.bgn");
Gfobj_nde root = Gfobj_nde.New();
Gfobj_nde lists_nde = root.New_nde("lists").Add_str("list_name", "todo");
todo_mgr.Save_to(lists_nde.New_ary("todo"), Xobc_filter_mgr.Filter(todo_mgr, lang_key, type_key));
todo_mgr.Save_to(lists_nde.New_ary("todo"), filter_mgr.Filter(todo_mgr, lang_key, type_key));
cbk_mgr.Send_json(cbk_trg, "xo.bldr.core.reload_list__recv", root);
}
public void Transfer(Xobc_task_regy__base src, Xobc_task_regy__base trg, Xobc_task_itm task) {