diff --git a/addon/styles/addon.less b/addon/styles/addon.less
index 704c04238..616730ec1 100644
--- a/addon/styles/addon.less
+++ b/addon/styles/addon.less
@@ -723,6 +723,14 @@
}
}
+.row-loading-indicator {
+ display: inline-block;
+ position: relative;
+ width: 10px;
+ height: 10px;
+ margin-left: 5px;
+}
+
//
// Financial theme is included by default.
//
diff --git a/addon/views/row-loading-indicator.js b/addon/views/row-loading-indicator.js
new file mode 100644
index 000000000..f51810d10
--- /dev/null
+++ b/addon/views/row-loading-indicator.js
@@ -0,0 +1,17 @@
+import Ember from 'ember';
+
+export default Ember.View.extend({
+ templateName: 'row-loading-indicator',
+
+ classNameBindings: ['indicatorClass'],
+
+ isLoading: false,
+
+ indicatorClass: Ember.computed(function() {
+ var classNames = ['row-loading-indicator'];
+ if (this.get('isLoading')) {
+ classNames.push('loading');
+ }
+ return classNames.join(' ');
+ }).property('isLoading')
+});
diff --git a/app/templates/grouping-column-cell.hbs b/app/templates/grouping-column-cell.hbs
index 62997cd40..6357495a4 100644
--- a/app/templates/grouping-column-cell.hbs
+++ b/app/templates/grouping-column-cell.hbs
@@ -1,12 +1,14 @@
{{#if view.isLoading}}
-
+ {{view "row-loading-indicator"
+ isLoading=view.isLoading
+ }}
{{else}}
- {{view view.indicatorView
- hasChildren=view.hasChildren
- isExpanded=view.isExpanded
- expandLevel=view.expandLevel
- }}
-
- {{view.cellContent}}
-
+ {{view view.indicatorView
+ hasChildren=view.hasChildren
+ isExpanded=view.isExpanded
+ expandLevel=view.expandLevel
+ }}
+
+ {{view.cellContent}}
+
{{/if}}
diff --git a/app/templates/row-loading-indicator.hbs b/app/templates/row-loading-indicator.hbs
new file mode 100644
index 000000000..2aa261a98
--- /dev/null
+++ b/app/templates/row-loading-indicator.hbs
@@ -0,0 +1 @@
+
diff --git a/app/views/row-loading-indicator.js b/app/views/row-loading-indicator.js
new file mode 100644
index 000000000..199831f2d
--- /dev/null
+++ b/app/views/row-loading-indicator.js
@@ -0,0 +1,3 @@
+import RowLoadingIndicator from 'ember-table/views/row-loading-indicator';
+
+export default RowLoadingIndicator;
diff --git a/tests/helpers/module-for-ember-table.js b/tests/helpers/module-for-ember-table.js
index 430deed80..156d43569 100644
--- a/tests/helpers/module-for-ember-table.js
+++ b/tests/helpers/module-for-ember-table.js
@@ -7,6 +7,7 @@ export default function moduleForEmberTable(description, subject) {
needs: [
'view:body-table-container',
'view:column-sortable-indicator',
+ 'view:row-loading-indicator',
'view:footer-table-container',
'view:header-cell',
'view:header-row',
@@ -33,6 +34,7 @@ export default function moduleForEmberTable(description, subject) {
'template:table-cell',
'template:table-row',
'template:grouping-column-cell',
+ 'template:row-loading-indicator',
'template:grouped-row-indicator'
],
subject: subject
diff --git a/tests/unit/components/loading-indicator-test.js b/tests/unit/components/loading-indicator-test.js
index 86360a8a6..72ec6982c 100644
--- a/tests/unit/components/loading-indicator-test.js
+++ b/tests/unit/components/loading-indicator-test.js
@@ -30,12 +30,11 @@ test('render loading indicator', function(assert) {
var component = this.subject([{id: 1, isLoading: true}]);
this.render();
var helper = EmberTableHelper.create({ _assert: assert, _component: component});
-
var loadingRow = helper.bodyRows().eq(0);
+
assert.equal(loadingRow.find('.loading-indicator').length, 3, 'should render loading indicator');
});
-
test('expand grouped rows', function(assert) {
var component = this.subject([firstRowObject]);
this.render();
@@ -55,5 +54,5 @@ test('expand grouped rows', function(assert) {
secondRow = helper.bodyRows().eq(1);
var firstChildrenId = secondRow.find('.ember-table-content:eq(0)').text().trim();
- assert.equal(firstChildrenId, '11', 'it should render chidlren');
+ assert.equal(firstChildrenId, '11', 'it should render children');
});