Commit 8c6e70e7 by Nilu

Adding password to extend job popup

parent c661444b
...@@ -8,13 +8,17 @@ import oneit.logging.LogLevel; ...@@ -8,13 +8,17 @@ import oneit.logging.LogLevel;
import oneit.logging.LogMgr; import oneit.logging.LogMgr;
import oneit.logging.LoggingArea; import oneit.logging.LoggingArea;
import oneit.objstore.StorageException; import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.security.SecUser;
import oneit.servlets.forms.SubmissionDetails; import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult; import oneit.servlets.forms.SuccessfulResult;
import oneit.servlets.process.ORMProcessState; import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP; import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException; import oneit.utils.BusinessException;
import oneit.utils.DateDiff; import oneit.utils.DateDiff;
import oneit.utils.MultiException;
import oneit.utils.math.NullArith; import oneit.utils.math.NullArith;
import performa.orm.CompanyUser;
import performa.orm.HiringTeam; import performa.orm.HiringTeam;
import performa.orm.Job; import performa.orm.Job;
import performa.utils.StripeUtils; import performa.utils.StripeUtils;
...@@ -25,30 +29,64 @@ public class ExtendJobFP extends SaveFP ...@@ -25,30 +29,64 @@ public class ExtendJobFP extends SaveFP
private static final LoggingArea LOG = LoggingArea.createLoggingArea("ExtendJobFP"); private static final LoggingArea LOG = LoggingArea.createLoggingArea("ExtendJobFP");
@Override @Override
public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException
{
HttpServletRequest request = submission.getRequest();
SecUser secUser = SecUser.getTXUser(process.getTransaction());
CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser");
if(!companyUser.isLoggedViaSocial())
{
BusinessObjectParser.assertFieldCondition(companyUser.getConfirmPassword() != null, companyUser, CompanyUser.FIELD_ConfirmPassword, "mandatory", exceptions, true, request);
}
super.validate(process, submission, exceptions, params);
}
@Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{ {
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
Job job = (Job) request.getAttribute("Job"); Job job = (Job) request.getAttribute("Job");
HiringTeam hiringTeam = job.getHiringTeam(); HiringTeam hiringTeam = job.getHiringTeam();
HiringTeam billingTeam = hiringTeam.getManageOwnBilling() ? hiringTeam : hiringTeam.getBilledByTeam(); HiringTeam billingTeam = hiringTeam.getManageOwnBilling() ? hiringTeam : hiringTeam.getBilledByTeam();
SecUser secUser = SecUser.getTXUser(process.getTransaction());
CompanyUser companyUser = secUser.getExtension(CompanyUser.REFERENCE_CompanyUser);
boolean valid = true;
LogMgr.log(LOG, LogLevel.PROCESSING1, "Start of Extend job : ", job); LogMgr.log(LOG, LogLevel.PROCESSING1, "Start of Extend job : ", job);
job.setApplyBy(DateDiff.add(job.getApplyBy(), Calendar.DATE, 30)); if(!companyUser.isLoggedViaSocial()) //cannot check password for social media logedin user
job.setLastEdited(new Date());
if (billingTeam.canCreateJob())
{ {
billingTeam.setUsedCredits(NullArith.add(billingTeam.getUsedCredits(), 1).intValue()); valid = secUser.checkPassword(companyUser.getConfirmPassword());
if(billingTeam.getUsedCredits() > billingTeam.getAvailableCredits()) if(!valid)
{ {
StripeUtils.recordUsage(billingTeam); companyUser.setConfirmPassword(null);
} }
BusinessObjectParser.assertFieldCondition(valid, companyUser, CompanyUser.FIELD_ConfirmPassword, "passwordNotMatch");
} }
else if(billingTeam.getIsPPJ())
if(valid)
{ {
StripeUtils.makePayment(hiringTeam, job); job.setApplyBy(DateDiff.add(job.getApplyBy(), Calendar.DATE, 30));
job.setLastEdited(new Date());
if (billingTeam.canCreateJob())
{
billingTeam.setUsedCredits(NullArith.add(billingTeam.getUsedCredits(), 1).intValue());
if(billingTeam.getUsedCredits() > billingTeam.getAvailableCredits())
{
StripeUtils.recordUsage(billingTeam);
}
}
else if(billingTeam.getIsPPJ())
{
StripeUtils.makePayment(hiringTeam, job);
}
} }
LogMgr.log(LOG, LogLevel.PROCESSING1, "Job Extended. Apply by date : ", job.getApplyBy()); LogMgr.log(LOG, LogLevel.PROCESSING1, "Job Extended. Apply by date : ", job.getApplyBy());
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
String homePage = (String) getData(request, "HomePage"); String homePage = (String) getData(request, "HomePage");
String shortlistPage = (String) getData(request, "ShortlistPage"); String shortlistPage = (String) getData(request, "ShortlistPage");
boolean canCreateJob = (boolean) getData(request, "CanCreateJob"); boolean canCreateJob = (boolean) getData(request, "CanCreateJob");
CompanyUser compUser = (CompanyUser) getData(request, "CompanyUser");
%> %>
<oneit:dynIncluded> <oneit:dynIncluded>
...@@ -34,7 +35,7 @@ ...@@ -34,7 +35,7 @@
ExtendPopup = new jBox('Modal', { ExtendPopup = new jBox('Modal', {
id : "extend-job", id : "extend-job",
overlay : true, overlay : true,
width : 500, height : 360 width : 500, height : 450
}); });
$(".job-status").change(function() $(".job-status").change(function()
...@@ -64,23 +65,29 @@ ...@@ -64,23 +65,29 @@
.calendar .extend-span{ .calendar .extend-span{
cursor: pointer; cursor: pointer;
} }
.extend-job-content{
padding: 10px 40px;
}
.extend-job-content h3{ .extend-job-content h3{
color: #4A4A4A; color: #4A4A4A;
font-size: 22px; font-size: 22px;
font-weight: 500; font-weight: 500;
text-align: center;
padding: 10px 65px;
line-height: 29px; line-height: 29px;
font-family: "Usual-Medium"; font-family: "Usual-Medium";
} }
.extend-job-info{ .extend-job-content .extend-job-info{
color: #4A4A4A; color: #4A4A4A;
font-family: "Usual-Light"; font-family: "Usual-Light";
font-size: 16px; font-size: 16px;
font-weight: 300; font-weight: 300;
line-height: 25px; line-height: 25px;
text-align: center; padding-top: 10px;
padding: 10px 40px; }
.extend-job-content .password-text{
padding: 10px 0 10px;
font-size: 16px;
font-weight: 300;
line-height: 25px;
} }
.extend-job-button { .extend-job-button {
padding-bottom: 0px; padding-bottom: 0px;
...@@ -183,12 +190,22 @@ ...@@ -183,12 +190,22 @@
<oneit:toString value="<%= DateDiff.add(job.getApplyBy(), Calendar.DATE, 30) %>" mode="LongDate" />. <oneit:toString value="<%= DateDiff.add(job.getApplyBy(), Calendar.DATE, 30) %>" mode="LongDate" />.
Would you like to continue? Would you like to continue?
</div> </div>
<%
if(!compUser.isLoggedViaSocial())
{
%>
<p class="password-text">Please confirm your password to continue.</p>
<oneit:ormInput obj="<%= compUser %>" type="password" attributeName="ConfirmPassword" cssClass="form-control"/>
<%
}
%>
</div> </div>
<div class="change-plan-button extend-job-button"> <div class="change-plan-button extend-job-button">
<a class="change-plan-no-button popup-no-button">No</a> <a class="change-plan-no-button popup-no-button">No</a>
<oneit:button skin="link" value="Yes" name="extendJob" cssClass="change-plan-yes-button" <oneit:button skin="link" value="Yes" name="extendJob" cssClass="change-plan-yes-button"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", homePage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", homePage)
.mapEntry("Job", job) .mapEntry("Job", job)
.mapEntry("CompanyUser", compUser)
.toMap() %>" /> .toMap() %>" />
</div> </div>
......
...@@ -238,7 +238,7 @@ ...@@ -238,7 +238,7 @@
%> %>
<oneit:dynInclude page="/extensions/adminportal/inc/job_list.jsp" data="<%= CollectionUtils.EMPTY_MAP%>" ShortlistPage="<%= shortlistPage %>" <oneit:dynInclude page="/extensions/adminportal/inc/job_list.jsp" data="<%= CollectionUtils.EMPTY_MAP%>" ShortlistPage="<%= shortlistPage %>"
NextPage="<%= nextPage%>" HomePage="<%= homePage%>" Jobs="<%= sortedJobs.toArray(new Job[0]) %>" JobStatus="<%= jobStatus %>" NextPage="<%= nextPage%>" HomePage="<%= homePage%>" Jobs="<%= sortedJobs.toArray(new Job[0]) %>" JobStatus="<%= jobStatus %>"
JobSortOption="<%= jobSortOpt %>" CanCreateJob="<%= canCreateJob %>"/> JobSortOption="<%= jobSortOpt %>" CanCreateJob="<%= canCreateJob %>" CompanyUser="<%= companyUser %>"/>
<% <%
} }
%> %>
......
...@@ -213,7 +213,7 @@ ...@@ -213,7 +213,7 @@
{ {
%> %>
<oneit:dynInclude page="/extensions/adminportal/inc/job_list.jsp" data="<%= CollectionUtils.EMPTY_MAP%>" ShortlistPage="<%= shortlistPage %>" <oneit:dynInclude page="/extensions/adminportal/inc/job_list.jsp" data="<%= CollectionUtils.EMPTY_MAP%>" ShortlistPage="<%= shortlistPage %>"
NextPage="<%= nextPage%>" HomePage="<%= homePage%>" CanCreateJob="<%= canCreateJob %>" NextPage="<%= nextPage%>" HomePage="<%= homePage%>" CanCreateJob="<%= canCreateJob %>" CompanyUser="<%= companyUser %>"
Jobs="<%= CollectionUtils.batch(recentJobs, 10).get(0).toArray(new Job[0]) %>"/> Jobs="<%= CollectionUtils.batch(recentJobs, 10).get(0).toArray(new Job[0]) %>"/>
<% <%
} }
......
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