Commit ab8da554697659324f79711daed7a935fc284268

Authored by David RENÉ
1 parent d288cf63

[+] manage the trigger before and after for delete_row

hayamiki_lib @ 79e0a36fdf9
1   -Subproject commit 2c3918d50e39f154076525d5bdf90ccb45264cae
  1 +Subproject commit 79e0a36fdf9a2bb34e0245b53e6a5077b428affa
... ...
make_lib.bat 0 → 100644
  1 +anubis.1.19.exe -I"./;./src;./src/version" -tab:2 -pre -O src\web_controller\hayamiki_plugin.anubis
... ...
src/web_controller/hayamiki.anubis
... ... @@ -440,16 +440,41 @@ define (WEB_Session) -> WEB_Controller_Result
440 440 (
441 441 WEB_Session _session
442 442 ) |->
443   - if hk_delete_row(*_session.web_request.lwa, db) is
  443 + with _T = make_translate_function(_session),
  444 + _lwa = *_session.web_request.lwa,
  445 +
  446 + with table_name = get_String(_lwa, "table_name", ""), // table name
  447 +
  448 + if get_hk_controller(_vtm.hk_controllers, table_name) is
444 449 {
445   - error(error_str) then
446   - set_Page_Message(_session.fields, error_translate(error_str));
447   - redirect_to_previous(_session.fields),
448   - ok(ok_str) then
449   - logger(logInfo, "delete ok");
450   - set_Page_Message(_session.fields, ok_translate(ok_str));
451   - redirect_to_previous(_session.fields),
452   - }.
  450 + failure then logger(logError, "can't get hk_controller for "+table_name);redirect_to_previous(_session.fields),
  451 + success(controller) then
  452 + forget(map((HK_Trigger trigger)
  453 + |->
  454 + logger(logInfo, "call trigger before delete "+trigger.trigger_name+" ON table "+table_name);
  455 + trigger.trigger_call_back(db, _session),
  456 + *controller.triggers.before_delete));
  457 +
  458 + if hk_delete_row(*_session.web_request.lwa, db) is
  459 + {
  460 + error(error_str) then
  461 + set_Page_Message(_session.fields, error_translate(error_str));
  462 + redirect_to_previous(_session.fields),
  463 +
  464 + ok(ok_str) then
  465 + forget(map((HK_Trigger trigger)
  466 + |->
  467 + logger(logInfo, "call trigger after delete "+trigger.trigger_name+" ON table "+table_name);
  468 + trigger.trigger_call_back(db, _session),
  469 + *controller.triggers.after_delete));
  470 +
  471 + logger(logInfo, "delete ok");
  472 +
  473 + set_Page_Message(_session.fields, ok_translate(ok_str));
  474 + redirect_to_previous(_session.fields),
  475 + }
  476 + }
  477 +.
453 478  
454 479 define (WEB_Session) -> WEB_Controller_Result
455 480 save_row
... ...
src/web_controller/hayamiki_plugin.anubis
... ... @@ -37,7 +37,7 @@ global define WEB_Plugin
37 37 web_plugin(
38 38 "HAYAMIKI",
39 39 "BASE",
40   - "1.19.0",
  40 + "1.19.1",
41 41 _Int_to_ISO_8601_datetime(to_Int(__TIME__)),
42 42 plugin_get_controller,
43 43 plugin_get_typed_content
... ...
xlib @ 0555931cf45
1   -Subproject commit a66ad216efcbfe28e4f095ffc68d29e2b8f08412
  1 +Subproject commit 0555931cf45f083fa29cd976aadf081a4f3c1d78
... ...