From b947f1f018393d4c7ea6c4e149e8301e0db126d8 Mon Sep 17 00:00:00 2001 From: totoro Date: Wed, 24 May 2017 02:00:50 +0200 Subject: [PATCH] add searchable fields list in foreign key --- ds_files/ds_types.anubis | 11 ++++++----- model/fields.anubis | 4 ++-- model/types/hk_model_field.anubis | 17 +++++++++++------ view/view_table_renderer.anubis | 2 +- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/ds_files/ds_types.anubis b/ds_files/ds_types.anubis index c6d01be..274c2e8 100644 --- a/ds_files/ds_types.anubis +++ b/ds_files/ds_types.anubis @@ -90,7 +90,7 @@ public define List(DS_Type_File) hayamiki_lib_types_description = [ component(extern_type("HK_App_Name", model_types+"hk_app_name.anubis"), "app_name"), component(string, "table_name"), - //component(extern_type("HK_FK_Attr", model_types+"hk_fk_attr.anubis"), "fk_attr"), + component(list, string, "searchable_fields"), ]), alternative("integer_field", [ component(extern_type("HK_Int_Choices", model_types+"hk_int_choices.anubis"), "choices", comment("integer of arbitrary size ")), @@ -118,10 +118,11 @@ public define List(DS_Type_File) hayamiki_lib_types_description = enum("rich_editor", comment("Use richt text editor for that area")) ]), - // ds_type("HK_FK_Attr", [ - // enum("one_to_one", comment("Foreign key relation is one to one")), - // enum("many_to_one", comment("Foreign key relation is many to one")) - // ]), +// ds_type("HK_FK_Attr", [ +// alternative("searchable", [ +// component(list, string, "searchable_fields") +// ]) +// ]), ds_type("HK_Int_Choices", [ enum("no_choice", comment("No list choice is available. Hence the user must enter the value")), diff --git a/model/fields.anubis b/model/fields.anubis index b8a1fbe..82d1a41 100644 --- a/model/fields.anubis +++ b/model/fields.anubis @@ -152,7 +152,7 @@ public define HK_Model_Field ( String table_name )= - foreign_key(this, table_name). + foreign_key(this, table_name, []). public define HK_Model_Field text_field @@ -218,7 +218,7 @@ public define JsonValue json_member("dt_attribute", json_string(to_String(attr))) ], - foreign_key(app_name, table_name) then // foreign key to 'id' in another (or same) table and column_name for choice selector. + foreign_key(app_name, table_name,_) then // foreign key to 'id' in another (or same) table and column_name for choice selector. [ json_member("type", json_string("foreign_key")), json_member("app_name", to_JSON(app_name)), json_member("table_name", json_string(table_name)), diff --git a/model/types/hk_model_field.anubis b/model/types/hk_model_field.anubis index b56fc18..6950f5b 100644 --- a/model/types/hk_model_field.anubis +++ b/model/types/hk_model_field.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-05-19 - * Time: 09:24:24 + * Date: 2017-05-24 + * Time: 01:57:03 * */ @@ -34,7 +34,8 @@ public type HK_Model_Field: foreign_key( HK_App_Name app_name, - String table_name + String table_name, + List(String) searchable_fields ), integer_field( HK_Int_Choices choices //integer of arbitrary size @@ -98,12 +99,14 @@ public define Message //Alternative foreign_key //foreign key to 'id' in another (or same) table and column_name for choice selector) - foreign_key(_app_name, _table_name) then + foreign_key(_app_name, _table_name, __searchable_fields) then forget(add_string(_hk_model_field_message, "__TYPE_ALT__", "foreign_key")); // [type = HK_App_Name] foreign_key.app_name forget(add_message(_hk_model_field_message, "app_name", to_Message(_app_name))); // [type = String] foreign_key.table_name - forget(add_string(_hk_model_field_message, "table_name", _table_name)), + forget(add_string(_hk_model_field_message, "table_name", _table_name)); + // [type = List(String)] foreign_key.searchable_fields + map_forget((String _searchable_fields) |-> add_string(_hk_model_field_message, "searchable_fields", _searchable_fields), __searchable_fields), //Alternative integer_field integer_field(_choices) then @@ -198,8 +201,10 @@ public define Maybe(HK_Model_Field) if (Maybe(HK_App_Name))from_Message(_app_name__msg) is {failure then failure, success(_app_name_) then // [type = String] foreign_key.table_name if find_string(_hk_model_field_message, "table_name") is {failure then failure, success(_table_name_) then + // [type = List(String)] foreign_key.searchable_fields + with _searchable_fields_ = find_string_list(_hk_model_field_message, "searchable_fields"), - success(foreign_key(_app_name_, _table_name_)) + success(foreign_key(_app_name_, _table_name_, _searchable_fields_)) }}} else //Alternative integer_field if __type_alt__ = "integer_field" then //Alternative integer_field diff --git a/view/view_table_renderer.anubis b/view/view_table_renderer.anubis index 583a6e2..93ec3fc 100644 --- a/view/view_table_renderer.anubis +++ b/view/view_table_renderer.anubis @@ -289,7 +289,7 @@ define String autoresizeOnLoad: true, autowidth:true, /*idPrefix: '_g_"+uid+"_',*/ - /*pager: '#"+uid+"_pager',*/ + pager: '#"+uid+"_pager', pager: true, toppager: true, -- libgit2 0.21.4