Pulling stuff back out of strain component

This commit is contained in:
Matthew Dillon 2015-06-03 13:38:40 -08:00
parent 7260b95937
commit 033ff530d2
9 changed files with 67 additions and 24 deletions

View file

@ -3,18 +3,12 @@ import Ember from 'ember';
export default Ember.Component.extend({
classNames: ['grid-1'],
isEditing: false,
isNew: false,
actions: {
editStrain: function() {
this.get('strain').get('errors').clear();
if (this.get('isNew')) {
this.get('strain').destroyRecord().then(this.sendAction());
}
this.toggleProperty('isEditing');
this.get('strain').rollback();
save: function() {
this.sendAction('save');
},
cancel: function() {
this.sendAction('cancel');
},
saveStrain: function() {
this.get('strain').save().then(this.toggleProperty('isEditing'));
}
}
});

View file

@ -0,0 +1,21 @@
import Ember from 'ember';
export default Ember.Controller.extend({
isEditing: true,
actions: {
save: function() {
var strain = this.get('strain');
if (strain.get('isDirty')) {
strain.save();
}
this.transitionToRoute('strains.index');
},
cancel: function() {
var strain = this.get('strain');
if (strain.get('isNew')) {
strain.deleteRecord();
}
this.transitionToRoute('strains.index');
}
}
});

View file

@ -0,0 +1,19 @@
import Ember from 'ember';
export default Ember.Controller.extend({
isEditing: false,
actions: {
save: function() {
var strain = this.get('strain');
if (strain.get('isDirty')) {
strain.save();
}
this.toggleProperty('isEditing');
},
cancel: function() {
this.get('strain').get('errors').clear();
this.get('strain').rollback();
this.toggleProperty('isEditing');
}
}
});

View file

@ -7,9 +7,7 @@ export default Ember.Route.extend({
species: this.store.findAll('species')
});
},
actions: {
cancelStrain: function() {
this.transitionTo('strains.index');
}
}
setupController: function(controller, models) {
controller.setProperties(models);
},
});

View file

@ -6,5 +6,8 @@ export default Ember.Route.extend({
strain: this.store.find('strain', params.strain_id),
species: this.store.findAll('species')
});
}
},
setupController: function(controller, models) {
controller.setProperties(models);
},
});

View file

@ -21,6 +21,7 @@
{{/link-to}}
{{/each}}
{{#if (can "edit species" species)}}
<br>
{{#link-to 'strains.new' class="button-gray smaller"}}
Add Strain
{{/link-to}}

View file

@ -120,11 +120,11 @@
<div class="grid-4">
<div class="span-1">
{{! Does nothing ATM }}
<a {{bind-attr class=":smaller isEditing:button-red:button-gray"}} {{action 'editStrain'}}>
<a {{bind-attr class=":smaller isEditing:button-red:button-gray"}} {{action 'cancel'}}>
{{#if isEditing}}Cancel{{else}}Edit{{/if}}
</a>
{{#if isEditing}}
<a class="button-green smaller" {{action 'saveStrain'}}>
<a class="button-green smaller" {{action 'save'}}>
Save
</a>
{{/if}}

View file

@ -1,8 +1,8 @@
{{
strains/strain-details
strain=model.strain
species=model.species
strain=strain
species=species
isEditing=true
isNew=true
action="cancelStrain"
save="save"
cancel="cancel"
}}

View file

@ -1,4 +1,11 @@
{{strains/strain-details strain=model.strain species=model.species}}
{{
strains/strain-details
strain=strain
species=species
isEditing=isEditing
save="save"
cancel="cancel"
}}
<div class="measurements-container">
{{outlet}}