form.js (2886B)
1 // 2 3 4 5 6 /** 7 * HTTP-Antwort auf einen POST-Request auswerten. 8 * 9 * @param data Formulardaten 10 * @param status Status 11 * @param element 12 */ 13 function doResponse(data,status,element) 14 { 15 if ( status != 'success' ) 16 { 17 alert('Server error: ' + status); 18 return; 19 } 20 21 // Hinweismeldungen in Statuszeile anzeigen 22 $.each(data['notices'], function(idx,value) { 23 24 // Bei asynchronen Requests wird zusätzlich eine Browser-Notice erzeugt, da der 25 // Benutzer bei länger laufenden Aktionen vielleicht das Tab oder Fenster 26 // gewechselt hat. 27 let notifyBrowser = $(element).data('async') == 'true'; 28 29 Openrat.Workbench.notify(value.type, value.name, value.status, value.text, value.log, notifyBrowser ); // Notice anhängen. 30 31 if ( value.status == 'ok' ) // Kein Fehler? 32 { 33 // Kein Fehler 34 // Nur bei synchronen Prozessen soll nach Verarbeitung der Dialog 35 // geschlossen werden. 36 if ( $(element).data('async') != 'true' ) 37 { 38 // Verarbeitung erfolgt synchron, das heißt, dass jetzt der evtl. geöffnete Dialog 39 // beendet wird. 40 $('#dialog > .view').html('').hide(); // Dialog beenden 41 $('#dialog').removeClass('is-open').addClass('is-closed'); // Dialog schließen 42 43 // Da gespeichert wurde, jetzt das 'dirty'-flag zurücksetzen. 44 $(element).closest('div.panel').find('div.header ul.views li.action.active').removeClass('dirty'); 45 } 46 47 let afterSuccess = $(element).data('afterSuccess'); 48 if ( afterSuccess ) 49 { 50 if ( afterSuccess == 'reloadAll' ) 51 { 52 Openrat.Workbench.reloadAll(); 53 } 54 } else { 55 Openrat.Workbench.reloadViews(); 56 } 57 58 $(document).trigger('orDataChanged'); 59 } 60 else 61 // Server liefert Fehler zurück. 62 { 63 } 64 }); 65 66 // Felder mit Fehleingaben markieren, ggf. das übergeordnete Fieldset aktivieren. 67 $.each(data['errors'], function(idx,value) { 68 $('input[name='+value+']').addClass('error').parent().addClass('error').parents('fieldset').addClass('show').addClass('open'); 69 }); 70 71 // Jetzt das erhaltene Dokument auswerten. 72 73 // Hinweismeldungen in Statuszeile anzeigen 74 if ( ! data.control ) { 75 /* 76 $('div.panel div.status').html('<div />'); 77 $('div.panel div.status div').append( data ); 78 $('div.panel div.status div').delay(3000).fadeOut(2500); 79 */ 80 //alert( value.text ); 81 }; 82 83 84 if ( data.control.redirect ) 85 // Redirect 86 window.location.href = data.control.redirect; 87 88 /* nein, das ist Dialoglogik. 89 if ( data.control.new_style ) 90 // CSS-Datei setzen 91 setUserStyle( data.control.new_style ); 92 */ 93 94 /* nein, das ist Dialoglogik. 95 96 else if ( data.control.next_view ) 97 // Nächste View aufrufen 98 //startView( $(element).closest('div.content'),data.control.next_view ); 99 ; 100 // Views gibt es so nicht mehr. Rauswerfen? 101 */ 102 //if ( data.errors.length==0 ) 103 // Aktuelle View neu laden 104 // $(element).closest('div.panel').find('li.action.active').orLoadView(); 105 106 } 107