Commit 4ab4a41c by nilu

Merged 'develop'.

parents 204aa0d2 c5958847
......@@ -10,6 +10,7 @@
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="client_name" type="String" nullable="false" length="30"/>
<column name="client_logo" type="BLOB" nullable="true"/>
<column name="use_client_details" type="Boolean" nullable="true"/>
<column name="email" type="String" nullable="true" length="100"/>
<column name="contact_name" type="String" nullable="true" length="100"/>
<column name="contact_surname" type="String" nullable="true" length="100"/>
......
......@@ -14,6 +14,7 @@
<column name="open_date" type="Date" nullable="true"/>
<column name="apply_by" type="Date" nullable="true"/>
<column name="include_assessment_criteria" type="Boolean" nullable="false"/>
<column name="include_culture" type="Boolean" nullable="false"/>
<column name="assessment_type" type="String" nullable="false" length="200"/>
<column name="random_key" type="String" nullable="true" length="10"/>
<column name="job_type" type="String" nullable="false" length="200"/>
......
......@@ -12,7 +12,9 @@
<column name="name" type="String" nullable="false" length="250"/>
<column name="level" type="String" nullable="false" length="200"/>
<column name="assessment_type" type="String" nullable="true" length="200"/>
<column name="parttime_assessment_type" type="String" nullable="true" length="200"/>
<column name="assessment_level_id" type="Long" length="11" nullable="true"/>
<column name="express_assessment_level_id" type="Long" length="11" nullable="true"/>
<column name="parent_occupation_id" type="Long" length="11" nullable="true"/>
</NODE>
......
......@@ -10,6 +10,7 @@ CREATE TABLE tl_client (
,
client_name varchar(30) NOT NULL,
client_logo image NULL,
use_client_details char(1) NULL,
email varchar(100) NULL,
contact_name varchar(100) NULL,
contact_surname varchar(100) NULL,
......
......@@ -14,6 +14,7 @@ CREATE TABLE tl_job (
open_date datetime NULL,
apply_by datetime NULL,
include_assessment_criteria char(1) NOT NULL,
include_culture char(1) NOT NULL,
assessment_type varchar(200) NOT NULL,
random_key varchar(10) NULL,
job_type varchar(200) NOT NULL,
......
......@@ -12,7 +12,9 @@ CREATE TABLE tl_occupation (
name varchar(250) NOT NULL,
level varchar(200) NOT NULL,
assessment_type varchar(200) NULL,
parttime_assessment_type varchar(200) NULL,
assessment_level_id numeric(12) NULL,
express_assessment_level_id numeric(12) NULL,
parent_occupation_id numeric(12) NULL
);
......
......@@ -11,6 +11,7 @@ CREATE TABLE tl_client (
,
client_name varchar2(30) NOT NULL,
client_logo blob NULL,
use_client_details char(1) NULL,
email varchar2(100) NULL,
contact_name varchar2(100) NULL,
contact_surname varchar2(100) NULL,
......
......@@ -15,6 +15,7 @@ CREATE TABLE tl_job (
open_date date NULL,
apply_by date NULL,
include_assessment_criteria char(1) NOT NULL,
include_culture char(1) NOT NULL,
assessment_type varchar2(200) NOT NULL,
random_key varchar2(10) NULL,
job_type varchar2(200) NOT NULL,
......
......@@ -13,7 +13,9 @@ CREATE TABLE tl_occupation (
name varchar2(250) NOT NULL,
level varchar2(200) NOT NULL,
assessment_type varchar2(200) NULL,
parttime_assessment_type varchar2(200) NULL,
assessment_level_id number(12) NULL,
express_assessment_level_id number(12) NULL,
parent_occupation_id number(12) NULL
);
......
......@@ -11,6 +11,7 @@ CREATE TABLE tl_client (
,
client_name varchar(30) NOT NULL,
client_logo bytea NULL,
use_client_details char(1) NULL,
email varchar(100) NULL,
contact_name varchar(100) NULL,
contact_surname varchar(100) NULL,
......
......@@ -15,6 +15,7 @@ CREATE TABLE tl_job (
open_date timestamp NULL,
apply_by timestamp NULL,
include_assessment_criteria char(1) NOT NULL,
include_culture char(1) NOT NULL,
assessment_type varchar(200) NOT NULL,
random_key varchar(10) NULL,
job_type varchar(200) NOT NULL,
......
......@@ -13,7 +13,9 @@ CREATE TABLE tl_occupation (
name varchar(250) NOT NULL,
level varchar(200) NOT NULL,
assessment_type varchar(200) NULL,
parttime_assessment_type varchar(200) NULL,
assessment_level_id numeric(12) NULL,
express_assessment_level_id numeric(12) NULL,
parent_occupation_id numeric(12) NULL
);
......
......@@ -15,7 +15,7 @@ import oneit.utils.CollectionUtils;
import oneit.utils.RandomStringGen;
import performa.orm.JobApplication;
import performa.orm.WorkFlow;
import performa.orm.types.ApplicationStatus;
import performa.orm.types.AppView;
import performa.utils.PDFUtils;
......@@ -30,7 +30,7 @@ public class ApplicantReportFP extends ORMProcessFormProcessor
HttpServletRequest request = submission.getRequest();
RandomStringGen rand = new RandomStringGen();
final String randFileName = rand.generateAlphaNum(16) + ".pdf";
boolean showList = (boolean) request.getAttribute("ShowList");
AppView appView = (AppView) request.getAttribute("AppView");
boolean detailed = (boolean) request.getAttribute("Detailed");
boolean applicantPage = (boolean) request.getAttribute("ApplicantPage");
WorkFlow workflow = (WorkFlow) request.getAttribute("WorkFlow");
......@@ -49,7 +49,7 @@ public class ApplicantReportFP extends ORMProcessFormProcessor
.mapEntry("WorkFlow", workflow)
.toMap();
if(CollectionUtils.equals(showList, true))
if(appView == AppView.LIST)
{
pdfBytes = PDFUtils.generateApplicantsListPDF(submission, data);
}
......
package performa.form;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.logging.*;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.StorageException;
import oneit.servlets.forms.*;
import oneit.servlets.process.*;
import oneit.utils.BusinessException;
import performa.orm.*;
public class ChangeCultureCriteriaFP extends ORMProcessFormProcessor
{
@Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{
HttpServletRequest request = submission.getRequest();
ObjectTransaction objTran = process.getTransaction();
Job job = (Job) request.getAttribute("Job");
LogMgr.log(Job.LOG, LogLevel.PROCESSING1, "Inside ChangeCultureCriteriaFP for ", job , " Include Culture:", job.getIncludeCulture());
if(!job.isTrue(job.getIncludeCulture()))
{
for(CultureCriteria cultureCriteria : job.getCultureCriteriasSet())
{
cultureCriteria.delete();
}
job.setSaveCultureTemplate(false);
job.setCultureTemplate(null);
}
else
{
for(CultureElement cultureElement : CultureElement.searchAll(objTran))
{
CultureCriteria cultureCriteria = CultureCriteria.createCultureCriteria(objTran);
cultureCriteria.setCultureElement(cultureElement);
job.addToCultureCriterias(cultureCriteria);
}
}
LogMgr.log(Job.LOG, LogLevel.PROCESSING1, "ChangeCultureCriteriaFP completed for ", job);
return RedisplayResult.getInstance();
}
}
......@@ -14,6 +14,7 @@ import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException;
import performa.orm.types.AssessmentType;
import performa.orm.types.CriteriaType;
import performa.orm.types.JobType;
public class AssessmentCriteriaTemplate extends BaseAssessmentCriteriaTemplate
......@@ -102,12 +103,56 @@ public class AssessmentCriteriaTemplate extends BaseAssessmentCriteriaTemplate
if(occupation != null)
{
setOccupation(occupation);
setLevel(occupation.getAssessmentLevel());
setAssessmentType(occupation.getAssessmentType());
setSuggestedAssessmentType(getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType());
setAssessmentType(getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType());
setLevel(getAssessmentType() == AssessmentType.COMPREHENSIVE ? occupation.getAssessmentLevel() : occupation.getExpressAssessmentLevel());
}
super.postILOJobTitleChange();
}
@Override
protected void postJobTypeChange() throws FieldException
{
Occupation occupation = getILOJobTitle() != null ? getILOJobTitle().getOccupation() : null;
if(occupation != null)
{
setSuggestedAssessmentType(getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType());
setAssessmentType(getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType());
setLevel(getAssessmentType() == AssessmentType.COMPREHENSIVE ? occupation.getAssessmentLevel() : occupation.getExpressAssessmentLevel());
}
super.postJobTypeChange();
}
@Override
public AssessmentType getSuggestedAssessmentType()
{
Occupation occupation = getILOJobTitle() != null ? getILOJobTitle().getOccupation() : null;
if(occupation != null)
{
return getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType();
}
return super.getSuggestedAssessmentType();
}
@Override
protected void postAssessmentTypeChange() throws FieldException
{
Occupation occupation = getILOJobTitle() != null ? getILOJobTitle().getOccupation() : null;
if(occupation != null && getSuggestedAssessmentType() != super.getAssessmentType())
{
setLevel(getAssessmentType() == AssessmentType.COMPREHENSIVE ? occupation.getAssessmentLevel() : occupation.getExpressAssessmentLevel());
}
super.postAssessmentTypeChange();
}
public Occupation displayOccupation()
{
......
......@@ -7,6 +7,8 @@
<IMPORT value="performa.orm.types.*"/>
<IMPORT value="oneit.security.*"/>
<TRANSIENT name="SuggestedAssessmentType" type="AssessmentType" attribHelper="EnumeratedAttributeHelper"/>
<MULTIPLEREFERENCE name="AssessmentCriterias" type="AssessmentCriteria" backreferenceName="Template" />
<MULTIPLEREFERENCE name="WorkFlows" type="WorkFlow" backreferenceName="Template" />
......
......@@ -114,7 +114,7 @@ public class Candidate extends BaseCandidate
{
int allAnswersCount = getCultureCriteriaAnswersCount();
if(allAnswersCount == job.getCultureCriteriasCount())
if(job.showCultureCriteriaSection() && allAnswersCount == job.getCultureCriteriasCount())
{
Filter filter = CultureCriteriaAnswer.SearchByAll().andSelectedQuestion(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineCandidate().toCultureCriteriaAnswers(filter).vals();
......@@ -127,7 +127,7 @@ public class Candidate extends BaseCandidate
public double cultureCompletedPercentage(Job job)
{
return (getCultureCriteriaAnswersCount() * 100) / job.getCultureCriteriasCount() ;
return job.showCultureCriteriaSection() ? (getCultureCriteriaAnswersCount() * 100) / job.getCultureCriteriasCount() : 0d;
}
public double roleFitCompletedPercentage(Job job)
......
package performa.orm;
import oneit.utils.math.NullArith;
public class CandidateClassScore extends BaseCandidateClassScore
{
......@@ -10,4 +12,9 @@ public class CandidateClassScore extends BaseCandidateClassScore
{
// Do not add any code to this, always put it in initialiseNewObject
}
public double getWeightedPercentage()
{
return NullArith.divide(getWghtdClassScore(), getMaxWghtdClassScore()) * 100;
}
}
\ No newline at end of file
......@@ -32,4 +32,9 @@ public class Client extends BaseClient
{
return StringUtils.subNulls(getClientName(), super.getToString());
}
public boolean showUseClientDetails()
{
return isTrue(getUseClientDetails());
}
}
\ No newline at end of file
......@@ -15,6 +15,7 @@
<ATTRIB name="ClientName" type="String" dbcol="client_name" mandatory="true" length="30"/>
<ATTRIB name="ClientLogo" type="BinaryContent" dbcol="client_logo" mandatory="false" binaryHandler="loggedin" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE" />
<ATTRIB name="UseClientDetails" type="Boolean" dbcol="use_client_details" mandatory="false" defaultValue="Boolean.TRUE" />
<ATTRIB name="Email" type="String" dbcol="email" mandatory="false" length="100" validators="Email" />
<ATTRIB name="ContactName" type="String" dbcol="contact_name" mandatory="false" length="100"/>
<ATTRIB name="ContactSurname" type="String" dbcol="contact_surname" mandatory="false" length="100"/>
......
package performa.orm;
import java.io.*;
import java.util.*;
import oneit.appservices.config.*;
import oneit.logging.*;
import oneit.objstore.*;
import oneit.utils.*;
import performa.orm.types.*;
public class ILOJobTitle extends BaseILOJobTitle
{
......@@ -31,5 +19,4 @@ public class ILOJobTitle extends BaseILOJobTitle
return StringUtils.subNulls(getJobTitle(), super.getToString());
}
}
}
\ No newline at end of file
......@@ -415,6 +415,16 @@ public class Job extends BaseJob
return isTrue(getIncludeAssessmentCriteria());
}
public boolean showCultureCriteriaSection()
{
return isTrue(getIncludeCulture());
}
public int getNumberOfSections()
{
return (showCultureCriteriaSection() && showAssessmentCriteriaSection() ? 3 : (showCultureCriteriaSection() || showAssessmentCriteriaSection()) ? 2 : 1);
}
public int getMaxShortlistApplicants()
{
return 25;
......@@ -462,7 +472,7 @@ public class Job extends BaseJob
title.append("Matchd - ");
if(isClientAvailable())
if(isClientAvailable() && getClient().showUseClientDetails())
{
title.append(getClient()).append(" - ");
}
......@@ -549,30 +559,23 @@ public class Job extends BaseJob
public BinaryContent getLogo()
{
if(isClientAvailable() && getClient().getClientLogo() != null)
if(isClientAvailable() && getClient().showUseClientDetails())
{
return getClient().getClientLogo();
}
else if(getHiringTeam() != null)
{
return getHiringTeam().getHiringTeamLogo();
}
return null;
return getHiringTeam() != null ? getHiringTeam().getHiringTeamLogo() : null;
}
public String getTeamName()
{
if(isClientAvailable())
if(isClientAvailable() && getClient().showUseClientDetails())
{
return getClient().getClientName();
}
else if(getHiringTeam() != null)
{
return getHiringTeam().getHiringTeamName();
}
return "";
return getHiringTeam() != null ? getHiringTeam().getHiringTeamName() : "";
}
......@@ -741,12 +744,57 @@ public class Job extends BaseJob
if(occupation != null)
{
setOccupation(occupation);
setLevel(occupation.getAssessmentLevel());
setAssessmentType(occupation.getAssessmentType());
setSuggestedAssessmentType(getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType());
setAssessmentType(getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType());
setLevel(getAssessmentType() == AssessmentType.COMPREHENSIVE ? occupation.getAssessmentLevel() : occupation.getExpressAssessmentLevel());
}
super.postILOJobTitleChange();
}
@Override
protected void postJobTypeChange() throws FieldException
{
Occupation occupation = getILOJobTitle() != null ? getILOJobTitle().getOccupation() : null;
if(occupation != null)
{
setSuggestedAssessmentType(getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType());
setAssessmentType(getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType());
setLevel(getAssessmentType() == AssessmentType.COMPREHENSIVE ? occupation.getAssessmentLevel() : occupation.getExpressAssessmentLevel());
}
super.postJobTypeChange();
}
@Override
protected void postAssessmentTypeChange() throws FieldException
{
Occupation occupation = getILOJobTitle() != null ? getILOJobTitle().getOccupation() : null;
if(occupation != null && getSuggestedAssessmentType() != super.getAssessmentType())
{
setLevel(getAssessmentType() == AssessmentType.COMPREHENSIVE ? occupation.getAssessmentLevel() : occupation.getExpressAssessmentLevel());
}
super.postAssessmentTypeChange();
}
@Override
public AssessmentType getSuggestedAssessmentType()
{
Occupation occupation = getILOJobTitle() != null ? getILOJobTitle().getOccupation() : null;
if(occupation != null)
{
return getJobType() == JobType.FULL_TIME ? occupation.getAssessmentType() : occupation.getPartTimeAssessmentType();
}
return super.getSuggestedAssessmentType();
}
public Occupation displayOccupation()
{
......
......@@ -24,6 +24,7 @@
<TRANSIENT name="AssessmentTemplateName" type="String"/>
<TRANSIENT name="CultureTemplateName" type="String"/>
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="SuggestedAssessmentType" type="AssessmentType" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="RankingCompleted" type="Boolean" />
<TRANSIENTSINGLE name="CultureTemplate" type="CultureCriteriaTemplate" />
......@@ -38,6 +39,7 @@
<ATTRIB name="OpenDate" type="Date" dbcol="open_date"/>
<ATTRIB name="ApplyBy" type="Date" dbcol="apply_by"/>
<ATTRIB name="IncludeAssessmentCriteria" type="Boolean" dbcol="include_assessment_criteria" mandatory="true" defaultValue="Boolean.TRUE"/>
<ATTRIB name="IncludeCulture" type="Boolean" dbcol="include_culture" mandatory="true" defaultValue="Boolean.TRUE"/>
<ATTRIB name="AssessmentType" type="AssessmentType" dbcol="assessment_type" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="AssessmentType.COMPREHENSIVE"/>
<ATTRIB name="RandomKey" type="String" dbcol="random_key" length="10"/>
<ATTRIB name="JobType" type="JobType" dbcol="job_type" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="JobType.FULL_TIME"/>
......
......@@ -165,7 +165,7 @@ public class JobApplication extends BaseJobApplication
Candidate candidate = getCandidate();
//to skip culture test
if(cultureCompleted())
if(!isIncludeCultureCriteria() || cultureCompleted())
{
return safeRedirect;
}
......@@ -249,7 +249,7 @@ public class JobApplication extends BaseJobApplication
public boolean cultureCompleted()
{
return getCandidate().cultureCompleted(getJob());
return isIncludeCultureCriteria() ? getCandidate().cultureCompleted(getJob()) : true;
}
......@@ -280,6 +280,11 @@ public class JobApplication extends BaseJobApplication
{
return getJob() != null && isTrue(getJob().getIncludeAssessmentCriteria());
}
public boolean isIncludeCultureCriteria()
{
return getJob() != null && isTrue(getJob().getIncludeCulture());
}
@Override
public Map getRoleFit()
......@@ -709,7 +714,7 @@ public class JobApplication extends BaseJobApplication
{
Tuple.T3<Double, ColorCode, Double> roleFitData = (getRoleFit() != null && getRoleFit().get(null) != null) ? (Tuple.T3<Double, ColorCode, Double>) getRoleFit().get(null) : null;
double score = roleFitData != null ? roleFitData.get2() : 0d;
double score = roleFitData != null ? roleFitData.get2() > 0 ? roleFitData.get2() : 0d : 0d;
Color color = roleFitData != null ? Utils.getColor(roleFitData.get1()) : RingChart.GREEN;
return new RingChart(getID().toString() + "rolefit.jpeg").addData("Completed", score , color).addData("Incomplete", (100 - score), RingChart.GREY).getChartImage();
......
......@@ -9,13 +9,15 @@
<MULTIPLEREFERENCE name="ChildOccupations" type="Occupation" backreferenceName="ParentOccupation" />
<TABLE name="tl_occupation" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Code" type="String" dbcol="code" length="4" mandatory="true" isUnique="true"/>
<ATTRIB name="Name" type="String" dbcol="name" length="250" mandatory="true"/>
<ATTRIB name="Level" type="OccupationLevel" dbcol="level" attribHelper="EnumeratedAttributeHelper" mandatory="true"/>
<ATTRIB name="AssessmentType" type="AssessmentType" dbcol="assessment_type" attribHelper="EnumeratedAttributeHelper" />
<SINGLEREFERENCE name="AssessmentLevel" type="Level" dbcol="assessment_level_id" />
<SINGLEREFERENCE name="ParentOccupation" type="Occupation" dbcol="parent_occupation_id" backreferenceName="ChildOccupations"/>
<ATTRIB name="Code" type="String" dbcol="code" length="4" mandatory="true" isUnique="true"/>
<ATTRIB name="Name" type="String" dbcol="name" length="250" mandatory="true"/>
<ATTRIB name="Level" type="OccupationLevel" dbcol="level" attribHelper="EnumeratedAttributeHelper" mandatory="true"/>
<ATTRIB name="AssessmentType" type="AssessmentType" dbcol="assessment_type" attribHelper="EnumeratedAttributeHelper" />
<ATTRIB name="PartTimeAssessmentType" type="AssessmentType" dbcol="parttime_assessment_type" attribHelper="EnumeratedAttributeHelper" />
<SINGLEREFERENCE name="AssessmentLevel" type="Level" dbcol="assessment_level_id" />
<SINGLEREFERENCE name="ExpressAssessmentLevel" type="Level" dbcol="express_assessment_level_id" />
<SINGLEREFERENCE name="ParentOccupation" type="Occupation" dbcol="parent_occupation_id" backreferenceName="ChildOccupations"/>
</TABLE>
<SEARCH type="All" paramFilter="object_id is not null" orderBy="object_id"/>
......
package performa.orm.types;
import java.util.*;
import oneit.utils.*;
/**
* This class was generated using constGen.bat.
* DO NOT MODIFY THIS CODE.
* Edit the associated .xml file, and regenerate this file
* constGen (directory) (file minus extension)
* e.g. constGen C:\...\sql FieldType
*/
public class AppView extends AbstractEnumerated
{
public static final EnumeratedFactory FACTORY_AppView = new AppViewFactory();
public static final AppView LIST = new AppView ("LIST", "LIST", "List", false);
public static final AppView GRID = new AppView ("GRID", "GRID", "Grid", false);
public static final AppView DETAILED_GRID = new AppView ("DETAILED_GRID", "DETAILED_GRID", "Detailed Grid", false);
private static final AppView[] allAppViews =
new AppView[] { LIST,GRID,DETAILED_GRID};
private static AppView[] getAllAppViews ()
{
return allAppViews;
}
private AppView (String name, String value, String description, boolean disabled)
{
super (name, value, description, disabled);
}
public static final Comparator COMPARE_BY_POSITION = new CompareEnumByPosition (allAppViews);
static
{
defineAdditionalData ();
}
public boolean isEqual (AppView other)
{
return this.name.equals (other.name);
}
public Enumeration getAllInstances ()
{
return AppView.getAll ();
}
private Object readResolve() throws java.io.ObjectStreamException
{
return AppView.forName (this.name);
}
public EnumeratedFactory getFactory ()
{
return FACTORY_AppView;
}
public static AppView forName (String name)
{
if (name == null) { return null; }
AppView[] all = getAllAppViews();
int enumIndex = AbstractEnumerated.getIndexForName (all, name);
return all[enumIndex];
}
public static AppView forValue (String value)
{
if (value == null) { return null; }
AppView[] all = getAllAppViews();
int enumIndex = AbstractEnumerated.getIndexForValue (getAllAppViews (), value);
return all[enumIndex];
}
public static java.util.Enumeration getAll ()
{
return AbstractEnumerated.getAll (getAllAppViews());
}
public static AppView[] getAppViewArray ()
{
return (AppView[])getAllAppViews().clone ();
}
public static void defineAdditionalData ()
{
}
static class AppViewFactory implements EnumeratedFactory
{
public AbstractEnumerated getForName (String name)
{
return AppView.forName (name);
}
public AbstractEnumerated getForValue (String name)
{
return AppView.forValue (name);
}
public Enumeration getAll ()
{
return AppView.getAll ();
}
}
public Map getAdditionalAttributes ()
{
Map attribs = new HashMap ();
return attribs;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<CONSTANT package="performa.orm.types" name="AppView">
<VALUE name="LIST" value="LIST" description="List"/>
<VALUE name="GRID" value="GRID" description="Grid"/>
<VALUE name="DETAILED_GRID" value="DETAILED_GRID" description="Detailed Grid"/>
</CONSTANT>
</ROOT>
\ No newline at end of file
......@@ -423,9 +423,29 @@ public class AnalysisEngine
TestAnalysis testAnalysis = candidate.getTestAnalysisFor(level);
Map<FactorClass, Tuple.T3<Double, ColorCode, Double>> scoreMap = new HashMap();
boolean isExpress = level.getAppliedToExpress();
if(testAnalysis != null && testAnalysis.getCandidateClassScoresCount() > 0)
{
Tuple.T3<Double, ColorCode, Double> suitabilityScore = getSuitabilityScore(testAnalysis);
double totalPercentage = 0d;
int count = 0;
for(LevelClassCriteria levelClassCriteria : level.getLevelClassCriteriasSet())
{
FactorClass factorClass = levelClassCriteria.getFactorClass();
Filter<CandidateClassScore> candidateClassScoreFilter = CandidateClassScore.SearchByAll().andFactorClass(new EqualsFilter(factorClass));
CandidateClassScore candidateClassScore = testAnalysis.pipelineTestAnalysis().toCandidateClassScores(candidateClassScoreFilter).val();
if(isExpress && candidateClassScore != null)
{
totalPercentage += candidateClassScore.getWeightedPercentage();
count++;
}
}
double average = totalPercentage / count;
double ratio = (average / suitabilityScore.get2());
for(LevelClassCriteria levelClassCriteria : level.getLevelClassCriteriasSet())
{
FactorClass factorClass = levelClassCriteria.getFactorClass();
......@@ -437,16 +457,23 @@ public class AnalysisEngine
Double scorePercentage = 0d;
ColorCode colorCode = null;
if(candidateClassScore != null && classNormalisation != null && NullArith.greaterThan(classNormalisation.getWghtStddevScore(), 0d))
if(isExpress && candidateClassScore != null)
{
score = (double)candidateClassScore.getWghtdClassScore();
scorePercentage = NullArith.round(NullArith.divide(candidateClassScore.getWeightedPercentage(), ratio), 2);
colorCode = candidateClassScore.getColorCode();
}
else if(candidateClassScore != null && classNormalisation != null && NullArith.greaterThan(classNormalisation.getWghtStddevScore(), 0d))
{
score = classNormalisation.getRoleFitScore(candidateClassScore.getWghtdClassScore());
maxScore = classNormalisation.getRoleFitScore(candidateClassScore.getMaxWghtdClassScore());
colorCode = candidateClassScore.getColorCode();
scorePercentage = NullArith.round(NullArith.divide(NullArith.multiply(score, 100), maxScore), 2);
}
scoreMap.put(factorClass, new Tuple.T3(score, colorCode, scorePercentage));
}
scoreMap.put(null, getSuitabilityScore(testAnalysis));
scoreMap.put(null, suitabilityScore);
}
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> getRoleFitSuitability completed for candidate ", candidate, " Level ", level);
......
package performa.utils;
import oneit.utils.FormatterFactory;
import performa.orm.AssessmentCriteriaTemplate;
import performa.orm.Job;
import performa.orm.types.AssessmentType;
public class AssessmentTypeEnumFormatter implements FormatterFactory
{
private Job job;
private AssessmentCriteriaTemplate template;
public AssessmentTypeEnumFormatter(Job job)
{
this.job = job;
}
public AssessmentTypeEnumFormatter(AssessmentCriteriaTemplate template)
{
this.template = template;
}
@Override
public Object getFormatterFor(Object objectToFormat)
{
AssessmentType assessmentType = ((AssessmentType) objectToFormat);
AssessmentType suggestedType = job != null ? job.getSuggestedAssessmentType() : template.getSuggestedAssessmentType();
if(suggestedType == assessmentType)
{
return assessmentType.getDescription() + " (Suggested)";
}
return assessmentType.getDescription();
}
}
\ No newline at end of file
......@@ -275,14 +275,22 @@ public class PerformaEmailFetcher implements Runnable, InitialisationParticipant
if(message.getAllRecipients() != null && message.getAllRecipients().length > 0)
{
tmpRecipient = ((InternetAddress) message.getAllRecipients()[0]).getAddress();
for(Address receipientAddress : message.getAllRecipients())
{
tmpRecipient = ((InternetAddress)receipientAddress).getAddress();
if(StringUtils.subBlanks(tmpRecipient) != null && tmpRecipient.contains("job"))
{
tmpJobId = getJobIdentifierFromEmail(tmpRecipient);
if(tmpJobId != null && !tmpJobId.isEmpty() && StringUtils.isNumber(tmpJobId))
{
break;
}
}
}
}
if(StringUtils.subBlanks(tmpRecipient) != null)
{
tmpJobId = getJobIdentifierFromEmail(tmpRecipient);
}
tmpEmailText = EmailFetcher.getText(message, new ArrayList<>());
tmpContents = getAttachments(message);
}
......@@ -476,8 +484,8 @@ public class PerformaEmailFetcher implements Runnable, InitialisationParticipant
public static String getJobIdentifierFromEmail(String strReceipient)
{
int index = strReceipient.indexOf('@');
return strReceipient.substring(0, index).replace("job", "");
return strReceipient.substring(0, index).replace("job", "");
}
private static List<FileBinaryContent> getAttachments(Message message) throws IOException, MessagingException
......
......@@ -4447,6 +4447,14 @@ no-applicant.inactive a:hover,no-applicant.inactive a:hover span{
text-transform: uppercase;
width: 20%;
}
.appli-jcs3 {
color: #4a4a4a;
font-size: 11px;
letter-spacing: 1px;
padding: 26px 18px 5px;
text-transform: uppercase;
width: 40%;
}
.appli-overall{
color: #4a4a4a;
font-size: 11px;
......@@ -4678,12 +4686,24 @@ span.right-img {
margin-right: 8px;
margin-top: 4px;
}
.detailed-grid-list a:before{
background-image: url('../images/details-icon-black.jpg');
width: 13px;
height: 13px;
content: '';
float: left;
margin-right: 8px;
margin-top: 4px;
}
.short-list.active a:before{
background-image: url('../images/list-active.png');
}
.grid-list.active a:before{
background-image: url('../images/grid-active.png');
}
.detailed-grid-list.active a:before{
background-image: url('../images/details-icon.jpg');
}
.appli-list-shorting.main-shortlist{
margin-top: 0;
}
......
......@@ -27,6 +27,7 @@
<NODE name="dynamic_content_form::ADMIN_PORTAL" factory="Participant">
<FORM name="*.changeAssessmentCriteria" factory="Participant" class="performa.form.ChangeAssessmentCriteriaFP"/>
<FORM name="*.changeCultureCriteria" factory="Participant" class="performa.form.ChangeCultureCriteriaFP"/>
<FORM name="*.saveJob" factory="Participant" class="performa.form.SaveJobFP"/>
<FORM name="*.saveRequirementTemplate" factory="Participant" class="performa.form.SaveRequirementsTemplateFP"/>
<FORM name="*.saveCultureTemplate" factory="Participant" class="performa.form.SaveCultureTemplateFP"/>
......@@ -80,6 +81,9 @@
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
</NODE>
<NODE name="assessment_type_selector_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
</NODE>
<NODE name="signin_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
......
......@@ -72,7 +72,18 @@
</span>
</div>
</div>
<div class="form-group">
<div class="styled_checkboxes">
<div class="checkbox checkbox-primary">
<oneit:ormInput obj="<%= client %>" id="use-client-details" attributeName="UseClientDetails" type="checkbox"/>
<oneit:recalcClass htmlTag="span" classScript="client.showUseClientDetails() ? 'checked': 'unchecked'" client="<%= client %>">
<label for="use-client-details">
<oneit:ormlabel obj="<%= client %>" field="UseClientDetails" />
</label>
</oneit:recalcClass>
</div>
</div>
</div>
<div class="form-brack-line-sub"></div>
<div class="form-group">
......
......@@ -242,43 +242,48 @@
<label class="label-16 blue-label">Culture</label>
</div>
<div class="form-brack-line-sub"></div>
<div class="row">
<div class="col-md-12 review-medium-title">
<oneit:label GUIName="Organisation Culture Statement" />
<span class="skill-label">
<oneit:toString value="<%= job.getCultureStatement() %>" mode="ParagraphHTML" />
</span>
</div>
</div>
<%
for(CultureClass cultureClass : CultureClass.getCultureClassArray())
if(job.showCultureCriteriaSection())
{
%>
<div class="form-brack-line-sub"></div>
<div class="form-group">
<div class="beloning">
<oneit:toString value="<%= cultureClass %>" mode="EscapeHTML"/>
<div class="row">
<div class="col-md-12 review-medium-title">
<oneit:label GUIName="Organisation Culture Statement" />
<span class="skill-label">
<oneit:toString value="<%= job.getCultureStatement() %>" mode="ParagraphHTML" />
</span>
</div>
</div>
<div class="form-group">
<%
for (CultureCriteria criteria : job.getCultureCriteriasForClass(cultureClass))
{
if(criteria.getIsApplicable())
<%
for(CultureClass cultureClass : CultureClass.getCultureClassArray())
{
%>
<div class="form-brack-line-sub"></div>
<div class="form-group">
<div class="beloning">
<oneit:toString value="<%= cultureClass %>" mode="EscapeHTML"/>
</div>
</div>
<div class="form-group">
<%
for (CultureCriteria criteria : job.getCultureCriteriasForClass(cultureClass))
{
%>
<div class="row main-review-label">
<div class="col-sm-4 col-xs-12 review-label culture-element">
<oneit:toString value="<%= criteria.getCultureElement() %>" mode="EscapeHTML"/>
</div>
<div class="col-sm-8 col-xs-12 review-data">
<oneit:toString value="<%= criteria.getCultureElementRating()!= null ? criteria.getCultureElementRating().getDescription() : ""%>" mode="EscapeHTML"/>
(<oneit:toString value="<%= criteria.getImportance() %>" mode="EscapeHTML"/>)
if(criteria.getIsApplicable())
{
%>
<div class="row main-review-label">
<div class="col-sm-4 col-xs-12 review-label culture-element">
<oneit:toString value="<%= criteria.getCultureElement() %>" mode="EscapeHTML"/>
</div>
<div class="col-sm-8 col-xs-12 review-data">
<oneit:toString value="<%= criteria.getCultureElementRating()!= null ? criteria.getCultureElementRating().getDescription() : ""%>" mode="EscapeHTML"/>
(<oneit:toString value="<%= criteria.getImportance() %>" mode="EscapeHTML"/>)
</div>
</div>
</div>
<%
<%
}
}
}
}
%>
</div>
<%
......
......@@ -44,13 +44,31 @@
var scrolldiv = null ;
$(document).ready(function()
{
setupRecalc ($("form#editJobTemplate"), {'recalcOnError':true});
setupRecalc ($("form#editJob"), {'recalcOnError':true});
$("select[name$='JobTemplate']").change(function()
{
$("button[name$='loadJobFromTemplate']").click();
});
$('input[type="text"][id$="ILOJobTitle_autocomplete"]').change(function()
{
$("#assessment_type").empty();
ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/adminportal/inc/assessment_type_selector.jsp", "#assessment_type", {jobTitleID : $('input[type="hidden"][id$="JobTitle"]').val()}, function (theHTML_JQ) {
$("#assessment_type").append (theHTML_JQ);
});
});
$("select[name$='JobType']").change(function()
{
$("#assessment_type").empty();
ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/adminportal/inc/assessment_type_selector.jsp", "#assessment_type", {jobTypeName : $(this).val()}, function (theHTML_JQ) {
$("#assessment_type").append (theHTML_JQ);
});
});
if ($("#select-occupation-id").val()) {
lastclickedOccid = $("#select-occupation-id").val();
}else {
......@@ -164,6 +182,14 @@
$("#occupation span").addClass("form-control");
$("#occupation span").css({"padding":"15px","display":"inline-table"});
ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/adminportal/inc/assessment_type_selector.jsp", "#assessment_type", {}, function (theHTML_JQ) {
$("#assessment_type").append (theHTML_JQ);
});
addPostAjaxAddHTMLModifiers (function () {
$( "select[name$='AssessmentType']" ).select2({minimumResultsForSearch: Infinity});
}, true);
});
......@@ -277,7 +303,7 @@
<oneit:script src="/scripts/google_address.js"/>
</oneit:script>
<oneit:form name="editJobTemplate" method="post" enctype="multipart/form-data">
<oneit:form name="editJob" method="post" enctype="multipart/form-data">
<h1 class="page-title page-title-with-arrow edit-template">
<oneit:button cssClass="arrow-btn-blue" name="gotoPage" value=" " skin="link"
......@@ -401,7 +427,12 @@
<oneit:ormEnum obj="<%= template %>" attributeName="Industry" cssClass="form-control" displayType="autocomplete"/>
</div>
</div>
<div class="form-group row">
<div class="col-md-6">
<label><oneit:label GUIName="Assessment Length" /></label>
<div id="assessment_type"></div>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<div class="styled_checkboxes">
......
......@@ -42,7 +42,7 @@
}
%>
</span> by <oneit:toString value="<%= job.getCreatedBy() %>" mode="EscapeHTML" nullValue=""/> &nbsp;&nbsp;.&nbsp;&nbsp;
<oneit:toString value="<%= job.getLevel() %>" mode="EscapeHTML" />
<oneit:toString value="<%= job.getOccupation() %>" mode="EscapeHTML" />
</div>
</div>
<div class="white-header">
......@@ -105,7 +105,7 @@
<div class="view-appli-list">
<!--Requirements-->
<%
if(job.getIncludeAssessmentCriteria() == Boolean.TRUE)
if(job.showAssessmentCriteriaSection())
{
%>
<table width="100%" cellspacing="0" cellpadding="0" class="charts-table">
......@@ -304,7 +304,7 @@
for(FactorClass factorClass : factorClassDtls.keySet())
{
Map<FactorLevelLink, Map> factorDetails = factorClassDtls.get(factorClass);
Double rating = roleScoreMap.get(factorClass).get2();
Double rating = roleScoreMap.get(factorClass).get2() > 0 ? roleScoreMap.get(factorClass).get2() : 0d;
index++;
......@@ -382,6 +382,7 @@
</div>
</span>
</div>
<%
if(detailed)
{
......@@ -433,7 +434,7 @@
</tr>
</table>
<%
if(detailed)
if(detailed && job.showCultureCriteriaSection())
{
%>
<p style="page-break-before: always"></p>
......@@ -442,6 +443,10 @@
%>
<!--Culture Fit Data-->
<%
if(job.showCultureCriteriaSection())
{
%>
<table width="100%" cellspacing="0" cellpadding="0" class="charts-table culture">
<tr>
<td class="chart-cell">
......@@ -543,6 +548,9 @@
</td>
</tr>
</table>
<%
}
%>
</div>
</div>
</oneit:dynIncluded>
\ No newline at end of file
......@@ -8,7 +8,7 @@
Job job = (Job) process.getAttribute("Job");
ApplicationStatus appStatus = (ApplicationStatus) getData(request, "WorkFlowStatus");
WorkFlow workFlow = (WorkFlow) getData(request, "WorkFlow");
boolean showList = (boolean) getData(request, "ShowList");
AppView appView = (AppView) getData(request, "AppView");
String applicantsPage = WebUtils.getSamePageInRenderMode(request, WebUtils.VIEW_APPLICANTS);
List<JobApplication> applications = (List<JobApplication>) getData(request, "applications");
......@@ -25,7 +25,7 @@
applicantPage="<%= false %>"
applications="<%= applications %>"
WorkFlow="<%= workFlow %>"
ShowList="<%= showList %>"/>
AppView="<%= appView %>"/>
<div class="int-timeline">
<ul>
<li class="<%= "incomplete " + (noOfIncomplete > 0 ? "has-applicant" : "no-applicant") %> <%= appStatus == ApplicationStatus.DRAFT ? "active" : "inactive" %>">
......
......@@ -112,17 +112,22 @@
<oneit:toString value="<%= jobApplication.getRoleFitPercentage() %>" mode="PercentageWholeNumber" />
</div>
</div>
<div class="culture jcc">
<div class="jcc-title">
<img src="file:///<%= PDFUtils.FILE_BASE_PATH %>/images/culture-icon.png" /> culture fit
</div>
<div class="jcc-precentage">
<oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" />
</div>
</div>
<%
if(job.getIncludeAssessmentCriteria()==Boolean.TRUE)
if(job.showCultureCriteriaSection())
{
%>
<div class="culture jcc">
<div class="jcc-title">
<img src="file:///<%= PDFUtils.FILE_BASE_PATH %>/images/culture-icon.png" /> culture fit
</div>
<div class="jcc-precentage">
<oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" />
</div>
</div>
<%
}
if(job.showAssessmentCriteriaSection())
{
%>
<div class="criteria jcc <%=(missingReq ? "red-bg" : "green-bg")%> ">
......
......@@ -69,7 +69,7 @@
%>
</span> by <oneit:toString value="<%= job.getCreatedBy() %>" mode="EscapeHTML" nullValue=""/>
&nbsp;&nbsp;.&nbsp;&nbsp;
<oneit:toString value="<%= job.getLevel() %>" mode="EscapeHTML" />
<oneit:toString value="<%= job.getOccupation() %>" mode="EscapeHTML" />
</div>
</div>
......@@ -114,20 +114,25 @@
</span>
role fit
</div>
<div class="appli-jcs appli-l eq-second-height">
<span class="appli-view-bar">
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= culture %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + culture %>">
<span class="show-precentage"><%= culture %></span>
</div>
<%
if(job.showCultureCriteriaSection())
{
%>
<div class="appli-jcs appli-l eq-second-height">
<span class="appli-view-bar">
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= culture %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + culture %>">
<span class="show-precentage"><%= culture %></span>
</div>
</div>
</span>
culture fit
</div>
</span>
culture fit
</div>
<%
if(job.getIncludeAssessmentCriteria() == Boolean.TRUE)
}
if(job.showAssessmentCriteriaSection())
{
long criteriaVal = jobApplication.getRequirementFitScore();
String criteria = FormatUtils.stringify(criteriaVal, "PercentageWholeNumber", "0");
......
......@@ -9,9 +9,10 @@
Job job = (Job) process.getAttribute("Job");
AppSortOption appSortOpt = (AppSortOption) getData(request, "SortOption");
ApplicationStatus workflowStatus = (ApplicationStatus) getData(request, "WorkFlowStatus");
boolean isDraft = workflowStatus == ApplicationStatus.DRAFT;
ApplicationFilter appFilter = (ApplicationFilter) getData(request, "ApplicationFilter");
Boolean showOrderBy = getData(request, "ShowOrderBy")!= null ? (Boolean) getData(request, "ShowOrderBy") : Boolean.FALSE;
boolean showList = (boolean) getData(request,"ShowList");
AppView appView = (AppView) getData(request,"AppView");
SearchApplicant searchApplicant = (SearchApplicant) getData(request, "SearchApplicant");
String applicantsPage = WebUtils.getSamePageInRenderMode(request, WebUtils.VIEW_APPLICANTS) + "&JobID=" + job.getID() + "&WorkFlowStatus=" + workflowStatus.getName();
List<WorkFlow> sortedWorkFlows = ObjstoreUtils.sort(job.getApplicantWFs(),
......@@ -36,13 +37,14 @@
$("#select_all").on("click",function(){
$('.checkbox-list input:checkbox').not(this).prop('checked', this.checked);
$('.checkbox-list input:checkbox').not(this).prop('checked', this.checked);
enableBulkEdit();
});
});
function enableBulkEdit() {
$("[name$='AppStatusWorkFlow']").prop("disabled",$('input[class=applicant]:checked').length===0);
var disable = <%= isDraft %> || $('input[class=applicant]:checked').length === 0;
$("[name$='AppStatusWorkFlow']").prop("disabled", disable);
}
$(function(){
......@@ -74,16 +76,22 @@
%>
<ul class="">
<li class="lable-appli-shorting">View</li>
<li class="<%= (showList ? "active" : "" ) + " short-list"%>">
<li class="<%= (appView == AppView.LIST ? "active" : "" ) + " short-list"%>">
<oneit:button value="List" name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicantsPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).mapEntry("ShowList", true).toMap())
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).mapEntry("AppView", AppView.LIST).toMap())
.toMap() %>"/>
</li>
<li class="<%= (!showList ? "active" : "" ) + " grid-list"%>">
<li class="<%= (appView == AppView.GRID ? "active" : "" ) + " grid-list"%>">
<oneit:button value="Grid" name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicantsPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).mapEntry("ShowList", false).toMap())
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).mapEntry("AppView", AppView.GRID).toMap())
.toMap() %>"/>
</li>
<li class="<%= (appView == AppView.DETAILED_GRID ? "active" : "" ) + " detailed-grid-list"%>">
<oneit:button value="Detailed Grid" name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicantsPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).mapEntry("AppView", AppView.DETAILED_GRID).toMap())
.toMap() %>"/>
</li>
</ul>
......
<%@ page extends="oneit.servlets.process.AJAXProcessJSP" %>
<%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%>
<%@ include file="/extensions/performa/inc/stdimports.jsp" %>
<%@ include file="/inc/std_imports.jsp" %>
<%! protected String getName (ServletConfig config) { return "assessment_type_selector_jsp"; } %>
<%
ORMProcessState process = (ORMProcessState) ProcessDecorator.getDefaultProcess(request);
ObjectTransaction objTran = process.getTransaction ();
Job job = (Job) process.getAttribute("Job");
AssessmentCriteriaTemplate template = (AssessmentCriteriaTemplate) process.getAttribute("AssessmentCriteriaTemplate");
Long jobTitleID = request.getParameter("jobTitleID") != null ? Long.valueOf(request.getParameter("jobTitleID")) : null;
String jobTypeName = request.getParameter("jobTypeName");
AssessmentTypeEnumFormatter formatter = null;
if(jobTypeName != null)
{
JobType jobType = JobType.forName(jobTypeName);
if(job != null)
{
job.setJobType(jobType);
}
else
{
template.setJobType(jobType);
}
}
if(jobTitleID != null)
{
ILOJobTitle jobTitle = ILOJobTitle.getILOJobTitleByID(objTran, jobTitleID);
if(job != null)
{
job.setILOJobTitle(jobTitle);
}
else
{
template.setILOJobTitle(jobTitle);
}
}
if(job != null)
{
formatter = new AssessmentTypeEnumFormatter(job);
}
else
{
formatter = new AssessmentTypeEnumFormatter(template);
}
%>
<oneit:form name="editJob" method="POST">
<oneit:evalBody buffer="<%= getBuffer(request) %>">
<oneit:ormEnum obj="<%= job != null ? job : template %>" attributeName="AssessmentType" cssClass="form-control" enumFormatter="<%= formatter %>"/>
</oneit:evalBody>
</oneit:form>
......@@ -20,6 +20,8 @@
<script type="text/javascript">
$(document).ready(function()
{
$("[name$='WorkFlow']").prop("disabled",true);
$("[name$='WorkFlow']").change(function()
{
var id = $(this).closest('.appli-row').attr('id');
......@@ -139,14 +141,10 @@
</div>
</div>
<%
String widthClass = "appli-jcs2";
if(job.getIncludeAssessmentCriteria() == Boolean.TRUE)
{
widthClass = "appli-jcs";
}
String widthClass = (job.showAssessmentCriteriaSection() && job.showCultureCriteriaSection()) ? "appli-jcs" :
(job.showAssessmentCriteriaSection() || job.showCultureCriteriaSection()) ? "appli-jcs2" : "appli-jcs3";
if(job.getIncludeAssessmentCriteria() == Boolean.TRUE)
if(job.showAssessmentCriteriaSection())
{
%>
<div class="<%= widthClass %> appli-l eq-second-height">
......@@ -166,19 +164,25 @@
</div>
<%
}
if(job.showCultureCriteriaSection())
{
%>
<div class="<%= widthClass %> appli-l eq-second-height">
<span class="appli-view-bar">
<div class="progress">
<div class="completion-progress-bar <%= cultureVal == 100 ? "green-bar": (cultureVal >= 50 && cultureVal < 100 ? "orange-bar" : "red-bar") %>" role="progressbar" aria-valuenow="<%= culture %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + culture %>">
<span class="show-precentage"><%= culture %></span>
</div>
<div class="<%= widthClass %> appli-l eq-second-height">
<span class="appli-view-bar">
<div class="progress">
<div class="completion-progress-bar <%= cultureVal == 100 ? "green-bar": (cultureVal >= 50 && cultureVal < 100 ? "orange-bar" : "red-bar") %>" role="progressbar" aria-valuenow="<%= culture %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + culture %>">
<span class="show-precentage"><%= culture %></span>
</div>
</div>
</span>
culture fit
</div>
</span>
culture fit
</div>
<%
}
%>
<div class="<%= widthClass %> appli-l eq-second-height">
<span class="appli-view-bar">
<div class="progress">
......
......@@ -7,7 +7,7 @@
<%
Job job = (Job) process.getAttribute("Job");
boolean applicantPage = (boolean) getData(request, "applicantPage");
boolean showList = (boolean) getData(request, "ShowList");
AppView appView = (AppView) getData(request, "AppView");
WorkFlow workFlow = (WorkFlow) getData(request, "WorkFlow");
String editJobPage = WebUtils.getSamePageInRenderMode(request, WebUtils.EDIT_JOB);
String sharePage = WebUtils.getSamePageInRenderMode(request, WebUtils.CREATED_JOB);
......@@ -60,7 +60,7 @@
<div class="off-name">
<oneit:toString value="<%= job.getAssessmentType() %>" mode="EscapeHTML" nullValue=""/>:
<span class="ex-management">
<oneit:toString value="<%= job.getLevel() %>" mode="EscapeHTML" />
<oneit:toString value="<%= job.getOccupation() %>" mode="EscapeHTML" />
</span>
</div>
<div class="off-name">
......@@ -124,11 +124,11 @@
EDIT JOB
</oneit:button>
<%
if(!applicantPage || !job.isExpressJob())
if(applicantPage)
{
%>
<oneit:button value=" " cssClass="job-edit-menu-item" name="downloadApplicantReport" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("ShowList", showList)
requestAttribs="<%= CollectionUtils.mapEntry("AppView", appView)
.mapEntry("ApplicantPage", applicantPage)
.mapEntry("Applications", applications)
.mapEntry("Detailed", false)
......@@ -136,14 +136,9 @@
.toMap() %>">
EXPORT APPLICANT REPORT
</oneit:button>
<%
}
if(applicantPage)
{
%>
<oneit:button value=" " cssClass="job-edit-menu-item" name="downloadApplicantReport" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("ShowList", showList)
requestAttribs="<%= CollectionUtils.mapEntry("AppView", appView)
.mapEntry("ApplicantPage", applicantPage)
.mapEntry("Applications", applications)
.mapEntry("Detailed", true)
......
......@@ -104,19 +104,25 @@
</oneit:button>
</span>
</div>
<div class="culture jcc">
<img src="images/culture-icon.svg"> culture fit
<span>
<oneit:button value=" " name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" />
</oneit:button>
</span>
</div>
<%
if(job.getIncludeAssessmentCriteria()==Boolean.TRUE)
if(job.showCultureCriteriaSection())
{
%>
<div class="culture jcc">
<img src="images/culture-icon.svg"> culture fit
<span>
<oneit:button value=" " name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" />
</oneit:button>
</span>
</div>
<%
}
if(job.showAssessmentCriteriaSection())
{
%>
<div class="criteria jcc <%=(missingReq ? "red-bg" : "green-bg")%> ">
......
......@@ -75,12 +75,8 @@
</div>
</div>
<%
String widthClass = "appli-jcs2";
if(job.getIncludeAssessmentCriteria() == Boolean.TRUE)
{
widthClass = "appli-jcs";
}
String widthClass = (job.showAssessmentCriteriaSection() && job.showCultureCriteriaSection()) ? "appli-jcs" :
(job.showAssessmentCriteriaSection() || job.showCultureCriteriaSection()) ? "appli-jcs2" : "appli-jcs3";
%>
<div class="<%= widthClass %> appli-l eq-second-height">
<span class="appli-view-bar">
......@@ -94,20 +90,26 @@
</span>
role fit
</div>
<div class="<%= widthClass %> appli-l eq-second-height">
<span class="appli-view-bar">
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= culture %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + culture %>">
<span class="show-precentage"><%= culture %></span>
</div>
<%
if(job.showCultureCriteriaSection())
{
%>
<div class="<%= widthClass %> appli-l eq-second-height">
<span class="appli-view-bar">
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= culture %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + culture %>">
<span class="show-precentage"><%= culture %></span>
</div>
</div>
</span>
culture fit
</div>
</span>
culture fit
</div>
<%
if(job.getIncludeAssessmentCriteria() == Boolean.TRUE)
}
if(job.showAssessmentCriteriaSection())
{
%>
<div class="<%= widthClass %> appli-l eq-second-height">
......
......@@ -180,39 +180,44 @@
</div>
<%
}
if(job.showCultureCriteriaSection())
{
%>
<div class="culture jcc">
<img src="images/culture-icon.svg"> culture fit
<span>
<oneit:button value=" " name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" />
</oneit:button>
</span>
</div>
<div class="detail-box">
<%
Map<CultureClass, Tuple.T2<Long, Set<Tuple.T3>>> cultureFitData = (Map<CultureClass, Tuple.T2<Long, Set<Tuple.T3>>>)jobApplication.getCultureFit();
<div class="culture jcc">
<img src="images/culture-icon.svg"> culture fit
<span>
<oneit:button value=" " name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" />
</oneit:button>
</span>
</div>
<div class="detail-box">
<%
Map<CultureClass, Tuple.T2<Long, Set<Tuple.T3>>> cultureFitData = (Map<CultureClass, Tuple.T2<Long, Set<Tuple.T3>>>)jobApplication.getCultureFit();
for(CultureClass cClass: cultureFitData.keySet())
{
if(cClass==null)
{
continue;
}
%>
<div class="detail-row">
<div class="detail-label"><oneit:toString value="<%= cClass %>" mode="EscapeHTML"/></div>
<div class="detail-no"><oneit:toString value="<%= cultureFitData.get(cClass) != null ? cultureFitData.get(cClass).get0() : 0 %>" mode="PercentageWholeNumber" /></div>
</div>
<%
}
%>
</div>
for(CultureClass cClass: cultureFitData.keySet())
{
if(cClass==null)
{
continue;
}
%>
<div class="detail-row">
<div class="detail-label"><oneit:toString value="<%= cClass %>" mode="EscapeHTML"/></div>
<div class="detail-no"><oneit:toString value="<%= cultureFitData.get(cClass) != null ? cultureFitData.get(cClass).get0() : 0 %>" mode="PercentageWholeNumber" /></div>
</div>
<%
}
%>
</div>
<%
if(job.getIncludeAssessmentCriteria()==Boolean.TRUE)
}
if(job.showAssessmentCriteriaSection())
{
%>
<div class="jcc">
......
......@@ -46,6 +46,24 @@
$("button[name$='loadJobFromTemplate']").click();
});
$('input[type="text"][id$="ILOJobTitle_autocomplete"]').change(function()
{
$("#assessment_type").empty();
ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/adminportal/inc/assessment_type_selector.jsp", "#assessment_type", {jobTitleID : $('input[type="hidden"][id$="JobTitle"]').val()}, function (theHTML_JQ) {
$("#assessment_type").append (theHTML_JQ);
});
});
$("select[name$='JobType']").change(function()
{
$("#assessment_type").empty();
ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/adminportal/inc/assessment_type_selector.jsp", "#assessment_type", {jobTypeName : $(this).val()}, function (theHTML_JQ) {
$("#assessment_type").append (theHTML_JQ);
});
});
if ($("#select-occupation-id").val()) {
lastclickedOccid = $("#select-occupation-id").val();
}else {
......@@ -164,6 +182,14 @@
$("#occupation span").addClass("form-control");
$("#occupation span").css({"padding":"15px","display":"inline-table"});
ajaxProcessAddJQ ("<%= request.getContextPath() %>/extensions/adminportal/inc/assessment_type_selector.jsp", "#assessment_type", {}, function (theHTML_JQ) {
$("#assessment_type").append (theHTML_JQ);
});
addPostAjaxAddHTMLModifiers (function () {
$( "select[name$='AssessmentType']" ).select2({minimumResultsForSearch: Infinity});
}, true);
});
......@@ -249,7 +275,7 @@
return false;
}
(function($) {
(function($) {
$.fn.hasScrollBar = function() {
return this.get(0).scrollHeight > this.height();
}
......@@ -335,32 +361,6 @@
<label class="label-16">Job Location</label>
</div>
</div>
<%--
<div class="form-group row">
<div class="col-md-6">
<label><oneit:ormlabel obj="<%= job %>" field="Country" /></label>
<oneit:ormEnum obj="<%= job %>" attributeName="Country" cssClass="form-control"/>
</div>
<div class="col-md-6">
<label><oneit:label GUIName="State or Province"/></label>
<oneit:ormEnum obj="<%= job %>" attributeName="State" cssClass="form-control"/>
</div>
</div>
<div class="form-group row">
<div class="col-md-4">
<label><oneit:label GUIName="City or Town"/></label>
<oneit:ormInput obj="<%= job %>" type="text" attributeName="City" cssClass="form-control" />
</div>
<div class="col-md-4">
<label><oneit:label GUIName="Zip / Post Code"/></label>
<oneit:ormInput obj="<%= job %>" type="text" attributeName="PostCode" cssClass="form-control" />
</div>
<div class="col-md-4">
<label><oneit:label GUIName="Expected Candidate Radius"/></label>
<oneit:ormEnum obj="<%= job %>" attributeName="ExpectedCandidateRadius" cssClass="form-control"/>
</div>
</div>
--%>
<div class="form-group row">
<div class="col-md-8">
<label><oneit:label GUIName="Google Location"/></label>
......@@ -403,7 +403,6 @@
<oneit:recalc mode="EscapeHTML" script="job.displayOccupation()" job="<%= job %>"/>
</div>
</div>
<div class="form-group row">
<div class="col-md-6">
<label><oneit:label GUIName="Job Type" /></label>
......@@ -415,6 +414,13 @@
</div>
</div>
<div class="form-group row">
<div class="col-md-6">
<label><oneit:label GUIName="Assessment Length" /></label>
<div id="assessment_type"></div>
</div>
</div>
<div class="form-group row">
<div class="col-md-12">
<div class="styled_checkboxes">
<div class="checkbox checkbox-primary">
......
......@@ -298,57 +298,63 @@
</div>
<div class="form-brack-line-sub"></div>
<div class="row">
<div class="col-md-12 review-medium-title">
<oneit:label GUIName="Organisation Culture Statement" />
<span class="skill-label">
<oneit:toString value="<%= job.getCultureStatement() %>" mode="ParagraphHTML" />
</span>
</div>
</div>
<div class=" job-detail-subsection">
<%
for(CultureClass cultureClass : CultureClass.getCultureClassArray())
if(job.showCultureCriteriaSection())
{
boolean firstCulture = true;
for (CultureCriteria criteria : job.getCultureCriteriasForClass(cultureClass))
{
if(criteria.getIsApplicable())
%>
<div class="row">
<div class="col-md-12 review-medium-title">
<oneit:label GUIName="Organisation Culture Statement" />
<span class="skill-label">
<oneit:toString value="<%= job.getCultureStatement() %>" mode="ParagraphHTML" />
</span>
</div>
</div>
<div class=" job-detail-subsection">
<%
for(CultureClass cultureClass : CultureClass.getCultureClassArray())
{
if(firstCulture)
boolean firstCulture = true;
for (CultureCriteria criteria : job.getCultureCriteriasForClass(cultureClass))
{
firstCulture = false;
%>
<div class="form-brack-line-sub"></div>
<div class="form-group">
<div class="beloning">
<oneit:toString value="<%= cultureClass %>" mode="EscapeHTML"/>
if(criteria.getIsApplicable())
{
if(firstCulture)
{
firstCulture = false;
%>
<div class="form-brack-line-sub"></div>
<div class="form-group">
<div class="beloning">
<oneit:toString value="<%= cultureClass %>" mode="EscapeHTML"/>
</div>
</div>
<%
}
%>
<div class="row">
<div class="col-md-4 review-label culture-element">
<oneit:toString value="<%= criteria.getCultureElement() %>" mode="EscapeHTML"/>
</div>
<div class="col-md-8 review-data">
<oneit:toString value="<%= criteria.getCultureElementRating()!= null ? criteria.getCultureElementRating().getDescription() : ""%>" mode="EscapeHTML"/>
(<oneit:toString value="<%= criteria.getImportance() %>" mode="EscapeHTML"/>)
</div>
</div>
</div>
<%
<%
}
}
%>
<div class="row">
<div class="col-md-4 review-label culture-element">
<oneit:toString value="<%= criteria.getCultureElement() %>" mode="EscapeHTML"/>
</div>
<div class="col-md-8 review-data">
<oneit:toString value="<%= criteria.getCultureElementRating()!= null ? criteria.getCultureElementRating().getDescription() : ""%>" mode="EscapeHTML"/>
(<oneit:toString value="<%= criteria.getImportance() %>" mode="EscapeHTML"/>)
</div>
</div>
<%
}
}
firstCulture = true;
}
%>
firstCulture = true;
}
%>
</div>
<%
}
%>
<div class="text-center">
<oneit:button value="Save as Draft and go to your jobs" name="saveJob" cssClass="btn btn-primary btn-gray largeBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", jobsPage)
......
......@@ -33,6 +33,7 @@ Client.ContactName = Contact First Name
Client.ContactSurname = Contact Last Name
Client.ClientLogo = Client Logo
Client.State = State or Province
Client.UseClientDetails = Display client name and logo for job applicants (if No, then use Hiring Team details)
Company.TimeZone = Time zone
Company.HasClientSupport = We help clients with hiring
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_job</tableName>
<column name="include_culture" type="Boolean" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
update tl_job set include_culture = 'Y' where include_culture is null;
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_client</tableName>
<column name="use_client_details" type="Boolean" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_occupation</tableName>
<column name="parttime_assessment_type" type="String" nullable="true" length="200"/>
<column name="express_assessment_level_id" type="Long" length="11" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
update tl_narrative set graphic_notes = 'Tends to focus on non-personal issues, displaying a limited concern for others'' welfare.' where narrative_code = 'W10ALV4';
update tl_narrative set graphic_notes = 'Tends to focus on professional issues, displaying a limited concern for others'' welfare.' where narrative_code = '10ALV4';
update tl_narrative set graphic_notes = 'Highly considerate of others'' welfare, but may find it difficult to remain objective when making strategic decisions.' where narrative_code = '10AVHV4';
update tl_narrative set graphic_notes = 'Highly considerate of others'' welfare, but may find it difficult to remain objective when making strategic decisions.' where narrative_code = 'M10AVHV4';
update tl_narrative set graphic_notes = 'Tends to focus on non-personal issues, displaying a limited concern for others'' welfare.' where narrative_code = 'M10ALV4';
update tl_narrative set graphic_notes = 'Tends to focus on non-personal issues, displaying a limited concern for others'' welfare.' where narrative_code = 'VW10ALV4';
\ No newline at end of file
......@@ -113,30 +113,25 @@
applicantList = job.filterEssentialRequirements(appFilter == ApplicationFilter.HAS_REQ , applicantList);
}
if((process.getAttribute("ShowList") != null && process.getAttribute("ShowList") == Boolean.TRUE) || CollectionUtils.equals(workflowStatus,ApplicationStatus.DRAFT))
if(process.getAttribute("AppView") != null)
{
session.setAttribute("ShowList",true);
}
else if(process.getAttribute("ShowList") != null && process.getAttribute("ShowList") == Boolean.FALSE)
{
session.setAttribute("ShowList",false);
session.setAttribute("AppView", (AppView) process.getAttribute("AppView"));
}
boolean showList = session.getAttribute("ShowList") != null ? (boolean) session.getAttribute("ShowList") : true;
AppView appView = (session.getAttribute("AppView") != null && !CollectionUtils.equals(workflowStatus,ApplicationStatus.DRAFT))? (AppView) session.getAttribute("AppView") : AppView.LIST;
List<JobApplication> sortedApplications = Utils.getApplicationsSorted(applicantList, appSortOpt);
process.setAttribute("AppSortOption", appSortOpt);
process.setAttribute("ApplicationFilter", appFilter);
process.setAttribute("WorkFlowStatus", workflowStatus);
process.setAttribute("ShowList", showList);
process.setAttribute("AppView", appView);
%>
<oneit:form name="viewApplicants" method="post" enctype="multipart/form-data">
<div class="dashboard-content-area">
<oneit:dynInclude page="/extensions/adminportal/inc/applicant_view_tabs.jsp"
ShowList="<%= showList %>"
AppView="<%= appView %>"
applications="<%= sortedApplications %>"
WorkFlowStatus="<%= workflowStatus %>"
WorkFlow="<%= workflow %>"
......@@ -145,7 +140,7 @@
<div class="second-part view-app-area">
<oneit:dynInclude page="/extensions/adminportal/inc/application_sorting_bar.jsp"
ShowList="<%= showList %>"
AppView="<%= appView %>"
SearchApplicant="<%= searchApplicant %>"
ShowOrderBy="<%= sortedApplications.size() > 1 %>"
ApplicationFilter="<%= appFilter %>"
......@@ -154,7 +149,7 @@
data="<%= CollectionUtils.EMPTY_MAP%>"/>
<%
if(showList)
if(appView == AppView.LIST)
{
if(workflowStatus == ApplicationStatus.DRAFT)
{
......@@ -178,27 +173,24 @@
<%
}
}
else
else if(appView == AppView.GRID)
{
if(workflowStatus == ApplicationStatus.SHORTLISTED)
{
%>
<oneit:dynInclude page="/extensions/adminportal/inc/view_applicants_shortlist_grid.jsp"
<oneit:dynInclude page="/extensions/adminportal/inc/view_applicants_grid.jsp"
applications="<%= sortedApplications %>"
currentPage="<%= currentPage %>"
data="<%= CollectionUtils.EMPTY_MAP%>"/>
<%
}
else
{
}
else
{
%>
<oneit:dynInclude page="/extensions/adminportal/inc/view_applicants_grid.jsp"
<oneit:dynInclude page="/extensions/adminportal/inc/view_applicants_shortlist_grid.jsp"
applications="<%= sortedApplications %>"
currentPage="<%= currentPage %>"
data="<%= CollectionUtils.EMPTY_MAP%>"/>
<%
}
}
%>
</div>
......
......@@ -20,6 +20,10 @@
$(document).ready(function(){
recalcFunction = setupRecalc ($("form#editJob"), {'recalcOnError':true});
$(".switch input[name$='IncludeCulture'] ").change(function() {
$("button[name$='changeCultureCriteria']").click();
});
});
</script>
......@@ -44,58 +48,80 @@
.toMap() %>" />
<div class="form-page-area nopadding">
<div class="create-job">
<%
if(templates.length > 0)
{
%>
<div class="form-page-section" style="padding-bottom: 0px">
<div class="form-group">
<label class="label-16 work-title">Culture</label>
</div>
<div class="form-group row wider-select">
<div class="col-md-12">
<tagfile:ormsingleasso_select obj="<%= job %>" assocName="CultureTemplate" options="<%= templates %>"
blankValue="Optional: Select from previously defined Cultures"/>
</div>
</div>
</div>
<%
}
%>
<div class="form-page-section darkbg">
<div class="form-page-section" style="padding-bottom: 0px">
<div class="form-group">
<label><oneit:label GUIName="Organisation Culture Statement" /> <a href="#" title="Note description gose here." class="info-icon"><img src="images/info-icon.png" /></a></label>
<oneit:ormtextarea obj="<%= job %>" attributeName="CultureStatement" cssClass="form-control textarea-box"/>
<label>Include Culture for this Job?</label>
<span class="pull-right">
<label class="switch">
<oneit:recalcClass htmlTag="span" classScript="job.showCultureCriteriaSection() ? 'checkbox checked': 'checkbox unchecked'" job="<%= job %>">
<oneit:ormInput obj="<%= job %>" attributeName="IncludeCulture" type="checkbox"/>
</oneit:recalcClass>
<div class="slider round"></div>
</label>
<oneit:button value=" " name="changeCultureCriteria" cssClass="hide"
requestAttribs="<%= CollectionUtils.mapEntry ("Job", job)
.mapEntry (UpdateMappedObjFP.FAIL_VALIDATION_ERRORS, Boolean.FALSE)
.toMap() %>" />
</span>
</div>
</div>
<oneit:dynInclude page="/extensions/adminportal/inc/culture_details.jsp" Job="<%= job %>" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="form-page-section">
<div class="form-group">
<div class="styled_checkboxes">
<div class="checkbox checkbox-primary">
<oneit:ormInput obj="<%= job %>" id="save-assess-check" attributeName="SaveCultureTemplate" type="checkbox"/>
<oneit:recalcClass htmlTag="span" classScript="job.showSaveCultureTemplate() ? 'checked': 'unchecked'" job="<%= job %>">
<label for="save-assess-check">
<oneit:ormlabel obj="<%= job %>" field="SaveCultureTemplate" />
</label>
</oneit:recalcClass>
<oneit:recalcClass htmlTag="div" classScript="job.showCultureCriteriaSection() ? 'show': 'hide'" job="<%= job %>">
<%
if(templates.length > 0)
{
%>
<div class="form-page-section" style="padding-bottom: 0px; padding-top: 0px;">
<div class="form-group">
<label class="label-16 work-title">Culture</label>
</div>
<div class="form-group row wider-select">
<div class="col-md-12">
<tagfile:ormsingleasso_select obj="<%= job %>" assocName="CultureTemplate" options="<%= templates %>"
blankValue="Optional: Select from previously defined Cultures"/>
</div>
</div>
</div>
<%
}
%>
<div class="form-page-section darkbg">
<div class="form-group">
<label><oneit:label GUIName="Organisation Culture Statement" /> <a href="#" title="Note description gose here." class="info-icon"><img src="images/info-icon.png" /></a></label>
<oneit:ormtextarea obj="<%= job %>" attributeName="CultureStatement" cssClass="form-control textarea-box"/>
</div>
</div>
<oneit:recalcClass htmlTag="div" classScript="job.showSaveCultureTemplate() ? 'form-group template-save show': 'form-group template-save hide'" job="<%= job %>">
<div class="input-group input-group-lg">
<div class="icon-addon addon-lg">
<oneit:ormInput obj="<%= job %>" type="text" attributeName="CultureTemplateName" cssClass="form-control" />
<oneit:dynInclude page="/extensions/adminportal/inc/culture_details.jsp" Job="<%= job %>" data="<%= CollectionUtils.EMPTY_MAP%>"/>
</oneit:recalcClass>
<div class="form-page-section">
<oneit:recalcClass htmlTag="div" classScript="job.showCultureCriteriaSection() ? 'show': 'hide'" job="<%= job %>">
<div class="form-group">
<div class="styled_checkboxes">
<div class="checkbox checkbox-primary">
<oneit:ormInput obj="<%= job %>" id="save-assess-check" attributeName="SaveCultureTemplate" type="checkbox"/>
<oneit:recalcClass htmlTag="span" classScript="job.showSaveCultureTemplate() ? 'checked': 'unchecked'" job="<%= job %>">
<label for="save-assess-check">
<oneit:ormlabel obj="<%= job %>" field="SaveCultureTemplate" />
</label>
</oneit:recalcClass>
</div>
</div>
<span class="input-group-btn">
<oneit:button value="SAVE" name="saveCultureTemplate" cssClass="btn btn-primary"
requestAttribs="<%= CollectionUtils.mapEntry("Job", job)
.mapEntry (UpdateMappedObjFP.FAIL_VALIDATION_ERRORS, Boolean.FALSE)
.toMap() %>" />
</span>
</div>
<oneit:recalcClass htmlTag="div" classScript="job.showSaveCultureTemplate() ? 'form-group template-save show': 'form-group template-save hide'" job="<%= job %>">
<div class="input-group input-group-lg">
<div class="icon-addon addon-lg">
<oneit:ormInput obj="<%= job %>" type="text" attributeName="CultureTemplateName" cssClass="form-control" />
</div>
<span class="input-group-btn">
<oneit:button value="SAVE" name="saveCultureTemplate" cssClass="btn btn-primary"
requestAttribs="<%= CollectionUtils.mapEntry("Job", job)
.mapEntry (UpdateMappedObjFP.FAIL_VALIDATION_ERRORS, Boolean.FALSE)
.toMap() %>" />
</span>
</div>
</oneit:recalcClass>
</oneit:recalcClass>
<div class="text-center">
<oneit:button value="Save as draft" name="saveJob" cssClass="btn btn-primary top-margin-25 largeBtn greyBtn"
......
......@@ -78,7 +78,7 @@
if(job.getIncludeAssessmentCriteria())
{
%>
<div class="col-sm-4 col-xs-12 app-block eq-height">
<div class="<%= (job.getNumberOfSections() == 3 ? "col-sm-4" : (job.getNumberOfSections() == 2 ? "col-sm-6" : "col-sm-12" )) + " col-xs-12 app-block eq-height"%>">
<div class="block-icon <%= isSelectionComplete ? "app-outline-complete" : "" %>">
<div class="<%= isSelectionComplete ? "app-outline-complete-icon" : "app-outline-selection-icon" %>"></div>
</div>
......@@ -105,35 +105,41 @@
</div>
<%
}
if(job.showCultureCriteriaSection())
{
%>
<div class="<%= (job.getIncludeAssessmentCriteria() ? "col-sm-4 app-second-block " : " col-sm-6 app-block " ) + " col-xs-12 app-block eq-height "%> ">
<div class="block-icon <%= isCultureComplete ? "app-outline-complete" : "" %>">
<div class="<%= isCultureComplete ? "app-outline-complete-icon" : "app-outline-culture-icon" %>"></div>
</div>
<div class="app-block-title">Your preferences about where you work</div>
<div class="estimated-time">
<%
if(isCultureComplete)
{
%>
<span>Completed</span>
<%
}
else
{
%>
Estimated time to complete: <span>5 mins</span>
<%
}
%>
</div>
<p>
A job isn't just about what one does, but the environment where one does it.
This questionnaire will help us both learn what's most important to you in a workplace environment.
There are no right or wrong answers, so please choose what best fits you (not what you think might be right for a particular job).
</p>
</div>
<div class="<%= (job.getIncludeAssessmentCriteria() ? "col-sm-4 " : "col-sm-6 app-thired-block " ) + "col-xs-12 app-block eq-height last-border"%>">
<div class="<%= (job.getNumberOfSections() == 3 ? "col-sm-4 app-second-block " : (job.getNumberOfSections() == 2 ? " col-sm-6 app-block " : " col-sm-12 app-block " )) + " col-xs-12 app-block eq-height "%> ">
<div class="block-icon <%= isCultureComplete ? "app-outline-complete" : "" %>">
<div class="<%= isCultureComplete ? "app-outline-complete-icon" : "app-outline-culture-icon" %>"></div>
</div>
<div class="app-block-title">Your preferences about where you work</div>
<div class="estimated-time">
<%
if(isCultureComplete)
{
%>
<span>Completed</span>
<%
}
else
{
%>
Estimated time to complete: <span>5 mins</span>
<%
}
%>
</div>
<p>
A job isn't just about what one does, but the environment where one does it.
This questionnaire will help us both learn what's most important to you in a workplace environment.
There are no right or wrong answers, so please choose what best fits you (not what you think might be right for a particular job).
</p>
</div>
<%
}
%>
<div class="<%= (job.getNumberOfSections() == 3 ? "col-sm-4 " : (job.getNumberOfSections() == 2 ? " col-sm-6 app-thired-block " :"col-sm-12 " )) + "col-xs-12 app-block eq-height last-border"%>">
<div class="block-icon <%= isAssesmentComplete ? "app-outline-complete" : "" %>">
<div class="<%= isAssesmentComplete ? "app-outline-complete-icon" : "app-outline-assesmet-icon" %>"></div>
</div>
......
......@@ -11,6 +11,7 @@
String secondPage = WebUtils.getSamePageInRenderMode(request, "WorkplaceCulture");
String thirdPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
boolean includeAssessment = jobApplication.isIncludeAssessmentCriteria();
boolean includeCulture = jobApplication.isIncludeCultureCriteria();
// Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
// Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
......@@ -41,18 +42,24 @@
</li>
<%
}
if(includeCulture)
{
%>
<li class="<%= pageNumber == "2" ? "active" : isCultureComplete ? "complate" : ""%>">
<oneit:button value=" " name="validateApplication" skin="link" disabled="<%= isCultureComplete ? "true" : "false"%>"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", secondPage)
.mapEntry("JobApplication", jobApplication)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("fromRequirements", fromRequirements)
.toMap() %>">
<span><%= isCultureComplete ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "2" : "1")%></span>
<div class="mobile-hide">Workplace Preferences</div>
</oneit:button>
</li>
<%
}
%>
<li class="<%= pageNumber == "2" ? "active" : isCultureComplete ? "complate" : ""%>">
<oneit:button value=" " name="validateApplication" skin="link" disabled="<%= isCultureComplete ? "true" : "false"%>"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", secondPage)
.mapEntry("JobApplication", jobApplication)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("fromRequirements", fromRequirements)
.toMap() %>">
<span><%= isCultureComplete ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "2" : "1")%></span>
<div class="mobile-hide">Workplace Preferences</div>
</oneit:button>
</li>
<li class="<%= pageNumber == "3" ? "active" : isAssesmentComplete ? "complate" : ""%>">
<oneit:button value=" " name="validateApplication" skin="link" disabled="<%= isAssesmentComplete ? "true" : "false"%>"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", thirdPage)
......@@ -60,11 +67,11 @@
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("fromRequirements", fromRequirements)
.toMap() %>">
<span><%= isAssesmentComplete ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "3" : "2")%></span>
<span><%= isAssesmentComplete ? "<img src=\"images/right-mark.png\" />" : (includeAssessment && includeCulture ? "3" : ( (includeAssessment || includeCulture) ? "2" : "1"))%></span>
<div class="mobile-hide">Your Work Style</div>
</oneit:button>
</li>
<li><a href="#"><span><%= includeAssessment ? "4" : "3" %></span><div class="mobile-hide">Submit Application</div></a></li>
<li><a href="#"><span><%= (includeAssessment && includeCulture ? "4" : ( (includeAssessment || includeCulture) ? "3" : "2")) %></span><div class="mobile-hide">Submit Application</div></a></li>
</ul>
</div>
</oneit:dynIncluded>
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