Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17142 | Rev 17144 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php 
$acl            = $this->viewModel()->getRoot()->getVariable('acl');
$currentUser    = $this->currentUserHelper();
$roleName       = $currentUser->getUserTypeId();

$routeDatatable = $this->url('microlearning/content/slides');

$allowAdd = $acl->isAllowed($roleName, 'microlearning/content/slides/add') ? 1 : 0;
$allowEdit = $acl->isAllowed($roleName, 'microlearning/content/slides/edit') ? 1 : 0;
$allowDelete = $acl->isAllowed($roleName, 'microlearning/content/slides/delete') ? 1 : 0;

$this->headLink()->appendStylesheet($this->basePath('assets/vendors/nprogress/nprogress.css'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/nprogress/nprogress.js'));

$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-fileinput/css/fileinput.min.css'));
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap-fileinput/themes/explorer-fa/theme.css'));

$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/plugins/piexif.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/plugins/sortable.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/fileinput.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/js/locales/es.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/themes/fa/theme.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap-fileinput/themes/explorer-fa/theme.js'));

$this->inlineScript()->appendFile($this->basePath('assets/vendors/ckeditor/ckeditor.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/jquery-input-number/input-number-format.jquery.js'));

$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.css'));
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.css'));

$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net/jquery.dataTables.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5/dataTables.bootstrap5.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/dataTables.responsive.min.js'));
$this->inlineScript()->appendFile($this->basePath('assets/vendors/datatables.net-bs5-responsive/responsive.bootstrap5.min.js'));

$this->inlineScript()->appendFile($this->basePath('assets/vendors/bootstrap4-toggle/js/bootstrap4-toggle.min.js'));
$this->headLink()->appendStylesheet($this->basePath('assets/vendors/bootstrap4-toggle/css/bootstrap4-toggle.min.css'));

$this->inlineScript()->captureStart();
echo <<<JS
    console.log('Hola');
    jQuery(document).ready(function ($) {
        var routeAdd = ''
        
        $.validator.setDefaults({
            debug: true,
            highlight: function (element) {
            $(element).addClass('is-invalid')
            },
            unhighlight: function (element) {
            $(element).removeClass('is-invalid')
            },
            errorElement: 'span',
            errorClass: 'error invalid-feedback',
            errorPlacement: function (error, element) {}
        })

        var allowEdit = $allowEdit
        var allowDelete = $allowDelete

        var gridTable = $('#gridTable').dataTable({
            processing: true,
            serverSide: true,
            searching: true,
            order: [[0, 'asc']],
            ordering: true,
            ordenable: true,
            responsive: true,
            select: false,
            paging: true,
            pagingType: 'simple_numbers',
            ajax: {
            url: '$routeDatatable',
            type: 'get',
            data: function (d) {
                d.capsule_uuid = $('#form-filter #capsule_uuid').val()
            },
            beforeSend: function (request) {
                NProgress.start()
            },
            dataFilter: function (response) {
                var response = jQuery.parseJSON(response)

                console.log(response)

                var json = {}
                json.recordsTotal = 0
                json.recordsFiltered = 0
                json.data = []

                if (!response.success) {
                $.fn.showError(response.data || 'ERROR_UNKNOWN')
                json.recordsTotal = 0
                json.recordsFiltered = 0
                json.data = []
                return JSON.stringify(json)
                }

                $('#form-capsule-add').attr('action', response.data.link_add)
                routeAdd = response.data.link_add
                if (response.data.link_add) {
                $('button.btn-add').removeAttr('disabled')
                } else {
                $('button.btn-add').attr('disabled', 'disabled')
                }

                if (response.data.capsules) {
                var $select = $('#form-filter #capsule_uuid')
                $select.empty()
                $select.append('<option value="">LABEL_SELECT_CAPSULE</option>')
                $.each(response.data.capsules, function (index, value) {
                    $select.append(
                    '<option value="' + index + '">' + value + '</option>'
                    )
                })

                // Si hay una cápsula seleccionada en la URL, seleccionarla
                var urlParams = new URLSearchParams(window.location.search)
                var selectedCapsule = urlParams.get('capsule_uuid')
                if (selectedCapsule) {
                    $select.val(selectedCapsule)
                }
                }

                json.recordsTotal = response.data.total
                json.recordsFiltered = response.data.total
                json.data = response.data.items

                return JSON.stringify(json)
            }
            },
            language: {
            sProcessing: 'LABEL_DATATABLE_SPROCESSING',
            sLengthMenu: 'LABEL_DATATABLE_SLENGTHMENU',
            sZeroRecords: 'LABEL_DATATABLE_SZERORECORDS',
            sEmptyTable: 'LABEL_DATATABLE_SEMPTYTABLE',
            sInfo: 'LABEL_DATATABLE_SINFO',
            sInfoEmpty: 'LABEL_DATATABLE_SINFOEMPTY',
            sInfoFiltered: 'LABEL_DATATABLE_SINFOFILTERED',
            sInfoPostFix: '',
            sSearch: 'LABEL_DATATABLE_SSEARCH',
            sUrl: '',
            sInfoThousands: ',',
            sLoadingRecords: 'LABEL_DATATABLE_SLOADINGRECORDS',
            oPaginate: {
                sFirst: 'LABEL_DATATABLE_SFIRST',
                sLast: 'LABEL_DATATABLE_SLAST',
                sNext: 'LABEL_DATATABLE_SNEXT',
                sPrevious: 'LABEL_DATATABLE_SPREVIOUS'
            },
            oAria: {
                sSortAscending: ': LABEL_DATATABLE_SSORTASCENDING',
                sSortDescending: ':LABEL_DATATABLE_SSORTDESCENDING'
            }
            },
            drawCallback: function (settings) {
            NProgress.done()
            },
            aoColumns: [
            { mDataProp: 'name' },
            { mDataProp: 'details' },
            { mDataProp: 'media' },
            { mDataProp: 'actions' }
            ],
            columnDefs: [
            {
                targets: 0,
                className: 'text-vertical-middle'
            },
            {
                targets: -3,
                orderable: false,
                render: function (data, type, row) {
                var s = ''
                s += 'LABEL_TYPE: ' + data['type'] + '<br></br>'
                return s
                }
            },
            {
                targets: -2,
                orderable: false,
                render: function (data, type, row) {
                s = ''
                if (data['image']) {
                    s =
                    s +
                    '&nbsp; <img class="btn-view-image"" data-href="' +
                    data['image'] +
                    '" data-toggle="tooltip" src="' +
                    data['image'] +
                    '" title="LABEL_VIEW" style="width: 40px; object-fit: cover; height: 40px;" /> '
                }

                if (data['audio']) {
                    s =
                    s +
                    '&nbsp' +
                    '<button class="btn btn-play-audio" data-href="' + data['audio'] +'" data-toggle="tooltip" title="LABEL_PLAY_AUDIO">' +
                    '<i class="fa fa-play"></i>' +
                    '</button>'
                }

                if (data['video']) {
                    s =
                    s +
                    '&nbsp;' +
                    '<button class="btn btn-play-video" data-href="' +
                    data['video'] +
                    '" data-toggle="tooltip" title="LABEL_PLAY_VIDEO">' +
                    '<i class="fa fa-video"></i>' +
                    '</button>'
                }

                if (data['document']) {
                    s =
                    s +
                    '&nbsp;' +
                    '<button class="btn btn-view-document" data-href="' +
                    data['document'] +
                    '" data-toggle="tooltip" title="LABEL_VIEW_DOCUMENT">' +
                    '<i class="fa fa-file"></i>' +
                    '</button>'
                }

                if (data['text']) {
                    s =
                    s +
                    '&nbsp;' +
                    '<button class="btn btn-view-text" data-href="' +
                    data['text'] +
                    '" data-toggle="tooltip" title="LABEL_VIEW_TEXT">' +
                    '<i class="fa fa-text-width"></i>' +
                    '</button>'
                }

                return s
                }
            },
            {
                targets: -1,
                orderable: false,
                render: function (data, type, row) {
                s = ''

                if (allowEdit && data['link_edit']) {
                    s =
                    s +
                    '<button class="btn btn-info btn-sm btn-edit" data-href="' +
                    data['link_edit'] +
                    '" data-toggle="tooltip" title="LABEL_EDIT"><i class="fa fa-pen"></i> Editar </button>&nbsp;'
                }
                if (allowDelete && data['link_delete']) {
                    s =
                    s +
                    '<button class="btn btn-danger btn-sm btn-delete" data-href="' +
                    data['link_delete'] +
                    '" data-toggle="tooltip" title="LABEL_DELETE"><i class="fa fa-trash"></i> Eliminar</button>&nbsp;'
                }
                return s
                }
            }
            ]
        })

        var validatorTextAdd = $('#form-slide-text-add').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            description: {
                updateCkeditor: function () {
                CKEDITOR.instances.description_add.updateElement()
                },
                required: true
            },
            background: {
                required: true,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: routeAdd,
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorTextAdd.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-text-add #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorTextEdit = $('#form-slide-text-edit').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            description: {
                updateCkeditor: function () {
                CKEDITOR.instances.description_edit.updateElement()
                },
                required: true
            },
            background: {
                required: false,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: $('#form-slide-text-edit').attr('action'),
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorTextEdit.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-text-edit #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorImageAdd = $('#form-slide-image-add').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: true,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: routeAdd,
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                console.log(response)
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorImageAdd.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-image-add #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorImageEdit = $('#form-slide-image-edit').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: false,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: $('#form-slide-image-edit').attr('action'),
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorImageEdit.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-image-edit #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorVideoAdd = $('#form-slide-video-add').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: true,
                extension: 'webm,mp4,webm',
                accept: 'video/webm,video/mpeg,video/mp4'
            },
            background: {
                required: true,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: routeAdd,
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorVideoAdd.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-video-add #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorVideoEdit = $('#form-slide-video-edit').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: false,
                extension: 'webm,mp4,webm',
                accept: 'video/webm,video/mpeg,video/mp4'
            },
            background: {
                required: false,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: $('#form-slide-video-edit').attr('action'),
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorVideoEdit.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-video-edit #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorDocumentAdd = $('#form-slide-document-add').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: true,
                extension: 'pdf',
                accept: 'application/pdf'
            },
            background: {
                required: true,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: routeAdd,
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorDocumentAdd.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-document-add #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorDocumentEdit = $('#form-slide-document-edit').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: false,
                extension: 'pdf',
                accept: 'application/pdf'
            },
            background: {
                required: false,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: $('#form-slide-document-edit').attr('action'),
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorDocumentEdit.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-document-edit #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorAudioAdd = $('#form-slide-audio-add').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: true,
                extension: 'wav|mp3',
                accept: 'audio/wav, audio/mpeg'
            },

            background: {
                required: true,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: routeAdd,
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorAudioAdd.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-audio-add #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorAudioEdit = $('#form-slide-audio-edit').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: false,
                extension: 'wav|mp3',
                accept: 'audio/wav, audio/mpeg'
            },

            background: {
                required: false,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            NProgress.start()
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: $('#form-slide-audio-edit').attr('action'),
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorAudioEdit.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-audio-edit #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorQuizzAdd = $('#form-slide-quizz-add').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            file: {
                required: true,
                extension: 'wav|mp3',
                accept: 'quizz/wav, quizz/mpeg'
            },
            background: {
                required: true,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            quiz_id: {
                required: true
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            NProgress.start()
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }

            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: routeAdd,
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorQuizzAdd.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-quizz-add #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        var validatorQuizzEdit = $('#form-slide-quizz-edit').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            name: {
                required: true,
                maxlength: 128
            },
            background: {
                required: false,
                extension: 'jpg|jpeg|png',
                accept: 'image/jpg,image/jpeg,image/png'
            },
            quiz_id: {
                required: true
            },
            order: {
                required: true,
                digits: true,
                min: 1,
                max: 250
            }
            },
            submitHandler: function (form) {
            NProgress.start()
            var formdata = false
            if (window.FormData) {
                formdata = new FormData(form) //form[0]);
            }
            $.ajax({
                dataType: 'json',
                accept: 'application/json',
                method: 'post',
                url: $('#form-slide-quizz-edit').attr('action'),
                data: formdata,
                processData: false,
                contentType: false
            })
                .done(function (response) {
                if (response['success']) {
                    $.fn.showSuccess(response['data'])

                    gridTable.api().ajax.reload(null, false)

                    $('#row-text-add-box').hide()
                    $('#row-text-edit-box').hide()
                    $('#row-image-add-box').hide()
                    $('#row-image-edit-box').hide()
                    $('#row-video-add-box').hide()
                    $('#row-video-edit-box').hide()
                    $('#row-document-add-box').hide()
                    $('#row-document-edit-box').hide()
                    $('#row-audio-add-box').hide()
                    $('#row-audio-edit-box').hide()
                    $('#row-quizz-add-box').hide()
                    $('#row-quizz-edit-box').hide()
                    $('#row-listing').show()
                } else {
                    validatorQuizzEdit.resetForm()
                    if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                    } else {
                    $.each(response['data'], function (fieldname, errors) {
                        $.fn.showFormErrorValidator(
                        '#form-slide-quizz-edit #' + fieldname,
                        errors
                        )
                    })
                    }
                }
                })
                .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
                })
                .always(function () {
                NProgress.done()
                })
            return false
            },
            invalidHandler: function (form, validator) {}
        })

        $('body').on('click', 'button.btn-edit', function (e) {
            e.preventDefault()
            NProgress.start()
            var url = $(this).data('href')
            $.ajax({
            dataType: 'json',
            accept: 'application/json',
            method: 'get',
            url: url
            })
            .done(function (response) {
                if (response['success']) {
                $('#row-listing').hide()

                $('#row-text-add-box').hide()
                $('#row-text-edit-box').hide()
                $('#row-image-add-box').hide()
                $('#row-image-edit-box').hide()
                $('#row-video-add-box').hide()
                $('#row-video-edit-box').hide()
                $('#row-document-add-box').hide()
                $('#row-document-edit-box').hide()
                $('#row-audio-add-box').hide()
                $('#row-audio-edit-box').hide()
                $('#row-quizz-add-box').hide()
                $('#row-quizz-edit-box').hide()

                if (response['data']['type'] == 'text') {
                    $('#form-slide-text-edit').attr('action', url)
                    $('#form-slide-text-edit #name').val(response['data']['name'])
                    $('#form-slide-text-edit #order').val(response['data']['order'])
                    $('#form-slide-text-edit #file').fileinput('reset')
                    $('#form-slide-text-edit #file').val('')

                    CKEDITOR.instances.description_edit.setData(
                    response['data']['description']
                    )
                    validatorTextEdit.resetForm()

                    $('#row-text-edit-box').show()
                }
                if (response['data']['type'] == 'image') {
                    console.log(response['data']['file'])
                    $('#form-slide-image-edit').attr('action', url)
                    $('#form-slide-image-edit #name').val(response['data']['name'])
                    $('#form-slide-image-edit #order').val(response['data']['order'])
                    $('#form-slide-image-edit #background').fileinput('reset')
                    $('#form-slide-image-edit #background').val('')
                    validatorImageEdit.resetForm()

                    $('#row-image-edit-box').show()
                }
                if (response['data']['type'] == 'video') {
                    $('#form-slide-video-edit').attr('action', url)
                    $('#form-slide-video-edit #name').val(response['data']['name'])
                    $('#form-slide-video-edit #order').val(response['data']['order'])
                    $('#form-slide-video-edit #file').fileinput('reset')
                    $('#form-slide-video-edit #file').val('')
                    $('#form-slide-video-edit #background').fileinput('reset')
                    $('#form-slide-video-edit #background').val('')

                    $('#row-video-edit-box').show()
                }
                if (response['data']['type'] == 'document') {
                    $('#form-slide-document-edit').attr('action', url)
                    $('#form-slide-document-edit #name').val(response['data']['name'])
                    $('#form-slide-document-edit #order').val(response['data']['order'])
                    $('#form-slide-document-edit #file').fileinput('reset')
                    $('#form-slide-document-edit #file').val('')
                    $('#form-slide-document-edit #background').fileinput('reset')
                    $('#form-slide-document-edit #background').val('')
                    validatorDocumentEdit.resetForm()

                    $('#row-document-edit-box').show()
                }
                if (response['data']['type'] == 'audio') {
                    $('#form-slide-audio-edit').attr('action', url)
                    $('#form-slide-audio-edit #name').val(response['data']['name'])
                    $('#form-slide-audio-edit #order').val(response['data']['order'])
                    $('#form-slide-audio-edit #file').fileinput('reset')
                    $('#form-slide-audio-edit #file').val('')
                    $('#form-slide-audio-edit #background').fileinput('reset')
                    $('#form-slide-audio-edit #background').val('')
                    validatorAudioEdit.resetForm()

                    $('#row-audio-edit-box').show()
                }
                if (response['data']['type'] == 'quiz') {
                    $('#form-slide-quizz-edit').attr('action', url)
                    $('#form-slide-quizz-edit #name').val(response['data']['name'])
                    $('#form-slide-quizz-edit #order').val(response['data']['order'])
                    $('#form-slide-quizz-edit #quiz_id').val(
                    response['data']['quiz_id']
                    )
                    $('#form-slide-quizz-edit #background').fileinput('reset')
                    $('#form-slide-quizz-edit #background').val('')
                    validatorQuizzEdit.resetForm()

                    $('#row-quizz-add-box').show()
                }
                } else {
                validatorTextEdit.resetForm()
                if (jQuery.type(response['data']) == 'string') {
                    $.fn.showError(response['data'])
                } else {
                    $.each(response['data'], function (fieldname, errors) {
                    $.fn.showFormErrorValidator(
                        '#form-slide-image-edit #' + fieldname,
                        errors
                    )
                    })
                }
                }
            })
            .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
            })
            .always(function () {
                NProgress.done()
            })
        })

        $('.btn-cancel').on('click', function (e) {
            e.preventDefault()

            $('#row-text-add-box').hide()
            $('#row-text-edit-box').hide()
            $('#row-image-add-box').hide()
            $('#row-image-edit-box').hide()
            $('#row-video-add-box').hide()
            $('#row-video-edit-box').hide()
            $('#row-document-add-box').hide()
            $('#row-document-edit-box').hide()
            $('#row-audio-add-box').hide()
            $('#row-audio-edit-box').hide()
            $('#row-quizz-add-box').hide()
            $('#row-quizz-edit-box').hide()

            $('#modal-play-video-box').modal('hide')
            $('#modal-play-audio-box').modal('hide')

            document.getElementById('microlearning-play-video').pause()
            document.getElementById('microlearning-play-audio').pause()

            $('#row-listing').show()

            return false
        })

        $('#btn-add-quizz').click(function (e) {
            e.preventDefault()
            $('#modal-add-capsule-type-box').modal('hide')

            $('#form-slide-quizz-add #name').val('')
            $('#form-slide-quizz-add #order').val('1')
            $('#form-slide-quizz-add #quiz_id').val('')
            $('#form-slide-quizz-add #file').fileinput('reset')
            $('#form-slide-quizz-add #file').val('')
            CKEDITOR.instances.description_add.setData('')
            validatorQuizzAdd.resetForm()

            $('#row-listing').hide()
            $('#row-quizz-add-box').show()

            return false
        })

        $('#btn-add-text').click(function (e) {
            e.preventDefault()

            $('#modal-add-capsule-type-box').modal('hide')

            $('#form-slide-text-add #name').val('')
            $('#form-slide-text-add #order').val('1')
            $('#form-slide-text-add #file').fileinput('reset')
            $('#form-slide-text-add #file').val('')

            CKEDITOR.instances.description_add.setData('')
            validatorTextAdd.resetForm()

            $('#row-listing').hide()
            $('#row-text-add-box').show()
        })

        $('#btn-add-image').click(function (e) {
            e.preventDefault()

            $('#modal-add-capsule-type-box').modal('hide')
            $('#form-slide-image-add #name').val('')
            $('#form-slide-image-add #order').val('1')
            $('#form-slide-image-add #file').fileinput('reset')
            $('#form-slide-image-add #file').val('')

            validatorImageAdd.resetForm()

            $('#row-listing').hide()
            $('#row-image-add-box').show()

            return false
        })

        $('#btn-add-video').click(function (e) {
            e.preventDefault()

            $('#modal-add-capsule-type-box').modal('hide')
            $('#form-slide-video-add #name').val('')
            $('#form-slide-video-add #order').val('1')
            $('#form-slide-video-add #file').fileinput('reset')
            $('#form-slide-video-add #file').val('')
            $('#form-slide-video-add #background').fileinput('reset')
            $('#form-slide-video-add #backgroud').val('')
            validatorVideoAdd.resetForm()

            $('#row-listing').hide()
            $('#row-video-add-box').show()

            return false
        })

        $('#btn-add-document').click(function (e) {
            e.preventDefault()

            $('#modal-add-capsule-type-box').modal('hide')
            $('#form-slide-document-add #name').val('')
            $('#form-slide-document-add #order').val('1')
            $('#form-slide-document-add #file').fileinput('reset')
            $('#form-slide-document-add #file').val('')
            $('#form-slide-document-add #background').fileinput('reset')
            $('#form-slide-document-add #background').val('')
            validatorDocumentAdd.resetForm()

            $('#row-listing').hide()
            $('#row-document-add-box').show()

            return false
        })

        $('#btn-add-audio').click(function (e) {
            e.preventDefault()

            $('#modal-add-capsule-type-box').modal('hide')
            $('#form-slide-audio-add #name').val('')
            $('#form-slide-audio-add #order').val('1')
            $('#form-slide-audio-add #file').fileinput('reset')
            $('#form-slide-audio-add #file').val('')
            $('#form-slide-audio-add #background').fileinput('reset')
            $('#form-slide-audio-add #background').val('')
            validatorAudioAdd.resetForm()

            $('#row-listing').hide()
            $('#row-audio-add-box').show()

            return false
        })

        $('#modal-play-video-box, #modal-play-audio-box').on(
            'hide.bs.modal',
            function () {
            document.getElementById('microlearning-play-video').pause()
            document.getElementById('microlearning-play-audio').pause()
            }
        )

        $('#form-slide-text-add #order').inputNumberFormat({ decimal: 0 })
        $('#form-slide-text-edit #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-text-add #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-text-edit #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-image-add #order').inputNumberFormat({ decimal: 0 })
        $('#form-slide-image-edit #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-image-add #file').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-image-edit #file').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-video-add #order').inputNumberFormat({ decimal: 0 })
        $('#form-slide-video-edit #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-video-add #file').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            allowedFileExtensions: ['mp4', 'mpeg', 'webm'],
            msgPlaceholder: 'Video de extensión mp4, mpeg, webm'
        })

        $('#form-slide-video-edit #file').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            allowedFileExtensions: ['mp4', 'mpeg', 'webm'],
            msgPlaceholder: 'Video de extensión mp4, mpeg, webm'
        })

        $('#form-slide-video-add #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-video-edit #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-document-add #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-document-add #file').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            allowedFileExtensions: ['pdf'],
            msgPlaceholder: 'Documentos de extensión pdf'
        })

        $('#form-slide-document-edit #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-document-edit #file').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            allowedFileExtensions: ['pdf'],
            msgPlaceholder: 'Documentos de extensión pdf'
        })

        $('#form-slide-document-add #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-document-edit #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-audio-add #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-audio-add #file').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            allowedFileExtensions: ['wav', 'mp3'],
            msgPlaceholder: 'Audios de extensión wav y mp3'
        })

        $('#form-slide-audio-edit #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-audio-edit #file').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            allowedFileExtensions: ['wav', 'mp3'],
            msgPlaceholder: 'Audios de extensión wav y mp3'
        })

        $('#form-slide-audio-add #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-audio-edit #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-quizz-add #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-quizz-edit #order').inputNumberFormat({ decimal: 0 })

        $('#form-slide-quizz-add #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        $('#form-slide-quizz-edit #background').fileinput({
            theme: 'fa',
            language: 'es',
            showUpload: false,
            dropZoneEnabled: false,
            maxFileCount: 1,
            msgPlaceholder: 'LABEL_RECOMMENDED_SIZE $image_size',
            allowedFileExtensions: ['jpeg', 'jpg', 'png']
        })

        CKEDITOR.replace('description_add', {
            toolbar: [
            { name: 'editing', items: ['Scayt'] },
            { name: 'links', items: ['Link', 'Unlink'] },
            {
                name: 'paragraph',
                items: [
                'NumberedList',
                'BulletedList',
                '-',
                'Outdent',
                'Indent',
                'Blockquote'
                ]
            },
            {
                name: 'basicstyles',
                items: ['Bold', 'Italic', 'Strike', 'RemoveFormat']
            },
            '/',
            {
                name: 'insert',
                items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar']
            },
            { name: 'styles', items: ['Styles', 'Format'] },
            { name: 'tools', items: ['Maximize'] }
            ],
            removePlugins: 'elementspath,Anchor',
            heigth: 100
        })
        CKEDITOR.replace('description_edit', {
            toolbar: [
            { name: 'editing', items: ['Scayt'] },
            { name: 'links', items: ['Link', 'Unlink'] },
            {
                name: 'paragraph',
                items: [
                'NumberedList',
                'BulletedList',
                '-',
                'Outdent',
                'Indent',
                'Blockquote'
                ]
            },
            {
                name: 'basicstyles',
                items: ['Bold', 'Italic', 'Strike', 'RemoveFormat']
            },
            '/',
            {
                name: 'insert',
                items: ['Image', 'Table', 'HorizontalRule', 'SpecialChar']
            },
            { name: 'styles', items: ['Styles', 'Format'] },
            { name: 'tools', items: ['Maximize'] }
            ],
            removePlugins: 'elementspath,Anchor',
            heigth: 100
        })

        $('body').on('click', '.btn-view-image', function (e) {
            e.preventDefault()

            $('#modal-view-image-box').modal('show')

            $('#image-view').attr('src', $(this).data('href'))

            return false
        })

        $('body').on('click', '.btn-play-video', function (e) {
            e.preventDefault()

            $('#microlearning-play-video').attr('src', $(this).data('href'))
            $('#modal-play-video-box').modal('show')

            return false
        })

        $('body').on('click', '.btn-play-audio', function (e) {
            e.preventDefault()

            $('#microlearning-play-audio').attr('src', $(this).data('href'))
            $('#modal-play-audio-box').modal('show')

            return false
        })

        $('body').on('click', '.btn-view-document', function (e) {
            e.preventDefault()

            $('#document-view').attr('src', $(this).data('href'))
            $('#modal-view-document-box').modal('show')

            return false
        })

        $('body').on('click', '.btn-view-text', function (e) {
            e.preventDefault()

            var url = $(this).data('href')
            $.ajax({
            dataType: 'json',
            accept: 'application/json',
            method: 'get',
            url: url
            })
            .done(function (response) {
                if (response['success']) {
                $('#document-text').html(response['data'])
                }
            })
            .fail(function (jqXHR, textStatus, errorThrown) {
                $.fn.showError(textStatus)
            })
            .always(function () {
                NProgress.done()
            })

            $('#modal-view-text-box').modal('show')

            return false
        })

        $('#form-filter #capsule_uuid').change(function (e) {
            e.preventDefault()
            if ($(this).val()) {
            gridTable.api().ajax.reload(null, false)
            } else {
            // Si no hay cápsula seleccionada, limpiar la tabla
            gridTable.api().clear().draw()
            }
        })

        $('button.btn-add').click(function (e) {
            e.preventDefault()

            $('#modal-add-capsule-type-box').modal('show')
        })

        $('body').on('click', 'button.btn-delete', function (e) {
            e.preventDefault()
            var action = $(this).data('href')

            swal
            .fire({
                title: 'LABEL_ARE_YOU_SURE',
                icon: 'question',
                cancelButtonText: 'LABEL_NO',
                showCancelButton: true,
                confirmButtonText: 'LABEL_YES'
            })
            .then((result) => {
                if (result.isConfirmed) {
                NProgress.start()
                $.ajax({
                    dataType: 'json',
                    accept: 'application/json',
                    method: 'post',
                    url: action
                })
                    .done(function (response) {
                    if (response['success']) {
                        $.fn.showSuccess(response['data'])
                        gridTable.api().ajax.reload(null, false)
                    } else {
                        $.fn.showError(response['data'])
                    }
                    })
                    .fail(function (jqXHR, textStatus, errorThrown) {
                    $.fn.showError(textStatus)
                    })
                    .always(function () {
                    NProgress.done()
                    })
                }
            })
        })

        $('body').on('click', 'button.btn-refresh', function (e) {
            e.preventDefault()
            gridTable.api().ajax.reload(null, false)
        })

        var validatorFilter = $('#form-filter').validate({
            debug: true,
            onclick: false,
            onkeyup: false,
            ignore: [],
            rules: {
            capsule_uuid: {
                required: true
            }
            },
            submitHandler: function (form) {
            return false
            }
        })

        $('#form-filter').on('submit', function (e) {
            e.preventDefault()
            if (validatorFilter.valid()) {
            gridTable.api().ajax.reload(null, false)
            }
            return false
        })
    })
