Commit b947f1f018393d4c7ea6c4e149e8301e0db126d8

Authored by totoro
1 parent bba31ce5

add searchable fields list in foreign key

ds_files/ds_types.anubis
@@ -90,7 +90,7 @@ public define List(DS_Type_File) hayamiki_lib_types_description = @@ -90,7 +90,7 @@ public define List(DS_Type_File) hayamiki_lib_types_description =
90 [ 90 [
91 component(extern_type("HK_App_Name", model_types+"hk_app_name.anubis"), "app_name"), 91 component(extern_type("HK_App_Name", model_types+"hk_app_name.anubis"), "app_name"),
92 component(string, "table_name"), 92 component(string, "table_name"),
93 - //component(extern_type("HK_FK_Attr", model_types+"hk_fk_attr.anubis"), "fk_attr"), 93 + component(list, string, "searchable_fields"),
94 ]), 94 ]),
95 alternative("integer_field", [ 95 alternative("integer_field", [
96 component(extern_type("HK_Int_Choices", model_types+"hk_int_choices.anubis"), "choices", comment("integer of arbitrary size ")), 96 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 = @@ -118,10 +118,11 @@ public define List(DS_Type_File) hayamiki_lib_types_description =
118 enum("rich_editor", comment("Use richt text editor for that area")) 118 enum("rich_editor", comment("Use richt text editor for that area"))
119 ]), 119 ]),
120 120
121 - // ds_type("HK_FK_Attr", [  
122 - // enum("one_to_one", comment("Foreign key relation is one to one")),  
123 - // enum("many_to_one", comment("Foreign key relation is many to one"))  
124 - // ]), 121 +// ds_type("HK_FK_Attr", [
  122 +// alternative("searchable", [
  123 +// component(list, string, "searchable_fields")
  124 +// ])
  125 +// ]),
