Commit 3a54f5dd by Nilu

improvements to ajax calls in work style

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