JS;
$this->inlineScript()->captureEnd();
?>

<div class="container">
        <div class="card" id="row-listing">
                <div class="card-header">
                        <h6 class="card-title">LABEL_SLIDES</h6>
                </div>

                <div class="card-body">
            <?php 
            $form = $this->form;
            $form->setAttributes([
                'name'    => 'form-filter',
                'id'      => 'form-filter',
            ]);
            $form->prepare();
            echo $this->form()->openTag($form);
            ?>
                <div class="row">
                        <div class="col-md-12 mt-3">
                                        <?php
                        $element = $form->get('capsule_uuid');
                        $element->setOptions(['label' => 'LABEL_CAPSULE']);
                        $element->setAttributes(['class' => 'form-control']);
                        echo $this->formLabel($element);
                        echo $this->formSelect($element);
                        ?>
                        </div>                          
                </div>
                        <?php echo $this->form()->closeTag($form); ?>

            <div class="row">
                <div class="col-12 mt-3">
                    <table id="gridTable" class="table   table-bordered">
                        <thead>
                            <tr>
                                <th>LABEL_NAME</th>
                                <th>LABEL_DETAILS</th>
                                <th>LABEL_MEDIA</th>    
                                <th>LABEL_ACTIONS</th>
                            </tr>
                        </thead>
                        <tbody>
                        </tbody>
                    </table>
                </div>
            </div>
                </div>

                <div class="card-footer text-right">
                    <button type="button" class="btn btn-info btn-refresh">
                <i class="fa fa-sync"></i> 
                LABEL_REFRESH
            </button>
                        <?php if($allowAdd) : ?>
                        <div class="btn-group dropup">
                <button type="button" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                        <i class="fa fa-plus"></i> LABEL_ADD
                </button>

                <div class="dropdown-menu">
                        <a class="dropdown-item" href="#" id="btn-add-image"><i class="fa fa-image mr-2" aria-hidden="true"></i> LABEL_IMAGE </a>
                        <a class="dropdown-item" href="#" id="btn-add-text"><i class="fa fa-file mr-2" aria-hidden="true"></i> LABEL_TEXT </a>
                    <a class="dropdown-item" href="#" id="btn-add-video"><i class="fa fa-video mr-2" aria-hidden="true"></i> LABEL_VIDEO </a>
                    <a class="dropdown-item" href="#" id="btn-add-document"><i class="fa fa-file mr-2" aria-hidden="true"></i> LABEL_DOCUMENT </a>
                    <a class="dropdown-item" href="#" id="btn-add-audio"><i class="fa fa-music mr-2" aria-hidden="true"></i> LABEL_AUDIO </a>
                    <a class="dropdown-item" href="#" id="btn-add-quizz"><i class="fa fa-question mr-2" aria-hidden="true"></i> LABEL_QUIZ </a>
                </div>
            </div>
                        <?php endif; ?>
                </div>
        </div>
        
        
        <div class="card" id="row-text-add-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_ADD_TEXT_SLIDE</h6>
                </div>
                <?php 
            $form = $this->formTextAdd;
            $form->setAttributes([
               'method'    => 'post',
               'name'      => 'form-slide-text-add',
               'id'        => 'form-slide-text-add'
            ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">

                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                        <?php 
                    $element = $form->get('description');
                    $element->setOptions(['label' => 'LABEL_DESCRIPTION']);
                    $element->setAttributes(['id' => 'description_add', 'rows' => '2',  'class' => 'form-control']);
                    echo $this->formLabel($element);
                    echo $this->formTextArea($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                                </div>
                        </div>                  
                        <div class="row">
                         <div class="col-12 mt-3">
                <?php 
                    $element = $form->get('background');
                    $element->setAttributes([ 'class' => 'form-control']);
                                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                                        echo $this->formLabel($element);
                    echo $this->formFile($element); 
                ?> 
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                        <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        <div class="card" id="row-text-edit-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_EDIT_TEXT_SLIDE</h6>
                </div>
                <?php 
            $form = $this->formTextEdit;
            $form->setAttributes([
               'method'    => 'post',
               'name'      => 'form-slide-text-edit',
               'id'        => 'form-slide-text-edit'
            ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?>
                <div class="card-body">

                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                        <?php 
                    $element = $form->get('description');
                    $element->setOptions(['label' => 'LABEL_DESCRIPTION']);
                    $element->setAttributes(['id' => 'description_edit', 'rows' => '2',  'class' => 'form-control']);
                    echo $this->formLabel($element);
                    echo $this->formTextArea($element);
                    ?>
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                <?php 
                    $element = $form->get('background');
                    $element->setAttributes([ 'class' => 'form-control']);
                                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                                        echo $this->formLabel($element);
                    echo $this->formFile($element); 
                ?> 
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                        <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
                
        </div>          

        <div class="card" id="row-image-add-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_ADD_IMAGE_SLIDE</h6>
                </div>
                <?php 
            $form = $this->formImageAdd;
            $form->setAttributes([
               'method'    => 'post',
                'name'      => 'form-slide-image-add',
                'id'        => 'form-slide-image-add'
            ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">

                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
               
                <?php 
                    $element = $form->get('file');
                                        $element->setAttributes([ 'class' => 'form-control']);
                                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                                        echo $this->formLabel($element);
                    echo $this->formFile($element); 
                ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                        <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>


        <div class="card" id="row-image-edit-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_EDIT_IMAGE_SLIDE</h6>
                </div>
                 <?php 
            $form = $this->formImageEdit;
            $form->setAttributes([
               'method'    => 'post',
               'name'      => 'form-slide-image-edit',
               'id'        => 'form-slide-image-edit'
            ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?>
                <div class="card-body">

                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                
                        <div class="row">
                         <div class="col-12 mt-3">
                <?php 
                    $element = $form->get('file');
                                        $element->setAttributes([ 'class' => 'form-control']);
                                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                                        echo $this->formLabel($element);
                    echo $this->formFile($element); 
                ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                                </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                        <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        <div class="card" id="row-video-add-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_ADD_VIDEO_SLIDE</h6>
                </div>
                <?php 
            $form = $this->formVideoAdd;
            $form->setAttributes([
               'method'    => 'post',
                'name'      => 'form-slide-video-add',
                'id'        => 'form-slide-video-add'
            ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">
                        <div class="row">
                         <div class="col-12 mt-3">
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                
                                <?php 
                        $element = $form->get('file');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_VIDEO']);
                        $element->setAttributes(['accept' => 'video/webm,video/mpeg,video/mp4']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('background');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
      
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                     <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        
        <div class="card" id="row-video-edit-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">>LABEL_EDIT_VIDEO_SLIDE</h6>
                </div>
                <?php 
                $form = $this->formVideoEdit;
                $form->setAttributes([
                    'method'    => 'post',
                    'name'      => 'form-slide-video-edit',
                    'id'        => 'form-slide-video-edit'
                ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">
                        <div class="row">
                         <div class="col-12 mt-3">
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                
                                <?php 
                        $element = $form->get('file');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_VIDEO']);
                        $element->setAttributes(['accept' => 'video/webm,video/mpeg,video/mp4']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('background');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
      
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                     <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        
        <div class="card" id="row-document-add-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_ADD_DOCUMENT_SLIDE</h6>
                </div>
                <?php 
            $form = $this->formDocumentAdd;
            $form->setAttributes([
               'method'    => 'post',
                'name'      => 'form-slide-document-add',
                'id'        => 'form-slide-document-add'
            ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">


                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                        
                                <?php 
                        $element = $form->get('file');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_DOCUMENT']);
                        $element->setAttributes(['accept' => 'application/pdf']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
                
                        
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('background');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
      
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                      <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        
        <div class="card" id="row-document-edit-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_EDIT_DOCUMENT_SLIDE</h6>
                </div>
                <?php 
                $form = $this->formDocumentEdit;
                $form->setAttributes([
                    'method'    => 'post',
                    'name'      => 'form-slide-document-edit',
                    'id'        => 'form-slide-document-edit'
                ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">


                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                        
                                <?php 
                        $element = $form->get('file');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_DOCUMENT']);
                        $element->setAttributes(['accept' => 'application/pdf']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
                
                        
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('background');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
      
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                      <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        <div class="card" id="row-audio-add-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_ADD_AUDIO_SLIDE</h6>
                </div>
                <?php 
            $form = $this->formAudioAdd;
            $form->setAttributes([
               'method'    => 'post',
                'name'      => 'form-slide-audio-add',
                'id'        => 'form-slide-audio-add'
            ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">
                        <div class="row">
                         <div class="col-12 mt-3">
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                        
                                <?php 
                        $element = $form->get('file');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_AUDIO']);
                        $element->setAttributes(['accept' => 'audio/x-wav, audio/mpeg']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        
                        ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('background');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
      
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                      <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        
        <div class="card" id="row-audio-edit-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_EDIT_AUDIO_SLIDE</h6>
                </div>
                <?php 
                $form = $this->formAudioEdit;
                $form->setAttributes([
                    'method'    => 'post',
                    'name'      => 'form-slide-audio-edit',
                    'id'        => 'form-slide-audio-edit'
                ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">
                        <div class="row">
                         <div class="col-12 mt-3">
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                        
                                <?php 
                        $element = $form->get('file');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_AUDIO']);
                        $element->setAttributes(['accept' => 'audio/x-wav, audio/mpeg']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        
                        ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('background');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
      
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                      <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        
        <div class="card" id="row-quizz-add-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_ADD_QUIZ_SLIDE</h6>
                </div>
                <?php 
            $form = $this->formQuizzAdd;
            $form->setAttributes([
               'method'    => 'post',
                'name'      => 'form-slide-quizz-add',
                'id'        => 'form-slide-quizz-add'
            ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">

                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('quiz_id');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_QUIZ']);
                        echo $this->formLabel($element);
                        echo $this->formSelect($element);
                    ?>
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('background');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
      
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                     <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
        
        <div class="card" id="row-quizz-edit-box" style="display: none">
                <div class="card-header">
                        <h6 class="card-title">LABEL_EDIT_QUIZ_SLIDE</h6>
                </div>
                <?php 
                $form = $this->formQuizzEdit;
                $form->setAttributes([
                    'method'    => 'post',
                    'name'      => 'form-slide-quizz-edit',
                    'id'        => 'form-slide-quizz-edit'
                ]);  
            $form->prepare();
            echo $this->form()->openTag($form);
            
            $element = $form->get('type');
            echo $this->formHidden($element);
            
            ?> 
                <div class="card-body">

                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('name');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_NAME']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('order');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_ORDER']);
                        echo $this->formLabel($element);
                        echo $this->formText($element);
                    ?>
                         </div>
                     </div>
                        
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('quiz_id');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_QUIZ']);
                        echo $this->formLabel($element);
                        echo $this->formSelect($element);
                    ?>
                         </div>
                     </div>
                     
                        <div class="row">
                         <div class="col-12 mt-3">
                                <?php 
                        $element = $form->get('background');
                        $element->setAttributes(['class' => 'form-control']);
                        $element->setOptions(['label' => 'LABEL_IMAGE']);
                        $element->setAttributes(['accept' => 'image/jpg,image/jpeg,image/png']);
                        echo $this->formLabel($element);
                        echo $this->formFile($element);
                        ?>
      
                         </div>
                     </div>
                </div>
                <div class="card-footer text-right">
                     <button type="submit" class="btn btn-primary">LABEL_SAVE</button>
                <button type="button" class="btn btn-light btn-cancel">LABEL_CANCEL</button>
                </div>
                <?php echo $this->form()->closeTag($form); ?>   
        </div>
</div>                          
                

        
                                        
                

<!-- The Modal -->
<div class="modal" id="modal-play-video-box" >
        <div class="modal-dialog ">
        <div class="modal-content">

            <!-- Modal Header -->
                <div class="modal-header">
                        <h6 class="modal-title">LABEL_PLAY_VIDEO</h6>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
                </div>

            <!-- Modal body --> 
            <div class="modal-body">
                                <video src=""  style="width: 300px; height: auto" controls preload="false" autoplay="false"  poster="" id="microlearning-play-video"></video>
                </div>
                
            <!-- Modal footer -->
                <div class="modal-footer text-right">
                         <button type="button" class="btn btn-light" data-bs-dismiss="modal">LABEL_CLOSE</button>
                </div>
         </div>         
        </div>
</div>          
                                        
                



<!-- The Modal -->
<div class="modal" id="modal-play-audio-box" >
        <div class="modal-dialog ">
        <div class="modal-content">

            <!-- Modal Header -->
                <div class="modal-header">
                        <h6 class="modal-title">LABEL_PLAY_AUDIO</h6>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
                </div>

            <!-- Modal body --> 
            <div class="modal-body">
                                <audio src="" controls autoplay="false"  id="microlearning-play-audio" >
                  Your browser does not support the <code>audio</code> element.
                </audio>
                </div>
                
            <!-- Modal footer -->
                <div class="modal-footer text-right">
                         <button type="button" class="btn btn-light" data-bs-dismiss="modal">LABEL_CLOSE</button>
                </div>
         </div>         
        </div>
</div>          
                                        

<!-- The Modal -->
<div class="modal" id="modal-view-image-box">
        <div class="modal-dialog ">
        <div class="modal-content">

            <!-- Modal Header -->
                <div class="modal-header">
                        <h6 class="modal-title">LABEL_IMAGE</h6>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
                </div>

            <!-- Modal body --> 
            <div class="modal-body text-center">
                                <img src="" class="img img-responsive" style="width: 300px; height: auto" id="image-view" />
                </div>
                
            <!-- Modal footer -->
                <div class="modal-footer text-right">
                         <button type="button" class="btn btn-light" data-bs-dismiss="modal">LABEL_CLOSE</button>
                </div>
         </div>         
        </div>
</div>                  


<!-- The Modal -->
<div class="modal" id="modal-view-document-box">
        <div class="modal-dialog ">
        <div class="modal-content">

            <!-- Modal Header -->
                <div class="modal-header">
                        <h6 class="modal-title">LABEL_DOCUMENT</h6>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
                </div>

            <!-- Modal body --> 
            <div class="modal-body text-center">
                <iframe id="document-view" style="width: 450px; height: 300px; overflow: auto">
                
                </iframe>
        </div>
                
            <!-- Modal footer -->
                <div class="modal-footer text-right">
                         <button type="button" class="btn btn-light" data-bs-dismiss="modal">LABEL_CLOSE</button>
                </div>
         </div>         
        </div>
</div>          


<!-- The Modal -->
<div class="modal" id="modal-view-text-box">
        <div class="modal-dialog modal-xl">
        <div class="modal-content">

            <!-- Modal Header -->
                <div class="modal-header">
                        <h6 class="modal-title">LABEL_TEXT</h6>
                        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="btn-close"></button>
                </div>

            <!-- Modal body --> 
            <div class="modal-body" >
                <div id="document-text" style="width: 100%; height: 300px; overflow: auto;">

                
                </div>

        </div>
                
            <!-- Modal footer -->
                <div class="modal-footer text-right">
                         <button type="button" class="btn btn-light" data-bs-dismiss="modal">LABEL_CLOSE</button>
                </div>
         </div>         
        </div>
</div>