Skip to content
This repository was archived by the owner on Feb 2, 2025. It is now read-only.

Adding support for Light Column Filter #431

Merged
merged 1 commit into from
Sep 2, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 58 additions & 56 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,58 +1,60 @@
{
"name": "angular-datatables",
"version": "0.5.0",
"author": "l-lin",
"license": "MIT",
"main": [
"dist/angular-datatables.js",
"dist/plugins/bootstrap/angular-datatables.bootstrap.js",
"dist/plugins/bootstrap/datatables.bootstrap.css",
"dist/plugins/colreorder/angular-datatables.colreorder.js",
"dist/plugins/columnfilter/angular-datatables.columnfilter.js",
"dist/plugins/colvis/angular-datatables.colvis.js",
"dist/plugins/fixedcolumns/angular-datatables.fixedcolumns.js",
"dist/plugins/fixedheader/angular-datatables.fixedheader.js",
"dist/plugins/scroller/angular-datatables.scroller.js",
"dist/plugins/tabletools/angular-datatables.tabletools.js"
],
"ignore": [
".bowerrc",
".editorconfig",
".git*",
".jshintrc",
".esformatter",
"Gruntfile.js",
"test",
"node_modules",
"src",
".travis.yml",
"vendor",
"data.json",
"data1.json",
"demo",
"favicon.png",
"index.html",
"README.md",
"CONTRIBUTING.md",
"server.js",
"styles",
"_config.yml",
"grunt",
"images",
"package.json",
"archives",
"archives.json",
"dtOptions.json",
"dtColumns.json"
],
"dependencies": {
"angular": ">=1.3.0",
"jquery": ">=1.11.0",
"datatables": ">=1.10.0"
},
"devDependencies": {
"angular-mocks": ">=1.3.0",
"bootstrap": ">=3.0.1",
"angular-bootstrap": ">=0.10.0"
}
"name": "angular-datatables",
"version": "0.5.0",
"author": "l-lin",
"license": "MIT",
"main": [
"dist/angular-datatables.js",
"dist/plugins/bootstrap/angular-datatables.bootstrap.js",
"dist/plugins/bootstrap/datatables.bootstrap.css",
"dist/plugins/colreorder/angular-datatables.colreorder.js",
"dist/plugins/columnfilter/angular-datatables.columnfilter.js",
"dist/plugins/light-columnfilter/angular-datatables.light-columnfilter.js",
"dist/plugins/colvis/angular-datatables.colvis.js",
"dist/plugins/fixedcolumns/angular-datatables.fixedcolumns.js",
"dist/plugins/fixedheader/angular-datatables.fixedheader.js",
"dist/plugins/scroller/angular-datatables.scroller.js",
"dist/plugins/tabletools/angular-datatables.tabletools.js"
],
"ignore": [
".bowerrc",
".editorconfig",
".git*",
".jshintrc",
".esformatter",
"Gruntfile.js",
"test",
"node_modules",
"src",
".travis.yml",
"vendor",
"data.json",
"data1.json",
"demo",
"favicon.png",
"index.html",
"README.md",
"CONTRIBUTING.md",
"server.js",
"styles",
"_config.yml",
"grunt",
"images",
"package.json",
"archives",
"archives.json",
"dtOptions.json",
"dtColumns.json"
],
"dependencies": {
"angular": ">=1.3.0",
"datatables": ">=1.10.0",
"datatables-light-columnfilter": "~0.0.7",
"jquery": ">=1.11.0"
},
"devDependencies": {
"angular-mocks": ">=1.3.0",
"bootstrap": ">=3.0.1",
"angular-bootstrap": ">=0.10.0"
}
}
1 change: 1 addition & 0 deletions demo/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ angular.module('showcase', [
'showcase.withAngularTranslate',
'showcase.withColReorder',
'showcase.withColumnFilter',
'showcase.withLightColumnFilter',
'showcase.withColVis',
'showcase.withResponsive',
'showcase.withScroller',
Expand Down
1 change: 1 addition & 0 deletions demo/partials/gettingStarted.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ <h3>Dependencies</h3>
<li><a href="https://datatables.net/extras/colvis/">ColVis</a> with version 1.1.0+</li>
<li><a href="https://datatables.net/extras/tabletools/">TableTools</a> with version 2.2.0+</li>
<li><a href="http://jquery-datatables-column-filter.googlecode.com/svn/trunk/index.html">ColumnFilter</a> with version 1.5.6</li>
<li><a href="https://github.com/thansen-solire/datatables-light-columnfilter/">LightColumnFilter</a> with version 0.0.7</li>
<li><a href="https://datatables.net/extensions/fixedcolumns/">FixedColumns</a> with version 3.0.2</li>
<li><a href="https://datatables.net/extensions/fixedheader/">FixedHeader</a> with version 2.1.2</li>
<li><a href="https://datatables.net/extensions/responsive/">Responsive</a> with version 1.0.1</li>
Expand Down
3 changes: 3 additions & 0 deletions demo/usages.js
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ angular.module('showcase.usages', ['ngResource'])
}, {
name: 'withColumnFilter',
label: 'With Column Filter'
}, {
name: 'withLightColumnFilter',
label: 'With Light Column Filter'
},{
name: 'bootstrapIntegration',
label: 'Bootstrap integration'
Expand Down
84 changes: 84 additions & 0 deletions demo/withPlugins/withLightColumnFilter.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<article class="main-content">
<header class="article-header">
<h1><i class="fa fa-play"></i>&nbsp;With the <a href="https://github.com/thansen-solire/datatables-light-columnfilter"> DataTables Light Column Filter</a></h1>
</header>
<section class="article-content">
<p>
The <code>angular-datatables</code> also provides an API in order to make the plugin <code>Light Column Filter</code> work with datatables.
</p>
<p>
You need to add the file <code>angular-datatables.light-columnfilter.min.js</code> to your HTML file.
</p>
<p class="alert alert-warning">
<i class="fa fa-warning"></i> The Light Column Filter only works with serverside processing! <br>
</p>
<p class="alert alert-warning">
<i class="fa fa-warning"></i> The Light Column Filter does not work with <code>Responsive</code>. Do not use with normal <code>Column Filter</code>
</p>
<p>
You also need to add the dependency <code>datatables.light-columnfilter</code> to your Angular app.
</p>
<p>
See the <a ui-sref="api">API</a> for the complete list of methods of the helper.
</p>
</section>
<section class="showcase">
<tabset>
<tab heading="Preview">
<article class="preview">
<div ng-controller="WithLightColumnFilterCtrl as showCase">
<table datatable dt-options="showCase.dtOptions" dt-columns="showCase.dtColumns" class="row-border hover">
<tfoot>
<tr>
<th>ID
<th>First Name
<th>Last Name
</tr>
</tfoot>
</table>
</div>
</article>
</tab>
<tab heading="HTML">
<div hljs>
<div ng-controller="WithLightColumnFilterCtrl as showCase">
<table datatable dt-options="showCase.dtOptions" dt-columns="showCase.dtColumns" class="row-border hover">
<tfoot>
<tr>
<th>ID
<th>First Name
<th>Last Name
</tr>
</tfoot>
</table>
</div>
<!-- ... -->
<script src="vendor/datatables-light-columnfilter/dist/dataTables.lightColumnFilter.min.js"></script>
<script src="vendor/angular-datatables/dist/plugins/light-columnfilter/angular-datatables.light-columnfilter.min.js"></script>
</div>
</tab>
<tab heading="JS">
<div hljs language="js">
angular.module('showcase.withLightColumnFilter', ['datatables', 'datatables.light-columnfilter'])
.controller('WithLightColumnFilterCtrl', WithLightColumnFilterCtrl);

function WithColumnFilterCtrl(DTOptionsBuilder, DTColumnBuilder) {
var vm = this;
vm.dtOptions = DTOptionsBuilder.fromSource('data.json')
.withPaginationType('full_numbers')
.withLightColumnFilter({
0 : { "type" : "text"},
1 : { "type" : "text"},
2 : { "type" : "text"}
});
vm.dtColumns = [
DTColumnBuilder.newColumn('id').withTitle('ID'),
DTColumnBuilder.newColumn('firstName').withTitle('First name'),
DTColumnBuilder.newColumn('lastName').withTitle('Last name')
];
}
</div>
</tab>
</tabset>
</section>
</article>
19 changes: 19 additions & 0 deletions demo/withPlugins/withLightColumnFilter.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
'use strict';
angular.module('showcase.withLightColumnFilter', ['datatables', 'datatables.light-columnfilter'])
.controller('WithLightColumnFilterCtrl', WithLightColumnFilterCtrl);

function WithLightColumnFilterCtrl(DTOptionsBuilder, DTColumnBuilder) {
var vm = this;
vm.dtOptions = DTOptionsBuilder.fromSource('data.json')
.withPaginationType('full_numbers')
.withLightColumnFilter({
0 : { "type" : "text"},
1 : { "type" : "text"},
2 : { "type" : "text"}
});
vm.dtColumns = [
DTColumnBuilder.newColumn('id').withTitle('ID'),
DTColumnBuilder.newColumn('firstName').withTitle('First name'),
DTColumnBuilder.newColumn('lastName').withTitle('Last name')
];
}
26 changes: 13 additions & 13 deletions dist/angular-datatables.js
Original file line number Diff line number Diff line change
Expand Up @@ -1098,21 +1098,21 @@ function dtAjaxRenderer($q, $timeout, DTRenderer, DTRendererService, DT_DEFAULT_
}

function _doRender(options, $elem) {
var defer = $q.defer();
// Set it to true in order to be able to redraw the dataTable
options.bDestroy = true;
DTRendererService.hideLoading($elem);
// Condition to refresh the dataTable
if (_shouldDeferRender(options)) {
$timeout(function() {
defer.resolve(DTRendererService.renderDataTable($elem, options));
}, 0, false);
} else {
var defer = $q.defer();
// Set it to true in order to be able to redraw the dataTable
options.bDestroy = true;
DTRendererService.hideLoading($elem);
// Condition to refresh the dataTable
if (_shouldDeferRender(options)) {
$timeout(function() {
defer.resolve(DTRendererService.renderDataTable($elem, options));
}
return defer.promise;
}, 0, false);
} else {
defer.resolve(DTRendererService.renderDataTable($elem, options));
}
// See https://github.com/l-lin/angular-datatables/issues/147
return defer.promise;
}
// See https://github.com/l-lin/angular-datatables/issues/147
function _shouldDeferRender(options) {
if (angular.isDefined(options) && angular.isDefined(options.dom)) {
// S for scroller plugin
Expand Down
Loading