Commit 3a54f5dd by Nilu

improvements to ajax calls in work style

parent aaee243a
...@@ -4,6 +4,7 @@ import java.util.Date; ...@@ -4,6 +4,7 @@ import java.util.Date;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.logging.*; import oneit.logging.*;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.StorageException; import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser; import oneit.objstore.parser.BusinessObjectParser;
import oneit.servlets.forms.*; import oneit.servlets.forms.*;
...@@ -21,8 +22,11 @@ public class CompleteApplicationFP extends SaveFP ...@@ -21,8 +22,11 @@ public class CompleteApplicationFP extends SaveFP
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{ {
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
ObjectTransaction objTran = ObjectTransaction.getTransaction();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
jobApplication = (JobApplication) jobApplication.getInTransaction (objTran);
jobApplication.setApplicationStatus(ApplicationStatus.SUBMITTED); jobApplication.setApplicationStatus(ApplicationStatus.SUBMITTED);
jobApplication.setSubmittedDate(new Date()); jobApplication.setSubmittedDate(new Date());
......
...@@ -2,15 +2,13 @@ package performa.form; ...@@ -2,15 +2,13 @@ package performa.form;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.logging.LogLevel; import oneit.objstore.ObjectTransaction;
import oneit.logging.LogMgr;
import oneit.objstore.StorageException; import oneit.objstore.StorageException;
import oneit.servlets.forms.SubmissionDetails; import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult; import oneit.servlets.forms.SuccessfulResult;
import oneit.servlets.process.ORMProcessState; import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP; import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException; import oneit.utils.BusinessException;
import performa.orm.Answer;
import performa.orm.JobApplication; import performa.orm.JobApplication;
...@@ -19,20 +17,13 @@ public class SaveAndExitWorkStypeFP extends SaveFP ...@@ -19,20 +17,13 @@ public class SaveAndExitWorkStypeFP extends SaveFP
@Override @Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{ {
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
JobApplication jobApplication = process.getAttribute("JobApplication") != null ? (JobApplication) process.getAttribute("JobApplication") : (JobApplication) request.getAttribute("JobApplication"); ObjectTransaction objTran = ObjectTransaction.getTransaction();
Long appID = (Long) process.getAttribute("JobApplicationID");
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitWorkStypeFP saving job application: ", jobApplication ); JobApplication jobApplication = JobApplication.getJobApplicationByID(objTran, appID);
for (Answer answer : jobApplication.getCandidate().getProfileAssessmentAnswersSet())
{
if(answer.getAnswerNo() == null)
{
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitWorkStypeFP deleting ProfileAssessmentAnswer : ", answer );
answer.delete(); process.setAttribute("JobApplication", jobApplication);
}
}
return super.processForm(process, submission, params); return super.processForm(process, submission, params);
} }
} }
\ No newline at end of file
package performa.orm; package performa.orm;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.utils.BusinessException;
import oneit.utils.filter.CollectionFilter; import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter; import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException; import oneit.utils.parsers.FieldException;
...@@ -17,6 +18,16 @@ public class Answer extends BaseAnswer ...@@ -17,6 +18,16 @@ public class Answer extends BaseAnswer
// Do not add any code to this, always put it in initialiseNewObject // Do not add any code to this, always put it in initialiseNewObject
} }
@Override
protected void postInitNewObj() throws BusinessException
{
super.postInitNewObj();
setAnswerNo(0);
}
@Override @Override
public void setAnswerNo(Integer newAnswerNo) throws FieldException public void setAnswerNo(Integer newAnswerNo) throws FieldException
{ {
......
...@@ -76,6 +76,7 @@ ...@@ -76,6 +76,7 @@
} }
process.setAttribute("JobApplication", jobApplication); process.setAttribute("JobApplication", jobApplication);
process.setAttribute("JobApplicationID", jobApplication.getID().longID());
BinaryContent logo = job.getLogo(); BinaryContent logo = job.getLogo();
......
...@@ -8,19 +8,24 @@ ...@@ -8,19 +8,24 @@
<% <%
ORMProcessState process = (ORMProcessState) ProcessDecorator.getDefaultProcess(request); ORMProcessState process = (ORMProcessState) ProcessDecorator.getDefaultProcess(request);
ObjectTransaction objTran = process.getTransaction (); ObjectTransaction objTran = ObjectTransaction.getTransaction();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); Long jobAppId = (Long) process.getAttribute("JobApplicationID");
JobApplication jobApplication = JobApplication.getJobApplicationByID(objTran, jobAppId);
Job job = jobApplication.getJob(); Job job = jobApplication.getJob();
List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions"); List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions");
List<Question> allQuestions = (List<Question>) process.getAttribute("AllQuestions"); List<Question> allQuestions = (List<Question>) process.getAttribute("AllQuestions");
int actualNumber = request.getParameter ("actualNumber") != null ? Integer.valueOf(request.getParameter ("actualNumber")) : (int) getData(request, "actualNumber") ; int actualNumber = request.getParameter ("actualNumber") != null ? Integer.valueOf(request.getParameter ("actualNumber")) : (int) getData(request, "actualNumber") ;
int questionNumber = request.getParameter ("questionNumber") != null ? Integer.valueOf(request.getParameter ("questionNumber")) : (int) getData(request, "questionNumber") ; int questionNumber = request.getParameter ("questionNumber") != null ? Integer.valueOf(request.getParameter ("questionNumber")) : (int) getData(request, "questionNumber") ;
Question question = allQuestions.get(questionNumber); Question question = allQuestions.get(questionNumber);
question = (Question)question.getInTransaction (objTran);
QuestionType questionType = question.getQuestionType(); QuestionType questionType = question.getQuestionType();
String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey(); String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey();
String currentPage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "JobMatchAssessment"); String currentPage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "JobMatchAssessment");
String nextPage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "SubmitApplication"); String nextPage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "SubmitApplication");
jobApplication = (JobApplication) jobApplication.getInTransaction (objTran);
%> %>
<oneit:form name="editApplication" method="POST"> <oneit:form name="editApplication" method="POST">
...@@ -67,6 +72,15 @@ ...@@ -67,6 +72,15 @@
if(actualNumber <= totNoOfQuestions) if(actualNumber <= totNoOfQuestions)
{ {
Answer answer = jobApplication.getAnswerForQuestion(question); Answer answer = jobApplication.getAnswerForQuestion(question);
if(answer == null)
{
answer = Answer.createAnswer(objTran);
jobApplication.getCandidate().addToProfileAssessmentAnswers(answer);
answer.setQuestion(question);
}
String optionKey = WebUtils.getInputKey(request, answer, Answer.FIELD_AnswerNo); String optionKey = WebUtils.getInputKey(request, answer, Answer.FIELD_AnswerNo);
String formValue = formBuilder.fieldValue (optionKey, answer.getAnswerNo() == null ? "" : String.valueOf(answer.getAnswerNo())); String formValue = formBuilder.fieldValue (optionKey, answer.getAnswerNo() == null ? "" : String.valueOf(answer.getAnswerNo()));
String numberText = actualNumber + "/" + totNoOfQuestions; String numberText = actualNumber + "/" + totNoOfQuestions;
...@@ -144,13 +158,9 @@ ...@@ -144,13 +158,9 @@
%> %>
</div> </div>
<div class="section-btn text-center"> <div class="section-btn text-center">
<oneit:button value="Save and exit" name="saveAndExitWorkStyle" id="saveAndExitWorkStyle" cssClass="<%= (!completeApplication) ? "box-btn-gray" : "box-btn-gray half-btn" %>" <oneit:button value="Save and exit" name="gotoPage" id="saveAndExitWorkStyle" cssClass="box-btn-gray"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", exitPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", exitPage)
.mapEntry ("JobApplication", jobApplication)
.mapEntry(UpdateMappedObjFP.FAIL_VALIDATION_ERRORS, Boolean.FALSE)
.toMap() %>"/> .toMap() %>"/>
</div> </div>
<% <%
} }
...@@ -159,6 +169,9 @@ ...@@ -159,6 +169,9 @@
<%-- <div>Autosaved 1 min ago.</div> --%> <%-- <div>Autosaved 1 min ago.</div> --%>
</div> </div>
</div> </div>
<oneit:button value="Submit Application" name="completeApplication" id="gotoPageNext" cssClass="box-btn hide"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.toMap() %>"/>
</oneit:evalBody> </oneit:evalBody>
</oneit:form> </oneit:form>
\ No newline at end of file
...@@ -7,16 +7,18 @@ ...@@ -7,16 +7,18 @@
<%@ include file="../../../setuprequest.jsp" %> <%@ include file="../../../setuprequest.jsp" %>
<%! protected String getName (ServletConfig config) { return "save_job_match_answers_jsp"; } %> <%! protected String getName (ServletConfig config) { return "save_job_match_answers_jsp"; } %>
<oneit:form method="POST">
<% <%
ORMProcessState process = (ORMProcessState)ProcessDecorator.getDefaultProcess(request); ORMProcessState process = (ORMProcessState)ProcessDecorator.getDefaultProcess(request);
ObjectTransaction objTran = ObjectTransaction.getTransaction();
int questionNumber = Integer.valueOf(request.getParameter ("questionNumber")) - 1; int questionNumber = Integer.valueOf(request.getParameter ("questionNumber")) - 1;
int actualNumber = Integer.valueOf(request.getParameter ("actualNumber")); int actualNumber = Integer.valueOf(request.getParameter ("actualNumber"));
int answerNo = Integer.valueOf(request.getParameter ("answerNo")); int answerNo = Integer.valueOf(request.getParameter ("answerNo"));
boolean complete = Boolean.valueOf(request.getParameter ("completeApplication")); boolean complete = Boolean.valueOf(request.getParameter ("completeApplication"));
JobApplication jobApplication = (JobApplication)process.getAttribute ("JobApplication"); Long jobAppId = (Long) process.getAttribute("JobApplicationID");
JobApplication jobApplication = JobApplication.getJobApplicationByID(objTran, jobAppId);
List<Question> allQuestions = (List<Question>) process.getAttribute("AllQuestions"); List<Question> allQuestions = (List<Question>) process.getAttribute("AllQuestions");
ObjectTransaction objTran = ObjectTransaction.getTransaction();
jobApplication = (JobApplication) jobApplication.getInTransaction (objTran); jobApplication = (JobApplication) jobApplication.getInTransaction (objTran);
...@@ -26,22 +28,17 @@ ...@@ -26,22 +28,17 @@
Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(question)); Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(question));
Answer answer = jobApplication.pipelineJobApplication().toCandidate().toProfileAssessmentAnswers(filter).val(); Answer answer = jobApplication.pipelineJobApplication().toCandidate().toProfileAssessmentAnswers(filter).val();
if(answer == null) DataMap dataMap = DataMap.getDataMap(request, true);
{ dataMap.removeORMHandlersForObject(answer);
answer = Answer.createAnswer(objTran);
jobApplication.getCandidate().addToProfileAssessmentAnswers(answer);
answer.setQuestion(question);
}
answer.setAnswerNo(answerNo); answer.setAnswerNo(answerNo);
if(complete) if(complete)
{ {
jobApplication.setApplicationStatus(ApplicationStatus.SUBMITTED); // jobApplication.setApplicationStatus(ApplicationStatus.SUBMITTED);
jobApplication.setSubmittedDate(new Date()); // jobApplication.setSubmittedDate(new Date());
//
AnalysisEngine.analyseAnswers(jobApplication.getCandidate(), jobApplication.getJob().getLevel(), jobApplication.getCompletedAnswers()); // AnalysisEngine.analyseAnswers(jobApplication.getCandidate(), jobApplication.getJob().getLevel(), jobApplication.getCompletedAnswers());
// completeProcessRestartAndRestoreAttribs(process, request); // completeProcessRestartAndRestoreAttribs(process, request);
...@@ -59,4 +56,5 @@ ...@@ -59,4 +56,5 @@
request.getSession().setAttribute ("historyQstNo", questionNumber + 1); request.getSession().setAttribute ("historyQstNo", questionNumber + 1);
request.getSession().setAttribute ("historyActualNo", actualNumber); request.getSession().setAttribute ("historyActualNo", actualNumber);
} }
%> %>
\ No newline at end of file </oneit:form>
\ No newline at end of file
...@@ -6,16 +6,18 @@ ...@@ -6,16 +6,18 @@
<oneit:dynIncluded> <oneit:dynIncluded>
<% <%
String currentPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment"); String currentPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
String nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication"); String nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication");
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); ObjectTransaction objTran = ObjectTransaction.getTransaction();
Job job = jobApplication.getJob(); Long jobAppId = (Long) process.getAttribute("JobApplicationID");
Candidate candidate = jobApplication.getCandidate(); JobApplication jobApplication = JobApplication.getJobApplicationByID(objTran, jobAppId);
int questionNumber = process.getAttribute("QuestionNumber")!= null ? (int) process.getAttribute("QuestionNumber") : jobApplication.getQuestionNumber(); Job job = jobApplication.getJob();
int actualNumber = process.getAttribute("ActualNumber")!= null ? (int) process.getAttribute("ActualNumber") : jobApplication.getActualQuestionNumber(); Candidate candidate = jobApplication.getCandidate();
List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions"); int questionNumber = process.getAttribute("QuestionNumber")!= null ? (int) process.getAttribute("QuestionNumber") : jobApplication.getQuestionNumber();
List<Question> allQuestions = (List<Question>) process.getAttribute("AllQuestions"); int actualNumber = process.getAttribute("ActualNumber")!= null ? (int) process.getAttribute("ActualNumber") : jobApplication.getActualQuestionNumber();
String exitPage = WebUtils.getArticleLink(request, transaction, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey(); List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions");
List<Question> allQuestions = (List<Question>) process.getAttribute("AllQuestions");
String exitPage = WebUtils.getArticleLink(request, transaction, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey();
if(totalQuestions == null) if(totalQuestions == null)
{ {
...@@ -57,17 +59,16 @@ ...@@ -57,17 +59,16 @@
request.getSession().setAttribute ("historyQstNo", questionNumber); request.getSession().setAttribute ("historyQstNo", questionNumber);
request.getSession().setAttribute ("historyActualNo", actualNumber); request.getSession().setAttribute ("historyActualNo", actualNumber);
boolean toRedirect = jobApplication.initAssessmentAnswers(allQuestions); // boolean toRedirect = jobApplication.initAssessmentAnswers(allQuestions);
//
if(toRedirect) // if(toRedirect)
{ // {
process.setAttribute("QuestionNumber", questionNumber); // process.setAttribute("QuestionNumber", questionNumber);
process.setAttribute("ActualNumber", actualNumber); // process.setAttribute("ActualNumber", actualNumber);
//
// }
%><%@include file="/saferedirect.jsp" %><% Question question = (Question) allQuestions.get(questionNumber).getInTransaction (objTran);
}
Question question = allQuestions.get(questionNumber);
QuestionType questionType = question.getQuestionType(); QuestionType questionType = question.getQuestionType();
%> %>
<script> <script>
...@@ -83,6 +84,12 @@ ...@@ -83,6 +84,12 @@
function gotoNextQuestion(questionNumber, actualNumber, completeApplication, answerNo) function gotoNextQuestion(questionNumber, actualNumber, completeApplication, answerNo)
{ {
if(completeApplication)
{
$("#gotoPageNext").click();
return false;
}
ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/applicantportal/inc/save_job_match_answers.jsp", 'form' , ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/applicantportal/inc/save_job_match_answers.jsp", 'form' ,
{questionNumber : questionNumber, answerNo: answerNo, actualNumber: actualNumber, completeApplication: completeApplication}, {questionNumber : questionNumber, answerNo: answerNo, actualNumber: actualNumber, completeApplication: completeApplication},
function () {}, function () {},
...@@ -95,24 +102,17 @@ ...@@ -95,24 +102,17 @@
}, },
"POST"); "POST");
if(completeApplication) $('.section-job-match').empty();
{ ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/applicantportal/inc/job_match_questions.jsp", '.section-job-match' , {questionNumber : questionNumber, actualNumber: actualNumber});
$("#gotoPageNext").click();
}
else
{
$('.section-job-match').empty();
ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/applicantportal/inc/job_match_questions.jsp", '.section-job-match' , {questionNumber : questionNumber, actualNumber: actualNumber});
}
} }
</script> </script>
<div class="main-application-outline"> <div class="main-application-outline">
<div class="selection-aust-logo"> <div class="selection-aust-logo">
<% <%
BinaryContent logo = job.getLogo(); BinaryContent logo = job.getLogo();
if(logo != null) if(logo != null)
{ {
int logoHeight = 45; int logoHeight = 45;
...@@ -151,19 +151,6 @@ ...@@ -151,19 +151,6 @@
questionNumber ="<%= questionNumber %>" questionNumber ="<%= questionNumber %>"
data="<%= CollectionUtils.EMPTY_MAP%>"/> data="<%= CollectionUtils.EMPTY_MAP%>"/>
</div> </div>
<oneit:button value="Submit Application" name="completeApplication" id="gotoPageNext" cssClass="box-btn m-hide hide"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.mapEntry("restartProcess", Boolean.TRUE)
.toMap() %>"/>
<oneit:button value="Submit" name="gotoPage" id="nextButton" cssClass="box-btn show-mobile hide"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.mapEntry("restartProcess", Boolean.TRUE)
.toMap() %>"/>
</oneit:form> </oneit:form>
</div> </div>
</div>
</oneit:dynIncluded> </oneit:dynIncluded>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment