GlideModalForm adding value to field

S M
Tera Contributor

Hello Guys,

I have a UI Action on the change form and I need to display a dialog window with a specific View from a custom table called timeline. I am using GlideModalForm in order to achieve that but the problem is that I need to set the Parent field from timeline to the number from the parent change form. I tried to use the gModalForm.addParm('parent', sysId); but this is not working and the parent stay empty.

Here is the code:

function timelineDialog(){
      var sysId;
      if (typeof rowSysId == 'undefined')
             sysId = gel('sys_uniqueValue').value;
      else
          sysId = rowSysId;


      var gModalForm = new GlideModalForm('Timelines record', 'table_name);
       gModalForm.setPreference('sysparm_view', 'view_name');
       gModalForm.addParm('parent', sysId);
       gModalForm.setCompletionCallback(function(action_verb, sys_id, table, displayValue){
             if (action_verb == 'sysverb_update'){
                reloadWindow(window);
             }
       });
      gModalForm.render();
}

Any help will be appropriated, thank you in advance

1 ACCEPTED SOLUTION

GS3
Tera Contributor

Guys, this is the solution for that issue:

 

function timelineDialog() {

    ScriptLoader.getScripts('/scripts/classes/GlideModalFormSetWidth.js', function() {
          var sysID = g_form.getUniqueValue(); // get the sys_id value from the change request
         //Create and open the dialog form
         var dialog = new GlideModalForm(new GwtMessage().getMessage("Title to be displayed on the popup message"),'table_name');
         dialog.setSize("modal-lg",300);
         dialog.setPreference('sys_id','-1'); //-1 to get create new record
         dialog.setPreference('sysparm_view', 'name_of_the_view'); //Load 'create' view
         dialog.setPreference('sysparm_query','parent='+sysID); //copy the change sys_id to the parent field
         dialog.setPreference("sysparm_link_less", "true");
         dialog.setPreference('sysparm_view_forced', 'true');
         dialog.setPreference('sysparm_clear_stack', 'true');


        //Fuction called on feedback submit, to add success message and refresh Knowledge Feedback Task related list
        dialog.setCompletionCallback(function(action_verb, sys_id, table, displayValue){
                  location.reload();
                  var feedTaskNum = '<a href="/u_moj_timeline.do?sys_id='+sys_id+'&sysparm_view=">' + displayValue +'</a>';
                  g_form.addInfoMessage( new GwtMessage().getMessage("Successfully created Table Record [name of the table]: {0}",feedTaskNum));
        });

       //Open the dialog
       dialog.render();

      });
}

View solution in original post

7 REPLIES 7

kent_harwell
Giga Contributor

Is there a way of setting more than one value?

Using multiple:  dialog.setPreference('sysparm_query','[field_name]='+[value]);

statements doesn't seem to work for populating multiple fields on the modal form.

Any assistance on this would be greatly appreciated!

I figured this out:

dialog.setPreference('sysparm_query', 'u_incident=' + sysID + '^short_description=' + shortDesc);

this syntax works!

BraxtonM
Tera Contributor

dialog.setPreference('sysparm_query','parent='+sysID); //copy the change sys_id to the parent field

 

This line is the key. Adding the value to the query will populate the field in the modal form.