Commit e0af020b by nilu

S35705423 # Client - Incoming Issues (raised by Client) #Error: "A value for…

S35705423 # Client - Incoming Issues (raised by Client) #Error: "A value for UserName already exists"
parent e17e0319
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<column name="google_address_text" type="String" nullable="true" length="300"/> <column name="google_address_text" type="String" nullable="true" length="300"/>
<column name="prefer_remote" type="Boolean" nullable="true"/> <column name="prefer_remote" type="Boolean" nullable="true"/>
<column name="happy_to_relocate" type="Boolean" nullable="true"/> <column name="happy_to_relocate" type="Boolean" nullable="true"/>
<column name="is_email_ingest" type="Boolean" nullable="true"/>
<column name="candidate_id" type="Long" length="11" nullable="false"/> <column name="candidate_id" type="Long" length="11" nullable="false"/>
<column name="job_id" type="Long" length="11" nullable="false"/> <column name="job_id" type="Long" length="11" nullable="false"/>
</NODE> </NODE>
......
...@@ -15,6 +15,7 @@ CREATE TABLE tl_job_application ( ...@@ -15,6 +15,7 @@ CREATE TABLE tl_job_application (
google_address_text varchar(300) NULL, google_address_text varchar(300) NULL,
prefer_remote char(1) NULL, prefer_remote char(1) NULL,
happy_to_relocate char(1) NULL, happy_to_relocate char(1) NULL,
is_email_ingest char(1) NULL,
candidate_id numeric(12) NOT NULL, candidate_id numeric(12) NOT NULL,
job_id numeric(12) NOT NULL job_id numeric(12) NOT NULL
); );
......
...@@ -16,6 +16,7 @@ CREATE TABLE tl_job_application ( ...@@ -16,6 +16,7 @@ CREATE TABLE tl_job_application (
google_address_text varchar2(300) NULL, google_address_text varchar2(300) NULL,
prefer_remote char(1) NULL, prefer_remote char(1) NULL,
happy_to_relocate char(1) NULL, happy_to_relocate char(1) NULL,
is_email_ingest char(1) NULL,
candidate_id number(12) NOT NULL, candidate_id number(12) NOT NULL,
job_id number(12) NOT NULL job_id number(12) NOT NULL
); );
......
...@@ -16,6 +16,7 @@ CREATE TABLE tl_job_application ( ...@@ -16,6 +16,7 @@ CREATE TABLE tl_job_application (
google_address_text varchar(300) NULL, google_address_text varchar(300) NULL,
prefer_remote char(1) NULL, prefer_remote char(1) NULL,
happy_to_relocate char(1) NULL, happy_to_relocate char(1) NULL,
is_email_ingest char(1) NULL,
candidate_id numeric(12) NOT NULL, candidate_id numeric(12) NOT NULL,
job_id numeric(12) NOT NULL job_id numeric(12) NOT NULL
); );
......
package performa.form;
import java.util.Map;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.security.SecUser;
import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult;
import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException;
import oneit.utils.CollectionUtils;
import oneit.utils.Debug;
import oneit.utils.MultiException;
import oneit.utils.RandomStringGen;
import oneit.utils.StringUtils;
import performa.orm.Candidate;
import performa.orm.Job;
import performa.orm.JobApplication;
import performa.utils.Utils;
import javax.servlet.http.HttpServletRequest;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea;
import oneit.servlets.security.SessionSecUserDecorator;
public class IdentifyMaskedUserFP extends SaveFP
{
private static final LoggingArea LOG = LoggingArea.createLoggingArea("IdentifyMaskedUserFP");
@Override
public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException
{
HttpServletRequest request = submission.getRequest();
Job job = (Job) request.getAttribute("Job");
Debug.assertion(job != null, "BO not avaialble");
Candidate candidate = (Candidate) request.getAttribute("Candidate");
SecUser secUser = candidate.getUser();
BusinessObjectParser.assertFieldCondition(secUser.getEmail() != null , job, Job.FIELD_Email, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(StringUtils.isEmailAddress(secUser.getEmail()), job, Job.FIELD_Email, "invalid", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(secUser.getFirstName() != null, secUser, SecUser.FIELD_FirstName, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(secUser.getLastName() != null, secUser, SecUser.FIELD_LastName, "mandatory", exceptions, true, request);
if(candidate.isEmailFound())
{
String password = (String) request.getParameter("password");
BusinessObjectParser.assertFieldCondition(password != null, secUser, SecUser.FIELD_Password, "mandatory", exceptions, true, request);
}
super.validate(process, submission, exceptions, params);
}
@Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{
HttpServletRequest request = submission.getRequest();
ObjectTransaction objTran = process.getTransaction();
Candidate candidate = (Candidate) request.getAttribute("Candidate");
JobApplication jobApplication = (JobApplication) request.getAttribute("JobApplication");
String password = (String) request.getParameter("password");
Job job = (Job) request.getAttribute("Job");
LogMgr.log(LOG, LogLevel.PROCESSING1, "Started IdentifyMaskedUserFP", candidate);
if(candidate.isTrue(candidate.getIsEmailIngest()) && candidate.isTrue(candidate.getIsMaskedEmail()))
{
SecUser old = (SecUser) candidate.getUser().getEarliestBackup();
String userEmail = candidate.getUser().getEmail();
if(CollectionUtils.equals(old.getEmail(), candidate.getUser().getEmail()))
{
throw new BusinessException("Please enter a valid email address");
}
if(Utils.emailExists(objTran, userEmail))
{
LogMgr.log(LOG, LogLevel.PROCESSING1, "User account already exists with the entered email", candidate, "email: " , userEmail);
if(Utils.isCompanyUserEmailFound(objTran, userEmail))
{
throw new BusinessException("This email address is already in use by a Hiring Team account.");
}
SecUser newUser = candidate.getUser();
SecUser existingUser = SecUser.searchNAME(objTran, userEmail);
Candidate existingCandidate = existingUser.getExtension(Candidate.REFERENCE_Candidate);
if(!existingUser.checkPassword(password))
{
throw new BusinessException("Invalid Password. Please try again");
}
try
{
//Ideally should be managed with uniqueGroup, but uniqueGroup doesnt work without atleast 1 attribute
JobApplication.searchCandidateJob(process.getTransaction(), candidate, job); //It will throw RuntimeException when more than 1 record found.
}
catch(RuntimeException ex)
{
throw new BusinessException("You have already applied for this job.");
}
jobApplication.setCandidate(existingCandidate);
existingUser.setFirstName(newUser.getFirstName());
existingUser.setLastName(newUser.getLastName());
existingCandidate.setKnownAsAlias(old.getEmail());
candidate.delete();
newUser.delete();
request.getSession().setAttribute (SecUser.SEC_USER_ID, existingUser);
request.getSession().setAttribute (SessionSecUserDecorator.REFRESH_SECURITY, Boolean.TRUE);
}
else
{
//set new verification key as email changed
candidate.setVerificationKey(new RandomStringGen().generateAlphaNum(6));
candidate.getUser().setUserName(candidate.getUser().getEmail());
candidate.setIsMaskedEmail(false);
candidate.setKnownAsAlias(old.getEmail());
}
}
LogMgr.log(LOG, LogLevel.PROCESSING1, "Finish IdentifyMaskedUserFP");
return super.processForm(process, submission, params);
}
}
...@@ -130,25 +130,9 @@ public class SendVerificationMailFP extends SaveFP ...@@ -130,25 +130,9 @@ public class SendVerificationMailFP extends SaveFP
} }
else else
{ {
if(candidate.isTrue(candidate.getIsEmailIngest())) if(candidate.isTrue(candidate.getIsEmailIngest()) || jobApplication.getApplicationStatus() == ApplicationStatus.POST_INGEST)
{ {
if(candidate.isTrue(candidate.getIsMaskedEmail())) if(candidate.isFalse(candidate.getIsMaskedEmail()))
{
SecUser old = (SecUser) candidate.getUser().getEarliestBackup();
if(CollectionUtils.equals(old.getEmail(), candidate.getUser().getEmail()))
{
throw new BusinessException("Please enter a valid email address");
}
//set new verification key as email changed
candidate.setVerificationKey(new RandomStringGen().generateAlphaNum(6));
candidate.getUser().setUserName(candidate.getUser().getEmail());
candidate.setIsMaskedEmail(false);
candidate.setKnownAsAlias(old.getEmail());
}
else
{ {
candidate.setIsAccountVerified(true); candidate.setIsAccountVerified(true);
} }
......
...@@ -47,6 +47,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -47,6 +47,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public static final String FIELD_GoogleAddressText = "GoogleAddressText"; public static final String FIELD_GoogleAddressText = "GoogleAddressText";
public static final String FIELD_PreferRemote = "PreferRemote"; public static final String FIELD_PreferRemote = "PreferRemote";
public static final String FIELD_HappyToRelocate = "HappyToRelocate"; public static final String FIELD_HappyToRelocate = "HappyToRelocate";
public static final String FIELD_IsEmailIngest = "IsEmailIngest";
public static final String FIELD_AppProcessOption = "AppProcessOption"; public static final String FIELD_AppProcessOption = "AppProcessOption";
public static final String FIELD_OverallRank = "OverallRank"; public static final String FIELD_OverallRank = "OverallRank";
public static final String FIELD_RoleFit = "RoleFit"; public static final String FIELD_RoleFit = "RoleFit";
...@@ -82,6 +83,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -82,6 +83,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private static final DefaultAttributeHelper<JobApplication> HELPER_GoogleAddressText = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<JobApplication> HELPER_GoogleAddressText = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<JobApplication> HELPER_PreferRemote = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<JobApplication> HELPER_PreferRemote = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<JobApplication> HELPER_HappyToRelocate = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<JobApplication> HELPER_HappyToRelocate = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<JobApplication> HELPER_IsEmailIngest = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<JobApplication, AppProcessOption> HELPER_AppProcessOption = new EnumeratedAttributeHelper<JobApplication, AppProcessOption> (AppProcessOption.FACTORY_AppProcessOption); private static final EnumeratedAttributeHelper<JobApplication, AppProcessOption> HELPER_AppProcessOption = new EnumeratedAttributeHelper<JobApplication, AppProcessOption> (AppProcessOption.FACTORY_AppProcessOption);
private static final DefaultAttributeHelper<JobApplication> HELPER_OverallRank = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper<JobApplication> HELPER_OverallRank = DefaultAttributeHelper.INSTANCE;
private static final BLOBAttributeHelper HELPER_RoleFit = BLOBAttributeHelper.INSTANCE; private static final BLOBAttributeHelper HELPER_RoleFit = BLOBAttributeHelper.INSTANCE;
...@@ -99,6 +101,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -99,6 +101,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private String _GoogleAddressText; private String _GoogleAddressText;
private Boolean _PreferRemote; private Boolean _PreferRemote;
private Boolean _HappyToRelocate; private Boolean _HappyToRelocate;
private Boolean _IsEmailIngest;
private AppProcessOption _AppProcessOption; private AppProcessOption _AppProcessOption;
private Integer _OverallRank; private Integer _OverallRank;
private Map _RoleFit; private Map _RoleFit;
...@@ -139,6 +142,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -139,6 +142,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private static final AttributeValidator[] FIELD_GoogleAddressText_Validators; private static final AttributeValidator[] FIELD_GoogleAddressText_Validators;
private static final AttributeValidator[] FIELD_PreferRemote_Validators; private static final AttributeValidator[] FIELD_PreferRemote_Validators;
private static final AttributeValidator[] FIELD_HappyToRelocate_Validators; private static final AttributeValidator[] FIELD_HappyToRelocate_Validators;
private static final AttributeValidator[] FIELD_IsEmailIngest_Validators;
// Arrays of behaviour decorators // Arrays of behaviour decorators
...@@ -179,6 +183,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -179,6 +183,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
FIELD_GoogleAddressText_Validators = (AttributeValidator[])setupAttribMetaData_GoogleAddressText(validatorMapping).toArray (new AttributeValidator[0]); FIELD_GoogleAddressText_Validators = (AttributeValidator[])setupAttribMetaData_GoogleAddressText(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_PreferRemote_Validators = (AttributeValidator[])setupAttribMetaData_PreferRemote(validatorMapping).toArray (new AttributeValidator[0]); FIELD_PreferRemote_Validators = (AttributeValidator[])setupAttribMetaData_PreferRemote(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_HappyToRelocate_Validators = (AttributeValidator[])setupAttribMetaData_HappyToRelocate(validatorMapping).toArray (new AttributeValidator[0]); FIELD_HappyToRelocate_Validators = (AttributeValidator[])setupAttribMetaData_HappyToRelocate(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_IsEmailIngest_Validators = (AttributeValidator[])setupAttribMetaData_IsEmailIngest(validatorMapping).toArray (new AttributeValidator[0]);
REFERENCE_JobApplication.initialiseReference (); REFERENCE_JobApplication.initialiseReference ();
...@@ -561,6 +566,25 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -561,6 +566,25 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return validators; return validators;
} }
// Meta Info setup
private static List setupAttribMetaData_IsEmailIngest(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "is_email_ingest");
metaInfo.put ("defaultValue", "Boolean.FALSE");
metaInfo.put ("name", "IsEmailIngest");
metaInfo.put ("type", "Boolean");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.IsEmailIngest:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_IsEmailIngest, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "IsEmailIngest", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.IsEmailIngest:", validators);
return validators;
}
// END OF STATIC METADATA DEFINITION // END OF STATIC METADATA DEFINITION
...@@ -595,6 +619,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -595,6 +619,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_GoogleAddressText = (String)(HELPER_GoogleAddressText.initialise (_GoogleAddressText)); _GoogleAddressText = (String)(HELPER_GoogleAddressText.initialise (_GoogleAddressText));
_PreferRemote = (Boolean)(Boolean.FALSE); _PreferRemote = (Boolean)(Boolean.FALSE);
_HappyToRelocate = (Boolean)(HELPER_HappyToRelocate.initialise (_HappyToRelocate)); _HappyToRelocate = (Boolean)(HELPER_HappyToRelocate.initialise (_HappyToRelocate));
_IsEmailIngest = (Boolean)(Boolean.FALSE);
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption)); _AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.initialise (_AppProcessOption));
_OverallRank = (Integer)(HELPER_OverallRank.initialise (_OverallRank)); _OverallRank = (Integer)(HELPER_OverallRank.initialise (_OverallRank));
_RoleFit = (Map)(HELPER_RoleFit.initialise (_RoleFit)); _RoleFit = (Map)(HELPER_RoleFit.initialise (_RoleFit));
...@@ -1328,6 +1353,104 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -1328,6 +1353,104 @@ public abstract class BaseJobApplication extends BaseBusinessClass
} }
/** /**
* Get the attribute IsEmailIngest
*/
public Boolean getIsEmailIngest ()
{
assertValid();
Boolean valToReturn = _IsEmailIngest;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getIsEmailIngest ((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 preIsEmailIngestChange (Boolean newIsEmailIngest) 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 postIsEmailIngestChange () throws FieldException
{
}
public FieldWriteability getWriteability_IsEmailIngest ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute IsEmailIngest. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setIsEmailIngest (Boolean newIsEmailIngest) throws FieldException
{
boolean oldAndNewIdentical = HELPER_IsEmailIngest.compare (_IsEmailIngest, newIsEmailIngest);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newIsEmailIngest = bhd.setIsEmailIngest ((JobApplication)this, newIsEmailIngest);
oldAndNewIdentical = HELPER_IsEmailIngest.compare (_IsEmailIngest, newIsEmailIngest);
}
if (FIELD_IsEmailIngest_Validators.length > 0)
{
Object newIsEmailIngestObj = HELPER_IsEmailIngest.toObject (newIsEmailIngest);
if (newIsEmailIngestObj != null)
{
int loopMax = FIELD_IsEmailIngest_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_IsEmailIngest);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_IsEmailIngest_Validators[v].checkAttribute (this, FIELD_IsEmailIngest, metadata, newIsEmailIngestObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_IsEmailIngest () != FieldWriteability.FALSE, "Field IsEmailIngest is not writeable");
preIsEmailIngestChange (newIsEmailIngest);
markFieldChange (FIELD_IsEmailIngest);
_IsEmailIngest = newIsEmailIngest;
postFieldChange (FIELD_IsEmailIngest);
postIsEmailIngestChange ();
}
}
/**
* Get the attribute AppProcessOption * Get the attribute AppProcessOption
*/ */
public AppProcessOption getAppProcessOption () public AppProcessOption getAppProcessOption ()
...@@ -3161,6 +3284,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3161,6 +3284,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
tl_job_applicationPSet.setAttrib (FIELD_GoogleAddressText, HELPER_GoogleAddressText.toObject (_GoogleAddressText)); // tl_job_applicationPSet.setAttrib (FIELD_GoogleAddressText, HELPER_GoogleAddressText.toObject (_GoogleAddressText)); //
tl_job_applicationPSet.setAttrib (FIELD_PreferRemote, HELPER_PreferRemote.toObject (_PreferRemote)); // tl_job_applicationPSet.setAttrib (FIELD_PreferRemote, HELPER_PreferRemote.toObject (_PreferRemote)); //
tl_job_applicationPSet.setAttrib (FIELD_HappyToRelocate, HELPER_HappyToRelocate.toObject (_HappyToRelocate)); // tl_job_applicationPSet.setAttrib (FIELD_HappyToRelocate, HELPER_HappyToRelocate.toObject (_HappyToRelocate)); //
tl_job_applicationPSet.setAttrib (FIELD_IsEmailIngest, HELPER_IsEmailIngest.toObject (_IsEmailIngest)); //
_Candidate.getPersistentSets (allSets); _Candidate.getPersistentSets (allSets);
_Job.getPersistentSets (allSets); _Job.getPersistentSets (allSets);
...@@ -3184,6 +3308,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3184,6 +3308,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_GoogleAddressText = (String)(HELPER_GoogleAddressText.fromObject (_GoogleAddressText, tl_job_applicationPSet.getAttrib (FIELD_GoogleAddressText))); // _GoogleAddressText = (String)(HELPER_GoogleAddressText.fromObject (_GoogleAddressText, tl_job_applicationPSet.getAttrib (FIELD_GoogleAddressText))); //
_PreferRemote = (Boolean)(HELPER_PreferRemote.fromObject (_PreferRemote, tl_job_applicationPSet.getAttrib (FIELD_PreferRemote))); // _PreferRemote = (Boolean)(HELPER_PreferRemote.fromObject (_PreferRemote, tl_job_applicationPSet.getAttrib (FIELD_PreferRemote))); //
_HappyToRelocate = (Boolean)(HELPER_HappyToRelocate.fromObject (_HappyToRelocate, tl_job_applicationPSet.getAttrib (FIELD_HappyToRelocate))); // _HappyToRelocate = (Boolean)(HELPER_HappyToRelocate.fromObject (_HappyToRelocate, tl_job_applicationPSet.getAttrib (FIELD_HappyToRelocate))); //
_IsEmailIngest = (Boolean)(HELPER_IsEmailIngest.fromObject (_IsEmailIngest, tl_job_applicationPSet.getAttrib (FIELD_IsEmailIngest))); //
_Candidate.setFromPersistentSets (objectID, allSets); _Candidate.setFromPersistentSets (objectID, allSets);
_Job.setFromPersistentSets (objectID, allSets); _Job.setFromPersistentSets (objectID, allSets);
...@@ -3264,6 +3389,15 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3264,6 +3389,15 @@ public abstract class BaseJobApplication extends BaseBusinessClass
e.addException (ex); e.addException (ex);
} }
try
{
setIsEmailIngest (otherJobApplication.getIsEmailIngest ());
}
catch (FieldException ex)
{
e.addException (ex);
}
} }
} }
...@@ -3286,6 +3420,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3286,6 +3420,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_GoogleAddressText = sourceJobApplication._GoogleAddressText; _GoogleAddressText = sourceJobApplication._GoogleAddressText;
_PreferRemote = sourceJobApplication._PreferRemote; _PreferRemote = sourceJobApplication._PreferRemote;
_HappyToRelocate = sourceJobApplication._HappyToRelocate; _HappyToRelocate = sourceJobApplication._HappyToRelocate;
_IsEmailIngest = sourceJobApplication._IsEmailIngest;
_AppProcessOption = sourceJobApplication._AppProcessOption; _AppProcessOption = sourceJobApplication._AppProcessOption;
_OverallRank = sourceJobApplication._OverallRank; _OverallRank = sourceJobApplication._OverallRank;
_RoleFit = sourceJobApplication._RoleFit; _RoleFit = sourceJobApplication._RoleFit;
...@@ -3363,6 +3498,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3363,6 +3498,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_GoogleAddressText = (String)(HELPER_GoogleAddressText.readExternal (_GoogleAddressText, vals.get(FIELD_GoogleAddressText))); // _GoogleAddressText = (String)(HELPER_GoogleAddressText.readExternal (_GoogleAddressText, vals.get(FIELD_GoogleAddressText))); //
_PreferRemote = (Boolean)(HELPER_PreferRemote.readExternal (_PreferRemote, vals.get(FIELD_PreferRemote))); // _PreferRemote = (Boolean)(HELPER_PreferRemote.readExternal (_PreferRemote, vals.get(FIELD_PreferRemote))); //
_HappyToRelocate = (Boolean)(HELPER_HappyToRelocate.readExternal (_HappyToRelocate, vals.get(FIELD_HappyToRelocate))); // _HappyToRelocate = (Boolean)(HELPER_HappyToRelocate.readExternal (_HappyToRelocate, vals.get(FIELD_HappyToRelocate))); //
_IsEmailIngest = (Boolean)(HELPER_IsEmailIngest.readExternal (_IsEmailIngest, vals.get(FIELD_IsEmailIngest))); //
_AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); // _AppProcessOption = (AppProcessOption)(HELPER_AppProcessOption.readExternal (_AppProcessOption, vals.get(FIELD_AppProcessOption))); //
_OverallRank = (Integer)(HELPER_OverallRank.readExternal (_OverallRank, vals.get(FIELD_OverallRank))); // _OverallRank = (Integer)(HELPER_OverallRank.readExternal (_OverallRank, vals.get(FIELD_OverallRank))); //
_RoleFit = (Map)(HELPER_RoleFit.readExternal (_RoleFit, vals.get(FIELD_RoleFit))); // _RoleFit = (Map)(HELPER_RoleFit.readExternal (_RoleFit, vals.get(FIELD_RoleFit))); //
...@@ -3395,6 +3531,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3395,6 +3531,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
vals.put (FIELD_GoogleAddressText, HELPER_GoogleAddressText.writeExternal (_GoogleAddressText)); vals.put (FIELD_GoogleAddressText, HELPER_GoogleAddressText.writeExternal (_GoogleAddressText));
vals.put (FIELD_PreferRemote, HELPER_PreferRemote.writeExternal (_PreferRemote)); vals.put (FIELD_PreferRemote, HELPER_PreferRemote.writeExternal (_PreferRemote));
vals.put (FIELD_HappyToRelocate, HELPER_HappyToRelocate.writeExternal (_HappyToRelocate)); vals.put (FIELD_HappyToRelocate, HELPER_HappyToRelocate.writeExternal (_HappyToRelocate));
vals.put (FIELD_IsEmailIngest, HELPER_IsEmailIngest.writeExternal (_IsEmailIngest));
vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption)); vals.put (FIELD_AppProcessOption, HELPER_AppProcessOption.writeExternal (_AppProcessOption));
vals.put (FIELD_OverallRank, HELPER_OverallRank.writeExternal (_OverallRank)); vals.put (FIELD_OverallRank, HELPER_OverallRank.writeExternal (_OverallRank));
vals.put (FIELD_RoleFit, HELPER_RoleFit.writeExternal (_RoleFit)); vals.put (FIELD_RoleFit, HELPER_RoleFit.writeExternal (_RoleFit));
...@@ -3450,6 +3587,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3450,6 +3587,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
listener.notifyFieldChange(this, other, FIELD_HappyToRelocate, HELPER_HappyToRelocate.toObject(this._HappyToRelocate), HELPER_HappyToRelocate.toObject(otherJobApplication._HappyToRelocate)); listener.notifyFieldChange(this, other, FIELD_HappyToRelocate, HELPER_HappyToRelocate.toObject(this._HappyToRelocate), HELPER_HappyToRelocate.toObject(otherJobApplication._HappyToRelocate));
} }
if (!HELPER_IsEmailIngest.compare(this._IsEmailIngest, otherJobApplication._IsEmailIngest))
{
listener.notifyFieldChange(this, other, FIELD_IsEmailIngest, HELPER_IsEmailIngest.toObject(this._IsEmailIngest), HELPER_IsEmailIngest.toObject(otherJobApplication._IsEmailIngest));
}
// Compare single assocs // Compare single assocs
_WorkFlow.compare (otherJobApplication._WorkFlow, listener); _WorkFlow.compare (otherJobApplication._WorkFlow, listener);
...@@ -3493,6 +3634,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3493,6 +3634,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
visitor.visitField(this, FIELD_GoogleAddressText, HELPER_GoogleAddressText.toObject(getGoogleAddressText())); visitor.visitField(this, FIELD_GoogleAddressText, HELPER_GoogleAddressText.toObject(getGoogleAddressText()));
visitor.visitField(this, FIELD_PreferRemote, HELPER_PreferRemote.toObject(getPreferRemote())); visitor.visitField(this, FIELD_PreferRemote, HELPER_PreferRemote.toObject(getPreferRemote()));
visitor.visitField(this, FIELD_HappyToRelocate, HELPER_HappyToRelocate.toObject(getHappyToRelocate())); visitor.visitField(this, FIELD_HappyToRelocate, HELPER_HappyToRelocate.toObject(getHappyToRelocate()));
visitor.visitField(this, FIELD_IsEmailIngest, HELPER_IsEmailIngest.toObject(getIsEmailIngest()));
visitor.visitAssociation (_WorkFlow); visitor.visitAssociation (_WorkFlow);
visitor.visitAssociation (_Candidate); visitor.visitAssociation (_Candidate);
visitor.visitAssociation (_Job); visitor.visitAssociation (_Job);
...@@ -3589,6 +3731,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3589,6 +3731,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return filter.matches (getHappyToRelocate ()); return filter.matches (getHappyToRelocate ());
} }
else if (attribName.equals (FIELD_IsEmailIngest))
{
return filter.matches (getIsEmailIngest ());
}
else if (attribName.equals (SINGLEREFERENCE_Candidate)) else if (attribName.equals (SINGLEREFERENCE_Candidate))
{ {
return filter.matches (getCandidate ()); return filter.matches (getCandidate ());
...@@ -3670,6 +3816,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3670,6 +3816,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this; return this;
} }
public SearchAll andIsEmailIngest (QueryFilter<Boolean> filter)
{
filter.addFilter (context, "tl_job_application.is_email_ingest", "IsEmailIngest");
return this;
}
public SearchAll andCandidate (QueryFilter<Candidate> filter) public SearchAll andCandidate (QueryFilter<Candidate> filter)
{ {
filter.addFilter (context, "tl_job_application.candidate_id", "Candidate"); filter.addFilter (context, "tl_job_application.candidate_id", "Candidate");
...@@ -3789,6 +3941,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3789,6 +3941,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this; return this;
} }
public SearchCandidateJob andIsEmailIngest (QueryFilter<Boolean> filter)
{
filter.addFilter (context, "tl_job_application.is_email_ingest", "IsEmailIngest");
return this;
}
public SearchCandidateJob andCandidate (QueryFilter<Candidate> filter) public SearchCandidateJob andCandidate (QueryFilter<Candidate> filter)
{ {
filter.addFilter (context, "tl_job_application.candidate_id", "Candidate"); filter.addFilter (context, "tl_job_application.candidate_id", "Candidate");
...@@ -3924,6 +4082,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -3924,6 +4082,12 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return this; return this;
} }
public SearchDetails andIsEmailIngest (QueryFilter<Boolean> filter)
{
filter.addFilter (context, "tl_job_application.is_email_ingest", "IsEmailIngest");
return this;
}
public SearchDetails andCandidate (QueryFilter<Candidate> filter) public SearchDetails andCandidate (QueryFilter<Candidate> filter)
{ {
filter.addFilter (context, "tl_job_application.candidate_id", "Candidate"); filter.addFilter (context, "tl_job_application.candidate_id", "Candidate");
...@@ -4000,6 +4164,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4000,6 +4164,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return HELPER_HappyToRelocate.toObject (getHappyToRelocate ()); return HELPER_HappyToRelocate.toObject (getHappyToRelocate ());
} }
else if (attribName.equals (FIELD_IsEmailIngest))
{
return HELPER_IsEmailIngest.toObject (getIsEmailIngest ());
}
else if (attribName.equals (FIELD_AppProcessOption)) else if (attribName.equals (FIELD_AppProcessOption))
{ {
return HELPER_AppProcessOption.toObject (getAppProcessOption ()); return HELPER_AppProcessOption.toObject (getAppProcessOption ());
...@@ -4069,6 +4237,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4069,6 +4237,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return HELPER_HappyToRelocate; return HELPER_HappyToRelocate;
} }
else if (attribName.equals (FIELD_IsEmailIngest))
{
return HELPER_IsEmailIngest;
}
else if (attribName.equals (FIELD_AppProcessOption)) else if (attribName.equals (FIELD_AppProcessOption))
{ {
return HELPER_AppProcessOption; return HELPER_AppProcessOption;
...@@ -4138,6 +4310,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4138,6 +4310,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
setHappyToRelocate ((Boolean)(HELPER_HappyToRelocate.fromObject (_HappyToRelocate, attribValue))); setHappyToRelocate ((Boolean)(HELPER_HappyToRelocate.fromObject (_HappyToRelocate, attribValue)));
} }
else if (attribName.equals (FIELD_IsEmailIngest))
{
setIsEmailIngest ((Boolean)(HELPER_IsEmailIngest.fromObject (_IsEmailIngest, attribValue)));
}
else if (attribName.equals (FIELD_AppProcessOption)) else if (attribName.equals (FIELD_AppProcessOption))
{ {
setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue))); setAppProcessOption ((AppProcessOption)(HELPER_AppProcessOption.fromObject (_AppProcessOption, attribValue)));
...@@ -4214,6 +4390,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4214,6 +4390,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return getWriteability_HappyToRelocate (); return getWriteability_HappyToRelocate ();
} }
else if (fieldName.equals (FIELD_IsEmailIngest))
{
return getWriteability_IsEmailIngest ();
}
else if (fieldName.equals (MULTIPLEREFERENCE_AssessmentCriteriaAnswers)) else if (fieldName.equals (MULTIPLEREFERENCE_AssessmentCriteriaAnswers))
{ {
return getWriteability_AssessmentCriteriaAnswers (); return getWriteability_AssessmentCriteriaAnswers ();
...@@ -4315,6 +4495,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4315,6 +4495,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass
fields.add (FIELD_HappyToRelocate); fields.add (FIELD_HappyToRelocate);
} }
if (getWriteability_IsEmailIngest () != FieldWriteability.TRUE)
{
fields.add (FIELD_IsEmailIngest);
}
if (getWriteability_AppProcessOption () != FieldWriteability.TRUE) if (getWriteability_AppProcessOption () != FieldWriteability.TRUE)
{ {
fields.add (FIELD_AppProcessOption); fields.add (FIELD_AppProcessOption);
...@@ -4366,6 +4551,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4366,6 +4551,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
result.add(HELPER_GoogleAddressText.getAttribObject (getClass (), _GoogleAddressText, false, FIELD_GoogleAddressText)); result.add(HELPER_GoogleAddressText.getAttribObject (getClass (), _GoogleAddressText, false, FIELD_GoogleAddressText));
result.add(HELPER_PreferRemote.getAttribObject (getClass (), _PreferRemote, false, FIELD_PreferRemote)); result.add(HELPER_PreferRemote.getAttribObject (getClass (), _PreferRemote, false, FIELD_PreferRemote));
result.add(HELPER_HappyToRelocate.getAttribObject (getClass (), _HappyToRelocate, false, FIELD_HappyToRelocate)); result.add(HELPER_HappyToRelocate.getAttribObject (getClass (), _HappyToRelocate, false, FIELD_HappyToRelocate));
result.add(HELPER_IsEmailIngest.getAttribObject (getClass (), _IsEmailIngest, false, FIELD_IsEmailIngest));
result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption)); result.add(HELPER_AppProcessOption.getAttribObject (getClass (), _AppProcessOption, false, FIELD_AppProcessOption));
result.add(HELPER_OverallRank.getAttribObject (getClass (), _OverallRank, false, FIELD_OverallRank)); result.add(HELPER_OverallRank.getAttribObject (getClass (), _OverallRank, false, FIELD_OverallRank));
result.add(HELPER_RoleFit.getAttribObject (getClass (), _RoleFit, false, FIELD_RoleFit)); result.add(HELPER_RoleFit.getAttribObject (getClass (), _RoleFit, false, FIELD_RoleFit));
...@@ -4586,6 +4772,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4586,6 +4772,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass
} }
/** /**
* Get the attribute IsEmailIngest
*/
public Boolean getIsEmailIngest (JobApplication obj, Boolean original)
{
return original;
}
/**
* Change the value set for attribute IsEmailIngest.
* May modify the field beforehand
* Occurs before validation.
*/
public Boolean setIsEmailIngest (JobApplication obj, Boolean newIsEmailIngest) throws FieldException
{
return newIsEmailIngest;
}
/**
* Get the attribute AppProcessOption * Get the attribute AppProcessOption
*/ */
public AppProcessOption getAppProcessOption (JobApplication obj, AppProcessOption original) public AppProcessOption getAppProcessOption (JobApplication obj, AppProcessOption original)
...@@ -4839,6 +5043,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4839,6 +5043,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{ {
return toHappyToRelocate (); return toHappyToRelocate ();
} }
if (name.equals ("IsEmailIngest"))
{
return toIsEmailIngest ();
}
if (name.equals ("Candidate")) if (name.equals ("Candidate"))
{ {
return toCandidate (); return toCandidate ();
...@@ -4880,6 +5088,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass ...@@ -4880,6 +5088,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public PipeLine<From, Boolean> toPreferRemote () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_PreferRemote)); } public PipeLine<From, Boolean> toPreferRemote () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_PreferRemote)); }
public PipeLine<From, Boolean> toHappyToRelocate () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_HappyToRelocate)); } public PipeLine<From, Boolean> toHappyToRelocate () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_HappyToRelocate)); }
public PipeLine<From, Boolean> toIsEmailIngest () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_IsEmailIngest)); }
public WorkFlow.WorkFlowPipeLineFactory<From, WorkFlow> toWorkFlow () { return toWorkFlow (Filter.ALL); } public WorkFlow.WorkFlowPipeLineFactory<From, WorkFlow> toWorkFlow () { return toWorkFlow (Filter.ALL); }
public WorkFlow.WorkFlowPipeLineFactory<From, WorkFlow> toWorkFlow (Filter<WorkFlow> filter) public WorkFlow.WorkFlowPipeLineFactory<From, WorkFlow> toWorkFlow (Filter<WorkFlow> filter)
......
...@@ -13,6 +13,7 @@ import oneit.objstore.ObjectTransaction; ...@@ -13,6 +13,7 @@ import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter; import oneit.objstore.rdbms.filters.IsNotNullFilter;
import oneit.objstore.utils.ObjstoreUtils; import oneit.objstore.utils.ObjstoreUtils;
import oneit.security.SecUser;
import oneit.servlets.objstore.MessageSourceDecorator; import oneit.servlets.objstore.MessageSourceDecorator;
import oneit.servlets.process.ORMProcessState; import oneit.servlets.process.ORMProcessState;
import oneit.utils.BusinessException; import oneit.utils.BusinessException;
...@@ -200,4 +201,19 @@ public class Candidate extends BaseCandidate ...@@ -200,4 +201,19 @@ public class Candidate extends BaseCandidate
{ {
return !isTrue(getIsAccountVerified()) && isTrue(getIsEmailIngest()); return !isTrue(getIsAccountVerified()) && isTrue(getIsEmailIngest());
} }
public Boolean isEmailFound()
{
if(getUser() != null && getUser().getEmail() != null)
{
SecUser user = SecUser.searchNAME(getTransaction(), getUser().getEmail().toLowerCase());
if(user != null && user.getExtension(Candidate.REFERENCE_Candidate) != null && user.getExtension(Candidate.REFERENCE_Candidate).getIsAccountVerified())
{
return Boolean.TRUE;
}
}
return Boolean.FALSE;
}
} }
\ No newline at end of file
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
<ATTRIB name="GoogleAddressText" type="String" dbcol="google_address_text" length="300"/> <ATTRIB name="GoogleAddressText" type="String" dbcol="google_address_text" length="300"/>
<ATTRIB name="PreferRemote" type="Boolean" dbcol="prefer_remote" defaultValue="Boolean.FALSE"/> <ATTRIB name="PreferRemote" type="Boolean" dbcol="prefer_remote" defaultValue="Boolean.FALSE"/>
<ATTRIB name="HappyToRelocate" type="Boolean" dbcol="happy_to_relocate"/> <ATTRIB name="HappyToRelocate" type="Boolean" dbcol="happy_to_relocate"/>
<ATTRIB name="IsEmailIngest" type="Boolean" dbcol="is_email_ingest" defaultValue="Boolean.FALSE"/>
<SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" backreferenceName="JobApplications" mandatory="true"/> <SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" backreferenceName="JobApplications" mandatory="true"/>
<SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" backreferenceName="JobApplications" mandatory="true"/> <SINGLEREFERENCE name="Job" type="Job" dbcol="job_id" backreferenceName="JobApplications" mandatory="true"/>
......
...@@ -34,6 +34,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -34,6 +34,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
private String dummyGoogleAddressText; private String dummyGoogleAddressText;
private Boolean dummyPreferRemote; private Boolean dummyPreferRemote;
private Boolean dummyHappyToRelocate; private Boolean dummyHappyToRelocate;
private Boolean dummyIsEmailIngest;
// Static constants corresponding to attribute helpers // Static constants corresponding to attribute helpers
...@@ -44,6 +45,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -44,6 +45,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
private static final DefaultAttributeHelper HELPER_GoogleAddressText = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper HELPER_GoogleAddressText = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_PreferRemote = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper HELPER_PreferRemote = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_HappyToRelocate = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper HELPER_HappyToRelocate = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_IsEmailIngest = DefaultAttributeHelper.INSTANCE;
...@@ -57,10 +59,11 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -57,10 +59,11 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
dummyGoogleAddressText = (String)(HELPER_GoogleAddressText.initialise (dummyGoogleAddressText)); dummyGoogleAddressText = (String)(HELPER_GoogleAddressText.initialise (dummyGoogleAddressText));
dummyPreferRemote = (Boolean)(HELPER_PreferRemote.initialise (dummyPreferRemote)); dummyPreferRemote = (Boolean)(HELPER_PreferRemote.initialise (dummyPreferRemote));
dummyHappyToRelocate = (Boolean)(HELPER_HappyToRelocate.initialise (dummyHappyToRelocate)); dummyHappyToRelocate = (Boolean)(HELPER_HappyToRelocate.initialise (dummyHappyToRelocate));
dummyIsEmailIngest = (Boolean)(HELPER_IsEmailIngest.initialise (dummyIsEmailIngest));
} }
private String SELECT_COLUMNS = "{PREFIX}tl_job_application.object_id as id, {PREFIX}tl_job_application.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_job_application.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_job_application.cv, {PREFIX}tl_job_application.cover_letter, {PREFIX}tl_job_application.application_status, {PREFIX}tl_job_application.submitted_date, {PREFIX}tl_job_application.google_address_text, {PREFIX}tl_job_application.prefer_remote, {PREFIX}tl_job_application.happy_to_relocate, {PREFIX}tl_job_application.candidate_id, {PREFIX}tl_job_application.job_id, 1 AS commasafe "; private String SELECT_COLUMNS = "{PREFIX}tl_job_application.object_id as id, {PREFIX}tl_job_application.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_job_application.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_job_application.cv, {PREFIX}tl_job_application.cover_letter, {PREFIX}tl_job_application.application_status, {PREFIX}tl_job_application.submitted_date, {PREFIX}tl_job_application.google_address_text, {PREFIX}tl_job_application.prefer_remote, {PREFIX}tl_job_application.happy_to_relocate, {PREFIX}tl_job_application.is_email_ingest, {PREFIX}tl_job_application.candidate_id, {PREFIX}tl_job_application.job_id, 1 AS commasafe ";
private String SELECT_JOINS = ""; private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
...@@ -118,6 +121,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -118,6 +121,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_GoogleAddressText)|| !tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_GoogleAddressText)||
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_PreferRemote)|| !tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_PreferRemote)||
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_HappyToRelocate)|| !tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_HappyToRelocate)||
!tl_job_applicationPSet.containsAttrib(JobApplication.FIELD_IsEmailIngest)||
!tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Candidate)|| !tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Candidate)||
!tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Job)) !tl_job_applicationPSet.containsAttrib(JobApplication.SINGLEREFERENCE_Job))
{ {
...@@ -209,10 +213,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -209,10 +213,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
{ {
int rowsUpdated = executeStatement (sqlMgr, int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_job_application " + "UPDATE {PREFIX}tl_job_application " +
"SET cv = ?, cover_letter = ?, application_status = ?, submitted_date = ?, google_address_text = ?, prefer_remote = ?, happy_to_relocate = ?, candidate_id = ? , job_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " + "SET cv = ?, cover_letter = ?, application_status = ?, submitted_date = ?, google_address_text = ?, prefer_remote = ?, happy_to_relocate = ?, is_email_ingest = ?, candidate_id = ? , job_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_job_application.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ", "WHERE tl_job_application.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_CoverLetter.getForSQL(dummyCoverLetter, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CoverLetter))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))).listEntry (HELPER_SubmittedDate.getForSQL(dummySubmittedDate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_SubmittedDate))).listEntry (HELPER_GoogleAddressText.getForSQL(dummyGoogleAddressText, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_GoogleAddressText))).listEntry (HELPER_PreferRemote.getForSQL(dummyPreferRemote, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_PreferRemote))).listEntry (HELPER_HappyToRelocate.getForSQL(dummyHappyToRelocate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_HappyToRelocate))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray()); CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_CoverLetter.getForSQL(dummyCoverLetter, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CoverLetter))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))).listEntry (HELPER_SubmittedDate.getForSQL(dummySubmittedDate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_SubmittedDate))).listEntry (HELPER_GoogleAddressText.getForSQL(dummyGoogleAddressText, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_GoogleAddressText))).listEntry (HELPER_PreferRemote.getForSQL(dummyPreferRemote, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_PreferRemote))).listEntry (HELPER_HappyToRelocate.getForSQL(dummyHappyToRelocate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_HappyToRelocate))).listEntry (HELPER_IsEmailIngest.getForSQL(dummyIsEmailIngest, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_IsEmailIngest))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1) if (rowsUpdated != 1)
{ {
...@@ -595,6 +599,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -595,6 +599,7 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_GoogleAddressText, HELPER_GoogleAddressText.getFromRS(dummyGoogleAddressText, r, "google_address_text")); tl_job_applicationPSet.setAttrib(JobApplication.FIELD_GoogleAddressText, HELPER_GoogleAddressText.getFromRS(dummyGoogleAddressText, r, "google_address_text"));
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_PreferRemote, HELPER_PreferRemote.getFromRS(dummyPreferRemote, r, "prefer_remote")); tl_job_applicationPSet.setAttrib(JobApplication.FIELD_PreferRemote, HELPER_PreferRemote.getFromRS(dummyPreferRemote, r, "prefer_remote"));
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_HappyToRelocate, HELPER_HappyToRelocate.getFromRS(dummyHappyToRelocate, r, "happy_to_relocate")); tl_job_applicationPSet.setAttrib(JobApplication.FIELD_HappyToRelocate, HELPER_HappyToRelocate.getFromRS(dummyHappyToRelocate, r, "happy_to_relocate"));
tl_job_applicationPSet.setAttrib(JobApplication.FIELD_IsEmailIngest, HELPER_IsEmailIngest.getFromRS(dummyIsEmailIngest, r, "is_email_ingest"));
tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id")); tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id"));
tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Job, r.getObject ("job_id")); tl_job_applicationPSet.setAttrib(JobApplication.SINGLEREFERENCE_Job, r.getObject ("job_id"));
...@@ -614,10 +619,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr ...@@ -614,10 +619,10 @@ public class JobApplicationPersistenceMgr extends ObjectPersistenceMgr
{ {
executeStatement (sqlMgr, executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_job_application " + "INSERT INTO {PREFIX}tl_job_application " +
" (cv, cover_letter, application_status, submitted_date, google_address_text, prefer_remote, happy_to_relocate, candidate_id, job_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " + " (cv, cover_letter, application_status, submitted_date, google_address_text, prefer_remote, happy_to_relocate, is_email_ingest, candidate_id, job_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " + "VALUES " +
" (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")", " (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_CoverLetter.getForSQL(dummyCoverLetter, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CoverLetter))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))).listEntry (HELPER_SubmittedDate.getForSQL(dummySubmittedDate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_SubmittedDate))).listEntry (HELPER_GoogleAddressText.getForSQL(dummyGoogleAddressText, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_GoogleAddressText))).listEntry (HELPER_PreferRemote.getForSQL(dummyPreferRemote, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_PreferRemote))).listEntry (HELPER_HappyToRelocate.getForSQL(dummyHappyToRelocate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_HappyToRelocate))) .listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))) .listEntry (objectID.longID ()).toList().toArray()); CollectionUtils.listEntry (HELPER_CV.getForSQL(dummyCV, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CV))).listEntry (HELPER_CoverLetter.getForSQL(dummyCoverLetter, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_CoverLetter))).listEntry (HELPER_ApplicationStatus.getForSQL(dummyApplicationStatus, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_ApplicationStatus))).listEntry (HELPER_SubmittedDate.getForSQL(dummySubmittedDate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_SubmittedDate))).listEntry (HELPER_GoogleAddressText.getForSQL(dummyGoogleAddressText, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_GoogleAddressText))).listEntry (HELPER_PreferRemote.getForSQL(dummyPreferRemote, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_PreferRemote))).listEntry (HELPER_HappyToRelocate.getForSQL(dummyHappyToRelocate, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_HappyToRelocate))).listEntry (HELPER_IsEmailIngest.getForSQL(dummyIsEmailIngest, tl_job_applicationPSet.getAttrib (JobApplication.FIELD_IsEmailIngest))) .listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_job_applicationPSet.getAttrib (JobApplication.SINGLEREFERENCE_Job)))) .listEntry (objectID.longID ()).toList().toArray());
tl_job_applicationPSet.setStatus (PersistentSetStatus.PROCESSED); tl_job_applicationPSet.setStatus (PersistentSetStatus.PROCESSED);
} }
......
...@@ -376,6 +376,7 @@ public class PerformaEmailFetcher implements Runnable, InitialisationParticipant ...@@ -376,6 +376,7 @@ public class PerformaEmailFetcher implements Runnable, InitialisationParticipant
JobApplication jobApplication = JobApplication.createNewApplication(candidate, job); JobApplication jobApplication = JobApplication.createNewApplication(candidate, job);
jobApplication.setApplicationStatus(ApplicationStatus.POST_INGEST); jobApplication.setApplicationStatus(ApplicationStatus.POST_INGEST);
jobApplication.setIsEmailIngest(true);
if(contents.size() > 0) if(contents.size() > 0)
{ {
...@@ -427,6 +428,7 @@ public class PerformaEmailFetcher implements Runnable, InitialisationParticipant ...@@ -427,6 +428,7 @@ public class PerformaEmailFetcher implements Runnable, InitialisationParticipant
JobApplication jobApplication = JobApplication.createNewApplication(candidate, job); JobApplication jobApplication = JobApplication.createNewApplication(candidate, job);
jobApplication.setApplicationStatus(ApplicationStatus.POST_INGEST); jobApplication.setApplicationStatus(ApplicationStatus.POST_INGEST);
jobApplication.setIsEmailIngest(true);
if(contents.size() > 0) if(contents.size() > 0)
{ {
......
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).mapEntry("Applications", applications).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).mapEntry("Applications", applications).toMap())
.toMap() %>"> .toMap() %>">
<% <%
if(jobApplication.isTrue(candidate.getIsEmailIngest())) if(jobApplication.isTrue(jobApplication.getIsEmailIngest()))
{ {
%> %>
<span style="padding-right: 5px;"><img src="images/email-ingest-icon.jpg"></span> <span style="padding-right: 5px;"><img src="images/email-ingest-icon.jpg"></span>
......
<?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_application</tableName>
<column name="is_email_ingest" type="Boolean" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
UPDATE tl_job_application SET is_email_ingest = 'Y' FROM oneit_sec_user_extension WHERE oneit_sec_user_extension.object_id = tl_job_application.candidate_id AND oneit_sec_user_extension.is_email_ingest = 'Y';
\ No newline at end of file
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<NODE name="dynamic_content_form::APPLICANT_PORTAL" factory="Participant"> <NODE name="dynamic_content_form::APPLICANT_PORTAL" factory="Participant">
<FORM name="*.signIn" factory="Participant" class="performa.form.SignInCandidateFP"/> <FORM name="*.signIn" factory="Participant" class="performa.form.SignInCandidateFP"/>
<FORM name="*.verifyIdentity" factory="Participant" class="performa.form.VerifyIdentityFP"/> <FORM name="*.verifyIdentity" factory="Participant" class="performa.form.VerifyIdentityFP"/>
<FORM name="*.identifyUser" factory="Participant" class="performa.form.IdentifyMaskedUserFP"/>
<FORM name="*.completeApplication" factory="Participant" class="performa.form.CompleteApplicationFP"/> <FORM name="*.completeApplication" factory="Participant" class="performa.form.CompleteApplicationFP"/>
<FORM name="*.validateApplication" factory="Participant" class="performa.form.ValidateApplicationFP"/> <FORM name="*.validateApplication" factory="Participant" class="performa.form.ValidateApplicationFP"/>
<FORM name="*.saveAndExitExperienece" factory="Participant" class="performa.form.SaveAndExitExperienceFP"/> <FORM name="*.saveAndExitExperienece" factory="Participant" class="performa.form.SaveAndExitExperienceFP"/>
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<RenderMode name="Page" preIncludeJSP="extensions/applicantportal/job_overview.jsp"/> <RenderMode name="Page" preIncludeJSP="extensions/applicantportal/job_overview.jsp"/>
<RenderMode name="SignIn" preIncludeJSP="extensions/applicantportal/sign_in.jsp"/> <RenderMode name="SignIn" preIncludeJSP="extensions/applicantportal/sign_in.jsp"/>
<RenderMode name="VerifyIdentity" preIncludeJSP="extensions/applicantportal/verify_identity.jsp"/> <RenderMode name="VerifyIdentity" preIncludeJSP="extensions/applicantportal/verify_identity.jsp"/>
<RenderMode name="MaskedIdentity" preIncludeJSP="extensions/applicantportal/masked_identity.jsp"/>
<RenderMode name="VerificationSent" preIncludeJSP="extensions/applicantportal/verification_sent.jsp"/> <RenderMode name="VerificationSent" preIncludeJSP="extensions/applicantportal/verification_sent.jsp"/>
<RenderMode name="ForgotPassword" preIncludeJSP="extensions/applicantportal/forgot_password.jsp"/> <RenderMode name="ForgotPassword" preIncludeJSP="extensions/applicantportal/forgot_password.jsp"/>
<RenderMode name="ResetPassword" preIncludeJSP="extensions/applicantportal/reset_password.jsp"/> <RenderMode name="ResetPassword" preIncludeJSP="extensions/applicantportal/reset_password.jsp"/>
......
...@@ -32,7 +32,11 @@ ...@@ -32,7 +32,11 @@
String navigateTo = WebUtils.getSamePageInRenderMode(request, "SignIn") + "&UserName=" + secUser.getEmail(); String navigateTo = WebUtils.getSamePageInRenderMode(request, "SignIn") + "&UserName=" + secUser.getEmail();
if((loggedInUser != null && loggedInUser == secUser) || candidate.isUnverifiedEmailIngestUser() || !candidate.isTrue(candidate.getIsPasswordChanged())) if(candidate.isUnverifiedEmailIngestUser() && candidate.isTrue(candidate.getIsMaskedEmail()))
{
navigateTo = WebUtils.getSamePageInRenderMode(request,"MaskedIdentity");
}
else if((loggedInUser != null && loggedInUser == secUser) || candidate.isUnverifiedEmailIngestUser() || !candidate.isTrue(candidate.getIsPasswordChanged()))
{ {
navigateTo = WebUtils.getSamePageInRenderMode(request,"VerifyIdentity"); navigateTo = WebUtils.getSamePageInRenderMode(request,"VerifyIdentity");
} }
......
<%@ page extends="oneit.servlets.jsp.JSPInclude" %>
<%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%>
<%@ include file="/inc/stdcms.jsp" %><%-- This is in cougar --%>
<%@ include file="/extensions/performa/inc/stdimports.jsp" %>
<oneit:dynIncluded>
<%
boolean toRedirect = GenericObjDF.getOrCreateObject (request, "Job", Job.REFERENCE_Job);
Job job = (Job) process.getAttribute("Job");
Debug.assertion(job != null && !toRedirect, "Invalid job in applicant portal");
SecUser secUser = SecUser.getTXUser(transaction);
Debug.assertion(secUser != null, "Invalid candidate in applicant portal");
Candidate candidate = secUser.getExtension(Candidate.REFERENCE_Candidate);
Debug.assertion(candidate != null, "Invalid candidate in applicant portal");
String successPage = WebUtils.getSamePageInRenderMode(request, "VerifyIdentity") + "&JobID=" + job.getID();
JobApplication jobApplication = JobApplication.searchCandidateJob(transaction, candidate, job);
jobApplication.setIsEmailIngest(true);
process.setAttribute("JobApplication", jobApplication);
%>
<oneit:script>
<oneit:script src="/scripts/password_strength_lightweight.js"/>
</oneit:script>
<style>
button[disabled] {
opacity: 0.6;
background-color: #0582ba;
}
.email input[name$="Email"] {
opacity: 0;
position: absolute;
}
</style>
<script type="text/javascript">
$(document.body).addClass('bg-color');
var interval ;
$(document).ready(function() {
recalcFunction = setupRecalc ($("form#signIn"), {'recalcOnError':true});
interval = setInterval(function() { validate(); }, 500);
validate();
$('input').on('change keyup', function() { validate(); });
});
function validate() {
var empty = false;
$('input[required]').each(function() {
if ($( this ).val() == '') {
empty = true;
if ($( this ).css('background-color') == 'rgb(250, 255, 189)') {
empty = false;
}
}
});
if (empty) {
$('.verify-btn').attr('disabled', 'disabled');
} else {
$('.verify-btn').removeAttr('disabled');
clearInterval(interval);
}
}
</script>
<oneit:form name="signIn" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="apply-job-logo-header signinpage">
<div class="box-sizing-border-box">
<div class="logo-img">
<%
BinaryContent logo = job.getLogo();
if(logo != null)
{
int logoHeight = 45;
%>
<tagfile:img src="<%= ThumbnailUtils.filterImage(DiskFileBinaryContent.getRelativeURL(logo), "KEEP", new ScaleWithin (0, logoHeight)) %>" />
<%
}
%>
</div>
<div class="header-title">
<%= job.getTeamName() %>
</div>
</div>
</div>
<div class="main-verify-identity">
<div class="pl-confirm text-center">Please confirm your details to continue</div>
<div class="main-box-layout main-verify-step-2">
<div class="form-group text-left">
<label>Email Address</label>
<oneit:ormInput obj="<%= secUser %>" type="text" attributeName="Email" cssClass="form-control" style="text-transform: lowercase" required="true"/>
</div>
<div class="row">
<div class="form-group text-left col-sm-6 col-xs-12">
<label><oneit:ormlabel obj="<%= secUser %>" field="FirstName" /></label>
<oneit:ormInput obj="<%= secUser %>" type="text" attributeName="FirstName" cssClass="form-control second-style" required="true"/>
</div>
<div class="form-group text-left col-sm-6 col-xs-12">
<label><oneit:ormlabel obj="<%= secUser %>" field="LastName" /></label>
<oneit:ormInput obj="<%= secUser %>" type="text" attributeName="LastName" cssClass="form-control second-style" required="true"/>
</div>
</div>
<oneit:recalcClass htmlTag="div" classScript="candidate.isEmailFound() ? 'show': 'hide'" candidate="<%= candidate %>" id="password-fileds">
<div class="form-group text-left">
<label>Password</label>
<input type="password" class="form-control" name="password" required>
</div>
</oneit:recalcClass>
<div class="text-center">
<oneit:button value="Submit" name="identifyUser" cssClass="box-btn send-link-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", successPage)
.mapEntry("Job",job)
.mapEntry("Candidate",candidate)
.mapEntry("JobApplication",jobApplication)
.mapEntry(NotificationUtils.DISPLAY_NOTIFICATION_PARAM, false)
.toMap() %>"/>
</div>
</div>
</div>
</oneit:form>
</oneit:dynIncluded>
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
<div class="form-group text-left"> <div class="form-group text-left">
<label>Email Address</label> <label>Email Address</label>
<% <%
if(secUser.getEmail() == null || (candidate.isUnverifiedEmailIngestUser() && candidate.isTrue(candidate.getIsMaskedEmail()))) if(secUser.getEmail() == null)
{ {
%> %>
<oneit:ormInput obj="<%= secUser %>" type="text" attributeName="Email" cssClass="form-control" style="text-transform: lowercase" required="true"/> <oneit:ormInput obj="<%= secUser %>" type="text" attributeName="Email" cssClass="form-control" style="text-transform: lowercase" required="true"/>
...@@ -201,7 +201,6 @@ ...@@ -201,7 +201,6 @@
<label>Confirm password</label> <label>Confirm password</label>
<oneit:input type="password" name="<%= passkey + 2 %>" class="form-control second-style reset-pw"/> <oneit:input type="password" name="<%= passkey + 2 %>" class="form-control second-style reset-pw"/>
</div> </div>
<% <%
} }
%> %>
......
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