$(document).ready(function() { var dlg_msg = $('#dialog-message'); var dlg_django_msg = $('#django-message'); $('form', '#dialogs').each(function() { var form = $(this); var options = { dataType: 'json', timeout: 30000, beforeSubmit: function() { $(':input', form).attr('disabled', 'disabled'); $('button', form).attr('disabled', 'disabled'); }, complete: function(data) { $(':input', form).removeAttr('disabled'); $('button', form).removeAttr('disabled'); }, /*beforeSend: function() { $('.errors-layout', form).html('').hide(); },*/ success: function(data) { clear_form_errors(form); if (data.success) { if (form[0].id == 'client-edit-form') { $('#id_client_text').hide() $('#id_client-deck').html('X' + data.name + ''); $('#id_client').html(''); $('#id_client').trigger('change'); } form.dialog('close'); form.clearForm(); if (data.message) { if (dlg_msg) { dlg_msg.dialog({title: data.message['title']}).html(data.message['msg']); if (data.reload) dlg_msg.one('dialogbeforeclose', function(){window.location.reload(true);}); dlg_msg.dialog('open'); } } if (data.action){ if (data.action == 'client-add'){ $(data.row_html).insertAfter('#clients_header_row'); window.clients_edit_del_update(); $('table#clients').show(); } if (data.action == 'client-edit'){ $("tr#client_" + data.id).replaceWith(data.row_html); window.clients_edit_del_update(); } if (data.action == 'client-delete'){ $("tr#client_" + data.id).remove(); } } else if (data.reload) { window.location.reload(true); } } else { // process form errors if (data.form_errors) { var captcha = $(form).find('img.captcha'); if (captcha) { $(form).find('a.captcha_refresh').click(); } var errors = $('.errors-layout', form); var html = ''; errors.append(html).show(); } // process fields errors for (var key in data.field_errors) { if (data.field_errors.hasOwnProperty(key)) { var value = data.field_errors[key]; var input = $('[name^='+key+'],[field^='+key+']', form); input.addClass('ui-state-error'); // highlight field } } } } }; form.ajaxForm(options); form .ajaxStart(function(){ $.blockUI.defaults.overlayCSS = {}; $.blockUI.defaults.css = {}; $.blockUI({message: '

Пожалуйста, подождите...

', baseZ: '9999'}); }) .ajaxStop(function(){ $.unblockUI(); }); }); dlg_msg.dialog({ modal: true, autoOpen: false, //resizable: false, //width: 310, buttons: { 'Закрыть': function() { $(this).dialog('close'); } } }); dlg_django_msg.dialog({ modal: true, autoOpen: true, //resizable: false, //width: 310, buttons: { 'Закрыть': function() { $(this).dialog('close'); } } }); }); function clear_form_errors(form) { $('.errors-layout', form).html('').hide(); form.find(':input').each(function() { $(this).removeClass('ui-state-error'); // remove fields highlight }); } function update_form_fields(form, obj_values) { for (var key in obj_values) if (obj_values.hasOwnProperty(key)) { var value = obj_values[key]; var input = $(':input[name="' + key + '"]', form); if (input) { var input_type = input.attr('type'); if (input_type == 'checkbox' || input_type == 'radio') input.attr('checked', value); else input.val(value); } } }