Skip to content

Latest commit

 

History

History
246 lines (182 loc) · 7.72 KB

CHANGELOG.md

File metadata and controls

246 lines (182 loc) · 7.72 KB

v0.5.4 (2015-02-26)

Features

  • ngTable: added setting sortingIndicator to show sorting indicator whether near header title or to the very right (10cdf358)

v0.5.0 (2015-02-15)

Bug Fixes

  • ngTableController:
    • fix regression in recent rename of ngTableParmas to NgTableParams (c7f2ac89)
    • prevent "stackoverflow" exception when data items are recursive data structures (4a344db0)

Features

  • filters:
    • filter expression now has access to scope (c2f83b98)
    • specify the filter template url using the filter value rather than a separate templateUrl field (7955f12b)
  • header:
    • add data-title-text attribute to table cells (43e5c4bf)
    • title and sortable expression now has access to the column definition (699b2a58)
    • header-title (502b717b)
    • header-class attribute is now a data binding expression (60de2066)
  • ngTable:
    • getter methods declared on $column no longer require a $scope to be supplied (f9090b47)
    • add title-alt for displaying an alternative header title for responsive tables (afc14234)
  • ngTableDynamic: new directive that accepts dynamic array of columns (03854d33)

Breaking Changes

  • Binding expressions used for generating thead>th attributes that reference the current column will need modifying

Previously:

 <td title="getTitle(column)">

Now:

 <td title="getTitle($column)">
  • Fields previously stored directly on a column object are now only available via the prototype chain

This will affect you only if you are enumerating / specifically checking for "own properties" of the column object.

Custom header.html templates will need to pass the current scope as a parameter to column.filter.

Previously:

<!-- snip -->
<div ng-repeat="(name, filter) in column.filter">
<!-- snip -->

... now becomes:

 <!-- snip -->
 <div ng-repeat="(name, filter) in column.filter(this)">
 <!-- snip -->
  • $$name field on filter definitions is not supported.

Previously:

<td filter="{'username': 'text', $$name: 'username'}"</td>

... now becomes:

<td filter="{'username': 'text'}"</td>
  • column.filterName has been dropped as this is no longer applicable. Custom filter templates will need to change.

Previously:

        <input type="text" name="{{column.filterName}}"

... now becomes:

        <input type="text" name="{{name}}"
  • Multiple filters defined by the same filter definition will now render each input with a seperate name.
  • column.filterTemplateURL has been dropped as this is no longer applicable. Custom header.html templates will need to change.

Previously:

        <tr class="ng-table-filters" ng-init="tableParams">
            <th ng-repeat="column in columns" ng-show="column.visible" class="filter">
                <div ng-repeat="(name, filter) in column.filter">
                    <div ng-if="column.filterTemplateURL" ng-show="column.filterTemplateURL">
                        <div ng-include="column.filterTemplateURL"></div>
                    </div>
                    <div ng-if="!column.filterTemplateURL" ng-show="!column.filterTemplateURL">
                        <div ng-include="'ng-table/filters/' + filter + '.html'"></div>
                    </div>
                </div>
            </th>
        </tr>

... now becomes:

        <tr class="ng-table-filters" ng-init="tableParams">
            <th ng-repeat="column in columns" ng-show="column.visible" class="filter">
                <div ng-repeat="(name, filter) in column.filter">
                    <div ng-if="filter.indexOf('/') !== -1" ng-include="filter"></div>
                    <div ng-if="filter.indexOf('/') === -1" ng-include="'ng-table/filters/' + filter + '.html'"></div>
                </div>
            </th>
        </tr>
  • Specifying the url to a filter template has changed.

Previously:

<td filter="{ 'name': 'text', templateURL: 'path/to/textFilter.html'}"</td>

... now becomes:

<td filter="{ 'name': 'path/to/textFilter.html'}"</td>
  • Multiple filters defined by the same filter definition will now specify their own url.

Previously:

<td filter="{
    'fname': 'text',
    'lname': 'text',
    templateURL: 'path/to/textFilter.html'}"</td>

... now becomes:

<td filter="{
    'fname': 'path/to/textFilter.html',
    'lname': 'path/to/textFilter.html'}"</td>

parse method on the ngTable scope has been removed as it's no longer required

Previously, a css class was added to TH elements thusly:

<tr ng-repeat="row in $data">
	<td header-class="myHeaderClass"></td>
</tr>

Now:

<tr ng-repeat="row in $data">
	<td header-class="'myHeaderClass'"></td>
</tr>

v0.3.2 (master)

  • add pagination directive ngTablePagination (see usage)
  • rename filter.name to filter.$$name according to issue #196
  • add debugMode setting
  • add defaultSort setting
  • add filterDelay setting
  • add multisorting (click on header with Ctrl-key)
  • add css classes (ng-table-pager, ng-table-pagination, ng-table-counts)

v0.3.1

  • add support of header-class attribute
  • add fixes for compatibility with early versions of AngularJS
  • add data field to ngTableParams
  • Allow expressions in the sortable & filter attribute (Issue #93)

v0.3.0

v0.2.2

In functions that return data for the filters were removed .promise

$scope.names = function(column) {
    ...
    def.resolve(names);
    // return def.promise; - old code
    return def;
};