Skip to content

Commit e7be83b

Browse files
committed
Merge commit 'b8f2e1a0a9e947a75a100f14e00a98722ebbb09c'
Conflicts: directive/generic-table/generic-table.html directive/generic-table/generic-table.js partial/examples/examples.js
2 parents f89abb4 + b8f2e1a commit e7be83b

File tree

12 files changed

+1480
-1339
lines changed

12 files changed

+1480
-1339
lines changed

CHANGELOG.md

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,66 @@
1-
Release History
2-
---------------
3-
* 1/5/2016 - v1.0.3 Added message when table has no data and option for custom text
4-
* 22/4/2016 - v1.0.2 Added support for exporting table data to CSV, fix for column sort click function
5-
* 20/4/2016 - v1.0.1 Added support for custom click function for column, improved mapping function
6-
* 19/4/2016 - v1.0.0 Initial release of generic-tables with support for pagination, sorting, custom render function and basic events
1+
Release History
2+
---------------
3+
4+
## [Unreleased]
5+
### Added
6+
- Support for expanding rows
7+
8+
# [1.0.9] - 2016-07-04
9+
### Fixed
10+
- Missing files due to commit error
11+
12+
# [1.0.8] - 2016-05-31
13+
### Fixed
14+
- Missing files due to commit error
15+
16+
# [1.0.7] - 2016-05-31
17+
### Added
18+
- Support for custom display function for export to CSV
19+
- Table wrapper that can be used for table scroll
20+
21+
## [1.0.6] - 2016-05-25
22+
### Added
23+
- Support for reusing or forcing sorting when table structure is updated using `$scope.$broadcast('gt-update-structure:tableId', table);` where table should be an object containing 'settings' (array) and 'fields' (array) and optionally 'forceSorting' (boolean)
24+
25+
## [1.0.5] - 2016-05-24
26+
### Added
27+
- Support for adding class names to table element
28+
29+
### Fixed
30+
- Initial sorting
31+
32+
## [1.0.4] - 2016-05-16
33+
### Added
34+
- Support for multiple tables within same controller
35+
36+
### Breaking changes
37+
- Event listeners in generic-table have changed, to update table data, settings etc. you need to pass an unique id (gt-id) ie. `$scope.$broadcast('gt-update-table:tableId', data);`
38+
39+
## [1.0.3] - 2016-05-01
40+
### Added
41+
- Message when table has no data and option for custom text
42+
43+
## [1.0.2] - 2016-04-22
44+
### Added
45+
- Support for exporting table data to CSV
46+
47+
### Fixed
48+
- Column sort click function
49+
50+
## [1.0.1] - 2016-04-20
51+
### Added
52+
- Support for custom click function for column
53+
54+
### Improved
55+
- Mapping function
56+
57+
## 1.0.0 - 2016-04-19
58+
### Added
59+
- Support for pagination
60+
- Support for sorting
61+
- Custom render function
62+
- Basic events
63+
64+
65+
66+

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "generic-table",
3-
"version": "1.0.3",
3+
"version": "1.0.9",
44
"main": [
55
"dist/js/generic.table.min.js",
66
"dist/css/generic-table.min.css"
Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
describe('genericTable', function() {
2-
3-
beforeEach(module('generic.table'));
4-
5-
var scope,compile;
6-
7-
beforeEach(inject(function($rootScope,$compile) {
8-
scope = $rootScope.$new();
9-
compile = $compile;
10-
}));
11-
12-
it('should ...', function() {
13-
14-
/*
15-
To test your directive, you need to create some html that would use your directive,
16-
send that through compile() then compare the results.
17-
18-
var element = compile('<div mydirective name="name">hi</div>')(scope);
19-
expect(element.text()).toBe('hello, world');
20-
*/
21-
22-
});
23-
});
1+
describe('genericTable', function() {
2+
3+
beforeEach(module('generic.table'));
4+
5+
var scope,compile;
6+
7+
beforeEach(inject(function($rootScope,$compile) {
8+
scope = $rootScope.$new();
9+
compile = $compile;
10+
}));
11+
12+
it('should ...', function() {
13+
14+
/*
15+
To test your directive, you need to create some html that would use your directive,
16+
send that through compile() then compare the results.
17+
18+
var element = compile('<div mydirective name="name">hi</div>')(scope);
19+
expect(element.text()).toBe('hello, world');
20+
*/
21+
22+
});
23+
});
Lines changed: 37 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
1-
<div class="generic-table">
2-
<table class="table table-condensed table-hover table-sortable" ng-if="gtHasData">
3-
<thead>
4-
<tr ng-class="::gtRowTransition ? 'fade-in animate':''">
5-
<th ng-repeat="field in ::gtFields | orderBy:'columnOrder' track by field.objectKey" ng-show=":gtRefresh:gtSettings | getProperty:field.objectKey:'visible'" ng-class=":gtRefresh:[field.classNames, (field.objectKey | camelToDash) + '-column', 'sort-'+(gtSettings | getProperty:field.objectKey:'sort')]"><span ng-click=":gtRefresh:(gtSettings | getProperty:field.objectKey:'sort') === 'enable' ? sort(field.objectKey):(gtSettings | getProperty:field.objectKey:'sort') === 'asc' ? sort(field.objectKey):(gtSettings | getProperty:field.objectKey:'sort') === 'desc' ? sort(field.objectKey):''">{{::field.name}}</span></th>
6-
</tr>
7-
<tr ng-if="gtTotals" ng-class="::gtRowTransition ? 'fade-in animate':''">
8-
<td ng-repeat="field in ::gtFields | orderBy:'columnOrder' track by field.objectKey" class="total-column" ng-show=":gtRefresh:gtSettings | getProperty:field.objectKey:'visible'" ng-class="::[(gtFields | getProperty:field.objectKey:'classNames'), (field.objectKey | camelToDash) + '-column']" ng-bind-html="::gtFields | gtRender:gtTotals:field.objectKey"></td>
9-
</tr>
10-
</thead>
11-
<tbody>
12-
<tr generic-row ng-repeat="row in gtDisplayData | limitTo: displayRows" gt-event ng-class="::gtRowTransition ? 'fade-in animate':''">
13-
<td ng-repeat="field in ::gtFields | orderBy:'columnOrder' track by field.objectKey" ng-show=":gtRefresh:gtSettings | getProperty:field.objectKey:'visible'" ng-class="::[(gtFields | getProperty:field.objectKey:'classNames'), (field.objectKey | camelToDash) + '-column']"><span ng-class="::field.click ? 'gt-click-enabled':''" ng-bind-html="::gtFields | gtRender:row:field.objectKey" ng-click=":gtRefresh:!field.click || field.click(row);!field.expand || toggleRow(field.expand,(gtSettings | filter:{'visible':true}:true).length,row,field.objectKey);"></span></td>
14-
</tr>
15-
</tbody>
16-
<tr ng-if="pagination === false"><td class="gt-no-data" colspan="{{:gtRefresh:(gtSettings | filter:{'visible':true}:true).length}}">{{::gtNoDataTxt}}</td></t></tr>
17-
</table>
18-
<div class="gt-pagination text-center" ng-if="gtPagination === true && pagination !== false">
19-
<ul class="pagination">
20-
<li ng-class="{disabled: currentPage === 0}" ng-show="currentPage !== 0">
21-
<button class="btn-link link" ng-click="previousPage()" translate="ALL.GENERAL#PAGINATION_PREVIOUS#BUTTON" ng-disabled="currentPage === 0">« Prev</button>
22-
</li>
23-
<li ng-show="currentPage > 3">
24-
<button class="btn-link link" ng-click="setPage(0)">1</button><small></small>
25-
</li>
26-
<li style="display: inline;padding: 0 5px;" ng-repeat="page in pagination" ng-class="page === currentPage ? 'active':''"><button class="btn-link link" ng-click="setPage(page)">{{page+1}}</button></li>
27-
<li ng-show="currentPage +1 < pages.length-1 && pages.length > 4">
28-
<small ng-show="currentPage + 3 < pages.length"></small><button class="btn-link link" ng-click="setPage(pages.length-1)">{{pages.length}}</button>
29-
</li>
30-
<li ng-class="{disabled: currentPage == pages.length}" ng-show="currentPage+1 !== pages.length">
31-
<button class="btn-link link" ng-click="nextPage()" translate="ALL.GENERAL#PAGINATION_NEXT#BUTTON" ng-disabled="currentPage+1 === pages.length">Next »</button>
32-
</li>
33-
</ul>
34-
</div>
35-
</div>
1+
<div class="generic-table">
2+
<div class="gt-wrapper">
3+
<table class="table table-sortable" ng-if="gtHasData" ng-class="gtClasses">
4+
<thead>
5+
<tr ng-class="::gtRowTransition ? 'fade-in animate':''">
6+
<th ng-repeat="field in ::gtFields | orderBy:'columnOrder' track by field.objectKey" ng-show=":gtRefresh:gtSettings | getProperty:field.objectKey:'visible'" ng-class=":gtRefresh:[field.classNames, (field.objectKey | camelToDash) + '-column', 'sort-'+(gtSettings | getProperty:field.objectKey:'sort')]"><span ng-click=":gtRefresh:(gtSettings | getProperty:field.objectKey:'sort') === 'enable' ? sort(field.objectKey):(gtSettings | getProperty:field.objectKey:'sort') === 'asc' ? sort(field.objectKey):(gtSettings | getProperty:field.objectKey:'sort') === 'desc' ? sort(field.objectKey):''">{{::field.name}}</span></th>
7+
</tr>
8+
<tr ng-if="gtTotals" ng-class="::gtRowTransition ? 'fade-in animate':''">
9+
<td ng-repeat="field in ::gtFields | orderBy:'columnOrder' track by field.objectKey" class="total-column" ng-show=":gtRefresh:gtSettings | getProperty:field.objectKey:'visible'" ng-class="::[(gtFields | getProperty:field.objectKey:'classNames'), (field.objectKey | camelToDash) + '-column']" ng-bind-html="::gtFields | gtRender:gtTotals:field.objectKey"></td>
10+
</tr>
11+
</thead>
12+
<tbody>
13+
<tr generic-row ng-repeat="row in gtDisplayData | limitTo: displayRows" gt-event ng-class="::gtRowTransition ? 'fade-in animate':''">
14+
<td ng-repeat="field in ::gtFields | orderBy:'columnOrder' track by field.objectKey" ng-show=":gtRefresh:gtSettings | getProperty:field.objectKey:'visible'" ng-class="::[(gtFields | getProperty:field.objectKey:'classNames'), (field.objectKey | camelToDash) + '-column']"><span ng-class="::field.click ? 'gt-click-enabled':''" ng-bind-html="::gtFields | gtRender:row:field.objectKey" ng-click=":gtRefresh:!field.click || field.click(row);!field.expand || toggleRow(field.expand,(gtSettings | filter:{'visible':true}:true).length,row,field.objectKey);"></span></td>
15+
</tr>
16+
</tbody>
17+
<tr ng-if="pagination === false"><td class="gt-no-data" colspan="{{:gtRefresh:(gtSettings | filter:{'visible':true}:true).length}}">{{::gtNoDataTxt}}</td></t></tr>
18+
</table>
19+
<div class="gt-pagination text-center" ng-if="gtPagination === true && pagination !== false">
20+
<ul class="pagination">
21+
<li ng-class="{disabled: currentPage === 0}" ng-show="currentPage !== 0">
22+
<button class="btn-link link" ng-click="previousPage()" translate="ALL.GENERAL#PAGINATION_PREVIOUS#BUTTON" ng-disabled="currentPage === 0">? Prev</button>
23+
</li>
24+
<li ng-show="currentPage > 3">
25+
<button class="btn-link link" ng-click="setPage(0)">1</button><small>¡K</small>
26+
</li>
27+
<li style="display: inline;padding: 0 5px;" ng-repeat="page in pagination" ng-class="page === currentPage ? 'active':''"><button class="btn-link link" ng-click="setPage(page)">{{page+1}}</button></li>
28+
<li ng-show="currentPage +1 < pages.length-1 && pages.length > 4">
29+
<small ng-show="currentPage + 3 < pages.length">¡K</small><button class="btn-link link" ng-click="setPage(pages.length-1)">{{pages.length}}</button>
30+
</li>
31+
<li ng-class="{disabled: currentPage == pages.length}" ng-show="currentPage+1 !== pages.length">
32+
<button class="btn-link link" ng-click="nextPage()" translate="ALL.GENERAL#PAGINATION_NEXT#BUTTON" ng-disabled="currentPage+1 === pages.length">Next ?</button>
33+
</li>
34+
</ul>
35+
</div>
36+
</div>
37+
</div>

0 commit comments

Comments
 (0)