OUT OF SERVICE - How to use a switch in a table - UI designer

After building a table and dragging a switch field, you need TODO:

Usado em listapage, listaenv, Transaccao

1. Give a name to the table with the switch. Example "isac":

2. In JS tab add:

  • isac - nome da class da tabela

  • p_status_page - tag do checkbox/switch

  • p_id_fk - if tag hidden add _fk of each line for action purpose in the change function (3. point)

  • p_id - name of the param that will be used in method changestatus()

  • webapps?r=[app]/[page]/[actionXXX()]

$('.isac').on('change','td input[name="p_status_page"]',function(){
var isChecked = $(this).is(':checked'),
id = $(this).parents('tr').find('input[name="p_id_fk"]').val(),
val = isChecked ? 1 : 0;
$.IGRP.request('webapps?r=igrp_studio/ListaPage/changeStatus',{
params : {
p_id : id,
p_status_page : val
},
success:function(r){
var type = r.status ? 'success' : 'danger',
msg = r.status ? 'Estado alterado' : 'Estado não foi alterado';
$.IGRP.notify({
message : msg,
type : type
});
},
fail:function(){
}
});
});

OR

If the id tag is a column and not a hidden field, no need to add _fk. See name=code without _fk

$('.isac').on('change','td input[name="p_status"]',function(){
var isChecked = $(this).is(':checked'),
code = $(this).parents('tr').find("[item-name=codigo]").text(),
val = isChecked ? 1 : 0;
$.IGRP.request('webapps?r=igrp/transaccao/changeStatus',{
params : {
p_code : code,
p_status : val
},
success:function(r){
var type = r.status ? 'success' : 'danger',
msg = r.status ? 'Estado alterado!' : 'Estado não foi alterado!';
$.IGRP.notify({
message : msg,
type : type
});
},
fail:function(){
}
});
});

3. Add this lines to the controller.java

  • In the actionIndex()

actionIndex()
table1.setStatus(ac.getStatus());
table1.setStatus_check(ac.getStatus() == 1 ? ac.getStatus() : -1);
  • Import in the reserved import area:

import org.json.JSONException;
import org.json.JSONObject;
import com.google.gson.Gson;
  • In the START-PRESERVED-AREA(CUSTOM_ACTIONS)

Reading the params p_id and p_status of the javascript

public Response actionChangeStatus() throws IOException, IllegalArgumentException, IllegalAccessException, JSONException {
this.format = Response.FORMAT_JSON;
int id = Core.getParamInt("p_id");
int status = Core.getParamInt("p_status");
boolean response = false;
if (id != 0)) {
Action page = new Action().findOne(id);
if (page != null) {
page.setStatus(status);
if (page.update() != null)
response = true;
}
}
JSONObject json = new JSONObject();
json.put("status", response);
return this.renderView(json.toString());
}