Skip to content

Commit

Permalink
add filter name
Browse files Browse the repository at this point in the history
  • Loading branch information
esvit committed Jan 10, 2014
1 parent c4688b1 commit 568fea5
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/ng-table/filters/select-multiple.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
multiple ng-multiple="true"
ng-model="params.filter()[name]"
ng-show="filter == 'select-multiple'"
class="filter filter-select-multiple form-control">
class="filter filter-select-multiple form-control" name="{{column.filterName}}">
</select>
2 changes: 1 addition & 1 deletion src/ng-table/filters/select.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<select ng-options="data.id as data.title for data in column.data"
ng-model="params.filter()[name]"
ng-show="filter == 'select'"
class="filter filter-select form-control">
class="filter filter-select form-control" name="{{column.filterName}}">
</select>
2 changes: 1 addition & 1 deletion src/ng-table/filters/text.html
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<input type="text" ng-model="params.filter()[name]" ng-if="filter == 'text'" class="input-filter form-control" />
<input type="text" name="{{column.filterName}}" ng-model="params.filter()[name]" ng-if="filter == 'text'" class="input-filter form-control" />
7 changes: 3 additions & 4 deletions src/scripts/03-params.js
Original file line number Diff line number Diff line change
Expand Up @@ -212,16 +212,15 @@ app.factory('ngTableParams', ['$q', '$log', function ($q, $log) {

defer.promise.then(function(data) {
var groups = {};
for (var k in data) {
var item = data[k],
groupName = angular.isFunction(column) ? column(item) : item[column];
angular.forEach(data, function(item) {
var groupName = angular.isFunction(column) ? column(item) : item[column];

groups[groupName] = groups[groupName] || {
data: []
};
groups[groupName]['value'] = groupName;
groups[groupName].data.push(item);
}
});
var result = [];
for (var i in groups) {
result.push(groups[i]);
Expand Down
18 changes: 12 additions & 6 deletions src/scripts/05-directive.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ app.directive('ngTable', ['$compile', '$q', '$parse',
var thead = element.find('thead');

// IE 8 fix :not(.ng-table-group) selector
angular.forEach(angular.element(element.find('tr')), function(tr) {
angular.forEach(angular.element(element.find('tr')), function (tr) {
tr = angular.element(tr);
if (!tr.hasClass('ng-table-group') && !row) {
row = tr;
Expand All @@ -44,8 +44,8 @@ app.directive('ngTable', ['$compile', '$q', '$parse',
if (el.attr('ignore-cell') && 'true' === el.attr('ignore-cell')) {
return;
}
var parsedAttribute = function(attr, defaultValue) {
return function(scope) {
var parsedAttribute = function (attr, defaultValue) {
return function (scope) {
return $parse(el.attr('x-data-' + attr) || el.attr('data-' + attr) || el.attr(attr))(scope, {
$columns: columns
}) || defaultValue;
Expand All @@ -55,8 +55,13 @@ app.directive('ngTable', ['$compile', '$q', '$parse',
var parsedTitle = parsedAttribute('title', ' '),
headerTemplateURL = parsedAttribute('header', false),
filter = parsedAttribute('filter', false)(),
filterTemplateURL = false;
filterTemplateURL = false,
filterName = false;

if (filter && filter.name) {
filterName = filter.name;
delete filter.name;
}
if (filter && filter.templateURL) {
filterTemplateURL = filter.templateURL;
delete filter.templateURL;
Expand All @@ -67,9 +72,10 @@ app.directive('ngTable', ['$compile', '$q', '$parse',
id: i++,
title: parsedTitle,
sortable: parsedAttribute('sortable', false),
'class': el.attr('x-data-header-class') || el.attr('data-header-class') || el.attr("header-class"),
'class': el.attr('x-data-header-class') || el.attr('data-header-class') || el.attr('header-class'),
filter: filter,
filterTemplateURL: filterTemplateURL,
filterName: filterName,
headerTemplateURL: headerTemplateURL,
filterData: (el.attr("filter-data") ? el.attr("filter-data") : null),
show: (el.attr("ng-show") ? function (scope) {
Expand Down Expand Up @@ -109,7 +115,7 @@ app.directive('ngTable', ['$compile', '$q', '$parse',
if (!(angular.isObject(def) && angular.isObject(def.promise))) {
throw new Error('Function ' + column.filterData + ' must be instance of $q.defer()');
}
delete column['filterData'];
delete column.filterData;
return def.promise.then(function (data) {
if (!angular.isArray(data)) {
data = [];
Expand Down

0 comments on commit 568fea5

Please sign in to comment.