diff --git a/src/api/ADempiere/private-access.js b/src/api/ADempiere/actions/private-access.js
similarity index 56%
rename from src/api/ADempiere/private-access.js
rename to src/api/ADempiere/actions/private-access.js
index c089533e..ea518e17 100644
--- a/src/api/ADempiere/private-access.js
+++ b/src/api/ADempiere/actions/private-access.js
@@ -17,10 +17,8 @@
// Get Instance for connection
import { request } from '@/utils/ADempiere/request'
-import { convertPrivateAccess } from '@/utils/ADempiere/apiConverts/privateAccess.js'
-
// Get private access for a record
-export function requestGetPrivateAccess({
+export function getPrivateAccess({
tableName,
recordId,
recordUuid
@@ -35,12 +33,16 @@ export function requestGetPrivateAccess({
}
})
.then(responsePrivateAccess => {
- return convertPrivateAccess(responsePrivateAccess)
+ return {
+ tableName: responsePrivateAccess.table_name,
+ recordId: responsePrivateAccess.record_id,
+ recordUuid: responsePrivateAccess.record_uuid
+ }
})
}
// Lock a record for a user
-export function requestLockPrivateAccess({
+export function lockPrivateAccess({
tableName,
recordId,
recordUuid
@@ -55,12 +57,16 @@ export function requestLockPrivateAccess({
}
})
.then(responsePrivateAccess => {
- return convertPrivateAccess(responsePrivateAccess)
+ return {
+ tableName: responsePrivateAccess.table_name,
+ recordId: responsePrivateAccess.record_id,
+ recordUuid: responsePrivateAccess.record_uuid
+ }
})
}
// Unlock a record from a user
-export function requestUnlockPrivateAccess({
+export function unlockPrivateAccess({
tableName,
recordId,
recordUuid
@@ -75,62 +81,10 @@ export function requestUnlockPrivateAccess({
}
})
.then(responsePrivateAccess => {
- return convertPrivateAccess(responsePrivateAccess)
- })
-}
-
-/**
- * List Rol Access Record
- * @param {string} tableName
- * @param {number} recordId
- * @param {string} recordUuid
- * @param {string} sessionUuid
- */
-export function getAccessList({
- tableName,
- recordId,
- recordUuid,
- sessionUuid
-}) {
- return request({
- url: '/ui/update-access-record',
- method: 'post',
- params: {
- table_name: tableName,
- id: recordId,
- uuid: recordUuid,
- token: sessionUuid
- }
- })
- .then(respose => {
- return respose
- })
-}
-
-/**
- * Update Access Record
- * @param {string} tableName
- * @param {number} recordId
- * @param {string} recordUuid
- * @param {array} listRol
- */
-export function updateAccessRecord({
- tableName,
- recordId,
- recordUuid,
- listRecord
-}) {
- return request({
- url: '/ui/update-access-record',
- method: 'post',
- params: {
- table_name: tableName,
- id: recordId,
- uuid: recordUuid,
- list_rol: listRecord
- }
- })
- .then(response => {
- return response
+ return {
+ tableName: responsePrivateAccess.table_name,
+ recordId: responsePrivateAccess.record_id,
+ recordUuid: responsePrivateAccess.record_uuid
+ }
})
}
diff --git a/src/api/ADempiere/actions/record-access.js b/src/api/ADempiere/actions/record-access.js
new file mode 100644
index 00000000..409d7ca2
--- /dev/null
+++ b/src/api/ADempiere/actions/record-access.js
@@ -0,0 +1,121 @@
+// ADempiere-Vue (Frontend) for ADempiere ERP & CRM Smart Business Solution
+// Copyright (C) 2017-Present E.R.P. Consultores y Asociados, C.A.
+// Contributor(s): Yamel Senih ysenih@erpya.com www.erpya.com
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+// Get Instance for connection
+import { request } from '@/utils/ADempiere/request'
+
+/**
+ * List Rol Access Record
+ * @param {string} tableName
+ * @param {number} recordId
+ * @param {string} recordUuid
+ * @param {string} sessionUuid
+ */
+export function getRecordAccess({
+ tableName,
+ recordId,
+ recordUuid
+}) {
+ return new Promise(resolve => {
+ request({
+ url: '/ui/record-access',
+ method: 'get',
+ params: {
+ table_name: tableName,
+ id: recordId,
+ uuid: recordUuid
+ }
+ })
+ .then(respose => {
+ resolve(convertRecordAccess(respose))
+ })
+ })
+}
+
+/**
+ * Update Access Record
+ * @param {string} tableName
+ * @param {number} recordId
+ * @param {string} recordUuid
+ * @param {array} listRol
+ */
+export function setRecordAccess({
+ recordId,
+ recordUuid,
+ tableName,
+ recordAccesses
+}) {
+ return request({
+ url: '/ui/set-record-access',
+ method: 'post',
+ data: {
+ table_name: tableName,
+ id: recordId,
+ uuid: recordUuid,
+ record_accesses: recordAccesses.map(access => {
+ return {
+ role_id: access.roleId,
+ role_uuid: access.roleUuid,
+ role_name: access.roleName,
+ is_active: access.isActive,
+ is_exclude: access.isExclude,
+ is_read_only: access.isReadOnly,
+ is_dependent_entities: access.isDependentEntities
+ }
+ })
+ }
+ })
+ .then(response => {
+ return response
+ })
+}
+
+/**
+ * Convert stub from request
+ * @param {Record Access} recordAccess
+ * @returns
+ */
+function convertRecordAccess(recordAccess) {
+ return {
+ tableName: recordAccess.table_name,
+ id: recordAccess.id,
+ uuid: recordAccess.uuid,
+ availableRoles: recordAccess.available_roles.map(role => {
+ return convertRecordAccessRole(role)
+ }),
+ currentRoles: recordAccess.current_roles.map(role => {
+ return convertRecordAccessRole(role)
+ })
+ }
+}
+
+/**
+ * Convert role definition
+ */
+function convertRecordAccessRole(recordAccessRole) {
+ if (recordAccessRole) {
+ return {
+ roleId: recordAccessRole.role_id,
+ roleUuid: recordAccessRole.role_uuid,
+ roleName: recordAccessRole.role_name,
+ isActive: recordAccessRole.is_active,
+ isExclude: recordAccessRole.is_exclude,
+ isReadOnly: recordAccessRole.is_read_only,
+ isDependentEntities: recordAccessRole.is_dependent_entities
+ }
+ }
+ return undefined
+}
diff --git a/src/components/ADempiere/ContextMenu/contextMenuDesktop.vue b/src/components/ADempiere/ContextMenu/contextMenuDesktop.vue
index 5703355f..5f765223 100644
--- a/src/components/ADempiere/ContextMenu/contextMenuDesktop.vue
+++ b/src/components/ADempiere/ContextMenu/contextMenuDesktop.vue
@@ -271,6 +271,7 @@ export default {
} else if (action.action === 'recordAccess') {
this.$store.commit('changeShowRigthPanel', true)
this.$store.commit('setRecordAccess', true)
+ this.$store.commit('attributeEmbedded', action)
this.runAction(action)
} else {
this.runAction(action)
diff --git a/src/components/ADempiere/ContextMenu/contextMenuMixin.js b/src/components/ADempiere/ContextMenu/contextMenuMixin.js
index b542d171..11009a73 100644
--- a/src/components/ADempiere/ContextMenu/contextMenuMixin.js
+++ b/src/components/ADempiere/ContextMenu/contextMenuMixin.js
@@ -426,11 +426,6 @@ export default {
}
}
if (this.isWindow && this.isEmptyValue(this.actions.find(element => element.action === 'recordAccess'))) {
- this.$store.dispatch('addAttribute', {
- tableName: this.tableNameCurrentTab,
- recordId: this.getCurrentRecord[this.tableNameCurrentTab + '_ID'],
- recordUuid: this.$route.query.action
- })
this.actions.push(this.recordAccess)
}
diff --git a/src/components/ADempiere/Dialog/embedded.vue b/src/components/ADempiere/Dialog/embedded.vue
new file mode 100644
index 00000000..a60d4ed8
--- /dev/null
+++ b/src/components/ADempiere/Dialog/embedded.vue
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/ADempiere/Dialog/index.vue b/src/components/ADempiere/Dialog/index.vue
index 89762832..652cd711 100644
--- a/src/components/ADempiere/Dialog/index.vue
+++ b/src/components/ADempiere/Dialog/index.vue
@@ -17,6 +17,7 @@
-->
-
-