Commit 851477c4 by Harsh Shah

J003 Workspace Culture changes

parent ad6d3de0
...@@ -176,6 +176,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -176,6 +176,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
metaInfo.put ("attribHelper", "EnumeratedAttributeHelper"); metaInfo.put ("attribHelper", "EnumeratedAttributeHelper");
metaInfo.put ("dbcol", "importance"); metaInfo.put ("dbcol", "importance");
metaInfo.put ("defaultValue", "Importance.NOT_APPLICABLE");
metaInfo.put ("mandatory", "true"); metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "Importance"); metaInfo.put ("name", "Importance");
metaInfo.put ("type", "Importance"); metaInfo.put ("type", "Importance");
...@@ -216,7 +217,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass ...@@ -216,7 +217,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
super._initialiseNewObjAttributes (transaction); super._initialiseNewObjAttributes (transaction);
_Importance = (Importance)(HELPER_Importance.initialise (_Importance)); _Importance = (Importance)(Importance.NOT_APPLICABLE);
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<TABLE name="tl_culture_criteria" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_culture_criteria" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" /> <ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="Importance.NOT_APPLICABLE"/>
<SINGLEREFERENCE name="CultureElement" type="CultureElement" dbcol="culture_element_id" mandatory="true" /> <SINGLEREFERENCE name="CultureElement" type="CultureElement" dbcol="culture_element_id" mandatory="true" />
<SINGLEREFERENCE name="CultureElementRating" type="CultureElementRating" dbcol="culture_element_rating_id" mandatory="true" /> <SINGLEREFERENCE name="CultureElementRating" type="CultureElementRating" dbcol="culture_element_rating_id" mandatory="true" />
......
package performa.orm; package performa.orm;
import oneit.utils.StringUtils;
public class CultureElement extends BaseCultureElement public class CultureElement extends BaseCultureElement
{ {
...@@ -16,4 +18,10 @@ public class CultureElement extends BaseCultureElement ...@@ -16,4 +18,10 @@ public class CultureElement extends BaseCultureElement
{ {
return "CultureElement"; return "CultureElement";
} }
@Override
public String getToString()
{
return StringUtils.subNulls(getDescription(), super.getToString());
}
} }
\ No newline at end of file
package performa.orm; package performa.orm;
import oneit.utils.StringUtils;
public class CultureElementRating extends BaseCultureElementRating public class CultureElementRating extends BaseCultureElementRating
{ {
...@@ -16,4 +18,10 @@ public class CultureElementRating extends BaseCultureElementRating ...@@ -16,4 +18,10 @@ public class CultureElementRating extends BaseCultureElementRating
{ {
return "CultureElementRating"; return "CultureElementRating";
} }
@Override
public String getToString()
{
return StringUtils.subNulls(getDescription(), super.getToString());
}
} }
\ No newline at end of file
package performa.orm; package performa.orm;
import java.util.Collection; import java.util.*;
import java.util.Comparator;
import java.util.List;
import oneit.logging.LoggingArea; import oneit.logging.LoggingArea;
import oneit.objstore.ObjectStatus; import oneit.objstore.ObjectStatus;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.*;
import oneit.objstore.utils.ObjstoreUtils; import oneit.objstore.utils.ObjstoreUtils;
import oneit.security.*; import oneit.security.*;
import oneit.utils.*; import oneit.utils.*;
import oneit.utils.filter.CollectionFilter; import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter; import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException; import oneit.utils.parsers.FieldException;
import performa.orm.types.CriteriaType; import performa.orm.types.*;
import performa.utils.Utils; import performa.utils.Utils;
...@@ -37,6 +35,14 @@ public class Job extends BaseJob ...@@ -37,6 +35,14 @@ public class Job extends BaseJob
setRandomKey(RandomStringGen.getRandomStringGen().generateAlphaNum(4)); setRandomKey(RandomStringGen.getRandomStringGen().generateAlphaNum(4));
setSecUser(SecUser.getTXUser(getTransaction())); setSecUser(SecUser.getTXUser(getTransaction()));
for(CultureElement cultureElement : CultureElement.searchAll(getTransaction()))
{
CultureCriteria cultureCriteria = CultureCriteria.createCultureCriteria(getTransaction());
cultureCriteria.setCultureElement(cultureElement);
addToCultureCriterias(cultureCriteria);
}
} }
...@@ -119,4 +125,15 @@ public class Job extends BaseJob ...@@ -119,4 +125,15 @@ public class Job extends BaseJob
new ObjectTransform[] {Question.pipesQuestion().toSection().toObjectID(), Question.pipesQuestion().toObjectID()}, new ObjectTransform[] {Question.pipesQuestion().toSection().toObjectID(), Question.pipesQuestion().toObjectID()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR, CollectionUtils.DEFAULT_COMPARATOR}); new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR, CollectionUtils.DEFAULT_COMPARATOR});
} }
public Collection<CultureCriteria> getCultureCriteriasForClass(CultureClass cultureClass)
{
Filter elementFilter = CultureElement.SearchByAll().andCultureClass(new EqualsFilter(cultureClass));
Set<CultureElement> cultureElements = pipelineJob().toCultureCriterias().toCultureElement(elementFilter).uniqueVals();
Filter criteriaFilter = CultureCriteria.SearchByAll().andCultureElement(new InFilter(cultureElements));
return pipelineJob().toCultureCriterias(criteriaFilter).vals();
}
} }
\ No newline at end of file
...@@ -20,6 +20,8 @@ public class Importance extends AbstractEnumerated ...@@ -20,6 +20,8 @@ public class Importance extends AbstractEnumerated
public static final EnumeratedFactory FACTORY_Importance = new ImportanceFactory(); public static final EnumeratedFactory FACTORY_Importance = new ImportanceFactory();
public static final Importance NOT_APPLICABLE = new Importance ("NOT_APPLICABLE", "NOT_APPLICABLE", "Not Applicable", false);
public static final Importance ESSENTIAL = new Importance ("ESSENTIAL", "ESSENTIAL", "Essential", false); public static final Importance ESSENTIAL = new Importance ("ESSENTIAL", "ESSENTIAL", "Essential", false);
public static final Importance HIGHLY_DESIRABLE = new Importance ("HIGHLY_DESIRABLE", "HIGHLY_DESIRABLE", "Highly Desirable", false); public static final Importance HIGHLY_DESIRABLE = new Importance ("HIGHLY_DESIRABLE", "HIGHLY_DESIRABLE", "Highly Desirable", false);
...@@ -27,7 +29,7 @@ public class Importance extends AbstractEnumerated ...@@ -27,7 +29,7 @@ public class Importance extends AbstractEnumerated
public static final Importance DESIRABLE = new Importance ("DESIRABLE", "DESIRABLE", "Desirable", false); public static final Importance DESIRABLE = new Importance ("DESIRABLE", "DESIRABLE", "Desirable", false);
private static final Importance[] allImportances = private static final Importance[] allImportances =
new Importance[] { ESSENTIAL,HIGHLY_DESIRABLE,DESIRABLE}; new Importance[] { NOT_APPLICABLE,ESSENTIAL,HIGHLY_DESIRABLE,DESIRABLE};
private static Importance[] getAllImportances () private static Importance[] getAllImportances ()
...@@ -35,11 +37,18 @@ public class Importance extends AbstractEnumerated ...@@ -35,11 +37,18 @@ public class Importance extends AbstractEnumerated
return allImportances; return allImportances;
} }
private transient boolean ConsiderForAssessment;
private Importance (String name, String value, String description, boolean disabled) private Importance (String name, String value, String description, boolean disabled)
{ {
super (name, value, description, disabled); super (name, value, description, disabled);
} }
public boolean getConsiderForAssessment()
{
return ConsiderForAssessment;
}
public static final Comparator COMPARE_BY_POSITION = new CompareEnumByPosition (allImportances); public static final Comparator COMPARE_BY_POSITION = new CompareEnumByPosition (allImportances);
...@@ -107,6 +116,10 @@ public class Importance extends AbstractEnumerated ...@@ -107,6 +116,10 @@ public class Importance extends AbstractEnumerated
public static void defineAdditionalData () public static void defineAdditionalData ()
{ {
NOT_APPLICABLE.ConsiderForAssessment = false;
ESSENTIAL.ConsiderForAssessment = true;
HIGHLY_DESIRABLE.ConsiderForAssessment = true;
DESIRABLE.ConsiderForAssessment = true;
} }
...@@ -134,6 +147,7 @@ public class Importance extends AbstractEnumerated ...@@ -134,6 +147,7 @@ public class Importance extends AbstractEnumerated
{ {
Map attribs = new HashMap (); Map attribs = new HashMap ();
attribs.put ("ConsiderForAssessment", ArrayFormatter.toObject(getConsiderForAssessment()));
return attribs; return attribs;
} }
......
...@@ -3,9 +3,12 @@ ...@@ -3,9 +3,12 @@
<ROOT> <ROOT>
<CONSTANT package="performa.orm.types" name="Importance"> <CONSTANT package="performa.orm.types" name="Importance">
<VALUE name="ESSENTIAL" description="Essential"/> <DATA name="ConsiderForAssessment" type="boolean" />
<VALUE name="HIGHLY_DESIRABLE" description="Highly Desirable"/>
<VALUE name="DESIRABLE" description="Desirable"/> <VALUE name="NOT_APPLICABLE" description="Not Applicable" ConsiderForAssessment="false"/>
<VALUE name="ESSENTIAL" description="Essential" ConsiderForAssessment="true"/>
<VALUE name="HIGHLY_DESIRABLE" description="Highly Desirable" ConsiderForAssessment="true"/>
<VALUE name="DESIRABLE" description="Desirable" ConsiderForAssessment="true"/>
</CONSTANT> </CONSTANT>
</ROOT> </ROOT>
\ No newline at end of file
package performa.utils; package performa.utils;
import java.util.*;
import oneit.objstore.ObjectTransaction; import oneit.objstore.ObjectTransaction;
import oneit.security.*; import oneit.security.*;
import performa.orm.types.Importance;
/** /**
* *
...@@ -27,4 +29,18 @@ public class Utils ...@@ -27,4 +29,18 @@ public class Utils
{ {
return (secUser != null && secUser.hasPrivilege(PRIV_ACCESS_ADMIN_PORTAL)); return (secUser != null && secUser.hasPrivilege(PRIV_ACCESS_ADMIN_PORTAL));
} }
public static Importance[] getImportancesForAssessment()
{
List<Importance> importances = new ArrayList<>();
for(Importance importance : Importance.getImportanceArray())
{
if(importance.getConsiderForAssessment())
{
importances.add(importance);
}
}
return importances.toArray(new Importance[0]);
}
} }
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<oneit:ormInput obj="<%= criteria %>" type="text" attributeName="Name" cssClass="form-control" /> <oneit:ormInput obj="<%= criteria %>" type="text" attributeName="Name" cssClass="form-control" />
<% <%
for(Importance importance : Importance.getImportanceArray()) for(Importance importance : Utils.getImportancesForAssessment())
{ {
boolean isSelected = CollectionUtils.equals(formValue, importance.getName()); boolean isSelected = CollectionUtils.equals(formValue, importance.getName());
String id = "importance_" + importance.getName(); String id = "importance_" + importance.getName();
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
Debug.assertion(job != null, "Job is null in admin portal create job"); Debug.assertion(job != null, "Job is null in admin portal create job");
%> %>
<oneit:form name="editJob" method="post" enctype="multipart/form-data" action="<%= fifthPage %>"> <oneit:form name="editJob" method="post" enctype="multipart/form-data">
<div class="container-fluid"> <div class="container-fluid">
......
...@@ -3,3 +3,4 @@ Job.JobTitle = Job Title ...@@ -3,3 +3,4 @@ Job.JobTitle = Job Title
Job.JobDescription = Job Description Job.JobDescription = Job Description
CultureCriteria.Importance = Rate Importance CultureCriteria.Importance = Rate Importance
CultureCriteria.CultureElementRating = Rating
...@@ -7,44 +7,47 @@ ...@@ -7,44 +7,47 @@
<% <%
Job job = (Job) process.getAttribute("Job"); Job job = (Job) process.getAttribute("Job");
String fourthPage = WebUtils.getSamePageInRenderMode(request, WebUtils.JOB_MATCH); String fourthPage = WebUtils.getSamePageInRenderMode(request, WebUtils.JOB_MATCH);
String secondPage = WebUtils.getSamePageInRenderMode(request, WebUtils.ASSESSMENT_CRITERIA);
Debug.assertion(job != null, "Job is null in admin portal create job"); Debug.assertion(job != null, "Job is null in admin portal create job");
%> %>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() function moveImportanceSection(elementRating){
{
$("input[name$='CultureElementRating']").click(function()
{
var id = $(this).attr('id');
var val = $(this).val();
$("div." + val).hide(); var importanceDiv = $(elementRating).closest('.criteria_section').find('.work-rating');
$("div." + id).show(); var radioGroup = $("[name='" + $(elementRating).attr('name') +"']");
});
$(".importance input[type='radio']").each(function() if(radioGroup.is(':checked')){
{ importanceDiv.insertAfter($("[name='" + $(elementRating).attr('name') +"']:checked").parent());
$(this).parent('li').removeClass("active" ); importanceDiv.show();
}
if($(this).is(":checked")) else{
{ importanceDiv.hide();
$(this).parent('li').addClass("active" );
} }
}
$(document).ready(function(){
$(".element_rating_radio").each(function (){
moveImportanceSection(this);
}); });
$(".importance input[type='radio']").change(function() $(".element_rating_radio").change(function(){
{ moveImportanceSection(this);
$(this).closest('li').addClass("active" );
}); });
$(".importance_radio").change(function(){
var importanceGroup = $(this).closest('.rate-toggle');
importanceGroup.find('li.active').removeClass("active" );
importanceGroup.find("input[type='radio']:checked").closest('li').addClass("active" );
});
}); });
</script> </script>
<oneit:form name="editJob" method="post" enctype="multipart/form-data" action="<%= secondPage %>"> <oneit:form name="editJob" method="post" enctype="multipart/form-data">
<div class="container-fluid"> <div class="container-fluid">
...@@ -76,6 +79,8 @@ ...@@ -76,6 +79,8 @@
FormTag jobForm = FormTag.getActiveFormTag(request); FormTag jobForm = FormTag.getActiveFormTag(request);
FormBuilder formBuilder = jobForm.getFormBuilder(); FormBuilder formBuilder = jobForm.getFormBuilder();
job.pipelineJob().toCultureCriterias().toCultureElement().toRatings().uniqueVals(); //preloading data
for(CultureClass cultureClass : CultureClass.getCultureClassArray()) for(CultureClass cultureClass : CultureClass.getCultureClassArray())
{ {
%> %>
...@@ -84,58 +89,55 @@ ...@@ -84,58 +89,55 @@
<oneit:toString value="<%= cultureClass %>" mode="EscapeHTML"/> <oneit:toString value="<%= cultureClass %>" mode="EscapeHTML"/>
</div> </div>
<% <%
for(CultureElement element : CultureElement.SearchByAll().andCultureClass(new EqualsFilter<>(cultureClass)).search(transaction)) for(CultureCriteria criteria : job.getCultureCriteriasForClass(cultureClass))
{ {
CultureCriteria culture = CultureCriteria.createCultureCriteria(transaction); String optionKey = WebUtils.getRadioSingleAssocKey(request, criteria, CultureCriteria.SINGLEREFERENCE_CultureElementRating);
String formValue = formBuilder.fieldValue (optionKey, criteria.getCultureElementRating() == null ? "" : String.valueOf(criteria.getCultureElementRatingID()));
culture.setCultureElement(element);
culture.setJob(job);
String optionKey = WebUtils.getRadioSingleAssocKey(request, culture, CultureCriteria.SINGLEREFERENCE_CultureElementRating);
String formValue = formBuilder.fieldValue (optionKey, culture.getCultureElementRating() == null ? "" : culture.getCultureElementRating().getID().toString());
%> %>
<div class="criteria_section culture-margin-bottom">
<div class="work-radio-title"> <div class="work-radio-title">
<oneit:toString value="<%= element.getDescription() %>" mode="EscapeHTML"/> <oneit:toString value="<%= criteria.getCultureElement() %>" mode="EscapeHTML"/>
</div> </div>
<% <%
for (CultureElementRating rating : element.getRatingsSet()) for (CultureElementRating rating : criteria.getCultureElement().getRatingsSet())
{ {
String id = String.valueOf(rating.getID().longID()); String ratingId = String.valueOf(rating.getID().longID());
String selectedStr = (CollectionUtils.equals(id, formValue) ? "checked" : ""); String selectedStr = (CollectionUtils.equals(ratingId, formValue) ? "checked" : "");
%> %>
<div class="<%= "radio radio-primary workplace-radio " %>"> <div class="<%= "radio radio-primary workplace-radio " %>">
<input type="radio" name="<%= optionKey %>" id="<%= id %>" <%= selectedStr %> value="<%= String.valueOf(culture.getID().longID()) %>"> <input type="radio" name="<%= optionKey %>" id="<%= ratingId %>" class="element_rating_radio" value="<%= ratingId %>" <%= selectedStr %> >
<label for="<%= id %>"> <label for="<%= ratingId %>">
<oneit:toString value="<%= rating.getDescription() %>" mode="EscapeHTML"/> <oneit:toString value="<%= rating %>" mode="EscapeHTML"/>
</label> </label>
</div> </div>
<div class="<%= "work-rating " + id + " " + String.valueOf(culture.getID().longID()) %>" style="display: none;"> <%
}
%>
<div class="work-rating">
<div class="rate-background"> <div class="rate-background">
<span class="arrow-up-gray"></span> <span class="arrow-up-gray"></span>
<span class="rate-label"> <span class="rate-label">
<oneit:ormlabel obj="<%= culture %>" field="Importance" /> <oneit:ormlabel obj="<%= criteria %>" field="Importance" />
</span> </span>
<span class="rate-toggle"> <span class="rate-toggle">
<ul class="nav nav-pills nav-justified loyalty-ul"> <ul class="nav nav-pills nav-justified">
<% <%
String importanceKey = WebUtils.getInputKey(request, criteria, CultureCriteria.FIELD_Importance);
String importanceKey = WebUtils.getInputKey(request, culture, CultureCriteria.FIELD_Importance); String importanceValue = formBuilder.fieldValue (importanceKey, criteria.getImportance() == null ? "" : criteria.getImportance().getName());
String importanceValue = formBuilder.fieldValue (importanceKey, culture.getImportance() == null ? "" : culture.getImportance().getName());
for(Importance importance : Importance.getImportanceArray()) for(Importance importance : Importance.getImportanceArray())
{ {
boolean isSelected = CollectionUtils.equals(importanceValue, importance.getName()); boolean isSelected = CollectionUtils.equals(importanceValue, importance.getName());
String importanceId = "importance_" + importance.getName(); String importanceId = String.valueOf(criteria.getID().longID()) + "_importance_" + importance.getName();
String selected = (isSelected) ? "checked" : ""; String selected = isSelected ? "checked" : "";
String activeClass = isSelected ? "active" : "";
%> %>
<li> <li class="<%= activeClass%>">
<a href="javascript:void(0)" class="importance"> <a href="javascript:void(0)" class="importance">
<input type="radio" name="<%= importanceKey %>" value="<%= importance.getName() %>" id="<%= importanceId %>" <%= selected %>/> <input type="radio" name="<%= importanceKey %>" id="<%= importanceId %>" class="importance_radio" value="<%= importance.getName() %>" <%= selected %>/>
<label for="<%= importanceId %>"><oneit:toString value="<%= importance %>" mode="EscapeHTML" /></label> <label for="<%= importanceId %>"><oneit:toString value="<%= importance %>" mode="EscapeHTML" /></label>
</a> </a>
</li> </li>
<% <%
} }
...@@ -144,12 +146,12 @@ ...@@ -144,12 +146,12 @@
</span> </span>
</div> </div>
</div> </div>
</div>
<div class="form-brack-line-sub"></div>
<% <%
} }
}
%> %>
</div> </div>
<div class="form-brack-line-sub"></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