Commit 09206865 by Nilu

at least one owner has to be there in a team

parent 049bdd9e
......@@ -13,11 +13,13 @@ import performa.orm.Company;
import performa.orm.CompanyUser;
import javax.servlet.http.HttpServletRequest;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.utils.CollectionUtils;
import oneit.utils.MultiException;
import performa.orm.CompanyUserHiringTeamLink;
import performa.orm.HiringTeam;
import performa.orm.types.RoleType;
public class SaveCompanyUserFP extends SaveFP
......@@ -31,6 +33,8 @@ public class SaveCompanyUserFP extends SaveFP
CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser");
Boolean disabled = (Boolean) request.getAttribute("disabled");
Boolean remove = (Boolean) request.getAttribute("remove");
CompanyUserHiringTeamLink link = (CompanyUserHiringTeamLink) request.getAttribute("CompanyUserHiringTeamLink");
RoleType roleType = (RoleType) request.getAttribute("RoleType");
LogMgr.log(Company.LOG, LogLevel.PROCESSING1,"In SaveCompanyUserFP saving company user : ", companyUser );
......@@ -48,15 +52,20 @@ public class SaveCompanyUserFP extends SaveFP
.andCompanyUser(new EqualsFilter<>(companyUser))
.search(objTran);
for (CompanyUserHiringTeamLink link: links)
for (CompanyUserHiringTeamLink teamLink: links)
{
link.delete();
teamLink.delete();
LogMgr.log(Company.LOG, LogLevel.PROCESSING1,"In SaveCompanyUserFP removing link of company user : ", companyUser , " for hiring team : ",hiringTeam );
}
}
if(link != null && roleType != null)
{
link.setRole(roleType);
}
return super.processForm(process, submission, params);
}
......@@ -64,15 +73,17 @@ public class SaveCompanyUserFP extends SaveFP
@Override
public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException
{
// HttpServletRequest request = submission.getRequest();
// HiringTeam hiringTeam = (HiringTeam) request.getAttribute("HiringTeam");
// CompanyUserHiringTeamLink link = (CompanyUserHiringTeamLink) request.getAttribute("CompanyUserHiringTeamLink");
//
// if(hiringTeam != null && link != null)
// {
// BusinessObjectParser.assertFieldCondition(hiringTeam.pipelineHiringTeam().toUsers(CompanyUserHiringTeamLink.SearchByAllActive()).toRole().vals().contains(RoleType.OWNER),
// link , CompanyUserHiringTeamLink.FIELD_Role, "mandatory", exceptions, true, request);
// }
HttpServletRequest request = submission.getRequest();
HiringTeam hiringTeam = (HiringTeam) request.getAttribute("HiringTeam");
CompanyUserHiringTeamLink link = (CompanyUserHiringTeamLink) request.getAttribute("CompanyUserHiringTeamLink");
RoleType roleType = (RoleType) request.getAttribute("RoleType");
if(hiringTeam != null && link != null && roleType != null && roleType != RoleType.OWNER && link.getRole() == RoleType.OWNER)
{
BusinessObjectParser.assertFieldCondition(hiringTeam.pipelineHiringTeam().toUsers(CompanyUserHiringTeamLink.SearchByAllActive().andRole(new EqualsFilter<>(RoleType.OWNER))).vals().size() > 1,
link , CompanyUserHiringTeamLink.FIELD_Role, "atLeastOneOwner", exceptions, true, request);
}
super.validate(process, submission, exceptions, params);
}
}
\ No newline at end of file
package performa.orm;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import oneit.objstore.FieldWriteability;
import performa.orm.types.JobStatus;
import performa.orm.types.RoleType;
......@@ -17,11 +21,22 @@ public class CompanyUserHiringTeamLink extends BaseCompanyUserHiringTeamLink
@Override
public FieldWriteability getObjectWriteability()
{
if(getRole() == RoleType.OWNER)
// if(getRole() == RoleType.OWNER)
// {
// return FieldWriteability.NOT_IN_GUI;
// }
return super.getObjectWriteability();
}
public boolean isOwner()
{
return FieldWriteability.NOT_IN_GUI;
return getRole() != null && getRole() == RoleType.OWNER;
}
return super.getObjectWriteability();
public List<RoleType> getAvailableRoles()
{
return Arrays.asList(new RoleType[]{RoleType.STANDARD, RoleType.ADMIN, RoleType.OWNER});
}
}
\ No newline at end of file
......@@ -147,7 +147,7 @@
%>
<div class="user-list-row" id="<%= companyUser.getID() %>">
<div class="m-user-left">
<oneit:recalcClass htmlTag="div" classScript="companyUser.isOwner(hiringTeam) ? 'hide': 'show'" companyUser="<%= companyUser %>" hiringTeam="<%= hiringTeam %>">
<oneit:recalcClass htmlTag="div" classScript="link.isOwner() ? 'hide': 'show'" link="<%= link %>">
<oneit:button value=" " name="saveCompanyUser" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", currentPage)
.mapEntry("remove", Boolean.TRUE)
......@@ -164,7 +164,7 @@
<div class="m-user-name">
<oneit:toString value="<%= SecUserToNameTransform.INSTANCE.transform(user) %>" mode="EscapeHTML" />
<%
if(companyUser.isOwner(hiringTeam))
if(link.isOwner())
{
%>
<span class="m-user-email">owner</span>
......@@ -179,7 +179,7 @@
</div>
<div class="m-user-right-padlock">
<oneit:recalcClass htmlTag="div" classScript="companyUser.isOwner(hiringTeam) || companyUser == comUser ? 'hide': 'show'" companyUser="<%= companyUser %>" hiringTeam="<%= hiringTeam %>" comUser="<%= comUser %>">
<oneit:recalcClass htmlTag="div" classScript="link.isOwner() || companyUser == comUser ? 'hide': 'show'" companyUser="<%= companyUser %>" link="<%= link %>" comUser="<%= comUser %>">
<div class="arrow_box disble" >DISABLE</div>
<div class="arrow_box enable" >ENABLE</div>
<oneit:button value=" " name="saveCompanyUser" skin="link"
......@@ -193,9 +193,30 @@
</div>
<div class="m-user-right">
<oneit:ormEnum obj="<%= link %>" attributeName="Role" cssClass="form-control user-role" enums="<%= Arrays.asList(new RoleType[]{RoleType.ADMIN, RoleType.STANDARD, RoleType.OWNER}) %>"/>
</div>
<div class="dropdown show select2type">
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink<%= link.getID() %>" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="top-selected-item"><%= link.getRole().getDescription() %></span>
<span class="select2type_arrow " role="presentation"><b role="presentation"></b></span>
</a>
<div class="dropdown-menu select2type-results" aria-labelledby="dropdownMenuLink<%= link.getID() %>">
<%
for (RoleType roleType : link.getAvailableRoles())
{
%>
<oneit:button name="saveCompanyUser" value="<%= roleType.getDescription() %>" skin="link" cssClass="dropdown-item"
requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser)
.mapEntry("CompanyUserHiringTeamLink", link)
.mapEntry("HiringTeam", hiringTeam)
.mapEntry("RoleType", roleType)
.mapEntry("nextPage", usersPage + "&UserSortOption=" + userSortOpt)
.toMap() %>" />
<%
}
%>
</div>
</div>
</div>
<oneit:button name="saveCompanyUser" value="Save" cssClass="<%= "save-user" + companyUser.getID().toString() + " hidden"%>"
requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser)
.mapEntry("CompanyUserHiringTeamLink", link)
......@@ -292,7 +313,7 @@
</oneit:button>
</div>
<div class="m-user-right">
<oneit:ormEnum obj="<%= link %>" attributeName="Role" cssClass="form-control user-role" enums="<%= Arrays.asList(new RoleType[]{RoleType.ADMIN, RoleType.STANDARD}) %>"/>
<oneit:ormEnum obj="<%= link %>" attributeName="Role" cssClass="form-control user-role" enums="<%= Arrays.asList(new RoleType[]{RoleType.STANDARD, RoleType.ADMIN, RoleType.OWNER}) %>"/>
</div>
......@@ -322,7 +343,7 @@
</div>
<div class="form-group">
<label><oneit:label GUIName="Role" /></label>
<oneit:ormEnum obj="<%= inviteTeammate %>" attributeName="RoleType" cssClass="form-control"/>
<oneit:ormEnum obj="<%= inviteTeammate %>" attributeName="RoleType" cssClass="form-control" enums="<%= Arrays.asList(new RoleType[]{RoleType.STANDARD, RoleType.ADMIN, RoleType.OWNER}) %>"/>
</div>
<div class="form-group">
<label><oneit:label GUIName="Add to multiple Hiring Teams" /></label>
......
......@@ -9,3 +9,4 @@
#insufficientCredit = Insufficient credit to open the job.
#agreeTerms = Please agree to the Terms & Conditions
#agreePrivacy = Please agree to the Privacy Policy
#atLeastOneOwner = There has to be at least one owner for team.
\ No newline at end of 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