Commit 67c5bd4f06360a42e3ca3febf3af9537433e7bd2

Authored by David RENÉ
1 parent 70c351d3

switch from calexium_lib to xlib

make the first hayamiki web controller outside from application (i.e. Ptah ERP)
hayamiki_lib @ 6f2ce5226c5
1   -Subproject commit 11c07a531623555ac1eee039056f25e7edfc7d5f
  1 +Subproject commit 6f2ce5226c55ba46912b382727abd5ef749457cd
... ...
hayamiki_web_controller.aproj 0 → 100644
  1 +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  2 + <PropertyGroup>
  3 + <ProjectGuid>{90372B21-80FA-4EB8-B17C-072EB55713D7}</ProjectGuid>
  4 + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  5 + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
  6 + <OutputType>Exe</OutputType>
  7 + <RootNamespace>model_manager</RootNamespace>
  8 + <AssemblyName>hayamiki web controller</AssemblyName>
  9 + <StartupObject>src\web_controller\hayamiki_plugin.anubis</StartupObject>
  10 + <IncludePaths>./%3b./src%3b./src/web_controller</IncludePaths>
  11 + <MakeUsedFile>False</MakeUsedFile>
  12 + <MakeUnusedFile>False</MakeUnusedFile>
  13 + <AnubiscVerbosity>False</AnubiscVerbosity>
  14 + <AnubisPath>C:\Program Files (x86)\Anubis\1.14\</AnubisPath>
  15 + </PropertyGroup>
  16 + <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
  17 + <OutputPath>bin\Debug\</OutputPath>
  18 + <DebugSymbols>True</DebugSymbols>
  19 + <DebugType>Full</DebugType>
  20 + <Optimize>False</Optimize>
  21 + </PropertyGroup>
  22 + <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
  23 + <OutputPath>bin\Release\</OutputPath>
  24 + <DebugSymbols>False</DebugSymbols>
  25 + <DebugType>None</DebugType>
  26 + <Optimize>True</Optimize>
  27 + </PropertyGroup>
  28 + <Import Project="$(AnubisBinPath)\Anubis.Build.targets" />
  29 + <ItemGroup>
  30 + <Compile Include="hayamiki_lib\controller\hk_controller.anubis" />
  31 + <Compile Include="hayamiki_lib\controller\hk_delete.anubis" />
  32 + <Compile Include="hayamiki_lib\controller\hk_rows_import.anubis" />
  33 + <Compile Include="hayamiki_lib\controller\hk_sql_utils.anubis" />
  34 + <Compile Include="hayamiki_lib\controller\hk_trigger.anubis" />
  35 + <Compile Include="hayamiki_lib\ds_files\ds_types.anubis" />
  36 + <Compile Include="hayamiki_lib\hk_generator.anubis" />
  37 + <Compile Include="hayamiki_lib\model\app.anubis" />
  38 + <Compile Include="hayamiki_lib\model\columns.anubis" />
  39 + <Compile Include="hayamiki_lib\model\database.anubis" />
  40 + <Compile Include="hayamiki_lib\model\display.anubis" />
  41 + <Compile Include="hayamiki_lib\model\fields.anubis" />
  42 + <Compile Include="hayamiki_lib\model\help.anubis" />
  43 + <Compile Include="hayamiki_lib\model\icons.anubis" />
  44 + <Compile Include="hayamiki_lib\model\model.anubis" />
  45 + <Compile Include="hayamiki_lib\model\tables.anubis" />
  46 + <Compile Include="hayamiki_lib\model\types\hk_app.anubis" />
  47 + <Compile Include="hayamiki_lib\model\types\hk_app_name.anubis" />
  48 + <Compile Include="hayamiki_lib\model\types\hk_constraint.anubis" />
  49 + <Compile Include="hayamiki_lib\model\types\hk_database.anubis" />
  50 + <Compile Include="hayamiki_lib\model\types\hk_datetime_field_attr.anubis" />
  51 + <Compile Include="hayamiki_lib\model\types\hk_foreign_key_active_filter.anubis" />
  52 + <Compile Include="hayamiki_lib\model\types\hk_foreign_key_clause.anubis" />
  53 + <Compile Include="hayamiki_lib\model\types\hk_foreign_key_clause_on_directive.anubis" />
  54 + <Compile Include="hayamiki_lib\model\types\hk_help_text.anubis" />
  55 + <Compile Include="hayamiki_lib\model\types\hk_icon.anubis" />
  56 + <Compile Include="hayamiki_lib\model\types\hk_int_choice.anubis" />
  57 + <Compile Include="hayamiki_lib\model\types\hk_int_choices.anubis" />
  58 + <Compile Include="hayamiki_lib\model\types\hk_model.anubis" />
  59 + <Compile Include="hayamiki_lib\model\types\hk_model_attr.anubis" />
  60 + <Compile Include="hayamiki_lib\model\types\hk_model_column.anubis" />
  61 + <Compile Include="hayamiki_lib\model\types\hk_model_field.anubis" />
  62 + <Compile Include="hayamiki_lib\model\types\hk_on_conflict.anubis" />
  63 + <Compile Include="hayamiki_lib\model\types\hk_phone_field_attr.anubis" />
  64 + <Compile Include="hayamiki_lib\model\types\hk_table.anubis" />
  65 + <Compile Include="hayamiki_lib\model\types\hk_text_choice.anubis" />
  66 + <Compile Include="hayamiki_lib\model\types\hk_text_choices.anubis" />
  67 + <Compile Include="hayamiki_lib\model\types\hk_text_field_attr.anubis" />
  68 + <Compile Include="hayamiki_lib\model\utils.anubis" />
  69 + <Compile Include="hayamiki_lib\types\hayamiki.anubis" />
  70 + <Compile Include="hayamiki_lib\view\hk_filter.anubis" />
  71 + <Compile Include="hayamiki_lib\view\jqgrid.anubis" />
  72 + <Compile Include="hayamiki_lib\view\load_vtm.anubis" />
  73 + <Compile Include="hayamiki_lib\view\view_apps_renderer.anubis" />
  74 + <Compile Include="hayamiki_lib\view\view_editor_renderer.anubis" />
  75 + <Compile Include="hayamiki_lib\view\view_rows_import.anubis" />
  76 + <Compile Include="hayamiki_lib\view\view_table_manager.anubis" />
  77 + <Compile Include="hayamiki_lib\view\view_table_manager_types.anubis" />
  78 + <Compile Include="hayamiki_lib\view\view_table_renderer.anubis" />
  79 + <Compile Include="hayamiki_lib\view\web_action.anubis" />
  80 + <Compile Include="library\a2a\C\formater.anubis" />
  81 + <Compile Include="library\a2a\example.anubis" />
  82 + <Compile Include="library\a2a\generic\preformater.anubis" />
  83 + <Compile Include="library\charset\charset_decoder.anubis" />
  84 + <Compile Include="library\charset\iso2022_jp_decoder.anubis" />
  85 + <Compile Include="library\cipher\base64.anubis" />
  86 + <Compile Include="library\compile_everything.anubis" />
  87 + <Compile Include="library\compil_all.anubis" />
  88 + <Compile Include="library\compil_all_beta.anubis" />
  89 + <Compile Include="library\converters\_1_7_to_1_8.anubis" />
  90 + <Compile Include="library\data_base\alter_table.anubis" />
  91 + <Compile Include="library\data_base\db_tools.anubis" />
  92 + <Compile Include="library\data_base\db_types.anubis" />
  93 + <Compile Include="library\data_base\import_csv.anubis" />
  94 + <Compile Include="library\data_base\metaSQL.anubis" />
  95 + <Compile Include="library\data_base\metaSQL_example_database.anubis" />
  96 + <Compile Include="library\data_base\metaSQL_example_output.anubis" />
  97 + <Compile Include="library\data_base\metaSQL_example_queries.anubis" />
  98 + <Compile Include="library\data_base\metaSQL_Postgres.anubis" />
  99 + <Compile Include="library\data_base\metaSQL_test.anubis" />
  100 + <Compile Include="library\data_base\metaSQL_web.anubis" />
  101 + <Compile Include="library\data_base\mysql_client.anubis" />
  102 + <Compile Include="library\data_base\postgres_client.anubis" />
  103 + <Compile Include="library\data_base\postgres_graphic_interface.anubis" />
  104 + <Compile Include="library\data_base\read_csv.anubis" />
  105 + <Compile Include="library\data_base\read_csv_org.anubis" />
  106 + <Compile Include="library\data_base\read_csv_table.anubis" />
  107 + <Compile Include="library\data_base\sdbms.anubis" />
  108 + <Compile Include="library\data_base\sdbms1.anubis" />
  109 + <Compile Include="library\data_base\sdbms3.anubis" />
  110 + <Compile Include="library\data_base\sdbms4.anubis" />
  111 + <Compile Include="library\data_base\sqlite.anubis" />
  112 + <Compile Include="library\data_base\sqlite_foreign_key.anubis" />
  113 + <Compile Include="library\data_base\theory.anubis" />
  114 + <Compile Include="library\doc_tools\latex.anubis" />
  115 + <Compile Include="library\doc_tools\make_doc.anubis" />
  116 + <Compile Include="library\doc_tools\maml.anubis" />
  117 + <Compile Include="library\doc_tools\maml3.anubis" />
  118 + <Compile Include="library\examples\args.anubis" />
  119 + <Compile Include="library\examples\conditional_examples.anubis" />
  120 + <Compile Include="library\examples\cryptography\md5.anubis" />
  121 + <Compile Include="library\examples\cryptography\sha1.anubis" />
  122 + <Compile Include="library\examples\fibonacci.anubis" />
  123 + <Compile Include="library\examples\file_manager_example.anubis" />
  124 + <Compile Include="library\examples\full_ls.anubis" />
  125 + <Compile Include="library\examples\graphism\diaporama.anubis" />
  126 + <Compile Include="library\examples\graphism\paint.anubis" />
  127 + <Compile Include="library\examples\graphism\paint2.anubis" />
  128 + <Compile Include="library\examples\graphism\show_image.anubis" />
  129 + <Compile Include="library\examples\graphism\try_window.anubis" />
  130 + <Compile Include="library\examples\hello.anubis" />
  131 + <Compile Include="library\examples\kbd.anubis" />
  132 + <Compile Include="library\examples\lexical_analysis\href_extractor.anubis" />
  133 + <Compile Include="library\examples\logic\church_integers.anubis" />
  134 + <Compile Include="library\examples\logic\peano.anubis" />
  135 + <Compile Include="library\examples\ls.anubis" />
  136 + <Compile Include="library\examples\mathematics\fact.anubis" />
  137 + <Compile Include="library\examples\mathematics\mandelbrot_set.anubis" />
  138 + <Compile Include="library\examples\mathematics\mandelbrot_set_old.anubis" />
  139 + <Compile Include="library\examples\mathematics\runge_kutta\runge_kutta.anubis" />
  140 + <Compile Include="library\examples\mathematics\syracuse.anubis" />
  141 + <Compile Include="library\examples\merge_list.anubis" />
  142 + <Compile Include="library\examples\mkdir_test.anubis" />
  143 + <Compile Include="library\examples\network\client_browser_info.anubis" />
  144 + <Compile Include="library\examples\network\client_server.anubis" />
  145 + <Compile Include="library\examples\network\minimal_web_site.anubis" />
  146 + <Compile Include="library\examples\network\muscle_echo.anubis" />
  147 + <Compile Include="library\examples\network\port_scan.anubis" />
  148 + <Compile Include="library\examples\network\sntp_client.anubis" />
  149 + <Compile Include="library\examples\network\sokoban.anubis" />
  150 + <Compile Include="library\examples\network\try_dns.anubis" />
  151 + <Compile Include="library\examples\network\udp_client_server.anubis" />
  152 + <Compile Include="library\examples\network\upload.anubis" />
  153 + <Compile Include="library\examples\playing_with_functions.anubis" />
  154 + <Compile Include="library\examples\read_line_example.anubis" />
  155 + <Compile Include="library\examples\restart.anubis" />
  156 + <Compile Include="library\examples\saturate_example.anubis" />
  157 + <Compile Include="library\examples\system\load_adm.anubis" />
  158 + <Compile Include="library\examples\test.anubis" />
  159 + <Compile Include="library\examples\test_web_site.anubis" />
  160 + <Compile Include="library\examples\try_now.anubis" />
  161 + <Compile Include="library\examples\try_protect.anubis" />
  162 + <Compile Include="library\examples\watt.anubis" />
  163 + <Compile Include="library\examples\_99_bottles_of_beer.anubis" />
  164 + <Compile Include="library\graphism\charts.anubis" />
  165 + <Compile Include="library\graphism\float_int32.anubis" />
  166 + <Compile Include="library\graphism\font_tools.anubis" />
  167 + <Compile Include="library\graphism\geometrical_figures.anubis" />
  168 + <Compile Include="library\graphism\gif.anubis" />
  169 + <Compile Include="library\graphism\image_tools.anubis" />
  170 + <Compile Include="library\graphism\jpeg.anubis" />
  171 + <Compile Include="library\graphism\jpeg_size.anubis" />
  172 + <Compile Include="library\graphism\lzw_gif.anubis" />
  173 + <Compile Include="library\graphism\png_size.anubis" />
  174 + <Compile Include="library\graphism\test_charts.anubis" />
  175 + <Compile Include="library\graphism\test_gfigures.anubis" />
  176 + <Compile Include="library\install_released_files.anubis" />
  177 + <Compile Include="library\lexical_analysis\compile_time_test.anubis" />
  178 + <Compile Include="library\lexical_analysis\fast_lexer.anubis" />
  179 + <Compile Include="library\lexical_analysis\fast_lexer_2.anubis" />
  180 + <Compile Include="library\lexical_analysis\fast_lexer_3.anubis" />
  181 + <Compile Include="library\lexical_analysis\fast_lexer_4.anubis" />
  182 + <Compile Include="library\lexical_analysis\fast_lexer_example_1.anubis" />
  183 + <Compile Include="library\lexical_analysis\fast_lexer_example_2.anubis" />
  184 + <Compile Include="library\lexical_analysis\lexer_maker_v2.anubis" />
  185 + <Compile Include="library\lexical_analysis\testing_fast_lexer.anubis" />
  186 + <Compile Include="library\lexical_analysis\xml.anubis" />
  187 + <Compile Include="library\locale\iso3166-1.anubis" />
  188 + <Compile Include="library\locale\L3.anubis" />
  189 + <Compile Include="library\locale\L3LanguageInfo.anubis" />
  190 + <Compile Include="library\mail\send_mail.anubis" />
  191 + <Compile Include="library\mail\smtp_server.anubis" />
  192 + <Compile Include="library\make_distribution_library.anubis" />
  193 + <Compile Include="library\mycompile_everything.anubis" />
  194 + <Compile Include="library\network\dns.anubis" />
  195 + <Compile Include="library\network\dns_tools.anubis" />
  196 + <Compile Include="library\network\remote_files_manager_common.anubis" />
  197 + <Compile Include="library\network\sntp.anubis" />
  198 + <Compile Include="library\network\tools.anubis" />
  199 + <Compile Include="library\official_library.anubis" />
  200 + <Compile Include="library\predefined.anubis" />
  201 + <Compile Include="library\syntactic_analysis\anubis_output.anubis" />
  202 + <Compile Include="library\syntactic_analysis\common.anubis" />
  203 + <Compile Include="library\syntactic_analysis\make_automaton.anubis" />
  204 + <Compile Include="library\syntactic_analysis\parser_generator.anubis" />
  205 + <Compile Include="library\syntactic_analysis\read_grammar.anubis" />
  206 + <Compile Include="library\syntactic_analysis\yacc_version.anubis" />
  207 + <Compile Include="library\system\bytearray.anubis" />
  208 + <Compile Include="library\system\convert.anubis" />
  209 + <Compile Include="library\system\data_io.anubis" />
  210 + <Compile Include="library\system\datetime.anubis" />
  211 + <Compile Include="library\system\files.anubis" />
  212 + <Compile Include="library\system\lists.anubis" />
  213 + <Compile Include="library\system\logger.anubis" />
  214 + <Compile Include="library\system\message_queue.anubis" />
  215 + <Compile Include="library\system\message_transceiver.anubis" />
  216 + <Compile Include="library\system\muscle.anubis" />
  217 + <Compile Include="library\system\parameter\inifile.anubis" />
  218 + <Compile Include="library\system\string.anubis" />
  219 + <Compile Include="library\system\test_logger.anubis" />
  220 + <Compile Include="library\system\types.anubis" />
  221 + <Compile Include="library\system_colors\hsl.anubis" />
  222 + <Compile Include="library\system_colors\hsv.anubis" />
  223 + <Compile Include="library\system_colors\rgb.anubis" />
  224 + <Compile Include="library\system_colors\system_colors.anubis" />
  225 + <Compile Include="library\system_fonts\draw_font.anubis" />
  226 + <Compile Include="library\system_fonts\font_table.anubis" />
  227 + <Compile Include="library\test\all_unit_test.anubis" />
  228 + <Compile Include="library\test\cp_test.anubis" />
  229 + <Compile Include="library\test\execute_capture.anubis" />
  230 + <Compile Include="library\test\inifile_test.anubis" />
  231 + <Compile Include="library\test\lexical_analysis\fast_lexer.ut.anubis" />
  232 + <Compile Include="library\test\lexical_analysis\low_level_fast_lexer_test.anubis" />
  233 + <Compile Include="library\test\locale_test.anubis" />
  234 + <Compile Include="library\test\Logger_test.anubis" />
  235 + <Compile Include="library\test\predefined\ByteArray.ut.anubis" />
  236 + <Compile Include="library\test\predefined\date_and_time.unit_test.anubis" />
  237 + <Compile Include="library\test\predefined\dbapi.unit_test.anubis" />
  238 + <Compile Include="library\test\predefined\decimal_scan.unit_test.anubis" />
  239 + <Compile Include="library\test\predefined\fast_lexer.unit_test.anubis" />
  240 + <Compile Include="library\test\predefined\file.ut.anubis" />
  241 + <Compile Include="library\test\predefined\Int.unit_test.anubis" />
  242 + <Compile Include="library\test\predefined\sqlite.obsolete.unit_test.anubis" />
  243 + <Compile Include="library\test\predefined\sqlite.unit_test.anubis" />
  244 + <Compile Include="library\test\serialize_test.anubis" />
  245 + <Compile Include="library\test\sqlite3_test.anubis" />
  246 + <Compile Include="library\test\SSLTest.anubis" />
  247 + <Compile Include="library\test\system\convert.unit_test.anubis" />
  248 + <Compile Include="library\test\system\files.unit_test.anubis" />
  249 + <Compile Include="library\test\system\Int.unit_test.anubis" />
  250 + <Compile Include="library\test\system\message_queue.unit_test.anubis" />
  251 + <Compile Include="library\test\system\message_transceiver.unit_test.anubis" />
  252 + <Compile Include="library\test\system\string.unit_test.anubis" />
  253 + <Compile Include="library\test\system\wordXX.unit_test.anubis" />
  254 + <Compile Include="library\test\TestItem.anubis" />
  255 + <Compile Include="library\test\tools\line_reader.ut.anubis" />
  256 + <Compile Include="library\test\tools\utf-8.unit_test.anubis" />
  257 + <Compile Include="library\test\vm_test.anubis" />
  258 + <Compile Include="library\tools\2-4tree.anubis" />
  259 + <Compile Include="library\tools\admloader_test.anubis" />
  260 + <Compile Include="library\tools\adm_autoreload.anubis" />
  261 + <Compile Include="library\tools\adm_autoreload_tools.anubis" />
  262 + <Compile Include="library\tools\avltrees.anubis" />
  263 + <Compile Include="library\tools\base64.anubis" />
  264 + <Compile Include="library\tools\basis.anubis" />
  265 + <Compile Include="library\tools\bool.anubis" />
  266 + <Compile Include="library\tools\btree1.anubis" />
  267 + <Compile Include="library\tools\buffered_connection.anubis" />
  268 + <Compile Include="library\tools\bytearray.anubis" />
  269 + <Compile Include="library\tools\cmd_line.anubis" />
  270 + <Compile Include="library\tools\connections.anubis" />
  271 + <Compile Include="library\tools\delegate_writer.anubis" />
  272 + <Compile Include="library\tools\dictionaries.anubis" />
  273 + <Compile Include="library\tools\dump_file.anubis" />
  274 + <Compile Include="library\tools\explore_disk.anubis" />
  275 + <Compile Include="library\tools\file_and_dir.anubis" />
  276 + <Compile Include="library\tools\findstring.anubis" />
  277 + <Compile Include="library\tools\find_and_replace.anubis" />
  278 + <Compile Include="library\tools\find_and_replace_simulator.anubis" />
  279 + <Compile Include="library\tools\finger_trees.anubis" />
  280 + <Compile Include="library\tools\float.anubis" />
  281 + <Compile Include="library\tools\function.anubis" />
  282 + <Compile Include="library\tools\graphic.anubis" />
  283 + <Compile Include="library\tools\graphviz.anubis" />
  284 + <Compile Include="library\tools\hashtable.anubis" />
  285 + <Compile Include="library\tools\int.anubis" />
  286 + <Compile Include="library\tools\ip_address.anubis" />
  287 + <Compile Include="library\tools\ISO-8601.anubis" />
  288 + <Compile Include="library\tools\iterators.anubis" />
  289 + <Compile Include="library\tools\latex.anubis" />
  290 + <Compile Include="library\tools\line_reader.anubis" />
  291 + <Compile Include="library\tools\list.anubis" />
  292 + <Compile Include="library\tools\maml.anubis" />
  293 + <Compile Include="library\tools\maybefloat.anubis" />
  294 + <Compile Include="library\tools\printable_tree.anubis" />
  295 + <Compile Include="library\tools\prompt.anubis" />
  296 + <Compile Include="library\tools\random.anubis" />
  297 + <Compile Include="library\tools\rationals.anubis" />
  298 + <Compile Include="library\tools\read_table.anubis" />
  299 + <Compile Include="library\tools\safe_save_retrieve.anubis" />
  300 + <Compile Include="library\tools\saturate.anubis" />
  301 + <Compile Include="library\tools\schedul_task.anubis" />
  302 + <Compile Include="library\tools\sdbms.anubis" />
  303 + <Compile Include="library\tools\sdbms1.anubis" />
  304 + <Compile Include="library\tools\sdbms2.anubis" />
  305 + <Compile Include="library\tools\sorting.anubis" />
  306 + <Compile Include="library\tools\streams.anubis" />
  307 + <Compile Include="library\tools\string.anubis" />
  308 + <Compile Include="library\tools\tables.anubis" />
  309 + <Compile Include="library\tools\time.anubis" />
  310 + <Compile Include="library\tools\tools.anubis" />
  311 + <Compile Include="library\tools\unit_test.anubis" />
  312 + <Compile Include="library\tools\useful_types.anubis" />
  313 + <Compile Include="library\tools\utf-8.anubis" />
  314 + <Compile Include="library\tools\words.anubis" />
  315 + <Compile Include="library\version2\diaconescu.anubis" />
  316 + <Compile Include="library\vm\vm_dump.anubis" />
  317 + <Compile Include="library\vm_test.anubis" />
  318 + <Compile Include="library\web\calculatrice.anubis" />
  319 + <Compile Include="library\web\common.anubis" />
  320 + <Compile Include="library\web\cookies.anubis" />
  321 + <Compile Include="library\web\counter.anubis" />
  322 + <Compile Include="library\web\default_web_site.anubis" />
  323 + <Compile Include="library\web\dynamic_http_server.anubis" />
  324 + <Compile Include="library\web\file_manager.anubis" />
  325 + <Compile Include="library\web\generic_form.anubis" />
  326 + <Compile Include="library\web\generic_login.anubis" />
  327 + <Compile Include="library\web\generic_table.anubis" />
  328 + <Compile Include="library\web\html.anubis" />
  329 + <Compile Include="library\web\https_get.anubis" />
  330 + <Compile Include="library\web\http_get.anubis" />
  331 + <Compile Include="library\web\http_get_common.anubis" />
  332 + <Compile Include="library\web\http_trace.anubis" />
  333 + <Compile Include="library\web\kernel.anubis" />
  334 + <Compile Include="library\web\making_a_web_site.anubis" />
  335 + <Compile Include="library\web\making_forms.anubis" />
  336 + <Compile Include="library\web\mime.anubis" />
  337 + <Compile Include="library\web\modules.anubis" />
  338 + <Compile Include="library\web\multihost_http_server.anubis" />
  339 + <Compile Include="library\web\read_html.anubis" />
  340 + <Compile Include="library\web\secure_action.anubis" />
  341 + <Compile Include="library\web\service_machine.anubis" />
  342 + <Compile Include="library\web\site_test.anubis" />
  343 + <Compile Include="library\web\sokoban.anubis" />
  344 + <Compile Include="library\web\torture_server.anubis" />
  345 + <Compile Include="library\web\web_arg_encode.anubis" />
  346 + <Compile Include="library\widgets3\5_ht.anubis" />
  347 + <Compile Include="library\widgets3\box.anubis" />
  348 + <Compile Include="library\widgets3\bubble.anubis" />
  349 + <Compile Include="library\widgets3\button.anubis" />
  350 + <Compile Include="library\widgets3\characters_example.anubis" />
  351 + <Compile Include="library\widgets3\check_box.anubis" />
  352 + <Compile Include="library\widgets3\colors.anubis" />
  353 + <Compile Include="library\widgets3\desktop.anubis" />
  354 + <Compile Include="library\widgets3\desktop_example.anubis" />
  355 + <Compile Include="library\widgets3\drag_and_drop.anubis" />
  356 + <Compile Include="library\widgets3\generic_editor.anubis" />
  357 + <Compile Include="library\widgets3\generic_editor_example.anubis" />
  358 + <Compile Include="library\widgets3\host_window.anubis" />
  359 + <Compile Include="library\widgets3\hypertext.anubis" />
  360 + <Compile Include="library\widgets3\image.anubis" />
  361 + <Compile Include="library\widgets3\input.anubis" />
  362 + <Compile Include="library\widgets3\map_list.anubis" />
  363 + <Compile Include="library\widgets3\menus.anubis" />
  364 + <Compile Include="library\widgets3\menu_manager.anubis" />
  365 + <Compile Include="library\widgets3\o_essai.anubis" />
  366 + <Compile Include="library\widgets3\o_hypertext.anubis" />
  367 + <Compile Include="library\widgets3\resizer.anubis" />
  368 + <Compile Include="library\widgets3\scrollbar.anubis" />
  369 + <Compile Include="library\widgets3\simple_example.anubis" />
  370 + <Compile Include="library\widgets3\simple_window.anubis" />
  371 + <Compile Include="library\widgets3\space.anubis" />
  372 + <Compile Include="library\widgets3\table.anubis" />
  373 + <Compile Include="library\widgets3\table_example.anubis" />
  374 + <Compile Include="library\widgets3\text.anubis" />
  375 + <Compile Include="library\widgets3\tickets_holder.anubis" />
  376 + <Compile Include="library\widgets3\tools.anubis" />
  377 + <Compile Include="library\widgets3\trace.anubis" />
  378 + <Compile Include="library\widgets3\tree_editor.anubis" />
  379 + <Compile Include="library\widgets3\tree_editor_test.anubis" />
  380 + <Compile Include="library\widgets3\try_ht.anubis" />
  381 + <Compile Include="library\widgets3\ubiquity.anubis" />
  382 + <Compile Include="library\widgets3\variable.anubis" />
  383 + <Compile Include="library\widgets3\widget.anubis" />
  384 + <Compile Include="library\widgets3\window.anubis" />
  385 + <Compile Include="library\widgets4\background.anubis" />
  386 + <Compile Include="library\widgets4\box.anubis" />
  387 + <Compile Include="library\widgets4\bubble_manager.anubis" />
  388 + <Compile Include="library\widgets4\bubble_manager_test.anubis" />
  389 + <Compile Include="library\widgets4\button.anubis" />
  390 + <Compile Include="library\widgets4\check_box.anubis" />
  391 + <Compile Include="library\widgets4\desktop.anubis" />
  392 + <Compile Include="library\widgets4\desktop_example.anubis" />
  393 + <Compile Include="library\widgets4\detect_event.anubis" />
  394 + <Compile Include="library\widgets4\host_window.anubis" />
  395 + <Compile Include="library\widgets4\hypertext.anubis" />
  396 + <Compile Include="library\widgets4\hypertext_test.anubis" />
  397 + <Compile Include="library\widgets4\image.anubis" />
  398 + <Compile Include="library\widgets4\make_tartan_files.anubis" />
  399 + <Compile Include="library\widgets4\menus.anubis" />
  400 + <Compile Include="library\widgets4\menu_manager.anubis" />
  401 + <Compile Include="library\widgets4\menu_manager_test.anubis" />
  402 + <Compile Include="library\widgets4\mouse_tracker.anubis" />
  403 + <Compile Include="library\widgets4\radio_button.anubis" />
  404 + <Compile Include="library\widgets4\radio_buttons_test.anubis" />
  405 + <Compile Include="library\widgets4\resizer.anubis" />
  406 + <Compile Include="library\widgets4\scrollbar.anubis" />
  407 + <Compile Include="library\widgets4\simple_window.anubis" />
  408 + <Compile Include="library\widgets4\space.anubis" />
  409 + <Compile Include="library\widgets4\table.anubis" />
  410 + <Compile Include="library\widgets4\tartan_generator.anubis" />
  411 + <Compile Include="library\widgets4\tartan_generator_demo.anubis" />
  412 + <Compile Include="library\widgets4\tests.anubis" />
  413 + <Compile Include="library\widgets4\text.anubis" />
  414 + <Compile Include="library\widgets4\text_input.anubis" />
  415 + <Compile Include="library\widgets4\text_input_test.anubis" />
  416 + <Compile Include="library\widgets4\ticket_keeper.anubis" />
  417 + <Compile Include="library\widgets4\tools.anubis" />
  418 + <Compile Include="library\widgets4\trace.anubis" />
  419 + <Compile Include="library\widgets4\tree_editor.anubis" />
  420 + <Compile Include="library\widgets4\tree_editor_test.anubis" />
  421 + <Compile Include="library\widgets4\tree_node.anubis" />
  422 + <Compile Include="library\widgets4\variable_widget.anubis" />
  423 + <Compile Include="library\widgets4\widget.anubis" />
  424 + <Compile Include="library\widgets4\widget_demo.anubis" />
  425 + <Compile Include="library\widgets4\widget_test.anubis" />
  426 + <Compile Include="library\widgets4\window.anubis" />
  427 + <Compile Include="library\widgets4\window_test.anubis" />
  428 + <Compile Include="library\xml\basic_xml_parser.anubis" />
  429 + <Compile Include="library\xml\xml_parser.apg.anubis" />
  430 + <Compile Include="src\app\app_loggers.anubis" />
  431 + <Compile Include="src\check.anubis" />
  432 + <Compile Include="src\generation\choices_selector.anubis" />
  433 + <Compile Include="src\generation\columns.anubis" />
  434 + <Compile Include="src\generation\create_table.anubis" />
  435 + <Compile Include="src\generation\cxm_lib_menu.anubis" />
  436 + <Compile Include="src\generation\densaku.anubis" />
  437 + <Compile Include="src\generation\edit_view_list_form.anubis" />
  438 + <Compile Include="src\generation\edit_view_table_form.anubis" />
  439 + <Compile Include="src\generation\extractor.anubis" />
  440 + <Compile Include="src\generation\fields.anubis" />
  441 + <Compile Include="src\generation\files.anubis" />
  442 + <Compile Include="src\generation\fn_delete.anubis" />
  443 + <Compile Include="src\generation\header.anubis" />
  444 + <Compile Include="src\generation\hk_menu.anubis" />
  445 + <Compile Include="src\generation\html.anubis" />
  446 + <Compile Include="src\generation\icons.anubis" />
  447 + <Compile Include="src\generation\json.anubis" />
  448 + <Compile Include="src\generation\model.anubis" />
  449 + <Compile Include="src\generation\SQL_get_all.anubis" />
  450 + <Compile Include="src\generation\SQL_get_count.anubis" />
  451 + <Compile Include="src\generation\types.anubis" />
  452 + <Compile Include="src\generation\vt_edit.anubis" />
  453 + <Compile Include="src\generation\vt_view.anubis" />
  454 + <Compile Include="src\generation\web_args.anubis" />
  455 + <Compile Include="src\main.anubis" />
  456 + <Compile Include="src\model.3.0.0.anubis" />
  457 + <Compile Include="src\utils\utils.anubis" />
  458 + <Compile Include="src\web_controller\controller.anubis" />
  459 + <Compile Include="src\web_controller\hayamiki.anubis" />
  460 + <Compile Include="src\web_controller\hayamiki_plugin.anubis" />
  461 + <Compile Include="src\web_controller\hkc_files_management.anubis" />
  462 + <Compile Include="xlib\asterisk\ami.anubis" />
  463 + <Compile Include="xlib\asterisk\ami_commands.anubis" />
  464 + <Compile Include="xlib\asterisk\ami_types.anubis" />
  465 + <Compile Include="xlib\CXM_errors.anubis" />
  466 + <Compile Include="xlib\CXM_message_constants.anubis" />
  467 + <Compile Include="xlib\database\alter_table.anubis" />
  468 + <Compile Include="xlib\database\csv_import_status.anubis" />
  469 + <Compile Include="xlib\database\csv_tools.anubis" />
  470 + <Compile Include="xlib\database\db_binds.anubis" />
  471 + <Compile Include="xlib\database\db_get_helpers.anubis" />
  472 + <Compile Include="xlib\database\db_types.anubis" />
  473 + <Compile Include="xlib\database\db_update_fields.anubis" />
  474 + <Compile Include="xlib\database\db_utils.anubis" />
  475 + <Compile Include="xlib\database\db_version.anubis" />
  476 + <Compile Include="xlib\database\migration.anubis" />
  477 + <Compile Include="xlib\database\migration_common.anubis" />
  478 + <Compile Include="xlib\database\migration_common_sqlite3.anubis" />
  479 + <Compile Include="xlib\database\migration_sqlite3.anubis" />
  480 + <Compile Include="xlib\database\model\db_model.anubis" />
  481 + <Compile Include="xlib\database\settings.anubis" />
  482 + <Compile Include="xlib\database\settings_sqlite3.anubis" />
  483 + <Compile Include="xlib\database\sqlite_foreign_key.anubis" />
  484 + <Compile Include="xlib\database\types\db_date.anubis" />
  485 + <Compile Include="xlib\database\types\db_datetime.anubis" />
  486 + <Compile Include="xlib\database\types\db_id.anubis" />
  487 + <Compile Include="xlib\database\types\db_integer.anubis" />
  488 + <Compile Include="xlib\database\types\db_migration.anubis" />
  489 + <Compile Include="xlib\database\types\db_time.anubis" />
  490 + <Compile Include="xlib\densaku_types.anubis" />
  491 + <Compile Include="xlib\ds_files\ds_messages.anubis" />
  492 + <Compile Include="xlib\ds_files\ds_types.anubis" />
  493 + <Compile Include="xlib\extensions\json.anubis" />
  494 + <Compile Include="xlib\file_processor_io\yaml\yaml.anubis" />
  495 + <Compile Include="xlib\file_processor_io\yaml\yaml_parser.anubis" />
  496 + <Compile Include="xlib\file_processor_io\yaml\yaml_type.anubis" />
  497 + <Compile Include="xlib\generic\session.anubis" />
  498 + <Compile Include="xlib\generic\types\session.anubis" />
  499 + <Compile Include="xlib\mail\authentication.anubis" />
  500 + <Compile Include="xlib\mail\compose_email.anubis" />
  501 + <Compile Include="xlib\mail\decode_mail.anubis" />
  502 + <Compile Include="xlib\mail\encode_mail.anubis" />
  503 + <Compile Include="xlib\mail\lexers\enhanced_status.anubis" />
  504 + <Compile Include="xlib\mail\lexers\fqa.anubis" />
  505 + <Compile Include="xlib\mail\send_mail.anubis" />
  506 + <Compile Include="xlib\mail\send_mail_type.anubis" />
  507 + <Compile Include="xlib\mail\smtp_client.anubis" />
  508 + <Compile Include="xlib\mail\smtp_server_extensions.anubis" />
  509 + <Compile Include="xlib\mail\tools.anubis" />
  510 + <Compile Include="xlib\mail\types\generated\email_address.anubis" />
  511 + <Compile Include="xlib\mail\types\generated\email_to_send.anubis" />
  512 + <Compile Include="xlib\network\socket_pool.anubis" />
  513 + <Compile Include="xlib\net_services\CXM_generic_client.anubis" />
  514 + <Compile Include="xlib\net_services\CXM_generic_protocol.anubis" />
  515 + <Compile Include="xlib\net_services\CXM_net_services.anubis" />
  516 + <Compile Include="xlib\net_services\get_file.anubis" />
  517 + <Compile Include="xlib\net_services\send_file.anubis" />
  518 + <Compile Include="xlib\net_services_protocols\ftp_client.anubis" />
  519 + <Compile Include="xlib\net_services_protocols\logger_client.anubis" />
  520 + <Compile Include="xlib\net_services_protocols\logger_server.anubis" />
  521 + <Compile Include="xlib\net_services_protocols\logger_service_deprecated.anubis" />
  522 + <Compile Include="xlib\net_services_protocols\logger_test.anubis" />
  523 + <Compile Include="xlib\net_services_protocols\pkg_updater_protocol.anubis" />
  524 + <Compile Include="xlib\os_tools\freebsd\rc_conf.anubis" />
  525 + <Compile Include="xlib\os_tools\linux\config\network_interface_file.anubis" />
  526 + <Compile Include="xlib\string\crlf.anubis" />
  527 + <Compile Include="xlib\types\generated\file_ref.anubis" />
  528 + <Compile Include="xlib\types\version.anubis" />
  529 + <Compile Include="xlib\unit_test\test.anubis" />
  530 + <Compile Include="xlib\unit_test\xml_rpc.unit_test.anubis" />
  531 + <Compile Include="xlib\web\color\color.anubis" />
  532 + <Compile Include="xlib\web\controllers_web_site.anubis" />
  533 + <Compile Include="xlib\web\counter.anubis" />
  534 + <Compile Include="xlib\web\CXM_common.anubis" />
  535 + <Compile Include="xlib\web\CXM_cookies.anubis" />
  536 + <Compile Include="xlib\web\CXM_dojo.anubis" />
  537 + <Compile Include="xlib\web\CXM_dropzone.anubis" />
  538 + <Compile Include="xlib\web\CXM_form.anubis" />
  539 + <Compile Include="xlib\web\CXM_generic_form.anubis" />
  540 + <Compile Include="xlib\web\CXM_generic_login.anubis" />
  541 + <Compile Include="xlib\web\CXM_generic_table.anubis" />
  542 + <Compile Include="xlib\web\CXM_html_tooltip.anubis" />
  543 + <Compile Include="xlib\web\CXM_https_get.anubis" />
  544 + <Compile Include="xlib\web\CXM_http_get.anubis" />
  545 + <Compile Include="xlib\web\CXM_http_get_common.anubis" />
  546 + <Compile Include="xlib\web\CXM_jquery.anubis" />
  547 + <Compile Include="xlib\web\CXM_json.anubis" />
  548 + <Compile Include="xlib\web\CXM_making_a_web_site.anubis" />
  549 + <Compile Include="xlib\web\CXM_mime.anubis" />
  550 + <Compile Include="xlib\web\CXM_multihost_http_server.anubis" />
  551 + <Compile Include="xlib\web\CXM_page_message.anubis" />
  552 + <Compile Include="xlib\web\CXM_style_tools.anubis" />
  553 + <Compile Include="xlib\web\CXM_urllib.anubis" />
  554 + <Compile Include="xlib\web\CXM_web_action.anubis" />
  555 + <Compile Include="xlib\web\CXM_web_arg_encode.anubis" />
  556 + <Compile Include="xlib\web\CXM_web_arg_utils.anubis" />
  557 + <Compile Include="xlib\web\CXM_web_dump.anubis" />
  558 + <Compile Include="xlib\web\CXM_web_session.anubis" />
  559 + <Compile Include="xlib\web\CXM_widgets.anubis" />
  560 + <Compile Include="xlib\web\CXM_xml_rpc.anubis" />
  561 + <Compile Include="xlib\web\CXM_xml_rpc_parser.anubis" />
  562 + <Compile Include="xlib\web\CXM_xml_rpc_types.anubis" />
  563 + <Compile Include="xlib\web\fonts\awesome.anubis" />
  564 + <Compile Include="xlib\web\jQuery\CXM_jquery_animate.anubis" />
  565 + <Compile Include="xlib\web\jQuery\CXM_jquery_button.anubis" />
  566 + <Compile Include="xlib\web\jQuery\CXM_jquery_datatable.anubis" />
  567 + <Compile Include="xlib\web\jQuery\CXM_jquery_datatable_plugins.anubis" />
  568 + <Compile Include="xlib\web\jQuery\CXM_jquery_datatable_server_side.anubis" />
  569 + <Compile Include="xlib\web\jQuery\CXM_jquery_datatable_translation.anubis" />
  570 + <Compile Include="xlib\web\jQuery\CXM_jquery_datatable_types.anubis" />
  571 + <Compile Include="xlib\web\jQuery\CXM_jquery_dialog.anubis" />
  572 + <Compile Include="xlib\web\jQuery\CXM_jquery_easing.anubis" />
  573 + <Compile Include="xlib\web\jQuery\CXM_jquery_eudock.anubis" />
  574 + <Compile Include="xlib\web\jQuery\CXM_jquery_eudock_types.anubis" />
  575 + <Compile Include="xlib\web\jQuery\CXM_jquery_icons.anubis" />
  576 + <Compile Include="xlib\web\jQuery\CXM_jquery_jqplot.anubis" />
  577 + <Compile Include="xlib\web\jQuery\CXM_jquery_tabs.anubis" />
  578 + <Compile Include="xlib\web\jQuery\CXM_jquery_tiptip.anubis" />
  579 + <Compile Include="xlib\web\jQuery\CXM_jquery_toolbar.anubis" />
  580 + <Compile Include="xlib\web\jQuery\CXM_jq_checkbox.anubis" />
  581 + <Compile Include="xlib\web\jQuery\CXM_jq_form.anubis" />
  582 + <Compile Include="xlib\web\jQuery\CXM_jq_radio.anubis" />
  583 + <Compile Include="xlib\web\jQuery\jqgrid.anubis" />
  584 + <Compile Include="xlib\web\jQuery\jq_flot.anubis" />
  585 + <Compile Include="xlib\web\jQuery\ui-addon\datetimepicker.anubis" />
  586 + <Compile Include="xlib\web\js_tools.anubis" />
  587 + <Compile Include="xlib\web\load_content.anubis" />
  588 + <Compile Include="xlib\web\piwik\CXM_piwik.anubis" />
  589 + <Compile Include="xlib\web\plugin\plugin.anubis" />
  590 + <Compile Include="xlib\web\types\controllers_web_site.anubis" />
  591 + <Compile Include="xlib\web\types\making_a_web_site.anubis" />
  592 + <Compile Include="xlib\web\types\web_action_name.anubis" />
  593 + <Compile Include="xlib\web\types\web_session.anubis" />
  594 + <Compile Include="xlib\web\widgets\button.anubis" />
  595 + <Compile Include="xlib\web\widgets\css_helper.anubis" />
  596 + <Compile Include="xlib\web\widgets\dashboard.anubis" />
  597 + <Compile Include="xlib\web\widgets\fisheye_menu.anubis" />
  598 + <Compile Include="xlib\web\widgets\icon.anubis" />
  599 + <Compile Include="xlib\web\widgets\icons_set.anubis" />
  600 + <Compile Include="xlib\web\widgets\left_menu.anubis" />
  601 + <Compile Include="xlib\web\widgets\left_menu_html.anubis" />
  602 + <Compile Include="xlib\web\widgets\menu.anubis" />
  603 + <Compile Include="xlib\web\widgets\pager.anubis" />
  604 + <Compile Include="xlib\web\widgets\specialized_elements.anubis" />
  605 + <Compile Include="xlib\web_controllers\fs\fs_core.anubis" />
  606 + <Compile Include="xlib\web_controllers\language\language_management.anubis" />
  607 + <None Include="library\cipher\test_quick_base64.a2a" />
  608 + <None Include="library\compile_all.inproj" />
  609 + <None Include="library\doc_tools\cows.jpg" />
  610 + <None Include="library\doc_tools\fNScTnBA4MH-qH_w0pRfArXeeKE8.png" />
  611 + <None Include="library\doc_tools\fq22PnfBrYNx2fPr8NQyxy5tdO_A.png" />
  612 + <None Include="library\doc_tools\maml3_tutorial.html" />
  613 + <None Include="library\doc_tools\maml3_tutorial.maml" />
  614 + <None Include="library\doc_tools\maml3_tutorial.maml.html" />
  615 + <None Include="library\doc_tools\maml3_tutorial.maml.pdf" />
  616 + <None Include="library\doc_tools\maml3_tutorial.pdf" />
  617 + <None Include="library\doc_tools\tNScTnBA4MH-qH_w0pRfArXeeKE8.png" />
  618 + <None Include="library\examples\determinism.anubis.c" />
  619 + <None Include="library\examples\for_loop.anubis.c" />
  620 + <None Include="library\examples\graphism\image_samples\cows.jpg" />
  621 + <None Include="library\examples\graphism\image_samples\farm.jpg" />
  622 + <None Include="library\examples\graphism\image_samples\fingers.jpg" />
  623 + <None Include="library\examples\graphism\image_samples\flowers.jpg" />
  624 + <None Include="library\examples\graphism\image_samples\mountain.jpg" />
  625 + <None Include="library\examples\graphism\image_samples\torrent.jpg" />
  626 + <None Include="library\examples\mathematics\runge_kutta\runge_kutta.apg" />
  627 + <None Include="library\examples\network\public\bambou.gif" />
  628 + <None Include="library\examples\network\public\bleuc.gif" />
  629 + <None Include="library\examples\network\public\bleuccloud.gif" />
  630 + <None Include="library\examples\network\public\boule.gif" />
  631 + <None Include="library\examples\network\public\button_prev.gif" />
  632 + <None Include="library\examples\network\public\cloud.gif" />
  633 + <None Include="library\examples\network\public\gboule.gif" />
  634 + <None Include="library\examples\network\public\gtete.gif" />
  635 + <None Include="library\examples\network\public\noir25.gif" />
  636 + <None Include="library\examples\network\public\noir25cloud.gif" />
  637 + <None Include="library\examples\network\public\tete.gif" />
  638 + <None Include="library\examples\OOCounter.anubis.cpp" />
  639 + <None Include="library\graphism\image_samples\cows.jpg" />
  640 + <None Include="library\graphism\image_samples\farm.jpg" />
  641 + <None Include="library\graphism\image_samples\fingers.jpg" />
  642 + <None Include="library\graphism\image_samples\flowers.jpg" />
  643 + <None Include="library\graphism\image_samples\mountain.jpg" />
  644 + <None Include="library\graphism\image_samples\torrent.jpg" />
  645 + <None Include="library\install_released_files.bat" />
  646 + <None Include="library\install_test.bat" />
  647 + <None Include="library\lexical_analysis\lexer_maker_v2_example.lexer" />
  648 + <None Include="library\lexical_analysis\test.xml" />
  649 + <None Include="library\locale\ISO-639-1 and ISO-639-2.txt" />
  650 + <None Include="library\locale\ISO-639-2_values_8bits.txt" />
  651 + <None Include="library\syntactic_analysis\anubis_output.anubis.test" />
  652 + <None Include="library\syntactic_analysis\calculator_example.apg" />
  653 + <None Include="library\syntactic_analysis\README" />
  654 + <None Include="library\system_fonts\courier_bold_o_10.sf" />
  655 + <None Include="library\system_fonts\courier_bold_o_12.sf" />
  656 + <None Include="library\system_fonts\courier_bold_o_14.sf" />
  657 + <None Include="library\system_fonts\courier_bold_o_18.sf" />
  658 + <None Include="library\system_fonts\courier_bold_o_24.sf" />
  659 + <None Include="library\system_fonts\courier_bold_o_8.sf" />
  660 + <None Include="library\system_fonts\courier_bold_r_10.sf" />
  661 + <None Include="library\system_fonts\courier_bold_r_12.sf" />
  662 + <None Include="library\system_fonts\courier_bold_r_14.sf" />
  663 + <None Include="library\system_fonts\courier_bold_r_18.sf" />
  664 + <None Include="library\system_fonts\courier_bold_r_24.sf" />
  665 + <None Include="library\system_fonts\courier_bold_r_8.sf" />
  666 + <None Include="library\system_fonts\courier_medium_o_10.sf" />
  667 + <None Include="library\system_fonts\courier_medium_o_12.sf" />
  668 + <None Include="library\system_fonts\courier_medium_o_14.sf" />
  669 + <None Include="library\system_fonts\courier_medium_o_18.sf" />
  670 + <None Include="library\system_fonts\courier_medium_o_24.sf" />
  671 + <None Include="library\system_fonts\courier_medium_o_8.sf" />
  672 + <None Include="library\system_fonts\courier_medium_r_10.sf" />
  673 + <None Include="library\system_fonts\courier_medium_r_12.sf" />
  674 + <None Include="library\system_fonts\courier_medium_r_14.sf" />
  675 + <None Include="library\system_fonts\courier_medium_r_18.sf" />
  676 + <None Include="library\system_fonts\courier_medium_r_24.sf" />
  677 + <None Include="library\system_fonts\courier_medium_r_8.sf" />
  678 + <None Include="library\system_fonts\helvetica_bold_o_10.sf" />
  679 + <None Include="library\system_fonts\helvetica_bold_o_12.sf" />
  680 + <None Include="library\system_fonts\helvetica_bold_o_14.sf" />
  681 + <None Include="library\system_fonts\helvetica_bold_o_18.sf" />
  682 + <None Include="library\system_fonts\helvetica_bold_o_24.sf" />
  683 + <None Include="library\system_fonts\helvetica_bold_o_8.sf" />
  684 + <None Include="library\system_fonts\helvetica_bold_r_10.sf" />
  685 + <None Include="library\system_fonts\helvetica_bold_r_12.sf" />
  686 + <None Include="library\system_fonts\helvetica_bold_r_14.sf" />
  687 + <None Include="library\system_fonts\helvetica_bold_r_18.sf" />
  688 + <None Include="library\system_fonts\helvetica_bold_r_24.sf" />
  689 + <None Include="library\system_fonts\helvetica_bold_r_8.sf" />
  690 + <None Include="library\system_fonts\helvetica_medium_o_10.sf" />
  691 + <None Include="library\system_fonts\helvetica_medium_o_12.sf" />
  692 + <None Include="library\system_fonts\helvetica_medium_o_14.sf" />
  693 + <None Include="library\system_fonts\helvetica_medium_o_18.sf" />
  694 + <None Include="library\system_fonts\helvetica_medium_o_24.sf" />
  695 + <None Include="library\system_fonts\helvetica_medium_o_8.sf" />
  696 + <None Include="library\system_fonts\helvetica_medium_r_10.sf" />
  697 + <None Include="library\system_fonts\helvetica_medium_r_12.sf" />
  698 + <None Include="library\system_fonts\helvetica_medium_r_14.sf" />
  699 + <None Include="library\system_fonts\helvetica_medium_r_18.sf" />
  700 + <None Include="library\system_fonts\helvetica_medium_r_24.sf" />
  701 + <None Include="library\system_fonts\helvetica_medium_r_8.sf" />
  702 + <None Include="library\system_fonts\times_bold_i_10.sf" />
  703 + <None Include="library\system_fonts\times_bold_i_12.sf" />
  704 + <None Include="library\system_fonts\times_bold_i_14.sf" />
  705 + <None Include="library\system_fonts\times_bold_i_18.sf" />
  706 + <None Include="library\system_fonts\times_bold_i_24.sf" />
  707 + <None Include="library\system_fonts\times_bold_i_8.sf" />
  708 + <None Include="library\system_fonts\times_bold_r_10.sf" />
  709 + <None Include="library\system_fonts\times_bold_r_12.sf" />
  710 + <None Include="library\system_fonts\times_bold_r_14.sf" />
  711 + <None Include="library\system_fonts\times_bold_r_18.sf" />
  712 + <None Include="library\system_fonts\times_bold_r_24.sf" />
  713 + <None Include="library\system_fonts\times_bold_r_8.sf" />
  714 + <None Include="library\system_fonts\times_medium_i_10.sf" />
  715 + <None Include="library\system_fonts\times_medium_i_12.sf" />
  716 + <None Include="library\system_fonts\times_medium_i_14.sf" />
  717 + <None Include="library\system_fonts\times_medium_i_18.sf" />
  718 + <None Include="library\system_fonts\times_medium_i_24.sf" />
  719 + <None Include="library\system_fonts\times_medium_i_8.sf" />
  720 + <None Include="library\system_fonts\times_medium_r_10.sf" />
  721 + <None Include="library\system_fonts\times_medium_r_12.sf" />
  722 + <None Include="library\system_fonts\times_medium_r_14.sf" />
  723 + <None Include="library\system_fonts\times_medium_r_18.sf" />
  724 + <None Include="library\system_fonts\times_medium_r_24.sf" />
  725 + <None Include="library\system_fonts\times_medium_r_8.sf" />
  726 + <None Include="library\test\Anubis UnitTest.aproj" />
  727 + <None Include="library\test\Anubis UnitTest.ide" />
  728 + <None Include="library\test\duplicate_letters.c" />
  729 + <None Include="library\tools\maml.anubis.1" />
  730 + <None Include="library\tools\safe_save_retrieve.anubis_back" />
  731 + <None Include="library\web\spacer.gif" />
  732 + <None Include="library\widgets3\alienor.jpg" />
  733 + <None Include="library\widgets3\alienor_aquitaine.jpg" />
  734 + <None Include="library\widgets3\anubis.jpg" />
  735 + <None Include="library\widgets3\flowers.jpg" />
  736 + <None Include="library\widgets3\gisant_alienor.jpg" />
  737 + <None Include="library\widgets3\gisant_alienor2.jpg" />
  738 + <None Include="library\widgets3\henri_2.jpg" />
  739 + <None Include="library\widgets3\john_lackland.jpg" />
  740 + <None Include="library\widgets3\old_sarum.jpg" />
  741 + <None Include="library\widgets3\richard.jpg" />
  742 + <None Include="library\widgets4\images\bidon.jpg" />
  743 + <None Include="library\widgets4\images\checked.jpg" />
  744 + <None Include="library\widgets4\images\cows.jpg" />
  745 + <None Include="library\widgets4\images\farm.jpg" />
  746 + <None Include="library\widgets4\images\fingers.jpg" />
  747 + <None Include="library\widgets4\images\flowers.jpg" />
  748 + <None Include="library\widgets4\images\mountain.jpg" />
  749 + <None Include="library\widgets4\images\not_checked.jpg" />
  750 + <None Include="library\widgets4\images\torrent.jpg" />
  751 + <None Include="library\xml\xml_parser.apg" />
  752 + <None Include="xlib\.git" />
  753 + <None Include="xlib\.gitignore" />
  754 + <None Include="xlib\examples.ide" />
  755 + <None Include="xlib\minimal_web_site.aproj" />
  756 + <None Include="xlib\obj\unit_test.aproj.FileListAbsolute.txt" />
  757 + <None Include="xlib\unit_test.aproj" />
  758 + <None Include="xlib\unit_test.ide" />
  759 + <None Include="xlib\web\js\cxm_jquery_animate.js" />
  760 + </ItemGroup>
  761 + <ItemGroup>
  762 + <Folder Include="hayamiki_lib" />
  763 + <Folder Include="hayamiki_lib\controller" />
  764 + <Folder Include="hayamiki_lib\ds_files" />
  765 + <Folder Include="hayamiki_lib\model" />
  766 + <Folder Include="hayamiki_lib\model\types" />
  767 + <Folder Include="hayamiki_lib\types" />
  768 + <Folder Include="hayamiki_lib\view" />
  769 + <Folder Include="hayamiki_lib\view\types" />
  770 + <Folder Include="library" />
  771 + <Folder Include="library\a2a" />
  772 + <Folder Include="library\a2a\C" />
  773 + <Folder Include="library\a2a\generic" />
  774 + <Folder Include="library\charset" />
  775 + <Folder Include="library\cipher" />
  776 + <Folder Include="library\converters" />
  777 + <Folder Include="library\data_base" />
  778 + <Folder Include="library\doc_tools" />
  779 + <Folder Include="library\examples" />
  780 + <Folder Include="library\examples\cryptography" />
  781 + <Folder Include="library\examples\graphism" />
  782 + <Folder Include="library\examples\graphism\image_samples" />
  783 + <Folder Include="library\examples\lexical_analysis" />
  784 + <Folder Include="library\examples\logic" />
  785 + <Folder Include="library\examples\mathematics" />
  786 + <Folder Include="library\examples\mathematics\runge_kutta" />
  787 + <Folder Include="library\examples\network" />
  788 + <Folder Include="library\examples\network\public" />
  789 + <Folder Include="library\examples\system" />
  790 + <Folder Include="library\graphism" />
  791 + <Folder Include="library\graphism\image_samples" />
  792 + <Folder Include="library\lexical_analysis" />
  793 + <Folder Include="library\locale" />
  794 + <Folder Include="library\mail" />
  795 + <Folder Include="library\network" />
  796 + <Folder Include="library\syntactic_analysis" />
  797 + <Folder Include="library\system" />
  798 + <Folder Include="library\system\parameter" />
  799 + <Folder Include="library\system_colors" />
  800 + <Folder Include="library\system_fonts" />
  801 + <Folder Include="library\test" />
  802 + <Folder Include="library\test\lexical_analysis" />
  803 + <Folder Include="library\test\predefined" />
  804 + <Folder Include="library\test\system" />
  805 + <Folder Include="library\test\tools" />
  806 + <Folder Include="library\tools" />
  807 + <Folder Include="library\version2" />
  808 + <Folder Include="library\vm" />
  809 + <Folder Include="library\web" />
  810 + <Folder Include="library\widgets3" />
  811 + <Folder Include="library\widgets4" />
  812 + <Folder Include="library\widgets4\images" />
  813 + <Folder Include="library\xml" />
  814 + <Folder Include="src" />
  815 + <Folder Include="src\generation" />
  816 + <Folder Include="src\app" />
  817 + <Folder Include="src\utils" />
  818 + <Folder Include="src\web_controller" />
  819 + <Folder Include="xlib" />
  820 + <Folder Include="xlib\asterisk" />
  821 + <Folder Include="xlib\database" />
  822 + <Folder Include="xlib\database\model" />
  823 + <Folder Include="xlib\database\types" />
  824 + <Folder Include="xlib\ds_files" />
  825 + <Folder Include="xlib\extensions" />
  826 + <Folder Include="xlib\file_processor_io" />
  827 + <Folder Include="xlib\file_processor_io\yaml" />
  828 + <Folder Include="xlib\generic" />
  829 + <Folder Include="xlib\generic\types" />
  830 + <Folder Include="xlib\mail" />
  831 + <Folder Include="xlib\mail\lexers" />
  832 + <Folder Include="xlib\mail\types" />
  833 + <Folder Include="xlib\mail\types\generated" />
  834 + <Folder Include="xlib\network" />
  835 + <Folder Include="xlib\net_services" />
  836 + <Folder Include="xlib\net_services_protocols" />
  837 + <Folder Include="xlib\web_controllers" />
  838 + <Folder Include="xlib\obj" />
  839 + <Folder Include="xlib\os_tools" />
  840 + <Folder Include="xlib\os_tools\freebsd" />
  841 + <Folder Include="xlib\os_tools\linux" />
  842 + <Folder Include="xlib\os_tools\linux\config" />
  843 + <Folder Include="xlib\string" />
  844 + <Folder Include="xlib\types" />
  845 + <Folder Include="xlib\types\generated" />
  846 + <Folder Include="xlib\unit_test" />
  847 + <Folder Include="xlib\web" />
  848 + <Folder Include="xlib\web\color" />
  849 + <Folder Include="xlib\web\fonts" />
  850 + <Folder Include="xlib\web\jQuery" />
  851 + <Folder Include="xlib\web\jQuery\ui-addon" />
  852 + <Folder Include="xlib\web\js" />
  853 + <Folder Include="xlib\web\piwik" />
  854 + <Folder Include="xlib\web\plugin" />
  855 + <Folder Include="xlib\web\types" />
  856 + <Folder Include="xlib\web\widgets" />
  857 + <Folder Include="xlib\web_controllers\language" />
  858 + <Folder Include="xlib\web_controllers\fs" />
  859 + </ItemGroup>
  860 +</Project>
0 861 \ No newline at end of file
... ...
hayamiki_web_controller.ide 0 → 100644
  1 +
  2 +Microsoft Visual Studio Solution File, Format Version 9.00
  3 +# Visual Studio 2005
  4 +# SharpDevelop 1.0.12.108
  5 +Project("{B6712916-30DE-4a3e-A54C-2A79AC984AEE}") = "hayamiki_generator", "hayamiki_generator.aproj", "7E37A20A-56EA-4128-88F5-FE55B0F5CB45"
  6 +EndProject
  7 +Project("{B6712916-30DE-4a3e-A54C-2A79AC984AEE}") = "hayamiki_ds_types", "hayamiki_ds_types.aproj", "{06BE5572-9B4A-4F41-A01E-84C730A8F4E4}"
  8 +EndProject
  9 +Project("{B6712916-30DE-4a3e-A54C-2A79AC984AEE}") = "hayamiki_web_controller", "hayamiki_web_controller.aproj", "{90372B21-80FA-4EB8-B17C-072EB55713D7}"
  10 +EndProject
  11 +Global
  12 + GlobalSection(SolutionConfigurationPlatforms) = preSolution
  13 + Debug|Any CPU = Debug|Any CPU
  14 + Release|Any CPU = Release|Any CPU
  15 + EndGlobalSection
  16 + GlobalSection(ProjectConfigurationPlatforms) = postSolution
  17 + {89372B21-80FA-4EB8-B17C-072EB55713D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
  18 + {89372B21-80FA-4EB8-B17C-072EB55713D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
  19 + {89372B21-80FA-4EB8-B17C-072EB55713D6}.Release|Any CPU.Build.0 = Release|Any CPU
  20 + {89372B21-80FA-4EB8-B17C-072EB55713D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
  21 + 7E37A20A-56EA-4128-88F5-FE55B0F5CB45.Debug|Any CPU.Build.0 = Debug|Any CPU
  22 + 7E37A20A-56EA-4128-88F5-FE55B0F5CB45.Debug|Any CPU.ActiveCfg = Debug|Any CPU
  23 + 7E37A20A-56EA-4128-88F5-FE55B0F5CB45.Release|Any CPU.Build.0 = Release|Any CPU
  24 + 7E37A20A-56EA-4128-88F5-FE55B0F5CB45.Release|Any CPU.ActiveCfg = Release|Any CPU
  25 + {06BE5572-9B4A-4F41-A01E-84C730A8F4E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
  26 + {06BE5572-9B4A-4F41-A01E-84C730A8F4E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
  27 + {06BE5572-9B4A-4F41-A01E-84C730A8F4E4}.Release|Any CPU.Build.0 = Release|Any CPU
  28 + {06BE5572-9B4A-4F41-A01E-84C730A8F4E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
  29 + {90372B21-80FA-4EB8-B17C-072EB55713D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
  30 + {90372B21-80FA-4EB8-B17C-072EB55713D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
  31 + {90372B21-80FA-4EB8-B17C-072EB55713D7}.Release|Any CPU.Build.0 = Release|Any CPU
  32 + {90372B21-80FA-4EB8-B17C-072EB55713D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
  33 + EndGlobalSection
  34 +EndGlobal
... ...
src/app/app_loggers.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 17/04/2020
  5 + * Time: 10:34
  6 + * © David RENÉ
  7 + */
  8 +
  9 +
  10 +transmit xlib/net_services_protocols/logger_client.anubis
  11 +
  12 +
  13 +public define String debug_log = "Debug".
  14 +
  15 +public define One
  16 + logError
  17 + (
  18 + String logger_name,
  19 + String log_string
  20 + )=
  21 + logError("HK", logger_name, log_string)
  22 +.
... ...
src/generation/create_table.anubis
... ... @@ -4,7 +4,7 @@
4 4 * Date: 24/01/2016
5 5 * Time: 18:13
6 6  
7   -Hayamiki is Copyright © 2016-2019 by David RENÉ
  7 +Hayamiki is Copyright © 2016-2020 by David RENÉ
8 8 All rights reserved.
9 9  
10 10 Redistribution and use in source and binary forms, with or without modification,
... ... @@ -311,6 +311,7 @@ define String
311 311 public define Maybe(One)
312 312 generate_create_table
313 313 (
  314 + String app_name,
314 315 List(HK_App) apps, //list of the table model description
315 316 String dest_dir,
316 317 String version,
... ... @@ -340,8 +341,7 @@ public define Maybe(One)
340 341 */
341 342  
342 343 read system/logger.anubis
343   -//read calexium_lib/net_services_protocols/logger_service.anubis
344   -read calexium_lib/database/migration_common_sqlite3.anubis
  344 +read xlib/database/migration_common_sqlite3.anubis
345 345 read data_base/sqlite_foreign_key.anubis
346 346 read data_base/db_types.anubis\n"+
347 347 //call the generation of all tables
... ... @@ -401,10 +401,9 @@ read system/files.anubis
401 401 read system/logger.anubis
402 402 read data_base/db_tools.anubis
403 403  
404   -read calexium_lib/database/db_utils.anubis
405   -read calexium_lib/database/migration_common_sqlite3.anubis
406   -read calexium_lib/database/migration_sqlite3.anubis
407   -//read calexium_lib/net_services_protocols/logger_service.anubis
  404 +read xlib/database/db_utils.anubis
  405 +read xlib/database/migration_common_sqlite3.anubis
  406 +read xlib/database/migration_sqlite3.anubis
408 407 read data_base/alter_table.anubis
409 408  
410 409 read types/app_types.anubis
... ... @@ -452,7 +451,7 @@ public define Maybe(One)
452 451 .
453 452  
454 453 global define Migration
455   - migration_to_v"+version_str+"
  454 + "+app_name+"_dbm_to_v"+version_str+"
456 455 =
457 456 migration(db_model_version, migrate_to_v"+version_str+", create_v"+version_str+"_tables, create_v"+version_str+"_indexes)
458 457 .
... ... @@ -461,7 +460,7 @@ read hayamiki_lib/view/view_table_manager_types.anubis
461 460 read src/database/generated/vtm.anubis
462 461  
463 462 global define VTM
464   - vtm_v"+version_str+"
  463 + "+app_name+"_vtm_v"+version_str+"
465 464 =
466 465 vtm(
467 466 db_model_version,
... ...
src/generation/cxm_lib_menu.anubis
... ... @@ -81,8 +81,8 @@ public define Maybe(One)
81 81 * Time: "+_Int_to_ISO_8601_time(now)+"
82 82 */
83 83  
84   -transmit calexium_lib/web/CXM_making_a_web_site.anubis
85   -transmit calexium_lib/web/widgets/menu.anubis
  84 +transmit xlib/web/CXM_making_a_web_site.anubis
  85 +transmit xlib/web/widgets/menu.anubis
86 86  
87 87 public define List(Menu_Item)
88 88 applications_cxm_lib_menu
... ...
src/generation/fields.anubis
... ... @@ -51,12 +51,12 @@ public define String
51 51 ) =
52 52 if t is
53 53 {
54   - p_key then "extern_type(\"DB_id\", \"calexium_lib/database/db_types.anubis\")",
  54 + p_key then "extern_type(\"DB_id\", \"xlib/database/db_types.anubis\")",
55 55 boolean_field then "bool",
56   - date_field(_) then "extern_type(\"DB_date\", \"calexium_lib/database/db_types.anubis\")",
57   - time_field(_) then "extern_type(\"DB_time\", \"calexium_lib/database/db_types.anubis\")",
58   - datetime_field(_) then "extern_type(\"DB_datetime\", \"calexium_lib/database/db_types.anubis\")",
59   - foreign_key(_,_,_,_,_) then "extern_type(\"DB_id\", \"calexium_lib/database/db_types.anubis\")",
  56 + date_field(_) then "extern_type(\"DB_date\", \"xlib/database/db_types.anubis\")",
  57 + time_field(_) then "extern_type(\"DB_time\", \"xlib/database/db_types.anubis\")",
  58 + datetime_field(_) then "extern_type(\"DB_datetime\", \"xlib/database/db_types.anubis\")",
  59 + foreign_key(_,_,_,_,_) then "extern_type(\"DB_id\", \"xlib/database/db_types.anubis\")",
60 60 integer_field(_) then "int",
61 61 float_field then "float",
62 62 char_field(_,_) then "string",
... ...
src/generation/files.anubis
... ... @@ -261,6 +261,7 @@ define Maybe(One)
261 261  
262 262 with db_SHA1 = readString(ini, "DB_MODEL", "SHA1", "N/A"),
263 263 with version = readString(ini, "DB_MODEL", "Version", "0.0.0.0"),
  264 + with app_name= readString(ini, "DB_MODEL", "app_name", ""),
264 265 println("Saved DB model SHA1 = "+db_SHA1);
265 266 with current_db_SHA1 = to_ascii(sha1(serialize(db))),
266 267 println("Current DB model SHA1 = "+current_db_SHA1);
... ... @@ -277,7 +278,7 @@ define Maybe(One)
277 278 println("Generating VTM for Database "+name);
278 279 make_vtm(apps, destination_dir);
279 280 println("Generating create for Database "+name);
280   - if generate_create_table(apps, destination_dir, version, current_db_SHA1) is failure then println("failure");failure else
  281 + if generate_create_table(app_name, apps, destination_dir, version, current_db_SHA1) is failure then println("failure");failure else
281 282 println("Generating menu for Database "+name);
282 283 if generate_hk_menus(apps, destination_dir) is failure then println("failure");failure else
283 284 if generate_cxm_lib_menus(apps, destination_dir) is failure then println("failure");failure else
... ...
src/generation/header.anubis
... ... @@ -52,16 +52,16 @@ public define Maybe(One)
52 52 */
53 53 transmit tools/basis.anubis
54 54  
55   -transmit calexium_lib/web/CXM_making_a_web_site.anubis
56   -transmit calexium_lib/web/CXM_common.anubis
57   -transmit calexium_lib/web/CXM_web_dump.anubis
58   -transmit calexium_lib/web/CXM_web_arg_utils.anubis
59   -transmit calexium_lib/web/CXM_json.anubis
60   -transmit calexium_lib/web/widgets/icons_set.anubis
  55 +transmit xlib/web/CXM_making_a_web_site.anubis
  56 +transmit xlib/web/CXM_common.anubis
  57 +transmit xlib/web/CXM_web_dump.anubis
  58 +transmit xlib/web/CXM_web_arg_utils.anubis
  59 +transmit xlib/web/CXM_json.anubis
  60 +transmit xlib/web/widgets/icons_set.anubis
61 61 transmit data_base/sqlite.anubis
62 62 transmit data_base/db_tools.anubis
63   -transmit calexium_lib/database/db_utils.anubis
64   -transmit calexium_lib/database/db_types.anubis
  63 +transmit xlib/database/db_utils.anubis
  64 +transmit xlib/database/db_types.anubis
65 65 transmit hayamiki_lib/view/types/hk_form.anubis
66 66 transmit hayamiki_lib/view/types/hk_view.anubis
67 67 transmit hayamiki_lib/view/types/hk_filter.anubis
... ... @@ -71,8 +71,6 @@ transmit system/logger.anubis
71 71 transmit system/datetime.anubis
72 72 transmit system/convert.anubis
73 73 transmit system/string.anubis
74   -
75   -//transmit calexium_lib/net_services_protocols/logger_service.anubis
76 74 transmit app/app_loggers.anubis
77 75 ") is failure then failure else
78 76 foreign_table_header(stream, columns)
... ...
src/web_controller/controller.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 16/02/2017
  5 + * Time: 00:39
  6 + * © David RENÉ
  7 + */
  8 +
  9 +read system/logger.anubis
  10 +read xlib/web/controllers_web_site.anubis
  11 +read hayamiki.anubis
  12 +read hayamiki_lib/view/view_table_manager_types.anubis
  13 +
  14 +
  15 +public define WEB_Controller
  16 + get_hk_controller
  17 + (
  18 + SQLite3DataBase db,
  19 + HK_Database hk_db,
  20 + VTM _vtm,
  21 + (LogLevel, String) -> One logger
  22 + )
  23 + =
  24 + web_controller("hk_c", var(make_hk_actions(db, hk_db, _vtm, logger)))
  25 +.
  26 +
  27 +public define List(WEB_Controller)
  28 + plugin_get_controller
  29 + (
  30 + SQLite3DataBase db,
  31 + HK_Database hk_db,
  32 + VTM _vtm,
  33 + (LogLevel, String) -> One logger
  34 + ) =
  35 + [get_hk_controller(db, hk_db, _vtm, logger)]
  36 +.
... ...
src/web_controller/database/generated/fs_file.anubis 0 → 100644
  1 +/*
  2 + * Created by 早見木 (Hayamiki).
  3 + * Database generator written by フランスのトトロ aka (David RENÉ)
  4 + * Date: 2020-04-11
  5 + * Time: 10:13:41
  6 + *
  7 + */
  8 +transmit tools/basis.anubis
  9 +
  10 +transmit xlib/web/CXM_making_a_web_site.anubis
  11 +transmit xlib/web/CXM_common.anubis
  12 +transmit xlib/web/CXM_web_dump.anubis
  13 +transmit xlib/web/CXM_web_arg_utils.anubis
  14 +transmit xlib/web/CXM_json.anubis
  15 +transmit xlib/web/widgets/icons_set.anubis
  16 +transmit data_base/sqlite.anubis
  17 +transmit data_base/db_tools.anubis
  18 +transmit xlib/database/db_utils.anubis
  19 +transmit xlib/database/db_types.anubis
  20 +transmit hayamiki_lib/view/types/hk_form.anubis
  21 +transmit hayamiki_lib/view/types/hk_view.anubis
  22 +transmit hayamiki_lib/view/types/hk_filter.anubis
  23 +transmit hayamiki_lib/types/hayamiki.anubis
  24 +transmit hayamiki_lib/controller/hk_sql_utils.anubis
  25 +transmit system/logger.anubis
  26 +transmit system/datetime.anubis
  27 +transmit system/convert.anubis
  28 +transmit system/string.anubis
  29 +transmit app/app_loggers.anubis
  30 +
  31 +
  32 +transmit types/generated/fs_file.anubis
  33 +
  34 +
  35 +public define Fs_file
  36 + get_default_fs_file =
  37 + fs_file(none, db_datetime(""), db_datetime(""), "", "", (Int)0, (Int)0, "", "", "", "", "", "", "", "").
  38 +
  39 +
  40 +
  41 +public define List(String)
  42 + fs_file_columns =
  43 + ["create_date",
  44 + "write_date",
  45 + "res_model",
  46 + "res_name",
  47 + "file_size",
  48 + "res_id",
  49 + "description",
  50 + "res_field",
  51 + "mimetype",
  52 + "name",
  53 + "url",
  54 + "checksum",
  55 + "datas_fname",
  56 + "path" ].
  57 +
  58 +public define String
  59 + fs_file_select_fields = "fs_file.id, fs_file.create_date, fs_file.write_date, fs_file.res_model, fs_file.res_name, fs_file.file_size, fs_file.res_id, fs_file.description, fs_file.res_field, fs_file.mimetype, fs_file.name, fs_file.url, fs_file.checksum, fs_file.datas_fname, fs_file.path".
  60 +
  61 +
  62 +
  63 +public define Maybe(Fs_file)
  64 + extract_Fs_file_from_web_arg
  65 + (
  66 + List(Web_arg) lwa,
  67 + String __prefix__
  68 + )=
  69 + with id = get_DB_id(lwa, __prefix__+"id"),
  70 + with create_date = get_dummy_DB_datetime,
  71 + with write_date = get_dummy_DB_datetime,
  72 + if get_String(lwa, __prefix__+"res_model") is {failure then failure, success(res_model) then
  73 + if get_String(lwa, __prefix__+"res_name") is {failure then failure, success(res_name) then
  74 + if get_Int(lwa, __prefix__+"file_size") is {failure then failure, success(file_size) then
  75 + if get_Int(lwa, __prefix__+"res_id") is {failure then failure, success(res_id) then
  76 + if get_String(lwa, __prefix__+"description") is {failure then failure, success(description) then
  77 + if get_String(lwa, __prefix__+"res_field") is {failure then failure, success(res_field) then
  78 + if get_String(lwa, __prefix__+"mimetype") is {failure then failure, success(mimetype) then
  79 + if get_String(lwa, __prefix__+"name") is {failure then failure, success(name) then
  80 + if get_String(lwa, __prefix__+"url") is {failure then failure, success(url) then
  81 + if get_String(lwa, __prefix__+"checksum") is {failure then failure, success(checksum) then
  82 + if get_String(lwa, __prefix__+"datas_fname") is {failure then failure, success(datas_fname) then
  83 + if get_String(lwa, __prefix__+"path") is {failure then failure, success(path) then
  84 + success(
  85 + fs_file(
  86 + id,
  87 + create_date,
  88 + write_date,
  89 + res_model,
  90 + res_name,
  91 + file_size,
  92 + res_id,
  93 + description,
  94 + res_field,
  95 + mimetype,
  96 + name,
  97 + url,
  98 + checksum,
  99 + datas_fname,
  100 + path))
  101 + }}}}}}}}}}}}.
  102 +
  103 +
  104 +
  105 +public define Fs_file
  106 + extract_Fs_file_from_web_arg_with_default
  107 + (
  108 + List(Web_arg) lwa,
  109 + String __prefix__
  110 + )=
  111 + fs_file(
  112 + get_DB_id(lwa, __prefix__+"id"),
  113 + get_dummy_DB_datetime,
  114 + get_dummy_DB_datetime,
  115 + get_String(lwa, __prefix__+"res_model", ""),
  116 + get_String(lwa, __prefix__+"res_name", ""),
  117 + get_Int(lwa, __prefix__+"file_size", (Int)0),
  118 + get_Int(lwa, __prefix__+"res_id", (Int)0),
  119 + get_String(lwa, __prefix__+"description", ""),
  120 + get_String(lwa, __prefix__+"res_field", ""),
  121 + get_String(lwa, __prefix__+"mimetype", ""),
  122 + get_String(lwa, __prefix__+"name", ""),
  123 + get_String(lwa, __prefix__+"url", ""),
  124 + get_String(lwa, __prefix__+"checksum", ""),
  125 + get_String(lwa, __prefix__+"datas_fname", ""),
  126 + get_String(lwa, __prefix__+"path", ""),
  127 +)
  128 +.
  129 +
  130 +
  131 +
  132 +public define List(SQLite3_update_field)
  133 + extract_Fs_file_update_fields_from_web_arg
  134 + (
  135 + List(Web_arg) lwa,
  136 + String __prefix__
  137 + )=
  138 + []+
  139 + []+
  140 + [field("write_date", bind_Datetime(":v_write_date", db_now))]+
  141 + if get_String(lwa, __prefix__+"res_model") is {failure then [], success(res_model) then [field("res_model", bind_String(":v_res_model", res_model))] }+
  142 + if get_String(lwa, __prefix__+"res_name") is {failure then [], success(res_name) then [field("res_name", bind_String(":v_res_name", res_name))] }+
  143 + if get_Int(lwa, __prefix__+"file_size") is {failure then [], success(file_size) then [field("file_size", bind_Int(":v_file_size", file_size))] }+
  144 + if get_Int(lwa, __prefix__+"res_id") is {failure then [], success(res_id) then [field("res_id", bind_Int(":v_res_id", res_id))] }+
  145 + if get_String(lwa, __prefix__+"description") is {failure then [], success(description) then [field("description", bind_String(":v_description", description))] }+
  146 + if get_String(lwa, __prefix__+"res_field") is {failure then [], success(res_field) then [field("res_field", bind_String(":v_res_field", res_field))] }+
  147 + if get_String(lwa, __prefix__+"mimetype") is {failure then [], success(mimetype) then [field("mimetype", bind_String(":v_mimetype", mimetype))] }+
  148 + if get_String(lwa, __prefix__+"name") is {failure then [], success(name) then [field("name", bind_String(":v_name", name))] }+
  149 + if get_String(lwa, __prefix__+"url") is {failure then [], success(url) then [field("url", bind_String(":v_url", url))] }+
  150 + if get_String(lwa, __prefix__+"checksum") is {failure then [], success(checksum) then [field("checksum", bind_String(":v_checksum", checksum))] }+
  151 + if get_String(lwa, __prefix__+"datas_fname") is {failure then [], success(datas_fname) then [field("datas_fname", bind_String(":v_datas_fname", datas_fname))] }+
  152 + if get_String(lwa, __prefix__+"path") is {failure then [], success(path) then [field("path", bind_String(":v_path", path))] }
  153 +.
  154 +
  155 +
  156 +public define Maybe(Fs_file)
  157 + extract_fs_file
  158 + (
  159 + One -> SQLite3Row table_cursor
  160 + ) =
  161 + if table_cursor(unique) is
  162 + {
  163 + error(sql_error) then println(db_error(sql_error, "extract_fs_file")); failure,
  164 + no_more_row then failure,
  165 + row(cursor) then
  166 + success(
  167 + fs_file(
  168 + db_id((Int)db_integer(cursor)(0)) /* id */,
  169 + db_datetime(text(cursor)(1)) /* create_date */,
  170 + db_datetime(text(cursor)(2)) /* write_date */,
  171 + text(cursor)(3) /* res_model */,
  172 + text(cursor)(4) /* res_name */,
  173 + (Int)db_integer(cursor)(5) /* file_size */,
  174 + (Int)db_integer(cursor)(6) /* res_id */,
  175 + text(cursor)(7) /* description */,
  176 + text(cursor)(8) /* res_field */,
  177 + text(cursor)(9) /* mimetype */,
  178 + text(cursor)(10) /* name */,
  179 + text(cursor)(11) /* url */,
  180 + text(cursor)(12) /* checksum */,
  181 + text(cursor)(13) /* datas_fname */,
  182 + text(cursor)(14) /* path */
  183 + ))
  184 + }.
  185 +
  186 +
  187 +public define String get_fs_file_show_string(SQLite3DataBase db, DB_id _idx).
  188 +
  189 +define (Int -> SQLite3Datum) -> JsonMember
  190 + get_extractor
  191 + (
  192 + SQLite3DataBase db,
  193 + String component_name,
  194 + Bool resolve_fk
  195 + )=
  196 + if component_name ="id" then ((Int -> SQLite3Datum) cursor) |-> json_member("id", json_int((Int)db_integer(cursor)(0)))
  197 + else if component_name ="create_date" then ((Int -> SQLite3Datum) cursor) |-> json_member("create_date", json_string(text(cursor)(1)))
  198 + else if component_name ="write_date" then ((Int -> SQLite3Datum) cursor) |-> json_member("write_date", json_string(text(cursor)(2)))
  199 + else if component_name ="res_model" then ((Int -> SQLite3Datum) cursor) |-> json_member("res_model", json_string(text(cursor)(3)))
  200 + else if component_name ="res_name" then ((Int -> SQLite3Datum) cursor) |-> json_member("res_name", json_string(text(cursor)(4)))
  201 + else if component_name ="file_size" then ((Int -> SQLite3Datum) cursor) |-> json_member("file_size", json_int((Int)db_integer(cursor)(5)))
  202 + else if component_name ="res_id" then ((Int -> SQLite3Datum) cursor) |-> json_member("res_id", json_int((Int)db_integer(cursor)(6)))
  203 + else if component_name ="description" then ((Int -> SQLite3Datum) cursor) |-> json_member("description", json_string(text(cursor)(7)))
  204 + else if component_name ="res_field" then ((Int -> SQLite3Datum) cursor) |-> json_member("res_field", json_string(text(cursor)(8)))
  205 + else if component_name ="mimetype" then ((Int -> SQLite3Datum) cursor) |-> json_member("mimetype", json_string(text(cursor)(9)))
  206 + else if component_name ="name" then ((Int -> SQLite3Datum) cursor) |-> json_member("name", json_string(text(cursor)(10)))
  207 + else if component_name ="url" then ((Int -> SQLite3Datum) cursor) |-> json_member("url", json_string(text(cursor)(11)))
  208 + else if component_name ="checksum" then ((Int -> SQLite3Datum) cursor) |-> json_member("checksum", json_string(text(cursor)(12)))
  209 + else if component_name ="datas_fname" then ((Int -> SQLite3Datum) cursor) |-> json_member("datas_fname", json_string(text(cursor)(13)))
  210 + else if component_name ="path" then ((Int -> SQLite3Datum) cursor) |-> json_member("path", json_string(text(cursor)(14)))
  211 + else if component_name ="__HK_SHOW_STRING__" then ((Int -> SQLite3Datum) cursor) |-> json_member("__HK_SHOW_STRING__", json_string(get_fs_file_show_string(db, db_id((Int)db_integer(cursor)(0)))))
  212 + else ((Int -> SQLite3Datum) cursor) |-> json_member(component_name, json_null)
  213 +.
  214 +
  215 +public define List(((Int -> SQLite3Datum) -> JsonMember))
  216 + make_fs_file_json_extractor
  217 + (
  218 + SQLite3DataBase db,
  219 + List(String) columns,
  220 + Bool resolve_fk
  221 + )=
  222 + map((String column) |-> get_extractor(db, column, resolve_fk), columns)
  223 +.
  224 +
  225 +
  226 +public define List(Fs_file)
  227 + _get_all_fs_file
  228 + (
  229 + One -> SQLite3Row table_cursor,
  230 + List(Fs_file) so_far
  231 + ) =
  232 + if extract_fs_file(table_cursor) is
  233 + {
  234 + failure then reverse(so_far),
  235 + success(data) then _get_all_fs_file(table_cursor, [data . so_far])
  236 + }.
  237 +
  238 +
  239 +public define Maybe(One -> SQLite3Row)
  240 + get_all_fs_file_by_clause
  241 + (
  242 + SQLite3DataBase db,
  243 + String clause
  244 + )=
  245 + with final_clause = if clause = "" then
  246 + ""
  247 + else
  248 + "WHERE "+clause,
  249 +
  250 + if sql_query_timeout(db, "SELECT \"id\", \"create_date\", \"write_date\", \"res_model\", \"res_name\", \"file_size\", \"res_id\", \"description\", \"res_field\", \"mimetype\", \"name\", \"url\", \"checksum\", \"datas_fname\", \"path\" FROM fs_file "+final_clause+";", [], "get_all_fs_file_by_clause") is
  251 + {
  252 + error(_) then failure,
  253 + ok(_, cursor, _) then success(cursor)
  254 + }
  255 +.
  256 +
  257 +public define List(Fs_file)
  258 + get_all_fs_file_by_clause_to_list_type
  259 + (
  260 + SQLite3DataBase db,
  261 + String clause
  262 + )=
  263 + if get_all_fs_file_by_clause(db, clause) is
  264 + {
  265 + failure then [],
  266 + success(cursor) then _get_all_fs_file(cursor, [])
  267 + }
  268 +.
  269 +public define JsonValue
  270 + get_all_fs_file_by_clause_to_json
  271 + (
  272 + SQLite3DataBase db,
  273 + List(String) columns,
  274 + Bool resolve_fk,
  275 + HK_Referer referer,
  276 + String filter,
  277 + String order_by
  278 + )=
  279 + with ref_clause = referer_to_sql_clause(referer, "fs_file", fs_file_columns),
  280 + with final_columns = if length(columns) = 0 then ["id". fs_file_columns] else columns,
  281 +
  282 + with _and_ = if length(ref_clause) > 0 & length(filter) > 0 then " AND " else "",
  283 + if get_all_fs_file_by_clause(db, ref_clause+_and_+filter+" "+order_by) is
  284 + {
  285 + failure then json_array([]),
  286 + success(cursor) then
  287 + json_array(
  288 + get_all_to_json(db, make_fs_file_json_extractor(db, final_columns, resolve_fk), cursor, [])
  289 + )
  290 + }
  291 +.
  292 +
  293 +
  294 +public define Maybe(Fs_file)
  295 + get_fs_file_by_clause
  296 + (
  297 + SQLite3DataBase db,
  298 + String clause
  299 + )=
  300 + if sql_query_timeout(db, "SELECT \"id\", \"create_date\", \"write_date\", \"res_model\", \"res_name\", \"file_size\", \"res_id\", \"description\", \"res_field\", \"mimetype\", \"name\", \"url\", \"checksum\", \"datas_fname\", \"path\" FROM fs_file WHERE "+clause+";", [], "get_fs_file_by_clause") is
  301 + {
  302 + error(_) then failure,
  303 + ok(_, cursor, _) then extract_fs_file(cursor)
  304 + }.
  305 +
  306 +
  307 +
  308 +public define Maybe(Fs_file)
  309 + get_mb_fs_file
  310 + (
  311 + SQLite3DataBase db,
  312 + String idx
  313 + )=
  314 + get_fs_file_by_clause(db, " id = "+idx).
  315 +
  316 +public define Maybe(Fs_file)
  317 + get_mb_fs_file
  318 + (
  319 + SQLite3DataBase db,
  320 + Int idx
  321 + )=
  322 + get_fs_file_by_clause(db, " id = "+to_decimal(idx)).
  323 +
  324 +public define Maybe(Fs_file)
  325 + get_mb_fs_file
  326 + (
  327 + SQLite3DataBase db,
  328 + DB_id idx
  329 + )=
  330 + if idx is
  331 + {
  332 + none then failure,
  333 + db_id(_idx) then get_mb_fs_file(db, _idx)
  334 + }.
  335 +
  336 +public define Fs_file
  337 + get_fs_file
  338 + (
  339 + SQLite3DataBase db,
  340 + DB_id idx
  341 + )=
  342 + if idx is
  343 + {
  344 + none then get_default_fs_file,
  345 + db_id(_idx) then
  346 + if get_fs_file_by_clause(db, " id = "+to_decimal(_idx)) is
  347 + {
  348 + failure then get_default_fs_file,
  349 + success(r) then r
  350 + }
  351 + }.
  352 +
  353 +
  354 +
  355 +public define JsonValue
  356 + get_one_fs_file_to_json
  357 + (
  358 + SQLite3DataBase db,
  359 + List(String) columns,
  360 + Bool resolve_fk,
  361 + DB_id idx
  362 + )=
  363 + with final_columns = if length(columns) = 0 then ["id", "__HK_SHOW_STRING__". fs_file_columns] else columns,
  364 + with error = json_object(map((String col_name) |-> json_member(col_name, json_null), final_columns)),
  365 +
  366 + if idx is
  367 + {
  368 + none then error,
  369 + db_id(_idx) then
  370 + if get_all_fs_file_by_clause(db, "id="+to_decimal(_idx)) is
  371 + {
  372 + failure then error,
  373 + success(cursor) then
  374 + if extract_cursor_to_json(db, make_fs_file_json_extractor(db, final_columns, resolve_fk), cursor) is
  375 + {
  376 + failure then error,
  377 + success(result) then result
  378 + }
  379 + }
  380 + }
  381 +.
  382 +
  383 +
  384 +
  385 +public define Maybe(Int)
  386 + update_fs_file
  387 + (
  388 + SQLite3DataBase db,
  389 + Fs_file fs_file
  390 + )=
  391 + if fs_file.id is
  392 + {
  393 + none then
  394 + if sql_query_timeout(db,
  395 + "INSERT INTO fs_file
  396 + (\"create_date\", \"write_date\", \"res_model\", \"res_name\", \"file_size\", \"res_id\", \"description\", \"res_field\", \"mimetype\", \"name\", \"url\", \"checksum\", \"datas_fname\", \"path\")
  397 + VALUES
  398 + (:v_create_date, :v_write_date, :v_res_model, :v_res_name, :v_file_size, :v_res_id, :v_description, :v_res_field, :v_mimetype, :v_name, :v_url, :v_checksum, :v_datas_fname, :v_path);",
  399 + [
  400 + bind_Datetime(":v_create_date", db_now),
  401 + bind_Datetime(":v_write_date", db_now),
  402 + bind_String_or_NULL(":v_res_model", fs_file.res_model),
  403 + bind_String_or_NULL(":v_res_name", fs_file.res_name),
  404 + bind_Int(":v_file_size", fs_file.file_size),
  405 + bind_Int(":v_res_id", fs_file.res_id),
  406 + bind_String_or_NULL(":v_description", fs_file.description),
  407 + bind_String_or_NULL(":v_res_field", fs_file.res_field),
  408 + bind_String_or_NULL(":v_mimetype", fs_file.mimetype),
  409 + bind_String(":v_name", fs_file.name),
  410 + bind_String_or_NULL(":v_url", fs_file.url),
  411 + bind_String_or_NULL(":v_checksum", fs_file.checksum),
  412 + bind_String_or_NULL(":v_datas_fname", fs_file.datas_fname),
  413 + bind_String_or_NULL(":v_path", fs_file.path)],
  414 + "update_fs_file (INSERT)") is
  415 + {
  416 + error(sql_error) then
  417 + //logError(debug_log, db_error(sql_error, table_name));
  418 + failure,
  419 + ok(_, cursor, _) then
  420 + if sql_query_scalar(db, "SELECT last_insert_rowid()") is
  421 + {
  422 + error(_) then failure,
  423 + ok(datum) then
  424 + with r = if datum is integer(n) then n else 0,
  425 + success(r)
  426 + }
  427 + },
  428 + db_id(idx) then
  429 + if sql_query_timeout(db,
  430 + "UPDATE fs_file SET
  431 + \"write_date\" = :v_write_date, \"res_model\" = :v_res_model, \"res_name\" = :v_res_name, \"file_size\" = :v_file_size, \"res_id\" = :v_res_id, \"description\" = :v_description, \"res_field\" = :v_res_field, \"mimetype\" = :v_mimetype, \"name\" = :v_name, \"url\" = :v_url, \"checksum\" = :v_checksum, \"datas_fname\" = :v_datas_fname, \"path\" = :v_path
  432 + WHERE id = "+idx+";",
  433 + [
  434 + bind_Datetime(":v_write_date", db_now),
  435 + bind_String_or_NULL(":v_res_model", fs_file.res_model),
  436 + bind_String_or_NULL(":v_res_name", fs_file.res_name),
  437 + bind_Int(":v_file_size", fs_file.file_size),
  438 + bind_Int(":v_res_id", fs_file.res_id),
  439 + bind_String_or_NULL(":v_description", fs_file.description),
  440 + bind_String_or_NULL(":v_res_field", fs_file.res_field),
  441 + bind_String_or_NULL(":v_mimetype", fs_file.mimetype),
  442 + bind_String(":v_name", fs_file.name),
  443 + bind_String_or_NULL(":v_url", fs_file.url),
  444 + bind_String_or_NULL(":v_checksum", fs_file.checksum),
  445 + bind_String_or_NULL(":v_datas_fname", fs_file.datas_fname),
  446 + bind_String_or_NULL(":v_path", fs_file.path)],
  447 + "update_fs_file (UPDATE)") is {
  448 + error(sql_error) then
  449 + logError(debug_log, db_error(sql_error, "update_fs_file")); failure,
  450 + ok(_, _, _) then success(idx) }
  451 + }.
  452 +
  453 +public define Maybe(Int)
  454 + update_fs_file_from_type
  455 + (
  456 + SQLite3DataBase db,
  457 + List(Web_arg) lwa
  458 + )=
  459 + if extract_Fs_file_from_web_arg(lwa, "") is
  460 + {
  461 + failure then logError(debug_log, "update_fs_file extract_Fs_file_from_web_arg is failure"); failure,
  462 + success(fs_file) then update_fs_file(db, fs_file)
  463 + }.
  464 +
  465 +public define Maybe(Int)
  466 + update_fs_file_from_fields
  467 + (
  468 + SQLite3DataBase db,
  469 + List(Web_arg) lwa
  470 + )=
  471 + insert_or_update(db, "fs_file", get_DB_id(lwa, "id"), extract_Fs_file_update_fields_from_web_arg(lwa, ""))
  472 +.
  473 +
  474 +
  475 +
  476 +public define String
  477 + get_fs_file_show_string
  478 + (
  479 + SQLite3DataBase db,
  480 + DB_id _idx
  481 + )=
  482 + if _idx is
  483 + {
  484 + none then default_select,
  485 + db_id(idx) then
  486 + if get_mb_fs_file(db, idx) is
  487 + {
  488 + failure then default_select,
  489 + success(obj) then obj.name
  490 + }
  491 + }.
  492 +
  493 +define List((List(CoreAttrs), WebArgValue, String))
  494 + _get_selector_fs_file
  495 + (
  496 + SQLite3DataBase db,
  497 + List(Fs_file) list,
  498 + List((List(CoreAttrs), WebArgValue, String)) so_far
  499 + )=
  500 + if list is
  501 + {
  502 + [] then [selector_default_entry . reverse(so_far)],
  503 + [ h . t ] then
  504 + if h.id is
  505 + {
  506 + none then [selector_default_entry],
  507 + db_id(_id) then _get_selector_fs_file(db, t, [([], wav(to_String(_id)), get_fs_file_show_string(db, h.id)) . so_far])
  508 + }
  509 + }.
  510 +
  511 +public define List((List(CoreAttrs), WebArgValue, String))
  512 + get_selector_fs_file
  513 + (
  514 + SQLite3DataBase db,
  515 + HK_Referer referer,
  516 + String filter
  517 + )=
  518 + with clause = referer_to_sql_clause(referer, "fs_file", fs_file_columns),
  519 +
  520 + with _and_ = if length(clause) > 0 & length(filter) > 0 then " AND " else "",
  521 + _get_selector_fs_file(db, get_all_fs_file_by_clause_to_list_type(db, clause+_and_+filter), []).
  522 +
  523 +public define List((String, List(HK_Filter)))
  524 + get_all_fs_file_view_name
  525 + (
  526 + One dummy
  527 + )=
  528 + [
  529 + ("default", [])
  530 + ]
  531 +.
  532 +
  533 +
  534 +
  535 +define VT_view
  536 + _get_viewable_fs_file_default
  537 + =
  538 + with header = vt_view_row_header([
  539 + text("CREATE_DATE"),
  540 + text("WRITE_DATE"),
  541 + text("RES_MODEL"),
  542 + text("RES_NAME"),
  543 + text("FILE_SIZE"),
  544 + text("RES_ID"),
  545 + text("DESCRIPTION"),
  546 + text("RES_FIELD"),
  547 + text("MIMETYPE"),
  548 + text("NAME"),
  549 + text("URL"),
  550 + text("CHECKSUM"),
  551 + text("DATAS_FNAME"),
  552 + text("PATH")
  553 + ]),
  554 + with model = vt_view_model([
  555 + primary_key,
  556 + datetime("CREATE_DATE", "create_date", no_help_text),
  557 + datetime("WRITE_DATE", "write_date", no_help_text),
  558 + text("RES_MODEL", "res_model", no_help_text),
  559 + text("RES_NAME", "res_name", no_help_text),
  560 + integer("FILE_SIZE", "file_size", no_help_text),
  561 + integer("RES_ID", "res_id", no_help_text),
  562 + text_area("DESCRIPTION", "description", no_help_text),
  563 + text("RES_FIELD", "res_field", no_help_text),
  564 + text("MIMETYPE", "mimetype", no_help_text),
  565 + text("NAME", "name", no_help_text),
  566 + text("URL", "url", no_help_text),
  567 + text("CHECKSUM", "checksum", no_help_text),
  568 + text("DATAS_FNAME", "datas_fname", no_help_text),
  569 + text("PATH", "path", no_help_text)
  570 + ]),
  571 + vt_view(
  572 + "fs_file", //Name of the database table
  573 + "default", //Name of the view
  574 + model,
  575 + header
  576 + )
  577 +.
  578 +
  579 +public define VT_view
  580 + get_viewable_fs_file
  581 + (
  582 + String view,
  583 + )=
  584 + if view = "default" then
  585 + _get_viewable_fs_file_default
  586 + else
  587 + _get_viewable_fs_file_default
  588 +.
  589 +
  590 +
  591 +define HK_Form
  592 + _get_editable_fs_file_default
  593 + (
  594 + Fs_file fs_file,
  595 + SQLite3DataBase db
  596 + )=
  597 + with edit_entries = (List(HK_Form_Entry))
  598 + [
  599 + hidden("id", to_String(fs_file.id)),
  600 + primary_key(to_String(fs_file.id)),
  601 + information("CREATE_DATE", "create_date", fs_file.create_date.datetime, 18, no_help_text),
  602 + information("WRITE_DATE", "write_date", fs_file.write_date.datetime, 18, no_help_text),
  603 + text("RES_MODEL", "res_model", fs_file.res_model, no_help_text),
  604 + text("RES_NAME", "res_name", fs_file.res_name, no_help_text),
  605 + integer("FILE_SIZE", "file_size", fs_file.file_size, no_help_text),
  606 + integer("RES_ID", "res_id", fs_file.res_id, no_help_text),
  607 + text_area("DESCRIPTION", "description", fs_file.description, none, no_help_text),
  608 + text("RES_FIELD", "res_field", fs_file.res_field, no_help_text),
  609 + text("MIMETYPE", "mimetype", fs_file.mimetype, no_help_text),
  610 + text("NAME", "name", fs_file.name, no_help_text),
  611 + text("URL", "url", fs_file.url, no_help_text),
  612 + text("CHECKSUM", "checksum", fs_file.checksum, no_help_text),
  613 + text("DATAS_FNAME", "datas_fname", fs_file.datas_fname, no_help_text),
  614 + text("PATH", "path", fs_file.path, no_help_text)
  615 + ],
  616 + hk_form_in_list("fs_file", "default", edit_entries, []).
  617 +
  618 +public define HK_Form
  619 + get_editable_fs_file
  620 + (
  621 + SQLite3DataBase db,
  622 + HK_Form_action action,
  623 + String editor_view
  624 + )=
  625 + with fs_file = if action is
  626 + {
  627 + new_entry then get_default_fs_file
  628 + edit_entry(idx) then get_fs_file(db, idx)
  629 + },
  630 + if editor_view = "default" then
  631 + _get_editable_fs_file_default(fs_file, db)
  632 + else
  633 + _get_editable_fs_file_default(fs_file, db)
  634 +.
... ...
src/web_controller/hayamiki.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 16/02/2017
  5 + * Time: 00:40
  6 + * © David RENÉ
  7 + */
  8 +
  9 +//read types/app_types.anubis
  10 +read system/logger.anubis
  11 +
  12 +read hayamiki_lib/view/types/hk_form.anubis
  13 +read hayamiki_lib/view/types/hk_view.anubis
  14 +read hayamiki_lib/view/view_table_manager_types.anubis
  15 +read hayamiki_lib/view/view_table_manager.anubis
  16 +read hayamiki_lib/view/view_apps_renderer.anubis
  17 +transmit hayamiki_lib/view/web_action.anubis
  18 +transmit hayamiki_lib/view/view_table_renderer.anubis
  19 +transmit hayamiki_lib/view/view_editor_renderer.anubis
  20 +transmit hayamiki_lib/view/view_rows_import.anubis
  21 +transmit hayamiki_lib/types/hayamiki.anubis
  22 +transmit hayamiki_lib/model/utils.anubis
  23 +transmit hayamiki_lib/controller/hk_rows_import.anubis
  24 +transmit hayamiki_lib/controller/hk_sql_utils.anubis
  25 +transmit hayamiki_lib/controller/hk_delete.anubis
  26 +
  27 +read system/string.anubis
  28 +read locale/L3.anubis
  29 +read tools/basis.anubis
  30 +
  31 +read system/convert.anubis
  32 +
  33 +//read utils.anubis
  34 +read locale/L3LanguageInfo.anubis
  35 +read xlib/web/CXM_common.anubis
  36 +read xlib/web/CXM_web_arg_utils.anubis
  37 +read xlib/web/controllers_web_site.anubis
  38 +read xlib/web/CXM_multihost_http_server.anubis
  39 +read xlib/web/CXM_form.anubis
  40 +read xlib/web/CXM_json.anubis
  41 +read xlib/web/CXM_web_dump.anubis
  42 +read xlib/web/widgets/left_menu.anubis
  43 +//read database/users.anubis
  44 +
  45 +
  46 +read xlib/web/widgets/css_helper.anubis
  47 +read xlib/web/CXM_page_message.anubis
  48 +
  49 +//read app/app_constants.anubis
  50 +//read config/app_config.anubis
  51 +
  52 +read hayamiki_lib/controller/hk_controller.anubis
  53 +
  54 +//read database/vtm_init.anubis
  55 +
  56 +read xlib/web_controllers/language/language_management.anubis
  57 +//read web_controllers/access_and_rights.anubis
  58 +//read web_controllers/root/web_action.anubis
  59 +read hkc_files_management.anubis
  60 +
  61 +
  62 +
  63 +public define WEB_Controller_Result
  64 + compute_ajax_edit_table_entry_page
  65 + (
  66 + SQLite3DataBase db,
  67 + (String) -> String _T,
  68 + String lang,
  69 + List(Web_arg) lwa,
  70 + String table,
  71 + String edit_view_name,
  72 + HK_Form_action action,
  73 + VTM vtm,
  74 + String clause,
  75 + String fk_clause,
  76 + HK_Referer referer
  77 + ) =
  78 +
  79 + with dialog_id = get_String(lwa, "dialog_id", "edit_table_dlg_ajax"),
  80 +// println("compute_ajax_edit_table_entry_page: table["+table+"] edit_view_name ["+edit_view_name+"] dialog_id ["+dialog_id+"]");
  81 +// println("clause ["+clause+"] fk_clause["+fk_clause+"]");
  82 +
  83 +
  84 + if edit_table_content(db, _T, lang, /*web_site_directory,*/ lwa, /*dialog_id,*/ table, edit_view_name, action, vtm, /*clause,*/ fk_clause, referer) is
  85 + {
  86 + failure then
  87 + redirect_to_previous, //compute_page_error(tb, http_ok, error("TABLE_EDITOR_DOESNT_EXIST")),
  88 + success(content) then
  89 +
  90 + with additional_script =
  91 +"$('#"+dialog_id+" .datepicker').datetimepicker({lang:'"+lang+"',timepicker:false});
  92 + $('#"+dialog_id+" .datetimepicker').datetimepicker({lang:'"+lang+"', format:'Y-m-d H:i'});
  93 + $('#"+dialog_id+" .timepicker').datetimepicker({lang:'"+lang+"',datepicker:false,format:'H:i',step:5});
  94 + $( \"input[type=submit], button\" ).button();",
  95 +
  96 +// ajax(json(http_ok, to_html_ajax_content(content, cinfo, additional_script)))
  97 + ajax(failure, content, additional_script)
  98 + }.
  99 +
  100 + public define HTTP_Answer
  101 + compute_view_table_page
  102 + (
  103 + Admin_Tool_Box tb,
  104 + Page_message errMsg,
  105 + String table,
  106 + String view_name,
  107 + String action_name,
  108 + VTM vtm
  109 + ) =
  110 + since tb is admin_tool_box( lang, lwa, _T, _, db ),
  111 + if view_table_content( db, _T, lang, web_site_directory, table, view_name, action_name, vtm) is
  112 + {
  113 + failure then compute_page_error(tb, http_ok, error_translate("TABLE_DOESNT_EXIST")),
  114 + success(content) then generic_space_page(tb, "", errMsg, content, admin_fisheye_menu, "admin_menu", left_menu(admin_left_menu,""))
  115 + }.
  116 +
  117 +define (WEB_Session) -> WEB_Controller_Result
  118 + ajax_edit_table
  119 + (
  120 + SQLite3DataBase db,
  121 + VTM _vtm
  122 + )=
  123 + (
  124 + WEB_Session _session
  125 + ) |->
  126 + with _T = make_translate_function(_session),
  127 + lwa = *_session.web_request.lwa,
  128 + lang = _session.language,
  129 +
  130 + if web_arg_value(lwa, "table_name") is // table name
  131 + {
  132 + not_found then redirect_to_previous,
  133 + found(table_name) then
  134 + //get the name of editor to use
  135 + with view_name = get_String(lwa, "view_name", "default"),
  136 + with clause = get_String(lwa, "clause", ""),
  137 + with fk_clause = get_String(lwa, "fk_filter", ""),
  138 + with referer = get_HK_Referer_from_web_arg(lwa, ""),
  139 + with db_id = get_DB_id(lwa, "id"),
  140 + if db_id is // primary key
  141 + {
  142 + none then
  143 + compute_ajax_edit_table_entry_page(db, _T, lang, lwa, table_name, view_name, new_entry, _vtm, clause, fk_clause, referer),
  144 + db_id(id) then
  145 + compute_ajax_edit_table_entry_page(db, _T, lang, lwa, table_name, view_name, edit_entry(db_id), _vtm, clause, fk_clause, referer)
  146 + }
  147 + }
  148 +.
  149 +
  150 +define (WEB_Session) -> WEB_Controller_Result
  151 + grid_view_json
  152 + (
  153 + SQLite3DataBase db,
  154 + VTM _vtm
  155 + )=
  156 + (
  157 + WEB_Session _session
  158 + ) |->
  159 + with _T = make_translate_function(_session),
  160 + lwa = *_session.web_request.lwa,
  161 + lang = _session.language,
  162 + with error_result = ajax(json(http_ok,
  163 + json_object([
  164 + json_member("page", json_int(0)),
  165 + json_member("total", json_int(0)),
  166 + json_member("records", json_int(0)),
  167 + json_member("rows",json_array([]))
  168 + ])
  169 + )),
  170 +
  171 + if get_String(lwa, "table_name") is // table name
  172 + {
  173 + failure then redirect_to_previous,
  174 + success(table_name) then
  175 + if get_hk_controller(_vtm.hk_controllers, table_name) is
  176 + {
  177 + failure then
  178 + println("Can't get "+table_name+" hk_controller");
  179 + error_result,
  180 + success(controller) then
  181 + //get the name of editor to use
  182 + with view_name = get_String(lwa, "view_name", "default"),
  183 + _filter_name = get_String(lwa, "filter_name", ""),
  184 + search = get_String(lwa, "_search", "false"),
  185 + limit = get_Int(lwa, "rows", 0),
  186 + page = get_Int(lwa, "page", 1),
  187 + sord = get_String(lwa, "sord", "asc"),
  188 + sidx = get_String(lwa, "sidx", "id"),
  189 + _clause = get_String(lwa, "clause", "1 = 1"),
  190 + referer = get_HK_Referer_from_web_arg(lwa, ""),
  191 +
  192 + if vtm_get_view(table_name, _vtm.view_list) is
  193 + {
  194 + failure then redirect_to_previous,
  195 + success(vtm_v) then
  196 +
  197 + with _filter = get_filter_from_name(vtm_v, view_name, _filter_name),
  198 + println("_filter name: "+_filter.filter_name);
  199 + println("_filter query: "+_filter.filter_string);
  200 + with clause = if _filter.filter_string = "" then //filter_string is empty, hence
  201 + if _clause = "" then //check if clause is empty
  202 + ""
  203 + else //return only clause because filter_strinf is empty
  204 + _clause
  205 + else if _clause = "" then //if clause is empty return only the filter_string
  206 + _filter.filter_string
  207 + else //in that case the filter_string and clause are not empty
  208 + "("+_filter.filter_string+") AND "+_clause,
  209 +
  210 + println("grid_view_json final clause : ["+clause+"])");
  211 + with number = controller.get_count(db, if clause = "" then "" else "WHERE "+clause),
  212 +
  213 + with total_page = if number/limit is success(result) then since result is (pages, fraction), pages + if fraction > 0 then 1 else 0 else 1,
  214 + with new_page = if total_page < page then total_page else page,
  215 + with new_sidx = if sidx = "" then "id" else sidx,
  216 + with start = limit * new_page - limit,
  217 + ajax(json(http_ok,
  218 + json_object([
  219 + json_member("page", json_int(new_page)),
  220 + json_member("total", json_int(total_page)),
  221 + json_member("records", json_int(number)),
  222 + json_member("query_date", json_string(get_current_datetime_ISO)),
  223 + json_member("rows", controller.get_rows_json(db, [], true, referer, clause, " ORDER BY "+new_sidx+" "+sord+" LIMIT "+start+", "+limit))
  224 + ])
  225 + ))
  226 + }}}
  227 +.
  228 +
  229 +define (WEB_Session) -> WEB_Controller_Result
  230 + combo_search
  231 + (
  232 + SQLite3DataBase db,
  233 + VTM _vtm
  234 + )=
  235 + (
  236 + WEB_Session _session
  237 + ) |->
  238 + with _T = make_translate_function(_session),
  239 + lwa = *_session.web_request.lwa,
  240 + lang = _session.language,
  241 + println("COMBO SEARCH");
  242 +
  243 + //construct the error result
  244 + with error_result = ajax(json(http_ok,
  245 + json_object([
  246 + json_member("cnt_whole", json_int(0)),
  247 + json_member("result",json_array([]))
  248 + ])
  249 + )),
  250 +
  251 + if get_String(lwa, "db_table") is // table name
  252 + {
  253 + failure then
  254 + println("db_table argument not found");
  255 + error_result,
  256 + success(table_name) then
  257 + if get_hk_controller(_vtm.hk_controllers, table_name) is
  258 + {
  259 + failure then
  260 + println("Can't get "+table_name+" hk_controller");
  261 + error_result,
  262 + success(controller) then
  263 +
  264 + //get the page to return
  265 + if get_Int(lwa, "page_num") is
  266 + {
  267 + failure then //initial value because without paging
  268 + with pkey_name = get_String(lwa, "pkey_name", "id"),
  269 + pkey_val = get_DB_id(lwa, "pkey_val"),
  270 + ajax(json(http_ok, controller.get_one_json(db, [], true, pkey_val))),
  271 +
  272 + success(page) then
  273 + with
  274 + search_words = get_String_list(lwa, "q_word[]"),
  275 + search_fields = get_String_list(lwa, "search_field[]"),
  276 + active_filters = get_String_list(lwa, "active_filter[]"), //active filter format is "column_name,id"
  277 + limit = get_Int(lwa, "per_page", 10), //limit
  278 + and_or = get_String(lwa, "and_or", "OR"),
  279 + sidx = get_String(lwa, "sidx", "id"),
  280 + referer = get_HK_Referer_from_web_arg(lwa, ""),
  281 + //TODO add active filters here
  282 +
  283 + //active_filters =
  284 + with active_filter_clause =
  285 + join(" AND ",
  286 + map_select((String tuple ) |-> //here we get the tuple "column_name,id"
  287 + //slipt by the ',' and gather the column_name and the id
  288 + with splited = split_by_token(tuple, ','),
  289 + if splited is
  290 + {
  291 + [] then failure,
  292 + [ column_name . t] then
  293 + if t is
  294 + {
  295 + [] then failure,
  296 + [id . _] then success(column_name+" = "+id)
  297 + }
  298 + }
  299 + , active_filters)),
  300 +
  301 + show_string = "__SHOW_STRING__":search_fields,
  302 +
  303 + //construct the search clause based of the given words and fields
  304 + with _search_clause =
  305 + join(" "+and_or+" ",
  306 + map((String word)
  307 + |->
  308 + //here construct like map with the searched word with all fields
  309 + "("+join(" OR ", map_select((String field) |-> if field = "__HK_SHOW_STRING__" /* if __HK_SHOW_STRING__ then exclude from search */ then failure else success(field+" LIKE '%"+word+"%'"), search_fields)) + ")"
  310 + ,search_words)),
  311 +
  312 + //finaly construct the full search clause with by concates the words clause and active filters clause
  313 + with search_clause = if length(active_filter_clause) > 0 then _search_clause + " AND ("+active_filter_clause+") " else _search_clause,
  314 +
  315 + println("combo_search final clause : ["+search_clause+"])");
  316 + with number = controller.get_count(db, if search_clause = "" then "" else "WHERE "+search_clause),
  317 + //OFFSET
  318 + with offset = (page-1) * limit,
  319 + //ORDER BY
  320 + //order_by = join(", ", l_order_by),
  321 + with total_page = if number/limit is success(result) then since result is (pages, fraction), pages + if fraction > 0 then 1 else 0 else 1,
  322 + with new_page = if total_page < page then total_page else page,
  323 +// with new_sidx = sidx,
  324 +// with start = limit * new_page - limit,
  325 + ajax(json(http_ok,
  326 + json_object([
  327 + json_member("cnt_whole", json_int(number)),
  328 + json_member("result", controller.get_rows_json(db, ["id" . search_fields], true, referer, search_clause, " LIMIT "+offset+", "+limit))
  329 + ])
  330 + ))
  331 + }}}
  332 +.
  333 +
  334 +define (WEB_Session) -> WEB_Controller_Result
  335 + edit_table
  336 + (
  337 + SQLite3DataBase db,
  338 + VTM _vtm
  339 + )=
  340 + (
  341 + WEB_Session _session
  342 + ) |->
  343 + with _T = make_translate_function(_session),
  344 + lwa = *_session.web_request.lwa,
  345 +
  346 + if get_String(lwa, "table_name") is // table name
  347 + {
  348 + failure then redirect_to_previous,
  349 + success(table_name) then
  350 + //get the name of editor to use
  351 + with view_name = get_String(lwa, "view_name", "default"),
  352 +// with dialog_id = get_String(lwa, "dialog_id", ""),
  353 + with clause = get_String(lwa, "clause", ""),
  354 + with fk_clause = get_String(lwa, "fk_filter", ""),
  355 + with referer = get_HK_Referer_from_web_arg(lwa, ""),
  356 + with id = get_DB_id(lwa, "id"), // primary key
  357 +
  358 + if id is
  359 + {
  360 + none then
  361 + if edit_table_content(db, _T, _session.language, /*web_site_directory,*/ lwa, /*dialog_id,*/ table_name, view_name, new_entry, _vtm, /*clause,*/ fk_clause, referer) is
  362 + {
  363 + failure then redirect_to_previous,
  364 + success(p_content) then
  365 + //http_answer(generic_desktop_page(db, _session, product_name, no_left_menu, p_content))
  366 + renderer_content(p_content)
  367 + },
  368 +
  369 + // state(lang, lwa, logged(account, edit_table_entry(table_name, view_name, new_entry), no_message)),
  370 + db_id(_) then
  371 + if edit_table_content(db, _T, _session.language, /*web_site_directory,*/ lwa, /*dialog_id,*/ table_name, view_name, edit_entry(id), _vtm, /*clause,*/ fk_clause, referer) is
  372 + {
  373 + failure then redirect_to_previous,
  374 + success(p_content) then
  375 + set_Page_Message(_session.fields, no_message);
  376 + //http_answer(generic_desktop_page(db, _session, product_name, no_left_menu, p_content))
  377 + renderer_content(_session, p_content)
  378 + }
  379 + }
  380 + }
  381 +.
  382 +
  383 +define (WEB_Session) -> WEB_Controller_Result
  384 + view_editor
  385 + (
  386 + SQLite3DataBase db,
  387 + VTM _vtm,
  388 + Bool change_view_name,
  389 + Bool change_filter
  390 + )=
  391 + (
  392 + WEB_Session _session
  393 + ) |->
  394 + with _T = make_translate_function(_session),
  395 + lwa = *_session.web_request.lwa,
  396 +
  397 + if get_String(lwa, "table_name") is // table name
  398 + {
  399 + failure then redirect_to_previous,
  400 + success(table_name) then
  401 + if vtm_get_view(table_name, _vtm.view_list) is
  402 + {
  403 + failure then redirect_to_previous,
  404 + success(vtm_v) then
  405 + with view_name = get_String(lwa, "view_name", "default"),
  406 + with
  407 + current_filter = get_String(_session.fields, "current_filter", ""),
  408 + with filter_name = if change_view_name then
  409 + with _f = get_default_filter(vtm_v, view_name),
  410 + _f.filter_name
  411 + else
  412 + get_String(lwa, "filter_name", ""),
  413 +
  414 + if view_table_content( db, _T, _session.language, /*web_site_directory,*/ table_name, view_name, "edit_table", filter_name, "", no_referer, "", _vtm) is
  415 + {
  416 + failure then
  417 + set_Page_Message(_session.fields, error_translate("TABLE_DOESNT_EXIST"));
  418 + redirect_to_previous(_session.fields), //compute_page_error(tb, http_ok, error("TABLE_DOESNT_EXIST")),
  419 + success(p_content) then
  420 + //set_Page_Message(_session.fields, no_message);
  421 +// replace_String(_session.fields, "current_table", table_name);
  422 +// replace_String(_session.fields, "current_view", view_name);
  423 +// replace_String(_session.fields, "current_filter", filter_name);
  424 +// http_answer(generic_desktop_page(db, _session, product_name, no_left_menu, p_content))
  425 + renderer_content(_session, p_content)
  426 + }
  427 + }
  428 + }
  429 +.
  430 +
  431 +define (WEB_Session) -> WEB_Controller_Result
  432 + delete_row
  433 + (
  434 + SQLite3DataBase db,
  435 + VTM _vtm,
  436 + (LogLevel, String) -> One logger
  437 + )=
  438 + (
  439 + WEB_Session _session
  440 + ) |->
  441 + if hk_delete_row(*_session.web_request.lwa, db) is
  442 + {
  443 + error(error_str) then
  444 + set_Page_Message(_session.fields, error_translate(error_str));
  445 + redirect_to_previous(_session.fields),
  446 + ok(ok_str) then
  447 + logger(logInfo, "delete ok");
  448 + set_Page_Message(_session.fields, ok_translate(ok_str));
  449 + redirect_to_previous(_session.fields),
  450 + }.
  451 +
  452 +define (WEB_Session) -> WEB_Controller_Result
  453 + save_row
  454 + (
  455 + SQLite3DataBase db,
  456 + VTM _vtm,
  457 + (LogLevel, String) -> One logger
  458 + )=
  459 + (
  460 + WEB_Session _session
  461 + ) |->
  462 + with _T = make_translate_function(_session),
  463 + lwa = *_session.web_request.lwa,
  464 +
  465 + with table_name = get_String(lwa, "table_name", ""), // table name
  466 + with sub_dialog = get_Bool(lwa, "sub_dialog"),
  467 +
  468 + if get_hk_controller(_vtm.hk_controllers, table_name) is
  469 + {
  470 + failure then logger(logError, "can't get writer for "+table_name);redirect_to_previous,
  471 + success(controller) then
  472 + if controller.write_from_fields(db, lwa) is
  473 + {
  474 + failure then
  475 + logger(logError, "can't write into "+table_name+" with current args "+dump_web_arg_values(lwa));
  476 + set_Page_Message(_session.fields, error("Table writer: Error during insert or update"));
  477 + redirect_to_previous(_session.fields),
  478 + success(_) then
  479 + logger(logInfo, "write into "+table_name+"OK");
  480 + //with view_name = get_String(lwa, "view_name", "default"),
  481 + if sub_dialog then
  482 + ajax(json(http_ok, json_object([json_member("success", json_bool(true))])))
  483 + else
  484 + set_Page_Message(_session.fields, no_message);
  485 + redirect_to_previous(_session.fields),
  486 + //redirect(_session, "hk_c", "view_table")
  487 + }
  488 + }
  489 +.
  490 +define (WEB_Session) -> WEB_Controller_Result
  491 + get_rows_json
  492 + (
  493 + SQLite3DataBase db,
  494 + VTM _vtm
  495 + )=
  496 + (
  497 + WEB_Session _session
  498 + ) |->
  499 + with _T = make_translate_function(_session),
  500 + lwa = *_session.web_request.lwa,
  501 + lang = _session.language,
  502 + with error_result = ajax(json(http_ok,
  503 + json_object([
  504 + json_member("page_number", json_int(0)),
  505 + json_member("total_page", json_int(0)),
  506 + json_member("total_rows", json_int(0)),
  507 + json_member("rows", json_array([]))
  508 + ])
  509 + )),
  510 +
  511 + if get_String(lwa, "table_name") is // table name
  512 + {
  513 + failure then redirect_to_previous,
  514 + success(table_name) then
  515 + if get_hk_controller(_vtm.hk_controllers, table_name) is
  516 + {
  517 + failure then
  518 + println("Can't get "+table_name+" hk_controller");
  519 + error_result,
  520 + success(controller) then
  521 + //get the name of editor to use
  522 + with select_fields = get_String_list(lwa, "select_fields"),
  523 +// with view_name = get_String(lwa, "view_name", "default"),
  524 +// _filter_name = get_String(lwa, "filter_name", ""),
  525 + search = get_String(lwa, "_search", "false"),
  526 + limit = get_Int(lwa, "rows", 0),
  527 + page = get_Int(lwa, "page", 1),
  528 + sord = get_String(lwa, "sord", "asc"),
  529 + sidx = get_String(lwa, "sidx", "id"),
  530 + clause = get_String(lwa, "clause", "1 = 1"),
  531 + referer = get_HK_Referer_from_web_arg(lwa, ""),
  532 +
  533 +// with _filter = get_filter_from_name(vtm_v, view_name, _filter_name),
  534 +// println("_filter name: "+_filter.filter_name);
  535 +// println("_filter query: "+_filter.filter_string);
  536 +// with clause = if _filter.filter_string = "" then "" else if _clause = "" then _filter.filter_string else "("+_filter.filter_string+") AND "+_clause,
  537 + println("get_rows_json final clause : ["+clause+"])");
  538 + with number = controller.get_count(db, if clause = "" then "" else "WHERE "+clause),
  539 +
  540 + with total_page = if number/limit is success(result) then since result is (pages, fraction), pages + if fraction > 0 then 1 else 0 else 1,
  541 + with new_page = if total_page < page then total_page else page,
  542 + with new_sidx = if sidx = "" then "id" else sidx,
  543 + with start = limit * new_page - limit,
  544 + with limit_str = if limit = 0 then "" else " LIMIT "+start+", "+limit,
  545 + ajax(json(http_ok,
  546 + json_object([
  547 + json_member("page_number",json_int(new_page)),
  548 + json_member("total_page", json_int(total_page)),
  549 + json_member("total_rows", json_int(number)),
  550 + json_member("query_date", json_string(get_current_datetime_ISO)),
  551 + json_member("rows", controller.get_rows_json(db, select_fields, false, referer, clause, " ORDER BY "+new_sidx+" "+sord+limit_str))
  552 + ])
  553 + ))
  554 + }}
  555 +.
  556 +
  557 +public define Maybe(Int)
  558 + update_row
  559 + (
  560 + SQLite3DataBase db,
  561 + VTM _vtm,
  562 + List(Web_arg) _lwa
  563 + )=
  564 +
  565 + with table_name = get_String(_lwa, "table_name", ""), // table name
  566 +
  567 + if get_hk_controller(_vtm.hk_controllers, table_name) is
  568 + {
  569 + failure then println("can't get writer for "+table_name);failure,
  570 + success(controller) then
  571 + //forget(map((HK_Trigger trigger) |-> println("call trigger before update "+trigger.trigger_name+" ON table "+table_name); trigger.trigger_call_back(db, _session), *controller.triggers.before_update));
  572 +
  573 + if controller.write_from_fields(db, _lwa) is
  574 + {
  575 + failure then failure,
  576 + success(inserted_idx) then
  577 + //replace_Int(_session.fields, "hk_last_insert_idx", inserted_idx);
  578 + //forget(map((HK_Trigger trigger) |-> println("call trigger after update "+trigger.trigger_name+" ON table "+table_name); trigger.trigger_call_back(db, _session), *controller.triggers.after_update));
  579 + success(inserted_idx)
  580 + }
  581 + }
  582 +.
  583 +
  584 +
  585 +define (WEB_Session) -> WEB_Controller_Result
  586 + update_row
  587 + (
  588 + SQLite3DataBase db,
  589 + VTM _vtm,
  590 + (LogLevel, String) -> One logger
  591 + )=
  592 + (
  593 + WEB_Session _session
  594 + ) |->
  595 + with _T = make_translate_function(_session),
  596 + _lwa = *_session.web_request.lwa,
  597 +
  598 + with table_name = get_String(_lwa, "table_name", ""), // table name
  599 + with sub_dialog = get_Bool(_lwa, "sub_dialog"),
  600 +
  601 + if get_hk_controller(_vtm.hk_controllers, table_name) is
  602 + {
  603 + failure then logger(logError, "can't get writer for "+table_name);redirect_to_previous,
  604 + success(controller) then
  605 + forget(map((HK_Trigger trigger) |-> logger(logInfo, "call trigger before update "+trigger.trigger_name+" ON table "+table_name); trigger.trigger_call_back(db, _session), *controller.triggers.before_update));
  606 +
  607 + if controller.write_from_fields(db, *_session.web_request.lwa) is
  608 + {
  609 + failure then
  610 + logger(logError, "can't write_from_fields for table "+table_name+"\n with following arguments "+dump_web_arg_values(*_session.web_request.lwa));
  611 + set_Page_Message(_session.fields, error("Table writer: Error during insert or update"));
  612 + redirect_to_previous(_session.fields),
  613 + success(inserted_idx) then
  614 + replace_Int(_session.fields, "hk_last_insert_idx", inserted_idx);
  615 + forget(map((HK_Trigger trigger) |-> logger(logInfo, "call trigger after update "+trigger.trigger_name+" ON table "+table_name); trigger.trigger_call_back(db, _session), *controller.triggers.after_update));
  616 +
  617 + logger(logInfo, "write OK");
  618 + if sub_dialog then
  619 + ajax(json(http_ok, json_object([json_member("success", json_bool(true)), json_member("idx", json_int(inserted_idx))])))
  620 + else
  621 + //with view_name = get_String(lwa, "view_name", "default"),
  622 + set_Page_Message(_session.fields, no_message);
  623 + redirect_to_previous(_session.fields),
  624 + //redirect(_session, "hk_c", "view_table")
  625 + }
  626 + }
  627 +.
  628 +
  629 +define (WEB_Session) -> WEB_Controller_Result
  630 + get_selector
  631 + (
  632 + SQLite3DataBase db,
  633 + VTM _vtm
  634 + )=
  635 + (
  636 + WEB_Session _session
  637 + ) |->
  638 + with _T = make_translate_function(_session),
  639 + lwa = *_session.web_request.lwa,
  640 +
  641 + with table_name = get_String(lwa, "table_name", ""), // table name
  642 + with sub_dialog = get_Bool(lwa, "sub_dialog"),
  643 + with fk_filter = get_String(lwa, "fk_filter", ""),
  644 + with selected = get_String(lwa, "selected", ""),
  645 + with referer = get_HK_Referer_from_web_arg(lwa, ""),
  646 +
  647 + if get_hk_controller(_vtm.hk_controllers, table_name) is
  648 + {
  649 + failure then println("can't get writer for "+table_name);redirect_to_previous,
  650 + success(controller) then
  651 +
  652 + ajax(json(http_ok, to_html_ajax_content(format_choices(controller.get_selector(db, referer, fk_filter), init(selected)), "")))
  653 +
  654 + }
  655 +.
  656 +
  657 +define (WEB_Session) -> WEB_Controller_Result
  658 + show_apps
  659 + (
  660 + SQLite3DataBase db,
  661 + HK_Database hk_db
  662 + )=
  663 + (
  664 + WEB_Session _session
  665 + ) |->
  666 + with _T = make_translate_function(_session),
  667 + lwa = _session.web_request.lwa,
  668 + web_site_directory = get_web_site_directory(_session),
  669 + if show_apps_content( db, hk_db, _T, _session.language, web_site_directory) is
  670 + {
  671 + failure then
  672 + set_Page_Message(_session.fields, error_translate("HK_APPS_ERROR"));
  673 + redirect_to_previous(_session.fields), //compute_page_error(tb, http_ok, error("TABLE_DOESNT_EXIST")),
  674 + success(p_content) then
  675 + //set_Page_Message(_session.fields, no_message);
  676 + renderer_content(_session, p_content)
  677 + }
  678 +.
  679 +
  680 +define (WEB_Session) -> WEB_Controller_Result
  681 + grid_action
  682 + (
  683 + SQLite3DataBase db,
  684 + VTM _vtm,
  685 + (LogLevel, String) -> One logger
  686 + )=
  687 + (
  688 + WEB_Session _session
  689 + ) |->
  690 + with lwa = *_session.web_request.lwa,
  691 + with oper = get_String(lwa, "oper", "N/A"),
  692 +
  693 + if oper = "del" then
  694 + logger(logInfo, "grid: DEL operation requested");
  695 + delete_row(db, _vtm, logger)(_session)
  696 + else if oper = "edit" then
  697 + logger(logInfo, "grid: EDIT operation requested");
  698 + update_row(db, _vtm, logger)(_session)
  699 + else if oper = "add" then
  700 + logger(logInfo, "grid: ADD operation requested");
  701 + update_row(db, _vtm, logger)(_session)
  702 + else
  703 + set_Page_Message(_session.fields, error_translate("GRID_OPERATION_NOT_FOUND"));
  704 + redirect_to_previous(_session.fields) //compute_page_error(tb, http_ok, error("TABLE_DOESNT_EXIST")),
  705 +.
  706 +
  707 +define (WEB_Session) -> WEB_Controller_Result
  708 + crud_action
  709 + (
  710 + SQLite3DataBase db,
  711 + VTM _vtm,
  712 + (LogLevel, String) -> One logger
  713 + )=
  714 + (
  715 + WEB_Session _session
  716 + ) |->
  717 + with lwa = *_session.web_request.lwa,
  718 + with oper = get_String(lwa, "oper", "N/A"),
  719 +
  720 + if oper = "create" then
  721 + logger(logInfo, "crud: CREATE operation requested");
  722 + update_row(db, _vtm, logger)(_session)
  723 + else if oper = "read" then
  724 + logger(logInfo, "crud: READ operation requested");
  725 + get_rows_json(db, _vtm)(_session)
  726 + else if oper = "update" then
  727 + logger(logInfo, "crud: UPDATE operation requested");
  728 + update_row(db, _vtm, logger)(_session)
  729 + else if oper = "delete" then
  730 + logger(logInfo, "crud: DELETE operation requested");
  731 + delete_row(db, _vtm, logger)(_session)
  732 + else
  733 + set_Page_Message(_session.fields, error_translate("CRUD OPERATION_NOT_FOUND"));
  734 + redirect_to_previous(_session.fields) //compute_page_error(tb, http_ok, error("TABLE_DOESNT_EXIST")),
  735 +.
  736 +
  737 +define (WEB_Session) -> WEB_Controller_Result
  738 + import_rows_dropzone_view
  739 + (
  740 + SQLite3DataBase db
  741 + )=
  742 + (
  743 + WEB_Session _session
  744 + ) |->
  745 + with _T = make_translate_function(_session),
  746 + lwa = *_session.web_request.lwa,
  747 +
  748 + if get_String(lwa, "table_name") is
  749 + {
  750 + failure then
  751 + set_Page_Message(_session.fields, error_translate("HK_TABLE_NAME_NOT_FOUND"));
  752 + redirect_to_previous(_session.fields), //compute_page_error(tb, http_ok, error("TABLE_DOESNT_EXIST")),
  753 + success(table_name) then
  754 +// http_answer(generic_desktop_page(db, _session, product_name, import_zone(table_name, _T)))
  755 + renderer_content(import_zone(table_name, _T))
  756 + }
  757 +.
  758 +
  759 +define (WEB_Session) -> WEB_Controller_Result
  760 + hkc_import_choose_col
  761 + (
  762 + SQLite3DataBase db,
  763 + HK_Database hk_db
  764 + )=
  765 + (
  766 + WEB_Session _session
  767 + ) |->
  768 + with _T = make_translate_function(_session),
  769 + lwa = *_session.web_request.lwa,
  770 + separator = get_String(lwa, "csv_sep", ";"),
  771 + cancel_web_action_name = get_WEB_Action_Name(lwa, "cancel_ctrl", "cancel_action"),
  772 + file_name = get_String(_session.fields, "upl_file", ""),
  773 + if get_String(lwa, "table_name") is
  774 + {
  775 + failure then
  776 + set_Page_Message(_session.fields, error_translate("HK_TABLE_NAME_NOT_FOUND"));
  777 + redirect_to_previous(_session.fields), //compute_page_error(tb, http_ok, error("TABLE_DOESNT_EXIST")),
  778 + success(table_name) then
  779 +
  780 + if get_table(hk_db, table_name) is
  781 + {
  782 + failure then
  783 + set_Page_Message(_session.fields, error_translate("HK_TABLE_NAME_DOESNT_EXISTS"));
  784 + redirect_to_previous(_session.fields), //compute_page_error(tb, http_ok, error("TABLE_DOESNT_EXIST")),
  785 + success(table) then
  786 +// http_answer(
  787 +// generic_desktop_page(db, _session, product_name,
  788 +// import_choose_col(table_name, get_columns_name_and_TAG(table), separator, file_name, show_dashboard, _T)
  789 +// )
  790 + renderer_content(_session, import_choose_col(table_name, get_columns_name_and_TAG(table), separator, file_name, cancel_web_action_name, _T))
  791 + }
  792 + }
  793 +.
  794 +
  795 +define (WEB_Session) -> WEB_Controller_Result
  796 + hkc_import_file
  797 + (
  798 + (LogLevel, String) -> One logger
  799 + )=
  800 + (
  801 + WEB_Session _session
  802 + )
  803 + |->
  804 + with _T = make_translate_function(_session),
  805 + lwa = *_session.web_request.lwa,
  806 + //with separator = get_String(lwa, "csv_sep", ";"),
  807 + if file_upload_value(lwa,"file") is
  808 + {
  809 + failure then
  810 + set_Page_Message(_session.fields, error_translate("HK_UPLOAD_FILE_NAME_NOT_FOUND"));
  811 + redirect_to_previous(_session.fields),
  812 + success(upl_file) then
  813 + since upl_file is (filename, temp_filepath),
  814 + logger(logInfo, "filename="+filename+" / temp_filepath="+temp_filepath);
  815 + set_Page_Message(_session.fields, ok_translate("HK_UPLOAD_FILE_NAME_OK"));
  816 + replace_String(_session.fields, "upl_file", temp_filepath);
  817 + redirect_to_previous(_session.fields)
  818 + }
  819 +.
  820 +
  821 +define (WEB_Session) -> WEB_Controller_Result
  822 + hkc_import_execute
  823 + (
  824 + SQLite3DataBase db,
  825 + HK_Database hk_db
  826 + )=
  827 + (
  828 + WEB_Session _session
  829 + ) |->
  830 + with _T = make_translate_function(_session),
  831 + forget(hkc_import_execute(_session, db, hk_db));
  832 + redirect_to_previous
  833 +.
  834 +
  835 +
  836 +define Bool
  837 + allow_public
  838 + (
  839 + WEB_Session _session
  840 + )=
  841 + true
  842 +.
  843 +
  844 +public define List(WEB_Action)
  845 + make_hk_actions
  846 + (
  847 + SQLite3DataBase db,
  848 + HK_Database hk_db,
  849 + VTM _vtm,
  850 + (LogLevel, String) -> One logger
  851 + )=
  852 + with hk_logger = (LogLevel level, String text) |-> logger(level, "[Hayamiki] "+text),
  853 +
  854 + [
  855 + //action lors de la demande de création d'un user dans un domaine
  856 + //do_change_language,
  857 + web_action(hkc_edit_table, https, allow_public, edit_table(db, _vtm)),
  858 + web_action(hkc_ajax_edit_table, https, allow_public, ajax_edit_table(db, _vtm)),
  859 + web_action(hkc_view_editor, https, allow_public, view_editor(db, _vtm, false, false)),
  860 + web_action(hkc_grid_view, https, allow_public, grid_view_json(db, _vtm)),
  861 + web_action(hkc_grid_action, https, allow_public, grid_action(db, _vtm, hk_logger)),
  862 + web_action(hkc_query, https, allow_public, crud_action(db, _vtm, hk_logger)),
  863 +
  864 + web_action(hkc_combo_search, https, allow_public, combo_search(db, _vtm)),
  865 + web_action(hkc_selector, https, allow_public, get_selector(db, _vtm)), //get dropdown HMTL content
  866 + web_action(hkc_list_view, https, allow_public, view_editor(db, _vtm, false, false)),
  867 + web_action(hkc_list_view_name, https, allow_public, view_editor(db, _vtm, true, false)),
  868 + web_action(hkc_list_view_filter, https, allow_public, view_editor(db, _vtm, false, true)),
  869 + web_action(hkc_save_row, https, allow_public, save_row(db, _vtm, hk_logger)),
  870 + web_action(hkc_update_row, https, allow_public, update_row(db, _vtm, hk_logger)),
  871 + web_action(hkc_cancel, https, allow_public, (WEB_Session _) |-> redirect_to_previous),
  872 + web_action(hkc_delete_row, https, allow_public, delete_row(db, _vtm, hk_logger)),
  873 + web_action(hkc_show_apps, https, allow_public, show_apps(db, hk_db)),
  874 + web_action(hkc_import_dropzone, https, allow_public, import_rows_dropzone_view(db)),
  875 + web_action(hkc_import_file, https, allow_public, hkc_import_file(hk_logger)),
  876 + web_action(hkc_import_choose_col, https, allow_public, hkc_import_choose_col(db, hk_db)),
  877 + web_action(hkc_import_execute, https, allow_public, hkc_import_execute(db, hk_db)),
  878 +
  879 + web_action(hkc_file_upload, https, allow_public, hkc_upload(db)),
  880 + web_action(hkc_file_download, https, allow_public, hkc_download(db)),
  881 + ]
  882 +.
  883 +
  884 +
... ...
src/web_controller/hayamiki_plugin.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 18/01/2020
  5 + * Time: 21:02
  6 + * © David RENÉ
  7 + */
  8 +
  9 +read tools/basis.anubis
  10 +read system/logger.anubis
  11 +read xlib/web/plugin/plugin.anubis
  12 +read xlib/web/types/making_a_web_site.anubis
  13 +read xlib/web/types/web_session.anubis
  14 +read controller.anubis
  15 +
  16 +define Maybe(HTML_Partial_Content)
  17 + plugin_get_typed_content
  18 + (
  19 + SQLite3DataBase db,
  20 + WEB_Session _session,
  21 + String type
  22 + )=
  23 + println("plugin_get_typed_content for HYAMIKI type "+type);
  24 + if type = "LEFT_MENU" then failure
  25 + else if type = "TOOLBAR" then failure
  26 + else if type = "CONTROL_PANEL" then failure
  27 + else
  28 + failure
  29 +.
  30 +
  31 +global define WEB_Plugin
  32 + hayamiki_web_plugin_lib
  33 + =
  34 + web_plugin(
  35 + "HAYAMIKI",
  36 + "BASE",
  37 + plugin_get_controller,
  38 + plugin_get_typed_content
  39 + )
  40 +.
... ...
src/web_controller/hkc_files_management.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 20/08/2019
  5 + * Time: 16:47
  6 + * © David RENÉ
  7 + */
  8 +
  9 +read system/files.anubis
  10 +read xlib/web/controllers_web_site.anubis
  11 +read database/generated/fs_file.anubis
  12 +read xlib/web_controllers/language/language_management.anubis
  13 +read xlib/web_controllers/fs/fs_core.anubis
  14 +read xlib/web/CXM_json.anubis
  15 +
  16 +define DB_id
  17 + get_new_hkc_id_from_fs
  18 + (
  19 + SQLite3DataBase db
  20 + )
  21 + =
  22 + if get_fs_file_by_clause(db, "res_model = 'hkc' ORDER BY res_id DESC") is
  23 + {
  24 + failure then db_id(0),
  25 + success(fs_file) then db_id(fs_file.res_id + 1)
  26 + }
  27 +.
  28 +
  29 +public define (WEB_Session) -> WEB_Controller_Result
  30 + hkc_upload
  31 + (
  32 + SQLite3DataBase db
  33 + )=
  34 + (
  35 + WEB_Session _session
  36 + )|->
  37 + with _T = make_translate_function(_session),
  38 + lwa = *_session.web_request.lwa,
  39 + if file_upload_value(lwa,"upload") is
  40 + {
  41 + failure then
  42 + //set_Page_Message(_session.fields, error_translate("HK_UPLOAD_FILE_NAME_NOT_FOUND"));
  43 + ajax(json(http_ok, json_object([json_member("uploaded", json_int(0)),
  44 + json_member("error", json_object([json_member("message", json_string("File not found"))]))]))),
  45 + success(upl_file) then
  46 + //uploaded filename and temporary location of this file
  47 + since upl_file is (filename, temp_filepath),
  48 + println("filename="+filename+" / temp_filepath="+temp_filepath);
  49 + with hkc_file_id = get_new_hkc_id_from_fs(db),
  50 + with root_dir = app_fs+"hkc/"+to_fs_folder(hkc_file_id),
  51 + make_directories(root_dir);
  52 +
  53 +// with end_dir = current_dir + extract_dir(upload_full_path),
  54 + with final_filename = root_dir + filename,
  55 +
  56 + if move_file(temp_filepath, final_filename) then
  57 + //if the file is image create thumbnail
  58 +// since get_MIME_from_filename(final_filename) is mime(mime_type, subtype, _),
  59 +// (if mime_type = "image" then
  60 +// create_thumbnail(root_dir + end_dir, filename, "64x64");
  61 +// create_thumbnail(root_dir + end_dir, filename, "128x128")
  62 +// else
  63 +// unique);
  64 + set_file(db, "hkc", hkc_file_id, filename, "file", filename, "hkc/"+to_fs_folder(hkc_file_id));
  65 + ajax(json(http_ok, json_object([json_member("uploaded", json_int(1)),
  66 + json_member("fileName", json_string(filename)),
  67 + json_member("url", json_string("?aws_controller=hk_c&aws_action=download&file="+hkc_file_id))])))
  68 + else
  69 + println("move_file error from ["+temp_filepath+"] to ["+final_filename+"]");
  70 + ajax(json(http_ok, json_object([json_member("uploaded", json_int(0)),
  71 + json_member("error", json_object([json_member("message", json_string("move_file error from temporary location"))]))]))),
  72 +
  73 + }
  74 +.
  75 +
  76 +public define (WEB_Session) -> WEB_Controller_Result
  77 + hkc_download
  78 + (
  79 + SQLite3DataBase db,
  80 + )=
  81 + (
  82 + WEB_Session _session
  83 + ) |->
  84 + with _T = make_translate_function(_session),
  85 + web_site_public_dir = get_String(_session.fields, "AWS_WEB_SITE_PUBLIC_DIR", ""),
  86 + lwa = *_session.web_request.lwa,
  87 + file_id = get_DB_id(lwa, "file"),
  88 +
  89 + if get_file(db, "hkc", file_id, "file") is
  90 + {
  91 + failure then send_file(web_site_public_dir+"img/missing-file.png", inline),
  92 + success(file) then send_file(file, inline)
  93 + }
  94 +.
... ...
src/web_controller/types/generated/fs_file.anubis 0 → 100644
  1 +/*
  2 + * Created by 伝作 (Densaku).
  3 + * Types & Messages generator written by フランスのトトロ aka (David RENÉ)
  4 + * Date: 2020-04-11
  5 + * Time: 10:14:04
  6 + *
  7 + */
  8 +
  9 +transmit system/muscle.anubis
  10 +transmit system/convert.anubis
  11 +transmit tools/basis.anubis
  12 +
  13 +transmit xlib/database/db_types.anubis
  14 +transmit xlib/database/db_types.anubis
  15 +
  16 +
  17 +
  18 +public type Fs_file:
  19 + fs_file(
  20 + DB_id id,
  21 + DB_datetime create_date,
  22 + DB_datetime write_date,
  23 + String res_model,
  24 + String res_name,
  25 + Int file_size,
  26 + Int res_id,
  27 + String description,
  28 + String res_field,
  29 + String mimetype,
  30 + String name,
  31 + String url,
  32 + String checksum,
  33 + String datas_fname,
  34 + String path
  35 + )
  36 +.
  37 +
  38 + Fs_file message format
  39 + ======================
  40 +
  41 +
  42 +public define Message
  43 + to_Message
  44 + (
  45 + Fs_file _fs_file
  46 + )=
  47 + with _fs_file_message = message((Word32)0), //
  48 + forget(add_string(_fs_file_message, "__TYPE__", "Fs_file"));
  49 + if _fs_file is
  50 + {
  51 + //Alternative fs_file
  52 + fs_file(_id, _create_date, _write_date, _res_model, _res_name, _file_size, _res_id, _description, _res_field, _mimetype, _name, _url, _checksum, _datas_fname, _path) then
  53 + forget(add_string(_fs_file_message, "__TYPE_ALT__", "fs_file"));
  54 + // [type = DB_id] fs_file.id
  55 + forget(add_message(_fs_file_message, "id", to_Message(_id)));
  56 + // [type = DB_datetime] fs_file.create_date
  57 + forget(add_message(_fs_file_message, "create_date", to_Message(_create_date)));
  58 + // [type = DB_datetime] fs_file.write_date
  59 + forget(add_message(_fs_file_message, "write_date", to_Message(_write_date)));
  60 + // [type = String] fs_file.res_model
  61 + forget(add_string(_fs_file_message, "res_model", _res_model));
  62 + // [type = String] fs_file.res_name
  63 + forget(add_string(_fs_file_message, "res_name", _res_name));
  64 + // [type = Int] fs_file.file_size
  65 + forget(add_string(_fs_file_message, "file_size", to_String(_file_size)));
  66 + // [type = Int] fs_file.res_id
  67 + forget(add_string(_fs_file_message, "res_id", to_String(_res_id)));
  68 + // [type = String] fs_file.description
  69 + forget(add_string(_fs_file_message, "description", _description));
  70 + // [type = String] fs_file.res_field
  71 + forget(add_string(_fs_file_message, "res_field", _res_field));
  72 + // [type = String] fs_file.mimetype
  73 + forget(add_string(_fs_file_message, "mimetype", _mimetype));
  74 + // [type = String] fs_file.name
  75 + forget(add_string(_fs_file_message, "name", _name));
  76 + // [type = String] fs_file.url
  77 + forget(add_string(_fs_file_message, "url", _url));
  78 + // [type = String] fs_file.checksum
  79 + forget(add_string(_fs_file_message, "checksum", _checksum));
  80 + // [type = String] fs_file.datas_fname
  81 + forget(add_string(_fs_file_message, "datas_fname", _datas_fname));
  82 + // [type = String] fs_file.path
  83 + forget(add_string(_fs_file_message, "path", _path)),
  84 +
  85 + };
  86 + _fs_file_message
  87 +.
  88 +
  89 +public define Maybe(Fs_file)
  90 + from_Message
  91 + (
  92 + Message _fs_file_message
  93 + )=
  94 + if find_string(_fs_file_message, "__TYPE__") is {failure then failure, success(__type__) then
  95 + if find_string(_fs_file_message, "__TYPE_ALT__") is {failure then failure, success(__type_alt__) then
  96 + if __type__ = "Fs_file" then
  97 + //Alternative fs_file
  98 + if __type_alt__ = "fs_file" then //Alternative fs_file
  99 + // [type = DB_id] fs_file.id
  100 + if find_message(_fs_file_message, "id") is {failure then failure, success(_id__msg) then
  101 + if (Maybe(DB_id))from_Message(_id__msg) is {failure then failure, success(_id_) then
  102 + // [type = DB_datetime] fs_file.create_date
  103 + if find_message(_fs_file_message, "create_date") is {failure then failure, success(_create_date__msg) then
  104 + if (Maybe(DB_datetime))from_Message(_create_date__msg) is {failure then failure, success(_create_date_) then
  105 + // [type = DB_datetime] fs_file.write_date
  106 + if find_message(_fs_file_message, "write_date") is {failure then failure, success(_write_date__msg) then
  107 + if (Maybe(DB_datetime))from_Message(_write_date__msg) is {failure then failure, success(_write_date_) then
  108 + // [type = String] fs_file.res_model
  109 + if find_string(_fs_file_message, "res_model") is {failure then failure, success(_res_model_) then
  110 + // [type = String] fs_file.res_name
  111 + if find_string(_fs_file_message, "res_name") is {failure then failure, success(_res_name_) then
  112 + // [type = Int] fs_file.file_size
  113 + if find_string(_fs_file_message, "file_size") is {failure then failure, success(__file_size_) then
  114 + if decimal_scan(__file_size_) is { failure then failure, success(_file_size_) then
  115 + // [type = Int] fs_file.res_id
  116 + if find_string(_fs_file_message, "res_id") is {failure then failure, success(__res_id_) then
  117 + if decimal_scan(__res_id_) is { failure then failure, success(_res_id_) then
  118 + // [type = String] fs_file.description
  119 + if find_string(_fs_file_message, "description") is {failure then failure, success(_description_) then
  120 + // [type = String] fs_file.res_field
  121 + if find_string(_fs_file_message, "res_field") is {failure then failure, success(_res_field_) then
  122 + // [type = String] fs_file.mimetype
  123 + if find_string(_fs_file_message, "mimetype") is {failure then failure, success(_mimetype_) then
  124 + // [type = String] fs_file.name
  125 + if find_string(_fs_file_message, "name") is {failure then failure, success(_name_) then
  126 + // [type = String] fs_file.url
  127 + if find_string(_fs_file_message, "url") is {failure then failure, success(_url_) then
  128 + // [type = String] fs_file.checksum
  129 + if find_string(_fs_file_message, "checksum") is {failure then failure, success(_checksum_) then
  130 + // [type = String] fs_file.datas_fname
  131 + if find_string(_fs_file_message, "datas_fname") is {failure then failure, success(_datas_fname_) then
  132 + // [type = String] fs_file.path
  133 + if find_string(_fs_file_message, "path") is {failure then failure, success(_path_) then
  134 +
  135 + success(fs_file(_id_, _create_date_, _write_date_, _res_model_, _res_name_, _file_size_, _res_id_, _description_, _res_field_, _mimetype_, _name_, _url_, _checksum_, _datas_fname_, _path_))
  136 + }}}}}}}}}}}}}}}}}}}}
  137 + else
  138 + failure //No valid Alternative found !
  139 + else
  140 + failure //Type not found in message !
  141 + }}
  142 +.
  143 +
... ...
xlib @ e4322160bc9
1   -Subproject commit 42087dcf0b412fabb5b67106041c711206c2281f
  1 +Subproject commit e4322160bc99742f8283441ca12a823993ab8793
... ...