Package Exports
- @codenameryuu/adonis-datatable
- @codenameryuu/adonis-datatable/datatables_provider
- @codenameryuu/adonis-datatable/engines/database_datatable
- @codenameryuu/adonis-datatable/engines/lucid_datatable
- @codenameryuu/adonis-datatable/engines/object_datatable
- @codenameryuu/adonis-datatable/services/main
- @codenameryuu/adonis-datatable/types
Readme
@codenameryuu/adonis-datatable
[![gh-workflow-image]][gh-workflow-url] [![npm-image]][npm-url] [![npm-downloads]][npm-downloads] ![][typescript-image] [![license-image]][license-url]
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 6
- Jquery datatable
Installation
node ace add @codenameryuu/adonis-datatable
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.