- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-19-2022 08:59 AM
Hi Ankur,
Below is my code. Log is entering in server side script but record is not deleting. ANy modifications required????
HTML Code::
<td><button id ={{r.data.teamsysID}} ng-click="c.confirmDelete($index)">Remove</button></td>
Client side Code@@@@@@@@@@@
c.confirmDelete = function(idx){
c.server.get({
action:'confirmDelete',
ID:c.data.record_id
}).then(function(r){
c.server.update();
});
}
Server Side Code@@@@@@@@@@
if (input.action == 'confirmDelete'){
gs.addInfoMessage('entered confirmDelete');
data.record_id = $sp.getParameter("sys_id")
gs.addInfoMessage('sys_id of the record m2m--');
var gr = new GlideRecord('x_80859_teamcool4u_m2m_users_teams');
gr.addQuery('sys_id',data.record_id);
gr.query();
if(gr.next())
{
gr.deleteRecord();
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-19-2022 09:22 AM
Hi,
I have modified the code for you. Please use the same as mentioned below:
HTML:
<table class='table'>
<thead class="thead-dark">
<caption style="color:Brown;"><b>Member details of the selected team</b></caption>
<tr class="tm-header">
<th scope="col">Team</th>
<th scope ="col">Team Members</th>
<th scope ="col">Email</th>
<th scope="col"><button class="btn btn-primary" ng-click="c.openModal()">${Add user}</button></th>
</tr>
</thead>
<tbody>
<tr style="background-color:white; color:blue;" ng-repeat="teamDetails in c.data.member">
<td>{{c.data.teamName}}</td>
<td>{{teamDetails.name}}</td>
<td>{{teamDetails.email}}</td>
<td><button id ={{r.data.teamsysID}} ng-click="confirmDelete($index)">Remove</button></td>
</tr>
</tbody>
</table>
<script>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Modal Window</h4>
</div>
<div class="panel-body wrapper-xl">
<b>Name: </b><sn-record-picker id="user" field="user" table="'sys_user'" display-field="'user'" value-field="'sys_id'" search-fields="'user_id'" page-size="100" ></sn-record-picker>
<br>
<b>Team: </b><sn-record-picker id="team" field="team" table="'x_80859_teamcool4u_team'" display-field="'team'" value-field="'sys_id'" search-fields="'name'" page-size="100" ></sn-record-picker>
</div>
<div class="panel-footer text-right">
<button type="button" ng-click="c.closeModal()">Add User</button>
</div>
</div>
</script>
Client:
function($uibModal,$scope,$rootScope,spModal,spUtil){
var c =this;
var userData = [];
var team = '';
$rootScope.$on('selectTeam', function(event,data){
c.server.get({
action:'getTeam',
teamID:$rootScope.teamID
}).then(function(r) {
c.data.member = r.data.teamMembers;
c.data.teamName = r.data.teamName;
team = r.data.teamName;
});
});
c.openModal = function(){
c.modalInstance = $uibModal.open({
templateUrl: 'modalTemplate',
scope: $scope
});
}
c.closeModal= function() {
debugger;
var user = $('#user').select2('val');
var teamName = $('#team').select2('val');
c.server.get({
action: 'createRecord',
selectTeam: teamName,
userName: user
}).then(function(r){
$rootScope.$emit('createRecord',r.data);
});
c.modalInstance.close();
}
//Delete record
c.confirmDelete = function(idx){
c.server.get({
action:'confirmDelete',
ID:idx
}).then(function(response) {
//Process your response
c.data.retrivedList = response.data.incList;
alert("Received data from server" + c.data.schedList.toString());
});
}
}
Server:
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
data.teamMembers = [];
data.teamName = '';
data.teamsysID = '';
data.UserSysID='';
if(input){
if(input && input.teamID){
if(input.action == 'getTeam'){
var teamSysID = input.teamID;
//gs.addInfoMessage('teamSysID----'+teamSysID);
data.teamsysID = teamSysID;
var grteamcool4 = new GlideRecord('x_80859_teamcool4u_team');
grteamcool4.addQuery('sys_id',teamSysID);
grteamcool4.query();
if(grteamcool4.next()){
data.teamName = grteamcool4.getValue('name');
//gs.addInfoMessage('teamName----'+grteamcool4.getValue('name'));
}
var grTeamID = new GlideRecord('x_80859_teamcool4u_m2m_users_teams');
grTeamID.addQuery('team', teamSysID);
grTeamID.query();
while(grTeamID.next()){
var userID = grTeamID.getValue('user');
var grUserDetails = new GlideRecord('sys_user');
grUserDetails.addQuery('sys_id', userID);
grUserDetails.query();
if(grUserDetails.next()){
var teamMembersObj = {};
$sp.getRecordDisplayValues(teamMembersObj, grUserDetails, 'name,email');
data.teamMembers.push(teamMembersObj);
data.UserSysID=grTeamID.getValue('user');
}
}
}
}
if(input.action=='createRecord'){
gs.info('Create Action triggered');
var m2mTableForUserCreation = new GlideRecord('x_80859_teamcool4u_m2m_users_teams');
m2mTableForUserCreation.initialize();
m2mTableForUserCreation.team = input.selectTeam;
m2mTableForUserCreation.user = input.userName;
if(m2mTableForUserCreation.insert()){
gs.addInfoMessage('User Added Successfully');
}
else{
gs.error('Insert Failed');
}
}
if (input.action == 'confirmDelete'){
var gr = new GlideRecord('x_80859_teamcool4u_m2m_users_teams');
gr.addQuery('sys_id',input.ID);
gr.query();
if(gr.next()){
gr.deleteRecord();
}
}
}
/*function validateNewUSer(teamSysId, userSysId){
return false;
if(!teamSysId || !userSysId)
return false;
return true;
}*/
})();
Hope this helps. Please mark the answer as correct/helpful based on impact.
Regards,
Shloke
Regards,
Shloke
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-19-2022 09:43 AM
Hi Shloke,
As per your suggestion, I have modified my like below. But still not working
#note: I have observed in my addInfoMessage Input.ID is not coming sys_id while querying in server side.
ANY MODIFICATIONS NEEDED?
HTML CODE
<table class='table'>
<thead class="thead-dark">
<caption style="color:Brown;"><b>Member details of the selected team</b></caption>
<tr class="tm-header">
<th scope="col">Team</th>
<th scope ="col">Team Members</th>
<th scope ="col">Email</th>
<th scope="col"><button class="btn btn-primary" ng-click="c.openModal()">${Add user}</button></th>
</tr>
</thead>
<tbody>
<tr style="background-color:white; color:blue;" ng-repeat="teamDetails in c.data.member">
<td>{{c.data.teamName}}</td>
<td>{{teamDetails.name}}</td>
<td>{{teamDetails.email}}</td>
<td><button ng-click="c.confirmDelete($index)">Remove</button></td>
</tr>
</tbody>
</table>
<script type="text/ng-template" id="modalTemplate">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Modal Window</h4>
</div>
<div class="panel-body wrapper-xl">
<b>Name: </b><sn-record-picker id="user" field="user" table="'sys_user'" display-field="'user'" value-field="'sys_id'" search-fields="'user_id'" page-size="100" ></sn-record-picker>
<br>
<b>Team: </b><sn-record-picker id="team" field="team" table="'x_80859_teamcool4u_team'" display-field="'team'" value-field="'sys_id'" search-fields="'name'" page-size="100" ></sn-record-picker>
</div>
<div class="panel-footer text-right">
<button type="button" ng-click="c.closeModal()">Add User</button>
</div>
</div>
</script>
CLient
function($uibModal,$scope,$rootScope,spModal,spUtil){
var c =this;
var userData = [];
var team = '';
$rootScope.$on('selectTeam', function(event,data){
c.server.get({
action:'getTeam',
teamID:$rootScope.teamID
}).then(function(r) {
c.data.member = r.data.teamMembers;
c.data.teamName = r.data.teamName;
team = r.data.teamName;
});
});
c.openModal = function(){
c.modalInstance = $uibModal.open({
templateUrl: 'modalTemplate',
scope: $scope
});
}
c.closeModal= function() {
debugger;
var user = $('#user').select2('val');
var teamName = $('#team').select2('val');
c.server.get({
action: 'createRecord',
selectTeam: teamName,
userName: user
}).then(function(r){
$rootScope.$emit('createRecord',r.data);
});
c.modalInstance.close();
}
//Delete record
c.confirmDelete = function(idx){
c.server.get({
action:'confirmDelete',
ID:idx
}).then(function(response) {
//Process your response
c.data.retrivedList = response.data.incList;
alert("Received data from server" + c.data.schedList.toString());
});
}
}
Server Side
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
data.teamMembers = [];
data.teamName = '';
data.teamsysID = '';
data.UserSysID='';
if(input){
if(input && input.teamID){
if(input.action == 'getTeam'){
var teamSysID = input.teamID;
//gs.addInfoMessage('teamSysID----'+teamSysID);
data.teamsysID = teamSysID;
var grteamcool4 = new GlideRecord('x_80859_teamcool4u_team');
grteamcool4.addQuery('sys_id',teamSysID);
grteamcool4.query();
if(grteamcool4.next()){
data.teamName = grteamcool4.getValue('name');
//gs.addInfoMessage('teamName----'+grteamcool4.getValue('name'));
}
var grTeamID = new GlideRecord('x_80859_teamcool4u_m2m_users_teams');
grTeamID.addQuery('team', teamSysID);
grTeamID.query();
while(grTeamID.next()){
var userID = grTeamID.getValue('user');
var grUserDetails = new GlideRecord('sys_user');
grUserDetails.addQuery('sys_id', userID);
grUserDetails.query();
if(grUserDetails.next()){
var teamMembersObj = {};
$sp.getRecordDisplayValues(teamMembersObj, grUserDetails, 'name,email');
data.teamMembers.push(teamMembersObj);
data.UserSysID=grTeamID.getValue('user');
}
}
}
}
if(input.action=='createRecord'){
gs.info('Create Action triggered');
var m2mTableForUserCreation = new GlideRecord('x_80859_teamcool4u_m2m_users_teams');
m2mTableForUserCreation.initialize();
m2mTableForUserCreation.team = input.selectTeam;
m2mTableForUserCreation.user = input.userName;
if(m2mTableForUserCreation.insert()){
gs.addInfoMessage('User Added Successfully');
}
else{
gs.error('Insert Failed');
}
}
if (input.action == 'confirmDelete'){
var gr = new GlideRecord('x_80859_teamcool4u_m2m_users_teams');
gr.addQuery('sys_id',input.ID);
gs.addInfoMessage('input id is---'+input.ID);
gr.query();
if(gr.next()){
gr.deleteRecord();
}
}
}
/*function validateNewUSer(teamSysId, userSysId){
return false;
if(!teamSysId || !userSysId)
return false;
return true;
}*/
})();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-19-2022 09:59 AM
okay not an issue. We can debug this and get you to a solution. Pleas modify your HTMl as below:
HTML:
<table class='table'>
<thead class="thead-dark">
<caption style="color:Brown;"><b>Member details of the selected team</b></caption>
<tr class="tm-header">
<th scope="col">Team</th>
<th scope ="col">Team Members</th>
<th scope ="col">Email</th>
<th scope="col"><button class="btn btn-primary" ng-click="c.openModal()">${Add user}</button></th>
</tr>
</thead>
<tbody>
<tr style="background-color:white; color:blue;" ng-repeat="teamDetails in c.data.member">
<td>{{c.data.teamName}}</td>
<td>{{teamDetails.name}}</td>
<td>{{teamDetails.email}}</td>
<td><button id ={{r.data.teamsysID}} ng-click="confirmDelete(teamDetails.sys_id)">Remove</button></td>
</tr>
</tbody>
</table>
<script>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">Modal Window</h4>
</div>
<div class="panel-body wrapper-xl">
<b>Name: </b><sn-record-picker id="user" field="user" table="'sys_user'" display-field="'user'" value-field="'sys_id'" search-fields="'user_id'" page-size="100" ></sn-record-picker>
<br>
<b>Team: </b><sn-record-picker id="team" field="team" table="'x_80859_teamcool4u_team'" display-field="'team'" value-field="'sys_id'" search-fields="'name'" page-size="100" ></sn-record-picker>
</div>
<div class="panel-footer text-right">
<button type="button" ng-click="c.closeModal()">Add User</button>
</div>
</div>
</script>
Client Controller:
function($uibModal,$scope,$rootScope,spModal,spUtil){
var c =this;
var userData = [];
var team = '';
$rootScope.$on('selectTeam', function(event,data){
c.server.get({
action:'getTeam',
teamID:$rootScope.teamID
}).then(function(r) {
c.data.member = r.data.teamMembers;
c.data.teamName = r.data.teamName;
team = r.data.teamName;
});
});
c.openModal = function(){
c.modalInstance = $uibModal.open({
templateUrl: 'modalTemplate',
scope: $scope
});
}
c.closeModal= function() {
debugger;
var user = $('#user').select2('val');
var teamName = $('#team').select2('val');
c.server.get({
action: 'createRecord',
selectTeam: teamName,
userName: user
}).then(function(r){
$rootScope.$emit('createRecord',r.data);
});
c.modalInstance.close();
}
//Delete record
c.confirmDelete = function(id){
alert('Value of ID is '+ id);
c.server.get({
action:'confirmDelete',
ID:id
}).then(function(response) {
//Process your response
c.data.retrivedList = response.data.incList;
alert("Received data from server" + c.data.schedList.toString());
});
}
}
No change in Server is needed.
Also have put an alert in Client side as below:
Value of ID is
Check what is coming in this alert and let me know.
Hope this helps. Please mark the answer as correct/helpful based on impact.
Regards,
Shloke
Regards,
Shloke
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-19-2022 10:16 AM