ENH: Collection Edit (parity with reading) (#48)

This commit is contained in:
Matthew Ryan Dillon 2017-11-30 15:51:16 -07:00 committed by GitHub
parent bfae4422f4
commit cb3bc081a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 337 additions and 121 deletions

View file

@ -1,11 +1,10 @@
{{
collection/create-container
model=model
validations=CollectionValidations
projectOptions=projectOptions
studyLocationOptions=studyLocationOptions
collectionTypeOptions=collectionTypeOptions
collectionMethodOptions=collectionMethodOptions
validations=(hash
collection=CollectionValidations
collectionSpecies=CollectionSpeciesValidations)
options=options
onSave=(action 'onSave')
onCancel=(action 'onCancel')
}}

View file

@ -1,11 +1,10 @@
{{
collection/create-container
model=model
validations=CollectionValidations
projectOptions=projectOptions
studyLocationOptions=studyLocationOptions
collectionTypeOptions=collectionTypeOptions
collectionMethodOptions=collectionMethodOptions
validations=(hash
collection=CollectionValidations
collectionSpecies=CollectionSpeciesValidations)
options=options
onSave=(action 'onSave')
onCancel=(action 'onCancel')
}}

View file

@ -1,80 +1,150 @@
{{#crud-form
changeset=changeset
changesets=changesets
onSave=(action onSave)
onCancel=(action onCancel) as |f|
}}
<div class="well">
{{#f.content class='form'}}
{{#validated-field property='project' label='Project' changeset=changeset}}
{{#power-select
options=projectOptions
selected=changeset.project
onchange=(action (mut changeset.project))
searchField='name'
as |project|
}}
{{project.name}}
{{/power-select}}
{{/validated-field}}
<div class="row">
<div class="col-md-4">
<div class="well">
{{#f.content class='form'}}
{{#with changesets.model as |changeset|}}
{{#validated-field property='project' label='Project' changeset=changeset}}
{{#power-select
options=options.projects
selected=changeset.project
onchange=(action (mut changeset.project))
searchField='name'
as |project|
}}
{{project.name}}
{{/power-select}}
{{/validated-field}}
{{#validated-field property='studyLocation' label='Study location' changeset=changeset}}
{{#power-select
options=studyLocationOptions
selected=changeset.studyLocation
onchange=(action (mut changeset.studyLocation))
searchField='name'
as |studyLocation|
}}
{{studyLocation.name}}
{{/power-select}}
{{/validated-field}}
{{#validated-field property='adfgPermit' label='ADFG Permit' changeset=changeset}}
{{#power-select
options=options.adfgPermits
selected=changeset.adfgPermit
onchange=(action (mut changeset.adfgPermit))
searchField='name'
as |adfgPermit|
}}
{{adfgPermit.name}}
{{/power-select}}
{{/validated-field}}
{{#validated-field property='collectionType' label='Collection type' changeset=changeset}}
{{#power-select
options=collectionTypeOptions
selected=changeset.collectionType
onchange=(action (mut changeset.collectionType))
searchField='name'
as |collectionType|
}}
{{collectionType.name}}
{{/power-select}}
{{/validated-field}}
{{#validated-field property='studyLocation' label='Study location' changeset=changeset}}
{{#power-select
options=options.studyLocations
selected=changeset.studyLocation
onchange=(action (mut changeset.studyLocation))
searchField='name'
as |studyLocation|
}}
{{studyLocation.name}}
{{/power-select}}
{{/validated-field}}
{{#validated-field property='collectionMethod' label='Collection method' changeset=changeset}}
{{#power-select
options=collectionMethodOptions
selected=changeset.collectionMethod
onchange=(action (mut changeset.collectionMethod))
searchField='name'
as |collectionMethod|
}}
{{collectionMethod.name}}
{{/power-select}}
{{/validated-field}}
{{#validated-field property='collectionType' label='Collection type' changeset=changeset}}
{{#power-select
options=options.collectionTypes
selected=changeset.collectionType
onchange=(action (mut changeset.collectionType))
searchField='name'
as |collectionType|
}}
{{collectionType.name}}
{{/power-select}}
{{/validated-field}}
{{#validated-field property='numberOfTraps' label='Number of traps' changeset=changeset}}
{{input value=changeset.numberOfTraps type='number' class='form-control'}}
{{/validated-field}}
{{#validated-field property='collectionMethod' label='Collection method' changeset=changeset}}
{{#power-select
options=options.collectionMethods
selected=changeset.collectionMethod
onchange=(action (mut changeset.collectionMethod))
searchField='name'
as |collectionMethod|
}}
{{collectionMethod.name}}
{{/power-select}}
{{/validated-field}}
{{#validated-field property='collectionStartDate' label='Collection start date' changeset=changeset}}
{{input value=changeset.collectionStartDate type='date' class='form-control'}}
{{/validated-field}}
{{#validated-field property='numberOfTraps' label='Number of traps' changeset=changeset}}
{{input value=changeset.numberOfTraps type='number' class='form-control'}}
{{/validated-field}}
{{#validated-field property='collectionStartTime' label='Collection start time' changeset=changeset}}
{{input value=changeset.collectionStartTime type='time' class='form-control'}}
{{/validated-field}}
{{#validated-field property='collectionStartDate' label='Collection start date' changeset=changeset}}
{{input value=changeset.collectionStartDate type='date' class='form-control'}}
{{/validated-field}}
{{#validated-field property='collectionEndDate' label='Collection end date' changeset=changeset}}
{{input value=changeset.collectionEndDate type='date' class='form-control'}}
{{/validated-field}}
{{#validated-field property='collectionStartTime' label='Collection start time' changeset=changeset}}
{{input value=changeset.collectionStartTime type='time' class='form-control'}}
{{/validated-field}}
{{#validated-field property='collectionEndTime' label='Collection end time' changeset=changeset}}
{{input value=changeset.collectionEndTime type='time' class='form-control'}}
{{/validated-field}}
{{#validated-field property='collectionEndDate' label='Collection end date' changeset=changeset}}
{{input value=changeset.collectionEndDate type='date' class='form-control'}}
{{/validated-field}}
{{/f.content}}
{{f.save}} {{f.cancel}}
{{#validated-field property='collectionEndTime' label='Collection end time' changeset=changeset}}
{{input value=changeset.collectionEndTime type='time' class='form-control'}}
{{/validated-field}}
{{/with}}
{{/f.content}}
</div>
</div>
<div class="col-md-8">
<table class="table">
<caption>
Species / Count Info
{{action-button isSuccess=true isXSmall=true label='+' onClick=(action 'addCollectionSpecies')}}
</caption>
<thead>
<tr>
<th class="col-md-3">Species</th>
<th class="col-md-3">Count</th>
<th class="col-md-3">Count Estimated</th>
<th class="col-md-3">Sex</th>
<th class="col-md-1">Delete</th>
</tr>
</thead>
<tbody>
{{#each changesets.hasMany.collectionSpecies as |cs|}}
<tr class="form">
<td class="col-md-3">
{{#validated-field property='species' changeset=cs.changeset}}
{{#power-select
options=options.species
selected=cs.changeset.species
onchange=(action (mut cs.changeset.species))
searchField='commonName'
as |species|
}}
{{species.commonName}}
{{/power-select}}
{{/validated-field}}
</td>
<td class="col-md-3">
{{#validated-field property='count' changeset=cs.changeset}}
{{input value=cs.changeset.count}}
{{/validated-field}}
</td>
<td class="col-md-3">
{{#validated-field property='countEstimated' changeset=cs.changeset}}
{{input checked=cs.changeset.countEstimated type='checkbox'}}
{{/validated-field}}
</td>
<td class="col-md-3">
{{#validated-field property='sex' changeset=cs.changeset}}
{{input value=cs.changeset.sex}}
{{/validated-field}}
</td>
<th class="col-md-2">
{{action-button isDanger=true isXSmall=true label='X' onClick=(action 'deleteCollectionSpecies' cs)}}
</th>
</tr>
{{/each}}
</tbody>
</table>
</div>
</div>
{{f.save}} {{f.cancel}}
{{/crud-form}}

View file

@ -1,14 +1,14 @@
{{#if hasBlock}}
{{yield (hash
content=(component 'form-content' changeset=changeset)
content=(component 'form-content')
cancel=(component 'action-button'
label='Cancel'
isDanger=true
onClick=(action onCancel changeset))
onClick=(action onCancel changesets))
save=(component 'action-button'
label='Save'
isSuccess=true
onClick=(action onSave changeset))
onClick=(action onSave changesets))
)}}
{{else}}
MISSING CONTENT BLOCK

View file

@ -1,4 +1,7 @@
<label class="control-label">{{label}}</label>
{{#if hasLabel}}
<label class="control-label">{{label}}</label>
{{/if}}
{{yield}}
{{#if (get changeset.error property)}}