list.pt 5.38 KB
<html metal:use-macro="load: ../main.pt">

    <!-- content -->
    <div metal:fill-slot="content">
        <table id="table1" class="table table-bordered table-hover table-condensed">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>Email</th>
                    <th>User Name</th>
                    <th>Status</th>
                    <th>Last Login</th>
                    <th>Registered Date</th>
                </tr>
            </thead>
            <tbody>
            </tbody>
        </table>
    </div>
    <!-- end content -->

    <script type="text/javascript" metal:fill-slot="scripts">
        var mID;
        var oTable;
        var oTableUri = "${home}/user/ws"
        var oTableUrl = oTableUri + "/grid/act";

        $(document).ready(function() {
            oTable = $('#table1').DataTable({
                dom: '<"row"<"col-md-8"<"toolbar">l><"col-md-4"f>>rtip',
                processing: true,
                serverSide: true,
                ajax: oTableUrl,
                stateSave: true,
                scrollCollapse: true,
                sort: true,
                info: false,
                filter: true,
                autoWidth: false,
                paginate: true,
                paginationType: "full_numbers",

                lengthMenu: [
                    [10, 25, 50, 100],
                    [10, 25, 50, 100]
                ],
                columnDefs: [{
                    searchable: false,
                    visible: false,
                    targets: [0]
                }],
                columns: [{
                        "data": "id"
                    },
                    {
                        "data": "email",
                        "width": "200px",
                        "className": "text-left"
                    },
                    {
                        "data": "name"
                    },
                    {
                        "data": "status",
                        "width": "200px",
                        "className": "text-center"
                    },
                    {
                        "data": "last_login",
                        "width": "200px",
                        "className": "text-center"
                    },
                    {
                        "data": "registered",
                        "width": "200px",
                        "className": "text-center"
                    }
                ],
                "language": {
                    "search": "Cari: ",
                    "paginate": {
                        "first": "Pertama ",
                        "last": "Akhir ",
                        "previous": "",
                        "next": "",
                    },
                    "lengthMenu": "Tampil _MENU_ baris "
                },

            });

            var tb_array = [
                '<div class="btn-group pull-left">',
                '   <button id="btn_add"    class="btn btn btn-primary" type="button">Tambah</button>',
                '   <button id="btn_edit"   class="btn btn btn-warning" type="button">Edit</button>',
                '   <button id="btn_delete" class="btn btn btn-danger"  type="button">Hapus</button>',
                '   <button id="btn_csv"  class="btn btn btn-primary" type="button">CSV</button>',
                '   <button id="btn_pdf"  class="btn btn btn-primary" type="button">PDF</button>',
                '   <button id="btn_close"  class="btn btn btn-success" type="button">Tutup</button>',
                '   &nbsp;',
                '</div>',
            ];


            var tb = tb_array.join(' ');
            $("div.toolbar").html(tb);
            $("div.toolbar").attr('style', 'display:block; float: left; margin-bottom:6px; line-height:16px;');
            $('#table1 tbody').on('click', 'tr', function() {
                if ($(this).hasClass('selected')) {
                    $(this).removeClass('selected');
                } else {
                    var aData = oTable.row(this).data();
                    oTable.$('tr.selected').removeClass('selected');
                    $(this).addClass('selected');
                    mID = aData.id;
                    console.log(mID);
                    oTable.$('tr.row_selected').removeClass('row_selected');
                    $(this).addClass('row_selected');
                    /*oTable2.fnReloadAjax("egaji/grid2?id=" + mID);*/
                }
            });

            $('#btn_add').click(function() {
                window.location = oTableUri + '/add';
            });

            $('#btn_edit').click(function() {
                if (mID) window.location = oTableUri + '/' + mID + '/edit';
                else alert('Pilih Baris yang akan di edit');
            });

            $('#btn_delete').click(function() {
                if (mID) window.location = oTableUri + '/' + mID + '/delete';
                else alert('Pilih Baris yang akan di hapus');
            });

            $('#btn_csv').click(function() {
                url = oTableUri + "/csv/act";
                window.open(url);
            });
            $('#btn_pdf').click(function() {
                url = oTableUri + "/pdf/act";
                window.open(url);
            });

            $("#btn_close").click(function() {
                window.location = '/';
                return false;
            });
        });
    </script>

</html>