list.pt 3.63 KB
<div metal:use-macro="load: base.pt">
    <!-- content -->
    <div metal:fill-slot="content">
        <div class="jarviswidget" style="border-top:1px solid #ccc!important">
            <div role="content">
                <table id="table1" class="table table-bordered table-hover table-condensed">
                    <thead>
                        <tr>
                            <th tal:repeat="f params.columns">${f.title}</th>
                        </tr>
                    </thead>
                    <tbody>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
    <div class="row">
    <table tal:condition="'spm_kode' in request.session">
      <tr>
      <th>SPM</th>
      </tr>
      <tr>
          <td>${request.session['spm_kode']}</td>
      </tr>
    </table>
  </div>
    <!-- end content -->

    <script type="text/javascript" metal:fill-slot="scripts">
        var mID;
        var oTable;
        var oTableUri = "${request._host}${params.route}"
        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]
                ],
                columns: ${params.column_data},
                columnDefs: [{
                    searchable: false,
                    visible: false,
                    targets: [0]
                }],

                "language": {
                    "search": "Cari : ",
                    "paginate": {
                        "first": "Pertama ",
                        "last": "Akhir ",
                        "previous": "",
                        "next": "",
                    },
                    "lengthMenu": "Tampil _MENU_ baris "
                },

            });

            var buttons=${params.buttons};
            var tb_array=[];
            tb_array.push('<div class="btn-group pull-left">');
            for (i=0; i<buttons.length; i++){
                tb_array.push('<button id="'+buttons[i].id+'" class="' +buttons[i].cls+
                              '" type="button">'+buttons[i].title+'</button>')
            }
            tb_array.push('   &nbsp;');
            tb_array.push('</div>');

            var tb = tb_array.join(' ');
            $("div.toolbar").html(tb);
            $("div.toolbar").attr('style', 'display:block; float: left; margin-bottom:6px; line-height:16px;');

            //events
            $('#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);*/
                }
            });
            ${params.scripts}
        });
  </script>

</div>