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'];
|
||||
|
||||
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() );
|
||||
return $this->save_item_metadata($item_metadata, $item);
|
||||
} else {
|
||||
|
|
|
@ -161,6 +161,43 @@
|
|||
</b-select>
|
||||
</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
|
||||
v-else-if="bulkEditionProcedures[criterion] &&
|
||||
bulkEditionProcedures[criterion].metadatumID &&
|
||||
|
@ -306,11 +343,13 @@
|
|||
redefine: this.$i18n.get('set_new_value'),
|
||||
replace: this.$i18n.get('replace_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: {
|
||||
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: {
|
||||
1: {
|
||||
|
@ -389,7 +428,8 @@
|
|||
'redefineValueInBulk',
|
||||
'setStatusInBulk',
|
||||
'setCommentStatusInBulk',
|
||||
'removeValueInBulk'
|
||||
'removeValueInBulk',
|
||||
'copyValuesInBulk'
|
||||
]),
|
||||
...mapActions('metadata', [
|
||||
'fetchMetadata'
|
||||
|
@ -495,6 +535,19 @@
|
|||
}).then(() => {
|
||||
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() {
|
||||
|
|
|
@ -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
|
||||
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' ),
|
||||
'set_new_value' => __( 'Set new value', 'tainacan' ),
|
||||
'replace_value' => __( 'Replace value', 'tainacan' ),
|
||||
'copy_value' => __( 'Copy value', 'tainacan' ),
|
||||
'finish' => __( 'Finish', 'tainacan' ),
|
||||
'select_to_create' => __( 'select to create', 'tainacan' ),
|
||||
'new_action' => __( 'New action', 'tainacan' ),
|
||||
|
|
|
@ -1844,7 +1844,7 @@ class BulkEditBgProcess extends TAINACAN_UnitApiTestCase {
|
|||
[
|
||||
"method" => 'copy_value',
|
||||
"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));
|
||||
|
|
Loading…
Reference in New Issue