fix: reset form button not resetting lock

Signed-off-by: Chirayu Chiripal <chirayu.chiripal@gmail.com>
This commit is contained in:
Chirayu Chiripal 2014-06-14 11:39:04 +05:30
parent b857076fd1
commit 967c8f641c

View File

@ -165,6 +165,15 @@ var AJAX = {
$('#lock_page_icon').html('');
}
},
/**
* resets the lock
*
* @return void
*/
resetLock: function() {
AJAX.lockedTargets = {};
$('#lock_page_icon').html('');
},
/**
* Event handler for clicks on links and form submissions
*
@ -183,7 +192,7 @@ var AJAX = {
return true;
} else if ($(this).hasClass('ajax') || $(this).hasClass('disableAjax')) {
//reset the lockedTargets object, as specified AJAX operation has finished
AJAX.lockedTargets = {};
AJAX.resetLock();
return true;
} else if (href && href.match(/^#/)) {
return true;
@ -211,9 +220,7 @@ var AJAX = {
) {
return false;
}
//reset
AJAX.lockedTargets = {};
$('#lock_page_icon').html('');
AJAX.resetLock();
if (AJAX.active === true) {
// Cancel the old request if abortable, when the user requests
@ -560,6 +567,35 @@ AJAX.registerOnload('functions.js', function () {
$(this).data('onsubmit', this.onsubmit).attr('onsubmit', '');
}
});
/**
* Attach event listener to events when user modify visible
* Input or Textarea fields to make changes in forms
*/
$('#page_content').on(
'keyup change',
'form.lock-page textarea, ' +
'form.lock-page input[type="text"]',
AJAX.lockPageHandler
);
/**
* Reset lock when lock-page form reset event is fired
* Note: reset does not bubble in all browser so attach to
* form directly.
*/
$('form.lock-page').on('reset', function(event){
AJAX.resetLock();
});
});
/**
* Unbind all event handlers before tearing down a page
*/
AJAX.registerTeardown('functions.js', function () {
$('#page_content').off('keyup change',
'form.lock-page textarea, ' +
'form.lock-page input[type="text"]'
);
$('form.lock-page').off('reset');
});
/**
@ -922,17 +958,6 @@ $(function () {
$('a').live('click', AJAX.requestHandler);
$('form').live('submit', AJAX.requestHandler);
/**
* Attach event listener to events when user modify visible
* Input or Textarea fields to make changes in forms
*/
$(document).on(
'keyup change',
'#page_content form.lock-page textarea, ' +
'#page_content form.lock-page input[type="text"]',
AJAX.lockPageHandler
);
/**
* Gracefully handle fatal server errors
* (e.g: 500 - Internal server error)