We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Need help in report knowledge gap ui action for incident in native UI

Badrinarayan
Kilo Sage

I want to have report knowledge gap button on incident , where a pop up to be displayed with short description populated in that and , when i submit the knowledge gap , feedback task to get created

here is my code , please help

function reportKnowledgeClient() {
    var shortDescription = g_form.getValue("short_description");

    var modalHTML =
        '<div>' +
        '<h3>Report Knowledge Gap</h3><br>' +
        '<label><b>Topic</b></label><br>' +
        '<input id="feedback_topic" class="form-control" type="text" style="width:100%; padding:4px;" value="' + shortDescription + '"/><br><br>' +
        '<label><b>Description</b></label><br>' +
        '<textarea id="feedback_description" style="width:100%; padding:4px;" rows="5"></textarea><br><br>' +
        '<button class="btn btn-primary" id="feedback_submit">Submit</button> ' +
        '<button class="btn btn-secondary" id="feedback_cancel">Cancel</button>' +
        '</div>';

    var modal = new GlideModal("Report Knowledge Gap");
    modal.setSize("default");
    modal.renderWithContent(modalHTML, function() {
        // Handle Submit
        document.getElementById("feedback_submit").addEventListener("click", function () {
			alert("clicked");
            var topic = document.getElementById("feedback_topic").value;
            var description = document.getElementById("feedback_description").value;

            var ga = new GlideAjax("IncidentUtils2");
            ga.addParam("sysparm_name", "getKnowledgeGapMapping");
            ga.addParam("sysparm_incident", g_form.getUniqueValue());
            ga.addParam("sysparm_topic", topic);
            ga.addParam("sysparm_description", description);

            ga.getXMLAnswer(function(response) {
                // Show the response (the answer returned from server)
                alert("Server says: " + response);
                modal.destroy(); // close modal
            });
        });

        // Handle Cancel
        document.getElementById("feedback_cancel").addEventListener("click", function () {
            modal.destroy();
        });
    });
}
1 ACCEPTED SOLUTION

rohanaditya
Kilo Sage

Hi @Badrinarayan , @Rajeevreddy 

Try unchecking List V2 compatible and List V3 Compatible

 

rohanaditya_0-1765523687549.png

 

and Check client check box and onClick to reportKnowledgeClient()

 

rohanaditya_1-1765523867516.png

 

and update the client script to,

function reportKnowledgeClient() {

    var sysID = g_form.getUniqueValue();
    var parentShortDesc = g_form.getValue('short_description');

    var dialog = new GlideModalForm("Report a Knowledge Gap", "kb_feedback_task");

    dialog.setPreference('sys_id', '-1');
    dialog.setPreference('sysparm_view', 'create');

    // Include parent AND short_description in query
    dialog.setPreference(
        'sysparm_query',
        'parent=' + sysID + '^short_description=' + parentShortDesc
    );

    dialog.setPreference("sysparm_titleless", "true");
    dialog.setPreference("sysparm_view_forced", "true");
    dialog.setPreference("sysparm_clear_stack", "true");

    dialog.setOnloadCallback(function (dlg) {
        var frameWin = dlg.getFrameWindow();
        if (!frameWin || !frameWin.g_form) return;

        var kb_form = frameWin.g_form;

        kb_form.setLabelOf('short_description', 'Topic');

        kb_form.setValue('short_description', parentShortDesc);

        kb_form.setMandatory('short_description', true);
        kb_form.setMandatory('description', true);

        kb_form.setReadOnly('assignment_group', true);
    });

    dialog.setCompletionCallback(function (action, newSysId, table, displayValue) {

        var link = '<a href="/kb_feedback_task.do?sys_id=' + newSysId + '">' + displayValue + '</a>';
        g_form.addInfoMessage("Successfully created Knowledge Feedback Task: " + link);

        if (g_form.getControl("knowledge")) {
            g_form.setValue("knowledge", true);
            g_form.setReadOnly("knowledge", true);
        }

        var listID = g_form.getTableName() + '.kb_feedback_task.parent';
        if (typeof GlideList2 !== "undefined" && GlideList2.get(listID)) {
            GlideList2.get(listID).refresh();
        }
    });
	
	dialog.setSize(600,600);

    dialog.render();
}

 

You will get a pop-up in native UI,

rohanaditya_2-1765523936078.png

Thanks,

Rohan

View solution in original post

1 REPLY 1

rohanaditya
Kilo Sage

Hi @Badrinarayan , @Rajeevreddy 

Try unchecking List V2 compatible and List V3 Compatible

 

rohanaditya_0-1765523687549.png

 

and Check client check box and onClick to reportKnowledgeClient()

 

rohanaditya_1-1765523867516.png

 

and update the client script to,

function reportKnowledgeClient() {

    var sysID = g_form.getUniqueValue();
    var parentShortDesc = g_form.getValue('short_description');

    var dialog = new GlideModalForm("Report a Knowledge Gap", "kb_feedback_task");

    dialog.setPreference('sys_id', '-1');
    dialog.setPreference('sysparm_view', 'create');

    // Include parent AND short_description in query
    dialog.setPreference(
        'sysparm_query',
        'parent=' + sysID + '^short_description=' + parentShortDesc
    );

    dialog.setPreference("sysparm_titleless", "true");
    dialog.setPreference("sysparm_view_forced", "true");
    dialog.setPreference("sysparm_clear_stack", "true");

    dialog.setOnloadCallback(function (dlg) {
        var frameWin = dlg.getFrameWindow();
        if (!frameWin || !frameWin.g_form) return;

        var kb_form = frameWin.g_form;

        kb_form.setLabelOf('short_description', 'Topic');

        kb_form.setValue('short_description', parentShortDesc);

        kb_form.setMandatory('short_description', true);
        kb_form.setMandatory('description', true);

        kb_form.setReadOnly('assignment_group', true);
    });

    dialog.setCompletionCallback(function (action, newSysId, table, displayValue) {

        var link = '<a href="/kb_feedback_task.do?sys_id=' + newSysId + '">' + displayValue + '</a>';
        g_form.addInfoMessage("Successfully created Knowledge Feedback Task: " + link);

        if (g_form.getControl("knowledge")) {
            g_form.setValue("knowledge", true);
            g_form.setReadOnly("knowledge", true);
        }

        var listID = g_form.getTableName() + '.kb_feedback_task.parent';
        if (typeof GlideList2 !== "undefined" && GlideList2.get(listID)) {
            GlideList2.get(listID).refresh();
        }
    });
	
	dialog.setSize(600,600);

    dialog.render();
}

 

You will get a pop-up in native UI,

rohanaditya_2-1765523936078.png

Thanks,

Rohan