From e39679e479c62ee194b943b6b53fd9f6dccd3c36 Mon Sep 17 00:00:00 2001 From: Moritz Bunkus Date: Wed, 4 Jan 2017 17:01:12 +0100 Subject: [PATCH] =?utf8?q?kivi.popup=5Fdialog():=20=C3=BCbergebenen=20clos?= =?utf8?q?e-Handler=20auch=20ausf=C3=BChren?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Die Funktion kivi.popup_dialog() installiert ihren eigenen close-Handler, um den in dem Moment noch vorhandenen Dialog zu entfernen (sofern der Dialog aus HTML-Code erzeugt oder von einer URL nachgeladen wurde) bzw. zu schließen (sofern ein vorher bereits im DOM existierendes Element angezeigt wurde). Dadurch werden vom Aufrufer vergebene close-Handler überschrieben. Da es mehrere Stellen im Programm gibt, an denen ein close-Handler übergeben wird, wurde kivi.popup_dialog() nun so erweitert, dass es den übergebenen Handler speichert und zuerst ausführt und erst anschließend das Entfernen respektive Schließen durchführt. --- js/kivi.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/js/kivi.js b/js/kivi.js index 058c8c567..c935c34cd 100644 --- a/js/kivi.js +++ b/js/kivi.js @@ -312,6 +312,7 @@ namespace("kivi", function(ns) { params = params || { }; var id = params.id || 'jqueryui_popup_dialog'; + var custom_close = params.dialog ? params.dialog.close : undefined; var dialog_params = $.extend( { // kivitendo default parameters: width: 800 @@ -321,7 +322,15 @@ namespace("kivi", function(ns) { // User supplied options: params.dialog || { }, { // Options that must not be changed: - close: function(event, ui) { if (params.url || params.html) dialog.remove(); else dialog.dialog('close'); } + close: function(event, ui) { + if (custom_close) + custom_close(); + + if (params.url || params.html) + dialog.remove(); + else + dialog.dialog('close'); + } }); if (!params.url && !params.html) { -- 2.20.1