Add third-party self-referential relations
Introduce a self-referential many-to-many relation table so a third party can have child third parties. Each relation is directional (parent to child); both directions can coexist as independent rows. Add a first_level boolean on third_parties (default true) with a filter on the list page that defaults to showing only first-level third parties. Frontend adds a "Third Parties" tab on the detail page where users can link existing third parties or create new ones from the common third party catalog (created as non-first-level). The list page gets a First Level/All toggle filter. Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
@@ -39,6 +39,9 @@ import * as updateBusinessAssociateAgreementOp from './updateBusinessAssociateAg
|
||||
import * as getDataPrivacyAgreementOp from './getDataPrivacyAgreement.operation';
|
||||
import * as deleteDataPrivacyAgreementOp from './deleteDataPrivacyAgreement.operation';
|
||||
import * as updateDataPrivacyAgreementOp from './updateDataPrivacyAgreement.operation';
|
||||
import * as linkThirdPartyOp from './linkThirdParty.operation';
|
||||
import * as unlinkThirdPartyOp from './unlinkThirdParty.operation';
|
||||
import * as listChildThirdPartiesOp from './listChildThirdParties.operation';
|
||||
import * as publishOp from './publish.operation';
|
||||
|
||||
export const description: INodeProperties[] = [
|
||||
@@ -143,6 +146,12 @@ export const description: INodeProperties[] = [
|
||||
description: 'Get many third parties',
|
||||
action: 'Get many third parties',
|
||||
},
|
||||
{
|
||||
name: 'Get Many Child Third Parties',
|
||||
value: 'listChildThirdParties',
|
||||
description: 'Get child third parties linked to a parent',
|
||||
action: 'Get many child third parties',
|
||||
},
|
||||
{
|
||||
name: 'Get Many Compliance Reports',
|
||||
value: 'getAllComplianceReports',
|
||||
@@ -179,12 +188,24 @@ export const description: INodeProperties[] = [
|
||||
description: 'Get a third party service',
|
||||
action: 'Get a third party service',
|
||||
},
|
||||
{
|
||||
name: 'Link Third Party',
|
||||
value: 'linkThirdParty',
|
||||
description: 'Link a child third party to a parent third party',
|
||||
action: 'Link a child third party',
|
||||
},
|
||||
{
|
||||
name: 'Publish List',
|
||||
value: 'publish',
|
||||
description: 'Publish the third party register as a document version',
|
||||
action: 'Publish the third party register',
|
||||
},
|
||||
{
|
||||
name: 'Unlink Third Party',
|
||||
value: 'unlinkThirdParty',
|
||||
description: 'Unlink a child third party from a parent third party',
|
||||
action: 'Unlink a child third party',
|
||||
},
|
||||
{
|
||||
name: 'Update',
|
||||
value: 'update',
|
||||
@@ -244,6 +265,9 @@ export const description: INodeProperties[] = [
|
||||
...getDataPrivacyAgreementOp.description,
|
||||
...deleteDataPrivacyAgreementOp.description,
|
||||
...updateDataPrivacyAgreementOp.description,
|
||||
...linkThirdPartyOp.description,
|
||||
...unlinkThirdPartyOp.description,
|
||||
...listChildThirdPartiesOp.description,
|
||||
...publishOp.description,
|
||||
];
|
||||
|
||||
@@ -274,5 +298,8 @@ export {
|
||||
getDataPrivacyAgreementOp as getDataPrivacyAgreement,
|
||||
deleteDataPrivacyAgreementOp as deleteDataPrivacyAgreement,
|
||||
updateDataPrivacyAgreementOp as updateDataPrivacyAgreement,
|
||||
linkThirdPartyOp as linkThirdParty,
|
||||
unlinkThirdPartyOp as unlinkThirdParty,
|
||||
listChildThirdPartiesOp as listChildThirdParties,
|
||||
publishOp as publish,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user