Guide
  • Introduction
  • Intro
    • Introduction
  • Beginner
    • How to send a param to another page
    • How to fill a select/combobox, radiolist, checkboxlist
    • How to order a list by a columm (java)
    • How to change the first page(home) of an application
  • Intermediate
    • How to make a filter/search with QueryInterface
    • How to hide a table context button?
    • How to show a file in a table
    • How to consume a JSON... GET and POST
    • How to make a SoapRequest
    • How to fill SeparatorList or FormList
    • How to map an entity to table using hibernate??
  • Advanced
    • OUT OF SERVICE - How to use a switch in a table - UI designer
    • How to implement a process BPMN in IGRP Studio
Powered by GitBook
On this page
  • After building a table and dragging a switch field, you need TODO:
  • 1. Give a name to the table with the switch. Example "isac":
  • 2. In JS tab add:
  • OR
  • 3. Add this lines to the controller.java
  1. Advanced

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

PreviousHow to map an entity to table using hibernate??NextHow to implement a process BPMN in IGRP Studio

Last updated 6 years ago

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