Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Issue in Configuration of spModal

Jeck Manalo
Tera Guru

Hello Everyone

I have a code where I use an spModal.

 

If I click "Approve" the value will be Set to Approve in the variable field.

If I click "Reject" the value will be Set to Rejected in the variable field.

 

I am having an issue that when I click the "X" in spModal or click outside, I still getting a value "Rejected" my goal is that this should not pass this value and stays the value into "Pending".

 

 

function onLoad() {
    var status = g_form.getValue('user_testing');
 
     if (status == 'Pending') {
         spModal.open({
             title: 'Do you want to approve or reject?',
             message: 'Please confirm your decision for this request.',
             buttons: [{
                     label: 'Approve',
                     primary: true
                 },
                 {
                     label: 'Reject',
                     primary: true
                 },
             ]
         }).then(function() {
             g_form.setValue('user_testing', 'Approved');
             g_form.save();
         }, function() {
             g_form.setValue('user_testing', 'Rejected');
             g_form.save();
         });
     }
 }
1 ACCEPTED SOLUTION

Shruti D
Kilo Sage

Hello @Jeck Manalo,

Update your code like below

function onLoad() {
    var status = g_form.getValue('user_testing');

    if (status == 'Pending') {
        spModal.open({
            title: 'Do you want to approve or reject?',
            message: 'Please confirm your decision for this request.',
            buttons: [
                {
                    label: 'Approve',
                    value: 'approved',  // replace backend value
                    primary: true
                },
                {
                    label: 'Reject',
                    value: 'rejected',  // replace backend value
                    primary: false
                }
            ]
        }).then(function(result) {
            if (result) {
                g_form.setValue('user_testing', result);
                g_form.save();
            }
            // No action if modal dismissed
        });
    }
}


Please Mark Correct ✔️
 if this solves your query and also mark Helpful 👍 if you find my response worthy based on the impact.

Regards,
Shruti

View solution in original post

7 REPLIES 7

Shruti D
Kilo Sage

Hello @Jeck Manalo,

Update your code like below

function onLoad() {
    var status = g_form.getValue('user_testing');

    if (status == 'Pending') {
        spModal.open({
            title: 'Do you want to approve or reject?',
            message: 'Please confirm your decision for this request.',
            buttons: [
                {
                    label: 'Approve',
                    value: 'approved',  // replace backend value
                    primary: true
                },
                {
                    label: 'Reject',
                    value: 'rejected',  // replace backend value
                    primary: false
                }
            ]
        }).then(function(result) {
            if (result) {
                g_form.setValue('user_testing', result);
                g_form.save();
            }
            // No action if modal dismissed
        });
    }
}


Please Mark Correct ✔️
 if this solves your query and also mark Helpful 👍 if you find my response worthy based on the impact.

Regards,
Shruti

Thank you! this works properly.

SP22
Giga Sage

Hello @Jeck Manalo,

Please find the modified code and let me know if it is useful.

function onLoad() {
    var status = g_form.getValue('user_testing');

    if (status === 'Pending') {
        spModal.open({
            title: 'Do you want to approve or reject?',
            message: 'Please confirm your decision for this request.',
            buttons: [
                {
                    label: 'Approve',
                    value: 'approve',
                    primary: true
                },
                {
                    label: 'Reject',
                    value: 'reject',
                    primary: false
                }
            ]
        }).then(function(result) {
            // Only set value if a button was clicked
            if (result === 'approve') {
                g_form.setValue('user_testing', 'Approved');
                g_form.save();
            } else if (result === 'reject') {
                g_form.setValue('user_testing', 'Rejected');
                g_form.save();
            }
            // If modal dismissed (X or outside), do nothing
        });
    }
}

 

Thanks
Santosh.p

I have test this code before already and seems not work. yes its not updating to Rejected when i click outside, but when i click the button its not able to update.