125 126
126 ds_type("HK_Int_Choices", [ 127 ds_type("HK_Int_Choices", [
127 enum("no_choice", comment("No list choice is available. Hence the user must enter the value")), 128 enum("no_choice", comment("No list choice is available. Hence the user must enter the value")),
model/fields.anubis
@@ -152,7 +152,7 @@ public define HK_Model_Field @@ -152,7 +152,7 @@ public define HK_Model_Field
152 ( 152 (
153 String table_name 153 String table_name
154 )= 154 )=
155 - foreign_key(this, table_name). 155 + foreign_key(this, table_name, []).
156 156
157 public define HK_Model_Field 157 public define HK_Model_Field
158 text_field 158 text_field
@@ -218,7 +218,7 @@ public define JsonValue @@ -218,7 +218,7 @@ public define JsonValue
218 json_member("dt_attribute", json_string(to_String(attr))) 218 json_member("dt_attribute", json_string(to_String(attr)))
219 ], 219 ],
220 220
221 - foreign_key(app_name, table_name) then // foreign key to 'id' in another (or same) table and column_name for choice selector. 221 + foreign_key(app_name, table_name,_) then // foreign key to 'id' in another (or same) table and column_name for choice selector.
222 [ json_member("type", json_string("foreign_key")), 222 [ json_member("type", json_string("foreign_key")),
223 json_member("app_name", to_JSON(app_name)), 223 json_member("app_name", to_JSON(app_name)),
224 json_member("table_name", json_string(table_name)), 224 json_member("table_name", json_string(table_name)),
model/types/hk_model_field.anubis
1 /* 1 /*
2 * Created by 伝作 (Densaku). 2 * Created by 伝作 (Densaku).
3 * Types & Messages generator written by フランスのトトロ aka (David RENÉ) 3 * Types & Messages generator written by フランスのトトロ aka (David RENÉ)
4 - * Date: 2017-05-19  
5 - * Time: 09:24:24 4 + * Date: 2017-05-24
  5 + * Time: 01:57:03
6 * 6 *
7 */ 7 */
8 8
@@ -34,7 +34,8 @@ public type HK_Model_Field: @@ -34,7 +34,8 @@ public type HK_Model_Field:
34 34
35 foreign_key( 35 foreign_key(
36 HK_App_Name app_name, 36 HK_App_Name app_name,
37 - String table_name 37 + String table_name,
  38 + List(String) searchable_fields
38 ), 39 ),
39 integer_field( 40 integer_field(
40 HK_Int_Choices choices //integer of arbitrary size 41 HK_Int_Choices choices //integer of arbitrary size
@@ -98,12 +99,14 @@ public define Message @@ -98,12 +99,14 @@ public define Message
98 99
99 //Alternative foreign_key 100 //Alternative foreign_key
100 //foreign key to 'id' in another (or same) table and column_name for choice selector) 101 //foreign key to 'id' in another (or same) table and column_name for choice selector)
101 - foreign_key(_app_name, _table_name) then 102 + foreign_key(_app_name, _table_name, __searchable_fields) then
102 forget(add_string(_hk_model_field_message, "__TYPE_ALT__", "foreign_key")); 103 forget(add_string(_hk_model_field_message, "__TYPE_ALT__", "foreign_key"));
103 // [type = HK_App_Name] foreign_key.app_name 104 // [type = HK_App_Name] foreign_key.app_name
104 forget(add_message(_hk_model_field_message, "app_name", to_Message(_app_name))); 105 forget(add_message(_hk_model_field_message, "app_name", to_Message(_app_name)));
105 // [type = String] foreign_key.table_name 106 // [type = String] foreign_key.table_name
106 - forget(add_string(_hk_model_field_message, "table_name", _table_name)), 107 + forget(add_string(_hk_model_field_message, "table_name", _table_name));
  108 + // [type = List(String)] foreign_key.searchable_fields
  109 + map_forget((String _searchable_fields) |-> add_string(_hk_model_field_message, "searchable_fields", _searchable_fields), __searchable_fields),
107 110
108 //Alternative integer_field 111 //Alternative integer_field
109 integer_field(_choices) then 112 integer_field(_choices) then
@@ -198,8 +201,10 @@ public define Maybe(HK_Model_Field) @@ -198,8 +201,10 @@ public define Maybe(HK_Model_Field)
198 if (Maybe(HK_App_Name))from_Message(_app_name__msg) is {failure then failure, success(_app_name_) then 201 if (Maybe(HK_App_Name))from_Message(_app_name__msg) is {failure then failure, success(_app_name_) then
199 // [type = String] foreign_key.table_name 202 // [type = String] foreign_key.table_name
200 if find_string(_hk_model_field_message, "table_name") is {failure then failure, success(_table_name_) then 203 if find_string(_hk_model_field_message, "table_name") is {failure then failure, success(_table_name_) then
  204 + // [type = List(String)] foreign_key.searchable_fields
  205 + with _searchable_fields_ = find_string_list(_hk_model_field_message, "searchable_fields"),
201 206
202 - success(foreign_key(_app_name_, _table_name_)) 207 + success(foreign_key(_app_name_, _table_name_, _searchable_fields_))
203 }}} 208 }}}
204 else //Alternative integer_field 209 else //Alternative integer_field
205 if __type_alt__ = "integer_field" then //Alternative integer_field 210 if __type_alt__ = "integer_field" then //Alternative integer_field
view/view_table_renderer.anubis
@@ -289,7 +289,7 @@ define String @@ -289,7 +289,7 @@ define String
289 autoresizeOnLoad: true, 289 autoresizeOnLoad: true,
290 autowidth:true, 290 autowidth:true,
291 /*idPrefix: '_g_"+uid+"_',*/ 291 /*idPrefix: '_g_"+uid+"_',*/
292 - /*pager: '#"+uid+"_pager',*/ 292 + pager: '#"+uid+"_pager',
293 pager: true, 293 pager: true,
294 toppager: true, 294 toppager: true,
295 295