Cleaning up new species a bit
This commit is contained in:
		
							parent
							
								
									b58e86a3fd
								
							
						
					
					
						commit
						886fda6843
					
				
					 9 changed files with 82 additions and 26 deletions
				
			
		| 
						 | 
				
			
			@ -3,18 +3,12 @@ import Ember from 'ember';
 | 
			
		|||
export default Ember.Component.extend({
 | 
			
		||||
  classNames: ['grid-1'],
 | 
			
		||||
  isEditing: false,
 | 
			
		||||
  isNew: false,
 | 
			
		||||
  actions: {
 | 
			
		||||
    editSpecies: function() {
 | 
			
		||||
      this.get('species').get('errors').clear();
 | 
			
		||||
      if (this.get('isNew')) {
 | 
			
		||||
        this.get('species').destroyRecord().then(this.sendAction());
 | 
			
		||||
      }
 | 
			
		||||
      this.toggleProperty('isEditing');
 | 
			
		||||
      this.get('species').rollback();
 | 
			
		||||
    save: function() {
 | 
			
		||||
      this.sendAction('save');
 | 
			
		||||
    },
 | 
			
		||||
    cancel: function() {
 | 
			
		||||
      this.sendAction('cancel');
 | 
			
		||||
    },
 | 
			
		||||
    saveSpecies: function() {
 | 
			
		||||
      this.get('species').save().then(this.toggleProperty('isEditing'));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										5
									
								
								app/controllers/species/index.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								app/controllers/species/index.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
import SortableController from '../sortable';
 | 
			
		||||
 | 
			
		||||
export default SortableController.extend({
 | 
			
		||||
  sortBy: 'speciesName',
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										21
									
								
								app/controllers/species/new.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								app/controllers/species/new.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,21 @@
 | 
			
		|||
import Ember from 'ember';
 | 
			
		||||
 | 
			
		||||
export default Ember.Controller.extend({
 | 
			
		||||
  isEditing: true,
 | 
			
		||||
  actions: {
 | 
			
		||||
    save: function() {
 | 
			
		||||
      var species = this.get('model');
 | 
			
		||||
      if (species.get('isDirty')) {
 | 
			
		||||
        species.save();
 | 
			
		||||
      }
 | 
			
		||||
      this.transitionToRoute('species.index');
 | 
			
		||||
    },
 | 
			
		||||
    cancel: function() {
 | 
			
		||||
      var species = this.get('model');
 | 
			
		||||
      if (species.get('isNew')) {
 | 
			
		||||
        species.deleteRecord();
 | 
			
		||||
      }
 | 
			
		||||
      this.transitionToRoute('species.index');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										22
									
								
								app/controllers/species/show.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								app/controllers/species/show.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
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');
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			@ -22,10 +22,14 @@
 | 
			
		|||
            {{/link-to}}
 | 
			
		||||
          {{/each}}
 | 
			
		||||
          {{#if (can "edit species" species)}}
 | 
			
		||||
            <br>
 | 
			
		||||
            {{#link-to 'strains.new' class="button-gray smaller"}}
 | 
			
		||||
              Add Strain
 | 
			
		||||
            {{/link-to}}
 | 
			
		||||
            {{#if species.isNew}}
 | 
			
		||||
              PENDING SAVE
 | 
			
		||||
            {{else}}
 | 
			
		||||
              <br>
 | 
			
		||||
              {{#link-to 'strains.new' class="button-gray smaller"}}
 | 
			
		||||
                Add Strain
 | 
			
		||||
              {{/link-to}}
 | 
			
		||||
            {{/if}}
 | 
			
		||||
          {{/if}}
 | 
			
		||||
        </dd>
 | 
			
		||||
      </dl>
 | 
			
		||||
| 
						 | 
				
			
			@ -78,11 +82,11 @@
 | 
			
		|||
      <div class="grid-4">
 | 
			
		||||
        <div class="span-1">
 | 
			
		||||
          {{! Does nothing ATM }}
 | 
			
		||||
          <a {{bind-attr class=":smaller isEditing:button-red:button-gray"}} {{action 'editSpecies'}}>
 | 
			
		||||
          <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 'saveSpecies'}}>
 | 
			
		||||
            <a class="button-green smaller" {{action 'save'}}>
 | 
			
		||||
              Save
 | 
			
		||||
            </a>
 | 
			
		||||
          {{/if}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1 +1,7 @@
 | 
			
		|||
{{species/species-details species=model isEditing=true isNew=true action="cancelSpecies"}}
 | 
			
		||||
{{
 | 
			
		||||
  species/species-details
 | 
			
		||||
  species=model
 | 
			
		||||
  isEditing=true
 | 
			
		||||
  save="save"
 | 
			
		||||
  cancel="cancel"
 | 
			
		||||
}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1 +1,7 @@
 | 
			
		|||
{{species/species-details species=model}}
 | 
			
		||||
{{
 | 
			
		||||
  species/species-details
 | 
			
		||||
  species=model
 | 
			
		||||
  isEditing=isEditing
 | 
			
		||||
  save="save"
 | 
			
		||||
  cancel="cancel"
 | 
			
		||||
}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue