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  

User Id Card creation

Seven83S
Tera Contributor

Hi All,

 

I am trying to create a user Id Card with qr code Ithrough UI action Once I click the UI action it should create the ID card for that user.

Its partially working for me only issue I am facing is user details are not coming on the card.

I am using UI page, UI action here.

UI Page HTML Code:

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<!-- HTML for displaying the user info card -->
<div>
    <h2>User Information Card</h2>
    <p><strong>Name:</strong> ${data.u_user_name}</p>
    <p><strong>Aadhar Number:</strong> ${data.u_aadhar_number}</p>
    <p><strong>Gender:</strong> ${data.u_gender}</p>
    <p><strong>Date of Birth:</strong> ${data.u_dob}</p>
    <img src="${data.u_upload_photo}" alt="User Photo" style="max-width: 200px; max-height: 200px;">	
</img>
	<script src="/jquery.qrcode.min.jsdbx"></script>
	<div id="qrcode"></div>
	<br/>
	<button class="btn btn-success" OnClick="SendPrint()"><span class="glyphicon glyphicon-print"><label style="margin-left:3px;font-family: sans-serif"><b>Print</b></label></span></button>
</div>

<!-- Button to close the dialog and return data to the parent window -->
<button type="button" onclick="returnData()">Close and Return Data</button>

<script>
    function returnData() {
        var returnValue = '${data.user_name}'; // You can modify this to return any other value
        GlideDialogWindow.get().destroy(returnValue); // Close the dialog and send returnValue back to the parent window
    }
</script>


</j:jelly>

 

UI Page Processing script:

var sysId = getParameter('sys_id');

// Log the sys_id to the system log for debugging
gs.info("Retrieved sys_id: " + sysId);

// Ensure `data` is defined as an object to store fetched data
data = {};

// Check if sysId is not null or undefined
if (sysId) {
    // Fetch the record based on sys_id
    var card = new GlideRecord('u_demo_users_for_testing');
    if (card.get(sysId)) {
        // Log success message
        gs.info("Record found for sys_id: " + sysId);

        // Store the data in the `data` object to use in your Jelly script
        data.u_user_name = card.u_user_name.toString();
        data.u_aadhar_number = card.u_aadhar_number.toString();
        data.u_gender = card.u_gender.toString();
        data.u_dob = card.u_dob.toString();

        // Fetching the attachment URL
        var attachment = new GlideSysAttachment();
        var attachmentUrl = attachment.getAttachmentURL(card, 'u_upload_photo');
        data.u_upload_photo = attachmentUrl;
		alert(data);
    } else {
        // Log error if the record is not found
        gs.error("No record found for sys_id: " + sysId);
    }
} else {
    // Log an error if sys_id is not passed or is invalid
    gs.error("No sys_id parameter passed.");
}

 

Ui Page Client script:

$j('#qrcode').qrcode('${sysparm_url}');
function SendPrint()
{
	var a=document.getElementsByTagName("canvas")[0].toDataURL();
	var windowContent = '<!DOCTYPE html>';
    windowContent += '<html>';
    windowContent += '<head><title>Print canvas</title></head>';
    windowContent += '<body>';
    windowContent += '<img src="' + a + '">';
    windowContent += '</body>';
    windowContent += '</html>';
    var printWin = window.open('','','width=' + screen.availWidth + ',height=' + screen.availHeight);
    printWin.document.open();
    printWin.document.write(windowContent);
    printWin.document.addEventListener('load', function() {
    printWin.focus();
    printWin.print();
    printWin.document.close();
    printWin.close();            
}, true);
}

 Ui Action Script:

function openIDCard() {
    // Get the form submission record's sys_id
    var cardSysId = g_form.getUniqueValue();

    // Create a GlideDialogWindow to open the UI page as a modal
    var dialog = new GlideDialogWindow('user_info_card_popup'); // UI Page name
    dialog.setTitle('User Info Card'); // Set the dialog title

    // Pass sys_id to the UI Page as a parameter
    dialog.setSize(400, 800); // Set the size of the modal window
    dialog.setPreference('sys_id', cardSysId); // Pass the sys_id to the UI Page
    // alert('Sys Id Value: ' + cardSysId);
    // Define the callback function to handle returned data
    dialog.on('close', function(returnValue) {
        if (returnValue) {
            alert('Returned Data: ' + returnValue); // Handle the data returned from the UI Page
            // You can process the returnValue here, like updating the form or any other logic.
        } else {
            alert('Dialog closed without returning any data.');
        }
    });

    // Render the dialog window
    dialog.render();
}

 

Please help me to print the user details on card:

Seven83S_0-1726906433405.png

Thanks,

 

2 REPLIES 2

Fabian6
Tera Contributor

@Seven83S  I would be interested in the same solution for our users (Especially in the Mobile App). Did you find a solution? 

Seven83S
Tera Contributor

I did not find any solution for this.