NIHVIVO-646 more work on javascript for add authors to publication form

This commit is contained in:
rjy7 2010-06-22 22:12:33 +00:00
parent a07f574cbf
commit c885ae010f
4 changed files with 43 additions and 35 deletions

View file

@ -48,7 +48,13 @@ var addAuthorForm = {
this.setUpAutocomplete();
this.initAuthorListOnlyView();
// On this form, validation errors entail that a new person was being entered.
if (this.findValidationErrors()) {
this.initFormView();
this.showFieldsForNewPerson();
} else {
this.initAuthorListOnlyView();
}
},
bindEventListeners: function() {
@ -59,13 +65,35 @@ var addAuthorForm = {
});
this.submit.click(function() {
// NB Important JavaScript scope issue: if we call it this way, this = addAuthorForm
// in prepareFieldValuesForSubmit. If we do
// this.submit.click(this.prepareFieldValuesForSubmit); then
// this != addAuthorForm in prepareFieldValuesForSubmit.
addAuthorForm.prepareFieldValuesForSubmit();
});
this.lastNameField.blur(function() {
addAuthorForm.firstNameWrapper.show();
addAuthorForm.middleNameWrapper.show();
console.log("in blur")
addAuthorForm.onLastNameChange();
});
// Prevent form submission when hitting enter in last name field
this.lastNameField.keydown(function(event) {
if (event.keyCode === 13) {
console.log('in keydown')
addAuthorForm.onLastNameChange();
return false;
}
});
},
onLastNameChange: function() {
this.showFieldsForNewPerson();
this.firstNameField.focus();
},
showFieldsForNewPerson: function() {
this.firstNameWrapper.show();
this.middleNameWrapper.show();
},
// This view shows the list of existing authors and hides the form.
@ -139,11 +167,12 @@ var addAuthorForm = {
var cache = {};
var url = $('#acUrl').val();
var existingAuthorUris = addAuthorForm.getExistingAuthorUris();
console.log(existingAuthorUris);
var existingAuthorUris = addAuthorForm.getExistingAuthorUris();
jQuery.each(existingAuthorUris, function(index, element) {
url += '&filter=' + element;
});
$('#lastName').autocomplete({
minLength: 2,
source: url,

View file

@ -359,31 +359,6 @@ var customForm = {
});
},
// Return true iff there are validation errors on the form
findValidationErrors: function() {
return customForm.form.find('.validationError').length > 0;
// RY For now, we just need to look for the presence of the error elements.
// Later, however, we may generate empty error messages in the markup, for
// customized positioning, in which case we need to look for whether they have
// content. See clearFormData().
// var foundErrors = false,
// errors = this.form.find('.validationError'),
// numErrors = errors.length,
// i,
// error;
//
// for (i = 0; foundErrors == false && i < numErrors; i++) {
// error = errors[i];
// if (error.html() != '') {
// foundErrors = true;
// }
// }
//
// return foundErrors;
},
resetForm: function() {
// Clear all form data and error messages