I have a date column in my custom list. When i try to override the view of the field by using the TemplateOverride Function, my Javascript wont work on! The same problem occurs for Multiple Choice, When i try to display something that is not part of my actual choices. I want to know is there a way around this or was it intentional that i am unable to alter what is displayed in the actual field?
(function(){
//alert("code is working");
var overrideCtx={};
overrideCtx.Templates={};
overrideCtx.Templates.Fields={
'rating':{'View': CriticalityRating},
'Contractends':{'View': DateSettings}
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();
function CriticalityRating(ctx){
var ret=ctx.CurrentItem.rating;
if(ctx.CurrentItem.rating < 0 ) {
return "<div style='background-color:#FF7D7D;text-align:center;padding:10px;'>Highly Critical</div>";
}
else if(ctx.CurrentItem.rating == 0){
return "<div style='background-color:#F5FE4B;text-align:center;padding:10px;'>Low Criticality</div>";
}
return "<div style='background-color:#18EF1E;text-align:center;padding:10px;'>No Attention Needed</div>";
}
function DateSettings(ctx){
var date=ctx.CurrentItem.Contractends;
var duedate=new Date(ctx.CurrentItem.Contractends);
var now= new Date();
var sixmonths=new Date();
sixmonths.setDate(now.getDate()+180);
if(duedate<now){
return "<div style='background-color:#FF7D7D;text-align:center;padding:10px;'>"+date+"</div>";
}
else if(duedate>=now && duedate<=sixmonths){
return "<div style='background-color:#F5FE4B;text-align:center;padding:10px;'>"+date+"</div>";
}
return "<div style='background-color:#18EF1E;text-align:center;padding:10px;'>"+date+"</div>";
}
<#= ctx.CurrentItem.Contractends #>
will just render the date with whatever the default format is (for instance m/d/yyyy). Therefore it will appear as though your code was not applied, even though it was. – Dylan Cristy Jun 23 '15 at 15:13