Renames most of metadatum objects as itemMetadatum when it comes from item itemMetadata endpoint. #17.
This commit is contained in:
parent
3a290bd970
commit
e9812ea0cb
|
@ -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)"/>
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 [];
|
||||
|
|
|
@ -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('');
|
||||
|
|
|
@ -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(() => {
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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: {
|
||||
|
|
|
@ -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: {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
},
|
||||
|
|
|
@ -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
|
||||
},
|
||||
|
|
|
@ -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)"
|
||||
/>
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue