
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-05-2019 12:27 PM
Trying to access a script include from within a widget. Here's what I'm doing.
[HTML]
<div class="panel panel-default">
<div class="panel-body m-b-n">
<div class="wrapper-md row no-margin">
<form class="basic-form">
<p>
<!-- Name<br/> -->
<input type="text" ng-model="c.data.user_name" id="user_name" name="user_name" size="25" placeholder = "Name"/>
</p>
<p>
<!-- Email<br/> -->
<input type="text" ng-model="c.data.user_email" id="user_email" name="user_email" size="25" placeholder = "Email"/>
</p>
<p>
<!-- Phone Number<br/> -->
<input type="text" ng-model="c.data.user_phone" id="user_phone" name="user_phone" size="25" placeholder = "Phone"/>
</p>
<p>
<!-- Message<br/> -->
<textarea name="user_message" ng-model="c.data.user_message" id="user_message" cols="40" rows="5" placeholder = "Message"></textarea>
</p>
</form>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" id="submit_popup" name="submit_popup"
ng-click="c.submitData(user_name, user_email, user_phone, user_message);">${Submit}</button>
</div> <!-- button -->
</div> <!-- wrapper-md row -->
</div>
</div>
[Client]
function(spUtil, $window) {
/* widget controller */
var c = this;
c.submitData = function(){
var redir = 'https://MY-INSTANCE.service-now.com/sp?id=REDIR';
c.data.action = "addData";
c.server.update().then(function(){
c.data.action = undefined;
c.data.user_name = "";
c.data.user_email = "";
c.data.user_phone = "";
c.data.user_message = "";
// spUtil.addInfoMessage("Thank you for your submission.");
handleRedirect('REDIR-PLACE', redir);
});
}
function handleRedirect(redirectTo, redirectUrl) {
if (redirectUrl) {
$window.location.href = redirectUrl;
return;
}
}
}
[SERVER]
(function() {
data.stuff = [];
if (input) {
if (input.action == "addData") {
data.stuff = input.stuff;
// MY SCRIPT INCLUDE
var checkThings = new ValidateThings();
var emailValid = data.checkThings.isValidEmail(input.user_email);
var phoneValid = data.checkThings.isValidPhone(input.user_phone);
if(!phoneValid) {
data.phoneCheck = false;
} else {
var user_phone = input.user_phone;
}
if(!emailValid){
data.emailCheck = false;
} else {
var user_email = input.user_email;
}
var user_name = input.user_name;
var user_location = input.user_location;
var user_message = input.user_message;
var assign_group = 'My Group';
var incident_type = 'Bob';
//Generate Problem description using variables combined into one variable
var message_concat = 'Name: ' + user_name + '\n' + 'Email: ' + user_email + '\n' + 'Phone: ' + user_phone + '\n' + 'Message' + '\n' + '--------------------------------------------------------------' + '\n' + user_message;
var short_descr = 'Submitted by ' + user_name;
gs.log('MY MESSAGE: ' + message_concat);
var requestBody = {};
requestBody.assignment_group = assign_group;
requestBody.u_type = incident_type;
requestBody.short_description = short_descr;
requestBody.u_job_description = message_concat;
requestBody.description = "hello there moto";
//Encode as JSON
var rBody = new global.JSON().encode(requestBody);
gs.log("MY BODY: " + rBody);
//REST API to Create incident
var request = new sn_ws.RESTMessageV2();
request.setEndpoint('https://MY-INSTANCE.service-now.com/api/now/table/incident');
request.setHttpMethod('POST');
//Eg. UserName="UserName", Password="password" for this code sample.
var user = 'SOMEUSER';
var password = 'SOMEPASSWORD';
request.setBasicAuth(user,password);
request.setRequestHeader("Accept","application/json");
request.setRequestHeader('Content-Type','application/json');
request.setRequestBody(rBody);
var response = request.execute();
gs.log(response.getBody());
}
}
})();
When I'm back in the client context I want to pick up {data.phoneCheck, data.emailCheck} for some type of message on screen if validation fails. But I'm not sure the ValidateThings object is even being created on the server side.
So do I just to a: c.data.phoneCheck, c.data.emailCheck to grab my {true|false} on the client side, and a...
if(!c.data.phonecheck){
spUtil.addInfoMessage('Please check your phone number formatting');
}
if(!c.data.emailcheck){
spUtil.addInfoMessage('Please check your email formatting');
}
I can't seem to get this to click for me.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-05-2019 12:40 PM
//Lines changed
//var emailValid = checkThings.isValidEmail(input.user_email);
//var phoneValid = checkThings.isValidPhone(input.user_phone);
//var user_phone;
//var user_email;
(function() {
data.stuff = [];
if (input) {
if (input.action == "addData") {
data.stuff = input.stuff;
// MY SCRIPT INCLUDE
var checkThings = new ValidateThings();
var emailValid = checkThings.isValidEmail(input.user_email);
var phoneValid = checkThings.isValidPhone(input.user_phone);
var user_phone;
var user_email;
if(!phoneValid) {
data.phoneCheck = false;
} else {
user_phone = input.user_phone;
}
if(!emailValid){
data.emailCheck = false;
} else {
user_email = input.user_email;
}
var user_name = input.user_name;
var user_location = input.user_location;
var user_message = input.user_message;
var assign_group = 'My Group';
var incident_type = 'Bob';
//Generate Problem description using variables combined into one variable
var message_concat = 'Name: ' + user_name + '\n' + 'Email: ' + user_email + '\n' + 'Phone: ' + user_phone + '\n' + 'Message' + '\n' + '--------------------------------------------------------------' + '\n' + user_message;
var short_descr = 'Submitted by ' + user_name;
gs.log('MY MESSAGE: ' + message_concat);
var requestBody = {};
requestBody.assignment_group = assign_group;
requestBody.u_type = incident_type;
requestBody.short_description = short_descr;
requestBody.u_job_description = message_concat;
requestBody.description = "hello there moto";
//Encode as JSON
var rBody = new global.JSON().encode(requestBody);
gs.log("MY BODY: " + rBody);
//REST API to Create incident
var request = new sn_ws.RESTMessageV2();
request.setEndpoint('https://MY-INSTANCE.service-now.com/api/now/table/incident');
request.setHttpMethod('POST');
//Eg. UserName="UserName", Password="password" for this code sample.
var user = 'SOMEUSER';
var password = 'SOMEPASSWORD';
request.setBasicAuth(user,password);
request.setRequestHeader("Accept","application/json");
request.setRequestHeader('Content-Type','application/json');
request.setRequestBody(rBody);
var response = request.execute();
gs.log(response.getBody());
}
}
})();
Vinod Kumar Kachineni
Community Rising Star 2022

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-05-2019 12:35 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-05-2019 12:40 PM
//Lines changed
//var emailValid = checkThings.isValidEmail(input.user_email);
//var phoneValid = checkThings.isValidPhone(input.user_phone);
//var user_phone;
//var user_email;
(function() {
data.stuff = [];
if (input) {
if (input.action == "addData") {
data.stuff = input.stuff;
// MY SCRIPT INCLUDE
var checkThings = new ValidateThings();
var emailValid = checkThings.isValidEmail(input.user_email);
var phoneValid = checkThings.isValidPhone(input.user_phone);
var user_phone;
var user_email;
if(!phoneValid) {
data.phoneCheck = false;
} else {
user_phone = input.user_phone;
}
if(!emailValid){
data.emailCheck = false;
} else {
user_email = input.user_email;
}
var user_name = input.user_name;
var user_location = input.user_location;
var user_message = input.user_message;
var assign_group = 'My Group';
var incident_type = 'Bob';
//Generate Problem description using variables combined into one variable
var message_concat = 'Name: ' + user_name + '\n' + 'Email: ' + user_email + '\n' + 'Phone: ' + user_phone + '\n' + 'Message' + '\n' + '--------------------------------------------------------------' + '\n' + user_message;
var short_descr = 'Submitted by ' + user_name;
gs.log('MY MESSAGE: ' + message_concat);
var requestBody = {};
requestBody.assignment_group = assign_group;
requestBody.u_type = incident_type;
requestBody.short_description = short_descr;
requestBody.u_job_description = message_concat;
requestBody.description = "hello there moto";
//Encode as JSON
var rBody = new global.JSON().encode(requestBody);
gs.log("MY BODY: " + rBody);
//REST API to Create incident
var request = new sn_ws.RESTMessageV2();
request.setEndpoint('https://MY-INSTANCE.service-now.com/api/now/table/incident');
request.setHttpMethod('POST');
//Eg. UserName="UserName", Password="password" for this code sample.
var user = 'SOMEUSER';
var password = 'SOMEPASSWORD';
request.setBasicAuth(user,password);
request.setRequestHeader("Accept","application/json");
request.setRequestHeader('Content-Type','application/json');
request.setRequestBody(rBody);
var response = request.execute();
gs.log(response.getBody());
}
}
})();
Vinod Kumar Kachineni
Community Rising Star 2022