Name
global.CertificationAjax
Description
Support for Certification application
Script
var CertificationAjax = Class.create();
CertificationAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getCerts: function() {
var certs = new GlideRecordSecure("cert_element");
certs.addQuery("id", "IN", this.getParameter("sysparm_ids"));
certs.addQuery("cert_task", this.getParameter("sysparm_cert_task"));
certs.orderBy("id");
certs.query();
var id = "";
while (certs.next()) {
if (id != certs.id) {
var item = this.newItem();
item.setAttribute("id", certs.id + "");
id = certs.id + "";
}
var fieldElement = this.getDocument().createElement("f");
item.appendChild(fieldElement);
fieldElement.setAttribute("n", certs.element + "");
fieldElement.setAttribute("s", certs.state + "");
if (!certs.comment.nil())
fieldElement.setAttribute("c", certs.comment + "");
}
},
revertElements: function() {
var elements = this.getParameter("sysparm_elements").split(",");
gs.globalPut("no_update_cert_task", "true");
for (var i = 0; i < elements.length; i++) {
if (i == elements.length - 1)
delete no_update_cert_task;
var element = elements[i];
var split = element.indexOf("_");
var id = element.substring(0, split);
var field = element.substring(split + 1);
var gr = new GlideRecordSecure("cert_element");
gr.addQuery("id", id);
gr.addQuery("element", field);
gr.addQuery("cert_task", this.getParameter("sysparm_cert_task"));
gr.query();
if (gr.next()) {
gr.state = "Pending";
gr.comment = "";
gr.certified = "";
gr.certified_value = "";
gr.update();
}
}
},
certifyElements: function() {
this.processElements("Certified");
},
failElements: function() {
this.processElements("Failed");
},
processElements: function(status) {
var elements = this.getParameter("sysparm_elements").split(",");
gs.globalPut("no_update_cert_task", "true");
for (var i = 0; i < elements.length; i++) {
if (i == elements.length - 1)
delete no_update_cert_task;
var element = elements[i];
var split = element.indexOf("_");
var id = element.substring(0, split);
var field = element.substring(split + 1);
var gr = new GlideRecordSecure("cert_element");
gr.addQuery("id", id);
gr.addQuery("element", field);
gr.addQuery("cert_task", this.getParameter("sysparm_cert_task"));
gr.query();
if (gr.next()) {
gr.state = status;
gr.comment = this.getParameter("sysparm_cert_comment");;
gr.certified = gs.nowDateTime();
gr.certified_value = gr.getDisplayValue("id." + field);
gr.update();
}
}
},
certifyAll: function() {
var gr = new GlideRecordSecure("cert_element");
gr.addQuery("cert_task", this.getParameter("sysparm_cert_task"));
gr.addQuery("state", "Pending");
gr.query();
gs.globalPut("no_update_cert_task", "true");
while (gr.next()) {
if (!gr.hasNext())
delete no_update_cert_task;
gr.state = "Certified";
gr.update();
}
},
cancelCert: function() {
var current_sys_id = (this.getParameter("sysparm_cert_instance"));
var gr = new GlideRecord("cert_instance");
gr.addQuery('sys_id', current_sys_id);
gr.query();
if (gr.next() && gr.canWrite()) {
gr.setValue("state", 7);
gr.update();
return('true');
}
return('false');
}
});
Sys ID
e70a68fc0a0006d401a8dd3b1fe0a5a2