philippfrenzel/yii2-dynatable Yii2 dynatable Widgets

dynatable

yii2-dynatable

JQuery Dynatable Yii2 Extension JQuery from: http://dynatable.com

Yii2 Extension by philipp@frenzel.net

Latest Stable Version Build Status Code Climate Version Eye License

Installation

Package is although registered at packagist.org - so you can just add one line of code, to let it run!

add the following line to your composer.json require section:

  "philippfrenzel/yii2-dynatable":"*",

And ensure, that you have the follwing plugin installed global:

php composer.phar global require "fxp/composer-asset-plugin:~1.0"

Changelog

29-11-2014 Updated to latest 2.2.3 Version of the library

Usage

Quickstart Looks like this:

  <?= net\frenzel\dynatable\yii2dynatable::widget([
    'id' => "nameofthetablethatwillbedynamised"
  ]);

Template for table:

<table id="nameofthetablethatwillbedynamised">
  <thead>
    <tr>
      <th data-dynatable-column="name">Name can contain anything now...</th>
      <th>Hobby</th>
      <th>Favorite Music</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Fred</td>
      <td>Roller Skating</td>
      <td>Disco</td>
    </tr>
    <tr>
      <td>Helen</td>
      <td>Rock Climbing</td>
      <td>Alternative</td>
    </tr>
    <tr>
      <td>Glen</td>
      <td>Traveling</td>
      <td>Classical</td>
    </tr>
  </tbody>
</table>

extended options are:

'clientOptions' => [
    'table' => [
        'defaultColumnIdStyle' => 'trimDash' //can be "underscore" too - look dynatable.js website for more options
    ],
    'dataset' => [
        'ajax' => true,
        'ajaxUrl' => Url::to('/your/route/to/json'),
        'ajaxOnLoad' => true,
        'records' => [],
    ],
    'features' => [
        'paginate' => false,
        'recordCount' => false,
        'sorting' => true,
        'search' => false
    ],
    'params' => [
        //'queries' => 'queries',
        'sorts' => 'sort',
        'page' => 'pageCount',
        'perPage' => 'perPage',
        'offset' => 'offset',
        'records' => 'items',
        'record' => 'item',
        'queryRecordCount' => 'totalCount',
        'totalRecordCount' => 'totalCount'
    ]
]

If you set the params like above, the dynatable should work fine with the build in yii2 rest api.

if you are using ajax, you need to ensure, that the response looks like this:

{
  "records": [
    {
      "someAttribute": "I am record one",
      "someOtherAttribute": "Fetched by AJAX"
    },
    {
      "someAttribute": "I am record two",
      "someOtherAttribute": "Cuz it's awesome"
    },
    {
      "someAttribute": "I am record three",
      "someOtherAttribute": "Yup, still AJAX"
    }
  ],
  "queryRecordCount": 3,
  "totalRecordCount": 3
}

Statistics

Downloads
GitHub Stars
GitHub Forks

Releases

Comments



0.1.4 is the latest of 4 releases



MIT license
Stats
2 github stars & 2 github forks
5 downloads in the last day
131 downloads in the last 30 days
2860 total downloads