Revision e39679e4
Von Moritz Bunkus vor etwa 8 Jahren hinzugefügt
js/kivi.js | ||
---|---|---|
312 | 312 |
|
313 | 313 |
params = params || { }; |
314 | 314 |
var id = params.id || 'jqueryui_popup_dialog'; |
315 |
var custom_close = params.dialog ? params.dialog.close : undefined; |
|
315 | 316 |
var dialog_params = $.extend( |
316 | 317 |
{ // kivitendo default parameters: |
317 | 318 |
width: 800 |
... | ... | |
321 | 322 |
// User supplied options: |
322 | 323 |
params.dialog || { }, |
323 | 324 |
{ // Options that must not be changed: |
324 |
close: function(event, ui) { if (params.url || params.html) dialog.remove(); else dialog.dialog('close'); } |
|
325 |
close: function(event, ui) { |
|
326 |
if (custom_close) |
|
327 |
custom_close(); |
|
328 |
|
|
329 |
if (params.url || params.html) |
|
330 |
dialog.remove(); |
|
331 |
else |
|
332 |
dialog.dialog('close'); |
|
333 |
} |
|
325 | 334 |
}); |
326 | 335 |
|
327 | 336 |
if (!params.url && !params.html) { |
Auch abrufbar als: Unified diff
kivi.popup_dialog(): übergebenen close-Handler auch ausführen
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.