@codenameryuu/adonis-datatable
v1.9.0
Published
Server side datatables package for Adonis JS
Maintainers
Readme
@codenameryuu/adonis-datatable
Adonis datatable is an inspiration from laravel datatable. It is heavily inspired by the PHP library Laravel Datatables and even share some code with services, facade and dependency injection.
Requirement
- Adonis Js 7
- Lucid 22 or higher
- Jquery datatable
Installation
- Install the package
yarn add @codenameryuu/adonis-datatable- Configure the package
node ace add @codenameryuu/adonis-datatable- Make sure to register the provider inside
adonisrc.tsfile.
providers: [
// ...
() => import('@codenameryuu/adonis-datatable/datatables_provider'),
],Usage
- Lucid Datatable - Via Service
import datatables from '@codenameryuu/adonis-datatable/services/main'
import LucidDataTable from '@codenameryuu/adonis-datatable/engines/lucid_datatable'
import User from '#models/user'
const user = User.query()
const datatable = await datatables
.of<LucidDataTable>(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()- Lucid Datatable - Via Factory (Recomended)
import { Datatables } from '@codenameryuu/adonis-datatable'
import User from '#models/user'
const user = User.query()
const datatable = await Datatables.lucid(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()- Lucid Datatable - Via Engine
import LucidDataTable from '@codenameryuu/adonis-datatable/engines/lucid_datatable'
import User from '#models/user'
const user = User.query()
const datatable = await new LucidDataTable(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()- Database Datatable - Via Service
import db from '@adonisjs/lucid/services/db'
import datatables from '@codenameryuu/adonis-datatable/services/main'
import DatabaseDataTable from '@codenameryuu/adonis-datatable/engines/database_datatable'
const user = db.from('users').select('*')
const datatable = await datatables
.of<DatabaseDataTable>(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()- Database Datatable - Via Factory
import db from '@adonisjs/lucid/services/db'
import { Datatables } from '@codenameryuu/adonis-datatable'
const user = db.from('users').select('*')
const datatable = await Datatables.database(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()- Database Datatable - Via Engine
import db from '@adonisjs/lucid/services/db'
import DatabaseDataTable from '@codenameryuu/adonis-datatable/engines/database_datatable'
const user = db.from('users').select('*')
const datatable = await new DatabaseDataTable(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()- Object Datatable - Via Service
import datatables from '@codenameryuu/adonis-datatable/services/main'
import ObjectDataTable from '@codenameryuu/adonis-datatable/engines/object_datatable'
import User from '#models/user'
const user = await User.query()
const datatable = await datatables
.of<ObjectDataTable>(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()- Object Datatable - Via Factory
import { Datatables } from '@codenameryuu/adonis-datatable'
import User from '#models/user'
const user = await User.query()
const datatable = await Datatables.object(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()- Object Datatable - Via Engine
import ObjectDataTable from '@codenameryuu/adonis-datatable/engines/object_datatable'
import User from '#models/user'
const user = await User.query()
const datatable = await new ObjectDataTable(user)
.setContext(ctx)
.addIndexColumn()
.addColumn('user_full_name', (row) => {
return row.first_name + ' ' + row.last_name
})
.escapeColumns()
.results()License
This package is open-sourced software licensed under the MIT license.
