Copy values routine to Bulk edition modal.
This commit is contained in:
parent
d8d6cb7cfa
commit
54d8d67a28
|
@ -312,7 +312,7 @@ class Bulk_Edit_Process extends Generic_Process {
|
||||||
|
|
||||||
$metadatum_id_copy_from = $this->bulk_edit_data['metadatum_id_copy_from'];
|
$metadatum_id_copy_from = $this->bulk_edit_data['metadatum_id_copy_from'];
|
||||||
|
|
||||||
if ($metadatum_id_copy_from == 'create_by' && $metadatum->get_metadata_type() == 'Tainacan\Metadata_Types\User') {
|
if ($metadatum_id_copy_from == 'created_by' && $metadatum->get_metadata_type() == 'Tainacan\Metadata_Types\User') {
|
||||||
$item_metadata->set_value( $metadatum->is_multiple() ? [$item->get_author_id()] : $item->get_author_id() );
|
$item_metadata->set_value( $metadatum->is_multiple() ? [$item->get_author_id()] : $item->get_author_id() );
|
||||||
return $this->save_item_metadata($item_metadata, $item);
|
return $this->save_item_metadata($item_metadata, $item);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -161,6 +161,43 @@
|
||||||
</b-select>
|
</b-select>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<template
|
||||||
|
v-else-if="bulkEditionProcedures[criterion] &&
|
||||||
|
bulkEditionProcedures[criterion].metadatumID &&
|
||||||
|
bulkEditionProcedures[criterion].action &&
|
||||||
|
bulkEditionProcedures[criterion].action == editionActionsForMultiple.copy">
|
||||||
|
<b-select
|
||||||
|
:loading="metadataIsLoading"
|
||||||
|
:class="{'is-field-history': bulkEditionProcedures[criterion].isDone, 'hidden-select-arrow': !!bulkEditionProcedures[criterion].metadatumIdCopyFrom }"
|
||||||
|
:disabled="bulkEditionProcedures[criterion].isDone || bulkEditionProcedures[criterion].isExecuting && !!bulkEditionProcedures[criterion].metadatumIdCopyFrom || metadataIsLoading"
|
||||||
|
class="tainacan-bulk-edition-field tainacan-bulk-edition-field-last"
|
||||||
|
:placeholder="$i18n.get('instruction_select_a_metadatum')"
|
||||||
|
@input="addToBulkEditionProcedures($event, 'metadatumIdCopyFrom', criterion)">
|
||||||
|
<template
|
||||||
|
v-for="(metadatum, index) in metadata">
|
||||||
|
<option
|
||||||
|
:key="index"
|
||||||
|
v-if="metadatum.id && metadatum.metadata_type_object.component !== 'tainacan-compound' && metadatum.parent <= 0"
|
||||||
|
:value="metadatum.id">
|
||||||
|
{{ metadatum.name }}
|
||||||
|
</option>
|
||||||
|
<optgroup
|
||||||
|
v-if="metadatum.id && metadatum.metadata_type_object.component === 'tainacan-compound'"
|
||||||
|
:key="index"
|
||||||
|
:label="metadatum.name">
|
||||||
|
<option
|
||||||
|
v-for="(childMetadatum, childIndex) of metadatum.metadata_type_options.children_objects"
|
||||||
|
:key="childIndex"
|
||||||
|
v-if="childMetadatum.id"
|
||||||
|
:value="childMetadatum.id">
|
||||||
|
{{ childMetadatum.name }}
|
||||||
|
</option>
|
||||||
|
</optgroup>
|
||||||
|
</template>
|
||||||
|
</b-select>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
<template
|
<template
|
||||||
v-else-if="bulkEditionProcedures[criterion] &&
|
v-else-if="bulkEditionProcedures[criterion] &&
|
||||||
bulkEditionProcedures[criterion].metadatumID &&
|
bulkEditionProcedures[criterion].metadatumID &&
|
||||||
|
@ -306,11 +343,13 @@
|
||||||
redefine: this.$i18n.get('set_new_value'),
|
redefine: this.$i18n.get('set_new_value'),
|
||||||
replace: this.$i18n.get('replace_value'),
|
replace: this.$i18n.get('replace_value'),
|
||||||
remove: this.$i18n.get('remove_a_value'),
|
remove: this.$i18n.get('remove_a_value'),
|
||||||
clear: this.$i18n.get('clear_values')
|
clear: this.$i18n.get('clear_values'),
|
||||||
|
copy: this.$i18n.get('copy_value')
|
||||||
},
|
},
|
||||||
editionActionsForNotMultiple: {
|
editionActionsForNotMultiple: {
|
||||||
redefine: this.$i18n.get('set_new_value'),
|
redefine: this.$i18n.get('set_new_value'),
|
||||||
clear: this.$i18n.get('clear_values')
|
clear: this.$i18n.get('clear_values'),
|
||||||
|
copy: this.$i18n.get('copy_value')
|
||||||
},
|
},
|
||||||
bulkEditionProcedures: {
|
bulkEditionProcedures: {
|
||||||
1: {
|
1: {
|
||||||
|
@ -389,7 +428,8 @@
|
||||||
'redefineValueInBulk',
|
'redefineValueInBulk',
|
||||||
'setStatusInBulk',
|
'setStatusInBulk',
|
||||||
'setCommentStatusInBulk',
|
'setCommentStatusInBulk',
|
||||||
'removeValueInBulk'
|
'removeValueInBulk',
|
||||||
|
'copyValuesInBulk'
|
||||||
]),
|
]),
|
||||||
...mapActions('metadata', [
|
...mapActions('metadata', [
|
||||||
'fetchMetadata'
|
'fetchMetadata'
|
||||||
|
@ -495,6 +535,19 @@
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.finalizeProcedure(criterion);
|
this.finalizeProcedure(criterion);
|
||||||
});
|
});
|
||||||
|
} else if (procedure.action === this.editionActionsForMultiple.copy) {
|
||||||
|
this.$set(this.bulkEditionProcedures[criterion], 'isExecuting', true);
|
||||||
|
|
||||||
|
this.copyValuesInBulk({
|
||||||
|
collectionID: this.collectionID,
|
||||||
|
groupID: this.groupID,
|
||||||
|
bodyParams: {
|
||||||
|
metadatum_id: procedure.metadatumID,
|
||||||
|
metadatum_id_copy_from: procedure.metadatumIdCopyFrom,
|
||||||
|
}
|
||||||
|
}).then(() => {
|
||||||
|
this.finalizeProcedure(criterion);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
addEditionCriterion() {
|
addEditionCriterion() {
|
||||||
|
|
|
@ -231,6 +231,26 @@ export const deleteItemsInBulk = ({commit}, parameters) => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export const copyValuesInBulk = ({commit}, parameters) => {
|
||||||
|
let groupID = parameters.groupID;
|
||||||
|
let collectionID = parameters.collectionID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bodyParams { metadatum_id, new_value } Object
|
||||||
|
* */
|
||||||
|
let bodyParams = parameters.bodyParams;
|
||||||
|
|
||||||
|
return axios.tainacan.post(`/collection/${collectionID}/bulk-edit/${groupID}/copy_value`, bodyParams)
|
||||||
|
.then(response => {
|
||||||
|
commit('setLastUpdated');
|
||||||
|
return response;
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
// SEQUENCE EDIT SPECIFIC
|
// SEQUENCE EDIT SPECIFIC
|
||||||
export const fetchItemIdInSequence = ({commit}, { collectionId, sequenceId, itemPosition }) => {
|
export const fetchItemIdInSequence = ({commit}, { collectionId, sequenceId, itemPosition }) => {
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,7 @@ return apply_filters( 'tainacan-admin-i18n', [
|
||||||
'add_one_edition_criterion' => __( 'Add one edition criterion', 'tainacan' ),
|
'add_one_edition_criterion' => __( 'Add one edition criterion', 'tainacan' ),
|
||||||
'set_new_value' => __( 'Set new value', 'tainacan' ),
|
'set_new_value' => __( 'Set new value', 'tainacan' ),
|
||||||
'replace_value' => __( 'Replace value', 'tainacan' ),
|
'replace_value' => __( 'Replace value', 'tainacan' ),
|
||||||
|
'copy_value' => __( 'Copy value', 'tainacan' ),
|
||||||
'finish' => __( 'Finish', 'tainacan' ),
|
'finish' => __( 'Finish', 'tainacan' ),
|
||||||
'select_to_create' => __( 'select to create', 'tainacan' ),
|
'select_to_create' => __( 'select to create', 'tainacan' ),
|
||||||
'new_action' => __( 'New action', 'tainacan' ),
|
'new_action' => __( 'New action', 'tainacan' ),
|
||||||
|
|
|
@ -1844,7 +1844,7 @@ class BulkEditBgProcess extends TAINACAN_UnitApiTestCase {
|
||||||
[
|
[
|
||||||
"method" => 'copy_value',
|
"method" => 'copy_value',
|
||||||
"metadatum_id" => $metadatum_owner->get_id(),
|
"metadatum_id" => $metadatum_owner->get_id(),
|
||||||
"metadatum_id_copy_from" => 'create_by',
|
"metadatum_id_copy_from" => 'created_by',
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$this->assertInternalType('int', $this->run_process($process));
|
$this->assertInternalType('int', $this->run_process($process));
|
||||||
|
|
Loading…
Reference in New Issue