Get input to pass into server script for a service portal widget

Jake Sadler
Kilo Sage

I'm trying to get the user input from my widget and pass it into my server script to get a result.

 

HTML 

<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Table Extensions</h4>
</div>
<div class="panel-body">
<sn-record-picker field="field" table="'sys_db_object'" display-field="'name'" value-field="'sys_id'" search-fields="'name'" page-size="100" ></sn-record-picker>
<form class="m-t form-horizontal" role="form">
<div class="form-group">
<label class="col-sm-2 control-label">Hierarchy</label>
<div class="col-sm-10">
<input type="text" placeholder="{{data.res}}" class="form-control" readonly>

</div>

 

Client Script

function ($scope) {

var c = this;
$scope.table = "sys_db_object";

c.server.update();
}

 

server script

 

(function() {

var tableName = input.setTable;
var table = new TableUtils(tableName);
var tableArrayList = table.getTables();
var tableArray = j2js(tableArrayList);

var result = tableArray.reverse();
if(result!=''){
data.res = result.join(" >>> ");
}
})();

 

 Widget Preview

 

find_real_file.png

Any help would be greatly appreciated

 

1 ACCEPTED SOLUTION

palanikumar
Giga Sage

Hi,

Try this code. This should work

HTML

<div class="panel panel-default">
  <div class="panel-heading">
    <h4 class="panel-title">Table Extensions</h4>
  </div>
  <div class="panel-body">
    <sn-record-picker field="c.field" 
                  table="'sys_db_object'" 
                  display-field="'name'" 
                  value-field="'name'" 
                  search-fields="'name'" 
                  page-size="100" 
                  ng-change="c.getHierarchy()">
    </sn-record-picker>
    <form class="m-t form-horizontal" role="form">
      <div class="form-group">
        <label class="col-sm-2 control-label">Hierarchy</label>
        <div class="col-sm-10">
          <input type="text" placeholder="{{data.res}}" class="form-control" readonly>
        </div>

Client Controler:

function($scope) {

    var c = this;
    $scope.table = "sys_db_object";

    c.server.update();
    c.getHierarchy = function() {
        c.server.get({
            action: 'get_hierarcgy',
            table: c.field.value
        }).then(function(response) {
            c.data = response.data;
        });
    }
}

Server Script:

(function() {
    if (input && input.action == "get_hierarcgy") {
        var tableName = input.table;
        var table = new TableUtils(tableName);
        var tableArrayList = table.getTables();
        var tableArray = j2js(tableArrayList);

        var result = tableArray.reverse();
        if (result != '') {
            data.res = result.join(" >>> ");
        }
    }
})();
Thank you,
Palani

View solution in original post

6 REPLIES 6

Hi,

 

That's correct.

palanikumar
Giga Sage

Hi,

Try this code. This should work

HTML

<div class="panel panel-default">
  <div class="panel-heading">
    <h4 class="panel-title">Table Extensions</h4>
  </div>
  <div class="panel-body">
    <sn-record-picker field="c.field" 
                  table="'sys_db_object'" 
                  display-field="'name'" 
                  value-field="'name'" 
                  search-fields="'name'" 
                  page-size="100" 
                  ng-change="c.getHierarchy()">
    </sn-record-picker>
    <form class="m-t form-horizontal" role="form">
      <div class="form-group">
        <label class="col-sm-2 control-label">Hierarchy</label>
        <div class="col-sm-10">
          <input type="text" placeholder="{{data.res}}" class="form-control" readonly>
        </div>

Client Controler:

function($scope) {

    var c = this;
    $scope.table = "sys_db_object";

    c.server.update();
    c.getHierarchy = function() {
        c.server.get({
            action: 'get_hierarcgy',
            table: c.field.value
        }).then(function(response) {
            c.data = response.data;
        });
    }
}

Server Script:

(function() {
    if (input && input.action == "get_hierarcgy") {
        var tableName = input.table;
        var table = new TableUtils(tableName);
        var tableArrayList = table.getTables();
        var tableArray = j2js(tableArrayList);

        var result = tableArray.reverse();
        if (result != '') {
            data.res = result.join(" >>> ");
        }
    }
})();
Thank you,
Palani