From 6d04a8a6c88d309b6dd1fa1233437cd64b312acd Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Wed, 17 Jun 2015 14:47:40 -0800
Subject: [PATCH 01/12] init clostridium
---
README.md | 2 +-
app/index.html | 6 +++---
app/pods/about/template.hbs | 2 +-
bower.json | 2 +-
config/environment.js | 6 +++---
divshot.json | 2 +-
package.json | 4 ++--
server/mocks/characteristic-types.js | 2 +-
server/mocks/characteristics.js | 2 +-
server/mocks/measurements.js | 2 +-
server/mocks/species.js | 10 +++++-----
server/mocks/strains.js | 2 +-
tests/index.html | 6 +++---
13 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/README.md b/README.md
index 16e11f0..b56745d 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# hymenobacterdotinfo
+# clostridiumdotinfo
Detailed information to come --- for now see the ember-cli boilerplate below.
diff --git a/app/index.html b/app/index.html
index f75c736..a35ee85 100644
--- a/app/index.html
+++ b/app/index.html
@@ -3,7 +3,7 @@
- Hymenobacterdotinfo
+ clostridiumdotinfo
@@ -12,7 +12,7 @@
{{content-for 'head'}}
-
+
{{content-for 'head-footer'}}
@@ -20,7 +20,7 @@
{{content-for 'body'}}
-
+
{{content-for 'body-footer'}}
diff --git a/app/pods/about/template.hbs b/app/pods/about/template.hbs
index 2b95e93..b583288 100644
--- a/app/pods/about/template.hbs
+++ b/app/pods/about/template.hbs
@@ -1,3 +1,3 @@
-
This is some information about hymenobacter.info
+
This is some information about clostridium.info
diff --git a/bower.json b/bower.json
index 6aa21fe..7eac921 100644
--- a/bower.json
+++ b/bower.json
@@ -1,5 +1,5 @@
{
- "name": "hymenobacterdotinfo",
+ "name": "clostridiumdotinfo",
"dependencies": {
"jquery": "~2.1.1",
"ember": "1.12.0",
diff --git a/config/environment.js b/config/environment.js
index e71d629..78196ba 100644
--- a/config/environment.js
+++ b/config/environment.js
@@ -2,7 +2,7 @@
module.exports = function(environment) {
var ENV = {
- modulePrefix: 'hymenobacterdotinfo',
+ modulePrefix: 'clostridiumdotinfo',
environment: environment,
baseURL: '/',
locationType: 'auto',
@@ -12,9 +12,9 @@ module.exports = function(environment) {
}
},
APP: {
- genus: 'hymenobacter',
+ genus: 'clostridium',
},
- podModulePrefix: 'hymenobacterdotinfo/pods',
+ podModulePrefix: 'clostridiumdotinfo/pods',
'simple-auth': {
session: 'session:custom',
authorizer: 'simple-auth-authorizer:token',
diff --git a/divshot.json b/divshot.json
index f879f3c..97f0047 100644
--- a/divshot.json
+++ b/divshot.json
@@ -1,5 +1,5 @@
{
- "name": "hymenobacterdotinfo",
+ "name": "clostridiumdotinfo",
"root": "./dist",
"routes": {
"/tests": "tests/index.html",
diff --git a/package.json b/package.json
index f39391f..edb726a 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
- "name": "hymenobacterdotinfo",
+ "name": "clostridiumdotinfo",
"version": "0.0.0",
- "description": "Small description for hymenobacterdotinfo goes here",
+ "description": "Small description for clostridiumdotinfo goes here",
"private": true,
"directories": {
"doc": "doc",
diff --git a/server/mocks/characteristic-types.js b/server/mocks/characteristic-types.js
index 906a454..15405ef 100644
--- a/server/mocks/characteristic-types.js
+++ b/server/mocks/characteristic-types.js
@@ -77,5 +77,5 @@ module.exports = function(app) {
res.status(204).end();
});
- app.use('/api/hymenobacter/characteristicTypes', characteristicTypesRouter);
+ app.use('/api/clostridium/characteristicTypes', characteristicTypesRouter);
};
diff --git a/server/mocks/characteristics.js b/server/mocks/characteristics.js
index 3be513c..170e6b9 100644
--- a/server/mocks/characteristics.js
+++ b/server/mocks/characteristics.js
@@ -109,5 +109,5 @@ module.exports = function(app) {
res.status(204).end();
});
- app.use('/api/hymenobacter/characteristics', characteristicsRouter);
+ app.use('/api/clostridium/characteristics', characteristicsRouter);
};
diff --git a/server/mocks/measurements.js b/server/mocks/measurements.js
index e4e7fdc..64d4428 100644
--- a/server/mocks/measurements.js
+++ b/server/mocks/measurements.js
@@ -205,5 +205,5 @@ module.exports = function(app) {
res.status(204).end();
});
- app.use('/api/hymenobacter/measurements', measurementsRouter);
+ app.use('/api/clostridium/measurements', measurementsRouter);
};
diff --git a/server/mocks/species.js b/server/mocks/species.js
index f3b0430..59ff57b 100644
--- a/server/mocks/species.js
+++ b/server/mocks/species.js
@@ -5,7 +5,7 @@ module.exports = function(app) {
var SPECIES = [
{
id: 1,
- genusName: "Hymenobacter",
+ genusName: "Clostridium",
speciesName: "One",
typeSpecies: true,
etymology: "Test Etymology",
@@ -20,7 +20,7 @@ module.exports = function(app) {
},
{
id: 2,
- genusName: "Hymenobacter",
+ genusName: "Clostridium",
speciesName: "Two",
typeSpecies: true,
etymology: "Test Etymology",
@@ -35,7 +35,7 @@ module.exports = function(app) {
},
{
id: 3,
- genusName: "Hymenobacter",
+ genusName: "Clostridium",
speciesName: "Three",
typeSpecies: true,
etymology: "Test Etymology",
@@ -50,7 +50,7 @@ module.exports = function(app) {
},
{
id: 4,
- genusName: "Hymenobacter",
+ genusName: "Clostridium",
speciesName: "Four",
typeSpecies: true,
etymology: "Test Etymology",
@@ -101,5 +101,5 @@ module.exports = function(app) {
res.status(204).end();
});
- app.use('/api/hymenobacter/species', speciesRouter);
+ app.use('/api/clostridium/species', speciesRouter);
};
diff --git a/server/mocks/strains.js b/server/mocks/strains.js
index d6bfccf..0349cc3 100644
--- a/server/mocks/strains.js
+++ b/server/mocks/strains.js
@@ -126,5 +126,5 @@ module.exports = function(app) {
res.status(204).end();
});
- app.use('/api/hymenobacter/strains', strainsRouter);
+ app.use('/api/clostridium/strains', strainsRouter);
};
diff --git a/tests/index.html b/tests/index.html
index 648f884..e32fd45 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -3,7 +3,7 @@
-
Hymenobacterdotinfo Tests
+
clostridiumdotinfo Tests
@@ -11,7 +11,7 @@
{{content-for 'test-head'}}
-
+
{{content-for 'head-footer'}}
@@ -23,7 +23,7 @@
{{content-for 'test-body'}}
-
+
From 622cd0faaf69098fc5448f599193865c4326975d Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Mon, 6 Jul 2015 11:02:41 -0800
Subject: [PATCH 02/12] Species edit refactor (wip)
---
app/pods/application/adapter.js | 10 ++-
.../components/species-details/component.js | 20 -----
.../components/species-details/template.hbs | 89 -------------------
app/pods/species/edit/controller.js | 18 ++++
app/pods/species/edit/route.js | 14 +++
app/pods/species/edit/template.hbs | 37 ++++++++
app/pods/species/index/route.js | 5 +-
app/pods/species/index/template.hbs | 9 +-
app/pods/species/show/route.js | 12 ++-
app/pods/species/show/template.hbs | 64 +++++++++++--
app/router.js | 1 +
11 files changed, 155 insertions(+), 124 deletions(-)
delete mode 100644 app/pods/components/species-details/component.js
delete mode 100644 app/pods/components/species-details/template.hbs
create mode 100644 app/pods/species/edit/controller.js
create mode 100644 app/pods/species/edit/route.js
create mode 100644 app/pods/species/edit/template.hbs
diff --git a/app/pods/application/adapter.js b/app/pods/application/adapter.js
index e979dec..c4b405b 100644
--- a/app/pods/application/adapter.js
+++ b/app/pods/application/adapter.js
@@ -5,10 +5,13 @@ export default DS.RESTAdapter.extend({
namespace: function() {
return 'api/' + this.get('globals.genus');
}.property(),
+
host: function() {
return this.get('globals.apiURL');
}.property(),
+
coalesceFindRequests: true,
+
ajaxError: function(jqXHR) {
// http://stackoverflow.com/a/24027443
var error = this._super(jqXHR);
@@ -22,8 +25,13 @@ export default DS.RESTAdapter.extend({
});
}
return new DS.InvalidError(errors);
+ } else if (jqXHR && jqXHR.status === 500) {
+ var response = Ember.$.parseJSON(jqXHR.responseText);
+ if (response.error !== undefined) {
+ return new DS.InvalidError(response.error);
+ }
} else {
return error;
}
- }
+ },
});
diff --git a/app/pods/components/species-details/component.js b/app/pods/components/species-details/component.js
deleted file mode 100644
index 6070141..0000000
--- a/app/pods/components/species-details/component.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import Ember from 'ember';
-import userCanEdit from '../../../utils/user-can-edit';
-
-export default Ember.Component.extend({
- classNames: ['grid-1'],
- isEditing: false,
-
- canEdit: function() {
- return userCanEdit(this.get('session.currentUser'), this.get('species.createdBy'));
- }.property('session.currentUser', 'species.createdBy').readOnly(),
-
- actions: {
- save: function() {
- this.sendAction('save');
- },
- cancel: function() {
- this.sendAction('cancel');
- },
- }
-});
diff --git a/app/pods/components/species-details/template.hbs b/app/pods/components/species-details/template.hbs
deleted file mode 100644
index 813ada2..0000000
--- a/app/pods/components/species-details/template.hbs
+++ /dev/null
@@ -1,89 +0,0 @@
-
-
-
diff --git a/app/pods/species/edit/controller.js b/app/pods/species/edit/controller.js
new file mode 100644
index 0000000..d0925e2
--- /dev/null
+++ b/app/pods/species/edit/controller.js
@@ -0,0 +1,18 @@
+import Ember from 'ember';
+
+export default Ember.Controller.extend({
+ actions: {
+ save: function() {
+ let species = this.get('species');
+ if (species.get('isDirty')) {
+ species.save().then((species) => {
+ this.transitionToRoute('species.show', species.get('id'));
+ }, (err) => {
+ this.get('flashMessages').error(err.message);
+ });
+ } else {
+ this.transitionToRoute('species.show', species.get('id'));
+ }
+ },
+ }
+});
diff --git a/app/pods/species/edit/route.js b/app/pods/species/edit/route.js
new file mode 100644
index 0000000..b73792b
--- /dev/null
+++ b/app/pods/species/edit/route.js
@@ -0,0 +1,14 @@
+import Ember from 'ember';
+import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
+
+export default Ember.Route.extend(AuthenticatedRouteMixin, {
+ model: function(params) {
+ return Ember.RSVP.hash({
+ species: this.store.find('species', params.species_id),
+ });
+ },
+
+ setupController: function(controller, model) {
+ controller.setProperties(model);
+ },
+});
diff --git a/app/pods/species/edit/template.hbs b/app/pods/species/edit/template.hbs
new file mode 100644
index 0000000..39d135d
--- /dev/null
+++ b/app/pods/species/edit/template.hbs
@@ -0,0 +1,37 @@
+
+
+
+ Save
+
diff --git a/app/pods/species/index/route.js b/app/pods/species/index/route.js
index d2ab490..b0968ba 100644
--- a/app/pods/species/index/route.js
+++ b/app/pods/species/index/route.js
@@ -5,10 +5,11 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
model: function() {
return Ember.RSVP.hash({
species: this.store.findAll('species'),
+ strains: this.store.findAll('strain'),
});
},
- setupController: function(controller, model) {
- controller.setProperties(model);
+ setupController: function(controller, models) {
+ controller.setProperties(models);
},
});
diff --git a/app/pods/species/index/template.hbs b/app/pods/species/index/template.hbs
index 00454fb..225fa79 100644
--- a/app/pods/species/index/template.hbs
+++ b/app/pods/species/index/template.hbs
@@ -11,17 +11,18 @@
- {{#each sortedSpecies as |row|}}
+ {{#each sortedSpecies as |species|}}
- {{#link-to 'species.show' row}}
- {{row.speciesName}}
+ {{!-- use species.id to call show model hook --}}
+ {{#link-to 'species.show' species.id}}
+ {{species.speciesName}}
{{/link-to}}
|
- {{#each row.strains as |strain index|}}
+ {{#each species.strains as |strain index|}}
{{if index ","}}
{{#link-to 'strains.show' strain.id}}
{{{strain.strainNameMU}}}
diff --git a/app/pods/species/show/route.js b/app/pods/species/show/route.js
index b3f843f..b73792b 100644
--- a/app/pods/species/show/route.js
+++ b/app/pods/species/show/route.js
@@ -1,4 +1,14 @@
import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
-export default Ember.Route.extend(AuthenticatedRouteMixin, {});
+export default Ember.Route.extend(AuthenticatedRouteMixin, {
+ model: function(params) {
+ return Ember.RSVP.hash({
+ species: this.store.find('species', params.species_id),
+ });
+ },
+
+ setupController: function(controller, model) {
+ controller.setProperties(model);
+ },
+});
diff --git a/app/pods/species/show/template.hbs b/app/pods/species/show/template.hbs
index b242fc5..0d1c47a 100644
--- a/app/pods/species/show/template.hbs
+++ b/app/pods/species/show/template.hbs
@@ -1,7 +1,57 @@
-{{
- species-details
- species=model
- isEditing=isEditing
- save="save"
- cancel="cancel"
-}}
+
+
+
+
+
diff --git a/app/router.js b/app/router.js
index 27112b6..6f43b21 100644
--- a/app/router.js
+++ b/app/router.js
@@ -15,6 +15,7 @@ Router.map(function() {
this.route('species', function() {
this.route('new');
this.route('show', { path: ':species_id' });
+ this.route('edit', { path: ':species_id/edit' });
});
this.route('strains', function() {
this.route('new');
From 9aed8589825f2b8f24a0a7542a16478cf9f62fce Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 7 Jul 2015 07:30:48 -0800
Subject: [PATCH 03/12] Continuing with species refactor
---
app/pods/application/adapter.js | 5 ---
.../forms/species-form/component.js | 12 ++++++
.../forms/species-form/template.hbs | 42 ++++++++++++++++++
app/pods/species/edit/controller.js | 15 ++++++-
app/pods/species/edit/template.hbs | 43 +++----------------
app/pods/species/new/controller.js | 23 +++++++---
app/pods/species/new/route.js | 14 +++---
app/pods/species/new/template.hbs | 5 +--
8 files changed, 99 insertions(+), 60 deletions(-)
create mode 100644 app/pods/components/forms/species-form/component.js
create mode 100644 app/pods/components/forms/species-form/template.hbs
diff --git a/app/pods/application/adapter.js b/app/pods/application/adapter.js
index c4b405b..bb89c25 100644
--- a/app/pods/application/adapter.js
+++ b/app/pods/application/adapter.js
@@ -25,11 +25,6 @@ export default DS.RESTAdapter.extend({
});
}
return new DS.InvalidError(errors);
- } else if (jqXHR && jqXHR.status === 500) {
- var response = Ember.$.parseJSON(jqXHR.responseText);
- if (response.error !== undefined) {
- return new DS.InvalidError(response.error);
- }
} else {
return error;
}
diff --git a/app/pods/components/forms/species-form/component.js b/app/pods/components/forms/species-form/component.js
new file mode 100644
index 0000000..0e5912c
--- /dev/null
+++ b/app/pods/components/forms/species-form/component.js
@@ -0,0 +1,12 @@
+import Ember from 'ember';
+
+export default Ember.Component.extend({
+ actions: {
+ save: function() {
+ this.sendAction('save');
+ },
+ cancel: function() {
+ this.sendAction('cancel');
+ },
+ }
+});
diff --git a/app/pods/components/forms/species-form/template.hbs b/app/pods/components/forms/species-form/template.hbs
new file mode 100644
index 0000000..fda54bc
--- /dev/null
+++ b/app/pods/components/forms/species-form/template.hbs
@@ -0,0 +1,42 @@
+
+
+{{#if species.isDirty}}
+
+ Save
+
+{{/if}}
+
+ Cancel
+
diff --git a/app/pods/species/edit/controller.js b/app/pods/species/edit/controller.js
index d0925e2..ca6b05f 100644
--- a/app/pods/species/edit/controller.js
+++ b/app/pods/species/edit/controller.js
@@ -4,15 +4,26 @@ export default Ember.Controller.extend({
actions: {
save: function() {
let species = this.get('species');
+
if (species.get('isDirty')) {
species.save().then((species) => {
this.transitionToRoute('species.show', species.get('id'));
}, (err) => {
- this.get('flashMessages').error(err.message);
+ this.get('flashMessages').error(err.responseJSON.error);
});
} else {
this.transitionToRoute('species.show', species.get('id'));
}
},
- }
+
+ cancel: function() {
+ let species = this.get('species');
+
+ species.get('errors').clear();
+ species.rollback();
+
+ this.transitionToRoute('species.show', species.get('id'));
+ },
+
+ },
});
diff --git a/app/pods/species/edit/template.hbs b/app/pods/species/edit/template.hbs
index 39d135d..6a8db9b 100644
--- a/app/pods/species/edit/template.hbs
+++ b/app/pods/species/edit/template.hbs
@@ -1,37 +1,6 @@
-
-
-
- Save
-
+{{
+ forms/species-form
+ species=species
+ save="save"
+ cancel="cancel"
+}}
diff --git a/app/pods/species/new/controller.js b/app/pods/species/new/controller.js
index a289976..2781a83 100644
--- a/app/pods/species/new/controller.js
+++ b/app/pods/species/new/controller.js
@@ -1,21 +1,30 @@
import Ember from 'ember';
export default Ember.Controller.extend({
- isEditing: true,
actions: {
save: function() {
- var species = this.get('model');
+ let species = this.get('species');
+
if (species.get('isDirty')) {
- species.save();
+ species.save().then((species) => {
+ this.transitionToRoute('species.show', species.get('id'));
+ }, (err) => {
+ this.get('flashMessages').error(err.responseJSON.error);
+ });
+ } else {
+ this.transitionToRoute('species.index');
}
- this.transitionToRoute('species.index');
},
+
cancel: function() {
- var species = this.get('model');
+ let species = this.get('species');
+
if (species.get('isNew')) {
species.deleteRecord();
}
+
this.transitionToRoute('species.index');
- }
- }
+ },
+
+ },
});
diff --git a/app/pods/species/new/route.js b/app/pods/species/new/route.js
index b9f79eb..e816ab5 100644
--- a/app/pods/species/new/route.js
+++ b/app/pods/species/new/route.js
@@ -3,11 +3,13 @@ import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixi
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model: function() {
- return this.store.createRecord('species');
+ return Ember.RSVP.hash({
+ species: this.store.createRecord('species'),
+ });
},
- actions: {
- cancelSpecies: function() {
- this.transitionTo('species.index');
- }
- }
+
+ setupController: function(controller, model) {
+ controller.setProperties(model);
+ },
+
});
diff --git a/app/pods/species/new/template.hbs b/app/pods/species/new/template.hbs
index f38417f..6a8db9b 100644
--- a/app/pods/species/new/template.hbs
+++ b/app/pods/species/new/template.hbs
@@ -1,7 +1,6 @@
{{
- species-details
- species=model
- isEditing=true
+ forms/species-form
+ species=species
save="save"
cancel="cancel"
}}
From 4bbf9318533cee95ac94964e4428b7945f0b8b78 Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 7 Jul 2015 08:38:05 -0800
Subject: [PATCH 04/12] Going back to model reference
---
app/pods/species/edit/controller.js | 4 ++--
app/pods/species/edit/route.js | 12 +-----------
app/pods/species/edit/template.hbs | 2 +-
app/pods/species/index/template.hbs | 3 +--
app/pods/species/new/controller.js | 4 ++--
app/pods/species/new/route.js | 8 +-------
app/pods/species/new/template.hbs | 2 +-
app/pods/species/show/controller.js | 22 ----------------------
app/pods/species/show/route.js | 12 +-----------
app/pods/species/show/template.hbs | 14 +++++++-------
10 files changed, 17 insertions(+), 66 deletions(-)
delete mode 100644 app/pods/species/show/controller.js
diff --git a/app/pods/species/edit/controller.js b/app/pods/species/edit/controller.js
index ca6b05f..463392e 100644
--- a/app/pods/species/edit/controller.js
+++ b/app/pods/species/edit/controller.js
@@ -3,7 +3,7 @@ import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
save: function() {
- let species = this.get('species');
+ let species = this.get('model');
if (species.get('isDirty')) {
species.save().then((species) => {
@@ -17,7 +17,7 @@ export default Ember.Controller.extend({
},
cancel: function() {
- let species = this.get('species');
+ let species = this.get('model');
species.get('errors').clear();
species.rollback();
diff --git a/app/pods/species/edit/route.js b/app/pods/species/edit/route.js
index b73792b..b3f843f 100644
--- a/app/pods/species/edit/route.js
+++ b/app/pods/species/edit/route.js
@@ -1,14 +1,4 @@
import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
-export default Ember.Route.extend(AuthenticatedRouteMixin, {
- model: function(params) {
- return Ember.RSVP.hash({
- species: this.store.find('species', params.species_id),
- });
- },
-
- setupController: function(controller, model) {
- controller.setProperties(model);
- },
-});
+export default Ember.Route.extend(AuthenticatedRouteMixin, {});
diff --git a/app/pods/species/edit/template.hbs b/app/pods/species/edit/template.hbs
index 6a8db9b..5c6c82f 100644
--- a/app/pods/species/edit/template.hbs
+++ b/app/pods/species/edit/template.hbs
@@ -1,6 +1,6 @@
{{
forms/species-form
- species=species
+ species=model
save="save"
cancel="cancel"
}}
diff --git a/app/pods/species/index/template.hbs b/app/pods/species/index/template.hbs
index 225fa79..12cd6d8 100644
--- a/app/pods/species/index/template.hbs
+++ b/app/pods/species/index/template.hbs
@@ -15,8 +15,7 @@
- {{!-- use species.id to call show model hook --}}
- {{#link-to 'species.show' species.id}}
+ {{#link-to 'species.show' species}}
{{species.speciesName}}
{{/link-to}}
diff --git a/app/pods/species/new/controller.js b/app/pods/species/new/controller.js
index 2781a83..568648f 100644
--- a/app/pods/species/new/controller.js
+++ b/app/pods/species/new/controller.js
@@ -3,7 +3,7 @@ import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
save: function() {
- let species = this.get('species');
+ let species = this.get('model');
if (species.get('isDirty')) {
species.save().then((species) => {
@@ -17,7 +17,7 @@ export default Ember.Controller.extend({
},
cancel: function() {
- let species = this.get('species');
+ let species = this.get('model');
if (species.get('isNew')) {
species.deleteRecord();
diff --git a/app/pods/species/new/route.js b/app/pods/species/new/route.js
index e816ab5..98741c6 100644
--- a/app/pods/species/new/route.js
+++ b/app/pods/species/new/route.js
@@ -3,13 +3,7 @@ import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixi
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model: function() {
- return Ember.RSVP.hash({
- species: this.store.createRecord('species'),
- });
- },
-
- setupController: function(controller, model) {
- controller.setProperties(model);
+ return this.store.createRecord('species');
},
});
diff --git a/app/pods/species/new/template.hbs b/app/pods/species/new/template.hbs
index 6a8db9b..5c6c82f 100644
--- a/app/pods/species/new/template.hbs
+++ b/app/pods/species/new/template.hbs
@@ -1,6 +1,6 @@
{{
forms/species-form
- species=species
+ species=model
save="save"
cancel="cancel"
}}
diff --git a/app/pods/species/show/controller.js b/app/pods/species/show/controller.js
deleted file mode 100644
index 2d5a523..0000000
--- a/app/pods/species/show/controller.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import Ember from 'ember';
-
-export default Ember.Controller.extend({
- isEditing: false,
- actions: {
- save: function() {
- var species = this.get('model');
- if (species.get('isDirty')) {
- species.save();
- }
- this.toggleProperty('isEditing');
- },
- cancel: function() {
- if (this.get('isEditing')) {
- var species = this.get('model');
- species.get('errors').clear();
- species.rollback();
- }
- this.toggleProperty('isEditing');
- }
- }
-});
diff --git a/app/pods/species/show/route.js b/app/pods/species/show/route.js
index b73792b..b3f843f 100644
--- a/app/pods/species/show/route.js
+++ b/app/pods/species/show/route.js
@@ -1,14 +1,4 @@
import Ember from 'ember';
import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
-export default Ember.Route.extend(AuthenticatedRouteMixin, {
- model: function(params) {
- return Ember.RSVP.hash({
- species: this.store.find('species', params.species_id),
- });
- },
-
- setupController: function(controller, model) {
- controller.setProperties(model);
- },
-});
+export default Ember.Route.extend(AuthenticatedRouteMixin, {});
diff --git a/app/pods/species/show/template.hbs b/app/pods/species/show/template.hbs
index 0d1c47a..11b72ba 100644
--- a/app/pods/species/show/template.hbs
+++ b/app/pods/species/show/template.hbs
@@ -2,7 +2,7 @@
@@ -31,7 +31,7 @@
- Etymology
-
- {{species.etymology}}
+ {{model.etymology}}
@@ -40,15 +40,15 @@
- Record Created
- - {{null-time species.createdAt 'LL'}}
+ - {{null-time model.createdAt 'LL'}}
- Record Updated
- - {{null-time species.updatedAt 'LL'}}
+ - {{null-time model.updatedAt 'LL'}}
- Record Deleted
- - {{null-time species.deletedAt 'LL'}}
+ - {{null-time model.deletedAt 'LL'}}
From ae7f3bdafaa01c5492ee51fc22729d397d531b67 Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 7 Jul 2015 09:56:49 -0800
Subject: [PATCH 05/12] Test-drive metadata
---
app/pods/components/add-button/component.js | 9 ---------
app/pods/species/index/controller.js | 5 +++++
app/pods/species/index/template.hbs | 2 +-
3 files changed, 6 insertions(+), 10 deletions(-)
delete mode 100644 app/pods/components/add-button/component.js
diff --git a/app/pods/components/add-button/component.js b/app/pods/components/add-button/component.js
deleted file mode 100644
index 8075297..0000000
--- a/app/pods/components/add-button/component.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import Ember from 'ember';
-import userCanAdd from '../../../utils/user-can-add';
-
-export default Ember.Component.extend({
- canAdd: function() {
- let user_role = this.get('session.currentUser.role');
- return userCanAdd(user_role);
- }.property('session.currentUser.role').readOnly(),
-});
diff --git a/app/pods/species/index/controller.js b/app/pods/species/index/controller.js
index a28a11f..82a022e 100644
--- a/app/pods/species/index/controller.js
+++ b/app/pods/species/index/controller.js
@@ -3,4 +3,9 @@ import Ember from 'ember';
export default Ember.Controller.extend({
sortParams: ['speciesName', 'strainCount'],
sortedSpecies: Ember.computed.sort('species', 'sortParams'),
+
+ metaData: function() {
+ return this.store.metadataFor('species');
+ }.property('model.isLoaded').readOnly(),
+
});
diff --git a/app/pods/species/index/template.hbs b/app/pods/species/index/template.hbs
index 12cd6d8..4f34a27 100644
--- a/app/pods/species/index/template.hbs
+++ b/app/pods/species/index/template.hbs
@@ -1,7 +1,7 @@
{{genus-name}} Species
Total species: {{species.length}}
-{{add-button label="Add Species" link="species.new"}}
+{{add-button label="Add Species" link="species.new" canAdd=metaData.canAdd}}
From 38894d94e797dadcf43f23862e7da6b2675c6cef Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 7 Jul 2015 11:09:41 -0800
Subject: [PATCH 06/12] Sideload strains in species list
---
app/models/species.js | 2 +-
app/models/strain.js | 2 +-
app/pods/species/index/controller.js | 2 +-
app/pods/species/index/route.js | 11 ++---------
4 files changed, 5 insertions(+), 12 deletions(-)
diff --git a/app/models/species.js b/app/models/species.js
index fee135a..b6d509a 100644
--- a/app/models/species.js
+++ b/app/models/species.js
@@ -7,7 +7,7 @@ export default DS.Model.extend({
typeSpecies : DS.attr('boolean'),
etymology : DS.attr('string'),
genusName : DS.attr('string', { defaultValue: config.APP.genus }),
- strains : DS.hasMany('strain', { async: true }),
+ strains : DS.hasMany('strain', { async: false }),
totalStrains: DS.attr('number'),
createdAt : DS.attr('date'),
updatedAt : DS.attr('date'),
diff --git a/app/models/strain.js b/app/models/strain.js
index 7f69f45..49344cf 100644
--- a/app/models/strain.js
+++ b/app/models/strain.js
@@ -3,7 +3,7 @@ import Ember from 'ember';
export default DS.Model.extend({
measurements : DS.hasMany('measurements', { async: true }),
- species : DS.belongsTo('species', { async: true }),
+ species : DS.belongsTo('species', { async: false }),
strainName : DS.attr('string'),
typeStrain : DS.attr('boolean'),
accessionNumbers : DS.attr('string'),
diff --git a/app/pods/species/index/controller.js b/app/pods/species/index/controller.js
index 82a022e..2714e73 100644
--- a/app/pods/species/index/controller.js
+++ b/app/pods/species/index/controller.js
@@ -2,7 +2,7 @@ import Ember from 'ember';
export default Ember.Controller.extend({
sortParams: ['speciesName', 'strainCount'],
- sortedSpecies: Ember.computed.sort('species', 'sortParams'),
+ sortedSpecies: Ember.computed.sort('model', 'sortParams'),
metaData: function() {
return this.store.metadataFor('species');
diff --git a/app/pods/species/index/route.js b/app/pods/species/index/route.js
index b0968ba..6b02e0e 100644
--- a/app/pods/species/index/route.js
+++ b/app/pods/species/index/route.js
@@ -3,13 +3,6 @@ import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixi
export default Ember.Route.extend(AuthenticatedRouteMixin, {
model: function() {
- return Ember.RSVP.hash({
- species: this.store.findAll('species'),
- strains: this.store.findAll('strain'),
- });
- },
-
- setupController: function(controller, models) {
- controller.setProperties(models);
- },
+ return this.store.findAll('species');
+ }
});
From 583d7ca0dbd4cd8e446d8f09fee7389b1ba2365c Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 7 Jul 2015 14:28:06 -0800
Subject: [PATCH 07/12] SQUASH
---
app/pods/species/index/template.hbs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/pods/species/index/template.hbs b/app/pods/species/index/template.hbs
index 4f34a27..6fc2993 100644
--- a/app/pods/species/index/template.hbs
+++ b/app/pods/species/index/template.hbs
@@ -1,5 +1,5 @@
{{genus-name}} Species
-Total species: {{species.length}}
+Total species: {{model.length}}
{{add-button label="Add Species" link="species.new" canAdd=metaData.canAdd}}
From 3436989a89e5aa76d298a4fae97c54e768f9f210 Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 7 Jul 2015 14:28:16 -0800
Subject: [PATCH 08/12] Edit species
---
app/pods/species/show/controller.js | 14 ++++++++++++++
app/pods/species/show/template.hbs | 6 ++++++
2 files changed, 20 insertions(+)
create mode 100644 app/pods/species/show/controller.js
diff --git a/app/pods/species/show/controller.js b/app/pods/species/show/controller.js
new file mode 100644
index 0000000..d9625f4
--- /dev/null
+++ b/app/pods/species/show/controller.js
@@ -0,0 +1,14 @@
+import Ember from 'ember';
+
+export default Ember.Controller.extend({
+ userCanEdit: function() {
+ let meta = this.store.metadataFor('species');
+ let id = this.get('model.id');
+
+ if (meta.canEdit.indexOf( +id ) === -1) {
+ return false
+ }
+ return true;
+ }.property('model.isLoaded').readOnly(),
+
+});
diff --git a/app/pods/species/show/template.hbs b/app/pods/species/show/template.hbs
index 11b72ba..e892234 100644
--- a/app/pods/species/show/template.hbs
+++ b/app/pods/species/show/template.hbs
@@ -55,3 +55,9 @@
+{{#if userCanEdit}}
+
+ {{#link-to 'species.edit' model class="button-gray smaller"}}
+ Edit
+ {{/link-to}}
+{{/if}}
From 9e8b02ac90f2ab86af5e6caaba107c426b1f8d4d Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 7 Jul 2015 14:38:36 -0800
Subject: [PATCH 09/12] Overflow table
---
app/pods/compare/template.hbs | 2 +-
app/styles/app.css | 5 +++++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/app/pods/compare/template.hbs b/app/pods/compare/template.hbs
index 8724242..a4466f4 100644
--- a/app/pods/compare/template.hbs
+++ b/app/pods/compare/template.hbs
@@ -12,7 +12,7 @@
Please select one or more strains and one or more characteristics.
{{else}}
-
+
diff --git a/app/styles/app.css b/app/styles/app.css
index ff245dd..2a02ea6 100644
--- a/app/styles/app.css
+++ b/app/styles/app.css
@@ -1,3 +1,8 @@
+.overflow-div {
+ white-space: nowrap;
+ overflow: auto;
+}
+
.measurements-container {
padding: 2em 0em 0em 0em;
}
From 14a678092e6974547edc8e440461699e29d071a4 Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 14 Jul 2015 08:05:01 -0800
Subject: [PATCH 10/12] Missed in merge
---
app/pods/species/edit/controller.js | 29 ---------------------------
app/pods/species/edit/route.js | 4 ----
app/pods/species/edit/template.hbs | 6 ------
app/pods/species/index/controller.js | 11 ----------
app/pods/species/index/route.js | 8 --------
app/pods/species/new/controller.js | 30 ----------------------------
app/pods/species/show/controller.js | 14 -------------
7 files changed, 102 deletions(-)
delete mode 100644 app/pods/species/edit/controller.js
delete mode 100644 app/pods/species/edit/route.js
delete mode 100644 app/pods/species/edit/template.hbs
delete mode 100644 app/pods/species/index/controller.js
delete mode 100644 app/pods/species/index/route.js
delete mode 100644 app/pods/species/new/controller.js
delete mode 100644 app/pods/species/show/controller.js
diff --git a/app/pods/species/edit/controller.js b/app/pods/species/edit/controller.js
deleted file mode 100644
index 463392e..0000000
--- a/app/pods/species/edit/controller.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import Ember from 'ember';
-
-export default Ember.Controller.extend({
- actions: {
- save: function() {
- let species = this.get('model');
-
- if (species.get('isDirty')) {
- species.save().then((species) => {
- this.transitionToRoute('species.show', species.get('id'));
- }, (err) => {
- this.get('flashMessages').error(err.responseJSON.error);
- });
- } else {
- this.transitionToRoute('species.show', species.get('id'));
- }
- },
-
- cancel: function() {
- let species = this.get('model');
-
- species.get('errors').clear();
- species.rollback();
-
- this.transitionToRoute('species.show', species.get('id'));
- },
-
- },
-});
diff --git a/app/pods/species/edit/route.js b/app/pods/species/edit/route.js
deleted file mode 100644
index b3f843f..0000000
--- a/app/pods/species/edit/route.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import Ember from 'ember';
-import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
-
-export default Ember.Route.extend(AuthenticatedRouteMixin, {});
diff --git a/app/pods/species/edit/template.hbs b/app/pods/species/edit/template.hbs
deleted file mode 100644
index 5c6c82f..0000000
--- a/app/pods/species/edit/template.hbs
+++ /dev/null
@@ -1,6 +0,0 @@
-{{
- forms/species-form
- species=model
- save="save"
- cancel="cancel"
-}}
diff --git a/app/pods/species/index/controller.js b/app/pods/species/index/controller.js
deleted file mode 100644
index 2714e73..0000000
--- a/app/pods/species/index/controller.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import Ember from 'ember';
-
-export default Ember.Controller.extend({
- sortParams: ['speciesName', 'strainCount'],
- sortedSpecies: Ember.computed.sort('model', 'sortParams'),
-
- metaData: function() {
- return this.store.metadataFor('species');
- }.property('model.isLoaded').readOnly(),
-
-});
diff --git a/app/pods/species/index/route.js b/app/pods/species/index/route.js
deleted file mode 100644
index 6b02e0e..0000000
--- a/app/pods/species/index/route.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import Ember from 'ember';
-import AuthenticatedRouteMixin from 'simple-auth/mixins/authenticated-route-mixin';
-
-export default Ember.Route.extend(AuthenticatedRouteMixin, {
- model: function() {
- return this.store.findAll('species');
- }
-});
diff --git a/app/pods/species/new/controller.js b/app/pods/species/new/controller.js
deleted file mode 100644
index 568648f..0000000
--- a/app/pods/species/new/controller.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import Ember from 'ember';
-
-export default Ember.Controller.extend({
- actions: {
- save: function() {
- let species = this.get('model');
-
- if (species.get('isDirty')) {
- species.save().then((species) => {
- this.transitionToRoute('species.show', species.get('id'));
- }, (err) => {
- this.get('flashMessages').error(err.responseJSON.error);
- });
- } else {
- this.transitionToRoute('species.index');
- }
- },
-
- cancel: function() {
- let species = this.get('model');
-
- if (species.get('isNew')) {
- species.deleteRecord();
- }
-
- this.transitionToRoute('species.index');
- },
-
- },
-});
diff --git a/app/pods/species/show/controller.js b/app/pods/species/show/controller.js
deleted file mode 100644
index d9625f4..0000000
--- a/app/pods/species/show/controller.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import Ember from 'ember';
-
-export default Ember.Controller.extend({
- userCanEdit: function() {
- let meta = this.store.metadataFor('species');
- let id = this.get('model.id');
-
- if (meta.canEdit.indexOf( +id ) === -1) {
- return false
- }
- return true;
- }.property('model.isLoaded').readOnly(),
-
-});
From c17abc68294b33ffbd37e8d6baaff89ed75f7ac8 Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Tue, 20 Oct 2015 18:16:41 -0700
Subject: [PATCH 11/12] Missing pod prefix
---
config/environment.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/config/environment.js b/config/environment.js
index a6f5a79..2a35933 100644
--- a/config/environment.js
+++ b/config/environment.js
@@ -14,6 +14,7 @@ module.exports = function(environment) {
APP: {
genus: 'clostridium',
},
+ podModulePrefix: 'clostridiumdotinfo/pods',
flashMessageDefaults: {
sticky: true,
type: 'error',
From 6bdbacf978c47381113c1e5b34874adca2fb43ec Mon Sep 17 00:00:00 2001
From: Matthew Dillon
Date: Wed, 4 Nov 2015 20:32:22 -0700
Subject: [PATCH 12/12] Tweak mirage for clostridium
---
app/mirage/config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/mirage/config.js b/app/mirage/config.js
index 79cee5e..c479b89 100644
--- a/app/mirage/config.js
+++ b/app/mirage/config.js
@@ -7,7 +7,7 @@ export default function() {
export function testConfig() {
this.urlPrefix = 'https://bactdb-test.herokuapp.com';
- this.namespace = '/api/hymenobacter';
+ this.namespace = '/api/clostridium';
this.timing = 0;
this.get('/users/:id');
| |