Commit 42207fbc by Nilu

Extend job changes

Job List: Capture status changes
Confirm action when changing and explain consequences – needs to be at least a 2-step process:
Are you sure you want to change the Status of this Job? Yes/No
If you change the status of this Job to Closed/Filled then no further applicants can be accepted and the Job can not be reopened. Do you wish to continue? Yes/No
parent 6c3d0057
......@@ -8,7 +8,6 @@ import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea;
import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.security.SecUser;
import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult;
......@@ -16,7 +15,6 @@ import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException;
import oneit.utils.DateDiff;
import oneit.utils.MultiException;
import oneit.utils.math.NullArith;
import performa.orm.CompanyUser;
import performa.orm.HiringTeam;
......@@ -29,22 +27,6 @@ public class ExtendJobFP extends SaveFP
private static final LoggingArea LOG = LoggingArea.createLoggingArea("ExtendJobFP");
@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
{
HttpServletRequest request = submission.getRequest();
......@@ -53,24 +35,10 @@ public class ExtendJobFP extends SaveFP
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);
if(!companyUser.isLoggedViaSocial()) //cannot check password for social media logedin user
{
valid = secUser.checkPassword(companyUser.getConfirmPassword());
if(!valid)
{
companyUser.setConfirmPassword(null);
}
BusinessObjectParser.assertFieldCondition(valid, companyUser, CompanyUser.FIELD_ConfirmPassword, "passwordNotMatch");
}
if(valid)
{
job.setApplyBy(DateDiff.add(job.getApplyBy(), Calendar.DATE, 30));
job.setLastEdited(new Date());
......@@ -87,7 +55,6 @@ public class ExtendJobFP extends SaveFP
{
StripeUtils.makePayment(hiringTeam, job);
}
}
LogMgr.log(LOG, LogLevel.PROCESSING1, "Job Extended. Apply by date : ", job.getApplyBy());
......
......@@ -19,6 +19,8 @@
<script type="text/javascript">
var ExtendPopup = null;
var StatusPopup = null;
var ConfirmPopup = null;
$(document).ready(function()
{
......@@ -35,7 +37,19 @@
ExtendPopup = new jBox('Modal', {
id : "extend-job",
overlay : true,
width : 500, height : 450
width : 500, height : 380
});
StatusPopup = new jBox('Modal', {
id : "status-change",
overlay : true,
width : 500, height : 280
});
ConfirmPopup = new jBox('Modal', {
id : "status-change-confirm",
overlay : true,
width : 500, height : 350
});
$(".job-status").change(function()
......@@ -54,6 +68,19 @@
ExtendPopup.setContent($("#" + $(elem).data('popupid') ));
ExtendPopup.open();
}
function showStatusPopup(elemid)
{
StatusPopup.setContent($("#status-change-" + elemid ));
StatusPopup.open();
}
function showStatusConfirmPopup(elemid)
{
StatusPopup.close();
ConfirmPopup.setContent($("#status-change-confirm-" + elemid ));
ConfirmPopup.open();
}
</script>
<style>
.calendar .extend-icon{
......@@ -190,15 +217,6 @@
<oneit:toString value="<%= DateDiff.add(job.getApplyBy(), Calendar.DATE, 30) %>" mode="LongDate" />.
Would you like to continue?
</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 class="change-plan-button extend-job-button">
<a class="change-plan-no-button popup-no-button">No</a>
......@@ -276,12 +294,55 @@
for (JobStatus jStatus : job.getAvailableStatus(roleType))
{
%>
<oneit:button name="saveJob" value="<%= jStatus.getDescription() %>" skin="link" cssClass="<%="dropdown-item icontype_" + jStatus.getDescription().toLowerCase() %>"
<a class="<%="dropdown-item icontype_" + jStatus.getDescription().toLowerCase() %>" onClick="showStatusPopup('<%= job.getID().toString() + jStatus %>')">
<%= jStatus.getDescription() %>
</a>
<div id="status-change-<%= job.getID().toString() + jStatus %>" style="display:none" >
<div class="extend-job-content">
<h3>
Are you sure you want to change the status of this job?
</h3>
</div>
<div class="change-plan-button extend-job-button">
<a class="change-plan-no-button popup-no-button">No</a>
<%
if(jStatus == JobStatus.OPEN)
{
%>
<oneit:button skin="link" value="Yes" name="saveJob" cssClass="change-plan-yes-button"
requestAttribs="<%= CollectionUtils.mapEntry("Job", job)
.mapEntry("nextPage", homePage + "&JobStatus=" + (jobStatus != null ? jobStatus : "") + "&JobSortOption=" + jobSortOption)
.mapEntry("JobStatus", jStatus)
.toMap() %>" />
<%
}
else
{
%>
<a class=" change-plan-yes-button" onclick="showStatusConfirmPopup('<%= job.getID().toString() + jStatus %>')">Yes</a>
<%
}
%>
</div>
</div>
<div id="status-change-confirm-<%= job.getID().toString() + jStatus %>" style="display:none" >
<div class="extend-job-content">
<h3>
Are you sure you want to change the status of this job?
</h3>
<div class="extend-job-info">
By changing this job to Closed or Filled no further applicants can be accepted and the Job can not be reopened. Do you with to continue?
</div>
</div>
<div class="change-plan-button extend-job-button">
<a class="change-plan-no-button popup-no-button">No</a>
<oneit:button skin="link" value="Yes" name="saveJob" cssClass="change-plan-yes-button"
requestAttribs="<%= CollectionUtils.mapEntry("Job", job)
.mapEntry("nextPage", homePage + "&JobStatus=" + (jobStatus != null ? jobStatus : "") + "&JobSortOption=" + jobSortOption)
.mapEntry("JobStatus", jStatus)
.toMap() %>" />
</div>
</div>
<%
}
%>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment