Commit 310276b8 by Nilu

J001 create new job / create job from template

parent ad689c4b
......@@ -12,7 +12,7 @@ import oneit.servlets.process.ORMProcessFormProcessor;
import oneit.servlets.process.ORMProcessState;
import oneit.utils.BusinessException;
import performa.orm.*;
import performa.orm.types.JobStatus;
import performa.utils.Utils;
/**
*
......@@ -29,28 +29,7 @@ public class LoadJobFromTemplateFP extends ORMProcessFormProcessor
LogMgr.log(Job.LOG, LogLevel.PROCESSING1, "Inside LoadJobFromTemplateFP for ", job, " load from template:", jobTemplate);
for(CultureCriteria criteria : job.getCultureCriteriasSet())
{
criteria.delete();
}
for(AssessmentCriteria criteria : job.getAssessmentCriteriasSet())
{
criteria.delete();
}
jobTemplate.cloneJob(job);
job.initAttribs();
job.setJobStatus(JobStatus.DRAFT);
job.setApplyBy(null);
job.setOpenDate(null);
job.setReferenceNumber(null);
job.setCompletedDetails(Boolean.TRUE);
job.setCompletedAssessmentType(Boolean.TRUE);
job.setCompletedRequirements(Boolean.TRUE);
job.setCompletedCulture(Boolean.TRUE);
job.setShortenedURL(null);
Utils.setupJobFromTemplate(job, jobTemplate);
LogMgr.log(Job.LOG, LogLevel.PROCESSING1, "LoadJobFromTemplateFP completed for ", job);
......
package performa.form;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.servlets.forms.NavigationFP;
import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult;
import oneit.utils.BusinessException;
import oneit.utils.MultiException;
import performa.orm.Job;
import performa.utils.Utils;
public class NavigateToCreateJobFP extends NavigationFP
{
@Override
public SuccessfulResult processForm(SubmissionDetails submission) throws BusinessException
{
HttpServletRequest request = submission.getRequest();
Job job = (Job) request.getAttribute ("Job");
LogMgr.log(Job.LOG, LogLevel.PROCESSING1,"In NavigateToCreateJobFP navigating to create job with from template : ", job.getFromTemplate());
if(job.isTrue(job.getFromTemplate()))
{
}
if(job.isTrue(job.getFromTemplate()))
{
if(job.getJobTemplate() == null)
{
throw new BusinessException("Please select a template before starting the job");
}
LogMgr.log(Job.LOG, LogLevel.PROCESSING1, "Inside NavigateToCreateJobFP for ", job, " load from template:", job.getJobTemplate());
Utils.setupJobFromTemplate(job, job.getJobTemplate());
LogMgr.log(Job.LOG, LogLevel.PROCESSING1, "NavigateToCreateJobFP completed for ", job);
}
return super.processForm(submission);
}
@Override
protected Map validate(SubmissionDetails submission, MultiException exceptions)
{
HttpServletRequest request = submission.getRequest();
Job job = (Job) request.getAttribute ("Job");
if(job != null && job.isTrue(job.getFromTemplate()))
{
BusinessObjectParser.assertFieldCondition(job.getJobTemplate() != null , job, Job.SINGLEREFERENCE_JobTemplate, "mandatory", exceptions, true, request);
}
return super.validate(submission, exceptions);
}
}
......@@ -20,6 +20,7 @@
<TRANSIENT name="CompletedAssessmentType" type="Boolean" defaultValue="Boolean.FALSE"/>
<TRANSIENT name="SaveAssessmentTemplate" type="Boolean" defaultValue="Boolean.FALSE"/>
<TRANSIENT name="SaveCultureTemplate" type="Boolean" defaultValue="Boolean.FALSE"/>
<TRANSIENT name="FromTemplate" type="Boolean" defaultValue="Boolean.FALSE"/>
<TRANSIENT name="AssessmentTemplateName" type="String"/>
<TRANSIENT name="CultureTemplateName" type="String"/>
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
......
......@@ -20,6 +20,7 @@ import oneit.servlets.process.ORMProcessState;
import oneit.servlets.security.SessionSecUserDecorator;
import oneit.utils.*;
import oneit.utils.filter.*;
import oneit.utils.parsers.FieldException;
import oneit.utils.transform.MapTransform;
import oneit.utils.transform.param.*;
import performa.form.LinkedInOAuthLoginFP;
......@@ -586,4 +587,31 @@ public class Utils
return hiringTeam.pipelineHiringTeam().toCompany().toHiringTeams(filter).uniqueVals().toArray(new HiringTeam[0]);
}
public static void setupJobFromTemplate(Job job, Job jobTemplate) throws FieldException, StorageException, BusinessException
{
for(CultureCriteria criteria : job.getCultureCriteriasSet())
{
criteria.delete();
}
for(AssessmentCriteria criteria : job.getAssessmentCriteriasSet())
{
criteria.delete();
}
jobTemplate.cloneJob(job);
job.initAttribs();
job.setJobStatus(JobStatus.DRAFT);
job.setApplyBy(null);
job.setOpenDate(null);
job.setReferenceNumber(null);
job.setCompletedDetails(Boolean.TRUE);
job.setCompletedAssessmentType(Boolean.TRUE);
job.setCompletedRequirements(Boolean.TRUE);
job.setCompletedCulture(Boolean.TRUE);
job.setShortenedURL(null);
job.setDraftLocation(null);
}
}
\ No newline at end of file
......@@ -19,6 +19,7 @@ public class WebUtils
public static final String ADMIN_HOME = "AdminHome";
public static final String APPLICANT_HOME = "ApplicantHome";
public static final String CREATE_JOB = "CreateJob";
public static final String START_JOB = "StartJob";
public static final String OCCUPATION = "Occupation";
public static final String ASSESSMENT_CRITERIA = "AssessmentCriteria";
public static final String WORKPLACE_CULTURE = "WorkplaceCulture";
......@@ -157,6 +158,7 @@ public class WebUtils
renderMode.equals(REPLACE_CARD) ||
renderMode.equals(EDIT_CARD) ||
renderMode.equals(OCCUPATION) ||
renderMode.equals(START_JOB) ||
renderMode.equals(CREATED_JOB);
}
......
......@@ -61,6 +61,7 @@
<FORM name="*.saveCompanyUser" factory="Participant" class="performa.form.SaveCompanyUserFP"/>
<FORM name="*.selectHiringTeam" factory="Participant" class="performa.form.SelectHiringTeamFP"/>
<FORM name="*.additionalTeam" factory="Participant" class="performa.form.AddAdditionalHiringTeamFP"/>
<FORM name="*.gotoCreateJob" factory="Participant" class="performa.form.NavigateToCreateJobFP"/>
</NODE>
<NODE name="job_assessment_criteria_add_jsp" factory="Participant">
......
......@@ -35,6 +35,7 @@
<RenderMode name="ApplicantsGrid" preIncludeJSP="extensions/adminportal/view_applicants_shortlist_grid.jsp"/>
<RenderMode name="UnsuitableApps" preIncludeJSP="extensions/adminportal/view_applicants_unsuitable.jsp"/>
<RenderMode name="ViewApplication" preIncludeJSP="extensions/adminportal/view_application.jsp"/>
<RenderMode name="StartJob" preIncludeJSP="extensions/adminportal/job_start_point.jsp"/>
<RenderMode name="CreateJob" preIncludeJSP="extensions/adminportal/job_detail.jsp"/>
<RenderMode name="AssessmentCriteria" preIncludeJSP="extensions/adminportal/assessment_criteria.jsp"/>
<RenderMode name="WorkplaceCulture" preIncludeJSP="extensions/adminportal/workplace_culture.jsp"/>
......
......@@ -159,7 +159,7 @@
<%
Article jobsArticle = WebUtils.getArticleByShortCut(objTran, WebUtils.JOBS);
%>
<a href="<%= jobsArticle.getLink(request, CollectionUtils.mapEntry("cms.rm", WebUtils.CREATE_JOB).toMap()) %>">Create Job</a>
<a href="<%= jobsArticle.getLink(request, CollectionUtils.mapEntry("cms.rm", WebUtils.START_JOB).toMap()) %>">Create Job</a>
</div>
</div>
</div>
......
......@@ -6,17 +6,11 @@
<oneit:dynIncluded>
<%
boolean toRedirect = GenericObjDF.getOrCreateObject (request, "Job", Job.REFERENCE_Job);
Job job = (Job) process.getAttribute("Job");
String jobPage = WebUtils.getSamePageInRenderMode(request, "Page");
Debug.assertion(job != null, "Job is null in admin portal create job");
if(toRedirect)
{
%><%@include file="/saferedirect.jsp" %><%
}
SecUser txUser = SecUser.getTXUser(process.getTransaction());
CompanyUser companyUser = txUser.getExtension(CompanyUser.REFERENCE_CompanyUser);
Job[] jobs = Job.SearchByCompany().byCompany(companyUser.getCompany()).search(transaction);
......
<%@ page extends="oneit.servlets.jsp.JSPInclude" %>
<%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%>
<%@ include file="/inc/stdcms.jsp" %><%-- This is in cougar --%>
<%@ include file="/extensions/performa/inc/stdimports.jsp" %>
<oneit:dynIncluded>
<%
boolean toRedirect = GenericObjDF.getOrCreateObject (request, "Job", Job.REFERENCE_Job);
Job job = (Job) process.getAttribute("Job");
String jobPage = WebUtils.getSamePageInRenderMode(request, "Page");
Debug.assertion(job != null, "Job is null in admin portal create job");
if(toRedirect)
{
%><%@include file="/saferedirect.jsp" %><%
}
SecUser txUser = SecUser.getTXUser(process.getTransaction());
CompanyUser companyUser = txUser.getExtension(CompanyUser.REFERENCE_CompanyUser);
HiringTeam hiringTeam = companyUser.getSelectedTeam();
Job[] jobs = Job.SearchByAll()
.andHiringTeam(new EqualsFilter<>(hiringTeam))
.search(transaction);
String nextPage = WebUtils.getSamePageInRenderMode(request, WebUtils.CREATE_JOB);
job.setHiringTeam(hiringTeam);
job.setJobOwner(companyUser);
%>
<script type="text/javascript">
$(document).ready(function()
{
setupRecalc ($("form#editJob"), {'recalcOnError':true});
$(".oneit-radio input").each(function(){
if($(this).is(':checked')) {
updateRadioChecked(this);
}
$(this).click(function(){
if($(this).is(':checked')) {
updateRadioChecked(this);
}
});
});
});
function updateRadioChecked(ele){
$(".oneit-radio label").removeClass('checked');
$(ele).closest('label').addClass('checked');
}
</script>
<oneit:form name="editJob" method="post" enctype="multipart/form-data">
<div class="container-fluid">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<h1 class="page-title">Create a job</h1>
<oneit:dynInclude page="/extensions/adminportal/inc/job_main_tabs.jsp" PageNumber="1" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="form-page-area">
<div class="create-job">
<div class="form-page-section">
<div class="form-group row">
<div class="col-md-12">
<label class="label-16">Select a starting point</label>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
Would you like to create this job based on an existing template, or create a brand new one?
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<div class="radio radio-primary second-radio-primary oneit-radio">
<label>
<oneit:ormInput obj="<%= job %>" type="radio" attributeName="FromTemplate" value="true"/>Create from template
<div>
<tagfile:ormsingleasso_select obj="<%= job %>" assocName="JobTemplate" options="<%= jobs %>"
blankValue="Select your template"/>
</div>
</label>
</div>
<div class="radio radio-primary second-radio-primary oneit-radio">
<label>
<oneit:ormInput obj="<%= job %>" type="radio" attributeName="FromTemplate" value="false"/>Create a new job
<div>
New jobs can be saved as a template to be used in future.
</div>
</label>
</div>
</div>
</div>
<div class="text-center">
<oneit:button value="Get Started" name="gotoCreateJob" cssClass="btn btn-primary largeBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("Job", job)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).toMap())
.toMap() %>"/>
</div>
</div>
</div>
</div>
</div>
</oneit:form>
</oneit:dynIncluded>
......@@ -9,6 +9,7 @@ Job.CultureTemplateName = Template Name
Job.JobType = Job Type
Job.ReferenceNumber = Reference Number
Job.State = State or Province
Job.JobTemplate = Job Template
CultureCriteria.Importance = Rate Importance
CultureCriteria.CultureElementRating = Rating
......
......@@ -73,7 +73,7 @@
<div class="welcome-box">
<div class="dashboard-welcome">
<div class="welcome-text"> Welcome <br/> <%= firstTime ? "" : "back"%> <oneit:toString value="<%= secUser.getFirstName()!=null ? secUser.getFirstName() : secUser.getUserName()%>" mode="EscapeHTML"/>!</div>
<a class="d-create-job-btn" href="<%= jobsArticle.getLink(request, CollectionUtils.mapEntry("cms.rm", WebUtils.CREATE_JOB).toMap()) %>">Create a Job</a>
<a class="d-create-job-btn" href="<%= jobsArticle.getLink(request, CollectionUtils.mapEntry("cms.rm", WebUtils.START_JOB).toMap()) %>">Create a Job</a>
</div>
<div class="col-sm-3 col-xs-12 d-three-box green-light">
<div class="d-fl-left eq-height">
......
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