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();

}
	 
 }

 

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

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

View solution in original post

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;
		}*/
	
	})();

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

Hope this helps. Please mark the answer as correct/helpful based on impact.

Regards,
Shloke

HI,

Kindly please find the below alert answer

find_real_file.png