Commit 873012d0 by Harsh Shah

Finish Release-20170929

parents 3531e085 2104a1a4
......@@ -9,7 +9,7 @@
<column name="object_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="score_number" type="Long" nullable="true"/>
<column name="color_rank" type="Long" nullable="true"/>
<column name="color_code" type="String" nullable="true" length="200"/>
<column name="wghtd_score" type="Long" nullable="true"/>
<column name="test_analysis_id" type="Long" length="11" nullable="true"/>
<column name="factor_number" type="Long" length="11" nullable="true"/>
......
......@@ -9,7 +9,7 @@ CREATE TABLE tl_score (
object_created_date datetime DEFAULT getdate() NOT NULL
,
score_number numeric(12) NULL,
color_rank numeric(12) NULL,
color_code varchar(200) NULL,
wghtd_score numeric(12) NULL,
test_analysis_id numeric(12) NULL,
factor_number numeric(12) NULL,
......
......@@ -10,7 +10,7 @@ CREATE TABLE tl_score (
object_created_date date DEFAULT SYSDATE NOT NULL
,
score_number number(12) NULL,
color_rank number(12) NULL,
color_code varchar2(200) NULL,
wghtd_score number(12) NULL,
test_analysis_id number(12) NULL,
factor_number number(12) NULL,
......
......@@ -10,7 +10,7 @@ CREATE TABLE tl_score (
object_created_date timestamp DEFAULT NOW() NOT NULL
,
score_number numeric(12) NULL,
color_rank numeric(12) NULL,
color_code varchar(200) NULL,
wghtd_score numeric(12) NULL,
test_analysis_id numeric(12) NULL,
factor_number numeric(12) NULL,
......
......@@ -11,6 +11,7 @@ import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException;
import oneit.utils.CollectionUtils;
import performa.intercom.utils.IntercomUtils;
import performa.orm.Company;
......@@ -20,7 +21,7 @@ public class SaveCompanyFP extends SaveFP
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{
HttpServletRequest request = submission.getRequest();
Company company = process.getAttribute("Company") != null ? (Company) process.getAttribute("Company") : (Company) request.getAttribute("Company");
Company company = process.getAttribute("Company") != null ? (Company) process.getAttribute("Company") : (Company) request.getAttribute("Company");
LogMgr.log(Company.LOG, LogLevel.PROCESSING1,"In SaveCompanyFP saving company : ", company );
......@@ -31,6 +32,9 @@ public class SaveCompanyFP extends SaveFP
LogMgr.log(Company.LOG, LogLevel.PROCESSING1,"In SaveCompanyFP setting comany logo to null of company : ", company );
}
// Update company in intercom
IntercomUtils.updateCompany(company);
return super.processForm(process, submission, params);
}
}
\ No newline at end of file
......@@ -6,7 +6,6 @@ import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.security.SecUser;
......@@ -20,6 +19,8 @@ import oneit.utils.CollectionUtils;
import oneit.utils.InitialisationException;
import oneit.utils.MultiException;
import oneit.utils.StringUtils;
import performa.intercom.resources.User;
import performa.intercom.utils.IntercomUtils;
import performa.orm.CompanyUser;
import performa.utils.Utils;
......@@ -41,42 +42,56 @@ public class SaveUserDetailsFP extends SaveFP
if(oldSecUser != null)
{
if(!companyUser.isLoggedViaSocial() && !CollectionUtils.equals(oldSecUser.getUserName(), secUser.getUserName()))
if( !CollectionUtils.equals(oldSecUser.getEmail(), secUser.getEmail()))
{
if(companyUser.getConfirmPassword() == null)
if(!companyUser.isLoggedViaSocial()) //email changed for normal user
{
submission.getRequest().setAttribute("EmailChanged", true);
return RedisplayResult.getInstance();
}
else
{
boolean validPassword = secUser.checkPassword(companyUser.getConfirmPassword());
if(!validPassword)
if(companyUser.getConfirmPassword() == null)
{
submission.getRequest().setAttribute("EmailChanged", false);
companyUser.setConfirmPassword(null);
submission.getRequest().setAttribute("EmailChanged", true);
return RedisplayResult.getInstance();
}
else
{
boolean validPassword = secUser.checkPassword(companyUser.getConfirmPassword());
BusinessObjectParser.assertFieldCondition(validPassword, companyUser, CompanyUser.FIELD_ConfirmPassword, "passwordNotMatch");
if(!validPassword)
{
submission.getRequest().setAttribute("EmailChanged", false);
companyUser.setConfirmPassword(null);
}
if(validPassword)
{
companyUser.setIsAccountVerified(Boolean.FALSE);
companyUser.setIsEmailChanged(Boolean.TRUE);
Utils.sendEmailChangedMail(companyUser, request, emailer, SaveUserDetailsFP.class.getName());
BusinessObjectParser.assertFieldCondition(validPassword, companyUser, CompanyUser.FIELD_ConfirmPassword, "passwordNotMatch");
if(validPassword)
{
// companyUser.setIsAccountVerified(Boolean.FALSE);
companyUser.setIsEmailChanged(Boolean.TRUE);
Utils.sendEmailChangedMail(companyUser, request, emailer, SaveUserDetailsFP.class.getName());
}
}
// secUser.setEmail(secUser.getUserName());
}
else //email changed for social login
{
//send email verification mail
LogMgr.log(CompanyUser.LOG, LogLevel.PROCESSING1,"Sending email resetted mail", companyUser );
companyUser.setIsEmailChanged(Boolean.TRUE);
Utils.sendEmailChangedMail(companyUser, request, emailer, SaveUserDetailsFP.class.getName());
}
}
else if (companyUser.isLoggedViaSocial() && !CollectionUtils.equals(oldSecUser.getEmail(), secUser.getEmail()))
User intercomUser = IntercomUtils.updateIntercomUser(secUser);
if(intercomUser == null)
{
//send email verification mail
LogMgr.log(CompanyUser.LOG, LogLevel.PROCESSING1,"Sending email resetted mail", companyUser );
companyUser.setIsEmailChanged(Boolean.TRUE);
Utils.sendEmailChangedMail(companyUser, request, emailer, SaveUserDetailsFP.class.getName());
performa.intercom.resources.Company intercomCompany = IntercomUtils.findOrCreateCompany(companyUser.getCompany());
IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany);
}
}
......
......@@ -19,11 +19,12 @@ import oneit.servlets.security.SessionSecUserDecorator;
import oneit.utils.*;
import performa.intercom.utils.IntercomUtils;
import performa.orm.*;
import performa.orm.types.RoleType;
import performa.utils.Utils;
import performa.utils.WebUtils;
public class SendCompanyUserInvitesFP extends ORMProcessFormProcessor
public class SendCompanyUserInvitesFP extends SaveFP
{
private static final LoggingArea LOG = LoggingArea.createLoggingArea("SendCompanyUserInvites");
......@@ -36,16 +37,25 @@ public class SendCompanyUserInvitesFP extends ORMProcessFormProcessor
{
HttpServletRequest request = submission.getRequest();
Company company = (Company) process.getAttribute("Company");
CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser");
for(CompanyUser cUser : company.getUsersSet())
if(companyUser != null && companyUser == company.getAddedByUser())
{
if(!CollectionUtils.equals(cUser, company.getAddedByUser()))
for(CompanyUser cUser : company.getUsersSet())
{
SecUser secUser = cUser.getUser();
if(!CollectionUtils.equals(cUser, company.getAddedByUser()))
{
SecUser secUser = cUser.getUser();
BusinessObjectParser.assertFieldCondition(secUser.getEmail()!=null, secUser, SecUser.FIELD_Email, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(!Utils.isCompanyUserEmailFound(process.getTransaction(), secUser.getEmail()), secUser, SecUser.FIELD_Email, "emailExists", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(secUser.getEmail()!= null, secUser, SecUser.FIELD_Email, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(!Utils.isCompanyUserEmailFound(process.getTransaction(), secUser.getEmail()), secUser, SecUser.FIELD_Email, "emailExists", exceptions, true, request);
}
}
if(!company.isTrue(company.getIsVerified()))
{
BusinessObjectParser.assertFieldCondition(company.getCompanyName()!=null, company, Company.FIELD_CompanyName, "mandatory", exceptions, true, request);
}
}
......@@ -59,21 +69,19 @@ public class SendCompanyUserInvitesFP extends ORMProcessFormProcessor
HttpServletRequest request = submission.getRequest();
ObjectTransaction objTran = process.getTransaction();
Company company = (Company) process.getAttribute("Company");
CompanyUser companyUser = company.getAddedByUser();
CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser");
SecUser secUser = companyUser.getUser();
String nextPage = (String) request.getAttribute("nextPage");
Boolean socialLogin = CollectionUtils.equals(process.getAttribute("socialLogin"), Boolean.TRUE);
LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing Company User", companyUser, secUser);
companyUser.setIsAccountVerified(Boolean.TRUE);
company.setIsVerified(Boolean.TRUE);
sendAccountCreatedMail(companyUser, request);
if(!socialLogin)
{
secUser.setAttribute("md5:" + SecUser.FIELD_Password, companyUser.getPassword());
request.getSession().setAttribute (SecUser.SEC_USER_ID, secUser);
request.getSession().setAttribute (SessionSecUserDecorator.REFRESH_SECURITY, Boolean.TRUE);
......@@ -83,42 +91,38 @@ public class SendCompanyUserInvitesFP extends ORMProcessFormProcessor
LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing Company User finished", companyUser, secUser);
//process user invitations
for(CompanyUser cUser : company.getUsersSet())
if(companyUser == company.getAddedByUser())
{
if(!CollectionUtils.equals(cUser, companyUser))
//process user invitations
for(CompanyUser cUser : company.getUsersSet())
{
Tuple.T2<SecUser, Boolean> userdata = Utils.getSecUserForCompanyIfAvailable(cUser);
SecUser sUser = userdata.get0();
if(!CollectionUtils.equals(cUser, companyUser))
{
SecUser sUser = cUser.getUser();
LogMgr.log(LOG, LogLevel.PROCESSING1, "Started to send invitaion email.", cUser);
LogMgr.log(LOG, LogLevel.PROCESSING1, "Started to send invitaion email.", cUser);
if(!userdata.get1()) //check user availablility
{
sUser.setUserName(sUser.getEmail().toLowerCase());
}
sUser.setAttribute("md5:" + SecUser.FIELD_Password, CompanyUser.DEFAULT_PASSWORD);
sUser.addRole(Utils.getRole(Utils.ROLE_CLIENT, objTran));
companyUser.setRole(RoleType.STANDARD);
sUser.setAttribute("md5:" + SecUser.FIELD_Password, CompanyUser.DEFAULT_PASSWORD);
sUser.addRole(Utils.getRole(Utils.ROLE_CLIENT, objTran));
LogMgr.log(LOG, LogLevel.PROCESSING1, "New user created :: ", sUser);
LogMgr.log(LOG, LogLevel.PROCESSING1, "New user created :: ", sUser);
sendInvitationMail(cUser, request);
sendInvitationMail(cUser, request);
LogMgr.log(LOG, LogLevel.PROCESSING1, "End of sending invitation email.", cUser);
LogMgr.log(LOG, LogLevel.PROCESSING1, "End of sending invitation email.", cUser);
}
}
}
// Create company and the first user of it in intercom
performa.intercom.resources.Company intercomCompany = IntercomUtils.createIntercomCompany(company);
performa.intercom.resources.Company intercomCompany = IntercomUtils.findOrCreateCompany(company);
IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany);
process.completeAndRestart();
return new ProcessRedirectResult(nextPage, new String[0]);
return super.processForm(process, submission, params);
}
......
......@@ -42,11 +42,11 @@ public class SendVerificationMailFP extends SaveFP
CompanyUser companyUser = company.getAddedByUser();
SecUser secUser = companyUser.getUser();
BusinessObjectParser.assertFieldCondition(!Utils.isCompanyUserEmailFound(process.getTransaction(), secUser.getEmail()), secUser, SecUser.FIELD_Email, "emailExists", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(!Utils.emailExists(process.getTransaction(), secUser.getEmail()), secUser, SecUser.FIELD_Email, "emailExists", exceptions, true, request);
}
else
{
BusinessObjectParser.assertFieldCondition(!job.isEmailFound(), job, Job.FIELD_Email, "emailExists", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(!Utils.emailExists(process.getTransaction(), job.getEmail()), job, Job.FIELD_Email, "emailExists", exceptions, true, request);
}
super.validate(process, submission, exceptions, params);
......
......@@ -57,6 +57,7 @@ public class SignInCandidateFP extends LoginProcessor
BusinessObjectParser.assertFieldCondition(job.getEmail()!= null, job, Job.FIELD_Email, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(job.getPassword()!= null, job, Job.FIELD_Password, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(!Utils.emailExists(job.getTransaction(), job.getEmail()), job, Job.FIELD_Email, "emailExists", exceptions, true, request);
return super.validate(submission, exceptions);
}
......
package performa.form;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.appservices.config.ConfigMgr;
import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.email.ConfigurableEmailerException;
import oneit.logging.*;
import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.objstore.validator.AttributeValidator;
import oneit.security.SecUser;
import oneit.servlets.forms.*;
import oneit.servlets.process.*;
import oneit.servlets.security.SessionSecUserDecorator;
import oneit.utils.*;
import oneit.utils.parsers.FieldException;
import performa.intercom.utils.IntercomUtils;
import performa.orm.*;
import performa.utils.Utils;
import performa.utils.WebUtils;
public class VerifyCompanyUserFP extends ORMProcessFormProcessor
{
private static final LoggingArea LOG = LoggingArea.createLoggingArea("VerifyCompanyUser");
protected ConfigurableArticleTemplateEmailer emailer;
@Override
public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException
{
HttpServletRequest request = submission.getRequest();
CompanyUser companyUser = (CompanyUser) process.getAttribute("CompanyUser");
Boolean socialLogin = (Boolean) request.getAttribute("socialLogin");
SecUser secUser = companyUser.getUser();
Company company = companyUser.getCompany();
if(socialLogin)
{
BusinessObjectParser.assertFieldCondition(secUser.getEmail()!=null, secUser, SecUser.FIELD_Email, "invalid", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(!Utils.isCompanyUserEmailFound(secUser.getTransaction(), secUser.getEmail()), secUser, SecUser.FIELD_Email, "emailExists", exceptions, true, request);
}
else
{
BusinessObjectParser.assertFieldCondition(StringUtils.isEmailAddress(secUser.getUserName()), secUser, SecUser.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(!company.isTrue(company.getIsVerified()))
{
BusinessObjectParser.assertFieldCondition(company.getCompanyName()!=null, company, Company.FIELD_CompanyName, "mandatory", exceptions, true, request);
}
if(!socialLogin)
{
BusinessObjectParser.assertFieldCondition(companyUser.getPassword()!= null, companyUser, CompanyUser.FIELD_Password, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(companyUser.getConfirmPassword()!= null, companyUser, CompanyUser.FIELD_ConfirmPassword, "mandatory", exceptions, true, request);
BusinessObjectParser.assertFieldCondition(CollectionUtils.equals(companyUser.getPassword(), companyUser.getConfirmPassword()), companyUser, CompanyUser.FIELD_ConfirmPassword, "passwordNotMatch", exceptions, true, request);
//to validate password
AttributeValidator passwordValidator = (AttributeValidator)(ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "PasswordValidator", null));
try
{
//execute if not null
if (passwordValidator != null)
{
passwordValidator.validate (null, secUser, "Password", companyUser.getPassword());
}
}
catch (FieldException e)
{
exceptions.addException(new FieldException(e, CompanyUser.FIELD_Password));
}
catch (Exception e)
{
throw NestedException.wrap(e);
}
}
super.validate(process, submission, exceptions, params);
}
@Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{
HttpServletRequest request = submission.getRequest();
CompanyUser companyUser = (CompanyUser) process.getAttribute("CompanyUser");
SecUser secUser = companyUser.getUser();
Company company = companyUser.getCompany();
String nextPage = (String) request.getAttribute("nextPage");
Boolean socialLogin = (Boolean) request.getAttribute("socialLogin");
LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing User", companyUser, secUser);
if(CollectionUtils.equals(companyUser.getPassword(), companyUser.getConfirmPassword()))
{
if(!company.isTrue(company.getIsVerified()) && CollectionUtils.equals(company.getAddedByUser(), companyUser))
{
process.setAttribute("Company", company);
process.setAttribute("socialLogin", socialLogin);
return new ProcessRedirectResult(nextPage, new String[0]);
}
else
{
nextPage = WebUtils.getArticleByShortCut(process.getTransaction(), WebUtils.ADMIN_HOME).getLink(request);
// Create company user in intercom
performa.intercom.resources.Company intercomCompany = IntercomUtils.findCompanyByID(company);
IntercomUtils.createIntercomUser(secUser, "Hiring Team", intercomCompany);
}
if(!socialLogin)
{
secUser.setAttribute("md5:" + SecUser.FIELD_Password, companyUser.getPassword());
}
companyUser.setIsAccountVerified(Boolean.TRUE);
sendMail(companyUser, request);
request.getSession().setAttribute (SecUser.SEC_USER_ID, secUser);
request.getSession().setAttribute (SessionSecUserDecorator.REFRESH_SECURITY, Boolean.TRUE);
LogMgr.log(LOG, LogLevel.PROCESSING1, "Password resetted", companyUser, secUser);
}
LogMgr.log(LOG, LogLevel.PROCESSING1, "Verifing User finished", companyUser, secUser);
process.completeAndRestart();
return new ProcessRedirectResult(nextPage, new String[0]);
}
@Override
public void init(ParticipantInitialisationContext context) throws InitialisationException
{
super.init(context);
emailer = (ConfigurableArticleTemplateEmailer) (context.getSingleChild("AccountCreatedEmailer"));
}
protected void sendMail(CompanyUser companyUser, HttpServletRequest request) throws BusinessException
{
try
{
LogMgr.log(LOG, LogLevel.PROCESSING1, "Sending Account Created mail from VerifyCompanyUserFP to :: ", companyUser);
Map defaultParams = CollectionUtils.EMPTY_MAP;
ObjectTransform transform = Utils.createCompoundTransform(defaultParams, companyUser);
Utils.sendMail(emailer, transform, new String[]{companyUser.getEmailAddressFromUser()}, null, companyUser);
LogMgr.log(LOG, LogLevel.PROCESSING1, "Sent Account Created mail successfully from " + VerifyCompanyUserFP.class + " to :: ", companyUser);
}
catch (ConfigurableEmailerException ex)
{
LogMgr.log(LOG, LogLevel.SYSTEMERROR1, ex, "Error occured while sending mail for CompanyUser :: " + companyUser);
throw new BusinessException("We are unable to send mail. Please try again or contact Talentology for more details.");
}
}
}
\ No newline at end of file
......@@ -24,13 +24,13 @@ public class IntercomUtils
public static User createIntercomUser(SecUser secUser, String role, Company company)
{
try
{
{
User user = new User();
user.setUserId(secUser.getIdentification());
user.setEmail(secUser.getUserName());
user.setEmail(secUser.getEmail());
user.setName(secUser.getName());
user.addCustomAttribute(CustomAttribute.newStringAttribute("role", role));
user.addCustomAttribute(CustomAttribute.newStringAttribute("role", role));
if(company != null)
{
......@@ -48,6 +48,48 @@ public class IntercomUtils
}
public static User findUserByID(SecUser secUser)
{
try
{
Map<String, String> map = new HashMap<>();
map.put("user_id", secUser.getIdentification());
return User.find(map);
}
catch (Exception e)
{
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, e, "Error while fetching a user by id from intercom");
return null;
}
}
public static User updateIntercomUser(SecUser secUser)
{
try
{
User user = findUserByID(secUser);
if(user != null)
{
user.setEmail(secUser.getEmail());
user.setName(secUser.getName());
User.update(user);
}
return user;
}
catch (Exception e)
{
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, e, "Error while updating a user in intercom");
return null;
}
}
public static Company createIntercomCompany(performa.orm.Company company)
{
try
......@@ -76,20 +118,50 @@ public class IntercomUtils
map.put("company_id", company.getID().toString());
Company intercomCompany = Company.find(map);
return Company.find(map);
}
catch (Exception e)
{
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, e, "Error while fetching a company by id from intercom");
return null;
}
}
public static void updateCompany(performa.orm.Company company)
{
try
{
Company intercomCompany = findCompanyByID(company);
if(intercomCompany == null)
{
intercomCompany = createIntercomCompany(company);
createIntercomCompany(company);
}
return intercomCompany;
}
else
{
intercomCompany.setName(company.getCompanyName());
Company.update(intercomCompany);
}
}
catch (Exception e)
{
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, e, "Error while fetching a company by id from intercom");
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, e, "Error while updating company in intercom");
return null;
}
}
public static Company findOrCreateCompany(performa.orm.Company company)
{
Company intercomCompany = findCompanyByID(company);
if(intercomCompany == null)
{
intercomCompany = createIntercomCompany(company);
}
return intercomCompany;
}
}
......@@ -60,6 +60,7 @@ public abstract class BaseCompany extends BaseBusinessClass
public static final String FIELD_LastName = "LastName";
public static final String FIELD_RoleType = "RoleType";
public static final String FIELD_IsLogoDeleted = "IsLogoDeleted";
public static final String FIELD_CompletedProfile = "CompletedProfile";
public static final String SINGLEREFERENCE_AddedByUser = "AddedByUser";
public static final String MULTIPLEREFERENCE_Users = "Users";
public static final String BACKREF_Users = "";
......@@ -87,6 +88,7 @@ public abstract class BaseCompany extends BaseBusinessClass
private static final DefaultAttributeHelper<Company> HELPER_LastName = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<Company, RoleType> HELPER_RoleType = new EnumeratedAttributeHelper<Company, RoleType> (RoleType.FACTORY_RoleType);
private static final DefaultAttributeHelper<Company> HELPER_IsLogoDeleted = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<Company> HELPER_CompletedProfile = DefaultAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
......@@ -106,6 +108,7 @@ public abstract class BaseCompany extends BaseBusinessClass
private String _LastName;
private RoleType _RoleType;
private Boolean _IsLogoDeleted;
private Boolean _CompletedProfile;
// Private attributes corresponding to single references
......@@ -126,6 +129,7 @@ public abstract class BaseCompany extends BaseBusinessClass
private static final AttributeValidator[] FIELD_LastName_Validators;
private static final AttributeValidator[] FIELD_RoleType_Validators;
private static final AttributeValidator[] FIELD_IsLogoDeleted_Validators;
private static final AttributeValidator[] FIELD_CompletedProfile_Validators;
private static final AttributeValidator[] FIELD_CompanyName_Validators;
private static final AttributeValidator[] FIELD_CompanyLogo_Validators;
private static final AttributeValidator[] FIELD_HiringTeamType_Validators;
......@@ -160,6 +164,7 @@ public abstract class BaseCompany extends BaseBusinessClass
FIELD_LastName_Validators = (AttributeValidator[])setupAttribMetaData_LastName(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_RoleType_Validators = (AttributeValidator[])setupAttribMetaData_RoleType(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_IsLogoDeleted_Validators = (AttributeValidator[])setupAttribMetaData_IsLogoDeleted(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CompletedProfile_Validators = (AttributeValidator[])setupAttribMetaData_CompletedProfile(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CompanyName_Validators = (AttributeValidator[])setupAttribMetaData_CompanyName(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_CompanyLogo_Validators = (AttributeValidator[])setupAttribMetaData_CompanyLogo(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_HiringTeamType_Validators = (AttributeValidator[])setupAttribMetaData_HiringTeamType(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -318,6 +323,24 @@ public abstract class BaseCompany extends BaseBusinessClass
}
// Meta Info setup
private static List setupAttribMetaData_CompletedProfile(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("defaultValue", "Boolean.FALSE");
metaInfo.put ("name", "CompletedProfile");
metaInfo.put ("type", "Boolean");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for Company.CompletedProfile:", metaInfo);
ATTRIBUTES_METADATA_Company.put (FIELD_CompletedProfile, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(Company.class, "CompletedProfile", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for Company.CompletedProfile:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_CompanyName(Map validatorMapping)
{
Map metaInfo = new HashMap ();
......@@ -583,6 +606,7 @@ public abstract class BaseCompany extends BaseBusinessClass
_LastName = (String)(HELPER_LastName.initialise (_LastName));
_RoleType = (RoleType)(RoleType.STANDARD);
_IsLogoDeleted = (Boolean)(Boolean.FALSE);
_CompletedProfile = (Boolean)(Boolean.FALSE);
}
......@@ -2182,6 +2206,104 @@ public abstract class BaseCompany extends BaseBusinessClass
}
}
/**
* Get the attribute CompletedProfile
*/
public Boolean getCompletedProfile ()
{
assertValid();
Boolean valToReturn = _CompletedProfile;
for (CompanyBehaviourDecorator bhd : Company_BehaviourDecorators)
{
valToReturn = bhd.getCompletedProfile ((Company)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 preCompletedProfileChange (Boolean newCompletedProfile) 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 postCompletedProfileChange () throws FieldException
{
}
public FieldWriteability getWriteability_CompletedProfile ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute CompletedProfile. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setCompletedProfile (Boolean newCompletedProfile) throws FieldException
{
boolean oldAndNewIdentical = HELPER_CompletedProfile.compare (_CompletedProfile, newCompletedProfile);
try
{
for (CompanyBehaviourDecorator bhd : Company_BehaviourDecorators)
{
newCompletedProfile = bhd.setCompletedProfile ((Company)this, newCompletedProfile);
oldAndNewIdentical = HELPER_CompletedProfile.compare (_CompletedProfile, newCompletedProfile);
}
if (FIELD_CompletedProfile_Validators.length > 0)
{
Object newCompletedProfileObj = HELPER_CompletedProfile.toObject (newCompletedProfile);
if (newCompletedProfileObj != null)
{
int loopMax = FIELD_CompletedProfile_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_Company.get (FIELD_CompletedProfile);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_CompletedProfile_Validators[v].checkAttribute (this, FIELD_CompletedProfile, metadata, newCompletedProfileObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_CompletedProfile () != FieldWriteability.FALSE, "Field CompletedProfile is not writeable");
preCompletedProfileChange (newCompletedProfile);
markFieldChange (FIELD_CompletedProfile);
_CompletedProfile = newCompletedProfile;
postFieldChange (FIELD_CompletedProfile);
postCompletedProfileChange ();
}
}
/**
......@@ -2982,6 +3104,7 @@ public abstract class BaseCompany extends BaseBusinessClass
_LastName = sourceCompany._LastName;
_RoleType = sourceCompany._RoleType;
_IsLogoDeleted = sourceCompany._IsLogoDeleted;
_CompletedProfile = sourceCompany._CompletedProfile;
}
}
......@@ -3055,6 +3178,7 @@ public abstract class BaseCompany extends BaseBusinessClass
_LastName = (String)(HELPER_LastName.readExternal (_LastName, vals.get(FIELD_LastName))); //
_RoleType = (RoleType)(HELPER_RoleType.readExternal (_RoleType, vals.get(FIELD_RoleType))); //
_IsLogoDeleted = (Boolean)(HELPER_IsLogoDeleted.readExternal (_IsLogoDeleted, vals.get(FIELD_IsLogoDeleted))); //
_CompletedProfile = (Boolean)(HELPER_CompletedProfile.readExternal (_CompletedProfile, vals.get(FIELD_CompletedProfile))); //
_AddedByUser.readExternalData(vals.get(SINGLEREFERENCE_AddedByUser));
_Users.readExternalData(vals.get(MULTIPLEREFERENCE_Users));
_Clients.readExternalData(vals.get(MULTIPLEREFERENCE_Clients));
......@@ -3085,6 +3209,7 @@ public abstract class BaseCompany extends BaseBusinessClass
vals.put (FIELD_LastName, HELPER_LastName.writeExternal (_LastName));
vals.put (FIELD_RoleType, HELPER_RoleType.writeExternal (_RoleType));
vals.put (FIELD_IsLogoDeleted, HELPER_IsLogoDeleted.writeExternal (_IsLogoDeleted));
vals.put (FIELD_CompletedProfile, HELPER_CompletedProfile.writeExternal (_CompletedProfile));
vals.put (SINGLEREFERENCE_AddedByUser, _AddedByUser.writeExternalData());
vals.put (MULTIPLEREFERENCE_Users, _Users.writeExternalData());
vals.put (MULTIPLEREFERENCE_Clients, _Clients.writeExternalData());
......@@ -3167,6 +3292,7 @@ public abstract class BaseCompany extends BaseBusinessClass
visitor.visitField(this, FIELD_LastName, HELPER_LastName.toObject(getLastName()));
visitor.visitField(this, FIELD_RoleType, HELPER_RoleType.toObject(getRoleType()));
visitor.visitField(this, FIELD_IsLogoDeleted, HELPER_IsLogoDeleted.toObject(getIsLogoDeleted()));
visitor.visitField(this, FIELD_CompletedProfile, HELPER_CompletedProfile.toObject(getCompletedProfile()));
}
......@@ -3484,6 +3610,10 @@ public abstract class BaseCompany extends BaseBusinessClass
{
return HELPER_IsLogoDeleted.toObject (getIsLogoDeleted ());
}
else if (attribName.equals (FIELD_CompletedProfile))
{
return HELPER_CompletedProfile.toObject (getCompletedProfile ());
}
else
{
return super.getAttribute (attribName);
......@@ -3561,6 +3691,10 @@ public abstract class BaseCompany extends BaseBusinessClass
{
return HELPER_IsLogoDeleted;
}
else if (attribName.equals (FIELD_CompletedProfile))
{
return HELPER_CompletedProfile;
}
else
{
return super.getAttributeHelper (attribName);
......@@ -3638,6 +3772,10 @@ public abstract class BaseCompany extends BaseBusinessClass
{
setIsLogoDeleted ((Boolean)(HELPER_IsLogoDeleted.fromObject (_IsLogoDeleted, attribValue)));
}
else if (attribName.equals (FIELD_CompletedProfile))
{
setCompletedProfile ((Boolean)(HELPER_CompletedProfile.fromObject (_CompletedProfile, attribValue)));
}
else
{
super.setAttribute (attribName, attribValue);
......@@ -3734,6 +3872,10 @@ public abstract class BaseCompany extends BaseBusinessClass
{
return getWriteability_IsLogoDeleted ();
}
else if (fieldName.equals (FIELD_CompletedProfile))
{
return getWriteability_CompletedProfile ();
}
else
{
return super.getWriteable (fieldName);
......@@ -3824,6 +3966,11 @@ public abstract class BaseCompany extends BaseBusinessClass
fields.add (FIELD_IsLogoDeleted);
}
if (getWriteability_CompletedProfile () != FieldWriteability.TRUE)
{
fields.add (FIELD_CompletedProfile);
}
super.putUnwriteable (fields);
}
......@@ -3849,6 +3996,7 @@ public abstract class BaseCompany extends BaseBusinessClass
result.add(HELPER_LastName.getAttribObject (getClass (), _LastName, false, FIELD_LastName));
result.add(HELPER_RoleType.getAttribObject (getClass (), _RoleType, false, FIELD_RoleType));
result.add(HELPER_IsLogoDeleted.getAttribObject (getClass (), _IsLogoDeleted, false, FIELD_IsLogoDeleted));
result.add(HELPER_CompletedProfile.getAttribObject (getClass (), _CompletedProfile, false, FIELD_CompletedProfile));
return result;
}
......@@ -4205,6 +4353,24 @@ public abstract class BaseCompany extends BaseBusinessClass
return newIsLogoDeleted;
}
/**
* Get the attribute CompletedProfile
*/
public Boolean getCompletedProfile (Company obj, Boolean original)
{
return original;
}
/**
* Change the value set for attribute CompletedProfile.
* May modify the field beforehand
* Occurs before validation.
*/
public Boolean setCompletedProfile (Company obj, Boolean newCompletedProfile) throws FieldException
{
return newCompletedProfile;
}
}
......@@ -4285,6 +4451,10 @@ public abstract class BaseCompany extends BaseBusinessClass
{
return toIsLogoDeleted ();
}
if (name.equals ("CompletedProfile"))
{
return toCompletedProfile ();
}
if (name.equals ("CompanyName"))
{
return toCompanyName ();
......@@ -4349,6 +4519,8 @@ public abstract class BaseCompany extends BaseBusinessClass
public PipeLine<From, Boolean> toIsLogoDeleted () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_IsLogoDeleted)); }
public PipeLine<From, Boolean> toCompletedProfile () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_CompletedProfile)); }
public PipeLine<From, String> toCompanyName () { return pipe(new ORMAttributePipe<Me, String>(FIELD_CompanyName)); }
public PipeLine<From, BinaryContent> toCompanyLogo () { return pipe(new ORMAttributePipe<Me, BinaryContent>(FIELD_CompanyLogo)); }
......@@ -4419,6 +4591,11 @@ public abstract class BaseCompany extends BaseBusinessClass
return true;
}
if(CollectionUtils.equals(attribName, "CompletedProfile"))
{
return true;
}
return super.isTransientAttrib(attribName);
}
......
......@@ -41,9 +41,8 @@ public abstract class BaseFactorScore extends BaseBusinessClass
// Static constants corresponding to field names
public static final String FIELD_Score = "Score";
public static final String FIELD_ColorRank = "ColorRank";
public static final String FIELD_WghtdScore = "WghtdScore";
public static final String FIELD_ColorCode = "ColorCode";
public static final String FIELD_WghtdScore = "WghtdScore";
public static final String SINGLEREFERENCE_TestAnalysis = "TestAnalysis";
public static final String BACKREF_TestAnalysis = "";
public static final String SINGLEREFERENCE_Factor = "Factor";
......@@ -57,16 +56,14 @@ public abstract class BaseFactorScore extends BaseBusinessClass
// Static constants corresponding to attribute helpers
private static final DefaultAttributeHelper<FactorScore> HELPER_Score = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<FactorScore> HELPER_ColorRank = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<FactorScore> HELPER_WghtdScore = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper<FactorScore, ColorCode> HELPER_ColorCode = new EnumeratedAttributeHelper<FactorScore, ColorCode> (ColorCode.FACTORY_ColorCode);
private static final DefaultAttributeHelper<FactorScore> HELPER_WghtdScore = DefaultAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
private Integer _Score;
private Integer _ColorRank;
private Integer _WghtdScore;
private ColorCode _ColorCode;
private Integer _WghtdScore;
// Private attributes corresponding to single references
......@@ -83,9 +80,8 @@ public abstract class BaseFactorScore extends BaseBusinessClass
private static final Map ATTRIBUTES_METADATA_FactorScore = new HashMap ();
// Arrays of validators for each attribute
private static final AttributeValidator[] FIELD_ColorCode_Validators;
private static final AttributeValidator[] FIELD_Score_Validators;
private static final AttributeValidator[] FIELD_ColorRank_Validators;
private static final AttributeValidator[] FIELD_ColorCode_Validators;
private static final AttributeValidator[] FIELD_WghtdScore_Validators;
......@@ -106,9 +102,8 @@ public abstract class BaseFactorScore extends BaseBusinessClass
setupAssocMetaData_Factor();
setupAssocMetaData_Level();
setupAssocMetaData_Narrative();
FIELD_ColorCode_Validators = (AttributeValidator[])setupAttribMetaData_ColorCode(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_Score_Validators = (AttributeValidator[])setupAttribMetaData_Score(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_ColorRank_Validators = (AttributeValidator[])setupAttribMetaData_ColorRank(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_ColorCode_Validators = (AttributeValidator[])setupAttribMetaData_ColorCode(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_WghtdScore_Validators = (AttributeValidator[])setupAttribMetaData_WghtdScore(validatorMapping).toArray (new AttributeValidator[0]);
......@@ -183,24 +178,6 @@ public abstract class BaseFactorScore extends BaseBusinessClass
// Meta Info setup
private static List setupAttribMetaData_ColorCode(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "EnumeratedAttributeHelper");
metaInfo.put ("name", "ColorCode");
metaInfo.put ("type", "ColorCode");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for FactorScore.ColorCode:", metaInfo);
ATTRIBUTES_METADATA_FactorScore.put (FIELD_ColorCode, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(FactorScore.class, "ColorCode", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for FactorScore.ColorCode:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_Score(Map validatorMapping)
{
Map metaInfo = new HashMap ();
......@@ -219,19 +196,20 @@ public abstract class BaseFactorScore extends BaseBusinessClass
}
// Meta Info setup
private static List setupAttribMetaData_ColorRank(Map validatorMapping)
private static List setupAttribMetaData_ColorCode(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "color_rank");
metaInfo.put ("name", "ColorRank");
metaInfo.put ("type", "Integer");
metaInfo.put ("attribHelper", "EnumeratedAttributeHelper");
metaInfo.put ("dbcol", "color_code");
metaInfo.put ("name", "ColorCode");
metaInfo.put ("type", "ColorCode");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for FactorScore.ColorRank:", metaInfo);
ATTRIBUTES_METADATA_FactorScore.put (FIELD_ColorRank, Collections.unmodifiableMap (metaInfo));
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for FactorScore.ColorCode:", metaInfo);
ATTRIBUTES_METADATA_FactorScore.put (FIELD_ColorCode, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(FactorScore.class, "ColorRank", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for FactorScore.ColorRank:", validators);
List validators = BaseBusinessClass.getAttribValidators(FactorScore.class, "ColorCode", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for FactorScore.ColorCode:", validators);
return validators;
}
......@@ -282,9 +260,8 @@ public abstract class BaseFactorScore extends BaseBusinessClass
_Score = (Integer)(HELPER_Score.initialise (_Score));
_ColorRank = (Integer)(HELPER_ColorRank.initialise (_ColorRank));
_WghtdScore = (Integer)(HELPER_WghtdScore.initialise (_WghtdScore));
_ColorCode = (ColorCode)(HELPER_ColorCode.initialise (_ColorCode));
_WghtdScore = (Integer)(HELPER_WghtdScore.initialise (_WghtdScore));
}
......@@ -416,16 +393,16 @@ public abstract class BaseFactorScore extends BaseBusinessClass
}
/**
* Get the attribute ColorRank
* Get the attribute ColorCode
*/
public Integer getColorRank ()
public ColorCode getColorCode ()
{
assertValid();
Integer valToReturn = _ColorRank;
ColorCode valToReturn = _ColorCode;
for (FactorScoreBehaviourDecorator bhd : FactorScore_BehaviourDecorators)
{
valToReturn = bhd.getColorRank ((FactorScore)this, valToReturn);
valToReturn = bhd.getColorCode ((FactorScore)this, valToReturn);
}
return valToReturn;
......@@ -437,7 +414,7 @@ public abstract class BaseFactorScore 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 preColorRankChange (Integer newColorRank) throws FieldException
protected void preColorCodeChange (ColorCode newColorCode) throws FieldException
{
}
......@@ -447,46 +424,46 @@ public abstract class BaseFactorScore 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 postColorRankChange () throws FieldException
protected void postColorCodeChange () throws FieldException
{
}
public FieldWriteability getWriteability_ColorRank ()
public FieldWriteability getWriteability_ColorCode ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute ColorRank. Checks to ensure a new value
* Set the attribute ColorCode. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setColorRank (Integer newColorRank) throws FieldException
public void setColorCode (ColorCode newColorCode) throws FieldException
{
boolean oldAndNewIdentical = HELPER_ColorRank.compare (_ColorRank, newColorRank);
boolean oldAndNewIdentical = HELPER_ColorCode.compare (_ColorCode, newColorCode);
try
{
for (FactorScoreBehaviourDecorator bhd : FactorScore_BehaviourDecorators)
{
newColorRank = bhd.setColorRank ((FactorScore)this, newColorRank);
oldAndNewIdentical = HELPER_ColorRank.compare (_ColorRank, newColorRank);
newColorCode = bhd.setColorCode ((FactorScore)this, newColorCode);
oldAndNewIdentical = HELPER_ColorCode.compare (_ColorCode, newColorCode);
}
if (FIELD_ColorRank_Validators.length > 0)
if (FIELD_ColorCode_Validators.length > 0)
{
Object newColorRankObj = HELPER_ColorRank.toObject (newColorRank);
Object newColorCodeObj = HELPER_ColorCode.toObject (newColorCode);
if (newColorRankObj != null)
if (newColorCodeObj != null)
{
int loopMax = FIELD_ColorRank_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_FactorScore.get (FIELD_ColorRank);
int loopMax = FIELD_ColorCode_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_FactorScore.get (FIELD_ColorCode);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_ColorRank_Validators[v].checkAttribute (this, FIELD_ColorRank, metadata, newColorRankObj);
FIELD_ColorCode_Validators[v].checkAttribute (this, FIELD_ColorCode, metadata, newColorCodeObj);
}
}
}
......@@ -504,12 +481,12 @@ public abstract class BaseFactorScore extends BaseBusinessClass
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_ColorRank () != FieldWriteability.FALSE, "Field ColorRank is not writeable");
preColorRankChange (newColorRank);
markFieldChange (FIELD_ColorRank);
_ColorRank = newColorRank;
postFieldChange (FIELD_ColorRank);
postColorRankChange ();
Debug.assertion (getWriteability_ColorCode () != FieldWriteability.FALSE, "Field ColorCode is not writeable");
preColorCodeChange (newColorCode);
markFieldChange (FIELD_ColorCode);
_ColorCode = newColorCode;
postFieldChange (FIELD_ColorCode);
postColorCodeChange ();
}
}
......@@ -611,104 +588,6 @@ public abstract class BaseFactorScore extends BaseBusinessClass
}
}
/**
* Get the attribute ColorCode
*/
public ColorCode getColorCode ()
{
assertValid();
ColorCode valToReturn = _ColorCode;
for (FactorScoreBehaviourDecorator bhd : FactorScore_BehaviourDecorators)
{
valToReturn = bhd.getColorCode ((FactorScore)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 preColorCodeChange (ColorCode newColorCode) 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 postColorCodeChange () throws FieldException
{
}
public FieldWriteability getWriteability_ColorCode ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute ColorCode. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setColorCode (ColorCode newColorCode) throws FieldException
{
boolean oldAndNewIdentical = HELPER_ColorCode.compare (_ColorCode, newColorCode);
try
{
for (FactorScoreBehaviourDecorator bhd : FactorScore_BehaviourDecorators)
{
newColorCode = bhd.setColorCode ((FactorScore)this, newColorCode);
oldAndNewIdentical = HELPER_ColorCode.compare (_ColorCode, newColorCode);
}
if (FIELD_ColorCode_Validators.length > 0)
{
Object newColorCodeObj = HELPER_ColorCode.toObject (newColorCode);
if (newColorCodeObj != null)
{
int loopMax = FIELD_ColorCode_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_FactorScore.get (FIELD_ColorCode);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_ColorCode_Validators[v].checkAttribute (this, FIELD_ColorCode, metadata, newColorCodeObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_ColorCode () != FieldWriteability.FALSE, "Field ColorCode is not writeable");
preColorCodeChange (newColorCode);
markFieldChange (FIELD_ColorCode);
_ColorCode = newColorCode;
postFieldChange (FIELD_ColorCode);
postColorCodeChange ();
}
}
/**
......@@ -1478,7 +1357,7 @@ public abstract class BaseFactorScore extends BaseBusinessClass
tl_scorePSet.setAttrib (FIELD_ObjectID, myID);
tl_scorePSet.setAttrib (FIELD_Score, HELPER_Score.toObject (_Score)); //
tl_scorePSet.setAttrib (FIELD_ColorRank, HELPER_ColorRank.toObject (_ColorRank)); //
tl_scorePSet.setAttrib (FIELD_ColorCode, HELPER_ColorCode.toObject (_ColorCode)); //
tl_scorePSet.setAttrib (FIELD_WghtdScore, HELPER_WghtdScore.toObject (_WghtdScore)); //
_TestAnalysis.getPersistentSets (allSets);
_Factor.getPersistentSets (allSets);
......@@ -1499,7 +1378,7 @@ public abstract class BaseFactorScore extends BaseBusinessClass
PersistentSet tl_scorePSet = allSets.getPersistentSet (objectID, "tl_score");
_Score = (Integer)(HELPER_Score.fromObject (_Score, tl_scorePSet.getAttrib (FIELD_Score))); //
_ColorRank = (Integer)(HELPER_ColorRank.fromObject (_ColorRank, tl_scorePSet.getAttrib (FIELD_ColorRank))); //
_ColorCode = (ColorCode)(HELPER_ColorCode.fromObject (_ColorCode, tl_scorePSet.getAttrib (FIELD_ColorCode))); //
_WghtdScore = (Integer)(HELPER_WghtdScore.fromObject (_WghtdScore, tl_scorePSet.getAttrib (FIELD_WghtdScore))); //
_TestAnalysis.setFromPersistentSets (objectID, allSets);
_Factor.setFromPersistentSets (objectID, allSets);
......@@ -1531,7 +1410,7 @@ public abstract class BaseFactorScore extends BaseBusinessClass
try
{
setColorRank (otherFactorScore.getColorRank ());
setColorCode (otherFactorScore.getColorCode ());
}
catch (FieldException ex)
{
......@@ -1563,9 +1442,8 @@ public abstract class BaseFactorScore extends BaseBusinessClass
BaseFactorScore sourceFactorScore = (BaseFactorScore)(source);
_Score = sourceFactorScore._Score;
_ColorRank = sourceFactorScore._ColorRank;
_WghtdScore = sourceFactorScore._WghtdScore;
_ColorCode = sourceFactorScore._ColorCode;
_WghtdScore = sourceFactorScore._WghtdScore;
}
}
......@@ -1623,9 +1501,8 @@ public abstract class BaseFactorScore extends BaseBusinessClass
super.readExternalData(vals);
_Score = (Integer)(HELPER_Score.readExternal (_Score, vals.get(FIELD_Score))); //
_ColorRank = (Integer)(HELPER_ColorRank.readExternal (_ColorRank, vals.get(FIELD_ColorRank))); //
_WghtdScore = (Integer)(HELPER_WghtdScore.readExternal (_WghtdScore, vals.get(FIELD_WghtdScore))); //
_ColorCode = (ColorCode)(HELPER_ColorCode.readExternal (_ColorCode, vals.get(FIELD_ColorCode))); //
_WghtdScore = (Integer)(HELPER_WghtdScore.readExternal (_WghtdScore, vals.get(FIELD_WghtdScore))); //
_TestAnalysis.readExternalData(vals.get(SINGLEREFERENCE_TestAnalysis));
_Factor.readExternalData(vals.get(SINGLEREFERENCE_Factor));
_Level.readExternalData(vals.get(SINGLEREFERENCE_Level));
......@@ -1642,9 +1519,8 @@ public abstract class BaseFactorScore extends BaseBusinessClass
super.writeExternalData(vals);
vals.put (FIELD_Score, HELPER_Score.writeExternal (_Score));
vals.put (FIELD_ColorRank, HELPER_ColorRank.writeExternal (_ColorRank));
vals.put (FIELD_WghtdScore, HELPER_WghtdScore.writeExternal (_WghtdScore));
vals.put (FIELD_ColorCode, HELPER_ColorCode.writeExternal (_ColorCode));
vals.put (FIELD_WghtdScore, HELPER_WghtdScore.writeExternal (_WghtdScore));
vals.put (SINGLEREFERENCE_TestAnalysis, _TestAnalysis.writeExternalData());
vals.put (SINGLEREFERENCE_Factor, _Factor.writeExternalData());
vals.put (SINGLEREFERENCE_Level, _Level.writeExternalData());
......@@ -1666,9 +1542,9 @@ public abstract class BaseFactorScore extends BaseBusinessClass
{
listener.notifyFieldChange(this, other, FIELD_Score, HELPER_Score.toObject(this._Score), HELPER_Score.toObject(otherFactorScore._Score));
}
if (!HELPER_ColorRank.compare(this._ColorRank, otherFactorScore._ColorRank))
if (!HELPER_ColorCode.compare(this._ColorCode, otherFactorScore._ColorCode))
{
listener.notifyFieldChange(this, other, FIELD_ColorRank, HELPER_ColorRank.toObject(this._ColorRank), HELPER_ColorRank.toObject(otherFactorScore._ColorRank));
listener.notifyFieldChange(this, other, FIELD_ColorCode, HELPER_ColorCode.toObject(this._ColorCode), HELPER_ColorCode.toObject(otherFactorScore._ColorCode));
}
if (!HELPER_WghtdScore.compare(this._WghtdScore, otherFactorScore._WghtdScore))
{
......@@ -1692,7 +1568,6 @@ public abstract class BaseFactorScore extends BaseBusinessClass
{
super.visitAttributes (visitor);
visitor.visitField(this, FIELD_ColorCode, HELPER_ColorCode.toObject(getColorCode()));
}
......@@ -1702,7 +1577,7 @@ public abstract class BaseFactorScore extends BaseBusinessClass
super.visitAttributes (visitor);
visitor.visitField(this, FIELD_Score, HELPER_Score.toObject(getScore()));
visitor.visitField(this, FIELD_ColorRank, HELPER_ColorRank.toObject(getColorRank()));
visitor.visitField(this, FIELD_ColorCode, HELPER_ColorCode.toObject(getColorCode()));
visitor.visitField(this, FIELD_WghtdScore, HELPER_WghtdScore.toObject(getWghtdScore()));
visitor.visitAssociation (_TestAnalysis);
visitor.visitAssociation (_Factor);
......@@ -1761,9 +1636,9 @@ public abstract class BaseFactorScore extends BaseBusinessClass
{
return filter.matches (getScore ());
}
else if (attribName.equals (FIELD_ColorRank))
else if (attribName.equals (FIELD_ColorCode))
{
return filter.matches (getColorRank ());
return filter.matches (getColorCode ());
}
else if (attribName.equals (FIELD_WghtdScore))
{
......@@ -1822,9 +1697,9 @@ public abstract class BaseFactorScore extends BaseBusinessClass
return this;
}
public SearchAll andColorRank (QueryFilter<Integer> filter)
public SearchAll andColorCode (QueryFilter<ColorCode> filter)
{
filter.addFilter (context, "tl_score.color_rank", "ColorRank");
filter.addFilter (context, "tl_score.color_code", "ColorCode");
return this;
}
......@@ -1897,18 +1772,14 @@ public abstract class BaseFactorScore extends BaseBusinessClass
{
return HELPER_Score.toObject (getScore ());
}
else if (attribName.equals (FIELD_ColorRank))
else if (attribName.equals (FIELD_ColorCode))
{
return HELPER_ColorRank.toObject (getColorRank ());
return HELPER_ColorCode.toObject (getColorCode ());
}
else if (attribName.equals (FIELD_WghtdScore))
{
return HELPER_WghtdScore.toObject (getWghtdScore ());
}
else if (attribName.equals (FIELD_ColorCode))
{
return HELPER_ColorCode.toObject (getColorCode ());
}
else
{
return super.getAttribute (attribName);
......@@ -1926,18 +1797,14 @@ public abstract class BaseFactorScore extends BaseBusinessClass
{
return HELPER_Score;
}
else if (attribName.equals (FIELD_ColorRank))
else if (attribName.equals (FIELD_ColorCode))
{
return HELPER_ColorRank;
return HELPER_ColorCode;
}
else if (attribName.equals (FIELD_WghtdScore))
{
return HELPER_WghtdScore;
}
else if (attribName.equals (FIELD_ColorCode))
{
return HELPER_ColorCode;
}
else
{
return super.getAttributeHelper (attribName);
......@@ -1955,18 +1822,14 @@ public abstract class BaseFactorScore extends BaseBusinessClass
{
setScore ((Integer)(HELPER_Score.fromObject (_Score, attribValue)));
}
else if (attribName.equals (FIELD_ColorRank))
else if (attribName.equals (FIELD_ColorCode))
{
setColorRank ((Integer)(HELPER_ColorRank.fromObject (_ColorRank, attribValue)));
setColorCode ((ColorCode)(HELPER_ColorCode.fromObject (_ColorCode, attribValue)));
}
else if (attribName.equals (FIELD_WghtdScore))
{
setWghtdScore ((Integer)(HELPER_WghtdScore.fromObject (_WghtdScore, attribValue)));
}
else if (attribName.equals (FIELD_ColorCode))
{
setColorCode ((ColorCode)(HELPER_ColorCode.fromObject (_ColorCode, attribValue)));
}
else
{
super.setAttribute (attribName, attribValue);
......@@ -1991,9 +1854,9 @@ public abstract class BaseFactorScore extends BaseBusinessClass
{
return getWriteability_Score ();
}
else if (fieldName.equals (FIELD_ColorRank))
else if (fieldName.equals (FIELD_ColorCode))
{
return getWriteability_ColorRank ();
return getWriteability_ColorCode ();
}
else if (fieldName.equals (FIELD_WghtdScore))
{
......@@ -2015,10 +1878,6 @@ public abstract class BaseFactorScore extends BaseBusinessClass
{
return getWriteability_Narrative ();
}
else if (fieldName.equals (FIELD_ColorCode))
{
return getWriteability_ColorCode ();
}
else
{
return super.getWriteable (fieldName);
......@@ -2034,9 +1893,9 @@ public abstract class BaseFactorScore extends BaseBusinessClass
fields.add (FIELD_Score);
}
if (getWriteability_ColorRank () != FieldWriteability.TRUE)
if (getWriteability_ColorCode () != FieldWriteability.TRUE)
{
fields.add (FIELD_ColorRank);
fields.add (FIELD_ColorCode);
}
if (getWriteability_WghtdScore () != FieldWriteability.TRUE)
......@@ -2044,11 +1903,6 @@ public abstract class BaseFactorScore extends BaseBusinessClass
fields.add (FIELD_WghtdScore);
}
if (getWriteability_ColorCode () != FieldWriteability.TRUE)
{
fields.add (FIELD_ColorCode);
}
super.putUnwriteable (fields);
}
......@@ -2059,9 +1913,8 @@ public abstract class BaseFactorScore extends BaseBusinessClass
result.add(HELPER_Score.getAttribObject (getClass (), _Score, false, FIELD_Score));
result.add(HELPER_ColorRank.getAttribObject (getClass (), _ColorRank, false, FIELD_ColorRank));
result.add(HELPER_WghtdScore.getAttribObject (getClass (), _WghtdScore, false, FIELD_WghtdScore));
result.add(HELPER_ColorCode.getAttribObject (getClass (), _ColorCode, false, FIELD_ColorCode));
result.add(HELPER_WghtdScore.getAttribObject (getClass (), _WghtdScore, false, FIELD_WghtdScore));
return result;
}
......@@ -2131,21 +1984,21 @@ public abstract class BaseFactorScore extends BaseBusinessClass
}
/**
* Get the attribute ColorRank
* Get the attribute ColorCode
*/
public Integer getColorRank (FactorScore obj, Integer original)
public ColorCode getColorCode (FactorScore obj, ColorCode original)
{
return original;
}
/**
* Change the value set for attribute ColorRank.
* Change the value set for attribute ColorCode.
* May modify the field beforehand
* Occurs before validation.
*/
public Integer setColorRank (FactorScore obj, Integer newColorRank) throws FieldException
public ColorCode setColorCode (FactorScore obj, ColorCode newColorCode) throws FieldException
{
return newColorRank;
return newColorCode;
}
/**
......@@ -2166,24 +2019,6 @@ public abstract class BaseFactorScore extends BaseBusinessClass
return newWghtdScore;
}
/**
* Get the attribute ColorCode
*/
public ColorCode getColorCode (FactorScore obj, ColorCode original)
{
return original;
}
/**
* Change the value set for attribute ColorCode.
* May modify the field beforehand
* Occurs before validation.
*/
public ColorCode setColorCode (FactorScore obj, ColorCode newColorCode) throws FieldException
{
return newColorCode;
}
}
......@@ -2236,17 +2071,13 @@ public abstract class BaseFactorScore extends BaseBusinessClass
public PipeLine<From, ? extends Object> to(String name)
{
if (name.equals ("ColorCode"))
{
return toColorCode ();
}
if (name.equals ("Score"))
{
return toScore ();
}
if (name.equals ("ColorRank"))
if (name.equals ("ColorCode"))
{
return toColorRank ();
return toColorCode ();
}
if (name.equals ("WghtdScore"))
{
......@@ -2274,11 +2105,9 @@ public abstract class BaseFactorScore extends BaseBusinessClass
}
public PipeLine<From, ColorCode> toColorCode () { return pipe(new ORMAttributePipe<Me, ColorCode>(FIELD_ColorCode)); }
public PipeLine<From, Integer> toScore () { return pipe(new ORMAttributePipe<Me, Integer>(FIELD_Score)); }
public PipeLine<From, Integer> toColorRank () { return pipe(new ORMAttributePipe<Me, Integer>(FIELD_ColorRank)); }
public PipeLine<From, ColorCode> toColorCode () { return pipe(new ORMAttributePipe<Me, ColorCode>(FIELD_ColorCode)); }
public PipeLine<From, Integer> toWghtdScore () { return pipe(new ORMAttributePipe<Me, Integer>(FIELD_WghtdScore)); }
public TestAnalysis.TestAnalysisPipeLineFactory<From, TestAnalysis> toTestAnalysis () { return toTestAnalysis (Filter.ALL); }
......@@ -2311,11 +2140,6 @@ public abstract class BaseFactorScore extends BaseBusinessClass
public boolean isTransientAttrib(String attribName)
{
if(CollectionUtils.equals(attribName, "ColorCode"))
{
return true;
}
return super.isTransientAttrib(attribName);
}
......
......@@ -48,6 +48,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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 FIELD_FactorScoreDetails = "FactorScoreDetails";
public static final String SINGLEREFERENCE_Candidate = "Candidate";
public static final String BACKREF_Candidate = "";
public static final String SINGLEREFERENCE_Job = "Job";
......@@ -69,6 +70,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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 static final BLOBAttributeHelper HELPER_FactorScoreDetails = BLOBAttributeHelper.INSTANCE;
// Private attributes corresponding to business object data
......@@ -80,6 +82,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
private Map _RoleFit;
private Map _RequirementFit;
private Map _CultureFit;
private Map _FactorScoreDetails;
// Private attributes corresponding to single references
......@@ -100,6 +103,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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_FactorScoreDetails_Validators;
private static final AttributeValidator[] FIELD_CV_Validators;
private static final AttributeValidator[] FIELD_ApplicationStatus_Validators;
private static final AttributeValidator[] FIELD_SubmittedDate_Validators;
......@@ -127,6 +131,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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_FactorScoreDetails_Validators = (AttributeValidator[])setupAttribMetaData_FactorScoreDetails(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]);
......@@ -283,6 +288,25 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
// Meta Info setup
private static List setupAttribMetaData_FactorScoreDetails(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("attribHelper", "BLOBAttributeHelper");
metaInfo.put ("attribHelperInstance", "BLOBAttributeHelper.INSTANCE");
metaInfo.put ("name", "FactorScoreDetails");
metaInfo.put ("type", "Map");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for JobApplication.FactorScoreDetails:", metaInfo);
ATTRIBUTES_METADATA_JobApplication.put (FIELD_FactorScoreDetails, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(JobApplication.class, "FactorScoreDetails", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for JobApplication.FactorScoreDetails:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_CV(Map validatorMapping)
{
Map metaInfo = new HashMap ();
......@@ -378,6 +402,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_RoleFit = (Map)(HELPER_RoleFit.initialise (_RoleFit));
_RequirementFit = (Map)(HELPER_RequirementFit.initialise (_RequirementFit));
_CultureFit = (Map)(HELPER_CultureFit.initialise (_CultureFit));
_FactorScoreDetails = (Map)(HELPER_FactorScoreDetails.initialise (_FactorScoreDetails));
}
......@@ -1193,6 +1218,104 @@ public abstract class BaseJobApplication extends BaseBusinessClass
}
}
/**
* Get the attribute FactorScoreDetails
*/
public Map getFactorScoreDetails ()
{
assertValid();
Map valToReturn = _FactorScoreDetails;
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
valToReturn = bhd.getFactorScoreDetails ((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 preFactorScoreDetailsChange (Map newFactorScoreDetails) 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 postFactorScoreDetailsChange () throws FieldException
{
}
public FieldWriteability getWriteability_FactorScoreDetails ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute FactorScoreDetails. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setFactorScoreDetails (Map newFactorScoreDetails) throws FieldException
{
boolean oldAndNewIdentical = HELPER_FactorScoreDetails.compare (_FactorScoreDetails, newFactorScoreDetails);
try
{
for (JobApplicationBehaviourDecorator bhd : JobApplication_BehaviourDecorators)
{
newFactorScoreDetails = bhd.setFactorScoreDetails ((JobApplication)this, newFactorScoreDetails);
oldAndNewIdentical = HELPER_FactorScoreDetails.compare (_FactorScoreDetails, newFactorScoreDetails);
}
if (FIELD_FactorScoreDetails_Validators.length > 0)
{
Object newFactorScoreDetailsObj = HELPER_FactorScoreDetails.toObject (newFactorScoreDetails);
if (newFactorScoreDetailsObj != null)
{
int loopMax = FIELD_FactorScoreDetails_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_JobApplication.get (FIELD_FactorScoreDetails);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_FactorScoreDetails_Validators[v].checkAttribute (this, FIELD_FactorScoreDetails, metadata, newFactorScoreDetailsObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_FactorScoreDetails () != FieldWriteability.FALSE, "Field FactorScoreDetails is not writeable");
preFactorScoreDetailsChange (newFactorScoreDetails);
markFieldChange (FIELD_FactorScoreDetails);
_FactorScoreDetails = newFactorScoreDetails;
postFieldChange (FIELD_FactorScoreDetails);
postFactorScoreDetailsChange ();
}
}
/**
......@@ -1946,6 +2069,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_RoleFit = sourceJobApplication._RoleFit;
_RequirementFit = sourceJobApplication._RequirementFit;
_CultureFit = sourceJobApplication._CultureFit;
_FactorScoreDetails = sourceJobApplication._FactorScoreDetails;
}
}
......@@ -2013,6 +2137,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
_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))); //
_FactorScoreDetails = (Map)(HELPER_FactorScoreDetails.readExternal (_FactorScoreDetails, vals.get(FIELD_FactorScoreDetails))); //
_Candidate.readExternalData(vals.get(SINGLEREFERENCE_Candidate));
_Job.readExternalData(vals.get(SINGLEREFERENCE_Job));
_AssessmentCriteriaAnswers.readExternalData(vals.get(MULTIPLEREFERENCE_AssessmentCriteriaAnswers));
......@@ -2035,6 +2160,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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 (FIELD_FactorScoreDetails, HELPER_FactorScoreDetails.writeExternal (_FactorScoreDetails));
vals.put (SINGLEREFERENCE_Candidate, _Candidate.writeExternalData());
vals.put (SINGLEREFERENCE_Job, _Job.writeExternalData());
vals.put (MULTIPLEREFERENCE_AssessmentCriteriaAnswers, _AssessmentCriteriaAnswers.writeExternalData());
......@@ -2085,6 +2211,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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()));
visitor.visitField(this, FIELD_FactorScoreDetails, HELPER_FactorScoreDetails.toObject(getFactorScoreDetails()));
}
......@@ -2411,6 +2538,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return HELPER_CultureFit.toObject (getCultureFit ());
}
else if (attribName.equals (FIELD_FactorScoreDetails))
{
return HELPER_FactorScoreDetails.toObject (getFactorScoreDetails ());
}
else
{
return super.getAttribute (attribName);
......@@ -2456,6 +2587,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return HELPER_CultureFit;
}
else if (attribName.equals (FIELD_FactorScoreDetails))
{
return HELPER_FactorScoreDetails;
}
else
{
return super.getAttributeHelper (attribName);
......@@ -2501,6 +2636,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
setCultureFit ((Map)(HELPER_CultureFit.fromObject (_CultureFit, attribValue)));
}
else if (attribName.equals (FIELD_FactorScoreDetails))
{
setFactorScoreDetails ((Map)(HELPER_FactorScoreDetails.fromObject (_FactorScoreDetails, attribValue)));
}
else
{
super.setAttribute (attribName, attribValue);
......@@ -2565,6 +2704,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return getWriteability_CultureFit ();
}
else if (fieldName.equals (FIELD_FactorScoreDetails))
{
return getWriteability_FactorScoreDetails ();
}
else
{
return super.getWriteable (fieldName);
......@@ -2615,6 +2758,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass
fields.add (FIELD_CultureFit);
}
if (getWriteability_FactorScoreDetails () != FieldWriteability.TRUE)
{
fields.add (FIELD_FactorScoreDetails);
}
super.putUnwriteable (fields);
}
......@@ -2632,6 +2780,7 @@ public abstract class BaseJobApplication extends BaseBusinessClass
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));
result.add(HELPER_FactorScoreDetails.getAttribObject (getClass (), _FactorScoreDetails, false, FIELD_FactorScoreDetails));
return result;
}
......@@ -2844,6 +2993,24 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return newCultureFit;
}
/**
* Get the attribute FactorScoreDetails
*/
public Map getFactorScoreDetails (JobApplication obj, Map original)
{
return original;
}
/**
* Change the value set for attribute FactorScoreDetails.
* May modify the field beforehand
* Occurs before validation.
*/
public Map setFactorScoreDetails (JobApplication obj, Map newFactorScoreDetails) throws FieldException
{
return newFactorScoreDetails;
}
}
......@@ -2920,6 +3087,10 @@ public abstract class BaseJobApplication extends BaseBusinessClass
{
return toCultureFit ();
}
if (name.equals ("FactorScoreDetails"))
{
return toFactorScoreDetails ();
}
if (name.equals ("CV"))
{
return toCV ();
......@@ -2956,6 +3127,8 @@ public abstract class BaseJobApplication extends BaseBusinessClass
public PipeLine<From, Map> toCultureFit () { return pipe(new ORMAttributePipe<Me, Map>(FIELD_CultureFit)); }
public PipeLine<From, Map> toFactorScoreDetails () { return pipe(new ORMAttributePipe<Me, Map>(FIELD_FactorScoreDetails)); }
public PipeLine<From, BinaryContent> toCV () { return pipe(new ORMAttributePipe<Me, BinaryContent>(FIELD_CV)); }
public PipeLine<From, ApplicationStatus> toApplicationStatus () { return pipe(new ORMAttributePipe<Me, ApplicationStatus>(FIELD_ApplicationStatus)); }
......@@ -3010,6 +3183,11 @@ public abstract class BaseJobApplication extends BaseBusinessClass
return true;
}
if(CollectionUtils.equals(attribName, "FactorScoreDetails"))
{
return true;
}
return super.isTransientAttrib(attribName);
}
......
......@@ -19,11 +19,11 @@ public class Client extends BaseClient
// Do not add any code to this, always put it in initialiseNewObject
}
public int getApplicationCountByStatus(JobStatus jobStatus)
public int getJobCountByStatus(JobStatus jobStatus)
{
Filter<Job> filter = Job.SearchByAll().andJobStatus(new EqualsFilter<>(jobStatus));
return pipelineClient().toJobs(filter).toJobApplications().uniqueVals().size();
return pipelineClient().toJobs(filter).uniqueVals().size();
}
......
package performa.orm;
import oneit.logging.LoggingArea;
import oneit.objstore.ObjectStatus;
import oneit.objstore.ValidationContext;
import oneit.security.SecUser;
import oneit.utils.CollectionUtils;
import oneit.utils.parsers.FieldException;
......@@ -45,4 +47,16 @@ public class Company extends BaseCompany
}
return addUser;
}
@Override
public void validate(ValidationContext context)
{
if(getStatus() != ObjectStatus.NEW)
{
context.check(getHiringTeamType() != null , this, FIELD_HiringTeamType, "mandatory");
}
super.validate(context);
}
}
\ No newline at end of file
......@@ -16,6 +16,7 @@
<TRANSIENT name="LastName" type="String"/>
<TRANSIENT name="RoleType" type="RoleType" defaultValue="RoleType.STANDARD" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="IsLogoDeleted" type="Boolean" defaultValue="Boolean.FALSE"/>
<TRANSIENT name="CompletedProfile" type="Boolean" defaultValue="Boolean.FALSE"/>
<TABLE name="tl_company" tablePrefix="object">
......
......@@ -16,4 +16,9 @@ public class FactorScore extends BaseFactorScore
{
return "FactorScore";
}
public Integer getColorRank()
{
return getColorCode() != null ? getColorCode().getColorRank() : 0;
}
}
\ No newline at end of file
......@@ -6,13 +6,11 @@
<IMPORT value="performa.orm.types.*"/>
<TRANSIENT name="ColorCode" type="ColorCode" attribHelper="EnumeratedAttributeHelper"/>
<TABLE name="tl_score" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Score" type="Integer" dbcol="score_number"/>
<ATTRIB name="ColorRank" type="Integer" dbcol="color_rank" />
<ATTRIB name="WghtdScore" type="Integer" dbcol="wghtd_score" />
<ATTRIB name="Score" type="Integer" dbcol="score_number"/>
<ATTRIB name="ColorCode" type="ColorCode" dbcol="color_code" attribHelper="EnumeratedAttributeHelper"/>
<ATTRIB name="WghtdScore" type="Integer" dbcol="wghtd_score" />
<SINGLEREFERENCE name="TestAnalysis" type="TestAnalysis" dbcol="test_analysis_id" backreferenceName="FactorScores"/>
<SINGLEREFERENCE name="Factor" type="Factor" dbcol="factor_number"/>
......
......@@ -28,13 +28,13 @@ public class FactorScorePersistenceMgr extends ObjectPersistenceMgr
// Private attributes corresponding to business object data
private Integer dummyScore;
private Integer dummyColorRank;
private ColorCode dummyColorCode;
private Integer dummyWghtdScore;
// Static constants corresponding to attribute helpers
private static final DefaultAttributeHelper HELPER_Score = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_ColorRank = DefaultAttributeHelper.INSTANCE;
private static final EnumeratedAttributeHelper HELPER_ColorCode = new EnumeratedAttributeHelper (ColorCode.FACTORY_ColorCode);
private static final DefaultAttributeHelper HELPER_WghtdScore = DefaultAttributeHelper.INSTANCE;
......@@ -43,12 +43,12 @@ public class FactorScorePersistenceMgr extends ObjectPersistenceMgr
public FactorScorePersistenceMgr ()
{
dummyScore = (Integer)(HELPER_Score.initialise (dummyScore));
dummyColorRank = (Integer)(HELPER_ColorRank.initialise (dummyColorRank));
dummyColorCode = (ColorCode)(HELPER_ColorCode.initialise (dummyColorCode));
dummyWghtdScore = (Integer)(HELPER_WghtdScore.initialise (dummyWghtdScore));
}
private String SELECT_COLUMNS = "{PREFIX}tl_score.object_id as id, {PREFIX}tl_score.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_score.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_score.score_number, {PREFIX}tl_score.color_rank, {PREFIX}tl_score.wghtd_score, {PREFIX}tl_score.test_analysis_id, {PREFIX}tl_score.factor_number, {PREFIX}tl_score.level_number, {PREFIX}tl_score.narrative_id, 1 AS commasafe ";
private String SELECT_COLUMNS = "{PREFIX}tl_score.object_id as id, {PREFIX}tl_score.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_score.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_score.score_number, {PREFIX}tl_score.color_code, {PREFIX}tl_score.wghtd_score, {PREFIX}tl_score.test_analysis_id, {PREFIX}tl_score.factor_number, {PREFIX}tl_score.level_number, {PREFIX}tl_score.narrative_id, 1 AS commasafe ";
private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
......@@ -100,7 +100,7 @@ public class FactorScorePersistenceMgr extends ObjectPersistenceMgr
// Check for persistent sets already prefetched
if (false || !tl_scorePSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_scorePSet.containsAttrib(FactorScore.FIELD_Score)||
!tl_scorePSet.containsAttrib(FactorScore.FIELD_ColorRank)||
!tl_scorePSet.containsAttrib(FactorScore.FIELD_ColorCode)||
!tl_scorePSet.containsAttrib(FactorScore.FIELD_WghtdScore)||
!tl_scorePSet.containsAttrib(FactorScore.SINGLEREFERENCE_TestAnalysis)||
!tl_scorePSet.containsAttrib(FactorScore.SINGLEREFERENCE_Factor)||
......@@ -195,10 +195,10 @@ public class FactorScorePersistenceMgr extends ObjectPersistenceMgr
{
int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_score " +
"SET score_number = ?, color_rank = ?, wghtd_score = ?, test_analysis_id = ? , factor_number = ? , level_number = ? , narrative_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"SET score_number = ?, color_code = ?, wghtd_score = ?, test_analysis_id = ? , factor_number = ? , level_number = ? , narrative_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_score.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_Score.getForSQL(dummyScore, tl_scorePSet.getAttrib (FactorScore.FIELD_Score))).listEntry (HELPER_ColorRank.getForSQL(dummyColorRank, tl_scorePSet.getAttrib (FactorScore.FIELD_ColorRank))).listEntry (HELPER_WghtdScore.getForSQL(dummyWghtdScore, tl_scorePSet.getAttrib (FactorScore.FIELD_WghtdScore))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_TestAnalysis)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Factor)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Level)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Narrative)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
CollectionUtils.listEntry (HELPER_Score.getForSQL(dummyScore, tl_scorePSet.getAttrib (FactorScore.FIELD_Score))).listEntry (HELPER_ColorCode.getForSQL(dummyColorCode, tl_scorePSet.getAttrib (FactorScore.FIELD_ColorCode))).listEntry (HELPER_WghtdScore.getForSQL(dummyWghtdScore, tl_scorePSet.getAttrib (FactorScore.FIELD_WghtdScore))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_TestAnalysis)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Factor)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Level)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Narrative)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1)
{
......@@ -455,7 +455,7 @@ public class FactorScorePersistenceMgr extends ObjectPersistenceMgr
tl_scorePSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE"));
tl_scorePSet.setAttrib(FactorScore.FIELD_Score, HELPER_Score.getFromRS(dummyScore, r, "score_number"));
tl_scorePSet.setAttrib(FactorScore.FIELD_ColorRank, HELPER_ColorRank.getFromRS(dummyColorRank, r, "color_rank"));
tl_scorePSet.setAttrib(FactorScore.FIELD_ColorCode, HELPER_ColorCode.getFromRS(dummyColorCode, r, "color_code"));
tl_scorePSet.setAttrib(FactorScore.FIELD_WghtdScore, HELPER_WghtdScore.getFromRS(dummyWghtdScore, r, "wghtd_score"));
tl_scorePSet.setAttrib(FactorScore.SINGLEREFERENCE_TestAnalysis, r.getObject ("test_analysis_id"));
......@@ -478,10 +478,10 @@ public class FactorScorePersistenceMgr extends ObjectPersistenceMgr
{
executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_score " +
" (score_number, color_rank, wghtd_score, test_analysis_id, factor_number, level_number, narrative_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
" (score_number, color_code, wghtd_score, test_analysis_id, factor_number, level_number, narrative_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " +
" (?, ?, ?, ?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_Score.getForSQL(dummyScore, tl_scorePSet.getAttrib (FactorScore.FIELD_Score))).listEntry (HELPER_ColorRank.getForSQL(dummyColorRank, tl_scorePSet.getAttrib (FactorScore.FIELD_ColorRank))).listEntry (HELPER_WghtdScore.getForSQL(dummyWghtdScore, tl_scorePSet.getAttrib (FactorScore.FIELD_WghtdScore))) .listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_TestAnalysis)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Factor)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Level)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Narrative)))) .listEntry (objectID.longID ()).toList().toArray());
CollectionUtils.listEntry (HELPER_Score.getForSQL(dummyScore, tl_scorePSet.getAttrib (FactorScore.FIELD_Score))).listEntry (HELPER_ColorCode.getForSQL(dummyColorCode, tl_scorePSet.getAttrib (FactorScore.FIELD_ColorCode))).listEntry (HELPER_WghtdScore.getForSQL(dummyWghtdScore, tl_scorePSet.getAttrib (FactorScore.FIELD_WghtdScore))) .listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_TestAnalysis)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Factor)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Level)))).listEntry (SQLManager.CheckNull((Long)(tl_scorePSet.getAttrib (FactorScore.SINGLEREFERENCE_Narrative)))) .listEntry (objectID.longID ()).toList().toArray());
tl_scorePSet.setStatus (PersistentSetStatus.PROCESSED);
}
......
......@@ -6,6 +6,7 @@ import oneit.objstore.*;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter;
import oneit.objstore.rdbms.filters.NotEqualsFilter;
import oneit.objstore.utils.ObjstoreUtils;
import oneit.utils.*;
import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
......@@ -304,6 +305,33 @@ public class JobApplication extends BaseJobApplication
}
return super.getOverallRank();
}
@Override
public Map getFactorScoreDetails()
{
if(super.getFactorScoreDetails() == null && getCandidate() != null && getJob() != null && getJob().getLevel() != null)
{
try
{
Map<FactorClass, Map<FactorLevelLink, Map>> factorScoreDetails = new LinkedHashMap();
Map<FactorClass, Tuple.T2<Double, ColorCode>> roleScoreMap = (Map<FactorClass, Tuple.T2<Double, ColorCode>>) getRoleFit();
for(FactorClass factorClass : getSortedFactorClasses())
{
if(roleScoreMap.get(factorClass) != null && roleScoreMap.get(factorClass).get0() > 0d)
{
factorScoreDetails.put(factorClass, AnalysisEngine.getFactorScoreDetails(getCandidate(), getJob().getLevel(), factorClass));
}
}
setFactorScoreDetails(factorScoreDetails);
}
catch (FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, ex, "Error occured when setting FactorScoreDetails for " + this);
}
}
return super.getFactorScoreDetails();
}
public Double getRoleFitScore()
{
......@@ -484,4 +512,86 @@ public class JobApplication extends BaseJobApplication
return answersByImportance;
}
public List<FactorScore> getRoleAreaOfConcerns()
{
Map<FactorClass, Map<FactorLevelLink, Map>> factorScoreDetails = getFactorScoreDetails();
List<FactorScore> factorScores = new ArrayList();
if(factorScoreDetails != null)
{
for(FactorClass factorClass : factorScoreDetails.keySet())
{
Map<FactorLevelLink, Map> factorDetails = factorScoreDetails.get(factorClass);
Collection<FactorLevelLink> sortedLinks = ObjstoreUtils.sort(factorDetails.keySet(),
new ObjectTransform[]{FactorLevelLink.pipesFactorLevelLink().toFactor().toObjectID()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
for(FactorLevelLink factorLevelLink : sortedLinks)
{
Map factorLinkDetails = factorDetails.get(factorLevelLink);
if(!factorLinkDetails.isEmpty())
{
FactorScore factorScore = (FactorScore) factorLinkDetails.get("factorScore");
if(factorScore != null && factorScore.getFactor() != null && factorScore.getColorCode() != null && factorScore.getColorCode() != ColorCode.GREEN) //SCORE.COLOR_RANK > 1 as per apollo
{
LevelFactorType levelFactorType = factorLevelLink.getLevel().getLevelFactorType(factorScore.getFactor());
if(levelFactorType != null && levelFactorType.getTypeFlag() == TypeFlag.PRIMARY)
{
factorScores.add(factorScore);
}
}
}
}
}
}
return factorScores;
}
public List<Tuple.T2> getCultureAreaOfConcerns()
{
Map<CultureClass, Tuple.T2<Long, Set<Tuple.T3>>> cultureFitData = (Map<CultureClass, Tuple.T2<Long, Set<Tuple.T3>>>) getCultureFit();
List<Tuple.T2> result = new ArrayList();
for(CultureClass cClass : cultureFitData.keySet())
{
if(cClass == null || cultureFitData.get(cClass) == null)
{
continue;
}
for(Tuple.T3 tuple : cultureFitData.get(cClass).get1())
{
CultureNarrative cultureNarrative = (CultureNarrative) tuple.get2();
Integer weightingScore = (Integer) tuple.get0();
if(cultureNarrative != null && cultureNarrative.getColorCode() != null && cultureNarrative.getColorCode() != ColorCode.GREEN && weightingScore == 10) //i.e. Importance = ESSENTIAL
{
result.add(new Tuple.T2(tuple.get1(), cultureNarrative.getColorCode()));
}
}
}
return result;
}
public MultiHashtable<Importance, AssessmentCriteriaAnswer> getNegativeACByImportance(CriteriaType criteriaType)
{
MultiHashtable<Importance, AssessmentCriteriaAnswer> answerCountByImportance = new MultiHashtable<>();
answerCountByImportance.groupValues(getNegativeACAnswersByType(criteriaType), AssessmentCriteriaAnswer.pipesAssessmentCriteriaAnswer().toAssessmentCriteria().toImportance());
return answerCountByImportance;
}
public Collection<AssessmentCriteriaAnswer> getNegativeACAnswersByType(CriteriaType criteriaType)
{
Filter filter = AssessmentCriteriaAnswer.SearchByCriteriaType().byCriteriaType(criteriaType).andAnswer(new EqualsFilter<>(Boolean.FALSE));
return CollectionFilter.filter(getAssessmentCriteriaAnswersSet(), filter);
}
}
\ No newline at end of file
......@@ -7,11 +7,12 @@
<MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" />
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<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"/>
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<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"/>
<TRANSIENT name="FactorScoreDetails" type="Map" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE"/>
<TABLE name="tl_job_application" tablePrefix="object" polymorphic="FALSE">
......
......@@ -37,10 +37,17 @@ public class JobStatus extends AbstractEnumerated
return allJobStatuss;
}
private transient Integer ClientSortOrder;
private JobStatus (String name, String value, String description, boolean disabled)
{
super (name, value, description, disabled);
}
public Integer getClientSortOrder()
{
return ClientSortOrder;
}
public static final Comparator COMPARE_BY_POSITION = new CompareEnumByPosition (allJobStatuss);
......@@ -109,6 +116,10 @@ public class JobStatus extends AbstractEnumerated
public static void defineAdditionalData ()
{
OPEN.ClientSortOrder = 1;
COMPLETE.ClientSortOrder = 2;
DRAFT.ClientSortOrder = 4;
FILLED.ClientSortOrder = 3;
}
......@@ -136,6 +147,7 @@ public class JobStatus extends AbstractEnumerated
{
Map attribs = new HashMap ();
attribs.put ("ClientSortOrder", ArrayFormatter.toObject(getClientSortOrder()));
return attribs;
}
......
......@@ -2,11 +2,13 @@
<ROOT>
<CONSTANT package="performa.orm.types" name="JobStatus">
<VALUE name="OPEN" value="OPEN" description="Open"/>
<VALUE name="COMPLETE" value="COMPLETE" description="Closed"/>
<VALUE name="DRAFT" value="DRAFT" description="Draft"/>
<VALUE name="FILLED" value="FILLED" description="Filled"/>
<DATA name="ClientSortOrder" type="Integer"/>
<VALUE name="OPEN" value="OPEN" description="Open" ClientSortOrder="1"/>
<VALUE name="COMPLETE" value="COMPLETE" description="Closed" ClientSortOrder="2"/>
<VALUE name="DRAFT" value="DRAFT" description="Draft" ClientSortOrder="4"/>
<VALUE name="FILLED" value="FILLED" description="Filled" ClientSortOrder="3"/>
</CONSTANT>
</ROOT>
\ No newline at end of file
......@@ -122,7 +122,6 @@ public class AnalysisEngine
factorScore.setLevel(level);
factorScore.setScore(score);
factorScore.setColorCode(factorScoreResult.getColorCode());
factorScore.setColorRank(factorScoreResult.getColorCode() != null ? factorScoreResult.getColorCode().getColorRank() : 0);
factorScore.setNarrative(factorScoreResult.getNarrative());
/**
......
......@@ -82,6 +82,9 @@ public class Utils
importances.add(importance);
}
}
Collections.sort(importances, (a, b) -> b.getWeightingScore().compareTo(a.getWeightingScore()));
return importances.toArray(new Importance[0]);
}
......@@ -103,7 +106,7 @@ public class Utils
public static List<Job> getJobsSorted(Job[] jobs, JobSortOption jobSortOption, JobStatus jobStatus)
{
ObjectTransform transform = Job.pipesJob().toObjectCreated();
Comparator comparator = CollectionUtils.DEFAULT_COMPARATOR;
Comparator comparator = CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST;
if(jobSortOption == JobSortOption.OLDEST || jobSortOption == JobSortOption.NEWEST)
{
......@@ -121,8 +124,8 @@ public class Utils
}
comparator = jobSortOption == JobSortOption.OLDEST ?
CollectionUtils.DEFAULT_COMPARATOR :
CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR);
CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST :
CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST);
}
else if(jobSortOption == JobSortOption.CLOSING_SOON)
{
......@@ -132,12 +135,12 @@ public class Utils
else if(jobSortOption == JobSortOption.ALPHA_A_Z)
{
transform = Job.pipesJob().toJobTitle();
comparator = CollectionUtils.CASE_INSENSITIVE_COMPARATOR;
comparator = CollectionUtils.CASE_INSENSITIVE_COMPARATOR_NULLS_FIRST;
}
else if(jobSortOption == JobSortOption.ALPHA_Z_A)
{
transform = Job.pipesJob().toJobTitle();
comparator = CollectionUtils.reverse(CollectionUtils.CASE_INSENSITIVE_COMPARATOR);
comparator = CollectionUtils.reverse(CollectionUtils.CASE_INSENSITIVE_COMPARATOR_NULLS_FIRST);
}
return ObjstoreUtils.sort( Arrays.asList(jobs),
......@@ -149,27 +152,27 @@ public class Utils
public static List<Client> getClientsSorted(Client[] clients, ClientSortOption clientSortOption)
{
ObjectTransform transform = Client.pipesClient().toObjectCreated();
Comparator comparator = CollectionUtils.DEFAULT_COMPARATOR;
Comparator comparator = CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST;
if(clientSortOption == ClientSortOption.ALPHA_A_Z)
{
transform = Client.pipesClient().toClientName();
comparator = CollectionUtils.CASE_INSENSITIVE_COMPARATOR;
comparator = CollectionUtils.CASE_INSENSITIVE_COMPARATOR_NULLS_FIRST;
}
else if(clientSortOption == ClientSortOption.ALPHA_Z_A)
{
transform = Client.pipesClient().toClientName();
comparator = CollectionUtils.reverse(CollectionUtils.CASE_INSENSITIVE_COMPARATOR);
comparator = CollectionUtils.reverse(CollectionUtils.CASE_INSENSITIVE_COMPARATOR_NULLS_FIRST);
}
else if(clientSortOption == ClientSortOption.OPEN_JOBS)
{
transform = new ClientJobCountTransform(JobStatus.OPEN);
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR);
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST);
}
else if(clientSortOption == ClientSortOption.FILLED_JOBS)
{
transform = new ClientJobCountTransform(JobStatus.FILLED);
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR);
comparator = CollectionUtils.reverse(CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST);
}
return ObjstoreUtils.sort( Arrays.asList(clients), new ObjectTransform[]{transform}, new Comparator[]{comparator});
......@@ -197,7 +200,7 @@ public class Utils
@Override
public Integer transform(Client client)
{
return client.getApplicationCountByStatus(jobStatus);
return client.getJobCountByStatus(jobStatus);
}
}
......@@ -216,7 +219,7 @@ public class Utils
public static List<JobApplication> getApplicationsSorted(JobApplication[] applications, AppSortOption appSortOption)
{
ObjectTransform transform = JobApplication.pipesJobApplication().toObjectCreated();
Comparator comparator = CollectionUtils.DEFAULT_COMPARATOR;
Comparator comparator = CollectionUtils.DEFAULT_COMPARATOR_NULLS_FIRST;
if(appSortOption==AppSortOption.OLDEST)
{
......@@ -236,12 +239,12 @@ public class Utils
else if(appSortOption==AppSortOption.ALPHA_A_Z)
{
transform = JobApplication.pipesJobApplication().toCandidate().toUser().toFirstName();
comparator = CollectionUtils.CASE_INSENSITIVE_COMPARATOR;
comparator = CollectionUtils.CASE_INSENSITIVE_COMPARATOR_NULLS_FIRST;
}
else if(appSortOption==AppSortOption.ALPHA_Z_A)
{
transform = JobApplication.pipesJobApplication().toCandidate().toUser().toFirstName();
comparator = CollectionUtils.reverse(CollectionUtils.CASE_INSENSITIVE_COMPARATOR);
comparator = CollectionUtils.reverse(CollectionUtils.CASE_INSENSITIVE_COMPARATOR_NULLS_FIRST);
}
return ObjstoreUtils.sort( Arrays.asList(applications),
......@@ -328,6 +331,17 @@ public class Utils
}
public static Boolean emailExists(ObjectTransaction objTran, String email)
{
if(email!= null)
{
return SecUser.searchNAME(objTran, email.toLowerCase()) != null;
}
return Boolean.FALSE;
}
public static Boolean isCompanyUserEmailFound(ObjectTransaction objTran, String email)
{
if(email!=null)
......@@ -484,7 +498,21 @@ public class Utils
{
return ConfigMgr.getKeyfileString(GoogleOAuthLoginFP.GOOGLE_CLIENTID_ATTR_NAME) != null
&& ConfigMgr.getKeyfileString(GoogleOAuthLoginFP.GOOGLE_CLIENTSECRET_ATTR_NAME) != null;
}
}
//to get Job status list sorted for client
public static Collection<JobStatus> getJobStatusesForClient()
{
return CollectionUtils.sort(Arrays.asList(JobStatus.getJobStatusArray()),
new Comparator<JobStatus> () {
@Override
public int compare(JobStatus o1, JobStatus o2)
{
return o1.getClientSortOrder().compareTo(o2.getClientSortOrder());
}
});
}
private static class CompanyUserTransform implements ObjectTransform<CompanyUser, String>
{
......
......@@ -45,6 +45,8 @@ public class WebUtils
public static final String COMPANY_ACCOUNT_VERIFICATION = "CompanyAccountVerification";
public static final String MY_DETAILS = "MyDetails";
public static final String RESET_PASSWORD = "ResetPassword";
public static final String COMPANY_PROFILE = "CompanyProfile";
public static final String INVITE_USERS = "InviteUsers";
public static String getArticleLink(HttpServletRequest request, ObjectTransaction objTran, String articleShortcut, String renderMode)
......@@ -103,6 +105,11 @@ public class WebUtils
public static String getPortalName(ObjectTransaction objTran, Article article)
{
if(article != null && article.isHomePage())
{
return ADMIN_PORTAL; //Because default home page is Admin Portal Home
}
Article applicantArticle = getArticleByShortCut(objTran, APPLICANT_PORTAL);
Article adminArticle = getArticleByShortCut(objTran, ADMIN_PORTAL);
......
......@@ -2893,6 +2893,9 @@ span.export-candidate,span.appli-status-short{
padding-left: 6px;
vertical-align: middle;
}
.pre-dot{
padding-left: 0;
}
.a-label-row {
margin-bottom: 6px;
}
......@@ -2937,8 +2940,12 @@ span.export-candidate,span.appli-status-short{
.appli-label{
float: left;
font-size: 12px;
font-weight: 500;
text-align: left;
color: #4e5258;
line-height: 28px;
width: 25%;
font-family: "Usual-Bold";
}
.pro-bar {
padding: 28px 38px 22px 62px;
......@@ -2964,7 +2971,7 @@ span.appli-percen {
}
span.appli-progress-bar {
display: inline-block;
width: 48.47%;
width: 47.47%;
}
.appli-progress-bar .progress {
margin-bottom: 0;
......@@ -3146,7 +3153,7 @@ input.add-note-btn:hover{
margin-top: 24px;
}
.applicant-progress {
display: inline-block;
display: flex;
width: 100%;
float: left;
}
......@@ -3749,13 +3756,12 @@ input.add-note-btn:hover{
font-weight: 300;
float: right;
}
.appli-percent-no first span
{
font-family: "Usual-Regular";
}
.appli-percent-no span{
font-family: "Usual-Light";
}
.appli-percent-no.first span{
font-family: "Usual-Regular";
}
.appli-status {
border: medium none;
padding: 15px 23px 0;
......@@ -4202,7 +4208,7 @@ img.alert-icon {float: left;}
.applicant-sidebar .gray,.applicant-sidebar .green,.applicant-sidebar .blue {font-size: 14px;}
.applicant-sidebar li {line-height: 46px;}
span.appli-percen{top: -4px;font-size: 20px;margin-right: 5px;}
.appli-label {font-size: 13px;line-height: 24px;}
.appli-label {font-size: 12px; line-height: 24px; }
.expand-box{margin-left: 15px;}
.big-percentage{font-size: 58px;}
.appli-percent-no{font-size: 28px; line-height: 1.8em;}
......@@ -4284,7 +4290,7 @@ img.alert-icon {float: left;}
@media screen and (max-width: 1350px){
.create-job-btn a{min-width: 150px;}
.work-rating{padding: 15px;}
.rate-toggle {width: 80%;}
.rate-toggle {width: 100%;}
.work-rating {font-size: 12px;}
.make-payment-tab li a{width: 300px;}
.appli-jcs {font-size: 9px;padding: 26px 10px 0; width: 12%;}
......@@ -4299,6 +4305,7 @@ img.alert-icon {float: left;}
.text-dot-dot{width: 75%;}
.admin-br-line{margin: 18px 0 17px;}
.appli-overall{width: 19%;}
.main-pack-type {padding-left: 0px};
}
@media screen and (max-width: 1280px){
......@@ -4312,7 +4319,7 @@ img.alert-icon {float: left;}
.appli-name {font-size: 24px;}
.main-applicant-content {width: 100%;}
.applicant-sidebar{width: 20.65%;}
.tabing-sidebar .nav-tabs > li > a {padding-left: 15px;}
}
@media screen and (max-width: 1278px){
......
......@@ -32,9 +32,6 @@
<FORM name="*.changeApplicationStatus" factory="Participant" class="performa.form.ChangeApplicationStatusFP"/>
<FORM name="*.bulkupdate" factory="Participant" class="performa.form.BulkUpdateFP"/>
<FORM name="*.navigateBetweenStatus" factory="Participant" class="performa.form.NavigateBetweenStatusFP"/>
<FORM name="*.verifyCompanyUser" factory="Participant" class="performa.form.VerifyCompanyUserFP">
<AccountCreatedEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="AccountCreatedMail"/>
</FORM>
<FORM name="*.sendCompanyUserInvites" factory="Participant" class="performa.form.SendCompanyUserInvitesFP">
<AccountCreatedEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="AccountCreatedMail"/>
<InvitationEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="InvitationMail"/>
......
......@@ -20,20 +20,20 @@
process.setAttribute("Company", company);
process.setAttribute("socialLogin", socialLogin);
company.setCompletedProfile(Boolean.TRUE);
%>
<div class="hello-company-name">Hello, <%= secUser.getFirstName() %></div>
<div class="section-tab-view">
<div class="main-tab-form">
<ul class="nav nav-pills nav-justified">
<li class="active"><a href="#"><span>1</span><div>Company Profile</div></a></li>
<li><a href="#"><span>2</span><div>Invite Users</div></a></li>
<li><a href="#"><span>3</span><div>Create a Job</div></a></li>
</ul>
</div>
<oneit:form name="companyProfile" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<oneit:dynInclude page="/extensions/adminportal/inc/company_profile_tabs.jsp" TabNumber="1" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="section-page-area" style="text-align: left">
<div class="main-sc-section">
<div class="form-group">
......
......@@ -33,6 +33,8 @@
String culture = FormatUtils.stringify(jobApplication.getCultureFitScore(), "PercentageWholeNumber", "0");
String criteria = FormatUtils.stringify(jobApplication.getRequirementFitScore(), "PercentageWholeNumber", "0");
String appID = "app-id-" + jobApplication.getID().toString();
Integer overallRank = jobApplication.getOverallRank();
Boolean isTopRank = CollectionUtils.equals(overallRank, 1);
%>
<div class="appli-row" id="<%= jobApplication.getID() %>">
<div class="appli-checkbox appli-l eq-second-height">
......@@ -57,7 +59,7 @@
Overall rank
</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" ))%>">
<div class="<%= "appli-percent-no blue " + (isTopRank ? "first" : "")%>">
<oneit:toString value="<%= jobApplication.getOverallRank() %>" mode="Integer" />
</div>
</div>
......
<%@ 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" %>
<%
Company company = (Company) process.getAttribute("Company");
String tabNumber = (String) getData(request, "TabNumber");
String firstTab = WebUtils.getSamePageInRenderMode(request, WebUtils.COMPANY_PROFILE);
String secondTab = WebUtils.getSamePageInRenderMode(request, WebUtils.INVITE_USERS);
%>
<oneit:dynIncluded>
<div class="main-tab-form">
<ul class="nav nav-pills nav-justified">
<li class="<%= tabNumber == "1" ? "active" : ""%>">
<oneit:button value=" " name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", firstTab)
.mapEntry("procParams", CollectionUtils.mapEntry("Company", company).toMap())
.toMap() %>">
<span><%= CollectionUtils.equals(company.getCompletedProfile(), Boolean.TRUE) ? "<img src=\"images/right-mark.png\" />" : "1"%></span>
<div>Company Profile</div>
</oneit:button>
</li>
<li class="<%= tabNumber == "2" ? "active" : ""%>">
<oneit:button value=" " name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", secondTab)
.mapEntry("procParams", CollectionUtils.mapEntry("Company", company).toMap())
.toMap() %>">
<span>2</span>
<div>Invite Users</div>
</oneit:button>
</li>
<li><a href="#"><span>3</span><div>Create a Job</div></a></li>
</ul>
</div>
</oneit:dynIncluded>
......@@ -54,11 +54,11 @@
%>
<header>
<div class="container-fluid">
<div class="row">
<div class="row" style="background-color: #ffffff;">
<div class="site-logo">
<a href="#"><img src="images/logo.svg"></a>
<a href="<%= homeUrl %>"><img src="images/logo.svg"></a>
</div>
<div class="search-bar">
<div class="search-bar" style="display: none;">
<div class="inset-shadow"></div>
<img src="images/search-icon.svg"/>
<input type="text" class="form-control" placeholder="<%= company.showHasClientSupport() ? "Search for job, candidate or client" : "Search for a job or candidate"%>"/>
......
......@@ -38,17 +38,38 @@
$(tab).addClass('active');
}
function focusDiv(selectDiv) {
var $el = $(selectDiv).closest('.main-pro-bar').children('.pro-bar');
if(!$el.hasClass('hasarrow'))
{
$el.click();
}
$(window).scrollTop($(selectDiv).offset().top);
}
function focusReqDiv(selectDiv) {
var $el = $(selectDiv).children('.pro-bar');
if(!$el.hasClass('hasarrow'))
{
$el.click();
}
$(window).scrollTop($(selectDiv).offset().top);
}
$(document).ready(function()
{
$('.expand-box span').click(function() {
$('.pro-bar').click(function() {
var $el = $(this);
if($(this).hasClass('hasarrow')){
$el.find('img').attr('src','images/select-top-arrow.svg');
$el.find('img').attr('src','images/select-down-arrow.svg');
$(this).removeClass('hasarrow');
}
else{
$el.find('img').attr('src','images/select-down-arrow.svg');
$el.find('img').attr('src','images/select-top-arrow.svg');
$(this).addClass('hasarrow');
}
});
......@@ -96,53 +117,102 @@
<div class="applicant-sub-part">
<div class="applicant-left">
<%
Tuple.T2<Double, ColorCode> roleFitData = (jobApplication.getRoleFit()!=null && jobApplication.getRoleFit().get(null)!=null) ? (Tuple.T2<Double, ColorCode>) jobApplication.getRoleFit().get(null) : null;
String colorClass = "percent-" +(roleFitData!=null ? roleFitData.get1().getCSSClass() : "green");
Tuple.T2<Double, ColorCode> roleFitData = (jobApplication.getRoleFit()!=null && jobApplication.getRoleFit().get(null)!=null) ? (Tuple.T2<Double, ColorCode>) jobApplication.getRoleFit().get(null) : null;
String colorClass = "percent-" +(roleFitData!=null ? roleFitData.get1().getCSSClass() : "green");
List<FactorScore> factorScores = jobApplication.getRoleAreaOfConcerns();
List<Tuple.T2> cultureConcerns = jobApplication.getCultureAreaOfConcerns();
%>
<div class="applicant-progress">
<div class="<%= job.getIncludeAssessmentCriteria()==Boolean.TRUE ? "col-sm-4" : "col-sm-6" %> col-xs-12 text-center thr-block role-fit" href="#1a" data-toggle="tab" id="progress1" onClick="tabToggle('#tab1', '.role-fit')">
<label class="progress-label">role fit</label>
<div class="<%= colorClass %> fixed-width">
<p style="display:none;"><oneit:toString value="<%= roleFitData.get0() %>" mode="TwoDPDouble" nullValue="0"/></p>
<p style="display:none;"><oneit:toString value="<%= roleFitData.get0()!=null?roleFitData.get0():0D %>" mode="TwoDPDouble" nullValue="0"/></p>
</div>
<div class="row four-label">
<div class="col-md-6 col-sm-6 col-xs-6 text-left">
<div class="a-label-row">
<span class="common-dot yellow-dot"></span><span class="r-y-label text-dot-dot">Achievement</span>
</div>
<div class="a-label-row">
<span class="common-dot red-dot"></span><span class="r-y-label text-dot-dot">Item with a long ti</span>
</div>
</div>
<div class="col-md-6 col-sm-6 col-xs-6 text-left">
<div class="a-label-row">
<span class="common-dot yellow-dot"></span><span class="r-y-label text-dot-dot">Remuneration</span>
</div>
<div class="a-label-row">
<span class="common-dot red-dot"></span><span class="r-y-label text-dot-dot">Item title</span>
</div>
</div>
<%
if(!factorScores.isEmpty())
{
int rowCount = (factorScores.size() % 2 == 0) ? (factorScores.size() / 2) : ((factorScores.size() + 1) / 2);
for(int i = 0; i < rowCount; i++)
{
FactorScore firstScore = factorScores.get(i*2);
FactorScore secondScore = (factorScores.size() > ((i*2) + 1)) ? factorScores.get((i*2) + 1) : null;
String dotClass = firstScore.getColorCode() != null ? firstScore.getColorCode().getDotCSSClass() : "";
%>
<div class="a-label-row">
<div class="col-md-6 col-sm-6 col-xs-6 text-left" onClick="focusDiv('<%= "#" + firstScore.getObjectID() %>')">
<span class="common-dot <%= dotClass %>"></span>
<span class="r-y-label text-dot-dot">
<oneit:toString value="<%= firstScore.getFactor() %>" mode="EscapeHTML"/>
</span>
</div>
<%
if(secondScore != null)
{
dotClass = secondScore.getColorCode() != null ? secondScore.getColorCode().getDotCSSClass() : "";
%>
<div class="col-md-6 col-sm-6 col-xs-6 text-left" onClick="focusDiv('<%= "#" + secondScore.getObjectID() %>')">
<span class="common-dot <%= dotClass %>"></span>
<span class="r-y-label text-dot-dot">
<oneit:toString value="<%= secondScore.getFactor() %>" mode="EscapeHTML"/>
</span>
</div>
<%
}
%>
</div>
<%
}
}
%>
</div>
</div>
<div class="<%= job.getIncludeAssessmentCriteria()==Boolean.TRUE ? "col-sm-4" : "col-sm-4" %> col-xs-12 text-center thr-block culture-fit" href="#2a" data-toggle="tab" id="progress2" onClick="tabToggle('#tab2', '.culture-fit')">
<div class="<%= job.getIncludeAssessmentCriteria()==Boolean.TRUE ? "col-sm-4" : "col-sm-6" %> col-xs-12 text-center thr-block culture-fit" href="#2a" data-toggle="tab" id="progress2" onClick="tabToggle('#tab2', '.culture-fit')">
<label class="progress-label">culture fit</label>
<div class="percent-green fixed-width">
<p style="display:none;"><oneit:toString value="<%= jobApplication.getCultureFitScore() %>" mode="TwoDPDouble" /></p>
</div>
<div class="row four-label">
<div class="col-md-6 col-sm-6 col-xs-6 text-left">
<div class="a-label-row">
<span class="common-dot yellow-dot"></span><span class="r-y-label text-dot-dot">Achievement</span>
</div>
<div class="a-label-row">
<span class="common-dot red-dot"></span><span class="r-y-label text-dot-dot">Item title</span>
</div>
</div>
<div class="col-md-6 col-sm-6 col-xs-6 text-left">
<div class="a-label-row">
<span class="common-dot yellow-dot"></span><span class="r-y-label text-dot-dot">Remuneration</span>
</div>
</div>
<%
if(!cultureConcerns.isEmpty())
{
int rowCount = (cultureConcerns.size() % 2 == 0) ? (cultureConcerns.size() / 2) : ((cultureConcerns.size() + 1) / 2);
for(int i = 0; i < rowCount; i++)
{
Tuple.T2 firstTuple = cultureConcerns.get(i*2);
Tuple.T2 secondTuple = (cultureConcerns.size() > ((i*2) + 1)) ? cultureConcerns.get((i*2) + 1) : null;
String dotClass = ((ColorCode)firstTuple.get1()).getDotCSSClass();
%>
<div class="a-label-row">
<div class="col-md-6 col-sm-6 col-xs-6 text-left" onClick="focusDiv('<%= "#" + ((CultureElement)firstTuple.get0()).getObjectID() %>')">
<span class="common-dot <%= dotClass %>"></span>
<span class="r-y-label text-dot-dot">
<oneit:toString value="<%= firstTuple.get0() %>" mode="EscapeHTML"/>
</span>
</div>
<%
if(secondTuple != null)
{
dotClass = ((ColorCode)secondTuple.get1()).getDotCSSClass();
%>
<div class="col-md-6 col-sm-6 col-xs-6 text-left" onClick="focusDiv('<%= "#" + ((CultureElement)firstTuple.get0()).getObjectID() %>')">
<span class="common-dot <%= dotClass %>"></span>
<span class="r-y-label text-dot-dot">
<oneit:toString value="<%= secondTuple.get0() %>" mode="EscapeHTML"/>
</span>
</div>
<%
}
%>
</div>
<%
}
}
%>
</div>
</div>
<%
......@@ -155,18 +225,45 @@
<p style="display:none;"><oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="TwoDPDouble" /></p>
</div>
<div class="row four-label">
<div class="col-md-6 col-sm-6 col-xs-6 text-left">
<div class="a-label-row">
<span class="common-dot yellow-dot"></span><span class="r-y-label text-dot-dot">Item title</span>
</div>
<div class="a-label-row">&nbsp;</div>
</div>
<div class="col-md-6 col-sm-6 col-xs-6 text-left">
<div class="a-label-row">
<span class="common-dot red-dot"></span><span class="r-y-label text-dot-dot">Item title</span>
</div>
<div class="a-label-row">&nbsp;</div>
</div>
<%
for(CriteriaType ct: CriteriaType.getCriteriaTypeArray())
{
MultiHashtable<Importance, AssessmentCriteriaAnswer> negativeAnswers = jobApplication.getNegativeACByImportance(ct);
int essentialNo = negativeAnswers.getValuesForKeyNN(Importance.ESSENTIAL).size();
int hDesirableNo = negativeAnswers.getValuesForKeyNN(Importance.HIGHLY_DESIRABLE).size();
if(essentialNo == 0 && hDesirableNo == 0)
{
continue;
}
%>
<div class="col-md-6 col-sm-6 col-xs-6 text-left">
<div class="a-label-row">
<span class="r-y-label pre-dot"><%= ct.getDescription() %></span>
<%
if(hDesirableNo > 0)
{
%>
<span class="common-dot yellow-dot"></span>
<span class="r-y-label pre-dot" onclick="focusReqDiv('.<%= Importance.HIGHLY_DESIRABLE %>')">(<%=hDesirableNo%>)</span>
<%
}
if(essentialNo > 0)
{
%>
<span class="common-dot red-dot"></span>
<span class="r-y-label pre-dot" onclick="focusReqDiv('.<%= Importance.ESSENTIAL %>')">(<%=essentialNo%>)</span>
<%
}
%>
</div>
</div>
<%
}
%>
</div>
</div>
......@@ -178,74 +275,73 @@
<div class="tab-content clearfix">
<div class="tab-pane active" id="1a">
<%
for(FactorClass factorClass : jobApplication.getSortedFactorClasses())
Map<FactorClass, Map<FactorLevelLink, Map>> factorClassDtls = (Map<FactorClass, Map<FactorLevelLink, Map>>) jobApplication.getFactorScoreDetails();
for(FactorClass factorClass : factorClassDtls.keySet())
{
if(roleScoreMap.get(factorClass) != null && roleScoreMap.get(factorClass).get0() > 0d)
{
Map<FactorLevelLink, Map> factorDetails = AnalysisEngine.getFactorScoreDetails(candidate, job.getLevel(), factorClass);
Double rating = roleScoreMap.get(factorClass).get0();
ColorCode colorCode = roleScoreMap.get(factorClass).get1();
String cssClass = colorCode.getCSSClass();
Map<FactorLevelLink, Map> factorDetails = factorClassDtls.get(factorClass);
Double rating = roleScoreMap.get(factorClass).get0();
ColorCode colorCode = roleScoreMap.get(factorClass).get1();
String cssClass = colorCode.getCSSClass();
%>
<div class="main-pro-bar">
<div class="pro-bar">
<span class="appli-label"><oneit:toString value="<%= factorClass %>" mode="EscapeHTML"/></span>
<span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="TwoDPDouble"/></span>
<span class="appli-progress-bar">
<div class="progress">
<div class="progress-bar <%= cssClass %>" role="progressbar" aria-valuenow="<%= rating %>" aria-valuemin="0" aria-valuemax="100" style="width:<%= rating %>%"></div>
</div>
</span>
<span class="expand-box">
<span class="hasarrow"><img src="images/select-down-arrow.svg"></span>
</span>
</div>
<div class="main-pro-bar">
<div class="pro-bar">
<span class="appli-label"><oneit:toString value="<%= factorClass %>" mode="EscapeHTML"/></span>
<span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="TwoDPDouble"/></span>
<span class="appli-progress-bar">
<div class="progress">
<div class="progress-bar <%= cssClass %>" role="progressbar" aria-valuenow="<%= rating %>" aria-valuemin="0" aria-valuemax="100" style="width:<%= rating %>%"></div>
</div>
</span>
<span class="expand-box">
<span class="hasarrow"><img src="images/select-down-arrow.svg"></span>
</span>
</div>
<div class="expand-hide-tag">
<%
for(FactorLevelLink factorLevelLink : factorDetails.keySet())
{
Map factorLinkDetails = factorDetails.get(factorLevelLink);
<div class="expand-hide-tag">
<%
for(FactorLevelLink factorLevelLink : factorDetails.keySet())
{
Map factorLinkDetails = factorDetails.get(factorLevelLink);
if(!factorLinkDetails.isEmpty())
{
FactorScore factorScore = (FactorScore) factorLinkDetails.get("factorScore");
%>
<div class="tab-row">
<div class="tab-view-label">
<oneit:toString value="<%= factorLevelLink.getFactor() %>" mode="EscapeHTML"/>
if(!factorLinkDetails.isEmpty())
{
FactorScore factorScore = (FactorScore) factorLinkDetails.get("factorScore");
%>
<div class="tab-row" id="<%= factorScore.getObjectID() %>">
<div class="tab-view-label">
<oneit:toString value="<%= factorLevelLink.getFactor() %>" mode="EscapeHTML"/>
</div>
<div class="tab-view-side">
<div class="result-want">
<div class="result"><oneit:toString value="<%= factorLevelLink.getLeftAnnot() %>" mode="EscapeHTML"/></div>
<div class="wants"><oneit:toString value="<%= factorLevelLink.getRightAnnot() %>" mode="EscapeHTML"/></div>
</div>
<div class="tab-view-side">
<div class="result-want">
<div class="result"><oneit:toString value="<%= factorLevelLink.getLeftAnnot() %>" mode="EscapeHTML"/></div>
<div class="wants"><oneit:toString value="<%= factorLevelLink.getRightAnnot() %>" mode="EscapeHTML"/></div>
</div>
<div class="result-bar">
<ul>
<%
Map<FactorScoreResult, Double> factorScoreDetails = (Map<FactorScoreResult, Double>)factorLinkDetails.get("factorScoreDetails");
for(FactorScoreResult factorScoreResult : factorScoreDetails.keySet())
{
%>
<li class="<%= factorScoreResult.getColorCode() != null ? factorScoreResult.getColorCode().getCSSClass() : "" %>" style="width: <%= factorScoreDetails.get(factorScoreResult) %>%; height: 10px"></li>
<%
}
%>
</ul>
<span class="triangle-arrow" style="left: <%= factorLinkDetails.get("scoreLeftMargin")%>%;"></span>
</div>
<div class="like-strive"><oneit:toString value="<%= factorScore != null ? factorScore.getNarrative() : null %>" mode="EscapeHTML"/></div>
<div class="result-bar">
<ul>
<%
Map<FactorScoreResult, Double> factorScoreDetails = (Map<FactorScoreResult, Double>)factorLinkDetails.get("factorScoreDetails");
for(FactorScoreResult factorScoreResult : factorScoreDetails.keySet())
{
%>
<li class="<%= factorScoreResult.getColorCode() != null ? factorScoreResult.getColorCode().getCSSClass() : "" %>" style="width: <%= factorScoreDetails.get(factorScoreResult) %>%; height: 10px"></li>
<%
}
%>
</ul>
<span class="triangle-arrow" style="left: <%= factorLinkDetails.get("scoreLeftMargin")%>%;"></span>
</div>
<div class="like-strive"><oneit:toString value="<%= factorScore != null ? factorScore.getNarrative() : null %>" mode="EscapeHTML"/></div>
</div>
<%
}
</div>
<%
}
%>
</div>
}
%>
</div>
</div>
<%
}
}
%>
</div>
......@@ -282,7 +378,7 @@
CultureNarrative cultureNarrative = (CultureNarrative) tuple.get2();
String dotClass = cultureNarrative != null && cultureNarrative.getColorCode() != null ? cultureNarrative.getColorCode().getDotCSSClass() : "";
%>
<div class="detail-tab-row">
<div class="detail-tab-row" id="<%= ((CultureElement)tuple.get1()).getObjectID() %>">
<div class="detail-tab-row-title col-md-4 col-sm-4 col-xs-4">
<span class="common-dot <%= dotClass %>"></span> &nbsp;
<oneit:toString value="<%= tuple.get1() %>" mode="EscapeHTML"/>
......@@ -309,16 +405,11 @@
MultiHashtable<Importance, AssessmentCriteriaAnswer> reqAnswersByImportance = jobApplication.getRequirementAnswersByImportance();
Map<Importance, Long> requirementFitData = (Map<Importance, Long>)jobApplication.getRequirementFit();
for(Importance importance: requirementFitData.keySet())
for(Importance importance: Utils.getImportancesForAssessment())
{
if(importance==null)
{
continue;
}
Long rating = requirementFitData.get(importance);
%>
<div class="main-pro-bar">
<div class="main-pro-bar <%= importance %>">
<div class="pro-bar">
<span class="appli-label"><oneit:toString value="<%= importance %>" mode="EscapeHTML"/></span>
<span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="WholeNumber" /></span>
......@@ -346,9 +437,11 @@
<%
for(AssessmentCriteriaAnswer answer: reqAnswersByImportance.getValuesForKey(importance))
{
String dotClass = answer.getAnswer() ? "" : (importance == Importance.ESSENTIAL ? "red-dot" : (importance == Importance.HIGHLY_DESIRABLE ? "yellow-dot" : ""));
%>
<div class="tab-row">
<div class="detail-tab-row-title col-md-4 col-sm-4 col-xs-4" style="width: 30%">
<span class="common-dot <%= dotClass %>"></span> &nbsp;
<oneit:toString value="<%= answer.getAssessmentCriteria().getCriteriaType() %>" mode="EscapeHTML"/>
</div>
<div class="detail-tab-row-text col-md-8 col-sm-8 col-xs-8" style="width: 65%">
......
......@@ -41,18 +41,12 @@
</script>
<div class="hire-the-right-candi" style="">You're nearly there...</div>
<oneit:form name="companyProfile" method="post" enctype="multipart/form-data">
<div class="section-tab-view">
<oneit:form name="companyProfile" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="section-tab-view">
<div class="main-tab-form">
<ul class="nav nav-pills nav-justified">
<li class="complate"><a href="#"><span><img src="images/right-mark.svg"/></span><div>Company Profile</div></a></li>
<li class="active"><a href="#"><span>2</span><div>Invite Users</div></a></li>
<li><a href="#"><span>3</span><div>Create a Job</div></a></li>
</ul>
</div>
<oneit:dynInclude page="/extensions/adminportal/inc/company_profile_tabs.jsp" TabNumber="2" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="section-page-area" style="text-align: left">
<div class="main-sc-section">
......@@ -84,12 +78,13 @@
<div class="main-sc-section text-center company-profile-btn">
<oneit:button value="Send invites & proceed" name="sendCompanyUserInvites" cssClass="btn btn-primary box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("CompanyUser", companyUser)
.mapEntry("procParams", CollectionUtils.mapEntry("socialLogin", socialLogin).mapEntry("Company", company).toMap())
.toMap() %>"/>
</div>
</div>
</div>
</oneit:form>
</oneit:form>
</div>
</oneit:dynIncluded>
<%@ include file="inc/htmlfooter_nopriv.jsp" %>
\ No newline at end of file
......@@ -73,9 +73,9 @@
</div>
</div>
<%
for (JobStatus jobStatus : JobStatus.getJobStatusArray())
for (JobStatus jobStatus : Utils.getJobStatusesForClient())
{
int jobCount = client.getApplicationCountByStatus(jobStatus);
int jobCount = client.getJobCountByStatus(jobStatus);
%>
<div class="<%= "application-count jl-c " + (jobCount == 0 ? "opaque-jobcount" : "")%>">
<oneit:toString value="<%= jobCount %>" mode="EscapeHTML" nullValue="0"/>
......
......@@ -33,3 +33,4 @@ Company.FirstName = First Name
Company.LastName = Last Name
Company.RoleType = Role
Company.CompanyLogo = Company Logo
Company.HiringTeamType = Hiring Team
......@@ -53,21 +53,9 @@
</div>
<div class="form-group">
<label><oneit:label GUIName="Email Address" /></label>
<%
if(companyUser.isLoggedViaSocial())
{
%>
<oneit:ormInput obj="<%= loggedInUser %>" type="text" attributeName="Email" cssClass="form-control" />
<%
}
else
{
%>
<oneit:ormInput obj="<%= loggedInUser %>" type="text" attributeName="UserName" cssClass="form-control" />
<% }
if(companyUser.getIsAccountVerified()!=Boolean.TRUE || companyUser.getIsEmailChanged()==Boolean.TRUE)
<oneit:ormInput obj="<%= loggedInUser %>" type="text" attributeName="Email" cssClass="form-control" />
<%
if(companyUser.getIsEmailChanged()==Boolean.TRUE)
{
%>
<div class="email-verify">Email address not yet verified.
......
......@@ -7,19 +7,20 @@
<oneit:dynIncluded>
<%
String nextPage = WebUtils.getSamePageInRenderMode(request, "CompanyProfile");
String nextPage = WebUtils.getSamePageInRenderMode(request, "CompanyProfile");
String homePage = WebUtils.getArticleByShortCut(process.getTransaction(), WebUtils.ADMIN_HOME).getLink(request);
CompanyUser companyUser = (CompanyUser) process.getAttribute("CompanyUser");
SecUser secUser = null;
Boolean socialLogin = Boolean.FALSE;
//to process company user verification
String id = request.getParameter("id");
String key = request.getParameter("key");
String verifyKey = request.getParameter("key");
Boolean invalid = Boolean.TRUE;
if(id!=null && key!=null)
if(id!=null && verifyKey !=null)
{
companyUser = CompanyUser.searchIdPin(transaction, Long.parseLong(id), key);
companyUser = CompanyUser.searchIdPin(transaction, Long.parseLong(id), verifyKey);
if(companyUser!=null && companyUser.getIsAccountVerified()!=Boolean.TRUE)
{
......@@ -49,6 +50,8 @@
}
}
process.setAttribute("Company", companyUser.getCompany());
Debug.assertion(companyUser != null, "Invalid CompanyUser in admin portal");
%>
<script type="text/javascript">
......@@ -96,22 +99,39 @@
<%
if(!socialLogin)
{
String key = Utils.getPwdKeyOfSecUser(request, secUser, true);
%>
<div class="form-group text-left">
<label>Password</label>
<oneit:ormInput obj="<%= companyUser %>" type="password" attributeName="Password" cssClass="form-control second-style reset-pw" required="true"/>
<oneit:input type="password" name="<%= key %>" class="form-control second-style reset-pw"/>
</div>
<div class="form-group text-left">
<label>Confirm password</label>
<oneit:ormInput obj="<%= companyUser %>" type="password" attributeName="ConfirmPassword" cssClass="form-control second-style reset-pw " required="true"/>
<oneit:input type="password" name="<%= key + 2 %>" class="form-control second-style reset-pw"/>
</div>
<%
}
if(companyUser.getCompany().getAddedByUser() == companyUser)
{
%>
<oneit:button value="Verify and login" name="gotoPage" cssClass="box-btn verify-btn"
requestAttribs="<%= CollectionUtils.mapEntry("socialLogin", socialLogin)
.mapEntry("procParams", CollectionUtils.mapEntry("Company", companyUser.getCompany()).toMap())
.mapEntry("nextPage", nextPage).toMap() %>"/>
<%
}
else
{
%>
<oneit:button value="Verify and login" name="sendCompanyUserInvites" cssClass="box-btn verify-btn"
requestAttribs="<%= CollectionUtils.mapEntry("socialLogin", socialLogin)
.mapEntry("CompanyUser", companyUser)
.mapEntry("nextPage", homePage)
.toMap() %>"/>
<%
}
%>
<oneit:button value="Verify and login" name="verifyCompanyUser" cssClass="box-btn verify-btn"
requestAttribs="<%= CollectionUtils.mapEntry("socialLogin", socialLogin)
.mapEntry("nextPage", nextPage).toMap() %>"/>
</div>
</oneit:form>
</oneit:dynIncluded>
......
......@@ -113,12 +113,14 @@
{
Candidate candidate = jobApplication.getCandidate();
String appID = "app-id-" + jobApplication.getID().toString();
Integer overallRank = jobApplication.getOverallRank();
Boolean isTopRank = CollectionUtils.equals(overallRank, 1);
Map<FactorClass, Tuple.T2<Double, ColorCode>> roleScoreMap = (Map<FactorClass, Tuple.T2<Double, ColorCode>>)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-->
<div class="<%= "cb-title " + (i == 0 ? "green-back" : (i < 3 ? "blue-back" : "dark-back" ))%> ">
<div class="cb-title dark-back ">
<div class="checkbox-list grid-checkbox">
<div class="checkbox-list">
<input type="checkbox" name="IsSelected" value="<%= jobApplication.getObjectID().toString() %>" id="<%= appID %>" class="applicant" >
......@@ -133,11 +135,10 @@
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).mapEntry("Applications", sortedApplications).toMap())
.toMap() %>">
<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.getOverallRank() %>" mode="Integer" />
<div class="<%= "over-all blue " + (isTopRank ? "f-60" : "")%>">
<oneit:toString value="<%= overallRank %>" mode="Integer" />
</div>
<div class="<%= "overall " + (i == 0 ? "f-60" : "")%>">overall rank</div>
<div class="<%= "overall " + (isTopRank ? "f-60" : "")%>">overall rank</div>
</div>
<div class="jcc-box">
<div class="job-match jcc">
......@@ -213,12 +214,8 @@
<%
Map<Importance, Long> requirementFitData = (Map<Importance, Long>)jobApplication.getRequirementFit();
for(Importance importance: requirementFitData.keySet())
for(Importance importance: Utils.getImportancesForAssessment())
{
if(importance==null)
{
continue;
}
%>
<div class="detail-row">
<div class="detail-label"><oneit:toString value="<%= importance %>" mode="EscapeHTML"/></div>
......
......@@ -113,11 +113,13 @@
for(JobApplication jobApplication : sortedApplications)
{
String appID = "app-id-" + jobApplication.getID().toString();
String appID = "app-id-" + jobApplication.getID().toString();
Integer overallRank = jobApplication.getOverallRank();
Boolean isTopRank = CollectionUtils.equals(overallRank, 1);
%>
<div class="appl-c-box application-row">
<!--TODO: need to work on the logic. just added to demonstrate that there are 3 different colors for this-->
<div class="<%= "cb-title " + (index == 0 ? "green-back" : (index < 3 ? "blue-back" : "dark-back" ))%> ">
<div class="cb-title dark-back">
<div class="checkbox-list grid-checkbox">
<div class="checkbox-list">
<input type="checkbox" name="IsSelected" value="<%= jobApplication.getObjectID().toString() %>" id="<%= appID %>" class="applicant" >
......@@ -132,9 +134,9 @@
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).mapEntry("Applications", sortedApplications).toMap())
.toMap() %>">
<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.getOverallRank() %>" mode="Integer" />
<div class="<%= "overall " + (isTopRank ? "f-60" : "")%>">overall rank</div>
<div class="<%= "over-all blue " + (isTopRank ? "f-60" : "")%> ">
<oneit:toString value="<%= overallRank %>" mode="Integer" />
</div>
</div>
<div class="jcc-box">
......
<?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_score</tableName>
<column name="color_code" type="String" nullable="true" length="200"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
update tl_score set color_code = CASE WHEN color_rank = 1 THEN 'GREEN' WHEN color_rank = 2 THEN 'AMBER' WHEN color_rank = 3 THEN 'RED' ELSE null END;
......@@ -10,9 +10,9 @@ $(document).ready(function () {
$('.navbar-toggle').click(function () {
$('.main-menu ul').slideToggle();
});
$('.expand-box span').click(function () {
$('.pro-bar').click(function () {
var $el = $(this);
$el.parent().parent().next().slideToggle();
$el.next().slideToggle();
});
if ($(window).width() <= '767') {
......
......@@ -4,7 +4,7 @@
<SYSTEM name="PerformaInvestments" targetDir="C:/build/PerformaInvestments" executor="testMainApp">
<WEBAPP name="cmsWebApp" relative-path="cmsWebApp" deployment="cms">
<OVERLAY system="CougarCMS8.2" subsystem="cmsWebApp" pin="3c1d38dc38c69786b3a4a45553f309aa57cd2836"/>
<OVERLAY system="CougarCMS8.2" subsystem="cmsWebApp" pin="2bb1972b665029a5167e3d25f5197c79c206a899"/>
</WEBAPP>
<PARAMETER name="key.file"/>
......
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