Name
sn_gf.GoalFrameworkAjaxProcessor
Description
No description available
Script
var GoalFrameworkAjaxProcessor = Class.create();
GoalFrameworkAjaxProcessor.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
isAtleastOneTargetIsOfNonMilestoneType: function() {
var response = {};
var targetGr = new GlideRecordSecure(GoalFrameworkConstants.GOAL_TARGET_TABLE);
if (targetGr.isValid()) {
targetGr.addQuery('sys_id', 'IN', this.getParameter('sysparm_target_sys_ids'));
targetGr.addQuery('type', '!=', 'milestone');
targetGr.setLimit(1);
targetGr.query();
if (targetGr.hasNext())
response['recordOfNonMilestoneType'] = true;
else
response['recordOfNonMilestoneType'] = false;
}
return JSON.stringify(response);
},
doesTargetContainProgress: function() {
var response = {};
var targetGr = new GlideRecordSecure(GoalFrameworkConstants.GOAL_TARGET_PROGRESS_TABLE);
if (targetGr.isValid()) {
targetGr.addQuery('target.sys_id', 'IN', this.getParameter('sysparm_target_sys_ids'));
targetGr.setLimit(1);
targetGr.query();
if (targetGr.hasNext())
response['hasProgressRecord'] = true;
else
response['hasProgressRecord'] = false;
}
return JSON.stringify(response);
},
resetPercentComplete: function() {
var response = {};
var targetGr = new GlideRecordSecure(GoalFrameworkConstants.GOAL_TARGET_TABLE);
if (targetGr.isValid()) {
targetGr.addQuery('sys_id', 'IN', this.getParameter('sysparm_target_sys_ids'));
targetGr.addQuery('type', '!=', 'milestone');
targetGr.query();
while (targetGr.next()) {
targetGr.setValue('percent_complete', '');
if (targetGr.update()) {
response['percentCompleteUpdated'] = true;
return JSON.stringify(response);
}
}
}
response['percentCompleteUpdated'] = false;
return JSON.stringify(response);
},
getGoalDates: function() {
var response = {};
var goalGr = new GlideRecordSecure(GoalFrameworkConstants.GOAL_CORE_TABLE);
if (goalGr.get(this.getParameter('sysparm_parent_goal'))) {
response['start_date'] = goalGr.getDisplayValue('start_date');
response['end_date'] = goalGr.getDisplayValue('end_date');
} else {
var currentQuarter = new GlideRecordSecure("business_calendar_span");
if (sn_gf.GoalConfigUtil.getCalendarType() === "fiscal_period")
currentQuarter.addQuery("calendar", GoalFrameworkConstants.FISCAL_QUARTER_ID);
else
currentQuarter.addQuery("calendar", GoalFrameworkConstants.GREGORIAN_QUARTER_ID);
currentQuarter.addEncodedQuery("start<=javascript:gs.endOfToday()^end>=javascript:gs.beginningOfToday()");
currentQuarter.query();
if (currentQuarter.next()) {
response['start_date'] = GlideDateTime(currentQuarter.getValue("start")).getDate().getDisplayValue();
response['end_date'] = GlideDateTime(currentQuarter.getValue("end")).getDate().getDisplayValue();
}
}
return JSON.stringify(response);
},
getDefaultGoalDatesFromStrategy: function() {
var response = {};
var strategyGr = new GlideRecordSecure(GoalFrameworkConstants.STRATEGY_TABLE);
if (strategyGr.get(this.getParameter('sysparm_strategy'))) {
if (strategyGr.getValue('start_date'))
response['start_date'] = strategyGr.getDisplayValue('start_date');
if (strategyGr.getValue('end_date'))
response['end_date'] = strategyGr.getDisplayValue('end_date');
}
return JSON.stringify(response);
},
getDefaultStrategyDatesFromStrategicPlan: function() {
var response = {};
var strategicPlanGr = new GlideRecordSecure(GoalFrameworkConstants.STRATEGIC_PLAN);
if (strategicPlanGr.get(this.getParameter('sysparm_strategic_plan'))) {
if (strategicPlanGr.getValue('start_date')) {
response['start_date'] = strategicPlanGr.getDisplayValue('start_date');
}
if (strategicPlanGr.getValue('end_date')) {
response['end_date'] = strategicPlanGr.getDisplayValue('end_date');
}
}
return JSON.stringify(response);
},
canEditGoal: function() {
var response = {
'canEdit': false
};
var goalId = this.getParameter('sysparm_goal_id');
var goalGr = new GlideRecordSecure(GoalFrameworkConstants.GOAL_TABLE);
if (goalGr.get(goalId)) {
response['canEdit'] = goalGr.canWrite();
}
return JSON.stringify(response);
},
getReviewDate: function() {
var response = {};
var msg ;
var oldReviewDate = this.getParameter('sysparm_review_date');
var reviewDate = (new GFTarget()).getNextReviewDate(this.getParameter('sysparm_start_date'), this.getParameter('sysparm_review_freq'));
if (reviewDate){
response['review_due_date'] = reviewDate.getDisplayValue();
if (oldReviewDate)
msg = gs.getMessage("Review due date is changed from {0} to {1}.", [oldReviewDate, reviewDate]);
else
msg = gs.getMessage("Review due date is set to {0}.", reviewDate);
response['info_msg'] = msg;
}
return JSON.stringify(response);
},
type: 'GoalFrameworkAjaxProcessor'
});
Sys ID
1185b1c653113010c8d4ddeeff7b12d3