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="title" value="<em>${infoResourceName}</em>: Authors" />
|
||||||
<c:set var="requiredHint" value="<span class='requiredHint'> *</span>" />
|
<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}" />
|
<jsp:include page="${preForm}" />
|
||||||
|
|
||||||
|
@ -323,8 +323,8 @@ SPARQL queries for existing values. --%>
|
||||||
<h3>Add an Author</h3>
|
<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="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="firstName" label="First name ${requiredHint} ${initialHint}" size="20" /></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="middleName" label="Middle name ${initialHint}" size="20" /></p>
|
||||||
<input type="hidden" id="label" name="label" value="" /> <!-- Field value populated by JavaScript -->
|
<input type="hidden" id="label" name="label" value="" /> <!-- Field value populated by JavaScript -->
|
||||||
|
|
||||||
<div id="selectedAuthor">
|
<div id="selectedAuthor">
|
||||||
|
|
|
@ -65,7 +65,7 @@ form a:hover.cancel,
|
||||||
}
|
}
|
||||||
|
|
||||||
#content form p.inline label {
|
#content form p.inline label {
|
||||||
width: 10em;
|
width: 13em;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -81,3 +81,7 @@ form a:hover.cancel,
|
||||||
#selectedAuthor {
|
#selectedAuthor {
|
||||||
clear: left;
|
clear: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#content form p.submit {
|
||||||
|
margin-top: 3em;
|
||||||
|
}
|
||||||
|
|
|
@ -48,7 +48,13 @@ var addAuthorForm = {
|
||||||
|
|
||||||
this.setUpAutocomplete();
|
this.setUpAutocomplete();
|
||||||
|
|
||||||
|
// On this form, validation errors entail that a new person was being entered.
|
||||||
|
if (this.findValidationErrors()) {
|
||||||
|
this.initFormView();
|
||||||
|
this.showFieldsForNewPerson();
|
||||||
|
} else {
|
||||||
this.initAuthorListOnlyView();
|
this.initAuthorListOnlyView();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
bindEventListeners: function() {
|
bindEventListeners: function() {
|
||||||
|
@ -59,13 +65,35 @@ var addAuthorForm = {
|
||||||
});
|
});
|
||||||
|
|
||||||
this.submit.click(function() {
|
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();
|
addAuthorForm.prepareFieldValuesForSubmit();
|
||||||
});
|
});
|
||||||
|
|
||||||
this.lastNameField.blur(function() {
|
this.lastNameField.blur(function() {
|
||||||
addAuthorForm.firstNameWrapper.show();
|
console.log("in blur")
|
||||||
addAuthorForm.middleNameWrapper.show();
|
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.
|
// This view shows the list of existing authors and hides the form.
|
||||||
|
@ -140,10 +168,11 @@ var addAuthorForm = {
|
||||||
var cache = {};
|
var cache = {};
|
||||||
var url = $('#acUrl').val();
|
var url = $('#acUrl').val();
|
||||||
var existingAuthorUris = addAuthorForm.getExistingAuthorUris();
|
var existingAuthorUris = addAuthorForm.getExistingAuthorUris();
|
||||||
console.log(existingAuthorUris);
|
|
||||||
jQuery.each(existingAuthorUris, function(index, element) {
|
jQuery.each(existingAuthorUris, function(index, element) {
|
||||||
url += '&filter=' + element;
|
url += '&filter=' + element;
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#lastName').autocomplete({
|
$('#lastName').autocomplete({
|
||||||
minLength: 2,
|
minLength: 2,
|
||||||
source: url,
|
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() {
|
resetForm: function() {
|
||||||
|
|
||||||
// Clear all form data and error messages
|
// Clear all form data and error messages
|
||||||
|
|
Loading…
Add table
Reference in a new issue