UI page code is not working - need urgent help
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-24-2025 08:17 AM
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide">
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: flex-start;
height: 100vh;
margin: 80px;
padding: 80px;
background-color: #F4F4F4;
}
.container {
width: 700px;
background: white;
padding: 40px;
border-radius: 8px;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
margin-top: 20px;
}
h2 {
text-align: center;
color: #333;
font-size: 28px;
margin-bottom: 30px;
}
form {
display: flex;
flex-direction: column;
}
label {
font-weight: bold;
display: block;
margin: 15px 0 8px;
}
input, select {
width: 100%;
padding: 12px;
margin-bottom: 20px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
button.submit-btn {
width: 100%;
padding: 12px;
background-color: #007BFF;
color: white;
border: none;
border-radius: 4px;
font-size: 18px;
cursor: pointer;
margin-top: 20px;
}
button.submit-btn:hover {
background-color: #0056B3;
}
</style>
<script>
function onSubmit() {
console.log("Submit button clicked!");
var contractorSysId = document.getElementById("contractor_sys_id").value;
var newManagerSysId = document.getElementById("new_manager_sys_id").value; //:white_check_mark: Capture sys_id
console.log("Contractor ID:", contractorSysId);
console.log("New Manager sys_id:", newManagerSysId);
if (!newManagerSysId) {
alert("Please select a valid new manager.");
return;
}
var ga = new GlideAjax('ChangeContractorManagerHandler');
ga.addParam('sysparm_name', 'createRequest');
ga.addParam('contractor', contractorSysId);
ga.addParam('newManager', newManagerSysId); //:white_check_mark: Send sys_id instead of name
ga.getXMLAnswer(function(response) {
console.log("Server Response:", response);
if (response === "success") {
alert("Manager change request submitted. Waiting for approval.");
location.reload();
} else {
alert("Failed: " + response);
}
});
}
// :white_check_mark: Update sys_id when a manager is selected
function updateSysId(sysId) {
document.getElementById("new_manager_sys_id").value = sysId;
}
</script>
<div class="container">
<h2>Change Contractor Manager Request</h2>
<form id="changeContractorForm">
<!-- Display the contractor's name (read-only) -->
<label for="contractor_name_display">Contractor Name</label>
<input type="text" id="contractor_name_display" value="${gs.getUser().getDisplayName()}" readonly="readonly" />
<!-- Hidden field to pass the contractor's sys_id -->
<input type="hidden" id="contractor_sys_id" name="contractor_name" value="${gs.getUserID()}" />
<!-- Manager Selection Field -->
<label for="new_manager">New Manager Name</label>
<g:macro_invoke macro="ui_reference"
id="ref_sys_user"
name="new_manager"
table="sys_user"
show_popup="true"
query="active=true"
onchange="updateSysId(this.value);" />
<!-- Hidden field to store the sys_id of selected manager -->
<input type="hidden" id="new_manager_sys_id" name="new_manager_sys_id" />
<button type="button" class="submit-btn" onclick="onSubmit()">Submit</button>
</form>
</div>
</j:jelly>
Script include
var ChangeContractorManagerHandler = Class.create();
ChangeContractorManagerHandler.prototype = {
initialize: function() {},
createRequest: function(contractor, newManager) {
try {
var gr = new GlideRecord('u_change_contractor_manager');
gr.initialize();
gr.u_contractor_name = contractor; // Ensure this is a REFERENCE field (sys_id)
gr.u_new_manager = newManager; // Ensure this is a REFERENCE field (sys_id)
gr.u_status = 'Pending';
gr.u_requested_by = gs.getSession().getUserID();
gr.u_appproval_status = 'Pending Approval'; // Fixed typo
var budgetOwner = this.getBudgetOwner(contractor);
if (budgetOwner) {
gr.u_budget_owner = budgetOwner; // Ensure this is a REFERENCE field
} else {
gs.error("Budget owner not found for contractor: " + contractor);
return "Budget owner could not be found.";
}
var sysId = gr.insert();
if (sysId) {
gs.info("Request created: " + sysId);
return "success";
} else {
gs.error("Failed to create request for contractor: " + contractor);
return "Failed to create the request.";
}
} catch (e) {
gs.error("Error in createRequest: " + e.message);
return "Error: " + e.message;
}
},
getBudgetOwner: function(contractorID) {
var userGR = new GlideRecord('sys_user');
if (userGR.get(contractorID)) {
// Replace "u_budget_owner" with the actual field name in your sys_user table
var budgetOwner = userGR.getValue('u_budget_owner');
return budgetOwner;
} else {
gs.error("Contractor not found: " + contractorID);
return null;
}
},
type: 'ChangeContractorManagerHandler'
};
function onSubmit() {
var contractorSysId = document.getElementById("contractor_sys_id").value;
var newManagerSysId = document.getElementById("new_manager_sys_id").value;
if (!newManagerSysId) {
alert("Please select a valid new manager.");
return;
}
var ga = new GlideAjax('ChangeManagerRequest');
ga.addParam('sysparm_name', 'createRequest');
ga.addParam('sysparm_contractor', contractorSysId);
ga.addParam('sysparm_new_manager', newManagerSysId);
ga.addParam('sysparm_requested_by', gs.getUserID()); // Fix
ga.getXMLAnswer(function(response) {
console.log("Server Response:", response);
if (response === "Request Created Successfully") {
alert("Manager change request submitted.");
location.reload();
} else {
alert("Failed: " + response);
}
});
}
// Problem is - it is not saving anything in the u_change_contractor_manager record
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-25-2025 03:14 AM
Hello,
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide">
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: center;
align-items: flex-start;
height: 100vh;
margin: 80px;
padding: 80px;
background-color: #F4F4F4;
}
.container {
width: 700px;
background: white;
padding: 40px;
border-radius: 8px;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
margin-top: 20px;
}
h2 {
text-align: center;
color: #333;
font-size: 28px;
margin-bottom: 30px;
}
form {
display: flex;
flex-direction: column;
}
label {
font-weight: bold;
display: block;
margin: 15px 0 8px;
}
input, select {
width: 100%;
padding: 12px;
margin-bottom: 20px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
}
button.submit-btn {
width: 100%;
padding: 12px;
background-color: #007BFF;
color: white;
border: none;
border-radius: 4px;
font-size: 18px;
cursor: pointer;
margin-top: 20px;
}
button.submit-btn:hover {
background-color: #0056B3;
}
</style>
<script>
function onSubmit() {
console.log("Submit button clicked!");
var contractorSysId = document.getElementById("contractor_sys_id").value;
var newManagerSysId = document.getElementById("new_manager_sys_id").value;
console.log("Contractor ID:", contractorSysId);
console.log("New Manager sys_id:", newManagerSysId);
if (!newManagerSysId) {
alert("Please select a valid new manager.");
return;
}
var ga = new GlideAjax('ChangeContractorManagerHandler');
ga.addParam('sysparm_name', 'createRequest');
ga.addParam('contractor', contractorSysId);
ga.addParam('newManager', newManagerSysId);
ga.getXMLAnswer(function(response) {
console.log("Server Response:", response);
if (response === "success") {
alert("Manager change request submitted.");
location.reload();
} else {
alert("Failed: " + response);
}
});
}
// Update sys_id when a manager is selected
function updateSysId(sysId) {
document.getElementById("new_manager_sys_id").value = sysId;
}
</script>
<div class="container">
<h2>Change Contractor Manager Request</h2>
<form id="changeContractorForm">
<!-- Display the contractor's name (read-only) -->
<label for="contractor_name_display">Contractor Name</label>
<input type="text" id="contractor_name_display" value="${gs.getUser().getDisplayName()}" readonly="readonly" />
<!-- Hidden field to pass the contractor's sys_id -->
<input type="hidden" id="contractor_sys_id" name="contractor_sys_id" value="${gs.getUserID()}" />
<!-- Manager Selection Field -->
<label for="new_manager">New Manager Name</label>
<g:macro_invoke macro="ui_reference"
id="ref_sys_user"
name="new_manager"
table="sys_user"
show_popup="true"
query="active=true"
onchange="updateSysId(this.value);" />
<!-- Hidden field to store the sys_id of selected manager -->
<input type="hidden" id="new_manager_sys_id" name="new_manager_sys_id" />
<button type="button" class="submit-btn" onclick="onSubmit()">Submit</button>
</form>
</div>
</j:jelly>
Please try this code
mark as helpful if you got solution for your issue.
Best Regards,
Rohan.