Commit 73350648 by Nilu Committed by Harsh Shah

HT002 saving open / complete job status changes

parent dd83ab5b
package performa.form;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.logging.*;
import oneit.objstore.StorageException;
import oneit.servlets.forms.*;
import oneit.servlets.process.*;
import oneit.utils.*;
import performa.orm.Job;
import performa.orm.types.JobStatus;
public class ChangeJobStatusFP extends SaveFP
{
private static final LoggingArea LOG = LoggingArea.createLoggingArea("ChangeJobStatusFP");
@Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{
HttpServletRequest request = submission.getRequest();
Job job = (Job) request.getAttribute("Job");
JobStatus newStatus = (JobStatus) request.getAttribute("newStatus");
if(job!= null && newStatus != null)
{
job.setJobStatus(newStatus);
LogMgr.log(LOG, LogLevel.PROCESSING1, "Change Job status", job, newStatus);
}
return super.processForm(process, submission, params);
}
}
\ No newline at end of file
...@@ -140,7 +140,17 @@ public class Job extends BaseJob ...@@ -140,7 +140,17 @@ public class Job extends BaseJob
public int getNoOfCandidatesApplied() public int getNoOfCandidatesApplied()
{ {
return this.pipelineJob().toJobApplications().toCandidate().vals().size(); Filter<JobApplication> filter = JobApplication.SearchByAll().andApplicationStatus(new EqualsFilter<>(ApplicationStatus.SUBMITTED));
return this.pipelineJob().toJobApplications(filter).toCandidate().vals().size();
}
public int getNoOfCandidatesShortlisted()
{
Filter<JobApplication> filter = JobApplication.SearchByAll().andApplicationStatus(new EqualsFilter<>(ApplicationStatus.SHORTLISTED));
return this.pipelineJob().toJobApplications(filter).toCandidate().vals().size();
} }
......
...@@ -24,8 +24,10 @@ public class ApplicationStatus extends AbstractEnumerated ...@@ -24,8 +24,10 @@ public class ApplicationStatus extends AbstractEnumerated
public static final ApplicationStatus SUBMITTED = new ApplicationStatus ("SUBMITTED", "SUBMITTED", "Submitted", false); public static final ApplicationStatus SUBMITTED = new ApplicationStatus ("SUBMITTED", "SUBMITTED", "Submitted", false);
public static final ApplicationStatus SHORTLISTED = new ApplicationStatus ("SHORTLISTED", "SHORTLISTED", "Shortlisted", false);
private static final ApplicationStatus[] allApplicationStatuss = private static final ApplicationStatus[] allApplicationStatuss =
new ApplicationStatus[] { DRAFT,SUBMITTED}; new ApplicationStatus[] { DRAFT,SUBMITTED,SHORTLISTED};
private static ApplicationStatus[] getAllApplicationStatuss () private static ApplicationStatus[] getAllApplicationStatuss ()
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<VALUE name="DRAFT" value="DRAFT" description="Draft"/> <VALUE name="DRAFT" value="DRAFT" description="Draft"/>
<VALUE name="SUBMITTED" value="SUBMITTED" description="Submitted"/> <VALUE name="SUBMITTED" value="SUBMITTED" description="Submitted"/>
<VALUE name="SHORTLISTED" value="SHORTLISTED" description="Shortlisted"/>
</CONSTANT> </CONSTANT>
</ROOT> </ROOT>
\ No newline at end of file
...@@ -2274,7 +2274,7 @@ a.forgot-pass { ...@@ -2274,7 +2274,7 @@ a.forgot-pass {
display: table-cell; display: table-cell;
padding-left: 17px; padding-left: 17px;
} }
.ja-count span{ .ja-count .grey-span{
letter-spacing: 1px; letter-spacing: 1px;
color: #8e97a0; color: #8e97a0;
font-size: 11px; font-size: 11px;
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
<NODE name="dynamic_content_form::ADMIN_PORTAL" factory="Participant"> <NODE name="dynamic_content_form::ADMIN_PORTAL" factory="Participant">
<FORM name="*.changeAssessmentCriteria" factory="Participant" class="performa.form.ChangeAssessmentCriteriaFP"/> <FORM name="*.changeAssessmentCriteria" factory="Participant" class="performa.form.ChangeAssessmentCriteriaFP"/>
<FORM name="*.saveJob" factory="Participant" class="performa.form.SaveJobFP"/> <FORM name="*.saveJob" factory="Participant" class="performa.form.SaveJobFP"/>
<FORM name="*.changeJobStatus" factory="Participant" class="performa.form.ChangeJobStatusFP"/>
</NODE> </NODE>
<NODE name="job_assessment_criteria_add_jsp" factory="Participant"> <NODE name="job_assessment_criteria_add_jsp" factory="Participant">
......
...@@ -11,10 +11,6 @@ ...@@ -11,10 +11,6 @@
<INHERITS nodename="StandardJSP"/> <INHERITS nodename="StandardJSP"/>
<RenderMode name="Page" preIncludeJSP="extensions/adminportal/page_admin_home.jsp"/> <RenderMode name="Page" preIncludeJSP="extensions/adminportal/page_admin_home.jsp"/>
<RenderMode name="EditJob" preIncludeJSP="extensions/adminportal/edit_job.jsp"/>
<RenderMode name="ViewApplicants" preIncludeJSP="extensions/adminportal/view_applicants.jsp"/>
<RenderMode name="ApplicantsShortlist" preIncludeJSP="extensions/adminportal/view_applicants_shortlist.jsp"/>
<RenderMode name="ApplicantsGrid" preIncludeJSP="extensions/adminportal/view_applicants_shortlist_grid.jsp"/>
</NODE> </NODE>
...@@ -37,11 +33,15 @@ ...@@ -37,11 +33,15 @@
</MAP> </MAP>
<MAP value="JOBS" description="Jobs" TemplatePage="dynamic_content_form.jsp"> <MAP value="JOBS" description="Jobs" TemplatePage="dynamic_content_form_client.jsp">
<NODE name="Config" factory="Participant" class="oneit.business.content.ArticleConfiguration"> <NODE name="Config" factory="Participant" class="oneit.business.content.ArticleConfiguration">
<INHERITS nodename="StandardJSP"/> <INHERITS nodename="StandardJSP"/>
<RenderMode name="Page" preIncludeJSP="extensions/adminportal/list_jobs.jsp"/> <RenderMode name="Page" preIncludeJSP="extensions/adminportal/list_jobs.jsp"/>
<RenderMode name="EditJob" preIncludeJSP="extensions/adminportal/edit_job.jsp"/>
<RenderMode name="ViewApplicants" preIncludeJSP="extensions/adminportal/view_applicants.jsp"/>
<RenderMode name="ApplicantsShortlist" preIncludeJSP="extensions/adminportal/view_applicants_shortlist.jsp"/>
<RenderMode name="ApplicantsGrid" preIncludeJSP="extensions/adminportal/view_applicants_shortlist_grid.jsp"/>
</NODE> </NODE>
</MAP> </MAP>
......
...@@ -31,7 +31,9 @@ ...@@ -31,7 +31,9 @@
<% <%
job.setCompletedDetails(Boolean.TRUE); job.setCompletedDetails(Boolean.TRUE);
%> %>
<oneit:button name="changeJobStatus" value="Change Job Status"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.toMap() %>" />
<div class="form-page-area"> <div class="form-page-area">
<div class="create-job"> <div class="create-job">
<div class="form-group"> <div class="form-group">
......
...@@ -9,8 +9,31 @@ ...@@ -9,8 +9,31 @@
ObjectTransaction objTran = process.getTransaction (); ObjectTransaction objTran = process.getTransaction ();
Job[] jobs = Job.SearchByAll().search(transaction); Job[] jobs = Job.SearchByAll().search(transaction);
String nextPage = WebUtils.getSamePageInRenderMode(request, WebUtils.VIEW_APPLICANTS); String nextPage = WebUtils.getSamePageInRenderMode(request, WebUtils.VIEW_APPLICANTS);
String homePage = WebUtils.getSamePageInRenderMode(request, WebUtils.ADMIN_HOME); String homePage = WebUtils.getSamePageInRenderMode(request, "Page");
%> %>
<script type="text/javascript">
$(document).ready(function()
{
$(".job-row").click(function()
{
var id = $(this).closest('.job-list').attr('id');
$('.' + id).click();
});
$(".job-status").change(function(){
var id = $(this).closest('.job-list').attr('id');
$('.save-job' + id).click();
});
});
</script>
<oneit:form name="editJob" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="dashboard-content-area second-part"> <div class="dashboard-content-area second-part">
<div class="jobs-list-shorting"> <div class="jobs-list-shorting">
<div class="d-job-title all-jobs-title">All Jobs</div> <div class="d-job-title all-jobs-title">All Jobs</div>
...@@ -25,10 +48,10 @@ ...@@ -25,10 +48,10 @@
</div> </div>
<div class="shorting-dropdown"> <div class="shorting-dropdown">
<span class="order-label">order by</span> <span class="order-label">order by</span>
<select class="form-control select2-hidden-accessible" tabindex="-1" aria-hidden="true"> <select class="form-control">
<option>Alphabetical (A-Z)</option> <option>Alphabetical (A-Z)</option>
<option>Alphabetical (Z-A)</option> <option>Alphabetical (Z-A)</option>
</select><span class="select2 select2-container select2-container--default select2-container--below" dir="ltr" style="width: 159px;"><span class="selection"><span class="select2-selection select2-selection--single" role="combobox" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-labelledby="select2-ujdo-container"><span class="select2-selection__rendered" id="select2-ujdo-container" title="Alphabetical (A-Z)">Alphabetical (A-Z)</span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span></span></span><span class="dropdown-wrapper" aria-hidden="true"></span></span> </select>
</div> </div>
</div> </div>
<div class="main-job-list"> <div class="main-job-list">
...@@ -36,9 +59,16 @@ ...@@ -36,9 +59,16 @@
for(Job job: jobs) for(Job job: jobs)
{ {
%> %>
<div class="job-list"> <div class="job-list" id="<%= job.getID() %>">
<div class="job-row" >
<div class="job-post jl-c eq-second-height" style="height: 107px;"> <div class="job-post jl-c eq-second-height" style="height: 107px;">
<div class="job-post-name"><oneit:toString value="<%= job.getJobTitle() %>" mode="EscapeHTML" /></div> <div class="job-post-name">
<oneit:toString value="<%= job.getJobTitle() %>" mode="EscapeHTML" />
<oneit:button value="EDIT" name="gotoPage" cssClass="<%= job.getID() + " hidden"%>" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).toMap())
.toMap() %>"/>
</div>
<div class="job-company-name"> <div class="job-company-name">
<span class="superlaw">SUPERLAW</span> <span class="superlaw">SUPERLAW</span>
<span class="calendar"><oneit:toString value="<%= job.getDaysTillClose() %>" mode="EscapeHTML"/></span> <span class="calendar"><oneit:toString value="<%= job.getDaysTillClose() %>" mode="EscapeHTML"/></span>
...@@ -48,27 +78,31 @@ ...@@ -48,27 +78,31 @@
<div class="ja-icon"><img src="images/job-list-user.png"></div> <div class="ja-icon"><img src="images/job-list-user.png"></div>
<div class="ja-count"> <div class="ja-count">
<oneit:toString value="<%= job.getNoOfCandidatesApplied() %>" mode="EscapeHTML" nullValue="0"/> <oneit:toString value="<%= job.getNoOfCandidatesApplied() %>" mode="EscapeHTML" nullValue="0"/>
<span>Applicants</span> <span class="grey-span">Applicants</span>
</div> </div>
</div> </div>
<div class="job-shortlisted jl-c eq-second-height" style="height: 107px;"> <div class="job-shortlisted jl-c eq-second-height" style="height: 107px;">
<div class="ja-icon"><img src="images/circle.png"></div> <div class="ja-icon"><img src="images/circle.png"></div>
<div class="ja-count"> <div class="ja-count">
2/5 <oneit:toString value="<%= job.getNoOfCandidatesShortlisted() %>" mode="EscapeHTML" nullValue="0"/>/5
<span>shortlisted</span> <span class="grey-span">shortlisted</span>
</div>
</div> </div>
</div> </div>
<div class="job-states jl-c"> <div class="job-states jl-c">
<select class="form-control status-img select2-hidden-accessible" tabindex="-1" aria-hidden="true"> <oneit:ormEnum obj="<%= job %>" attributeName="JobStatus" cssClass="form-control status-img job-status"
<option data-image="images/active.png">Active</option> enums="<%= Arrays.asList(new JobStatus[]{JobStatus.OPEN, JobStatus.COMPLETE}) %>"/>
<option data-image="images/complete.png">Completed</option>
<option data-image="images/shortlisted.png">Shortlisted</option>
</select>
</div> </div>
<oneit:button name="save" value="Save" cssClass="<%= "save-job" + job.getID().toString() + " hidden"%>"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", homePage)
.mapEntry("Job", job)
.toMap() %>" />
</div> </div>
<% <%
} }
%> %>
</div> </div>
</div> </div>
</oneit:form>
</oneit:dynIncluded> </oneit:dynIncluded>
...@@ -27,7 +27,11 @@ function addUserPic(opt) { ...@@ -27,7 +27,11 @@ function addUserPic(opt) {
} }
var optimage = $(opt.element).data('image'); var optimage = $(opt.element).data('image');
if (!optimage) { if (!optimage) {
return opt.text; var $opt = $(
'<span class="userName"><img src="images/' + $(opt.element).text().toLowerCase() + '.png" class="userPic" /> ' + $(opt.element).text() + '</span>'
);
return $opt;
} else { } else {
var $opt = $( var $opt = $(
'<span class="userName"><img src="' + optimage + '" class="userPic" /> ' + $(opt.element).text() + '</span>' '<span class="userName"><img src="' + optimage + '" class="userPic" /> ' + $(opt.element).text() + '</span>'
......
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