Index: openacs-4/packages/acs-templating/tcl/head-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/head-procs.tcl,v diff -u -N -r1.20.2.8 -r1.20.2.9 --- openacs-4/packages/acs-templating/tcl/head-procs.tcl 15 Sep 2016 10:00:37 -0000 1.20.2.8 +++ openacs-4/packages/acs-templating/tcl/head-procs.tcl 28 Sep 2016 11:17:04 -0000 1.20.2.9 @@ -758,6 +758,44 @@ return $event_handlers } +ad_proc template::add_acs_confirm_handler { + {-message "Are you sure?"} + {-CSSclass "acs-confirm"} + {-id} +} { + Register an event handler for confirmation dialogs + for elements either with an specified ID or for elements + of a CSS class (default "acs_confirm"). + + @id optional ID for HTML element + @message Message to be displayed in the confirmation dialog + @author Gustaf Neumann +} { + if {[info exists id]} { + template::add_body_script -script [subst { + document.getElementById('$id').addEventListener('click', function (event) { + if (!confirm('$message')) { + event.preventDefault(); + }; + }, false); + }] + } else { + template::add_body_script -script [subst { + var elems = document.getElementsByClassName('$CSSclass'); + for (var i = 0, l = elems.length; i < l; i++) { + elems[i].addEventListener('click', function (event) { + if (!confirm('$message')) { + event.preventDefault(); + }; + }, false); + } + }] + } + template::add_body_script -script $script +} + + + # Local variables: # mode: tcl # tcl-indent-level: 4 Index: openacs-4/packages/xotcl-core/tcl/generic-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/generic-procs.tcl,v diff -u -N -r1.97.2.5 -r1.97.2.6 --- openacs-4/packages/xotcl-core/tcl/generic-procs.tcl 12 Sep 2016 10:47:07 -0000 1.97.2.5 +++ openacs-4/packages/xotcl-core/tcl/generic-procs.tcl 28 Sep 2016 11:17:04 -0000 1.97.2.6 @@ -446,11 +446,11 @@ set elements [concat $elements [my set elements]] if {!$no_delete_p} { set title [_ xotcl-core.delete_item] - set confirm "[_ acs-subsite.Delete]?" + template::add_confirm_handler -class acs-confirm -message [_ acs-subsite.Delete]? lappend elements \ delete [list \ link_url_col delete_url \ - link_html [list title $title onClick "return(confirm('${confirm}'));"] \ + link_html [list title $title class acs-confirm] \ display_template [list ] \ sub_class narrow] }