diff --git a/app/components/directory-listing/template.hbs b/app/components/directory-listing/template.hbs
index efeee21..fc56a37 100644
--- a/app/components/directory-listing/template.hbs
+++ b/app/components/directory-listing/template.hbs
@@ -8,6 +8,7 @@
{{#each items as |item|}}
+ {{item-icon type=item.type}} |
{{item.name}} |
{{item.type}} |
diff --git a/app/components/item-icon/component.js b/app/components/item-icon/component.js
new file mode 100644
index 0000000..b32642a
--- /dev/null
+++ b/app/components/item-icon/component.js
@@ -0,0 +1,9 @@
+import Component from '@ember/component';
+
+export default Component.extend({
+
+ classNames: ['item-icon'],
+
+ type: null,
+
+});
diff --git a/app/components/item-icon/template.hbs b/app/components/item-icon/template.hbs
new file mode 100644
index 0000000..82d3970
--- /dev/null
+++ b/app/components/item-icon/template.hbs
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/styles/app.scss b/app/styles/app.scss
index 45576a9..7b9388f 100644
--- a/app/styles/app.scss
+++ b/app/styles/app.scss
@@ -11,4 +11,5 @@ body {
padding: 0;
}
-@import "components/directory_listing";
+@import "components/directory-listing";
+@import "components/item-icon";
diff --git a/app/styles/components/_directory_listing.scss b/app/styles/components/_directory-listing.scss
similarity index 83%
rename from app/styles/components/_directory_listing.scss
rename to app/styles/components/_directory-listing.scss
index 0923e1e..ada968c 100644
--- a/app/styles/components/_directory_listing.scss
+++ b/app/styles/components/_directory-listing.scss
@@ -18,6 +18,10 @@
td {
padding: 1rem 1.5rem;
+ &.icon {
+ width: 1rem;
+ padding-right: 0;
+ }
&.type {
color: #aaa;
}
diff --git a/app/styles/components/_item-icon.scss b/app/styles/components/_item-icon.scss
new file mode 100644
index 0000000..572f379
--- /dev/null
+++ b/app/styles/components/_item-icon.scss
@@ -0,0 +1,8 @@
+.item-icon {
+
+ img {
+ height: 1.2rem;
+ vertical-align: middle;
+ }
+
+}
diff --git a/public/img/file-icons/folder.svg b/public/img/file-icons/folder.svg
new file mode 100644
index 0000000..2fdfff5
--- /dev/null
+++ b/public/img/file-icons/folder.svg
@@ -0,0 +1,8 @@
+
+
diff --git a/tests/integration/components/directory-listing/component-test.js b/tests/integration/components/directory-listing/component-test.js
index ef9adfd..23e24cb 100644
--- a/tests/integration/components/directory-listing/component-test.js
+++ b/tests/integration/components/directory-listing/component-test.js
@@ -13,6 +13,6 @@ test('it renders directory items', function(assert) {
this.render(hbs`{{directory-listing items=items}}`);
- assert.equal(this.$('table tbody tr:first td:first').text(), 'documents');
- assert.equal(this.$('table tbody tr:first td:last').text(), 'folder');
+ assert.equal(this.$('table tbody tr:first td:nth-of-type(2)').text(), 'documents');
+ assert.equal(this.$('table tbody tr:first td:nth-of-type(3)').text(), 'folder');
});
diff --git a/tests/integration/components/item-icon/component-test.js b/tests/integration/components/item-icon/component-test.js
new file mode 100644
index 0000000..d74d975
--- /dev/null
+++ b/tests/integration/components/item-icon/component-test.js
@@ -0,0 +1,12 @@
+import { moduleForComponent, test } from 'ember-qunit';
+import hbs from 'htmlbars-inline-precompile';
+
+moduleForComponent('item-icon', 'Integration | Component | item icon', {
+ integration: true
+});
+
+test('it renders', function(assert) {
+ this.render(hbs`{{item-icon type='folder'}}`);
+
+ assert.equal(this.$('img').attr('src'), '/img/file-icons/folder.svg');
+});