<div class="box box-info" >

    <div class="box-header">

        <!--Titulo de la vista o listado -->

        <h3 class="box-title">Lista de controlador</h3>

        <!--Botones con las operaciones que se pueden realizar sobre el listado-->

        <div class="box-tools pull-right">

            {{ boton( 'nuevo', "mostrarFormularioControladoresSICAM") }}

            {{ boton( 'tabla', "mostrarTodosLosControladoresSICAM", "cargarTabladesarrollosoftwarecontroladors()") }}

            {{ boton( 'ver', "mostrarDetallesControladoresSICAM", "mostrarDetallesdesarrollosoftwarecontroladors()") }}

            {{ boton( 'editar', "mostrarFormularioEditarControladoresSICAM", "mostrarFormularioEditardesarrollosoftwarecontroladors()") }}

            {{ boton( 'desactivar', "desactivarControladoresSICAM", "desactivardesarrollosoftwarecontroladors()") }}

            {{ boton( 'reactivar', "reactivarControladoresSICAM", "reactivardesarrollosoftwarecontroladors()") }}

        </div>

    </div>

    <!--Formulario que me permite acceder a los check seleccinoados-->

    <form id="frm-desarrollosoftware-controladors">

        <div class="box-body" >

            <!--Divisón donde cargará la forma de presnetar el listado. Aqui es una tabla.-->

            <div id="div-tbl-desarrollosoftware-controladors" ></div>

        </div>

    </form>

</div>

<script type="text/javascript" >

    /**

     * Carga una vista con los detalles de controlador

     * @returns {HTML} Vista de Detalles

     */

    function mostrarDetallesdesarrollosoftwarecontroladors() {

        var seleccioncontroladors = unoSoloSeleccionadoTabla('frm-desarrollosoftware-controladors', "VER DETALLES");

        if (seleccioncontroladors.length > 0) {

            cargarVista('desarrollosoftware', 'controladores', 'verDetalles', 'controladorID=' + controladorID);

        }

    }

    /**

     * Verifica que se haya seleccionado solo un registro, y abre un vista con 

     * un formulario que permite ver y editar todos los datos de un controlador

     * @returns {HTML} Formulario de Datos para controlador

     */

    function mostrarFormularioEditardesarrollosoftwarecontroladors() {

        var seleccioncontroladors = unoSoloSeleccionadoTabla('frm-desarrollosoftware-controladors', "EDITAR");

        if (seleccioncontroladors.length > 0) {

            cargarVista(

                    'desarrollosoftware', 'controladores', 'mostrarFormularioEditar',

                    'controladorID=' + controladorID

                    );

        }

    }



    /**

     * Abre en una ventana emergente la URL del documento, archivo, link, etc...

     * @returns {URL} Dirección WEB del archivo, imagen, enlace, etc...

     */

    function mostrarArchivodesarrollosoftwarecontroladors() {

        var seleccioncontroladors = unoSoloSeleccionadoTabla('frm-desarrollosoftware-controladors', "MOSTRAR ARCHIVO");

        if (seleccioncontroladors) {

            ejecutarOperacion(

                    'desarrollosoftware', 'controladores', 'mostrarArchivo',

                    'controladorID=' + seleccioncontroladors.val(),

                    function (respuesta) {

                        popUp(respuesta.ARCHIVO.controladorURLARCHIVO, respuesta.ARCHIVO.controladorTITULO);

                    }

            );

        }

    }

    /**

     * incia la descarga de la URL del documento, archivo, link, etc...

     * @returns {Descarga} Archivo, imagen, enlace, etc...

     */

    function descargarArchivodesarrollosoftwarecontroladors() {

        var seleccioncontroladors = unoSoloSeleccionadoTabla('frm-desarrollosoftware-controladors', "DESCARGAR ARCHIVO");

        if (seleccioncontroladors) {

            ejecutarOperacion(

                    'desarrollosoftware', 'controladores', 'mostrarArchivo',

                    'controladorID=' + seleccioncontroladors.val(),

                    function (respuesta) {

                        descargarURL(respuesta.ARCHIVO.controladorURLARCHIVO, respuesta.ARCHIVO.controladorTITULO);

                    }

            );

        }

    }



    /**

     * Cambiar el estado de un registro de controlador.

     * @param {String} NUEVO_ESTADO

     * @returns {JSON} Respuesta del Sistema

     */

    function cambiarEstadodesarrollosoftwarecontroladors(NUEVO_ESTADO) {

        var seleccioncontroladors = unoSoloSeleccionadoTabla('frm-desarrollosoftware-controladors', "CAMBIAR AL ESTADO " + NUEVO_ESTADO);

        if (seleccioncontroladors) {

            confirmacionOperacion(

                    "¿Seguro que desea NUEVO ESTADO los elementos seleccionados?",

                    "Al descativar los controladors ya no se mostrarán en la App, ni en la Web.",

                    function () {

                        ejecutarOperacion(

                                "desarrollosoftware", "controladores", "cambiarEstado",

                                "nuevoEstado=" + NUEVO_ESTADO + "&" + $("#frm-desarrollosoftware-controladors").serialize(),

                                function (respuesta) {

                                    cargarTabladesarrollosoftwarecontroladors();

                                }

                        );

                    }

            );

        }

    }

    /**

     * Cambia el estado de un controlador a DESACTIVO

     * @returns {JSON} (respuesta) Respuesta del Sistema

     */

    function desactivardesarrollosoftwarecontroladors() {

        var seleccioncontroladors = unoSoloSeleccionadoTabla('frm-desarrollosoftware-controladors', "DESACTIVAR");

        if (seleccioncontroladors) {

            confirmacionOperacion(

                    "¿Seguro que desea DESACTIVAR los elementos seleccionados?",

                    "Al descativar los controladors ya no se mostrarán en la App, ni en la Web.",

                    function () {

                        ejecutarOperacion(

                                "desarrollosoftware", "controladores", "desactivar", $("#frm-desarrollosoftware-controladors").serialize(),

                                function (respuesta) {

                                    cargarTabladesarrollosoftwarecontroladors();

                                }

                        );

                    }

            );

        }

    }

    /**

     * Cambia el estado de un controlador a ACTIVO

     * @returns {JSON} (respuesta) Respuesta del Sistema

     */

    function reactivardesarrollosoftwarecontroladors() {

        var seleccioncontroladors = unoSoloSeleccionadoTabla('frm-desarrollosoftware-controladors', "RE-ACTIVAR");

        if (seleccioncontroladors) {

            confirmacionOperacion(

                    "¿Seguro que desea RE-ACTIVAR los elementos seleccionados?",

                    "Al re-activar los controladors se mostrarán en la App y en la Web, inmediatamente.",

                    function () {

                        ejecutarOperacion(

                                "desarrollosoftware", "controladores", "reactivar", $("#frm-desarrollosoftware-controladors").serialize(),

                                function (respuesta) {

                                    cargarTabladesarrollosoftwarecontroladors();

                                }

                        );

                    }

            );

        }

    }



    /**

     * Permite eliminar un registro de la base de datos, despues de confirmar la operacion con el usuario.

     * ESTA OPERACIÓN ES IRREVERSIBLE.

     * @returns {JSON} Respuesta del Sistema

     */

    function eliminardesarrollosoftwarecontroladors() {

        var seleccioncontroladors = unoSoloSeleccionadoTabla('frm-desarrollosoftware-controladors', "ELIMINAR");

        if (seleccioncontroladors) {

            confirmacionOperacion(

                    "¿Seguro que desea ELIMINAR los elementos seleccionados?",

                    "Esta acción no tiene reversa. Si existe algún otro registro en el sistema que dependa de este, el sistema no permitirá borrarlo.",

                    function () {

                        ejecutarOperacion(

                                "desarrollosoftware", "controladores", "eliminar", $("#frm-desarrollosoftware-controladors").serialize(),

                                function (respuesta) {

                                    cargarTabladesarrollosoftwarecontroladors();

                                }

                        );

                    }

            );

        }

    }



    /**

     * Solcita la vista de tabla y la carga en una division (DIV)

     * con identificador div-tbl-controladors.

     * @returns {HTML} Vista Solicitada

     */

    function cargarTabladesarrollosoftwarecontroladors() {

        cargarDivisionSicam('div-tbl-desarrollosoftware-controladors', 'desarrollosoftware', 'controladores', 'tablaListado');

    }



    /**

     * Carga inicial de plugins y funciones

     */

    $(document).ready(function () {

        cargarTabladesarrollosoftwarecontroladors();

    });

</script>


