Commit 7bdf57c5 by Nilu

when owner disable role dropdown (temp validation as there has to be at least one owner for a team)

parent 5ab636c4
......@@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletRequest;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.utils.CollectionUtils;
import oneit.utils.MultiException;
import performa.orm.CompanyUserHiringTeamLink;
import performa.orm.HiringTeam;
......@@ -58,4 +59,20 @@ public class SaveCompanyUserFP extends SaveFP
return super.processForm(process, submission, params);
}
@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);
// }
super.validate(process, submission, exceptions, params);
}
}
\ No newline at end of file
......@@ -48,6 +48,7 @@ public abstract class BaseCompanyUserHiringTeamLink extends BaseBusinessClass
// Static constants corresponding to searches
public static final String SEARCH_All = "All";
public static final String SEARCH_AllActive = "AllActive";
// Static constants corresponding to attribute helpers
......@@ -1151,6 +1152,75 @@ public abstract class BaseCompanyUserHiringTeamLink extends BaseBusinessClass
.search (transaction);
}
public static SearchAllActive SearchByAllActive () { return new SearchAllActive (); }
public static class SearchAllActive extends SearchObject<CompanyUserHiringTeamLink>
{
public SearchAllActive andObjectID (QueryFilter<Long> filter)
{
filter.addFilter (context, "tl_company_user_hiring_team_link.object_id", FIELD_ObjectID);
return this;
}
public SearchAllActive andObjectCreated (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_company_user_hiring_team_link.object_created_date", FIELD_ObjectCreated);
return this;
}
public SearchAllActive andObjectLastModified (QueryFilter<Date> filter)
{
filter.addFilter (context, "tl_company_user_hiring_team_link.object_last_updated_date", FIELD_ObjectLastModified);
return this;
}
public SearchAllActive andRole (QueryFilter<RoleType> filter)
{
filter.addFilter (context, "tl_company_user_hiring_team_link.role_type", "Role");
return this;
}
public SearchAllActive andHiringTeam (QueryFilter<HiringTeam> filter)
{
filter.addFilter (context, "tl_company_user_hiring_team_link.hiring_team_id", "HiringTeam");
return this;
}
public SearchAllActive andCompanyUser (QueryFilter<CompanyUser> filter)
{
filter.addFilter (context, "tl_company_user_hiring_team_link.company_user_id", "CompanyUser");
return this;
}
public CompanyUserHiringTeamLink[]
search (ObjectTransaction transaction) throws StorageException
{
BaseBusinessClass[] results = super.search (transaction, REFERENCE_CompanyUserHiringTeamLink, SEARCH_AllActive, criteria);
Set<CompanyUserHiringTeamLink> typedResults = new LinkedHashSet <CompanyUserHiringTeamLink> ();
for (BaseBusinessClass bbcResult : results)
{
CompanyUserHiringTeamLink aResult = (CompanyUserHiringTeamLink)bbcResult;
typedResults.add (aResult);
}
return ObjstoreUtils.removeDeleted(transaction, typedResults).toArray (new CompanyUserHiringTeamLink[0]);
}
}
public static CompanyUserHiringTeamLink[]
searchAllActive (ObjectTransaction transaction) throws StorageException
{
return SearchByAllActive ()
.search (transaction);
}
public Object getAttribute (String attribName)
......
package performa.orm;
import oneit.objstore.FieldWriteability;
import performa.orm.types.RoleType;
public class CompanyUserHiringTeamLink extends BaseCompanyUserHiringTeamLink
{
......@@ -10,4 +13,15 @@ public class CompanyUserHiringTeamLink extends BaseCompanyUserHiringTeamLink
{
// Do not add any code to this, always put it in initialiseNewObject
}
@Override
public FieldWriteability getObjectWriteability()
{
if(getRole() == RoleType.OWNER)
{
return FieldWriteability.NOT_IN_GUI;
}
return super.getObjectWriteability();
}
}
\ No newline at end of file
......@@ -18,6 +18,10 @@
<SEARCH type="All" paramFilter="tl_company_user_hiring_team_link.object_id is not null" >
</SEARCH>
<SEARCH type="AllActive" paramFilter="tl_company_user_hiring_team_link.object_id is not null and oneit_sec_user_extension.is_disabled != 'Y'" >
<TABLE name="oneit_sec_user_extension" join="oneit_sec_user_extension.object_id = tl_company_user_hiring_team_link.company_user_id"/>
</SEARCH>
</BUSINESSCLASS>
</ROOT>
\ No newline at end of file
......@@ -276,6 +276,10 @@ public class CompanyUserHiringTeamLinkPersistenceMgr extends ObjectPersistenceMg
{
throw new RuntimeException ("NOT implemented: executeSearchQueryAll");
}
public ResultSet executeSearchQueryAllActive (SQLManager sqlMgr) throws SQLException
{
throw new RuntimeException ("NOT implemented: executeSearchQueryAllActive");
}
......@@ -425,6 +429,44 @@ public class CompanyUserHiringTeamLinkPersistenceMgr extends ObjectPersistenceMg
return results;
}
else if (searchType.equals (CompanyUserHiringTeamLink.SEARCH_AllActive))
{
// Local scope for transformed variables
{
}
String orderBy = " ";
String tables = ", oneit_sec_user_extension ";
Set<String> joinTableSet = new HashSet<String>();
String filter;
Object[] searchParams; // paramFilter: tl_company_user_hiring_team_link.object_id is not null and oneit_sec_user_extension.is_disabled != 'Y'
String preFilter = "(tl_company_user_hiring_team_link.object_id is not null and oneit_sec_user_extension.is_disabled != 'Y')"
+ " AND (oneit_sec_user_extension.object_id = tl_company_user_hiring_team_link.company_user_id) ";
preFilter += context.getLoadingAttributes ().getCustomSQL() ;
SearchParamTransform tx = new SearchParamTransform (criteria);
filter = StringUtils.replaceParams (preFilter, tx);
searchParams = tx.getParamsArray();
Integer maxRows = context.getLoadingAttributes ().getMaxRows ();
boolean truncateExtra = !context.getLoadingAttributes ().isFailIfMaxExceeded();
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_company_user_hiring_team_link " + tables + tableSetToSQL(joinTableSet) +
"WHERE " + SELECT_JOINS + " " + filter + orderBy;
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, searchParams, maxRows, truncateExtra);
return results;
}
else
{
......
......@@ -196,8 +196,12 @@
<oneit:ormEnum obj="<%= link %>" attributeName="Role" cssClass="form-control user-role" enums="<%= Arrays.asList(new RoleType[]{RoleType.ADMIN, RoleType.STANDARD, RoleType.OWNER}) %>"/>
</div>
<oneit:button name="save" value="Save" cssClass="<%= "save-user" + companyUser.getID().toString() + " hidden"%>"
requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser).mapEntry("nextPage", usersPage + "&UserSortOption=" + userSortOpt).toMap() %>" />
<oneit:button name="saveCompanyUser" value="Save" cssClass="<%= "save-user" + companyUser.getID().toString() + " hidden"%>"
requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser)
.mapEntry("CompanyUserHiringTeamLink", link)
.mapEntry("HiringTeam", hiringTeam)
.mapEntry("nextPage", usersPage + "&UserSortOption=" + userSortOpt)
.toMap() %>" />
</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