diff --git a/ds_files/ds_types.anubis b/ds_files/ds_types.anubis index b93c0fd..b7b185b 100644 --- a/ds_files/ds_types.anubis +++ b/ds_files/ds_types.anubis @@ -87,6 +87,7 @@ public define List(DS_Type) 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"), ]), alternative("integer_field", [ component(extern_type("HK_Int_Choices", model_types+"hk_int_choices.anubis"), "choices", comment("integer of arbitrary size ")), @@ -110,6 +111,11 @@ public define List(DS_Type) hayamiki_lib_types_description = enum("none", comment("Nothing special, normal behaviour")), 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_Int_Choices", [ enum("no_choice", comment("No list choice is available. Hence the user must enter the value")), @@ -178,6 +184,8 @@ public define List(DS_Type) hayamiki_lib_types_description = ]) ]), + + ds_type("HK_List_View", [ enum("list_view_all"), alternative("list_view", [ @@ -186,12 +194,21 @@ public define List(DS_Type) hayamiki_lib_types_description = component(extern_type("WEB_Action_Name", "calexium_lib/web/types/web_action_name.anubis"), "link_id_action") ]) ]), - + + ds_type("HK_FK_View", [ + alternative("fk_view", [ + component(extern_type("HK_App_Name", model_types+"hk_app_name.anubis"), "app_name"), + component(string, "table_name"), + component(string, "fk_col_name", comment("column name of the foreign key. The column name must exists in the hk_model")), + ]) + ]), + ds_type("HK_Edit_View", [ enum("edit_view_all"), alternative("edit_view", [ component(string, "view_name"), - component(list, string, "columns") + component(list, string, "columns"), + component(list, extern_type("HK_FK_View", model_types+"hk_fk_view.anubis"), "fk_view") ]) ]), diff --git a/model/display.anubis b/model/display.anubis index 8f612ff..7fbeffd 100644 --- a/model/display.anubis +++ b/model/display.anubis @@ -14,6 +14,7 @@ transmit calexium_lib/web/CXM_json.anubis transmit hayamiki_lib/model/types/hk_display.anubis transmit hayamiki_lib/model/types/hk_list_view.anubis transmit hayamiki_lib/model/types/hk_edit_view.anubis +transmit hayamiki_lib/model/types/hk_fk_view.anubis transmit hayamiki_lib/model/types/hk_icon.anubis public define HK_List_View @@ -25,6 +26,16 @@ public define HK_List_View list_view(view_name, columns, no_action). +public define HK_Edit_View + edit_view + ( + String view_name, + List(String) columns + )= + edit_view(view_name, columns, []) +. + + public define JsonValue to_JSON ( diff --git a/model/types/hk_app.anubis b/model/types/hk_app.anubis index 7461e8c..5fed226 100644 --- a/model/types/hk_app.anubis +++ b/model/types/hk_app.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:19 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_app_name.anubis b/model/types/hk_app_name.anubis index 5cde52c..47abf6f 100644 --- a/model/types/hk_app_name.anubis +++ b/model/types/hk_app_name.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_database.anubis b/model/types/hk_database.anubis index 3b84ebe..0afb524 100644 --- a/model/types/hk_database.anubis +++ b/model/types/hk_database.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:19 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_datetime_field_attr.anubis b/model/types/hk_datetime_field_attr.anubis index 37c45a2..bd6ad46 100644 --- a/model/types/hk_datetime_field_attr.anubis +++ b/model/types/hk_datetime_field_attr.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_display.anubis b/model/types/hk_display.anubis index a7f25d1..d353f24 100644 --- a/model/types/hk_display.anubis +++ b/model/types/hk_display.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_edit_view.anubis b/model/types/hk_edit_view.anubis index 267e047..e9d7bbe 100644 --- a/model/types/hk_edit_view.anubis +++ b/model/types/hk_edit_view.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ @@ -10,12 +10,14 @@ transmit system/muscle.anubis transmit system/convert.anubis transmit tools/basis.anubis +transmit hayamiki_lib/model/types/hk_fk_view.anubis public type HK_Edit_View: - edit_view_all, + edit_view_all, edit_view( - String view_name, - List(String) columns + String view_name, + List(String) columns, + List(HK_FK_View) fk_view ) . @@ -37,12 +39,14 @@ public define Message forget(add_string(_hk_edit_view_message, "__TYPE_ALT__", "edit_view_all")), //Alternative edit_view - edit_view(_view_name, __columns) then + edit_view(_view_name, __columns, __fk_view) then forget(add_string(_hk_edit_view_message, "__TYPE_ALT__", "edit_view")); // [type = String] edit_view.view_name forget(add_string(_hk_edit_view_message, "view_name", _view_name)); // [type = List(String)] edit_view.columns - map_forget((String _columns) |-> add_string(_hk_edit_view_message, "columns", _columns), __columns), + map_forget((String _columns) |-> add_string(_hk_edit_view_message, "columns", _columns), __columns); + // [type = List(HK_FK_View)] edit_view.fk_view + map_forget((HK_FK_View _fk_view) |-> add_message(_hk_edit_view_message, "fk_view", to_Message(_fk_view)), __fk_view), }; _hk_edit_view_message @@ -65,9 +69,12 @@ public define Maybe(HK_Edit_View) if find_string(_hk_edit_view_message, "view_name") is {failure then failure, success(view_name) then // [type = List(String)] edit_view.columns with columns = find_string_list(_hk_edit_view_message, "columns"), + // [type = List(HK_FK_View)] edit_view.fk_view + with mb_fk_view = map_escape(( Message msg ) |-> (Maybe(HK_FK_View)) from_Message(msg), find_messages(_hk_edit_view_message, "fk_view")), + if mb_fk_view is {failure then failure, success(fk_view) then - success(edit_view(view_name, columns)) - } + success(edit_view(view_name, columns, fk_view)) + }} else failure //No valid Alternative found ! else diff --git a/model/types/hk_fk_view.anubis b/model/types/hk_fk_view.anubis new file mode 100644 index 0000000..802b643 --- /dev/null +++ b/model/types/hk_fk_view.anubis @@ -0,0 +1,76 @@ +/* + * Created by 伝作 (Densaku). + * Types & Messages generator written by フランスのトトロ aka (David RENÉ) + * Date: 2017-03-18 + * Time: 23:38:31 + * + */ + +transmit system/muscle.anubis +transmit system/convert.anubis +transmit tools/basis.anubis + +transmit hayamiki_lib/model/types/hk_app_name.anubis + +public type HK_FK_View: + fk_view( + HK_App_Name app_name, + String table_name, + String fk_col_name //column name of the foreign key. The column name must exists in the hk_model + ) +. + + HK_FK_View message format + ========================= + + +public define Message + to_Message + ( + HK_FK_View _hk_fk_view + )= + with _hk_fk_view_message = message((Word32)0), // + forget(add_string(_hk_fk_view_message, "__TYPE__", "HK_FK_View")); + if _hk_fk_view is + { + //Alternative fk_view + fk_view(_app_name, _table_name, _fk_col_name) then + forget(add_string(_hk_fk_view_message, "__TYPE_ALT__", "fk_view")); + // [type = HK_App_Name] fk_view.app_name + forget(add_message(_hk_fk_view_message, "app_name", to_Message(_app_name))); + // [type = String] fk_view.table_name + forget(add_string(_hk_fk_view_message, "table_name", _table_name)); + // [type = String] fk_view.fk_col_name + forget(add_string(_hk_fk_view_message, "fk_col_name", _fk_col_name)), + + }; + _hk_fk_view_message +. + +public define Maybe(HK_FK_View) + from_Message + ( + Message _hk_fk_view_message + )= + if find_string(_hk_fk_view_message, "__TYPE__") is {failure then failure, success(__type__) then + if find_string(_hk_fk_view_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then + if __type__ = "HK_FK_View" then + //Alternative fk_view + if __type_alt__ = "fk_view" then //Alternative fk_view + // [type = HK_App_Name] fk_view.app_name + if find_message(_hk_fk_view_message, "app_name") is {failure then failure, success(app_name_msg) then + if (Maybe(HK_App_Name))from_Message(app_name_msg) is {failure then failure, success(app_name) then + // [type = String] fk_view.table_name + if find_string(_hk_fk_view_message, "table_name") is {failure then failure, success(table_name) then + // [type = String] fk_view.fk_col_name + if find_string(_hk_fk_view_message, "fk_col_name") is {failure then failure, success(fk_col_name) then + + success(fk_view(app_name, table_name, fk_col_name)) + }}}} + else + failure //No valid Alternative found ! + else + failure //Type not found in message ! + }} +. + diff --git a/model/types/hk_help_text.anubis b/model/types/hk_help_text.anubis index e27c2f1..65b147e 100644 --- a/model/types/hk_help_text.anubis +++ b/model/types/hk_help_text.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:19 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_icon.anubis b/model/types/hk_icon.anubis index 30c7a8b..21558d7 100644 --- a/model/types/hk_icon.anubis +++ b/model/types/hk_icon.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:19 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_int_choice.anubis b/model/types/hk_int_choice.anubis index 46323f2..7255773 100644 --- a/model/types/hk_int_choice.anubis +++ b/model/types/hk_int_choice.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_int_choices.anubis b/model/types/hk_int_choices.anubis index 8b99810..6a95f3f 100644 --- a/model/types/hk_int_choices.anubis +++ b/model/types/hk_int_choices.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_list_view.anubis b/model/types/hk_list_view.anubis index 3510be9..6806bc0 100644 --- a/model/types/hk_list_view.anubis +++ b/model/types/hk_list_view.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_model.anubis b/model/types/hk_model.anubis index 8544309..bc08b8c 100644 --- a/model/types/hk_model.anubis +++ b/model/types/hk_model.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:19 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_model_attr.anubis b/model/types/hk_model_attr.anubis index 0ce0e10..17307f7 100644 --- a/model/types/hk_model_attr.anubis +++ b/model/types/hk_model_attr.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_model_column.anubis b/model/types/hk_model_column.anubis index 02ee585..c1c4e0f 100644 --- a/model/types/hk_model_column.anubis +++ b/model/types/hk_model_column.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_model_field.anubis b/model/types/hk_model_field.anubis index ed35260..7b2b346 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-03-15 - * Time: 02:24:19 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_table.anubis b/model/types/hk_table.anubis index 25b2ce2..8c58826 100644 --- a/model/types/hk_table.anubis +++ b/model/types/hk_table.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:19 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_text_choice.anubis b/model/types/hk_text_choice.anubis index 10abdee..48cab1c 100644 --- a/model/types/hk_text_choice.anubis +++ b/model/types/hk_text_choice.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_text_choices.anubis b/model/types/hk_text_choices.anubis index 85e9c48..a9b6e10 100644 --- a/model/types/hk_text_choices.anubis +++ b/model/types/hk_text_choices.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/model/types/hk_text_field_attr.anubis b/model/types/hk_text_field_attr.anubis index 6e15b3b..80fcd87 100644 --- a/model/types/hk_text_field_attr.anubis +++ b/model/types/hk_text_field_attr.anubis @@ -1,8 +1,8 @@ /* * Created by 伝作 (Densaku). * Types & Messages generator written by フランスのトトロ aka (David RENÉ) - * Date: 2017-03-15 - * Time: 02:24:20 + * Date: 2017-03-18 + * Time: 23:38:31 * */ diff --git a/view/view_table_types.anubis b/view/view_table_types.anubis index 4961cdb..a721cf2 100644 --- a/view/view_table_types.anubis +++ b/view/view_table_types.anubis @@ -39,9 +39,15 @@ public define VT_edit_entry float(String s_name, String c_name, Float value) public define VT_edit_entry information(String s_name, String c_name, String v_name, HK_Help_Text help) = information(s_name, c_name, v_name, 0, help). -public type VT_edit: - vt_edit(String table_name, String view_name, List(VT_edit_entry) list). +public type HK_V_Edit_Tab: + hk_v_edit_tab(String fk_table_name, String fk_col_name, String list_view_name) +. +public type VT_edit: + vt_edit(String table_name, String view_name, List(VT_edit_entry) list, List(HK_V_Edit_Tab) tabs). + + + public type VT_view_entry: text(String text), link(String id, String text), -- libgit2 0.21.4