Senin, 04 Juni 2018

Play Framework Cara membuat CRUD Dasar (How to create basic CRUD)

route :
# LatihGET     /cms/latih                                          cms.Latih.index
GET     /cms/create                                         cms.Latih.create
GET     /cms/latih/edit                                     cms.Latih.edit
GET       /cms/latih/delete/{id}                         cms.Latih.delete

controller :

package controllers.cms;
import controllers.BaseController;import controllers.security.AllowAccess;import models.cms.LatihMdl;import models.secman.Acl;import play.i18n.Messages;
public class Latih extends BaseController {

    @AllowAccess({Acl.COM_BERITA})
    public static void index()
    {
        render();    }

    @AllowAccess({Acl.COM_BERITA_ADD})
    public static void create(){
        render("cms/Latih/create.html");    }

    public static void createSubmit(String form_nama_lengkap, String form_alamat) {
        LatihMdl latih = new LatihMdl();        latih.nama_lengkap = form_nama_lengkap;        latih.alamat = form_alamat;        latih.active = true;        latih.save();        index();
    }

    public static void show(long id) {

        LatihMdl viewlatih = LatihMdl.findById(id);//        response .print(viewlatih.nama_lengkap) ;        render("cms/Latih/show.html",viewlatih);    }

    public static void edit(long id) {

        LatihMdl viewlatih = LatihMdl.findById(id);//        response .print(viewlatih.nama_lengkap) ;        render("cms/Latih/edit.html",viewlatih);    }

    public static void editSubmit(long id, String nama_lengkap, String alamat) {
        LatihMdl latih = LatihMdl.findById(id);        latih.nama_lengkap = nama_lengkap;        latih.alamat = alamat;        latih.active = true;        latih.save();        flash.success("Data berhasil disimpan");        index();    }

    public static void delete(long id) {
        LatihMdl model = LatihMdl.findById(id);        notFoundIfNull(model);            model.softDelete();            flash.success(Messages.get("record_deleted"));        index();    }
}

Model :
package models.cms;
import models.BaseKatalogTable;import models.common.AktifUser;import play.db.jdbc.*;import play.mvc.Scope;
import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;
@Table(name = "latih")
public class LatihMdl extends BaseKatalogTable {
    @Id    public Long id;    public String nama_lengkap;    public String alamat;    public Boolean active;
    public static void deleteById(long id){
        Scope.Session current_session = Scope.Session.current();        Integer user_id = Integer.parseInt(current_session.get(AktifUser.USER_SESSION_ID));
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date date = new Date();        String date_now = dateFormat.format(date);
        String query = "update latih set active = 0, deleted_by ="+user_id+", deleted_date = '"+date_now+"' " +
                "where id = ?";
        Query.update(query, id);    }

    public void softDelete() {
        this.active = false;        setDeleted();        save();    }
}

view :
- create :
#{extends 'border.html'/}#{form @cms.Latih.createSubmit(), method:'POST', class:'form-horizontal', enctype:'multipart/form-data'}    <div class="row">        <div class="col-md-12">            <div class="panel panel-default">                <div class="panel-body">                    <ul class="nav nav-tabs" role="tablist">                        <li role="presentation" class="active"><a href="#form-berita" aria-controls="group-role" role="tab" data-toggle="tab">Form Berita</a></li>                        <li role="presentation"><a href="#isi-berita" aria-controls="role" role="tab" data-toggle="tab">Isi Berita</a></li>                    </ul>
                    <div class="tab-content">                        <!-- Form Berita -->                        <div role="tabpanel" class="tab-pane active" id="form-berita">
                            <div class="col-md-12">                                <div class="form-group">                                    <label class="col-md-2 control-label">Nama Lengkap</label>                                    <div class="col-md-8">                                        <input type="text" name="form_nama_lengkap" class="form-control">                                    </div>                                </div>
                            </div>                            <div class="col-md-12">                                <div class="form-group">                                    <label class="col-md-2 control-label">Alamat</label>                                    <div class="col-md-8">                                        <input type="text" name="form_alamat" class="form-control">                                    </div>                                </div>
                            </div>                            <input type="submit" value="Simpan" >
                        </div>                        <!-- End Form Berita -->
                    </div>                </div>            </div>        </div>
    </div>
#{/form}</div>
- index :
#{extends 'border.html'/}<div class="container-fluid">
    <!-- Toolbar -->    <div class="row">        <div class="col-md-12">            <div class="toolbar">            #{addButton action:@create(), title:' Tambah Latih'/}            </div>        </div>    </div>    <!-- End Toolbar -->
    <div class="row">        <div class="col-md-12">        #{alert /}            <div class="panel panel-default">                <div class="panel-body">                    <!-- Data Table -->                    <table class="table table-striped" id="tblBerita">                        <thead>                        <tr>                            <th>#</th>                            <th>Nama Lengkap</th>                            <th>Alamat</th>                            <th></th>                            <th></th>                            <th></th>                        </tr>                        </thead>                    </table>                    <!-- End Data Table -->                </div>            </div>        </div>    </div></div>
#{set 'moreScripts'}<script type="text/javascript">    jQuery(document).ready(function($) {
        $("#tblBerita").dataTable({
            ajax : {
                url : "@{DataTableCtr.cariLatih()}",                cache : true            },            order : [ [ 1, "desc" ], [ 2, "asc" ] ],            columns : [ {
                "searchable" : false,                render: function(data, type, row, meta) {
                    return meta.row + meta.settings._iDisplayStart + 1;                }
            }, {
                "searchable" : true            }, {
                "searchable" : true            }, {
                "searchable" : false            }, {
                "searchable" : false            }
                ]
        });
    });
