1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-15 00:15:57 +08:00
Leonel Matos 2c35e3f978 Support to private access feature (#174)
* add feature for go to print format setup window from report viewer

* change translation

* add feature for field condition in table records

* add private access feature

* some changes

* redefine

* add notification for lock and unlock records

* bugfix syntax

* bugfix lock and unlock records
2019-12-03 15:18:16 -04:00

348 lines
11 KiB
JavaScript

import { getLanguage } from '@/lang/index'
import { getToken } from '@/utils/auth'
import BusinessData from '@adempiere/grpc-data-client'
import { HOST_GRPC_DATA } from '@/api/ADempiere/constants'
// Get Instance for connection
function Instance() {
return new BusinessData(
HOST_GRPC_DATA,
getToken(),
getLanguage() || 'en_US'
)
}
/**
* Converted the gRPC value to the value needed
* @param {object} grpcValue Value get of gRPC
* @returns {mixed}
*/
export function convertValueFromGRPC(grpcValue) {
return Instance.call(this).convertValueFromGRPC(grpcValue)
}
/**
* Create entity
* @param {string} parameters.tableName
* @param {array} parameters.attributesList
*/
export function createEntity(parameters) {
var entityRequest = Instance.call(this).getCreateEntityRequest()
entityRequest.setTablename(parameters.tableName)
if (parameters.attributesList && parameters.attributesList.length) {
parameters.attributesList.forEach(attribute => {
const convertedAttribute = Instance.call(this).convertParameter(attribute)
entityRequest.addAttributes(convertedAttribute)
})
}
// Create Entity
return Instance.call(this).createEntity(entityRequest)
}
/**
* Update entity
* @param {string} parameters.tableName
* @param {integer} parameters.recordId
* @param {string} parameters.recordUuid
* @param {array} parameters.attributesList
*/
export function updateEntity(parameters) {
var entityRequest = Instance.call(this).getUpdateEntityRequest()
entityRequest.setTablename(parameters.tableName)
if (parameters.recordId) {
entityRequest.setRecordid(parameters.recordId)
}
entityRequest.setUuid(parameters.recordUuid)
if (parameters.attributesList && parameters.attributesList.length) {
parameters.attributesList.forEach(attribute => {
const convertedAttribute = Instance.call(this).convertParameter(attribute)
entityRequest.addAttributes(convertedAttribute)
})
}
// Update Entity
return Instance.call(this).updateEntity(entityRequest)
}
/**
* Delete entity
* @param {string} parameters.tableName
* @param {integer} parameters.recordId
* @param {string} parameters.recordUuid
* @param {array} parameters.attributesList
*/
export function deleteEntity(parameters) {
var entityRequest = Instance.call(this).getUpdateEntityRequest()
entityRequest.setTablename(parameters.tableName)
if (parameters.recordId) {
entityRequest.setRecordid(parameters.recordId)
}
entityRequest.setUuid(parameters.recordUuid)
// Delete Entity
return Instance.call(this).deleteEntity(entityRequest)
}
export function getCriteria(tableName) {
return Instance.call(this).getCriteria(tableName)
}
export function getObject(table, uuid = false, id = false) {
return Instance.call(this).getEntity(
Instance.call(this).getEntityRequest(table, uuid, id)
)
}
/**
* Object List from window
* @param {string} object.tableName
* @param {string} object.query
* @param {string} object.whereClause
* @param {string} object.orderByClause
*/
export function getObjectListFromCriteria(object) {
const criteriaForList = getCriteria(object.tableName)
criteriaForList.setQuery(object.query)
if (object.whereClause) {
criteriaForList.setWhereclause(object.whereClause)
}
if (object.orderByClause) {
criteriaForList.setOrderbyclause(object.orderByClause)
}
// add conditions
if (object.conditions && object.conditions.length) {
object.conditions.forEach(itemCondition => {
const convertCondition = Instance.call(this).convertCondition(itemCondition)
criteriaForList.addConditions(convertCondition)
})
}
var nextPageToken
if (object.nextPageToken) {
nextPageToken = object.nextPageToken
}
return Instance.call(this).requestObjectListFromCriteria(criteriaForList, nextPageToken)
}
/**
* Rollback entity (Create, Update, Delete)
* @param {string} parametersRollback.tableName
* @param {integer} parametersRollback.recordId
* @param {string} parametersRollback.eventType
*/
export function rollbackEntity(parametersRollback) {
var rollbackRequest = Instance.call(this).getRollbackEntityRequest()
rollbackRequest.setTablename(parametersRollback.tableName)
rollbackRequest.setRecordid(parametersRollback.recordId)
// set event type
var eventType = Instance.call(this).getEventType()
eventType = eventType[parametersRollback.eventType]
rollbackRequest.setEventtype(eventType)
return Instance.call(this).rollbackEntityRequest(rollbackRequest)
}
/**
* Request a Lookup list data from Reference
* The main attributes that function hope are:
* @param {string} reference.tableName
* @param {string} reference.query
*/
export function getLookupList(reference) {
return Instance.call(this).requestLookupListFromReference(reference)
}
/**
* Request a Lookup data from Reference
* The main attributes that function hope are:
* @param {string} reference.tableName
* @param {string} reference.directQuery
* @param {string|number} value
*/
export function getLookup(reference) {
return Instance.call(this).requestLookupFromReference({
tableName: reference.tableName,
directQuery: reference.directQuery
}, reference.value)
}
/**
* Request a process
* This function allows follow structure:
* @param {object} process
* @param {string} process.uuid, uuid from process to run
* @param {integer} process.tableName, table name of tab, used only window
* @param {integer} process.recordId, record identifier, used only window
* @param {array} process.parameters, parameters from process
[ { columnName, value } ]
* @param {array} process.selection, selection records, used only browser
[ {
selectionId,
selectionValues [
{ columnName, value }
]
} ]
*/
export function runProcess(process) {
var processRequest = Instance.call(this).getProcessRequest()
// Fill Request process
processRequest.setUuid(process.uuid)
// report export type
if (process.reportType) {
processRequest.setReporttype(process.reportType)
}
// process params
if (process.parameters && process.parameters.length) {
process.parameters.forEach(parameter => {
const convertedParameter = Instance.call(this).convertParameter(parameter)
processRequest.addParameters(convertedParameter)
})
}
// record in window
if (process.tableName) {
processRequest.setTablename(process.tableName)
processRequest.setRecordid(process.recordId)
}
// browser selection list records
if (process.selection && process.selection.length) {
process.selection.forEach(record => {
// selection format = { selectionId: integer, selectionValues: array }
const convertedRecord = Instance.call(this).convertSelection(record)
processRequest.addSelections(convertedRecord)
})
}
// Run Process
return Instance.call(this).requestProcess(processRequest)
}
/**
* Request a browser search
* This function allows follow structure:
* @param {string} browser.uuid
* @param {string} browser.query
* @param {string} browser.whereClause
* @param {string} browser.orderByClause
* @param {array} browser.parameters
* [{
* columnName,
* value
* }]
*/
export function getBrowserSearch(browser) {
var browserRequest = Instance.call(this).getBrowserRequest()
var criteria = Instance.call(this).getCriteria('')
// Fill Request browser
browserRequest.setUuid(browser.uuid)
criteria.setQuery(browser.query)
criteria.setWhereclause(browser.whereClause)
criteria.setOrderbyclause(browser.orderByClause)
if (browser.nextPageToken) {
browserRequest.setPageToken(browser.nextPageToken)
}
browserRequest.setCriteria(criteria)
/* isQueryCriteria fields parameters */
if (browser.parameters !== undefined) {
browser.parameters.forEach(parameter => {
const convertedParameter = Instance.call(this).convertParameter(parameter)
browserRequest.addParameters(convertedParameter)
})
}
// Run browser
return Instance.call(this).requestBrowser(browserRequest)
}
// Request a Process Activity list
export function requestProcessActivity() {
// Get Process Activity
return Instance.call(this).requestProcessActivity()
}
export function getRecentItems() {
return Instance.call(this).requestRecentItems()
}
/**
* forget password
* @param {string} parameters.forgetPassword
*/
export function getForgetPassword(parameters) {
return Instance.call(this).requestForgetPassword(parameters)
}
/**
* Reference List from Window
* @param {string} parameters.tableName
* @param {string} parameters.windowUuid
* @param {string} parameters.recordUuid
* @param {integer} parameters.recordId
*/
export function getReferencesList(parameters) {
var requestReference = Instance.call(this).getReferencesRequest()
requestReference.setWindowuuid(parameters.windowUuid)
requestReference.setTablename(parameters.tableName)
requestReference.setUuid(parameters.recordUuid)
if (parameters.recordId) {
requestReference.setRecordid(parameters.recordId)
}
return Instance.call(this).listReferencesRequest(requestReference)
}
/**
* Run callout request
* @param {string} parametersCallout.windowUuid
* @param {integer} parametersCallout.windowNo
* @param {string} parametersCallout.tabUuid
* @param {string} parametersCallout.tableName
* @param {string} parametersCallout.columnName
* @param {mixed} parametersCallout.value
* @param {mixed} parametersCallout.oldValue
* @param {string} parametersCallout.callout
* @param {array} parametersCallout.attributesList
* @returns {Map} Entity
*/
export function runCallOutRequest(parametersCallout) {
return Instance.call(this).runCalloutRequest(parametersCallout)
}
export function getDefaultValueFromServer(query) {
return Instance.call(this).getDefaultValue(query)
}
export function getContextInfoValueFromServer({ uuid, query }) {
return Instance.call(this).getContextInfoValue({ uuid: uuid, query: query })
}
export function getPrivateAccessFromServer({ tableName: tableName, recordId: recordId, userUuid: userUuid }) {
return Instance.call(this).getPrivateAccess({ tableName: tableName, recordId: recordId, userUuid: userUuid })
}
export function lockPrivateAccessFromServer({ tableName: tableName, recordId: recordId, userUuid: userUuid }) {
return Instance.call(this).lockPrivateAccess({ tableName: tableName, recordId: recordId, userUuid: userUuid })
}
export function unlockPrivateAccessFromServer({ tableName: tableName, recordId: recordId, userUuid: userUuid }) {
return Instance.call(this).unlockPrivateAccess({ tableName: tableName, recordId: recordId, userUuid: userUuid })
}
export function getFavoritesFromServer(userUuid) {
return Instance.call(this).requestFavorites(userUuid)
}
export function getPendingDocumentsFromServer(userUuid, roleUuid) {
return Instance.call(this).requestPendingDocuments(userUuid, roleUuid)
}
export function requestReportViews({ tableName, processUuid }) {
return Instance.call(this).requestReportViews({ tableName: tableName, processUuid: processUuid })
}
export function requestPrintFormats({ tableName, reportViewUuid, processUuid }) {
return Instance.call(this).requestPrintFormats({ tableName: tableName, reportViewUuid: reportViewUuid, processUuid: processUuid })
}