-
Notifications
You must be signed in to change notification settings - Fork 851
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(ngTableFilterConfig): allow template urls for filters to be cust…
…omized `ngTableFilterConfig` is a new service that will allow various aspects of ng-table filters to be customised. Out of the box, the service allows an application to configure which url should be selected as the template url for a filter. **Example: override the url selected for the 'text' filter:** ```js angular.module('yourApp').config(function(ngTableFilterConfigProvider){ ngTableFilterConfigProvider.setConfig({ aliasUrls: { 'text': 'custom/url/custom-text.html' }}); }); ``` **Example: override the *default* url for all filter templates** ```js angular.module('yourApp').config(function(ngTableFilterConfigProvider){ ngTableFilterConfigProvider.setConfig({ defaultBaseUrl: 'default/path/to/filter/templates/'}); }); ```
- Loading branch information
1 parent
47460d6
commit 032f6ff
Showing
4 changed files
with
112 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,7 @@ | ||
<tr ng-show="show_filter" class="ng-table-filters"> | ||
<th data-title-text="{{$column.titleAlt(this) || $column.title(this)}}" ng-repeat="$column in $columns" ng-if="$column.show(this)" class="filter"> | ||
<div ng-repeat="(name, filter) in $column.filter(this)"> | ||
<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 ng-include="config.getTemplateUrl(filter)"></div> | ||
</div> | ||
</th> | ||
</tr> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
describe('ngTableFilterConfig', function () { | ||
var ngTableFilterConfig, | ||
ngTableFilterConfigProvider; | ||
|
||
beforeEach(function () { | ||
// Initialize the service provider | ||
// by injecting it to a fake module's config block | ||
var fakeModule = angular.module('test.config', function () {}); | ||
fakeModule.config( function (_ngTableFilterConfigProvider_) { | ||
ngTableFilterConfigProvider = _ngTableFilterConfigProvider_; | ||
}); | ||
// Initialize test.app injector | ||
module('ngTable', 'test.config'); | ||
}); | ||
|
||
beforeEach(inject(function (_ngTableFilterConfig_) { | ||
ngTableFilterConfig = _ngTableFilterConfig_; | ||
})); | ||
|
||
describe('getTemplateUrl', function(){ | ||
|
||
it('explicit url supplied', function(){ | ||
var explicitUrl = 'path/to/my-template.html'; | ||
expect(ngTableFilterConfig.getTemplateUrl(explicitUrl)).toBe(explicitUrl); | ||
}); | ||
|
||
it('inbuilt alias supplied', function(){ | ||
expect(ngTableFilterConfig.getTemplateUrl('text')).toBe('ng-table/filters/text.html'); | ||
}); | ||
|
||
it('custom alias supplied', function(){ | ||
expect(ngTableFilterConfig.getTemplateUrl('my-template')).toBe('ng-table/filters/my-template.html'); | ||
}); | ||
|
||
it('alias registered with custom url', function(){ | ||
ngTableFilterConfigProvider.setConfig({ aliasUrls: { | ||
'my-template': 'custom/url/my-template.html' | ||
}}); | ||
expect(ngTableFilterConfig.getTemplateUrl('my-template')).toBe('custom/url/my-template.html'); | ||
}); | ||
|
||
it('inbuilt alias registered with custom url', function(){ | ||
ngTableFilterConfigProvider.setConfig({ aliasUrls: { | ||
'text': 'custom/url/custom-text.html' | ||
}}); | ||
expect(ngTableFilterConfig.getTemplateUrl('text')).toBe('custom/url/custom-text.html'); | ||
}); | ||
}); | ||
}); |