From c149c4a8a3ff14b64c5bc3586a8b2bddc24b4ba5 Mon Sep 17 00:00:00 2001 From: Jerry Jalava Date: Fri, 4 Jan 2008 00:21:30 +0200 Subject: [PATCH] Added check if the form has changed before updating --- js/ajatus.forms.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/js/ajatus.forms.js b/js/ajatus.forms.js index 5f69506..b33985e 100644 --- a/js/ajatus.forms.js +++ b/js/ajatus.forms.js @@ -32,9 +32,7 @@ $('input[@type=submit][name*=save]', jqform).bind('click', function(){ var status = $.ajatus.forms.process.normal(jqform.formToArray(false)); - if (status) { - $.ajatus.forms.active = false; - } + $.ajatus.forms.active = false; return false; }); @@ -122,6 +120,9 @@ var parted_names_done = []; + var prev_values_count = 0; + var changed_values_count = 0; + $.each(form_data, function(i,row){ // console.log('i: '+i+' row.name: '+row.name+' row.value: '+row.value); if (row.name.toString().match(/__(.*?)/)) { @@ -180,6 +181,7 @@ widget['config'] = $.ajatus.converter.parseJSON(r.value); } else if (r.name == 'widget['+row_key+':prev_val]') { prev_val = $.ajatus.converter.parseJSON(r.value); + prev_values_count += 1; } else if (r.name == 'widget['+row_key+':additional]') { additional = $.ajatus.converter.parseJSON(r.value); } else if (r.name == 'widget['+row_key+':required]') { @@ -208,9 +210,9 @@ $.each(form_data, function(x,r){ var np = []; if (r.name.toString().match(/\|/g)) { - console.log(r.name+" matches with |"); + // console.log(r.name+" matches with |"); np = r.name.toString().split("|"); - console.log(np); + // console.log(np); if (np[0] == name_parts[0]) { if (typeof row_val[np[1]] == 'undefined') { row_val[np[1]] = r.value; @@ -226,6 +228,12 @@ item['val'] = wdgt.value_on_save(row.value, prev_val, false); } + if (prev_val) { + if (wdgt.has_data_changed(item['val'], prev_val)) { + changed_values_count += 1; + } + } + item['widget'] = widget; if (additional) { @@ -279,6 +287,12 @@ $.ajatus.forms.process.doc = $.ajatus.document.modify_metadata(doc, new_metadata); + if ( prev_values_count > 0 + && changed_values_count == 0) + { + $.ajatus.forms.process.has_errors = true; + } + return $.ajatus.forms.process.doc; }, normal: function(form_data) { -- 2.11.4.GIT