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; ...@@ -13,11 +13,13 @@ import performa.orm.Company;
import performa.orm.CompanyUser; import performa.orm.CompanyUser;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.objstore.ObjectTransaction; import oneit.objstore.ObjectTransaction;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.utils.CollectionUtils; import oneit.utils.CollectionUtils;
import oneit.utils.MultiException; import oneit.utils.MultiException;
import performa.orm.CompanyUserHiringTeamLink; import performa.orm.CompanyUserHiringTeamLink;
import performa.orm.HiringTeam; import performa.orm.HiringTeam;
import performa.orm.types.RoleType;
public class SaveCompanyUserFP extends SaveFP public class SaveCompanyUserFP extends SaveFP
...@@ -31,6 +33,8 @@ public class SaveCompanyUserFP extends SaveFP ...@@ -31,6 +33,8 @@ public class SaveCompanyUserFP extends SaveFP
CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser"); CompanyUser companyUser = (CompanyUser) request.getAttribute("CompanyUser");
Boolean disabled = (Boolean) request.getAttribute("disabled"); Boolean disabled = (Boolean) request.getAttribute("disabled");
Boolean remove = (Boolean) request.getAttribute("remove"); 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 ); LogMgr.log(Company.LOG, LogLevel.PROCESSING1,"In SaveCompanyUserFP saving company user : ", companyUser );
...@@ -48,15 +52,20 @@ public class SaveCompanyUserFP extends SaveFP ...@@ -48,15 +52,20 @@ public class SaveCompanyUserFP extends SaveFP
.andCompanyUser(new EqualsFilter<>(companyUser)) .andCompanyUser(new EqualsFilter<>(companyUser))
.search(objTran); .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 ); 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); return super.processForm(process, submission, params);
} }
...@@ -64,15 +73,17 @@ public class SaveCompanyUserFP extends SaveFP ...@@ -64,15 +73,17 @@ public class SaveCompanyUserFP extends SaveFP
@Override @Override
public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException
{ {
// HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
// HiringTeam hiringTeam = (HiringTeam) request.getAttribute("HiringTeam"); HiringTeam hiringTeam = (HiringTeam) request.getAttribute("HiringTeam");
// CompanyUserHiringTeamLink link = (CompanyUserHiringTeamLink) request.getAttribute("CompanyUserHiringTeamLink"); CompanyUserHiringTeamLink link = (CompanyUserHiringTeamLink) request.getAttribute("CompanyUserHiringTeamLink");
// RoleType roleType = (RoleType) request.getAttribute("RoleType");
// if(hiringTeam != null && link != null)
// { if(hiringTeam != null && link != null && roleType != null && roleType != RoleType.OWNER && link.getRole() == RoleType.OWNER)
// BusinessObjectParser.assertFieldCondition(hiringTeam.pipelineHiringTeam().toUsers(CompanyUserHiringTeamLink.SearchByAllActive()).toRole().vals().contains(RoleType.OWNER), {
// link , CompanyUserHiringTeamLink.FIELD_Role, "mandatory", exceptions, true, request);
// } 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); super.validate(process, submission, exceptions, params);
} }
} }
\ No newline at end of file
package performa.orm; package performa.orm;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import oneit.objstore.FieldWriteability; import oneit.objstore.FieldWriteability;
import performa.orm.types.JobStatus;
import performa.orm.types.RoleType; import performa.orm.types.RoleType;
...@@ -17,11 +21,22 @@ public class CompanyUserHiringTeamLink extends BaseCompanyUserHiringTeamLink ...@@ -17,11 +21,22 @@ public class CompanyUserHiringTeamLink extends BaseCompanyUserHiringTeamLink
@Override @Override
public FieldWriteability getObjectWriteability() 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 @@ ...@@ -147,7 +147,7 @@
%> %>
<div class="user-list-row" id="<%= companyUser.getID() %>"> <div class="user-list-row" id="<%= companyUser.getID() %>">
<div class="m-user-left"> <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" <oneit:button value=" " name="saveCompanyUser" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", currentPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", currentPage)
.mapEntry("remove", Boolean.TRUE) .mapEntry("remove", Boolean.TRUE)
...@@ -164,7 +164,7 @@ ...@@ -164,7 +164,7 @@
<div class="m-user-name"> <div class="m-user-name">
<oneit:toString value="<%= SecUserToNameTransform.INSTANCE.transform(user) %>" mode="EscapeHTML" /> <oneit:toString value="<%= SecUserToNameTransform.INSTANCE.transform(user) %>" mode="EscapeHTML" />
<% <%
if(companyUser.isOwner(hiringTeam)) if(link.isOwner())
{ {
%> %>
<span class="m-user-email">owner</span> <span class="m-user-email">owner</span>
...@@ -179,7 +179,7 @@ ...@@ -179,7 +179,7 @@
</div> </div>
<div class="m-user-right-padlock"> <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 disble" >DISABLE</div>
<div class="arrow_box enable" >ENABLE</div> <div class="arrow_box enable" >ENABLE</div>
<oneit:button value=" " name="saveCompanyUser" skin="link" <oneit:button value=" " name="saveCompanyUser" skin="link"
...@@ -193,9 +193,30 @@ ...@@ -193,9 +193,30 @@
</div> </div>
<div class="m-user-right"> <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 class="dropdown show select2type">
</div> <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"%>" <oneit:button name="saveCompanyUser" value="Save" cssClass="<%= "save-user" + companyUser.getID().toString() + " hidden"%>"
requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser) requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser)
.mapEntry("CompanyUserHiringTeamLink", link) .mapEntry("CompanyUserHiringTeamLink", link)
...@@ -292,7 +313,7 @@ ...@@ -292,7 +313,7 @@
</oneit:button> </oneit:button>
</div> </div>
<div class="m-user-right"> <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> </div>
...@@ -322,7 +343,7 @@ ...@@ -322,7 +343,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label><oneit:label GUIName="Role" /></label> <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>
<div class="form-group"> <div class="form-group">
<label><oneit:label GUIName="Add to multiple Hiring Teams" /></label> <label><oneit:label GUIName="Add to multiple Hiring Teams" /></label>
......
...@@ -9,3 +9,4 @@ ...@@ -9,3 +9,4 @@
#insufficientCredit = Insufficient credit to open the job. #insufficientCredit = Insufficient credit to open the job.
#agreeTerms = Please agree to the Terms & Conditions #agreeTerms = Please agree to the Terms & Conditions
#agreePrivacy = Please agree to the Privacy Policy #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