- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-11-2024 07:17 AM
When one select box value is selected, the other select box values in the table are changed. Is there anything wrong with the code?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-11-2024 01:00 PM
I'm assuming you want to prevent submission functionality if the required fields are not filled?
You need to add a name attribute to the form
<form name="formName">
Then check if the form is valid (all required fields are met) when the submit button is clicked
<button class="test" class="btn btn-primary btn-block" ng-click="c.uiAction('remove')" ng-disabled="formName.$invalid">Keep All</button>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-14-2024 12:03 PM
Here is the data structure:
Can you please guide me in the right direction? Sorry for asking too many questions.
I am familiar with the other input options but struggled with Selectbox. I would appreciate any suggestions.
HTML
<tr ng-repeat="x in c.data.arr">
<td>{{x.employee_number}}</td>
<td>{{x.u_name}}</td>
<td>{{x.departmentname}}</td>
<td>{{x.division}}</td>
<td>{{x.enddate}}</td>
<td><select id="manager_action" ng-model="x.manager_action"
class="form-control" ng-change="c.changeAction({{x.employee_number}},x.manager_action)"
ng-options="y.name for y in c.data.actions">
</select>
</td>
</tr>
</table>
<button class="test" class="btn btn-primary btn-block" ng-click="c.selectAll()">Keep All</button>
Client script:
var c = this;
//alert(c.data.manager_action);
c.data.actions=[{
name:'Keep',
value:'1'
},
{
name:'Remove',
value:'2'
}]
c.selectAll=function(rec)
{
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-15-2024 06:08 AM
please share your server script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-15-2024 06:12 AM
Here it is.
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
//data.manager=$sp.getParameter('manager');
if(input &&input.action)
{
data.empnum=input.number;
data.act=input.action;
console.log('Employeenumber: '+data.empnum+' '+'Action:'+data.act);
if(data.act=='1')
{
var cw=new GlideRecord('u_non_employee');
cw.addQuery('u_number',data.empnum);
cw.query();
if(cw.next())
{
cw.u_cw_audit_action='Keep';
cw.u_cw_audit=cw.u_cw_audit+'\n'+'Reason: Keep'+' Audit Date: '+gs.nowDateTime();
cw.update();
}
}
}
else
{
data.manager='5a1d6d069750f950d8adb9e3a253af34';
var arr=[];
var gr=new GlideRecord('u_non_employee');
gr.addEncodedQuery('u_manager='+data.manager+'^u_in_active=N');
gr.query();
while(gr.next())
{
var obj={};
obj.manager=gr.u_manager.toString();
obj.managername=gr.u_manager.getDisplayValue();
obj.employee_number=gr.u_number.toString();
obj.u_requestor=gr.u_requestor.toString();
obj.requestorname=gr.u_requestor.getDisplayValue();
obj.department=gr.u_department.toString();
obj.departmentname=gr.u_department.getDisplayValue();
obj.division=gr.u_division.toString();
obj.u_name=gr.u_name.toString();
obj.enddate=gr.u_enddate_system_format.toString();
arr.push(obj);
}
data.arr=arr;
}
})();
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-15-2024 06:46 AM
currently your click event on the button is calling this controller function, which I didn't see listed in your client script.
ng-click="c.uiAction('remove')"
you need to add a function that is called, similar to c.changeAction. It looks like your removal is being handled through a removal with an embedded modal. I'm not sure what that embedded widget does. I would assume that logic takes a single employee number as a parameter. You'd just want to use that same logic in a loop or query containing all the ids.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-15-2024 07:08 AM
I updated the script. I have created a script called selectAll() in the client script and am trying to update each select box value to the 'Keep' option. Here, I need help to get the select box value.
HTML:
<form name="formName">
<div>
<br/>
<table border="1px solid black">
<tr>
<th>Employee Number</th>
<th>Employee Name</th>
<th>Department</th>
<th>Division</th>
<th>End Date</th>
<th>Action</th>
</tr>
<tr ng-repeat="x in c.data.arr">
<td>{{x.employee_number}}</td>
<td>{{x.u_name}}</td>
<td>{{x.departmentname}}</td>
<td>{{x.division}}</td>
<td>{{x.enddate}}</td>
<td><select id="manager_action" ng-model="x.manager_action"
class="form-control" ng-change="c.changeAction({{x.employee_number}},x.manager_action)"
ng-options="y.name for y in c.data.actions">
</select>
</td>
</tr>
</table>
<button class="test" class="btn btn-primary btn-block" ng-click="c.selectAll('Keep')">Keep All</button>
<br/>
<br/>
Client script :
api.controller=function($scope,spModal) {
/* widget controller */
var c = this;
//alert(c.data.manager_action);
c.data.actions=[{
name:'Keep',
value:'1'
},
{
name:'Remove',
value:'2'
}]
var selectedrecords=[];
selectedrecords=c.data.arr;
var employeenumbers=[];
for(var j=0;j<selectedrecords.length;j++)
{
employeenumbers.push((selectedrecords[j].employee_number));
}
c.selectAll=function(action_keep)
{
alert()
c.data.manager_action='keep';
}
c.changeAction=function(number,actiontaken)
{
// alert(actiontaken);
c.data.number=number;
c.data.action=actiontaken.value;
$scope.page.g_form.setValue('audited_records',employeenumbers);
if(number!='')
{
if(actiontaken.value=='2')
{
spModal.open({
title: 'Reason for deactivating CW',
buttons:[],
widget: 'cwdeactivation',
widgetInput: {sys_id:number,action:'Remove'}
}).then(function(response) {
});
}
else if(actiontaken.value=='1')
{
c.server.update();
}
}
}
};
Server script:
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
//data.manager=$sp.getParameter('manager');
if(input &&input.action)
{
//data.manageraction=input.manager_action
data.empnum=input.number;
data.act=input.action;
console.log('Employeenumber: '+data.empnum+' '+'Action:'+data.act);
if(data.act=='1')
{
var cw=new GlideRecord('u_non_employee');
cw.addQuery('u_number',data.empnum);
cw.query();
if(cw.next())
{
cw.u_cw_audit_action='Keep';
cw.u_cw_audit=cw.u_cw_audit+'\n'+'Reason: Keep'+' Audit Date: '+gs.nowDateTime();
cw.update();
}
}
}
else
{
data.manager='5a1d6d069750f950d8adb9e3a253af34';
var arr=[];
var gr=new GlideRecord('u_non_employee');
gr.addEncodedQuery('u_manager='+data.manager+'^u_in_active=N');
gr.query();
while(gr.next())
{
var obj={};
obj.manager=gr.u_manager.toString();
obj.managername=gr.u_manager.getDisplayValue();
obj.employee_number=gr.u_number.toString();
obj.u_requestor=gr.u_requestor.toString();
obj.requestorname=gr.u_requestor.getDisplayValue();
obj.department=gr.u_department.toString();
obj.departmentname=gr.u_department.getDisplayValue();
obj.division=gr.u_division.toString();
obj.u_name=gr.u_name.toString();
obj.enddate=gr.u_enddate_system_format.toString();
obj.manager_action = "";
arr.push(obj);
}
data.arr=arr;
}
})();