NIHVIVO-646 more work on javascript for add authors to publication form
This commit is contained in:
parent
a07f574cbf
commit
c885ae010f
4 changed files with 43 additions and 35 deletions
|
@ -273,7 +273,7 @@ SPARQL queries for existing values. --%>
|
|||
|
||||
<c:set var="title" value="<em>${infoResourceName}</em>: Authors" />
|
||||
<c:set var="requiredHint" value="<span class='requiredHint'> *</span>" />
|
||||
<c:set var="initialHint" value="<span class='hint'>initial okay</span>" />
|
||||
<c:set var="initialHint" value="<span class='hint'>(initial okay)</span>" />
|
||||
|
||||
<jsp:include page="${preForm}" />
|
||||
|
||||
|
@ -323,8 +323,8 @@ SPARQL queries for existing values. --%>
|
|||
<h3>Add an Author</h3>
|
||||
|
||||
<p class="inline"><v:input type="text" id="lastName" label="Last name ${requiredHint}" size="30" /></p>
|
||||
<p class="inline"><v:input type="text" id="firstName" label="First name ${requiredHint}" size="20" />${initialHint}</p>
|
||||
<p class="inline"><v:input type="text" id="middleName" label="Middle name" size="20" />${initialHint}</p>
|
||||
<p class="inline"><v:input type="text" id="firstName" label="First name ${requiredHint} ${initialHint}" size="20" /></p>
|
||||
<p class="inline"><v:input type="text" id="middleName" label="Middle name ${initialHint}" size="20" /></p>
|
||||
<input type="hidden" id="label" name="label" value="" /> <!-- Field value populated by JavaScript -->
|
||||
|
||||
<div id="selectedAuthor">
|
||||
|
|
|
@ -65,7 +65,7 @@ form a:hover.cancel,
|
|||
}
|
||||
|
||||
#content form p.inline label {
|
||||
width: 10em;
|
||||
width: 13em;
|
||||
margin-top: 0;
|
||||
|
||||
}
|
||||
|
@ -81,3 +81,7 @@ form a:hover.cancel,
|
|||
#selectedAuthor {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
#content form p.submit {
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue