Skip to content

Commit

Permalink
Tweaks #337
Browse files Browse the repository at this point in the history
  • Loading branch information
jlpereira committed Jan 17, 2019
1 parent aea11fc commit 0344b97
Show file tree
Hide file tree
Showing 17 changed files with 136 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
<div
class="flex-wrap-column middle align-start">
<div class="separate-right">
<div
v-if="identifiers > 1"
class="separate-bottom">
<span data-icon="warning">More than one identifier exists! Use annotator to edit others.</span>
</div>
<label>Namespace</label>
<br>
<div class="horizontal-left-content middle field">
Expand Down Expand Up @@ -73,6 +78,9 @@
collectionObjects() {
return this.$store.getters[GetterNames.GetCollectionObjects]
},
identifiers() {
return this.$store.getters[GetterNames.GetIdentifiers]
},
locked: {
get() {
return this.$store.getters[GetterNames.GetLocked]
Expand Down
13 changes: 10 additions & 3 deletions app/javascript/vue/tasks/digitize/components/taskHeader/main.vue
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
v-html="identifier.object_tag"/>
</div>
<div class="horizontal-left-content">
<recent-component
class="separate-right"
@selected="loadCollectionObject($event.id)"/>
<button
type="button"
v-shortkey="[getMacKey(), 's']"
Expand Down Expand Up @@ -46,11 +49,12 @@
import { MutationNames } from '../../store/mutations/mutations.js'
import { ActionNames } from '../../store/actions/actions.js'
import { GetterNames } from '../../store/getters/getters.js'
import { GetCollectionObject } from '../../request/resources.js'
import RecentComponent from './recent.vue'
export default {
components: {
Autocomplete
Autocomplete,
RecentComponent
},
computed: {
identifier() {
Expand Down Expand Up @@ -88,7 +92,10 @@
},
loadAssessionCode(object) {
this.$store.dispatch(ActionNames.LoadDigitalization, object.identifier_object_id)
this.$store.dispatch(ActionNames.GetIdentifier, object.id)
},
loadCollectionObject(id) {
this.$store.dispatch(ActionNames.ResetWithDefault)
this.$store.dispatch(ActionNames.LoadDigitalization, id)
}
}
}
Expand Down
57 changes: 57 additions & 0 deletions app/javascript/vue/tasks/digitize/components/taskHeader/recent.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<template>
<div>
<button
type="button"
class="button normal-input button-default"
@click="showModal = true">Recent</button>
<modal-component
v-if="showModal"
@close="showModal = false">
<h3 slot="header">Recent collection objets</h3>
<div slot="body">
<ul class="no_bullets">
<li
v-for="item in list"
:key="item.id">
<label
@click="sendCO(item)">
<input
type="radio"
name="recent-co">
{{ item.object_tag }}
</label>
</li>
</ul>
</div>
</modal-component>
</div>
</template>

<script>
import ModalComponent from 'components/modal'
import { GetRecentCollectionObjects } from '../../request/resources.js'
export default {
components: {
ModalComponent
},
data() {
return {
showModal: false,
list: []
}
},
mounted() {
GetRecentCollectionObjects().then(response => {
this.list = response
})
},
methods: {
sendCO(item) {
this.showModal = false
this.$emit('selected', item)
}
}
}
</script>
10 changes: 10 additions & 0 deletions app/javascript/vue/tasks/digitize/request/resources.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@ const CheckForExistingIdentifier = function (namespaceId, identifier) {
return ajaxCall('get', `/identifiers.json?type=Identifier::Local::CatalogNumber&identifier_namespace_id=${namespaceId}&identifier=${identifier}`)
}

const GetIdentifiersFromCO = function (id) {
return ajaxCall('get', `/identifiers.json?identifier_object_type=CollectionObject&identifier_object_id=${id}&type=Identifier::Local::CatalogNumber`)
}

const GetRecentCollectionObjects = function () {
return ajaxCall('get', `/collection_objects.json`, { params: { recent: true, per: 5 } })
}

const UpdateUserPreferences = function (id, data) {
return ajaxCall('patch', `/users/${id}.json`, { user: { layout: data } })
}
Expand Down Expand Up @@ -241,6 +249,8 @@ export {
CheckForExistingIdentifier,
GetUserPreferences,
GetOtu,
GetIdentifiersFromCO,
GetRecentCollectionObjects,
GetTaxonNameSmartSelector,
GetCollectorsSmartSelector,
GetRepositorySmartSelector,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
const ActionNames = {
GetTaxon: 'getTaxon',
GetIdentifier: 'getIdentifier',
GetIdentifiers: 'getIdentifiers',
GetNamespace: 'getNamespace',
GetCollectionObject: 'getCollectionObject',
GetCollectionEvent: 'getCollectionEvent',
GetTypeMaterial: 'getTypeMaterial',
Expand Down
4 changes: 4 additions & 0 deletions app/javascript/vue/tasks/digitize/store/actions/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ import ActionNames from './actionNames'

import loadDigitalization from './loadDigitalization'
import getTaxon from './getTaxon'
import getNamespace from './getNamespace'
import getTypeMaterial from './getTypeMaterial'
import getTaxonDeterminations from './getTaxonDeterminations'
import getCollectionObject from './getCollectionObject'
import getCollectionEvent from './getCollectionEvent'
import getIdentifier from './getIdentifier'
import getIdentifiers from './getIdentifiers'
import saveDigitalization from './saveDigitalization'
import saveIdentifier from './saveIdentifier'
import saveCollectionObject from './saveCollectionObject'
Expand All @@ -32,7 +34,9 @@ const ActionFunctions = {
[ActionNames.AddToContainer]: addToContainer,
[ActionNames.LoadDigitalization]: loadDigitalization,
[ActionNames.GetTaxon]: getTaxon,
[ActionNames.GetNamespace]: getNamespace,
[ActionNames.GetIdentifier]: getIdentifier,
[ActionNames.GetIdentifiers]: getIdentifiers,
[ActionNames.GetTypeMaterial]: getTypeMaterial,
[ActionNames.GetCollectionObject]: getCollectionObject,
[ActionNames.GetCollectionEvent]: getCollectionEvent,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ export default function ({ commit }, id) {
return new Promise((resolve, reject) => {
GetIdentifier(id).then(response => {
commit(MutationNames.SetIdentifier, response)
GetNamespace(response.namespace_id).then(namespace => {
commit(MutationNames.SetNamespaceSelected, namespace.name)
return resolve(response)
})
})
})
}
11 changes: 11 additions & 0 deletions app/javascript/vue/tasks/digitize/store/actions/getIdentifiers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { GetIdentifiersFromCO } from '../../request/resources'
import { MutationNames } from '../mutations/mutations'

export default function ({ commit }, id) {
return new Promise((resolve, reject) => {
GetIdentifiersFromCO(id).then(response => {
commit(MutationNames.SetIdentifiers, response)
resolve(response)
})
})
}
11 changes: 11 additions & 0 deletions app/javascript/vue/tasks/digitize/store/actions/getNamespace.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { GetNamespace } from '../../request/resources'
import { MutationNames } from '../mutations/mutations'

export default function ({ commit }, id) {
return new Promise((resolve, reject) => {
GetNamespace(id).then(namespace => {
commit(MutationNames.SetNamespaceSelected, namespace.name)
return resolve(namespace)
})
})
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { MutationNames } from '../mutations/mutations'

export default function ({ commit, state }, id) {
GetTypeMaterialCO(id).then(response => {
response.roles_attributes = response.hasOwnProperty('roles') ? response.roles : []
commit(MutationNames.SetTypeMaterial, response)
})
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ export default function ({ commit, dispatch, state }, coId) {
dispatch(ActionNames.GetCollectionObject, coId).then((coObject) => {
if(coObject.collecting_event_id)
dispatch(ActionNames.GetCollectionEvent, coObject.collecting_event_id)

dispatch(ActionNames.GetIdentifiers, coId).then(response => {
if(response.length) {
commit(MutationNames.SetIdentifier, response[0])
dispatch(ActionNames.GetNamespace, response[0].namespace_id)
}
})

dispatch(ActionNames.GetTypeMaterial, coId)
dispatch(ActionNames.GetTaxonDeterminations, coId)
commit(MutationNames.AddCollectionObject, coObject)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export default function({ dispatch, state }) {
state.containerItems = [],
state.collection_objects = [],
state.depictions = [],
state.identifiers = [],
state.preparation_type_id = undefined,
state.taxon_determinations = []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export default function(state) {
return state.identifiers
}
3 changes: 3 additions & 0 deletions app/javascript/vue/tasks/digitize/store/getters/getters.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import getCollectionEventLabel from './getCollectionEventLabel'
import getTypeMaterial from './getTypeMaterial'
import getDepictions from './getDepictions'
import getIdentifier from './getIdentifier'
import getIdentifiers from './getIdentifiers'
import getContainer from './getContainer'
import getContainerItems from './getContainerItems'
import getTaxonDetermination from './getTaxonDetermination'
Expand All @@ -32,6 +33,7 @@ const GetterNames = {
GetTypeMaterial: 'getTypeMaterial',
GetDepictions: 'getDepictions',
GetIdentifier: 'getIdentifier',
GetIdentifiers: 'getIdentifiers',
GetContainer: 'getContainer',
GetContainerItems: 'getContainerItems',
GetCollectionObjectTypes: 'getCollectionObjectTypes',
Expand All @@ -56,6 +58,7 @@ const GetterFunctions = {
[GetterNames.GetTypeMaterial]: getTypeMaterial,
[GetterNames.GetDepictions]: getDepictions,
[GetterNames.GetIdentifier]: getIdentifier,
[GetterNames.GetIdentifiers]: getIdentifiers,
[GetterNames.GetContainer]: getContainer,
[GetterNames.GetContainerItems]: getContainerItems,
[GetterNames.GetCollectionObjectTypes]: getCollectionObjectTypes,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ import setTypeMaterialTaxon from './TypeMaterial/setTypeMaterialTaxon'
import addTypeMaterial from './TypeMaterial/addMaterialTypes'
import newTypeMaterial from './TypeMaterial/newTypeMaterial'

import setIdentifiers from './setIdentifiers'
import setIdentifier from './Identifier/setIdentifier'
import setIdentifierIdentifier from './Identifier/setIdentifierIdentifier'
import setIdentifierNamespaceId from './Identifier/setIdentifierNamespaceId'
Expand Down Expand Up @@ -143,6 +144,7 @@ const MutationNames = {
SetTaxonDeterminationRoles: 'setTaxonDeterminationRoles',
SetTaxonDeterminationOtuId: 'setTaxonDeterminationOtuId',

SetIdentifiers: 'setIdentifiers',
SetIdentifier: 'setIdentifier',
SetIdentifierIdentifier: 'setIdentifierIdentifier',
SetIdentifierNamespaceId: 'setIdentifierNamespaceId',
Expand Down Expand Up @@ -248,6 +250,7 @@ const MutationFunctions = {
[MutationNames.SetTaxonDeterminationMonth]: setTaxonDeterminationMonth,
[MutationNames.SetTaxonDeterminationYear]: setTaxonDeterminationYear,

[MutationNames.SetIdentifiers]: setIdentifiers,
[MutationNames.SetIdentifier]: setIdentifier,
[MutationNames.SetIdentifierIdentifier]: setIdentifierIdentifier,
[MutationNames.SetIdentifierNamespaceId]: setIdentifierNamespaceId,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export default function(state, value) {
state.identifiers = value
}
1 change: 1 addition & 0 deletions app/javascript/vue/tasks/digitize/store/store.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ function makeInitialState () {
label_object_id: undefined,
label_object_type: "CollectingEvent"
},
identifiers: [],
materialTypes: [],
determinations: [],
preferences: {},
Expand Down

0 comments on commit 0344b97

Please sign in to comment.