Commit ab8da554697659324f79711daed7a935fc284268
1 parent
d288cf63
[+] manage the trigger before and after for delete_row
Showing
5 changed files
with
38 additions
and
12 deletions
Show diff stats
hayamiki_lib @ 79e0a36fdf9
| 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