</script>#{/set}
- edit :
#{extends 'border.html'/}<div class="container">#{form @cms.Latih.editSubmit(), method:'POST', class:'form-horizontal', enctype:'multipart/form-data'}
    <div class="row">        <div class="col-md-12">            <!-- Toolbar -->            <div class="toolbar">                #{backButton/}               #{saveButton/}            </div>            <!-- End Toolbar -->        </div>    </div>
    <div class="row">        <div class="col-md-12">            <div class="panel panel-default">                <div class="panel-body">                    <ul class="nav nav-tabs" role="tablist">                        <li role="presentation" class="active"><a href="#form-berita" aria-controls="group-role" role="tab" data-toggle="tab">Form Berita</a></li>                        <li role="presentation"><a href="#isi-berita" aria-controls="role" role="tab" data-toggle="tab">Isi Berita</a></li>                    </ul>
                    <div class="tab-content">                        <!-- Form Berita -->                        <div role="tabpanel" class="tab-pane active" id="form-berita">
                            <div class="col-md-12">                                <div class="panel panel-default">                                    <div class="panel-body">                                        <div class="form-group">                                            <label class="col-md-2 control-label">Nama Lengkap</label>                                            <div class="col-md-8">                                                <input type="text" name="nama_lengkap" value="${viewlatih.nama_lengkap}" class="form-control">                                            </div>                                        </div>                                    </div>                                    <div class="panel-body">                                        <div class="form-group">                                            <label class="col-md-2 control-label">Alamat</label>                                            <div class="col-md-8">                                                <input type="text" name="alamat" value="${viewlatih.alamat}" class="form-control">                                            </div>                                        </div>                                    </div>                                </div>                            </div>
                        </div>                        <!-- End Form Konten Statis -->                    </div>                </div>            </div>        </div>        <input id="input_id" name="id" value="${viewlatih.id}" type="hidden" />    </div>#{/form}</div>
- show :
#{extends 'border.html'/}<div class="container">#{form @cms.Latih.editSubmit(), method:'POST', class:'form-horizontal', enctype:'multipart/form-data'}
    <div class="row">        <div class="col-md-12">            <!-- Toolbar -->            <div class="toolbar">                #{backButton/}            </div>            <!-- End Toolbar -->        </div>    </div>
    <div class="row">        <div class="col-md-12">            <div class="panel panel-default">                <div class="panel-body">                    <ul class="nav nav-tabs" role="tablist">                        <li role="presentation" class="active"><a href="#form-berita" aria-controls="group-role" role="tab" data-toggle="tab">Form Berita</a></li>                        <li role="presentation"><a href="#isi-berita" aria-controls="role" role="tab" data-toggle="tab">Isi Berita</a></li>                    </ul>
                    <div class="tab-content">                        <!-- Form Berita -->                        <div role="tabpanel" class="tab-pane active" id="form-berita">
                            <div class="col-md-12">                                <div class="panel panel-default">                                    <div class="panel-body">                                        <div class="form-group">                                            <label class="col-md-2 control-label">Nama Lengkap</label>                                            <div class="col-md-8">                                                <input type="text" name="nama_lengkap" value="${viewlatih.nama_lengkap}" class="form-control" disabled>                                            </div>                                        </div>                                    </div>                                    <div class="panel-body">                                        <div class="form-group">                                            <label class="col-md-2 control-label">Alamat</label>                                            <div class="col-md-8">                                                <input type="text" name="alamat" value="${viewlatih.alamat}" class="form-control" disabled>                                            </div>                                        </div>                                    </div>                                </div>                            </div>
                        </div>                        <!-- End Form Konten Statis -->                    </div>                </div>            </div>        </div>        <input id="input_id" name="id" value="${viewlatih.id}" type="hidden" />    </div>#{/form}</div>


Tidak ada komentar:

Posting Komentar