Commit 851477c4 by Harsh Shah

J003 Workspace Culture changes

parent ad6d3de0
......@@ -176,6 +176,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
metaInfo.put ("attribHelper", "EnumeratedAttributeHelper");
metaInfo.put ("dbcol", "importance");
metaInfo.put ("defaultValue", "Importance.NOT_APPLICABLE");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "Importance");
metaInfo.put ("type", "Importance");
......@@ -216,7 +217,7 @@ public abstract class BaseCultureCriteria extends BaseBusinessClass
super._initialiseNewObjAttributes (transaction);
_Importance = (Importance)(HELPER_Importance.initialise (_Importance));
_Importance = (Importance)(Importance.NOT_APPLICABLE);
}
......
......@@ -9,7 +9,7 @@
<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="CultureElementRating" type="CultureElementRating" dbcol="culture_element_rating_id" mandatory="true" />
......
package performa.orm;
import oneit.utils.StringUtils;
public class CultureElement extends BaseCultureElement
{
......@@ -16,4 +18,10 @@ public class CultureElement extends BaseCultureElement
{
return "CultureElement";
}
@Override
public String getToString()
{
return StringUtils.subNulls(getDescription(), super.getToString());
}
}
\ No newline at end of file
package performa.orm;
import oneit.utils.StringUtils;
public class CultureElementRating extends BaseCultureElementRating
{
......@@ -16,4 +18,10 @@ public class CultureElementRating extends BaseCultureElementRating
{
return "CultureElementRating";
}
@Override
public String getToString()
{
return StringUtils.subNulls(getDescription(), super.getToString());
}
}
\ No newline at end of file
package performa.orm;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.*;
import oneit.logging.LoggingArea;
import oneit.objstore.ObjectStatus;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.*;
import oneit.objstore.utils.ObjstoreUtils;
import oneit.security.*;
import oneit.utils.*;
import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException;
import performa.orm.types.CriteriaType;
import performa.orm.types.*;
import performa.utils.Utils;
......@@ -37,6 +35,14 @@ public class Job extends BaseJob
setRandomKey(RandomStringGen.getRandomStringGen().generateAlphaNum(4));
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
new ObjectTransform[] {Question.pipesQuestion().toSection().toObjectID(), Question.pipesQuestion().toObjectID()},
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
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 HIGHLY_DESIRABLE = new Importance ("HIGHLY_DESIRABLE", "HIGHLY_DESIRABLE", "Highly Desirable", false);
......@@ -27,7 +29,7 @@ public class Importance extends AbstractEnumerated
public static final Importance DESIRABLE = new Importance ("DESIRABLE", "DESIRABLE", "Desirable", false);
private static final Importance[] allImportances =
new Importance[] { ESSENTIAL,HIGHLY_DESIRABLE,DESIRABLE};
new Importance[] { NOT_APPLICABLE,ESSENTIAL,HIGHLY_DESIRABLE,DESIRABLE};
private static Importance[] getAllImportances ()
......@@ -35,10 +37,17 @@ public class Importance extends AbstractEnumerated
return allImportances;
}
private transient boolean ConsiderForAssessment;
private Importance (String name, String value, String description, boolean disabled)
{
super (name, value, description, disabled);
}
public boolean getConsiderForAssessment()
{
return ConsiderForAssessment;
}
public static final Comparator COMPARE_BY_POSITION = new CompareEnumByPosition (allImportances);
......@@ -107,6 +116,10 @@ public class Importance extends AbstractEnumerated
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
{
Map attribs = new HashMap ();
attribs.put ("ConsiderForAssessment", ArrayFormatter.toObject(getConsiderForAssessment()));
return attribs;
}
......
......@@ -2,10 +2,13 @@
<ROOT>
<CONSTANT package="performa.orm.types" name="Importance">
<DATA name="ConsiderForAssessment" type="boolean" />
<VALUE name="ESSENTIAL" description="Essential"/>
<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>
</ROOT>
\ No newline at end of file
package performa.utils;
import java.util.*;
import oneit.objstore.ObjectTransaction;
import oneit.security.*;
import performa.orm.types.Importance;
/**
*
......@@ -27,4 +29,18 @@ public class Utils
{
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 @@
<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());
String id = "importance_" + importance.getName();
......
......@@ -10,7 +10,7 @@
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">
......
Job.JobTitle = Job Title
Job.JobDescription = Job Description
Job.JobTitle = Job Title
Job.JobDescription = Job Description
CultureCriteria.Importance = Rate Importance
CultureCriteria.Importance = Rate Importance
CultureCriteria.CultureElementRating = Rating
......@@ -7,44 +7,47 @@
<%
Job job = (Job) process.getAttribute("Job");
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");
%>
<script type="text/javascript">
$(document).ready(function()
{
$("input[name$='CultureElementRating']").click(function()
{
var id = $(this).attr('id');
var val = $(this).val();
$("div." + val).hide();
$("div." + id).show();
});
function moveImportanceSection(elementRating){
var importanceDiv = $(elementRating).closest('.criteria_section').find('.work-rating');
var radioGroup = $("[name='" + $(elementRating).attr('name') +"']");
$(".importance input[type='radio']").each(function()
{
$(this).parent('li').removeClass("active" );
if($(this).is(":checked"))
{
$(this).parent('li').addClass("active" );
}
if(radioGroup.is(':checked')){
importanceDiv.insertAfter($("[name='" + $(elementRating).attr('name') +"']:checked").parent());
importanceDiv.show();
}
else{
importanceDiv.hide();
}
}
$(document).ready(function(){
$(".element_rating_radio").each(function (){
moveImportanceSection(this);
});
$(".importance input[type='radio']").change(function()
{
$(this).closest('li').addClass("active" );
$(".element_rating_radio").change(function(){
moveImportanceSection(this);
});
$(".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>
<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">
......@@ -72,87 +75,86 @@
</select>
</div>
<div class="form-brack-line-sub"></div>
<%
FormTag jobForm = FormTag.getActiveFormTag(request);
FormBuilder formBuilder = jobForm.getFormBuilder();
<%
FormTag jobForm = FormTag.getActiveFormTag(request);
FormBuilder formBuilder = jobForm.getFormBuilder();
for(CultureClass cultureClass : CultureClass.getCultureClassArray())
{
%>
<div class="form-group">
<div class="work-belonging">
<oneit:toString value="<%= cultureClass %>" mode="EscapeHTML"/>
</div>
job.pipelineJob().toCultureCriterias().toCultureElement().toRatings().uniqueVals(); //preloading data
for(CultureClass cultureClass : CultureClass.getCultureClassArray())
{
%>
<div class="form-group">
<div class="work-belonging">
<oneit:toString value="<%= cultureClass %>" mode="EscapeHTML"/>
</div>
<%
for(CultureCriteria criteria : job.getCultureCriteriasForClass(cultureClass))
{
String optionKey = WebUtils.getRadioSingleAssocKey(request, criteria, CultureCriteria.SINGLEREFERENCE_CultureElementRating);
String formValue = formBuilder.fieldValue (optionKey, criteria.getCultureElementRating() == null ? "" : String.valueOf(criteria.getCultureElementRatingID()));
%>
<div class="criteria_section culture-margin-bottom">
<div class="work-radio-title">
<oneit:toString value="<%= criteria.getCultureElement() %>" mode="EscapeHTML"/>
</div>
<%
for(CultureElement element : CultureElement.SearchByAll().andCultureClass(new EqualsFilter<>(cultureClass)).search(transaction))
for (CultureElementRating rating : criteria.getCultureElement().getRatingsSet())
{
CultureCriteria culture = CultureCriteria.createCultureCriteria(transaction);
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());
String ratingId = String.valueOf(rating.getID().longID());
String selectedStr = (CollectionUtils.equals(ratingId, formValue) ? "checked" : "");
%>
<div class="work-radio-title">
<oneit:toString value="<%= element.getDescription() %>" mode="EscapeHTML"/>
<div class="<%= "radio radio-primary workplace-radio " %>">
<input type="radio" name="<%= optionKey %>" id="<%= ratingId %>" class="element_rating_radio" value="<%= ratingId %>" <%= selectedStr %> >
<label for="<%= ratingId %>">
<oneit:toString value="<%= rating %>" mode="EscapeHTML"/>
</label>
</div>
<%
for (CultureElementRating rating : element.getRatingsSet())
{
String id = String.valueOf(rating.getID().longID());
String selectedStr = (CollectionUtils.equals(id, formValue) ? "checked" : "");
%>
<div class="<%= "radio radio-primary workplace-radio " %>">
<input type="radio" name="<%= optionKey %>" id="<%= id %>" <%= selectedStr %> value="<%= String.valueOf(culture.getID().longID()) %>">
<label for="<%= id %>">
<oneit:toString value="<%= rating.getDescription() %>" mode="EscapeHTML"/>
</label>
</div>
<div class="<%= "work-rating " + id + " " + String.valueOf(culture.getID().longID()) %>" style="display: none;">
<div class="rate-background">
<span class="arrow-up-gray"></span>
<span class="rate-label">
<oneit:ormlabel obj="<%= culture %>" field="Importance" />
</span>
<span class="rate-toggle">
<ul class="nav nav-pills nav-justified loyalty-ul">
<%
String importanceKey = WebUtils.getInputKey(request, culture, CultureCriteria.FIELD_Importance);
String importanceValue = formBuilder.fieldValue (importanceKey, culture.getImportance() == null ? "" : culture.getImportance().getName());
for(Importance importance : Importance.getImportanceArray())
{
boolean isSelected = CollectionUtils.equals(importanceValue, importance.getName());
String importanceId = "importance_" + importance.getName();
String selected = (isSelected) ? "checked" : "";
%>
<li>
<a href="javascript:void(0)" class="importance">
<input type="radio" name="<%= importanceKey %>" value="<%= importance.getName() %>" id="<%= importanceId %>" <%= selected %>/>
<label for="<%= importanceId %>"><oneit:toString value="<%= importance %>" mode="EscapeHTML" /></label>
</a>
</li>
<%
}
%>
</ul>
</span>
</div>
</div>
<%
}
}
%>
</div>
<div class="form-brack-line-sub"></div>
<%
}
%>
<div class="work-rating">
<div class="rate-background">
<span class="arrow-up-gray"></span>
<span class="rate-label">
<oneit:ormlabel obj="<%= criteria %>" field="Importance" />
</span>
<span class="rate-toggle">
<ul class="nav nav-pills nav-justified">
<%
String importanceKey = WebUtils.getInputKey(request, criteria, CultureCriteria.FIELD_Importance);
String importanceValue = formBuilder.fieldValue (importanceKey, criteria.getImportance() == null ? "" : criteria.getImportance().getName());
for(Importance importance : Importance.getImportanceArray())
{
boolean isSelected = CollectionUtils.equals(importanceValue, importance.getName());
String importanceId = String.valueOf(criteria.getID().longID()) + "_importance_" + importance.getName();
String selected = isSelected ? "checked" : "";
String activeClass = isSelected ? "active" : "";
%>
<li class="<%= activeClass%>">
<a href="javascript:void(0)" class="importance">
<input type="radio" name="<%= importanceKey %>" id="<%= importanceId %>" class="importance_radio" value="<%= importance.getName() %>" <%= selected %>/>
<label for="<%= importanceId %>"><oneit:toString value="<%= importance %>" mode="EscapeHTML" /></label>
</a>
</li>
<%
}
%>
</ul>
</span>
</div>
</div>
</div>
<div class="form-brack-line-sub"></div>
<%
}
%>
</div>
<%
}
%>
<div class="form-group">
<div class="save-assess">
......
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