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,16 +440,41 @@ define (WEB_Session) -> WEB_Controller_Result | ||
| 440 | ( | 440 | ( |
| 441 | WEB_Session _session | 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 | define (WEB_Session) -> WEB_Controller_Result | 479 | define (WEB_Session) -> WEB_Controller_Result |
| 455 | save_row | 480 | save_row |
src/web_controller/hayamiki_plugin.anubis
| @@ -37,7 +37,7 @@ global define WEB_Plugin | @@ -37,7 +37,7 @@ global define WEB_Plugin | ||
| 37 | web_plugin( | 37 | web_plugin( |
| 38 | "HAYAMIKI", | 38 | "HAYAMIKI", |
| 39 | "BASE", | 39 | "BASE", |
| 40 | - "1.19.0", | 40 | + "1.19.1", |
| 41 | _Int_to_ISO_8601_datetime(to_Int(__TIME__)), | 41 | _Int_to_ISO_8601_datetime(to_Int(__TIME__)), |
| 42 | plugin_get_controller, | 42 | plugin_get_controller, |
| 43 | plugin_get_typed_content | 43 | plugin_get_typed_content |