Renames most of metadatum objects as itemMetadatum when it comes from item itemMetadata endpoint. #17.

This commit is contained in:
mateuswetah 2020-03-16 20:11:11 -03:00
parent 3a290bd970
commit e9812ea0cb
18 changed files with 136 additions and 135 deletions

View File

@ -480,9 +480,9 @@
</span>
</a>
<tainacan-form-item
v-for="(metadatum, index) of metadatumList"
v-for="(itemMetadatum, index) of metadatumList"
:key="index"
:metadatum="metadatum"
:item-metadatum="itemMetadatum"
:is-collapsed="metadataCollapses[index]"
@changeCollapse="onChangeCollapse($event, index)"/>

View File

@ -14,7 +14,7 @@
:is="'tainacan-form-item'"
v-for="(child, index) in children"
:key="index"
:metadatum="child"
:item-metadatum="child"
:is-collapsed="childrenMetadataCollapses[index]"
@changeCollapse="onChangeCollapse($event, index)"/>
@ -25,7 +25,7 @@
import { mapActions } from 'vuex';
export default {
props: {
metadatum: Object,
itemMetadatum: Object,
value: [String, Number, Array],
disabled: false
},
@ -44,18 +44,18 @@
'fetchChildrenMetadata'
]),
createChildInputs() {
if (this.metadatum.metadatum &&
this.metadatum.metadatum.metadata_type_options &&
this.metadatum.metadatum.metadata_type_options.children_objects.length > 0
if (this.itemMetadatum.metadatum &&
this.itemMetadatum.metadatum.metadata_type_options &&
this.itemMetadatum.metadatum.metadata_type_options.children_objects.length > 0
) {
for (let child of this.metadatum.metadatum.metadata_type_options.children_objects) {
for (let child of this.itemMetadatum.metadatum.metadata_type_options.children_objects) {
this.children.push({
parent_meta_id: this.metadatum.value[child.id] ? this.metadatum.value[child.id].parent_meta_id : 0,
item: this.metadatum.item,
parent_meta_id: this.itemMetadatum.value[child.id] ? this.itemMetadatum.value[child.id].parent_meta_id : 0,
item: this.itemMetadatum.item,
metadatum: child,
value: this.metadatum.value[child.id] ? this.metadatum.value[child.id].value : [],
value_as_html: this.metadatum.value[child.id] ? this.metadatum.value[child.id].value_as_html : '',
value_as_string: this.metadatum.value[child.id] ? this.metadatum.value[child.id].value_as_string : ''
value: this.itemMetadatum.value[child.id] ? this.itemMetadatum.value[child.id].value : [],
value_as_html: this.itemMetadatum.value[child.id] ? this.itemMetadatum.value[child.id].value_as_html : '',
value_as_string: this.itemMetadatum.value[child.id] ? this.itemMetadatum.value[child.id].value_as_string : ''
});
this.childrenMetadataCollapses.push(true);
}

View File

@ -1,7 +1,7 @@
<template>
<div>
<b-input
:id="metadatum.metadatum.metadata_type_object.component + '-' + metadatum.metadatum.slug"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
:disabled="disabled"
class="input"
:class="{'is-danger': isInvalidDate && dateValue}"
@ -41,7 +41,7 @@
export default {
mixins: [ dateInter ],
props: {
metadatum: Object,
itemMetadatum: Object,
value: [String, Number, Array],
disabled: false,
},

View File

@ -1,7 +1,7 @@
<template>
<b-input
:disabled="disabled"
:id="metadatum.metadatum.metadata_type_object.component + '-' + metadatum.metadatum.slug"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
:value="value"
@input="onInput($event)"
@blur="onBlur"
@ -13,14 +13,14 @@
<script>
export default {
props: {
metadatum: Object,
itemMetadatum: Object,
value: [String, Number, Array],
disabled: false,
},
computed: {
getStep() {
if (this.metadatum && this.metadatum.metadatum.metadata_type_options && this.metadatum.metadatum.metadata_type_options.step)
return this.metadatum.metadatum.metadata_type_options.step;
if (this.itemMetadatum && this.itemMetadatum.metadatum.metadata_type_options && this.itemMetadatum.metadatum.metadata_type_options.step)
return this.itemMetadatum.metadatum.metadata_type_options.step;
else
return 0.01;
}

View File

@ -1,16 +1,16 @@
<template>
<div :class="{ 'is-flex': metadatum.metadatum.multiple != 'yes' || maxtags != undefined }">
<div :class="{ 'is-flex': itemMetadatum.metadatum.multiple != 'yes' || maxtags != undefined }">
<b-taginput
expanded
:disabled="disabled"
:id="metadatum.metadatum.metadata_type_object.component + '-' + metadatum.metadatum.slug"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
:value="selected"
size="is-small"
icon="magnify"
@input="onInput"
@blur="onBlur"
:data="options"
:maxtags="maxtags != undefined ? maxtags : (metadatum.metadatum.multiple == 'yes' || allowNew === true ? 100 : 1)"
:maxtags="maxtags != undefined ? maxtags : (itemMetadatum.metadatum.multiple == 'yes' || allowNew === true ? 100 : 1)"
autocomplete
attached
:placeholder="$i18n.get('instruction_type_existing_item')"
@ -50,7 +50,7 @@
export default {
props: {
metadatum: Object,
itemMetadatum: Object,
maxtags: undefined,
disabled: false,
allowNew: true,
@ -71,10 +71,10 @@
}
},
created() {
this.collectionId = ( this.metadatum && this.metadatum.metadatum.metadata_type_options && this.metadatum.metadatum.metadata_type_options.collection_id ) ? this.metadatum.metadatum.metadata_type_options.collection_id : '';
if (this.metadatum.value && (Array.isArray( this.metadatum.value ) ? this.metadatum.value.length > 0 : true )) {
let query = qs.stringify({ postin: ( Array.isArray( this.metadatum.value ) ) ? this.metadatum.value : [ this.metadatum.value ] });
query += this.metadatum.metadatum.metadata_type_options.search ? '&fetch_only_meta=' + this.metadatum.metadatum.metadata_type_options.search : '';
this.collectionId = ( this.itemMetadatum && this.itemMetadatum.metadatum.metadata_type_options && this.itemMetadatum.metadatum.metadata_type_options.collection_id ) ? this.itemMetadatum.metadatum.metadata_type_options.collection_id : '';
if (this.itemMetadatum.value && (Array.isArray( this.itemMetadatum.value ) ? this.itemMetadatum.value.length > 0 : true )) {
let query = qs.stringify({ postin: ( Array.isArray( this.itemMetadatum.value ) ) ? this.itemMetadatum.value : [ this.itemMetadatum.value ] });
query += this.itemMetadatum.metadatum.metadata_type_options.search ? '&fetch_only_meta=' + this.itemMetadatum.metadatum.metadata_type_options.search : '';
axios.get('/collection/' + this.collectionId + '/items?' + query + '&nopaging=1&fetch_only=title,thumbnail')
.then( res => {
if (res.data.items) {
@ -125,7 +125,7 @@
return;
// There is already one value set and is not multiple
if (this.selected.length > 0 && this.metadatum.metadatum.multiple === 'no')
if (this.selected.length > 0 && this.itemMetadatum.metadatum.multiple === 'no')
return;
if (this.searchQuery !== '') {
@ -162,7 +162,7 @@
getItemLabel(item) {
let label = '';
for (let m in item.metadata) {
if (item.metadata[m].id == this.metadatum.metadatum.metadata_type_options.search)
if (item.metadata[m].id == this.itemMetadatum.metadatum.metadata_type_options.search)
label = item.metadata[m].value_as_string;
}
if (label != '' && label != item.title && item.title != '')
@ -175,13 +175,13 @@
getQueryString( search ) {
let query = [];
if (this.metadatum.metadatum.metadata_type_options &&
this.metadatum.metadatum.metadata_type_options.search)
if (this.itemMetadatum.metadatum.metadata_type_options &&
this.itemMetadatum.metadatum.metadata_type_options.search)
{
query['metaquery'] = [];
query['metaquery'][0] = {
key: this.metadatum.metadatum.metadata_type_options.search,
key: this.itemMetadatum.metadatum.metadata_type_options.search,
value: search,
compare: 'LIKE'
}
@ -190,7 +190,7 @@
query['search'] = search;
}
query['fetch_only'] = 'title,thumbnail';
query['fetch_only_meta'] = this.metadatum.metadatum.metadata_type_options.search;
query['fetch_only_meta'] = this.itemMetadatum.metadatum.metadata_type_options.search;
query['perpage'] = 12;
query['paged'] = this.page;

View File

@ -2,7 +2,7 @@
<b-select
expanded
:disabled="disabled"
:id="metadatum.metadatum.metadata_type_object.component + '-' + metadatum.metadatum.slug"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
:placeholder="$i18n.get('label_selectbox_init')"
:value="value"
@input="onSelected($event)">
@ -21,14 +21,14 @@
export default {
props: {
metadatum: Object,
itemMetadatum: Object,
value: [String, Number, Array],
disabled: false,
},
computed: {
getOptions(){
if (this.metadatum && this.metadatum.metadatum.metadata_type_options && this.metadatum.metadatum.metadata_type_options.options ) {
const metadata = this.metadatum.metadatum.metadata_type_options.options;
if (this.itemMetadatum && this.itemMetadatum.metadatum.metadata_type_options && this.itemMetadatum.metadatum.metadata_type_options.options ) {
const metadata = this.itemMetadatum.metadatum.metadata_type_options.options;
return ( metadata ) ? metadata.split("\n") : [];
}
return [];

View File

@ -17,37 +17,37 @@
show: 500,
hide: 300,
},
content: metadatum.metadatum.name,
content: itemMetadatum.metadatum.name,
autoHide: false,
placement: 'auto-end'
}"
class="label">
{{ metadatum.metadatum.name }}
{{ itemMetadatum.metadatum.name }}
</label>
<span
v-if="metadatum.metadatum.required == 'yes'"
v-if="itemMetadatum.metadatum.required == 'yes'"
class="required-metadatum-asterisk"
:class="metadatumTypeMessage">
*
</span>
<span class="metadata-type">
({{ metadatum.metadatum.metadata_type_object.name }})
({{ itemMetadatum.metadatum.metadata_type_object.name }})
</span>
<help-button
:title="metadatum.metadatum.name"
:message="metadatum.metadatum.description"/>
:title="itemMetadatum.metadatum.name"
:message="itemMetadatum.metadatum.description"/>
</span>
<transition name="filter-item">
<div
v-show="isCollapsed || metadatumTypeMessage == 'is-danger'"
v-if="isTextInputComponent( metadatum.metadatum.metadata_type_object.component )">
v-if="isTextInputComponent( itemMetadatum.metadatum.metadata_type_object.component )">
<component
:is="metadatum.metadatum.metadata_type_object.component"
:is="itemMetadatum.metadatum.metadata_type_object.component"
v-model="inputs[0]"
:metadatum="metadatum"
:item-metadatum="itemMetadatum"
@input="changeValue()"
@blur="performValueChange()"/>
<template v-if="metadatum.metadatum.multiple == 'yes' && inputs.length > 1">
<template v-if="itemMetadatum.metadatum.multiple == 'yes' && inputs.length > 1">
<transition-group
name="filter-item"
class="multiple-inputs">
@ -55,9 +55,9 @@
<component
v-if="index > 0"
:key="index"
:is="metadatum.metadatum.metadata_type_object.component"
:is="itemMetadatum.metadatum.metadata_type_object.component"
v-model="inputs[index]"
:metadatum="metadatum"
:item-metadatum="itemMetadatum"
@input="changeValue()"
@blur="performValueChange()"/>
<a
@ -74,7 +74,7 @@
</template>
</transition-group>
</template>
<template v-if="metadatum.metadatum.multiple == 'yes'">
<template v-if="itemMetadatum.metadatum.multiple == 'yes'">
<a
@click="addInput"
class="is-block add-link">
@ -89,11 +89,11 @@
<transition name="filter-item">
<div
v-show="isCollapsed"
v-if="!isTextInputComponent( metadatum.metadatum.metadata_type_object.component )">
v-if="!isTextInputComponent( itemMetadatum.metadatum.metadata_type_object.component )">
<component
:is="metadatum.metadatum.metadata_type_object.component"
:is="itemMetadatum.metadatum.metadata_type_object.component"
v-model="inputs"
:metadatum="metadatum"
:item-metadatum="itemMetadatum"
@input="changeValue()"
@blur="performValueChange()"/>
</div>
@ -107,7 +107,7 @@
export default {
name: 'TainacanFormItem',
props: {
metadatum: Object,
itemMetadatum: Object,
isCollapsed: true
},
data(){
@ -123,9 +123,9 @@
},
created() {
this.createInputs();
eventBusItemMetadata.$on('updateErrorMessageOf#' + this.metadatum.metadatum.id, (errors) => {
eventBusItemMetadata.$on('updateErrorMessageOf#' + this.itemMetadatum.metadatum.id, (errors) => {
let updatedErrorMessage = '';
if (errors && this.metadatum.metadatum.id == errors.metadatum_id && errors.errors) {
if (errors && this.itemMetadatum.metadatum.id == errors.metadatum_id && errors.errors) {
for (let error of errors.errors) {
for (let index of Object.keys(error))
updatedErrorMessage += error[index] + '\n';
@ -135,7 +135,7 @@
})
},
beforeDestroy() {
eventBusItemMetadata.$off('updateErrorMessageOf#' + this.metadatum.metadatum.id);
eventBusItemMetadata.$off('updateErrorMessageOf#' + this.itemMetadatum.metadatum.id);
},
methods: {
changeValue: _.debounce(function() {
@ -145,52 +145,52 @@
if (this.inputs && this.inputs.length > 0 && this.inputs[0] && this.inputs[0].value) {
let terms = this.inputs.map(term => term.value)
if (this.metadatum.value instanceof Array){
if (this.itemMetadatum.value instanceof Array) {
let equal = [];
for (let meta of terms) {
let foundIndex = this.metadatum.value.findIndex(element => meta == element.id);
let foundIndex = this.itemMetadatum.value.findIndex(element => meta == element.id);
if (foundIndex >= 0)
equal.push(this.metadatum.value[foundIndex]);
equal.push(this.itemMetadatum.value[foundIndex]);
}
if (equal.length == terms.length && this.metadatum.value.length <= equal.length)
if (equal.length == terms.length && this.itemMetadatum.value.length <= equal.length)
return;
}
} else if (this.metadatum.value.constructor.name == 'Object') {
} else if (this.itemMetadatum.value.constructor.name == 'Object') {
if (this.metadatum.value.id == this.inputs)
if (this.itemMetadatum.value.id == this.inputs)
return;
} else if (this.metadatum.value instanceof Array) {
} else if (this.itemMetadatum.value instanceof Array) {
let equal = [];
for (let meta of this.inputs) {
let foundIndex = this.metadatum.value.findIndex(element => meta == element.id);
let foundIndex = this.itemMetadatum.value.findIndex(element => meta == element.id);
if (foundIndex >= 0)
equal.push(this.metadatum.value[foundIndex]);
equal.push(this.itemMetadatum.value[foundIndex]);
}
if (equal.length == this.inputs.length && this.metadatum.value.length <= equal.length)
if (equal.length == this.inputs.length && this.itemMetadatum.value.length <= equal.length)
return;
} else if (this.inputs && this.inputs.length == 1 && this.inputs[0] == this.metadatum.value) {
} else if (this.inputs && this.inputs.length == 1 && this.inputs[0] == this.itemMetadatum.value) {
return
}
eventBusItemMetadata.$emit('input', {
itemId: this.metadatum.item.id,
metadatumId: this.metadatum.metadatum.id,
itemId: this.itemMetadatum.item.id,
metadatumId: this.itemMetadatum.metadatum.id,
values: this.inputs ? this.inputs : '',
parentMetaId: this.metadatum.parent_meta_id
parentMetaId: this.itemMetadatum.parent_meta_id
});
},
createInputs() {
if (this.metadatum.value instanceof Array)
this.inputs = this.metadatum.value.slice(0); // This way we garantee this.inputs is a copy of the contents of this.metadatum.value, instead of a reference to it
if (this.itemMetadatum.value instanceof Array)
this.inputs = this.itemMetadatum.value.slice(0); // This way we garantee this.inputs is a copy of the contents of this.itemMetadatum.value, instead of a reference to it
else
this.metadatum.value == null || this.metadatum.value == undefined ? this.inputs = [] : this.inputs.push(this.metadatum.value);
this.itemMetadatum.value == null || this.itemMetadatum.value == undefined ? this.inputs = [] : this.inputs.push(this.itemMetadatum.value);
},
addInput(){
this.inputs.push('');

View File

@ -101,7 +101,7 @@
export default {
props: {
metadatum: [Number,String],
itemMetadatum: [Number,String],
taxonomyId: [Number,String],
value: [ Array, Boolean, Number ],
componentType: ''
@ -117,8 +117,8 @@
parentTermName: '',
isAddingNewTerm: false,
isFetchingParentTerms: false,
metadatumId: this.metadatum.metadatum.id,
itemId: this.metadatum.item.id,
metadatumId: this.itemMetadatum.metadatum.id,
itemId: this.itemMetadatum.item.id,
formErrors: {},
parentTermSearchQuery: '',
parentTermSearchOffset: 0
@ -227,7 +227,7 @@
let id = res.id ? res.id : res.data.id;
let val = this.value;
if (!Array.isArray(val) && this.metadatum.metadatum.multiple === 'no') {
if (!Array.isArray(val) && this.itemMetadatum.metadatum.multiple === 'no') {
axios.patch(`/item/${this.itemId}/metadata/${this.metadatumId}`, {
values: id,
}).then(() => {

View File

@ -8,12 +8,12 @@
:allow-select-to-create="allowSelectToCreate"
:allow-new="allowNew"
:taxonomy-id="taxonomyId"
:metadatum="metadatum.metadatum"/>
:item-metadatum="itemMetadatum"/>
<add-new-term
v-if="allowNew"
:component-type="getComponent"
:taxonomy-id="taxonomyId"
:metadatum="metadatum"
:item-metadatum="itemMetadatum"
:value="valueComponent"
@newTerm="reload"/>
</div>
@ -32,7 +32,7 @@
AddNewTerm
},
props: {
metadatum: Object,
itemMetadatum: Object,
value: [ Number, String, Array, Object ],
disabled: false,
forcedComponentType: '',
@ -52,11 +52,11 @@
getComponent() {
if (this.forcedComponentType)
return this.forcedComponentType;
else if(this.metadatum.metadatum &&
this.metadatum.metadatum.metadata_type_options &&
this.metadatum.metadatum.metadata_type_options.input_type
else if(this.itemMetadatum.metadatum &&
this.itemMetadatum.metadatum.metadata_type_options &&
this.itemMetadatum.metadatum.metadata_type_options.input_type
)
return this.metadatum.metadatum.metadata_type_options.input_type;
return this.itemMetadatum.metadatum.metadata_type_options.input_type;
}
},
watch: {
@ -64,13 +64,13 @@
this.$emit('input', val);
}
},
created(){
const metadata_type_options = this.metadatum.metadatum.metadata_type_options;
created() {
const metadata_type_options = this.itemMetadatum.metadatum.metadata_type_options;
this.taxonomyId = metadata_type_options.taxonomy_id;
this.taxonomy = metadata_type_options.taxonomy;
if (metadata_type_options && metadata_type_options.allow_new_terms && this.metadatum.item)
if (metadata_type_options && metadata_type_options.allow_new_terms && this.itemMetadatum.item)
this.allowNew = metadata_type_options.allow_new_terms == 'yes';
this.getTermsId();
@ -78,16 +78,16 @@
methods: {
getTermsId() {
let values = [];
if (this.value && this.metadatum.metadatum && this.getComponent != 'tainacan-taxonomy-tag-input') {
if (this.value && this.itemMetadatum.metadatum && this.getComponent != 'tainacan-taxonomy-tag-input') {
values = this.value.map(term => term.id)
this.valueComponent = (values.length >= 0 && this.metadatum.metadatum && this.metadatum.metadatum.multiple === 'no') ? values[0] : values;
} else if (this.value && this.metadatum.metadatum && this.getComponent == 'tainacan-taxonomy-tag-input') {
this.valueComponent = (values.length >= 0 && this.itemMetadatum.metadatum && this.itemMetadatum.metadatum.multiple === 'no') ? values[0] : values;
} else if (this.value && this.itemMetadatum.metadatum && this.getComponent == 'tainacan-taxonomy-tag-input') {
values = this.value.map((term) => { return { label: term.name, value: term.id } });
this.valueComponent = values;
}
},
reload($event) {
if ($event.taxonomyId == this.taxonomyId && $event.metadatumId == this.metadatum.metadatum.id) {
if ($event.taxonomyId == this.taxonomyId && $event.metadatumId == this.itemMetadatum.metadatum.id) {
this.valueComponent = $event.values;
this.$emit('update-taxonomy-inputs', $event)
}

View File

@ -31,7 +31,7 @@
</p>
<div
class="metadata-taxonomy-list"
:id="metadatum.metadata_type_object.component + '-' + metadatum.slug">
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug">
<template v-for="(option, index) in options">
<b-checkbox
:key="index"
@ -69,12 +69,11 @@
import CheckboxRadioModal from '../../modals/checkbox-radio-modal.vue';
export default {
props: {
value: [ Number, String, Array ],
disabled: false,
taxonomyId: Number,
metadatum: Object
itemMetadatum: Object
},
data() {
return {
@ -105,7 +104,7 @@
this.getTermsFromTaxonomy();
this.$parent.$on('update-taxonomy-inputs', ($event) => {
if ($event.taxonomyId == this.taxonomyId && $event.metadatumId == this.metadatum.id) {
if ($event.taxonomyId == this.taxonomyId && $event.metadatumId == this.itemMetadatum.metadatum.id) {
this.offset = 0;
this.getTermsFromTaxonomy();
}
@ -192,12 +191,12 @@
parent: 0,
taxonomy_id: this.taxonomyId,
selected: !this.value ? [] : this.value,
metadatumId: this.metadatum.id,
metadatumId: this.itemMetadatum.metadatum.id,
taxonomy: this.taxonomy,
collectionId: this.metadatum.collection_id,
collectionId: this.itemMetadatum.metadatum.collection_id,
isTaxonomy: true,
query: '',
metadatum: this.metadatum,
metadatum: this.itemMetadatum.metadatum,
isCheckbox: true
},
events: {

View File

@ -32,7 +32,7 @@
<div class="metadata-taxonomy-list">
<b-radio
:disabled="disabled"
:id="metadatum.metadata_type_object.component + '-' + metadatum.slug"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
v-model="checked"
@input="onChecked('')"
:native-value="''"
@ -40,7 +40,7 @@
{{ $i18n.get('clear_radio') }}
</b-radio>
<template
:id="metadatum.metadata_type_object.component + '-' + metadatum.slug"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
v-for="(option, index) in options">
<b-radio
:disabled="disabled"
@ -82,7 +82,7 @@
value: [ Number, String, Array ],
disabled: false,
taxonomyId: Number,
metadatum: Object
itemMetadatum: Object
},
data() {
return {
@ -110,7 +110,7 @@
created() {
this.getTermsFromTaxonomy();
this.$parent.$on('update-taxonomy-inputs', ($event) => {
if ($event.taxonomyId == this.taxonomyId && $event.metadatumId == this.metadatum.id) {
if ($event.taxonomyId == this.taxonomyId && $event.metadatumId == this.itemMetadatum.metadatum.id) {
this.offset = 0;
this.getTermsFromTaxonomy();
}
@ -201,12 +201,12 @@
parent: 0,
taxonomy_id: this.taxonomyId,
selected: !this.value ? [] : this.value,
metadatumId: this.metadatum.id,
metadatumId: this.itemMetadatum.id,
taxonomy: this.taxonomy,
collectionId: this.metadatum.collection_id,
collectionId: this.itemMetadatum.collection_id,
isTaxonomy: true,
query: '',
metadatum: this.metadatum,
metadatum: this.itemMetadatum,
isCheckbox: false
},
events: {

View File

@ -3,7 +3,7 @@
<b-taginput
expanded
:disabled="disabled"
:id="metadatumComponentId"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
size="is-small"
icon="magnify"
:allow-new="false"
@ -44,7 +44,7 @@
export default {
props: {
metadatumComponentId: '',
itemMetadatum: Object,
value: [ Number, String, Array ],
allowNew: true,
taxonomyId: Number,

View File

@ -1,7 +1,7 @@
<template>
<b-input
:disabled="disabled"
:id="metadatum.metadatum.metadata_type_object.component + '-' + metadatum.metadatum.slug"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
:value="value"
@input="onInput($event)"
@blur="onBlur"/>
@ -10,7 +10,7 @@
<script>
export default {
props: {
metadatum: Object,
itemMetadatum: Object,
value: [String, Number, Array],
disabled: false
},

View File

@ -1,7 +1,7 @@
<template>
<b-input
:disabled="disabled"
:id="metadatum.metadatum.metadata_type_object.component + '-' + metadatum.metadatum.slug"
:id="itemMetadatum.metadatum.metadata_type_object.component + '-' + itemMetadatum.metadatum.slug"
:value="value"
@input="onInput($event)"
@blur="onBlur"
@ -11,7 +11,7 @@
<script>
export default {
props: {
metadatum: Object,
itemMetadatum: Object,
value: [String, Number, Array],
disabled: false
},

View File

@ -91,7 +91,7 @@
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone}"
:disabled="bulkEditionProcedures[criterion].isDone"
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
:item-metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
class="tainacan-bulk-edition-field"
@input="addToBulkEditionProcedures($event, 'oldValue', criterion)"
/>
@ -112,7 +112,7 @@
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone}"
:disabled="bulkEditionProcedures[criterion].isDone"
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
:item-metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
class="tainacan-bulk-edition-field tainacan-bulk-edition-field-not-last"
@input="addToBulkEditionProcedures($event, 'newValue', criterion)"
/>
@ -170,7 +170,7 @@
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone}"
:disabled="bulkEditionProcedures[criterion].isDone || bulkEditionProcedures[criterion].isExecuting"
:is="getMetadataByID(bulkEditionProcedures[criterion].metadatumID).metadata_type_object.component"
:metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
:item-metadatum="{metadatum: getMetadataByID(bulkEditionProcedures[criterion].metadatumID)}"
class="tainacan-bulk-edition-field tainacan-bulk-edition-field-last"
@input="addToBulkEditionProcedures($event, 'newValue', criterion)"
/>

View File

@ -7,9 +7,10 @@ export const sendMetadatum = ( { commit }, { item_id, metadatum_id, values }) =>
values: values
})
.then( res => {
commit('setSingleMetadata', { item_id: item_id, metadatum_id: metadatum_id, values: values });
const metadatum = res.data
commit('setSingleMetadatum', metadatum);
commit('setLastUpdated');
resolve( res.data );
resolve( metadatum );
})
.catch(error => {
reject( error);

View File

@ -62,26 +62,27 @@ export const cleanMetadata = (state) => {
state.metadata = [];
}
export const setSingleMetadatum = (state, metadatum) => {
if (metadatum.metadatum.parent > 0) {
let index = state.metadata.findIndex(itemMetadata => itemMetadata.metadatum.id === metadatum.metadatum.id);
export const setSingleMetadatum = (state, itemMetadatum) => {
if (itemMetadatum.metadatum.parent <= 0) {
let index = state.metadata.findIndex(anItemMetadatum => anItemMetadatum.metadatum.id == itemMetadatum.metadatum.id);
if (index >= 0)
Vue.set( state.metadata, index, metadatum );
Vue.set( state.metadata, index, itemMetadatum );
else
state.metadata.push( metadatum );
state.metadata.push( itemMetadatum );
} else {
let parentIndex = state.metadata.findIndex(itemMetadata => itemMetadata.metadatum.id === metadatum.metadatum.id);
let parentIndex = state.metadata.findIndex(anItemMetadatum => anItemMetadatum.metadatum.id == itemMetadatum.metadatum.parent);
if (parentIndex >= 0) {
let currentParent = state.metadata[parentIndex];
currentParent.value[metadatum.metadatum.id] = {
parent_meta_id: metadatum.value[child.id] ? metadatum.value[child.id].parent_meta_id : 0,
value: metadatum.value[child.id] ? metadatum.value[child.id].value : [],
value_as_html: metadatum.value[child.id] ? metadatum.value[child.id].value_as_html : '',
value_as_string: metadatum.value[child.id] ? metadatum.value[child.id].value_as_string : ''
currentParent.value[itemMetadatum.metadatum.id] = {
parent_meta_id: itemMetadatum.parent_meta_id ? itemMetadatum.parent_meta_id : 0,
value: itemMetadatum.value ? itemMetadatum.value : [],
value_as_html: itemMetadatum.value_as_html ? itemMetadatum.value_as_html : '',
value_as_string: itemMetadatum.value_as_string ? itemMetadatum.value_as_string : ''
};
Vue.set(state.metadata, parentIndex, currentParent);
console.log(state.metadata)
}
}
}

View File

@ -202,19 +202,19 @@
<!-- Metadata -------------------------------- -->
<div class="metadata-area">
<div
v-for="(metadatum, index) of metadatumList"
v-for="(itemMetadatum, index) of metadatumList"
:key="index"
class="field">
<label class="label">{{ metadatum.metadatum.name }}</label>
<label class="label">{{ itemMetadatum.metadatum.name }}</label>
<div
:class="{
'metadata-type-textarea': metadatum.metadatum.metadata_type_object.component == 'tainacan-textarea',
'metadata-type-compound': metadatum.metadatum.metadata_type_object.component == 'tainacan-compound'
'metadata-type-textarea': itemMetadatum.metadatum.metadata_type_object.component == 'tainacan-textarea',
'metadata-type-compound': itemMetadatum.metadatum.metadata_type_object.component == 'tainacan-compound'
}"
class="content">
<component
:is="metadatum.metadatum.metadata_type_object.component == 'tainacan-compound' ? 'div' : 'p'"
v-html="metadatum.value_as_html != '' ? metadatum.value_as_html : `<span class='has-text-gray is-italic'>` + $i18n.get('label_value_not_informed') + `</span>`"/>
:is="itemMetadatum.metadatum.metadata_type_object.component == 'tainacan-compound' ? 'div' : 'p'"
v-html="itemMetadatum.value_as_html != '' ? itemMetadatum.value_as_html : `<span class='has-text-gray is-italic'>` + $i18n.get('label_value_not_informed') + `</span>`"/>
</div>
</div>
</div>