Commit 8bb8ef45 by Harsh Shah

Finish Release-20170906

# Conflicts:
#	cmsWebApp/src/performa/utils/Utils.java
#	cmsWebApp/webroot/extensions/adminportal/inc/application_list_data.jsp
#	cmsWebApp/webroot/extensions/adminportal/inc/htmlheader.jsp
#	cmsWebApp/webroot/extensions/adminportal/inc/job_title_bar.jsp
#	cmsWebApp/webroot/extensions/adminportal/inc/view_application_tab_applicant.jsp
#	cmsWebApp/webroot/extensions/adminportal/sign_in.jsp
#	cmsWebApp/webroot/extensions/adminportal/view_applicants_shortlist_grid.jsp
#	cmsWebApp/webroot/extensions/adminportal/view_applicantss_grid.jsp
#	cmsWebApp/webroot/extensions/applicantportal/application_outline.jsp
#	cmsWebApp/webroot/extensions/applicantportal/inc/htmlheader.jsp
#	cmsWebApp/webroot/extensions/applicantportal/job_match_assessment.jsp
#	cmsWebApp/webroot/extensions/applicantportal/job_overview.jsp
#	cmsWebApp/webroot/extensions/applicantportal/selection_criteria.jsp
#	cmsWebApp/webroot/extensions/applicantportal/sign_in.jsp
#	cmsWebApp/webroot/extensions/applicantportal/submit_application.jsp
#	cmsWebApp/webroot/extensions/applicantportal/verify_identity.jsp
#	cmsWebApp/webroot/extensions/applicantportal/workplace_culture.jsp
parents 8b8695e7 dd8ec62e
......@@ -71,6 +71,7 @@ public abstract class BaseJob extends BaseBusinessClass
public static final String FIELD_AssessmentTemplateName = "AssessmentTemplateName";
public static final String FIELD_CultureTemplateName = "CultureTemplateName";
public static final String FIELD_AppProcessOption = "AppProcessOption";
public static final String FIELD_RankingCompleted = "RankingCompleted";
public static final String SINGLEREFERENCE_AssessmentTemplate = "AssessmentTemplate";
public static final String SINGLEREFERENCE_CultureTemplate = "CultureTemplate";
public static final String SINGLEREFERENCE_JobTemplate = "JobTemplate";
......@@ -118,6 +119,7 @@ public abstract class BaseJob extends BaseBusinessClass
private static final DefaultAttributeHelper<Job> HELPER_AssessmentTemplateName = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<Job> HELPER_CultureTemplateName = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<Job, AppProcessOption> HELPER_AppProcessOption = new EnumeratedAttributeHelper<Job, AppProcessOption> (AppProcessOption.FACTORY_AppProcessOption);
private static final DefaultAttributeHelper<Job> HELPER_RankingCompleted = DefaultAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
......@@ -148,6 +150,7 @@ public abstract class BaseJob extends BaseBusinessClass
private String _AssessmentTemplateName;
private String _CultureTemplateName;
private AppProcessOption _AppProcessOption;
private Boolean _RankingCompleted;
// Private attributes corresponding to single references
......@@ -181,6 +184,7 @@ public abstract class BaseJob extends BaseBusinessClass
private static final AttributeValidator[] FIELD_AssessmentTemplateName_Validators;
private static final AttributeValidator[] FIELD_CultureTemplateName_Validators;
private static final AttributeValidator[] FIELD_AppProcessOption_Validators;
private static final AttributeValidator[] FIELD_RankingCompleted_Validators;
private static final AttributeValidator[] FIELD_JobTitle_Validators;
private static final AttributeValidator[] FIELD_JobDescription_Validators;
private static final AttributeValidator[] FIELD_JobStatus_Validators;
......@@ -234,6 +238,7 @@ public abstract class BaseJob extends BaseBusinessClass
FIELD_AssessmentTemplateName_Validators = (AttributeValidator[])setupAttribMetaData_AssessmentTemplateName(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CultureTemplateName_Validators = (AttributeValidator[])setupAttribMetaData_CultureTemplateName(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_RankingCompleted_Validators = (AttributeValidator[])setupAttribMetaData_RankingCompleted(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_JobTitle_Validators = (AttributeValidator[])setupAttribMetaData_JobTitle(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_JobDescription_Validators = (AttributeValidator[])setupAttribMetaData_JobDescription(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_JobStatus_Validators = (AttributeValidator[])setupAttribMetaData_JobStatus(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -601,6 +606,23 @@ public abstract class BaseJob extends BaseBusinessClass
}
// Meta Info setup
private static List setupAttribMetaData_RankingCompleted(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("name", "RankingCompleted");
metaInfo.put ("type", "Boolean");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Job.RankingCompleted:", metaInfo);
ATTRIBUTES_METADATA_Job.put (FIELD_RankingCompleted, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(Job.class, "RankingCompleted", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for Job.RankingCompleted:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_JobTitle(Map validatorMapping)
{
Map metaInfo = new HashMap ();
......@@ -945,6 +967,7 @@ public abstract class BaseJob extends BaseBusinessClass
_AssessmentTemplateName = (String)(HELPER_AssessmentTemplateName.initialise (_AssessmentTemplateName));
_CultureTemplateName = (String)(HELPER_CultureTemplateName.initialise (_CultureTemplateName));
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption));
_RankingCompleted = (Boolean)(HELPER_RankingCompleted.initialise (_RankingCompleted));
}
......@@ -3639,6 +3662,104 @@ public abstract class BaseJob extends BaseBusinessClass
}
}
/**
* Get the attribute RankingCompleted
*/
public Boolean getRankingCompleted ()
{
assertValid();
Boolean valToReturn = _RankingCompleted;
for (JobBehaviourDecorator bhd : Job_BehaviourDecorators)
{
valToReturn = bhd.getRankingCompleted ((Job)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preRankingCompletedChange (Boolean newRankingCompleted) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postRankingCompletedChange () throws FieldException
{
}
public FieldWriteability getWriteability_RankingCompleted ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute RankingCompleted. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setRankingCompleted (Boolean newRankingCompleted) throws FieldException
{
boolean oldAndNewIdentical = HELPER_RankingCompleted.compare (_RankingCompleted, newRankingCompleted);
try
{
for (JobBehaviourDecorator bhd : Job_BehaviourDecorators)
{
newRankingCompleted = bhd.setRankingCompleted ((Job)this, newRankingCompleted);
oldAndNewIdentical = HELPER_RankingCompleted.compare (_RankingCompleted, newRankingCompleted);
}
if (FIELD_RankingCompleted_Validators.length > 0)
{
Object newRankingCompletedObj = HELPER_RankingCompleted.toObject (newRankingCompleted);
if (newRankingCompletedObj != null)
{
int loopMax = FIELD_RankingCompleted_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_Job.get (FIELD_RankingCompleted);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_RankingCompleted_Validators[v].checkAttribute (this, FIELD_RankingCompleted, metadata, newRankingCompletedObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_RankingCompleted () != FieldWriteability.FALSE, "Field RankingCompleted is not writeable");
preRankingCompletedChange (newRankingCompleted);
markFieldChange (FIELD_RankingCompleted);
_RankingCompleted = newRankingCompleted;
postFieldChange (FIELD_RankingCompleted);
postRankingCompletedChange ();
}
}
/**
......@@ -5208,6 +5329,7 @@ public abstract class BaseJob extends BaseBusinessClass
_AssessmentTemplateName = sourceJob._AssessmentTemplateName;
_CultureTemplateName = sourceJob._CultureTemplateName;
_AppProcessOption = sourceJob._AppProcessOption;
_RankingCompleted = sourceJob._RankingCompleted;
}
}
......@@ -5298,6 +5420,7 @@ public abstract class BaseJob extends BaseBusinessClass
_AssessmentTemplateName = (String)(HELPER_AssessmentTemplateName.readExternal (_AssessmentTemplateName, vals.get(FIELD_AssessmentTemplateName))); //
_CultureTemplateName = (String)(HELPER_CultureTemplateName.readExternal (_CultureTemplateName, vals.get(FIELD_CultureTemplateName))); //
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); //
_RankingCompleted = (Boolean)(HELPER_RankingCompleted.readExternal (_RankingCompleted, vals.get(FIELD_RankingCompleted))); //
_AssessmentTemplate.readExternalData(vals.get(SINGLEREFERENCE_AssessmentTemplate));
_CultureTemplate.readExternalData(vals.get(SINGLEREFERENCE_CultureTemplate));
_JobTemplate.readExternalData(vals.get(SINGLEREFERENCE_JobTemplate));
......@@ -5345,6 +5468,7 @@ public abstract class BaseJob extends BaseBusinessClass
vals.put (FIELD_AssessmentTemplateName, HELPER_AssessmentTemplateName.writeExternal (_AssessmentTemplateName));
vals.put (FIELD_CultureTemplateName, HELPER_CultureTemplateName.writeExternal (_CultureTemplateName));
vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption));
vals.put (FIELD_RankingCompleted, HELPER_RankingCompleted.writeExternal (_RankingCompleted));
vals.put (SINGLEREFERENCE_AssessmentTemplate, _AssessmentTemplate.writeExternalData());
vals.put (SINGLEREFERENCE_CultureTemplate, _CultureTemplate.writeExternalData());
vals.put (SINGLEREFERENCE_JobTemplate, _JobTemplate.writeExternalData());
......@@ -5462,6 +5586,7 @@ public abstract class BaseJob extends BaseBusinessClass
visitor.visitField(this, FIELD_AssessmentTemplateName, HELPER_AssessmentTemplateName.toObject(getAssessmentTemplateName()));
visitor.visitField(this, FIELD_CultureTemplateName, HELPER_CultureTemplateName.toObject(getCultureTemplateName()));
visitor.visitField(this, FIELD_AppProcessOption, HELPER_AppProcessOption.toObject(getAppProcessOption()));
visitor.visitField(this, FIELD_RankingCompleted, HELPER_RankingCompleted.toObject(getRankingCompleted()));
}
......@@ -6088,6 +6213,10 @@ public abstract class BaseJob extends BaseBusinessClass
{
return HELPER_AppProcessOption.toObject (getAppProcessOption ());
}
else if (attribName.equals (FIELD_RankingCompleted))
{
return HELPER_RankingCompleted.toObject (getRankingCompleted ());
}
else
{
return super.getAttribute (attribName);
......@@ -6209,6 +6338,10 @@ public abstract class BaseJob extends BaseBusinessClass
{
return HELPER_AppProcessOption;
}
else if (attribName.equals (FIELD_RankingCompleted))
{
return HELPER_RankingCompleted;
}
else
{
return super.getAttributeHelper (attribName);
......@@ -6330,6 +6463,10 @@ public abstract class BaseJob extends BaseBusinessClass
{
setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue)));
}
else if (attribName.equals (FIELD_RankingCompleted))
{
setRankingCompleted ((Boolean)(HELPER_RankingCompleted.fromObject (_RankingCompleted, attribValue)));
}
else
{
super.setAttribute (attribName, attribValue);
......@@ -6482,6 +6619,10 @@ public abstract class BaseJob extends BaseBusinessClass
{
return getWriteability_AppProcessOption ();
}
else if (fieldName.equals (FIELD_RankingCompleted))
{
return getWriteability_RankingCompleted ();
}
else if (fieldName.equals (SINGLEREFERENCE_AssessmentTemplate))
{
return getWriteability_AssessmentTemplate ();
......@@ -6639,6 +6780,11 @@ public abstract class BaseJob extends BaseBusinessClass
fields.add (FIELD_AppProcessOption);
}
if (getWriteability_RankingCompleted () != FieldWriteability.TRUE)
{
fields.add (FIELD_RankingCompleted);
}
super.putUnwriteable (fields);
}
......@@ -6675,6 +6821,7 @@ public abstract class BaseJob extends BaseBusinessClass
result.add(HELPER_AssessmentTemplateName.getAttribObject (getClass (), _AssessmentTemplateName, false, FIELD_AssessmentTemplateName));
result.add(HELPER_CultureTemplateName.getAttribObject (getClass (), _CultureTemplateName, false, FIELD_CultureTemplateName));
result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption));
result.add(HELPER_RankingCompleted.getAttribObject (getClass (), _RankingCompleted, false, FIELD_RankingCompleted));
return result;
}
......@@ -7211,6 +7358,24 @@ public abstract class BaseJob extends BaseBusinessClass
return newAppProcessOption;
}
/**
* Get the attribute RankingCompleted
*/
public Boolean getRankingCompleted (Job obj, Boolean original)
{
return original;
}
/**
* Change the value set for attribute RankingCompleted.
* May modify the field beforehand
* Occurs before validation.
*/
public Boolean setRankingCompleted (Job obj, Boolean newRankingCompleted) throws FieldException
{
return newRankingCompleted;
}
}
......@@ -7323,6 +7488,10 @@ public abstract class BaseJob extends BaseBusinessClass
{
return toAppProcessOption ();
}
if (name.equals ("RankingCompleted"))
{
return toRankingCompleted ();
}
if (name.equals ("AssessmentTemplate"))
{
return toAssessmentTemplate ();
......@@ -7437,6 +7606,8 @@ public abstract class BaseJob extends BaseBusinessClass
public PipeLine<From, AppProcessOption> toAppProcessOption () { return pipe(new ORMAttributePipe<Me, AppProcessOption>(FIELD_AppProcessOption)); }
public PipeLine<From, Boolean> toRankingCompleted () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_RankingCompleted)); }
public PipeLine<From, String> toJobTitle () { return pipe(new ORMAttributePipe<Me, String>(FIELD_JobTitle)); }
public PipeLine<From, String> toJobDescription () { return pipe(new ORMAttributePipe<Me, String>(FIELD_JobDescription)); }
......@@ -7586,6 +7757,11 @@ public abstract class BaseJob extends BaseBusinessClass
return true;
}
if(CollectionUtils.equals(attribName, "RankingCompleted"))
{
return true;
}
return super.isTransientAttrib(attribName);
}
......
......@@ -44,7 +44,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public static final String FIELD_ApplicationStatus = "ApplicationStatus";
public static final String FIELD_SubmittedDate = "SubmittedDate";
public static final String FIELD_AppProcessOption = "AppProcessOption";
public static final String FIELD_OverallSuitability = "OverallSuitability";
public static final String FIELD_OverallRank = "OverallRank";
public static final String FIELD_RoleFit = "RoleFit";
public static final String FIELD_RequirementFit = "RequirementFit";
public static final String FIELD_CultureFit = "CultureFit";
public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_Candidate = "";
public static final String SINGLEREFERENCE_Job = "Job";
......@@ -62,7 +65,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private static final EnumeratedAttributeHelper<JobApplication, ApplicationStatus> HELPER_ApplicationStatus = new EnumeratedAttributeHelper<JobApplication, ApplicationStatus> (ApplicationStatus.FACTORY_ApplicationStatus);
private static final DefaultAttributeHelper<JobApplication> HELPER_SubmittedDate = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<JobApplication, AppProcessOption> HELPER_AppProcessOption = new EnumeratedAttributeHelper<JobApplication, AppProcessOption> (AppProcessOption.FACTORY_AppProcessOption);
private static final DefaultAttributeHelper<JobApplication> HELPER_OverallSuitability = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<JobApplication> HELPER_OverallRank = DefaultAttributeHelper.INSTANCE;
private static final BLOBAttributeHelper HELPER_RoleFit = BLOBAttributeHelper.INSTANCE;
private static final BLOBAttributeHelper HELPER_RequirementFit = BLOBAttributeHelper.INSTANCE;
private static final BLOBAttributeHelper HELPER_CultureFit = BLOBAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
......@@ -70,7 +76,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private ApplicationStatus _ApplicationStatus;
private Date _SubmittedDate;
private AppProcessOption _AppProcessOption;
private Integer _OverallSuitability;
private Integer _OverallRank;
private Map _RoleFit;
private Map _RequirementFit;
private Map _CultureFit;
// Private attributes corresponding to single references
......@@ -87,7 +96,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
// Arrays of validators for each attribute
private static final AttributeValidator[] FIELD_AppProcessOption_Validators;
private static final AttributeValidator[] FIELD_OverallSuitability_Validators;
private static final AttributeValidator[] FIELD_OverallRank_Validators;
private static final AttributeValidator[] FIELD_RoleFit_Validators;
private static final AttributeValidator[] FIELD_RequirementFit_Validators;
private static final AttributeValidator[] FIELD_CultureFit_Validators;
private static final AttributeValidator[] FIELD_CV_Validators;
private static final AttributeValidator[] FIELD_ApplicationStatus_Validators;
private static final AttributeValidator[] FIELD_SubmittedDate_Validators;
......@@ -111,7 +123,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
setupAssocMetaData_Candidate();
setupAssocMetaData_Job();
FIELD_AppProcessOption_Validators = (AttributeValidator[])setupAttribMetaData_AppProcessOption(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_OverallSuitability_Validators = (AttributeValidator[])setupAttribMetaData_OverallSuitability(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_OverallRank_Validators = (AttributeValidator[])setupAttribMetaData_OverallRank(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_RoleFit_Validators = (AttributeValidator[])setupAttribMetaData_RoleFit(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_RequirementFit_Validators = (AttributeValidator[])setupAttribMetaData_RequirementFit(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CultureFit_Validators = (AttributeValidator[])setupAttribMetaData_CultureFit(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CV_Validators = (AttributeValidator[])setupAttribMetaData_CV(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_ApplicationStatus_Validators = (AttributeValidator[])setupAttribMetaData_ApplicationStatus(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_SubmittedDate_Validators = (AttributeValidator[])setupAttribMetaData_SubmittedDate(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -194,18 +209,75 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
// Meta Info setup
private static List setupAttribMetaData_OverallSuitability(Map validatorMapping)
private static List setupAttribMetaData_OverallRank(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("name", "OverallSuitability");
metaInfo.put ("name", "OverallRank");
metaInfo.put ("type", "Integer");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.OverallSuitability:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_OverallSuitability, Collections.unmodifiableMap (metaInfo));
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.OverallRank:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_OverallRank, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "OverallSuitability", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.OverallSuitability:", validators);
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "OverallRank", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.OverallRank:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_RoleFit(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "BLOBAttributeHelper");
metaInfo.put ("attribHelperInstance", "BLOBAttributeHelper.INSTANCE");
metaInfo.put ("name", "RoleFit");
metaInfo.put ("type", "Map");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.RoleFit:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_RoleFit, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "RoleFit", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.RoleFit:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_RequirementFit(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "BLOBAttributeHelper");
metaInfo.put ("attribHelperInstance", "BLOBAttributeHelper.INSTANCE");
metaInfo.put ("name", "RequirementFit");
metaInfo.put ("type", "Map");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.RequirementFit:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_RequirementFit, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "RequirementFit", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.RequirementFit:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_CultureFit(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "BLOBAttributeHelper");
metaInfo.put ("attribHelperInstance", "BLOBAttributeHelper.INSTANCE");
metaInfo.put ("name", "CultureFit");
metaInfo.put ("type", "Map");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.CultureFit:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_CultureFit, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "CultureFit", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.CultureFit:", validators);
return validators;
}
......@@ -302,7 +374,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_ApplicationStatus = (ApplicationStatus)(ApplicationStatus.DRAFT);
_SubmittedDate = (Date)(HELPER_SubmittedDate.initialise (_SubmittedDate));
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption));
_OverallSuitability = (Integer)(HELPER_OverallSuitability.initialise (_OverallSuitability));
_OverallRank = (Integer)(HELPER_OverallRank.initialise (_OverallRank));
_RoleFit = (Map)(HELPER_RoleFit.initialise (_RoleFit));
_RequirementFit = (Map)(HELPER_RequirementFit.initialise (_RequirementFit));
_CultureFit = (Map)(HELPER_CultureFit.initialise (_CultureFit));
}
......@@ -727,16 +802,212 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
/**
* Get the attribute OverallSuitability
* Get the attribute OverallRank
*/
public Integer getOverallRank ()
{
assertValid();
Integer valToReturn = _OverallRank;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getOverallRank ((JobApplication)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preOverallRankChange (Integer newOverallRank) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postOverallRankChange () throws FieldException
{
}
public FieldWriteability getWriteability_OverallRank ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute OverallRank. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setOverallRank (Integer newOverallRank) throws FieldException
{
boolean oldAndNewIdentical = HELPER_OverallRank.compare (_OverallRank, newOverallRank);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newOverallRank = bhd.setOverallRank ((JobApplication)this, newOverallRank);
oldAndNewIdentical = HELPER_OverallRank.compare (_OverallRank, newOverallRank);
}
if (FIELD_OverallRank_Validators.length > 0)
{
Object newOverallRankObj = HELPER_OverallRank.toObject (newOverallRank);
if (newOverallRankObj != null)
{
int loopMax = FIELD_OverallRank_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_OverallRank);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_OverallRank_Validators[v].checkAttribute (this, FIELD_OverallRank, metadata, newOverallRankObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_OverallRank () != FieldWriteability.FALSE, "Field OverallRank is not writeable");
preOverallRankChange (newOverallRank);
markFieldChange (FIELD_OverallRank);
_OverallRank = newOverallRank;
postFieldChange (FIELD_OverallRank);
postOverallRankChange ();
}
}
/**
* Get the attribute RoleFit
*/
public Map getRoleFit ()
{
assertValid();
Map valToReturn = _RoleFit;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getRoleFit ((JobApplication)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preRoleFitChange (Map newRoleFit) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postRoleFitChange () throws FieldException
{
}
public FieldWriteability getWriteability_RoleFit ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute RoleFit. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setRoleFit (Map newRoleFit) throws FieldException
{
boolean oldAndNewIdentical = HELPER_RoleFit.compare (_RoleFit, newRoleFit);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newRoleFit = bhd.setRoleFit ((JobApplication)this, newRoleFit);
oldAndNewIdentical = HELPER_RoleFit.compare (_RoleFit, newRoleFit);
}
if (FIELD_RoleFit_Validators.length > 0)
{
Object newRoleFitObj = HELPER_RoleFit.toObject (newRoleFit);
if (newRoleFitObj != null)
{
int loopMax = FIELD_RoleFit_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_RoleFit);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_RoleFit_Validators[v].checkAttribute (this, FIELD_RoleFit, metadata, newRoleFitObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_RoleFit () != FieldWriteability.FALSE, "Field RoleFit is not writeable");
preRoleFitChange (newRoleFit);
markFieldChange (FIELD_RoleFit);
_RoleFit = newRoleFit;
postFieldChange (FIELD_RoleFit);
postRoleFitChange ();
}
}
/**
* Get the attribute RequirementFit
*/
public Integer getOverallSuitability ()
public Map getRequirementFit ()
{
assertValid();
Integer valToReturn = _OverallSuitability;
Map valToReturn = _RequirementFit;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getOverallSuitability ((JobApplication)this, valToReturn);
valToReturn = bhd.getRequirementFit ((JobApplication)this, valToReturn);
}
return valToReturn;
......@@ -748,7 +1019,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preOverallSuitabilityChange (Integer newOverallSuitability) throws FieldException
protected void preRequirementFitChange (Map newRequirementFit) throws FieldException
{
}
......@@ -758,46 +1029,46 @@ public abstract class BaseJobApplication extends BaseBusinessClass
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postOverallSuitabilityChange () throws FieldException
protected void postRequirementFitChange () throws FieldException
{
}
public FieldWriteability getWriteability_OverallSuitability ()
public FieldWriteability getWriteability_RequirementFit ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute OverallSuitability. Checks to ensure a new value
* Set the attribute RequirementFit. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setOverallSuitability (Integer newOverallSuitability) throws FieldException
public void setRequirementFit (Map newRequirementFit) throws FieldException
{
boolean oldAndNewIdentical = HELPER_OverallSuitability.compare (_OverallSuitability, newOverallSuitability);
boolean oldAndNewIdentical = HELPER_RequirementFit.compare (_RequirementFit, newRequirementFit);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newOverallSuitability = bhd.setOverallSuitability ((JobApplication)this, newOverallSuitability);
oldAndNewIdentical = HELPER_OverallSuitability.compare (_OverallSuitability, newOverallSuitability);
newRequirementFit = bhd.setRequirementFit ((JobApplication)this, newRequirementFit);
oldAndNewIdentical = HELPER_RequirementFit.compare (_RequirementFit, newRequirementFit);
}
if (FIELD_OverallSuitability_Validators.length > 0)
if (FIELD_RequirementFit_Validators.length > 0)
{
Object newOverallSuitabilityObj = HELPER_OverallSuitability.toObject (newOverallSuitability);
Object newRequirementFitObj = HELPER_RequirementFit.toObject (newRequirementFit);
if (newOverallSuitabilityObj != null)
if (newRequirementFitObj != null)
{
int loopMax = FIELD_OverallSuitability_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_OverallSuitability);
int loopMax = FIELD_RequirementFit_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_RequirementFit);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_OverallSuitability_Validators[v].checkAttribute (this, FIELD_OverallSuitability, metadata, newOverallSuitabilityObj);
FIELD_RequirementFit_Validators[v].checkAttribute (this, FIELD_RequirementFit, metadata, newRequirementFitObj);
}
}
}
......@@ -815,12 +1086,110 @@ public abstract class BaseJobApplication extends BaseBusinessClass
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_OverallSuitability () != FieldWriteability.FALSE, "Field OverallSuitability is not writeable");
preOverallSuitabilityChange (newOverallSuitability);
markFieldChange (FIELD_OverallSuitability);
_OverallSuitability = newOverallSuitability;
postFieldChange (FIELD_OverallSuitability);
postOverallSuitabilityChange ();
Debug.assertion (getWriteability_RequirementFit () != FieldWriteability.FALSE, "Field RequirementFit is not writeable");
preRequirementFitChange (newRequirementFit);
markFieldChange (FIELD_RequirementFit);
_RequirementFit = newRequirementFit;
postFieldChange (FIELD_RequirementFit);
postRequirementFitChange ();
}
}
/**
* Get the attribute CultureFit
*/
public Map getCultureFit ()
{
assertValid();
Map valToReturn = _CultureFit;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getCultureFit ((JobApplication)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preCultureFitChange (Map newCultureFit) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postCultureFitChange () throws FieldException
{
}
public FieldWriteability getWriteability_CultureFit ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute CultureFit. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setCultureFit (Map newCultureFit) throws FieldException
{
boolean oldAndNewIdentical = HELPER_CultureFit.compare (_CultureFit, newCultureFit);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newCultureFit = bhd.setCultureFit ((JobApplication)this, newCultureFit);
oldAndNewIdentical = HELPER_CultureFit.compare (_CultureFit, newCultureFit);
}
if (FIELD_CultureFit_Validators.length > 0)
{
Object newCultureFitObj = HELPER_CultureFit.toObject (newCultureFit);
if (newCultureFitObj != null)
{
int loopMax = FIELD_CultureFit_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_CultureFit);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_CultureFit_Validators[v].checkAttribute (this, FIELD_CultureFit, metadata, newCultureFitObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_CultureFit () != FieldWriteability.FALSE, "Field CultureFit is not writeable");
preCultureFitChange (newCultureFit);
markFieldChange (FIELD_CultureFit);
_CultureFit = newCultureFit;
postFieldChange (FIELD_CultureFit);
postCultureFitChange ();
}
}
......@@ -1573,7 +1942,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_ApplicationStatus = sourceJobApplication._ApplicationStatus;
_SubmittedDate = sourceJobApplication._SubmittedDate;
_AppProcessOption = sourceJobApplication._AppProcessOption;
_OverallSuitability = sourceJobApplication._OverallSuitability;
_OverallRank = sourceJobApplication._OverallRank;
_RoleFit = sourceJobApplication._RoleFit;
_RequirementFit = sourceJobApplication._RequirementFit;
_CultureFit = sourceJobApplication._CultureFit;
}
}
......@@ -1637,7 +2009,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_ApplicationStatus = (ApplicationStatus)(HELPER_ApplicationStatus.readExternal (_ApplicationStatus, vals.get(FIELD_ApplicationStatus))); //
_SubmittedDate = (Date)(HELPER_SubmittedDate.readExternal (_SubmittedDate, vals.get(FIELD_SubmittedDate))); //
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); //
_OverallSuitability = (Integer)(HELPER_OverallSuitability.readExternal (_OverallSuitability, vals.get(FIELD_OverallSuitability))); //
_OverallRank = (Integer)(HELPER_OverallRank.readExternal (_OverallRank, vals.get(FIELD_OverallRank))); //
_RoleFit = (Map)(HELPER_RoleFit.readExternal (_RoleFit, vals.get(FIELD_RoleFit))); //
_RequirementFit = (Map)(HELPER_RequirementFit.readExternal (_RequirementFit, vals.get(FIELD_RequirementFit))); //
_CultureFit = (Map)(HELPER_CultureFit.readExternal (_CultureFit, vals.get(FIELD_CultureFit))); //
_Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_AssessmentCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_AssessmentCriteriaAnswers));
......@@ -1656,7 +2031,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
vals.put (FIELD_ApplicationStatus, HELPER_ApplicationStatus.writeExternal (_ApplicationStatus));
vals.put (FIELD_SubmittedDate, HELPER_SubmittedDate.writeExternal (_SubmittedDate));
vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption));
vals.put (FIELD_OverallSuitability, HELPER_OverallSuitability.writeExternal (_OverallSuitability));
vals.put (FIELD_OverallRank, HELPER_OverallRank.writeExternal (_OverallRank));
vals.put (FIELD_RoleFit, HELPER_RoleFit.writeExternal (_RoleFit));
vals.put (FIELD_RequirementFit, HELPER_RequirementFit.writeExternal (_RequirementFit));
vals.put (FIELD_CultureFit, HELPER_CultureFit.writeExternal (_CultureFit));
vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (MULTIPLEREFERENCE_AssessmentCriteriaAnswers, _AssessmentCriteriaAnswers.writeExternalData());
......@@ -1703,7 +2081,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
super.visitAttributes (visitor);
visitor.visitField(this, FIELD_AppProcessOption, HELPER_AppProcessOption.toObject(getAppProcessOption()));
visitor.visitField(this, FIELD_OverallSuitability, HELPER_OverallSuitability.toObject(getOverallSuitability()));
visitor.visitField(this, FIELD_OverallRank, HELPER_OverallRank.toObject(getOverallRank()));
visitor.visitField(this, FIELD_RoleFit, HELPER_RoleFit.toObject(getRoleFit()));
visitor.visitField(this, FIELD_RequirementFit, HELPER_RequirementFit.toObject(getRequirementFit()));
visitor.visitField(this, FIELD_CultureFit, HELPER_CultureFit.toObject(getCultureFit()));
}
......@@ -1871,6 +2252,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass
.search (transaction);
}
public abstract boolean filterCandidateJob(Candidate Candidate, Job Job) throws StorageException;
public static SearchCandidateJob SearchByCandidateJob () { return new SearchCandidateJob (); }
public static class SearchCandidateJob extends SearchObject<JobApplication>
......@@ -1939,6 +2322,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public JobApplication search (ObjectTransaction transaction) throws StorageException
{
Candidate Candidate = (Candidate)criteria.get ("Candidate");
Job Job = (Job)criteria.get ("Job");
BaseBusinessClass[] results = super.search (transaction, REFERENCE_JobApplication, SEARCH_CandidateJob, criteria);
......@@ -1947,9 +2332,31 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
JobApplication aResult = (JobApplication)bbcResult;
// Check in case in memory objects should be excluded
if (!aResult.filterCandidateJob(Candidate, Job) || !filterAndsInMemory (aResult))
{
continue;
}
typedResults.add (aResult);
}
// Check in memory objects for matches
for (BaseBusinessClass bbcInMemory : transaction.getObjectsToStore ())
{
if (bbcInMemory instanceof JobApplication)
{
JobApplication aInMemory = (JobApplication)bbcInMemory;
if (!aInMemory.filterCandidateJob(Candidate, Job) || !filterAndsInMemory (aInMemory))
{
continue;
}
typedResults.add (aInMemory);
}
}
return (JobApplication)singletonResult(ObjstoreUtils.removeDeleted(transaction, typedResults).toArray(new BaseBusinessClass[0]), "JobApplication", "");
}
......@@ -1988,9 +2395,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return HELPER_AppProcessOption.toObject (getAppProcessOption ());
}
else if (attribName.equals (FIELD_OverallSuitability))
else if (attribName.equals (FIELD_OverallRank))
{
return HELPER_OverallRank.toObject (getOverallRank ());
}
else if (attribName.equals (FIELD_RoleFit))
{
return HELPER_OverallSuitability.toObject (getOverallSuitability ());
return HELPER_RoleFit.toObject (getRoleFit ());
}
else if (attribName.equals (FIELD_RequirementFit))
{
return HELPER_RequirementFit.toObject (getRequirementFit ());
}
else if (attribName.equals (FIELD_CultureFit))
{
return HELPER_CultureFit.toObject (getCultureFit ());
}
else
{
......@@ -2021,9 +2440,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return HELPER_AppProcessOption;
}
else if (attribName.equals (FIELD_OverallSuitability))
else if (attribName.equals (FIELD_OverallRank))
{
return HELPER_OverallRank;
}
else if (attribName.equals (FIELD_RoleFit))
{
return HELPER_OverallSuitability;
return HELPER_RoleFit;
}
else if (attribName.equals (FIELD_RequirementFit))
{
return HELPER_RequirementFit;
}
else if (attribName.equals (FIELD_CultureFit))
{
return HELPER_CultureFit;
}
else
{
......@@ -2054,9 +2485,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue)));
}
else if (attribName.equals (FIELD_OverallSuitability))
else if (attribName.equals (FIELD_OverallRank))
{
setOverallRank ((Integer)(HELPER_OverallRank.fromObject (_OverallRank, attribValue)));
}
else if (attribName.equals (FIELD_RoleFit))
{
setOverallSuitability ((Integer)(HELPER_OverallSuitability.fromObject (_OverallSuitability, attribValue)));
setRoleFit ((Map)(HELPER_RoleFit.fromObject (_RoleFit, attribValue)));
}
else if (attribName.equals (FIELD_RequirementFit))
{
setRequirementFit ((Map)(HELPER_RequirementFit.fromObject (_RequirementFit, attribValue)));
}
else if (attribName.equals (FIELD_CultureFit))
{
setCultureFit ((Map)(HELPER_CultureFit.fromObject (_CultureFit, attribValue)));
}
else
{
......@@ -2106,9 +2549,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return getWriteability_AppProcessOption ();
}
else if (fieldName.equals (FIELD_OverallSuitability))
else if (fieldName.equals (FIELD_OverallRank))
{
return getWriteability_OverallRank ();
}
else if (fieldName.equals (FIELD_RoleFit))
{
return getWriteability_OverallSuitability ();
return getWriteability_RoleFit ();
}
else if (fieldName.equals (FIELD_RequirementFit))
{
return getWriteability_RequirementFit ();
}
else if (fieldName.equals (FIELD_CultureFit))
{
return getWriteability_CultureFit ();
}
else
{
......@@ -2140,9 +2595,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass
fields.add (FIELD_AppProcessOption);
}
if (getWriteability_OverallSuitability () != FieldWriteability.TRUE)
if (getWriteability_OverallRank () != FieldWriteability.TRUE)
{
fields.add (FIELD_OverallRank);
}
if (getWriteability_RoleFit () != FieldWriteability.TRUE)
{
fields.add (FIELD_RoleFit);
}
if (getWriteability_RequirementFit () != FieldWriteability.TRUE)
{
fields.add (FIELD_RequirementFit);
}
if (getWriteability_CultureFit () != FieldWriteability.TRUE)
{
fields.add (FIELD_OverallSuitability);
fields.add (FIELD_CultureFit);
}
......@@ -2158,7 +2628,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
result.add(HELPER_ApplicationStatus.getAttribObject (getClass (), _ApplicationStatus, true, FIELD_ApplicationStatus));
result.add(HELPER_SubmittedDate.getAttribObject (getClass (), _SubmittedDate, false, FIELD_SubmittedDate));
result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption));
result.add(HELPER_OverallSuitability.getAttribObject (getClass (), _OverallSuitability, false, FIELD_OverallSuitability));
result.add(HELPER_OverallRank.getAttribObject (getClass (), _OverallRank, false, FIELD_OverallRank));
result.add(HELPER_RoleFit.getAttribObject (getClass (), _RoleFit, false, FIELD_RoleFit));
result.add(HELPER_RequirementFit.getAttribObject (getClass (), _RequirementFit, false, FIELD_RequirementFit));
result.add(HELPER_CultureFit.getAttribObject (getClass (), _CultureFit, false, FIELD_CultureFit));
return result;
}
......@@ -2300,21 +2773,75 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
/**
* Get the attribute OverallSuitability
* Get the attribute OverallRank
*/
public Integer getOverallSuitability (JobApplication obj, Integer original)
public Integer getOverallRank (JobApplication obj, Integer original)
{
return original;
}
/**
* Change the value set for attribute OverallSuitability.
* Change the value set for attribute OverallRank.
* May modify the field beforehand
* Occurs before validation.
*/
public Integer setOverallSuitability (JobApplication obj, Integer newOverallSuitability) throws FieldException
public Integer setOverallRank (JobApplication obj, Integer newOverallRank) throws FieldException
{
return newOverallSuitability;
return newOverallRank;
}
/**
* Get the attribute RoleFit
*/
public Map getRoleFit (JobApplication obj, Map original)
{
return original;
}
/**
* Change the value set for attribute RoleFit.
* May modify the field beforehand
* Occurs before validation.
*/
public Map setRoleFit (JobApplication obj, Map newRoleFit) throws FieldException
{
return newRoleFit;
}
/**
* Get the attribute RequirementFit
*/
public Map getRequirementFit (JobApplication obj, Map original)
{
return original;
}
/**
* Change the value set for attribute RequirementFit.
* May modify the field beforehand
* Occurs before validation.
*/
public Map setRequirementFit (JobApplication obj, Map newRequirementFit) throws FieldException
{
return newRequirementFit;
}
/**
* Get the attribute CultureFit
*/
public Map getCultureFit (JobApplication obj, Map original)
{
return original;
}
/**
* Change the value set for attribute CultureFit.
* May modify the field beforehand
* Occurs before validation.
*/
public Map setCultureFit (JobApplication obj, Map newCultureFit) throws FieldException
{
return newCultureFit;
}
}
......@@ -2377,9 +2904,21 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return toAppProcessOption ();
}
if (name.equals ("OverallSuitability"))
if (name.equals ("OverallRank"))
{
return toOverallRank ();
}
if (name.equals ("RoleFit"))
{
return toOverallSuitability ();
return toRoleFit ();
}
if (name.equals ("RequirementFit"))
{
return toRequirementFit ();
}
if (name.equals ("CultureFit"))
{
return toCultureFit ();
}
if (name.equals ("CV"))
{
......@@ -2409,7 +2948,13 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public PipeLine<From, AppProcessOption> toAppProcessOption () { return pipe(new ORMAttributePipe<Me, AppProcessOption>(FIELD_AppProcessOption)); }
public PipeLine<From, Integer> toOverallSuitability () { return pipe(new ORMAttributePipe<Me, Integer>(FIELD_OverallSuitability)); }
public PipeLine<From, Integer> toOverallRank () { return pipe(new ORMAttributePipe<Me, Integer>(FIELD_OverallRank)); }
public PipeLine<From, Map> toRoleFit () { return pipe(new ORMAttributePipe<Me, Map>(FIELD_RoleFit)); }
public PipeLine<From, Map> toRequirementFit () { return pipe(new ORMAttributePipe<Me, Map>(FIELD_RequirementFit)); }
public PipeLine<From, Map> toCultureFit () { return pipe(new ORMAttributePipe<Me, Map>(FIELD_CultureFit)); }
public PipeLine<From, BinaryContent> toCV () { return pipe(new ORMAttributePipe<Me, BinaryContent>(FIELD_CV)); }
......@@ -2445,7 +2990,22 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return true;
}
if(CollectionUtils.equals(attribName, "OverallSuitability"))
if(CollectionUtils.equals(attribName, "OverallRank"))
{
return true;
}
if(CollectionUtils.equals(attribName, "RoleFit"))
{
return true;
}
if(CollectionUtils.equals(attribName, "RequirementFit"))
{
return true;
}
if(CollectionUtils.equals(attribName, "CultureFit"))
{
return true;
}
......
......@@ -112,7 +112,7 @@ public class Candidate extends BaseCandidate
public boolean assessmentCompleted(Job job) //role
{
int allAnswersCount = job.getAllLeftQuestions(Arrays.asList(Question.searchAll(getTransaction()))).size();
int allAnswersCount = job.getAllQuestions().size();
if(allAnswersCount > 0)
{
......
......@@ -14,7 +14,7 @@ import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException;
import performa.orm.types.*;
import performa.utils.Utils;
import performa.utils.*;
public class Job extends BaseJob
......@@ -101,28 +101,55 @@ public class Job extends BaseJob
return super.getWriteability_JobStatus();
}
public Boolean jobDetailsCompleted()
public void calculateRoleFitForRanking() throws FieldException
{
return getJobTitle() != null && getJobDescription() != null;
}
if(!isTrue(getRankingCompleted()))
{
//Preloading data
pipelineJob().toJobApplications().toCandidate().toTestAnalysises().toCandidateClassScores().uniqueVals();
pipelineJob().toJobApplications().toCandidate().toCultureCriteriaAnswers().toSelectedQuestion().toNarratives().toCultureElementRating().uniqueVals();
pipelineJob().toJobApplications().toCandidate().toCultureCriteriaAnswers().toCultureElement().uniqueVals();
pipelineJob().toLevel().toLevelClassCriterias().toFactorClass().uniqueVals();
pipelineJob().toLevel().toClassNormalisations().uniqueVals();
pipelineJob().toLevel().toLevelNormalisations().uniqueVals();
List<JobApplication> sortedApplications = ObjstoreUtils.sort(getSubmittedApplications(),
new ObjectTransform[]{JobApplicationRoleFitTransform.INSTANCE, JobApplicationCultureFitTransform.INSTANCE},
new Comparator[]{CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR), CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR)});
public Boolean assessmentCompleted()
for(JobApplication jobApplication : getSubmittedApplications())
{
return Boolean.TRUE;
jobApplication.setOverallRank(sortedApplications.indexOf(jobApplication) + 1);
}
}
setRankingCompleted(true);
}
public Boolean cultureCompleted()
public JobApplication getTopper()
{
return Boolean.FALSE;
try
{
calculateRoleFitForRanking();
}
catch(FieldException ex)
{
return null;
}
List<JobApplication> sortedApplications = ObjstoreUtils.sort(getSubmittedApplications(),
new ObjectTransform[]{JobApplicationRoleFitTransform.INSTANCE},
new Comparator[]{CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR)});
if(sortedApplications.size() > 0)
{
return sortedApplications.get(0);
}
return null;
}
public Boolean jobMatchCompleted()
public Boolean jobDetailsCompleted()
{
return Boolean.TRUE;
return getJobTitle() != null && getJobDescription() != null;
}
......@@ -139,6 +166,15 @@ public class Job extends BaseJob
return getAssessmentCriteraByType(criteria).size();
}
public List<Question> getAllQuestions()
{
return Arrays.asList(Question.searchAll(getTransaction()));
}
public List<Question> getAllLeftQuestions()
{
return getAllLeftQuestions(getAllQuestions());
}
//to get only left Questions
public List<Question> getAllLeftQuestions(List<Question> totalQuestions)
......
......@@ -23,6 +23,7 @@
<TRANSIENT name="AssessmentTemplateName" type="String"/>
<TRANSIENT name="CultureTemplateName" type="String"/>
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="RankingCompleted" type="Boolean" />
<TRANSIENTSINGLE name="AssessmentTemplate" type="AssessmentCriteriaTemplate" />
<TRANSIENTSINGLE name="CultureTemplate" type="CultureCriteriaTemplate" />
......
package performa.orm;
import java.util.*;
import oneit.logging.LoggingArea;
import oneit.objstore.StorageException;
import oneit.logging.*;
import oneit.objstore.*;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter;
import oneit.objstore.rdbms.filters.NotEqualsFilter;
import oneit.utils.*;
import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
import oneit.utils.math.NullArith;
......@@ -37,6 +38,21 @@ public class JobApplication extends BaseJobApplication
return jobApplication;
}
@Override
public void validate(ValidationContext context)
{
try
{
//Ideally should be managed with uniqueGroup, but uniqueGroup doesnt work without atleast 1 attribute
searchCandidateJob(getTransaction(), getCandidate(), getJob()); //It will throw RuntimeException when more than 1 record found.
}
catch(RuntimeException ex)
{
context.check(false, this, SINGLEREFERENCE_Job, "alreadyApplied");
}
super.validate(context);
}
public boolean createAssessmentCriteriaObjects() throws FieldException
{
......@@ -221,32 +237,98 @@ public class JobApplication extends BaseJobApplication
return getJob() != null && isTrue(getJob().getIncludeAssessmentCriteria());
}
// TODO: Fix these hard coded values
@Override
public Integer getOverallSuitability()
public Map getRoleFit()
{
if(super.getRoleFit() == null && getCandidate() != null && getJob() != null && getJob().getLevel() != null)
{
try
{
setRoleFit(AnalysisEngine.getRoleFitSuitability(getCandidate(), getJob().getLevel()));
}
catch (FieldException ex)
{
return 1;
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting RoleFit for " + this);
}
}
return super.getRoleFit();
}
@Override
public Map getCultureFit()
{
if(super.getCultureFit() == null && getCandidate() != null && getJob() != null && getJob().getLevel() != null)
{
try
{
setCultureFit(AnalysisEngine.getCultureFit(getCandidate().getCultureCriteriaAnswersSet(), getJob()));
}
catch (FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting CultureFit for " + this);
}
}
return super.getCultureFit();
}
public Double getJobMatchPercentage() //ROLE
@Override
public Map getRequirementFit()
{
return AnalysisEngine.getRoleFitSuitability(getCandidate(), getJob().getLevel()).get(null);
if(super.getRequirementFit() == null)
{
try
{
setRequirementFit(AnalysisEngine.getRequirementFit(getAssessmentCriteriaAnswersSet()));
}
catch (FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting RequirementFit for " + this);
}
}
return super.getRequirementFit();
}
@Override
public Integer getOverallRank()
{
if(getJob() != null)
{
try
{
getJob().calculateRoleFitForRanking();
}
catch (FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting OverallRank for " + this);
}
}
return super.getOverallRank();
}
public int getCulturePercentage()
public Double getRoleFitScore()
{
return AnalysisEngine.getCultureFit(getCandidate().getCultureCriteriaAnswersSet(), getJob()).get(null).intValue();
return getRoleFit() != null ? (Double)getRoleFit().get(null) : 0d;
}
public Long getCultureFitScore()
{
return getCultureFit() != null ? (Long) getCultureFit().get(null) : 0;
}
public int getCriteriaPercentage () //REQ
public Long getRequirementFitScore()
{
return AnalysisEngine.getRequirementFit(getAssessmentCriteriaAnswersSet()).get(null).intValue();
return getRequirementFit() != null ? (Long) getRequirementFit().get(null) : 0;
}
//This will return relative percentage considering topper as 100%
public Double getRoleFitPercentage()
{
JobApplication jobTopper = getJob() != null ? getJob().getTopper() : null;
Double myScore = getRoleFitScore();
Double topScore = jobTopper.getRoleFitScore();
return NullArith.round(NullArith.divide(NullArith.multiply(myScore, 100), topScore), 2);
}
public List<AppProcessOption> getValidProcessOptions()
{
......@@ -323,7 +405,7 @@ public class JobApplication extends BaseJobApplication
int remainingTime = 0;
//REQ
if(getJob()!=null && getJob().getIncludeAssessmentCriteria()==Boolean.TRUE)
if(getJob()!=null && isTrue(getJob().getIncludeAssessmentCriteria()))
{
if(!selectionCompleted())
{
......@@ -359,7 +441,7 @@ public class JobApplication extends BaseJobApplication
}
else //partially completed test for role
{
int allAnswersCount = getJob().getAllLeftQuestions(Arrays.asList(Question.searchAll(getTransaction()))).size();
int allAnswersCount = getJob().getAllQuestions().size();
if(allAnswersCount > 0)
{
......@@ -374,7 +456,12 @@ public class JobApplication extends BaseJobApplication
}
}
}
return remainingTime;
}
@Override
public boolean filterCandidateJob(Candidate candidate, Job job) throws StorageException
{
return (CollectionUtils.equals(candidate, getCandidate()) && CollectionUtils.equals(job, getJob()));
}
}
\ No newline at end of file
......@@ -8,7 +8,10 @@
<MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" />
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="OverallSuitability" type="Integer"/>
<TRANSIENT name="OverallRank" type="Integer" />
<TRANSIENT name="RoleFit" type="Map" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE"/>
<TRANSIENT name="RequirementFit" type="Map" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE"/>
<TRANSIENT name="CultureFit" type="Map" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE"/>
<TABLE name="tl_job_application" tablePrefix="object" polymorphic="FALSE">
......@@ -23,7 +26,7 @@
<SEARCH type="All" paramFilter="tl_job_application.object_id is not null" orderBy="tl_job_application.object_id" />
<SEARCH type="CandidateJob" paramFilter="tl_job_application.object_id is not null" singleton="TRUE">
<SEARCH type="CandidateJob" paramFilter="tl_job_application.object_id is not null" singleton="TRUE" checkTXObjects="TRUE">
<PARAM name="Candidate" type="Candidate" transform="Candidate.getObjectID()" paramFilter="candidate_id = ${Candidate} " />
<PARAM name="Job" type="Job" transform="Job.getObjectID()" paramFilter="job_id = ${Job}" />
</SEARCH>
......
package performa.utils;
import oneit.utils.ObjectTransform;
import performa.orm.JobApplication;
/**
*
* @author Harsh
*/
public class JobApplicationCultureFitTransform implements ObjectTransform<JobApplication, Long>
{
public static final JobApplicationCultureFitTransform INSTANCE = new JobApplicationCultureFitTransform();
@Override
public Long transform(JobApplication original)
{
if(original == null)
{
return null;
}
return original.getCultureFitScore();
}
}
\ No newline at end of file
package performa.utils;
import oneit.utils.ObjectTransform;
import performa.orm.JobApplication;
/**
*
* @author Harsh
*/
public class JobApplicationRoleFitTransform implements ObjectTransform<JobApplication, Double>
{
public static final JobApplicationRoleFitTransform INSTANCE = new JobApplicationRoleFitTransform();
@Override
public Double transform(JobApplication original)
{
if(original == null)
{
return null;
}
return original.getRoleFitScore();
}
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package performa.utils;
import java.util.*;
import javax.activation.DataSource;
import javax.servlet.http.*;
import oneit.appservices.config.ConfigMgr;
import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.email.ConfigurableEmailerException;
import oneit.logging.LogLevel;
......@@ -56,6 +57,7 @@ public class Utils
public static final String LEVEL_SALES = "Sales";
public static final String LEVEL_MANAGEMENT = "Management";
public static final String LEVEL_EXECUTIVE = "Executive";
public static final String HEAP_ANALYSIS_ID = ConfigMgr.getKeyfileString("heap.analysis.id", "3411110378");
public static Role getRole(String role, ObjectTransaction transaction)
{
......@@ -251,17 +253,17 @@ public class Utils
if(appSortOption==AppSortOption.OLDEST)
{
transform = JobApplication.pipesJobApplication().toSubmittedDate();
comparator = CollectionUtils.DEFAULT_COMPARATOR;
comparator = CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST;
}
else if(appSortOption==AppSortOption.NEWEST)
{
transform = JobApplication.pipesJobApplication().toSubmittedDate();
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR);
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST);
}
else if(appSortOption==AppSortOption.RANK)
{
transform = JobApplication.pipesJobApplication().toOverallSuitability();
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR);
transform = JobApplication.pipesJobApplication().toOverallRank();
comparator = CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST;
}
else if(appSortOption==AppSortOption.ALPHA_A_Z)
{
......
......@@ -29,9 +29,9 @@
for(JobApplication jobApplication : applications)
{
String jobMatch = FormatUtils.stringify(jobApplication.getJobMatchPercentage(), "PercentageWholeNumber", "0");
String culture = FormatUtils.stringify(jobApplication.getCulturePercentage(), "PercentageWholeNumber", "0");
String criteria = FormatUtils.stringify(jobApplication.getCriteriaPercentage(), "PercentageWholeNumber", "0");
String roleFit = FormatUtils.stringify(jobApplication.getRoleFitPercentage(), "PercentageTwoDP", "0");
String culture = FormatUtils.stringify(jobApplication.getCultureFitScore(), "PercentageWholeNumber", "0");
String criteria = FormatUtils.stringify(jobApplication.getRequirementFitScore(), "PercentageWholeNumber", "0");
String appID = "app-id-" + jobApplication.getID().toString();
%>
<div class="appli-row" id="<%= jobApplication.getID() %>">
......@@ -55,7 +55,7 @@
</div>
<!--TODO: logic needed to be worked out. Added to note that there are three colors-->
<div class="<%= "appli-percent-no " + (j == 0 ? "first green" : (j < 3 ? "blue" : "grey" ))%>">
<oneit:toString value="<%= jobApplication.getOverallSuitability() %>" mode="Integer" />
<oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div>
</div>
<%
......@@ -69,8 +69,8 @@
<div class="<%= widthClass %> appli-l eq-second-height">
<span class="appli-view-bar">
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= jobMatch %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + jobMatch %>">
<div class="progress-bar" role="progressbar" aria-valuenow="<%= roleFit %>" aria-valuemin="0" aria-valuemax="100"
style="<%= "width: " + roleFit %>">
</div>
</div>
</span>
......
......@@ -11,6 +11,8 @@
<title><%= "Talentology" + (company != null ? " - " + company.getCompanyName() : "")%></title>
<%@include file="/inc/std_imports.jsp" %>
<%@include file="/hotjar.jsp" %>
<%@include file="/heapAnalysis.jsp" %>
</head>
<script>
window.intercomSettings = {
......@@ -107,7 +109,6 @@
}
});
</script>
<%
}
%>
......@@ -43,7 +43,8 @@
<%
}
%>
</span> by <oneit:toString value="<%= job.getCompanyUser() %>" mode="EscapeHTML" nullValue=""/><span class="ex-management">&bull;&nbsp;
</span> by <oneit:toString value="<%= job.getCompanyUser() %>" mode="EscapeHTML" nullValue=""/>
<span class="ex-management">&bull;&nbsp;
<oneit:toString value="<%= job.getLevel() %>" mode="EscapeHTML" />
</span>
</div>
......
......@@ -14,7 +14,7 @@
<oneit:dynIncluded>
<%
Map<FactorClass, Double> roleScoreMap = AnalysisEngine.getRoleFitSuitability(candidate, job.getLevel());
Map<FactorClass, Double> roleScoreMap = (Map<FactorClass, Double>)jobApplication.getRoleFit();
%>
<script>
function tabToggle(tab) {
......@@ -73,14 +73,14 @@
<div class="applicant-progress">
<div class="<%= job.getIncludeAssessmentCriteria()==Boolean.TRUE ? "col-sm-4" : "col-sm-6" %> col-xs-12 text-center" href="#1a" data-toggle="tab" id="progress1" onClick="tabToggle('#tab1')">
<label class="progress-label">role fit</label>
<div class="percent-green fixed-width">
<p style="display:none;"><oneit:toString value="<%= roleScoreMap.get(null) %>" mode="TwoDPDouble" nullValue="0"/></p>
<div class="percent-role fixed-width">
<p style="display:none;"><oneit:toString value="<%= jobApplication.getRoleFitScore() %>" mode="TwoDPDouble" nullValue="0"/></p>
</div>
</div>
<div class="<%= job.getIncludeAssessmentCriteria()==Boolean.TRUE ? "col-sm-4" : "col-sm-4" %> col-xs-12 text-center" href="#2a" data-toggle="tab" id="progress2" onClick="tabToggle('#tab2')">
<label class="progress-label">culture fit</label>
<div class="percent-green fixed-width">
<p style="display:none;"><oneit:toString value="<%= jobApplication.getCulturePercentage() %>" mode="PercentageWholeNumber" /></p>
<div class="percent-culture fixed-width">
<p style="display:none;"><oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="PercentageWholeNumber" /></p>
</div>
</div>
<%
......@@ -89,8 +89,8 @@
%>
<div class="col-sm-4 col-xs-12 text-center" href="#3a" data-toggle="tab" id="progress3" onClick="tabToggle('#tab3')">
<label class="progress-label">requirements</label>
<div class="percent-blue fixed-width">
<p style="display:none;"><oneit:toString value="<%= jobApplication.getCriteriaPercentage() %>" mode="PercentageWholeNumber" /></p>
<div class="percent-req fixed-width">
<p style="display:none;"><oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="PercentageWholeNumber" /></p>
</div>
</div>
<%
......@@ -109,7 +109,7 @@
<%
}
%>
<li id="tab4"><a href="#4a" data-toggle="tab">areas of concern</a></li>
<li id="tab4" style="display: none"><a href="#4a" data-toggle="tab">areas of concern</a></li>
</ul>
<div class="tab-content clearfix">
<div class="tab-pane active" id="1a">
......@@ -177,7 +177,7 @@
</div>
<div class="tab-pane" id="2a">
<%
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job);
Map<CultureClass, Long> cultureFitData = (Map<CultureClass, Long>)jobApplication.getCultureFit();
for(CultureClass cClass: cultureFitData.keySet())
{
......@@ -254,7 +254,7 @@
%>
<div class="tab-pane" id="3a">
<%
Map<Importance, Long> requirementFitData = AnalysisEngine.getRequirementFit(jobApplication.getAssessmentCriteriaAnswersSet());
Map<Importance, Long> requirementFitData = (Map<Importance, Long>)jobApplication.getRequirementFit();
for(Importance importance: requirementFitData.keySet())
{
......@@ -338,7 +338,7 @@
<div class="app-right-b">
<div class="overall-suit">overall rank</div>
<div class="big-percentage">
<oneit:toString value="<%= jobApplication.getOverallSuitability() %>" mode="Integer" />
<oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div>
</div>
<div class="applicant-contact-info">
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS xmlns:oneit="http://www.1iT.com.au" name="">
<NODE factory="Vector" name="Script"><NODE class="oneit.appservices.upgrade.cms.CMSArticleUpdateOperation" factory="Participant" name="Home">
<createSpecificIdentifier factory='String' value='HOME'/>
<articleIdentifiers factory="Array" class="java.lang.String">
<NODE factory="String" value="HOME"/>
</articleIdentifiers>
<createdLabel factory="String" value="HOME"/>
<articleAttributeChanges factory="Map">
<NODE name="Additional CSS Class" factory="Null"/>
<NODE name="Exclude From Sitemap" factory="Boolean" value="false"/>
<NODE name="Exclude from SEO Indexing" factory="Boolean" value="false"/>
<NODE name="Add Brackline Separator" factory="Boolean" value="false"/>
<NODE name="On Top Menu" factory="Boolean" value="false"/>
<NODE name="On Footer Left" factory="Boolean" value="false"/>
<NODE name="Menu Title" factory="Null"/>
<NODE name="On Footer Menu" factory="Boolean" value="false"/>
<NODE name="OnLeftMenu" factory="Boolean" value="false"/>
<NODE name="Exclude From Search" factory="Boolean" value="false"/>
<NODE name="Target" factory="String" value="YRZCOYGLDTAG02BK7VK4TXHJIZF3ZS"/>
<NODE name="Menu Icon CSS" factory="Null"/>
<NODE name="On Left Menu" factory="Boolean" value="false"/>
<NODE name="Shortcuts" factory="Null"/>
<NODE name="Exclude From Navigation" factory="Boolean" value="false"/>
<NODE name="On Footer Right" factory="Boolean" value="false"/>
</articleAttributeChanges>
<ormAttributeChanges factory="Map">
<NODE name="PublishDate" factory="Date" value="2000-01-01 00:00:00"/>
<NODE name="WithdrawDate" factory="Date" value="3000-01-01 00:00:00"/>
<NODE name="Title" factory="String" value="Home"/>
<NODE name="ShortTitle" factory="String" value="Home"/>
<NODE name="SortOrder" factory="Integer" value="-36831027"/>
<NODE name="Type" factory="Enumerated" class="oneit.business.content.ArticleType" value="ARTICLE"/>
<NODE name="Template" factory="Enumerated" class="oneit.business.content.ArticleTemplate" value="INTERNAL_LINK"/>
</ormAttributeChanges>
<content factory="Map"> <NODE name="Body" factory="Map">
<NODE name="Content" factory="String"><![CDATA[<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<link type="text/css" rel="stylesheet" href="css/cms_style.css">
</head>
<body class="CMS_GENERIC_EDITOR CMS_${oneit.Template} CMS_${oneit.Template}_${oneit.ContentType} CMS_${oneit.ContentType}">
<p>This is some content that should sit within the Home page.</p>
<br>
</body>
</html>
]]></NODE>
<NODE name="TransformedContent" factory="String"><![CDATA[<p>This is some content that should sit within the Home page.</p>
<br>
]]></NODE>
<NODE name="IncludeContent" factory="Boolean" value="true"/>
</NODE>
<NODE name="Synopsis" factory="Map">
<NODE name="Content" factory="String"><![CDATA[
<html>
<head>
<meta name='author' content='Cougar Content by 1iT www.1it.com.au'>
<link href="css/cms_style.css" rel="stylesheet" type="text/css">
</head>
<body>
<p>
</p>
<br>
</body>
</html>
]]></NODE>
<NODE name="IncludeContent" factory="Boolean" value="true"/>
</NODE>
</content>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
......@@ -114,7 +114,7 @@
Candidate candidate = jobApplication.getCandidate();
String appID = "app-id-" + jobApplication.getID().toString();
Map<FactorClass, Double> roleScoreMap = AnalysisEngine.getRoleFitSuitability(candidate, job.getLevel());
Map<FactorClass, Double> roleScoreMap = (Map<FactorClass, Double>)jobApplication.getRoleFit();
%>
<div class="<%= "appl-c-box " + (i == 0 ? " cb-one" : "")%> ">
<!--TODO: need to work on the logic. just added to demonstrate that there are 3 different colors for this-->
......@@ -135,14 +135,14 @@
<div class="overall-suitablity grid-suitability">
<!--TODO: need to work on the logic. just added to demonstrate that there are 3 different colors for this-->
<div class="<%= "over-all " + (i == 0 ? "f-60 green" : (i < 3 ? "blue" : "gray"))%>">
<oneit:toString value="<%= jobApplication.getOverallSuitability() %>" mode="Integer" />
<oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div>
<div class="<%= "overall " + (i == 0 ? "f-60" : "")%>">overall rank</div>
</div>
<div class="jcc-box">
<div class="job-match jcc">
<img src="images/app-job-match-icon.svg"> Role fit
<span><oneit:toString value="<%= jobApplication.getJobMatchPercentage() %>" mode="TwoDPDouble" /></span>
<span><oneit:toString value="<%= jobApplication.getRoleFitScore() %>" mode="TwoDPDouble" /></span>
</div>
<div class="detail-box">
<%
......@@ -168,13 +168,13 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getCulturePercentage() %>" mode="WholeNumber" />
<oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="WholeNumber" />
</oneit:button>
</span>
</div>
<div class="detail-box">
<%
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job);
Map<CultureClass, Long> cultureFitData = (Map<CultureClass, Long>)jobApplication.getCultureFit();
for(CultureClass cClass: cultureFitData.keySet())
{
......@@ -202,13 +202,13 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getCriteriaPercentage() %>" mode="WholeNumber" />
<oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="WholeNumber" />
</oneit:button>
</span>
</div>
<div class="detail-box">
<%
Map<Importance, Long> requirementFitData = AnalysisEngine.getRequirementFit(jobApplication.getAssessmentCriteriaAnswersSet());
Map<Importance, Long> requirementFitData = (Map<Importance, Long>)jobApplication.getRequirementFit();
for(Importance importance: requirementFitData.keySet())
{
......
......@@ -134,7 +134,7 @@
<div class="overall-suitablity">
<div class="<%= "overall " + (index == 0 ? "f-60" : "")%>">overall rank</div>
<div class="<%= "over-all " + (index == 0 ? "f-60 green" : (index < 3 ? "blue" : "gray"))%> ">
<oneit:toString value="<%= jobApplication.getOverallSuitability() %>" mode="Integer" />
<oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div>
</div>
<div class="jcc-box">
......@@ -145,7 +145,7 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getJobMatchPercentage() %>" mode="TwoDPDouble" />
<oneit:toString value="<%= jobApplication.getRoleFitScore() %>" mode="TwoDPDouble" />
</oneit:button>
</span>
</div>
......@@ -156,7 +156,7 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getCulturePercentage() %>" mode="WholeNumber" />
<oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="WholeNumber" />
</oneit:button>
</span>
</div>
......@@ -171,7 +171,7 @@
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", applicationPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>">
<oneit:toString value="<%= jobApplication.getCriteriaPercentage() %>" mode="WholeNumber" />
<oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="WholeNumber" />
</oneit:button>
</span>
</div>
......
......@@ -27,7 +27,18 @@
<script type="text/javascript">
$(document).ready(function()
{
$('.percent-green').percentageLoader({
$('.percent-role').percentageLoader({
valElement: 'p',
strokeWidth: 20,
bgColor: '#e5e8eb',
ringColor: '#67b413',
textColor: '#67b413',
fontSize: '30px',
fontWeight: 'normal',
showPercent: false
});
$('.percent-culture').percentageLoader({
valElement: 'p',
strokeWidth: 20,
bgColor: '#e5e8eb',
......@@ -37,7 +48,7 @@
fontWeight: 'normal'
});
$('.percent-blue').percentageLoader({
$('.percent-req').percentageLoader({
valElement: 'p',
strokeWidth: 20,
bgColor: '#e5e8eb',
......@@ -51,12 +62,14 @@
<oneit:form name="jobApplication" method="post" enctype="multipart/form-data">
<div class="dashboard-content-area first-part">
<div class="dashboard-content-area">
<div class="first-part">
<oneit:dynInclude page="/extensions/adminportal/inc/job_title_bar.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
</div>
<div class="dashboard-content-area second-part v-applicant-area">
<div class="second-part v-applicant-area">
<oneit:dynInclude page="/extensions/adminportal/inc/view_application_tab_applicant.jsp" data="<%= CollectionUtils.EMPTY_MAP %>"/>
</div>
</div>
</oneit:form>
</oneit:dynIncluded>
\ No newline at end of file
......@@ -121,11 +121,7 @@
%>
</div>
<p>
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Aenean
semper at magna a tristique. Ut ut
magna ut mauris sagittis placerat.
Suspendisse vitae tempus sem.
We'll ask you if you have certain skills, qualifications, knowledge, or experience that are somehow important to do this job.
</p>
</div>
<%
......@@ -153,11 +149,9 @@
%>
</div>
<p>
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Aenean
semper at magna a tristique. Ut ut
magna ut mauris sagittis placerat.
Suspendisse vitae tempus sem.
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"%>">
......@@ -182,11 +176,9 @@
%>
</div>
<p>
Lorem ipsum dolor sit amet,
consectetur adipiscing elit. Aenean
semper at magna a tristique. Ut ut
magna ut mauris sagittis placerat.
Suspendisse vitae tempus sem.
Each of us has preferences and beliefs - and motivations - about the work that we do or seek.
It's not really about what we're good at doing, but what's right for us... what "fits".
Just like with the workplace preferences questionnaire, there are no right or wrong answers, so please choose what best fits you.
</p>
</div>
</div>
......
......@@ -23,6 +23,8 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge"></meta>
<meta name="viewport" content="width=device-width, initial-scale=1"></meta>
<title><%= job != null ? job.getPageTitle() : "Talentology" %></title>
<%@include file="/hotjar.jsp" %>
<%@include file="/heapAnalysis.jsp" %>
</head>
<body>
......@@ -20,7 +20,7 @@
if(totalQuestions == null)
{
totalQuestions = Arrays.asList(Question.searchAll(transaction));
totalQuestions = job.getAllQuestions();
process.setAttribute("TotalQuestions", totalQuestions);
}
......@@ -143,8 +143,8 @@
<p>Using the scale given, indicate how important to you are the following aspects in your work life. Use the following system:</p>
<ul class="security-level">
<li><span>1</span> means of very little importance to you</li>
<li><span><oneit:toString value="<%= maxRating %>" mode="EscapeHTML"/></span> means about average in importance to you</li>
<li><span><oneit:toString value="<%= midRating %>" mode="EscapeHTML"/></span> means of high importance to you</li>
<li><span><oneit:toString value="<%= midRating %>" mode="EscapeHTML"/></span> means about average in importance to you</li>
<li><span><oneit:toString value="<%= maxRating %>" mode="EscapeHTML"/></span> means of high importance to you</li>
</ul>
<p>Use the other numbers (<oneit:toString value="<%= otherRating %>" mode="EscapeHTML"/>) to indicate in-between levels of importance to you.</p>
</div>
......
......@@ -2,3 +2,4 @@
#completeCulture = Please complete the culture assessment.
#emailExists = An account already exists with this email address.
#emailSent = A verification email has been sent to you. Please check your email :).
#alreadyApplied = You have already applied for this job.
......@@ -78,9 +78,7 @@
<div class="section-page-area">
<div class="main-sc-section">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean semper at magna a
tristique. Ut ut magna ut mauris sagittis placerat. Suspendisse vitae tempus sem. Lorem
ipsum dolor sit amet, consectetur adipiscing elit.
We'll ask you if you have certain skills, qualifications, knowledge, or experience that are somehow important to do this job.
</p>
</div>
<%
......
......@@ -21,10 +21,12 @@
String socialLoginNextPage = nextPage + "&JobID=" + job.getID().toString();
%>
<script type="text/javascript">
var interval;
$(document.body).addClass('bg-color');
$(document).ready(function() {
recalcFunction = setupRecalc ($("#applyJob"), {'recalcOnError':true});
interval = setInterval(function() { validate(); }, 500);
$('#applyJob').on('keyup keypress', function(e) {
var keyCode = e.keyCode || e.which;
......@@ -33,19 +35,32 @@
return false;
}
});
validate();
$('input[type="password"]').keyup(function() {
validate();
});
$('input[type="text"]').keyup(function() {
$(this).change();
});
});
function validate() {
if($('input[type="password"]').val() != '') {
$('.sign-in-btn').removeAttr('disabled');
} else {
var empty = false;
$('input[type="password"]').each(function() {
if ($( this ).val() == '') {
empty = true;
if ($( this ).css('background-color') == 'rgb(250, 255, 189)') {
empty = false;
}
}
});
if (empty) {
$('.sign-in-btn').attr('disabled', 'disabled');
} else {
$('.sign-in-btn').removeAttr('disabled');
clearInterval(interval);
}
}
</script>
......@@ -130,7 +145,7 @@
<div class="form-group text-left" id="email-div">
<label>Email Address</label>
<oneit:ormInput obj="<%= job %>" type="text" attributeName="Email" cssClass="form-control second-style" style="text-transform: lowercase"/>
<oneit:ormInput obj="<%= job %>" type="text" attributeName="Email" cssClass="form-control second-style" style="text-transform: lowercase" autocomplete="off"/>
<oneit:recalcClass htmlTag="div" classScript="job.isEmailFound() ? 'show': 'hide'" job="<%= job %>" class="right-mark">
<span id="right-mark"><img src="images/right-mark.svg"/></span>
</oneit:recalcClass>
......@@ -156,6 +171,9 @@
<oneit:recalcClass htmlTag="div" classScript="job.getEmail()==null || job.isEmailFound() ? 'hide': 'show'" job="<%= job %>">
<div class="form-group">
<p>We don't recognize that email address yet, so we'll send a link so that you can create an account.</p>
</div>
<div class="form-group">
<oneit:button value="Send link" name="sendVerificationMail" cssClass="box-btn send-link-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", currentPage)
.mapEntry("Job",job)
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS xmlns:oneit="http://www.1iT.com.au" name="">
<NODE factory="Vector" name="Script">
<NODE class="oneit.appservices.upgrade.cms.CMSArticleUpdateOperation" factory="Participant" name="Account Verification Mail">
<createSpecificIdentifier factory='String' value='I90Q26LQURCWXZZFP21EWM3EHUGXTJ'/>
<articleIdentifiers factory="Array" class="java.lang.String">
<NODE factory="String" value="I90Q26LQURCWXZZFP21EWM3EHUGXTJ"/>
</articleIdentifiers>
<createdLabel factory="String" value="I90Q26LQURCWXZZFP21EWM3EHUGXTJ"/>
<newParentCategory factory="String" value="RESOURCE_LIBRARY"/>
<articleAttributeChanges factory="Map">
<NODE name="EmailTo" factory="Null"/>
<NODE name="EmailFrom" factory="String" value="info@talentology.com.au"/>
<NODE name="EmailSubject" factory="String" value="Verify your email"/>
<NODE name="Shortcuts" factory="String" value="AccountVerificationMail"/>
<NODE name="EmailCC" factory="Null"/>
<NODE name="EmailBCC" factory="Null"/>
</articleAttributeChanges>
<ormAttributeChanges factory="Map">
<NODE name="PublishDate" factory="Date" value="2016-02-05 00:00:00"/>
<NODE name="WithdrawDate" factory="Date" value="2066-02-05 16:00:00"/>
<NODE name="Title" factory="String" value="Account Verification Mail"/>
<NODE name="ShortTitle" factory="String" value="Reset Code Email"/>
<NODE name="SortOrder" factory="Integer" value="-200926"/>
<NODE name="Type" factory="Enumerated" class="oneit.business.content.ArticleType" value="ARTICLE"/>
<NODE name="Template" factory="Enumerated" class="oneit.business.content.ArticleTemplate" value="EMAIL_TEMPLATE"/>
</ormAttributeChanges>
<content factory="Map">
<NODE name="EmailBody" factory="Map">
<NODE name="Content" factory="String"><![CDATA[<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="HTML Tidy, see www.w3.org" name="generator">
<title></title>
</head>
<body>
<p>Welcome to Talentology! Your account has been created.</p>
<p>To verify your account, please <a href="${link}">click here</a>.</p>
<p>Thanks :)</p>
</body>
</html>
]]></NODE>
<NODE name="TransformedContent" factory="String"><![CDATA[<p>Welcome to Talentology! Your account has been created.</p><p>To verify your account, please <a href="${link}">click here</a>.</p><p>Thanks :)</p>
]]></NODE>
<NODE name="IncludeContent" factory="Boolean" value="true"/>
</NODE>
<NODE name="" factory="Map">
<NODE name="Content" factory="String"><![CDATA[
<p></p>
]]></NODE>
<NODE name="IncludeContent" factory="Boolean" value="true"/>
</NODE>
</content>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
......@@ -48,6 +48,7 @@
if(isVerify && (job==null || secUser==null))
{
response.sendRedirect(WebUtils.getSamePageInRenderMode(request, "AuthError"));
return; //Else it will continue execution and throws NPE.
}
if(secUser==null)
......@@ -143,6 +144,16 @@
<label>Confirm password</label>
<oneit:ormInput obj="<%= job %>" type="password" attributeName="ConfirmPassword" cssClass="form-control second-style reset-pw " required="true"/>
</div>
<div class="form-group text-left">
<p>
Your password must:
<ul>
<li>* begin with a letter of the alphabet</li>
<li>* include at least one number</li>
<li>* not include any spaces or special characters.</li>
</ul>
</p>
</div>
<%
}
%>
......
......@@ -89,7 +89,7 @@
<div class="section-c-title m-hide">
Culture
<span class="estimated-time">Estimated time to complete:
<span class="estimated-time-20">&nbsp;20 mins</span>
<span class="estimated-time-20">&nbsp;5 mins</span>
</span>
</div>
<div class="section-tab-view">
......@@ -103,9 +103,9 @@
<div class="section-page-area">
<div class="main-sc-section">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean semper at magna a
tristique. Ut ut magna ut mauris sagittis placerat. Suspendisse vitae tempus sem. Lorem
ipsum dolor sit amet, consectetur adipiscing elit.
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="selection-br-line"></div>
......
Add "heap.analysis.id" to keyfile properties.
\ 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="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_job_application" indexName="idx_tl_job_application_CandidateJob" isUnique="true"><column name="candidate_id"/><column name="job_id"/></NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
<script>
var heapAnalysisID = "<%= Utils.HEAP_ANALYSIS_ID %>"
</script>
<oneit:script>
<oneit:script src="/scripts/heapAnalysis.js"/>
</oneit:script>
\ No newline at end of file
<oneit:script>
<oneit:script src="/scripts/hotjar.js"/>
</oneit:script>
\ No newline at end of file
window.heap = window.heap || [], heap.load = function(e, t){window.heap.appid = e, window.heap.config = t = t || {}; var r = t.forceSSL || "https:" === document.location.protocol, a = document.createElement("script"); a.type = "text/javascript", a.async = !0, a.src = (r?"https:":"http:") + "//cdn.heapanalytics.com/js/heap-" + e + ".js"; var n = document.getElementsByTagName("script")[0]; n.parentNode.insertBefore(a, n); for (var o = function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments, 0)))}}, p = ["addEventProperties", "addUserProperties", "clearEventProperties", "identify", "removeEventProperty", "setEventProperties", "track", "unsetEventProperty"], c = 0; c < p.length; c++)heap[p[c]] = o(p[c])};
heap.load(heapAnalysisID);
\ No newline at end of file
//Hotjar Tracking Code for www.talentology.com
(function (h, o, t, j, a, r) {
h.hj = h.hj || function () {
(h.hj.q = h.hj.q || []).push(arguments)
};
h._hjSettings = {hjid: 598700, hjsv: 5};
a = o.getElementsByTagName('head')[0];
r = o.createElement('script');
r.async = 1;
r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;
a.appendChild(r);
})(window, document, '//static.hotjar.com/c/hotjar-', '.js?sv=');
\ No newline at end of file
!function(a){a.fn.percentageLoader=function(b){this.each(function(){function q(){p.customAttributes.arc=function(a,b,c){var h,d=360/b*a,e=(90-d)*Math.PI/180,f=j+c*Math.cos(e),g=k-c*Math.sin(e);return h=b==a?[["M",j,k-c],["A",c,c,0,1,1,j-.01,k-c]]:[["M",j,k-c],["A",c,c,0,+(d>180),1,f,g]],{path:h}},p.path().attr({arc:[100,100,l],"stroke-width":d.strokeWidth,stroke:d.bgColor}),e&&(m=p.path().attr({arc:[.01,100,l],"stroke-width":d.strokeWidth,stroke:d.ringColor,cursor:"pointer"}),r(e,100,l,m,2)),n=p.text(j,k,e+"%").attr({font:d.fontWeight+" "+d.fontSize+" Arial",fill:d.textColor})}function r(a,b,c,d){f?d.animate({arc:[a,b,c]},900,">"):a&&a!=b?d.animate({arc:[a,b,c]},750,"elastic"):(a=b,d.animate({arc:[a,b,c]},750,"bounce",function(){d.attr({arc:[0,b,c]})}))}var c=a(this),d=a.extend({},a.fn.percentageLoader.defaultConfig,b),e=parseInt(c.children(d.valElement).text()),f=!0,h=parseInt(c.css("width")),i=parseInt(c.css("height")),j=h/2,k=i/2,l=j-d.strokeWidth/2,m=null,n=null,p=Raphael(this,h,i);q()})},a.fn.percentageLoader.defaultConfig={valElement:"p",strokeWidth:20,bgColor:"#d9d9d9",ringColor:"#d53f3f",textColor:"#9a9a9a",fontSize:"12px",fontWeight:"normal"}}(jQuery);
\ No newline at end of file
!function(a){a.fn.percentageLoader=function(b){this.each(function(){function q(){p.customAttributes.arc=function(a,b,c){var h,d=360/b*a,e=(90-d)*Math.PI/180,f=j+c*Math.cos(e),g=k-c*Math.sin(e);return h=b==a?[["M",j,k-c],["A",c,c,0,1,1,j-.01,k-c]]:[["M",j,k-c],["A",c,c,0,+(d>180),1,f,g]],{path:h}},p.path().attr({arc:[100,100,l],"stroke-width":d.strokeWidth,stroke:d.bgColor}),e&&(m=p.path().attr({arc:[.01,100,l],"stroke-width":d.strokeWidth,stroke:d.ringColor,cursor:"pointer"}),r(e,100,l,m,2)),n=p.text(j,k,e+(d.showPercent ? "%" : "")).attr({font:d.fontWeight+" "+d.fontSize+" Arial",fill:d.textColor})}function r(a,b,c,d){f?d.animate({arc:[a,b,c]},900,">"):a&&a!=b?d.animate({arc:[a,b,c]},750,"elastic"):(a=b,d.animate({arc:[a,b,c]},750,"bounce",function(){d.attr({arc:[0,b,c]})}))}var c=a(this),d=a.extend({},a.fn.percentageLoader.defaultConfig,b),e=parseInt(c.children(d.valElement).text()),f=!0,h=parseInt(c.css("width")),i=parseInt(c.css("height")),j=h/2,k=i/2,l=j-d.strokeWidth/2,m=null,n=null,p=Raphael(this,h,i);q()})},a.fn.percentageLoader.defaultConfig={valElement:"p",strokeWidth:20,bgColor:"#d9d9d9",ringColor:"#d53f3f",textColor:"#9a9a9a",fontSize:"12px",fontWeight:"normal",showPercent: true}}(jQuery);
\ No newline at end of file
......@@ -12,7 +12,7 @@
# should be different from the dev build
#
build.target.dir=${dir.root}/Build/Target/PerformaInvestments
keywebapp.deploy=/misc/PerformaInvestments/webapps/ROOT
keywebapp.deploy=/misc/talentology/webapps/ROOT
keywebapp.target=${dir.root}/Deploy/Target/PerformaInvestments/webapps/ROOT
......@@ -43,5 +43,9 @@ app.deploy.dir=${keywebapp.deploy}/WEB-INF/apps
#
cd.deploy.dir=${dir.root}/Deploy/PerformaInvestments/CD_image
key.file=${config.deploy.dir}/thor.keyfile.properties
key.file=${config.deploy.dir}/production.keyfile.properties
rsync.user=1itupdate
rsync.server=54.153.249.224
tctransform.version=55
rsync.port=40022
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