From dd44eeb314f3d2bd1f755a864e55c1e5eb2206b7 Mon Sep 17 00:00:00 2001 From: hjkhjk54 Date: Tue, 16 Aug 2011 17:00:01 +0000 Subject: [PATCH] Updates for terminology annotation, sending submission URL from jsp to javascript instead of hard-coding. Also including some basic validation by preventing submission when no terms are selected. --- productMods/edit/forms/js/addTerminology.js | 21 ++++++++++++++----- .../edit/forms/terminologyAnnotation.jsp | 9 +++----- .../servlet/ProcessTerminologyController.java | 3 ++- .../servlet/UMLSTerminologyAnnotation.java | 2 +- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/productMods/edit/forms/js/addTerminology.js b/productMods/edit/forms/js/addTerminology.js index af509f79..e9a20255 100644 --- a/productMods/edit/forms/js/addTerminology.js +++ b/productMods/edit/forms/js/addTerminology.js @@ -31,12 +31,8 @@ var addTerminologyForm = { mixIn: function() { // Mix in the custom form utility methods $.extend(this, vitro.customFormUtils); - // Get the custom form data from the page $.extend(this, customFormData); - //test - alert(addTerminologyForm.UMLSCUIURL); - alert(addTerminologyForm.dataServiceUri); }, // On page load, create references for easy access to form elements. initObjects: function() { @@ -58,6 +54,7 @@ var addTerminologyForm = { this.termLabel = $('#termLabel'); this.termType = $('#termType'); this.removeTermLinks = $('a.remove'); + this.errors = $('#errors'); }, initPage: function() { @@ -68,6 +65,7 @@ var addTerminologyForm = { bindEventListeners: function() { this.searchSubmit.click(function() { addTerminologyForm.submitSearchTerm(); + addTerminologyForm.clearErrors(); return false; }); @@ -111,6 +109,9 @@ var addTerminologyForm = { clearSearchResults:function() { $('#selectedTerm').empty(); }, + clearErrors:function() { + addTerminologyForm.errors.empty(); + }, showTermListOnlyView: function() { this.hideForm(); this.showFormButtonWrapper.show(); @@ -159,6 +160,9 @@ var addTerminologyForm = { }, prepareSubmit:function() { var checkedElements = $("#CUI:checked"); + if(!addTerminologyForm.validateTermSelection(checkedElements)) { + return false; + } var i; var len = checkedElements.length; var checkedTerm, checkedTermElement, termLabel, termType; @@ -190,6 +194,13 @@ var addTerminologyForm = { "" + ""; return htmlAdd; + }, validateTermSelection:function(checkedElements) { + var numberElements = checkedElements.length; + if(numberElements < 1) { + addTerminologyForm.errors.html("

Please select at least one term from search results to add or click cancel.

"); + return false; + } + return true; }, removeExistingTerm: function(link) { var removeLast = false, message = 'Are you sure you want to remove this term?'; @@ -227,7 +238,7 @@ var addTerminologyForm = { }); } else { - alert('Error processing request: author not removed'); + alert('Error processing request: term not removed'); } } }); diff --git a/productMods/edit/forms/terminologyAnnotation.jsp b/productMods/edit/forms/terminologyAnnotation.jsp index 571b2453..2b53885d 100644 --- a/productMods/edit/forms/terminologyAnnotation.jsp +++ b/productMods/edit/forms/terminologyAnnotation.jsp @@ -61,7 +61,7 @@ SPARQL queries for existing values. --%> - + { @@ -246,10 +246,7 @@ SPARQL queries for existing values. --%>
" > - -

Search UMLS Terms

- -

+

@@ -267,7 +264,7 @@ SPARQL queries for existing values. --%> - +

diff --git a/src/edu/cornell/mannlib/vitro/webapp/servlet/ProcessTerminologyController.java b/src/edu/cornell/mannlib/vitro/webapp/servlet/ProcessTerminologyController.java index be737847..a59985e7 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/servlet/ProcessTerminologyController.java +++ b/src/edu/cornell/mannlib/vitro/webapp/servlet/ProcessTerminologyController.java @@ -53,6 +53,7 @@ public class ProcessTerminologyController extends VitroHttpServlet { } int numberTerms = termsArray.length; + log.debug("Number of terms included is " + numberTerms); //if multiple values then need to process this differently by adding additional //fields, assertions, etc. as well as changing the URL slightly String url = "/edit/processRdfForm2.jsp?" + vreq.getQueryString(); @@ -68,7 +69,7 @@ public class ProcessTerminologyController extends VitroHttpServlet { //Generate new url which will map input fields to value url = generateUrl(editConfig, vreq); } - + log.debug("Submitting to url using the following parameters " + url); RequestDispatcher dispatcher = req.getRequestDispatcher(url); dispatcher.forward(req, resp); diff --git a/src/edu/cornell/mannlib/vitro/webapp/servlet/UMLSTerminologyAnnotation.java b/src/edu/cornell/mannlib/vitro/webapp/servlet/UMLSTerminologyAnnotation.java index 91b1d1f9..57cd899d 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/servlet/UMLSTerminologyAnnotation.java +++ b/src/edu/cornell/mannlib/vitro/webapp/servlet/UMLSTerminologyAnnotation.java @@ -47,7 +47,7 @@ public class UMLSTerminologyAnnotation extends VitroHttpServlet { try{ //Get parameter String entryText = vreq.getParameter("searchTerm"); - System.out.println("Entry text is " + entryText); + log.debug("Executing UMLS term retrieval using " + entryText); //TODO: Find a non-deprecated mechanism to do so String dataUrl = submissionUrl + "textToProcess=" + URLEncoder.encode(entryText) + "&format=json"; try{