diff --git a/src/components/ADempiere/Tab/index.vue b/src/components/ADempiere/Tab/index.vue index b3c6402b..57e1c164 100644 --- a/src/components/ADempiere/Tab/index.vue +++ b/src/components/ADempiere/Tab/index.vue @@ -29,8 +29,8 @@ :style="tabParentStyle" > - - + + @@ -109,9 +109,47 @@ export default { }, tabUuid(value) { this.setCurrentTab() + }, + record(value) { + const tableName = this.windowMetadata.firstTab.tableName + if (value) { + this.$store.dispatch('getPrivateAccessFromServer', { + tableName, + recordId: this.record[tableName + '_ID'], + recordUuid: this.record.UUID + }) + .then(privateAccessResponse => { + this.lock = privateAccessResponse.isLocked + }) + } } }, methods: { + lockRecord() { + this.lock = !this.lock + const tableName = this.windowMetadata.firstTab.tableName + const action = this.lock ? 'lockRecord' : 'unlockRecord' + const message = !this.lock ? 'lockRecord' : 'unlockRecord' + this.$store.dispatch(action, { + tableName, + recordId: this.record[tableName + '_ID'], + recordUuid: this.record.UUID + }) + .then(() => { + this.$message({ + type: 'success', + message: this.$t('data.' + message), + showClose: true + }) + }) + .catch(() => { + this.$message({ + type: 'error', + message: this.$t('data.isError') + this.$t('data.' + message), + showClose: true + }) + }) + }, setCurrentTab() { this.$store.dispatch('setCurrentTab', { parentUuid: this.windowUuid, diff --git a/src/components/ADempiere/Tab/tabMixin.js b/src/components/ADempiere/Tab/tabMixin.js index fbd83e77..d96ed5e2 100644 --- a/src/components/ADempiere/Tab/tabMixin.js +++ b/src/components/ADempiere/Tab/tabMixin.js @@ -28,6 +28,10 @@ export default { tabsList: { type: Array, default: () => [] + }, + record: { + type: Object, + default: () => {} } }, data() { diff --git a/src/lang/ADempiere/en.js b/src/lang/ADempiere/en.js index e965f488..b221965c 100644 --- a/src/lang/ADempiere/en.js +++ b/src/lang/ADempiere/en.js @@ -360,7 +360,8 @@ export default { isReadonly: 'Reading Only', isDependentEntities: 'Dependent Entities', isLock: 'Block', - isUnlock: 'Unblock' + isUnlock: 'Unblock', + isError: 'Error on ' }, selectionRequired: 'You must select a record', undo: 'Undo', diff --git a/src/lang/ADempiere/es.js b/src/lang/ADempiere/es.js index 7ffcbe2f..d8fd7463 100644 --- a/src/lang/ADempiere/es.js +++ b/src/lang/ADempiere/es.js @@ -102,7 +102,7 @@ export default { releases: 'Liberaciones', branches: 'Ramas', code: 'Código', - issues: 'Solicitudes de extracción', + issues: 'Asuntos', downloadZip: 'descargar Zip', releaseNotes: 'Nota de Liberaciones' @@ -321,7 +321,7 @@ export default { deleteRecordSuccessful: 'Registro eliminado exitosamente', deleteRecordError: 'Error al eliminar el regitro', exportRecord: 'Exportar Registro', - lockRecord: 'Bloquear Registro', + lockRecord: 'Registro Bloqueado', noDescription: 'Sin Descripción', recordAccess: { modeMobile: { @@ -336,11 +336,12 @@ export default { isReadonly: 'Solo Lectura', isDependentEntities: 'Entidades Dependientes', isLock: 'Bloquear', - isUnlock: 'Desbloquear' + isUnlock: 'Desbloquear', + isError: 'Error al ' }, selectionRequired: 'Debe seleccionar un registro', undo: 'Deshacer', - unlockRecord: 'Desbloquear Registro' + unlockRecord: 'Registro Desbloqueado' }, sequence: { available: 'Disponibles', diff --git a/src/views/ADempiere/Window/index.vue b/src/views/ADempiere/Window/index.vue index 90bd00af..18114982 100644 --- a/src/views/ADempiere/Window/index.vue +++ b/src/views/ADempiere/Window/index.vue @@ -102,6 +102,7 @@ :window-uuid="windowUuid" :window-metadata="windowMetadata" :tabs-list="windowMetadata.tabsListParent" + :record="currentRecord" class="tab-window" />