From a8078c3fc672c3379596371978b7abc994f869eb Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 9 Apr 2024 20:35:36 +0300 Subject: [PATCH] row actions dividers --- .../meeting/record/row-actions/dashlet.js | 9 ++-- .../meeting/record/row-actions/default.js | 9 ++-- .../record/row-actions/activities-dashlet.js | 12 +++-- .../views/record/row-actions/activities.js | 7 ++- .../src/views/record/row-actions/history.js | 14 +++-- .../record/row-actions/relationship-target.js | 6 ++- .../crm/src/views/record/row-actions/tasks.js | 12 +++-- .../views/task/record/row-actions/dashlet.js | 6 ++- .../views/task/record/row-actions/default.js | 6 ++- .../templates/record/row-actions/default.tpl | 32 ++++++----- .../views/email/record/row-actions/dashlet.js | 21 +++++--- .../views/email/record/row-actions/default.js | 27 ++++++---- client/src/views/record/list.js | 3 +- .../record/row-actions/default-kanban.js | 4 ++ .../src/views/record/row-actions/default.js | 54 +++++++++++++++++-- .../record/row-actions/edit-and-remove.js | 4 +- .../relationship-edit-and-remove.js | 2 + .../row-actions/relationship-no-remove.js | 10 ++-- .../row-actions/relationship-no-unlink.js | 3 ++ .../row-actions/relationship-remove-only.js | 1 + .../row-actions/relationship-unlink-only.js | 1 + .../row-actions/relationship-view-and-edit.js | 2 + .../relationship-view-and-unlink.js | 2 + .../row-actions/relationship-view-only.js | 1 + .../views/record/row-actions/relationship.js | 4 ++ .../views/record/row-actions/remove-only.js | 1 + .../views/record/row-actions/view-and-edit.js | 2 + .../record/row-actions/view-and-remove.js | 2 + .../src/views/record/row-actions/view-only.js | 1 + schema/metadata/clientDefs.json | 5 ++ 30 files changed, 200 insertions(+), 63 deletions(-) diff --git a/client/modules/crm/src/views/meeting/record/row-actions/dashlet.js b/client/modules/crm/src/views/meeting/record/row-actions/dashlet.js index 0637468671..fec604735b 100644 --- a/client/modules/crm/src/views/meeting/record/row-actions/dashlet.js +++ b/client/modules/crm/src/views/meeting/record/row-actions/dashlet.js @@ -45,7 +45,8 @@ define('crm:views/meeting/record/row-actions/dashlet', ['views/record/row-action data: { id: this.model.id, scope: this.model.entityType, - } + }, + groupIndex: 1, }); actionList.push({ @@ -54,7 +55,8 @@ define('crm:views/meeting/record/row-actions/dashlet', ['views/record/row-action data: { id: this.model.id, scope: this.model.entityType, - } + }, + groupIndex: 1, }); } @@ -65,7 +67,8 @@ define('crm:views/meeting/record/row-actions/dashlet', ['views/record/row-action data: { id: this.model.id, scope: this.model.entityType, - } + }, + groupIndex: 0, }); } diff --git a/client/modules/crm/src/views/meeting/record/row-actions/default.js b/client/modules/crm/src/views/meeting/record/row-actions/default.js index 0798c55a77..febb7ed087 100644 --- a/client/modules/crm/src/views/meeting/record/row-actions/default.js +++ b/client/modules/crm/src/views/meeting/record/row-actions/default.js @@ -45,7 +45,8 @@ define('crm:views/meeting/record/row-actions/default', ['views/record/row-action data: { id: this.model.id, scope: this.model.entityType, - } + }, + groupIndex: 1, }); actionList.push({ @@ -54,7 +55,8 @@ define('crm:views/meeting/record/row-actions/default', ['views/record/row-action data: { id: this.model.id, scope: this.model.entityType, - } + }, + groupIndex: 1, }); } @@ -65,7 +67,8 @@ define('crm:views/meeting/record/row-actions/default', ['views/record/row-action data: { id: this.model.id, scope: this.model.entityType, - } + }, + groupIndex: 0, }); } diff --git a/client/modules/crm/src/views/record/row-actions/activities-dashlet.js b/client/modules/crm/src/views/record/row-actions/activities-dashlet.js index 1e2cb5d1be..a81a60acad 100644 --- a/client/modules/crm/src/views/record/row-actions/activities-dashlet.js +++ b/client/modules/crm/src/views/record/row-actions/activities-dashlet.js @@ -47,7 +47,8 @@ define('crm:views/record/row-actions/activities-dashlet', ['views/record/row-act label: 'Complete', data: { id: this.model.id - } + }, + groupIndex: 1, }); } } else { @@ -58,7 +59,8 @@ define('crm:views/record/row-actions/activities-dashlet', ['views/record/row-act data: { id: this.model.id, scope: this.model.entityType - } + }, + groupIndex: 1, }); actionList.push({ action: 'setNotHeld', @@ -66,7 +68,8 @@ define('crm:views/record/row-actions/activities-dashlet', ['views/record/row-act data: { id: this.model.id, scope: this.model.entityType - } + }, + groupIndex: 1, }); } } @@ -78,7 +81,8 @@ define('crm:views/record/row-actions/activities-dashlet', ['views/record/row-act data: { id: this.model.id, scope: this.model.entityType - } + }, + groupIndex: 0, }); } diff --git a/client/modules/crm/src/views/record/row-actions/activities.js b/client/modules/crm/src/views/record/row-actions/activities.js index 2f8c2c4b90..b52a65118a 100644 --- a/client/modules/crm/src/views/record/row-actions/activities.js +++ b/client/modules/crm/src/views/record/row-actions/activities.js @@ -38,6 +38,7 @@ define('crm:views/record/row-actions/activities', ['views/record/row-actions/rel id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit) { @@ -48,6 +49,7 @@ define('crm:views/record/row-actions/activities', ['views/record/row-actions/rel id: this.model.id, }, link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, }); if (this.model.entityType === 'Meeting' || this.model.entityType === 'Call') { @@ -57,6 +59,7 @@ define('crm:views/record/row-actions/activities', ['views/record/row-actions/rel data: { id: this.model.id, }, + groupIndex: 1, }); list.push({ @@ -65,6 +68,7 @@ define('crm:views/record/row-actions/activities', ['views/record/row-actions/rel data: { id: this.model.id, }, + groupIndex: 1, }); } } @@ -75,7 +79,8 @@ define('crm:views/record/row-actions/activities', ['views/record/row-actions/rel label: 'Remove', data: { id: this.model.id, - } + }, + groupIndex: 0, }); } diff --git a/client/modules/crm/src/views/record/row-actions/history.js b/client/modules/crm/src/views/record/row-actions/history.js index 226a81f5f2..688f909838 100644 --- a/client/modules/crm/src/views/record/row-actions/history.js +++ b/client/modules/crm/src/views/record/row-actions/history.js @@ -37,7 +37,8 @@ define('crm:views/record/row-actions/history', ['views/record/row-actions/relati data: { id: this.model.id }, - link: '#' + this.model.entityType + '/view/' + this.model.id + link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.model.entityType === 'Email') { @@ -46,7 +47,8 @@ define('crm:views/record/row-actions/history', ['views/record/row-actions/relati text: this.translate('Reply', 'labels', 'Email'), data: { id: this.model.id - } + }, + groupIndex: 1, }); } @@ -58,8 +60,9 @@ define('crm:views/record/row-actions/history', ['views/record/row-actions/relati data: { id: this.model.id }, - link: '#' + this.model.entityType + '/edit/' + this.model.id - } + link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, + }, ]); } @@ -69,7 +72,8 @@ define('crm:views/record/row-actions/history', ['views/record/row-actions/relati label: 'Remove', data: { id: this.model.id - } + }, + groupIndex: 0, }); } diff --git a/client/modules/crm/src/views/record/row-actions/relationship-target.js b/client/modules/crm/src/views/record/row-actions/relationship-target.js index 0159790dce..27fb06067e 100644 --- a/client/modules/crm/src/views/record/row-actions/relationship-target.js +++ b/client/modules/crm/src/views/record/row-actions/relationship-target.js @@ -40,7 +40,8 @@ define('crm:views/record/row-actions/relationship-target', ['views/record/row-ac text: this.translate('Cancel Opt-Out', 'labels', 'TargetList'), data: { id: this.model.id - } + }, + groupIndex: 1, }); } else { list.push({ @@ -48,7 +49,8 @@ define('crm:views/record/row-actions/relationship-target', ['views/record/row-ac text: this.translate('Opt-Out', 'labels', 'TargetList'), data: { id: this.model.id - } + }, + groupIndex: 1, }); } } diff --git a/client/modules/crm/src/views/record/row-actions/tasks.js b/client/modules/crm/src/views/record/row-actions/tasks.js index 09b7901e80..7ca051ee68 100644 --- a/client/modules/crm/src/views/record/row-actions/tasks.js +++ b/client/modules/crm/src/views/record/row-actions/tasks.js @@ -37,7 +37,8 @@ define('crm:views/record/row-actions/tasks', ['views/record/row-actions/relation data: { id: this.model.id }, - link: '#' + this.model.entityType + '/view/' + this.model.id + link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit) { @@ -47,7 +48,8 @@ define('crm:views/record/row-actions/tasks', ['views/record/row-actions/relation data: { id: this.model.id }, - link: '#' + this.model.entityType + '/edit/' + this.model.id + link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, }); if (!~['Completed', 'Canceled'].indexOf(this.model.get('status'))) { @@ -56,7 +58,8 @@ define('crm:views/record/row-actions/tasks', ['views/record/row-actions/relation text: this.translate('Complete', 'labels', 'Task'), data: { id: this.model.id - } + }, + groupIndex: 1, }); } } @@ -67,7 +70,8 @@ define('crm:views/record/row-actions/tasks', ['views/record/row-actions/relation label: 'Remove', data: { id: this.model.id - } + }, + groupIndex: 0, }); } diff --git a/client/modules/crm/src/views/task/record/row-actions/dashlet.js b/client/modules/crm/src/views/task/record/row-actions/dashlet.js index 05336c0266..9afbd5ca6d 100644 --- a/client/modules/crm/src/views/task/record/row-actions/dashlet.js +++ b/client/modules/crm/src/views/task/record/row-actions/dashlet.js @@ -39,7 +39,8 @@ define('crm:views/task/record/row-actions/dashlet', ['views/record/row-actions/v label: 'Complete', data: { id: this.model.id - } + }, + groupIndex: 1, }); } @@ -50,7 +51,8 @@ define('crm:views/task/record/row-actions/dashlet', ['views/record/row-actions/v data: { id: this.model.id, scope: this.model.entityType - } + }, + groupIndex: 0, }); } diff --git a/client/modules/crm/src/views/task/record/row-actions/default.js b/client/modules/crm/src/views/task/record/row-actions/default.js index ba31cce025..b8e051a2e5 100644 --- a/client/modules/crm/src/views/task/record/row-actions/default.js +++ b/client/modules/crm/src/views/task/record/row-actions/default.js @@ -39,7 +39,8 @@ define('crm:views/task/record/row-actions/default', ['views/record/row-actions/v label: 'Complete', data: { id: this.model.id - } + }, + groupIndex: 1, }); } @@ -50,7 +51,8 @@ define('crm:views/task/record/row-actions/default', ['views/record/row-actions/v data: { id: this.model.id, scope: this.model.entityType - } + }, + groupIndex: 0, }); } diff --git a/client/res/templates/record/row-actions/default.tpl b/client/res/templates/record/row-actions/default.tpl index e5f50a911d..77a5ab2491 100644 --- a/client/res/templates/record/row-actions/default.tpl +++ b/client/res/templates/record/row-actions/default.tpl @@ -7,18 +7,26 @@ > diff --git a/client/src/views/email/record/row-actions/dashlet.js b/client/src/views/email/record/row-actions/dashlet.js index cc75b675dd..85c8f280d1 100644 --- a/client/src/views/email/record/row-actions/dashlet.js +++ b/client/src/views/email/record/row-actions/dashlet.js @@ -46,7 +46,8 @@ define('views/email/record/row-actions/dashlet', ['views/record/row-actions/defa label: 'View', data: { id: this.model.id - } + }, + groupIndex: 0, }]; if (this.options.acl.edit) { @@ -56,7 +57,8 @@ define('views/email/record/row-actions/dashlet', ['views/record/row-actions/defa label: 'Edit', data: { id: this.model.id - } + }, + groupIndex: 0, } ]); } @@ -68,7 +70,8 @@ define('views/email/record/row-actions/dashlet', ['views/record/row-actions/defa label: 'Move to Trash', data: { id: this.model.id - } + }, + groupIndex: 1, }); } else { list.push({ @@ -76,7 +79,8 @@ define('views/email/record/row-actions/dashlet', ['views/record/row-actions/defa label: 'Retrieve from Trash', data: { id: this.model.id - } + }, + groupIndex: 1, }); } } @@ -87,7 +91,8 @@ define('views/email/record/row-actions/dashlet', ['views/record/row-actions/defa label: 'Remove', data: { id: this.model.id - } + }, + groupIndex: 0, }); } @@ -98,7 +103,8 @@ define('views/email/record/row-actions/dashlet', ['views/record/row-actions/defa label: 'Mark as Important', data: { id: this.model.id - } + }, + groupIndex: 1, }); } else { list.push({ @@ -106,7 +112,8 @@ define('views/email/record/row-actions/dashlet', ['views/record/row-actions/defa label: 'Unmark Importance', data: { id: this.model.id - } + }, + groupIndex: 1, }); } } diff --git a/client/src/views/email/record/row-actions/default.js b/client/src/views/email/record/row-actions/default.js index da3dcaf433..30c1df6f1d 100644 --- a/client/src/views/email/record/row-actions/default.js +++ b/client/src/views/email/record/row-actions/default.js @@ -47,7 +47,8 @@ define('views/email/record/row-actions/default', ['views/record/row-actions/defa label: 'View', data: { id: this.model.id - } + }, + groupIndex: 0, }]; if ( @@ -70,8 +71,9 @@ define('views/email/record/row-actions/default', ['views/record/row-actions/defa label: 'Edit', data: { id: this.model.id - } - } + }, + groupIndex: 0, + }, ]); } @@ -82,7 +84,8 @@ define('views/email/record/row-actions/default', ['views/record/row-actions/defa label: 'Move to Trash', data: { id: this.model.id - } + }, + groupIndex: 1, }); } else { list.push({ @@ -90,7 +93,8 @@ define('views/email/record/row-actions/default', ['views/record/row-actions/defa label: 'Retrieve from Trash', data: { id: this.model.id - } + }, + groupIndex: 1, }); } } @@ -103,7 +107,8 @@ define('views/email/record/row-actions/default', ['views/record/row-actions/defa label: 'Mark as Important', data: { id: this.model.id - } + }, + groupIndex: 1, }); } } else { @@ -112,7 +117,8 @@ define('views/email/record/row-actions/default', ['views/record/row-actions/defa label: 'Unmark Importance', data: { id: this.model.id - } + }, + groupIndex: 1, }); } } @@ -123,7 +129,8 @@ define('views/email/record/row-actions/default', ['views/record/row-actions/defa label: 'Move to Folder', data: { id: this.model.id - } + }, + groupIndex: 1, }); } @@ -133,12 +140,12 @@ define('views/email/record/row-actions/default', ['views/record/row-actions/defa label: 'Remove', data: { id: this.model.id - } + }, + groupIndex: 0, }); } return list; }, - }); }); diff --git a/client/src/views/record/list.js b/client/src/views/record/list.js index 1ae71c571d..a6e95f201d 100644 --- a/client/src/views/record/list.js +++ b/client/src/views/record/list.js @@ -52,6 +52,7 @@ class ListRecordView extends View { * @property {string} [link] A link. * @property {string} [text] A text. * @property {Object.} [data] Data attributes. + * @property {number} [groupIndex] A group index. */ /** @@ -3385,7 +3386,7 @@ class ListRecordView extends View { const defs = this.getMetadata().get(`clientDefs.${this.scope}.rowActionDefs`) || {}; const promiseList = list.map(action => { - /** @type {{handler: string, label?: string, labelTranslation?: string}} */ + /** @type {{handler: string, label?: string, labelTranslation?: string, groupIndex?: number}} */ const itemDefs = defs[action] || {}; if (!itemDefs.handler) { diff --git a/client/src/views/record/row-actions/default-kanban.js b/client/src/views/record/row-actions/default-kanban.js index 1fffbfcfa9..1eb368c8d8 100644 --- a/client/src/views/record/row-actions/default-kanban.js +++ b/client/src/views/record/row-actions/default-kanban.js @@ -38,6 +38,7 @@ class DefaultKanbanRowActionsView extends DefaultRowActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.statusFieldIsEditable) { @@ -47,6 +48,7 @@ class DefaultKanbanRowActionsView extends DefaultRowActionsView { data: { id: this.model.id, }, + groupIndex: 1, }); } @@ -58,6 +60,7 @@ class DefaultKanbanRowActionsView extends DefaultRowActionsView { id: this.model.id }, link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, }); } @@ -70,6 +73,7 @@ class DefaultKanbanRowActionsView extends DefaultRowActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } diff --git a/client/src/views/record/row-actions/default.js b/client/src/views/record/row-actions/default.js index d4a2f0427b..57be215a25 100644 --- a/client/src/views/record/row-actions/default.js +++ b/client/src/views/record/row-actions/default.js @@ -28,6 +28,21 @@ import View from 'view'; +/** + * @module views/record/row-actions/actions + */ + +/** + * @typedef {{ + * label?: string, + * labelTranslation?: string, + * acl?: string, + * groupIndex?: number, + * name?: string, + * text?: string, + * }} module:views/record/row-actions/actions~item + */ + /** * Row actions. */ @@ -42,7 +57,7 @@ class DefaultRowActionsView extends View { /** @type {Object.} */ this.handlers = this.options.rowActionHandlers || {}; - /** @type {{name: string, acl: string, text: string}[]} */ + /** @type {module:views/record/row-actions/actions~item[]} */ this.additionalActionDataList = []; this.setupAdditionalActions(); @@ -86,6 +101,7 @@ class DefaultRowActionsView extends View { id: this.model.id }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit) { @@ -96,6 +112,7 @@ class DefaultRowActionsView extends View { id: this.model.id }, link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, }); } @@ -108,6 +125,7 @@ class DefaultRowActionsView extends View { data: { id: this.model.id, }, + groupIndex: 0, }); } @@ -135,6 +153,7 @@ class DefaultRowActionsView extends View { id: this.model.id, actualAction: item.name, }, + groupIndex: item.groupIndex, }); }); @@ -142,9 +161,37 @@ class DefaultRowActionsView extends View { } data() { + /** @type {Array} */ + const dropdownGroups = []; + + this.getActionList().forEach(item => { + // For bc. + if (item === false) { + return; + } + + const index = item.groupIndex === undefined ? 9999 : item.groupIndex; + + if (dropdownGroups[index] === undefined) { + dropdownGroups[index] = []; + } + + dropdownGroups[index].push(item); + }); + + const dropdownItemList = []; + + dropdownGroups.forEach(list => { + list.forEach(it => dropdownItemList.push(it)); + + dropdownItemList.push(false); + }); + + console.log(dropdownItemList); + return { acl: this.options.acl, - actionList: this.getActionList(), + actionList: dropdownItemList, scope: this.model.entityType, }; } @@ -160,7 +207,7 @@ class DefaultRowActionsView extends View { const defs = this.getMetadata().get(`clientDefs.${this.scope}.rowActionDefs`) || {}; list.forEach(action => { - /** @type {{label?: string, labelTranslation?: string, acl?: string}} */ + /** @type {{label?: string, labelTranslation?: string, acl?: string, groupIndex?: number}} */ const itemDefs = defs[action] || {}; const text = itemDefs.labelTranslation ? @@ -171,6 +218,7 @@ class DefaultRowActionsView extends View { name: action, acl: itemDefs.acl, text: text, + groupIndex: itemDefs.groupIndex, }); }); } diff --git a/client/src/views/record/row-actions/edit-and-remove.js b/client/src/views/record/row-actions/edit-and-remove.js index f7d193cc7c..e99d3436b7 100644 --- a/client/src/views/record/row-actions/edit-and-remove.js +++ b/client/src/views/record/row-actions/edit-and-remove.js @@ -40,7 +40,8 @@ class EditAndRemoveRowActionsView extends DefaultRowActionsView { data: { id: this.model.id }, - link: '#' + this.model.entityType + '/edit/' + this.model.id + link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, }); } @@ -51,6 +52,7 @@ class EditAndRemoveRowActionsView extends DefaultRowActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } diff --git a/client/src/views/record/row-actions/relationship-edit-and-remove.js b/client/src/views/record/row-actions/relationship-edit-and-remove.js index 84fc578e9e..94d771b103 100644 --- a/client/src/views/record/row-actions/relationship-edit-and-remove.js +++ b/client/src/views/record/row-actions/relationship-edit-and-remove.js @@ -40,6 +40,7 @@ class RelationshipEditAndRemoveActionsView extends RelationshipActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } @@ -50,6 +51,7 @@ class RelationshipEditAndRemoveActionsView extends RelationshipActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } diff --git a/client/src/views/record/row-actions/relationship-no-remove.js b/client/src/views/record/row-actions/relationship-no-remove.js index 4364136165..6eaa272068 100644 --- a/client/src/views/record/row-actions/relationship-no-remove.js +++ b/client/src/views/record/row-actions/relationship-no-remove.js @@ -37,7 +37,8 @@ define('views/record/row-actions/relationship-no-remove', ['views/record/row-act data: { id: this.model.id }, - link: '#' + this.model.entityType + '/view/' + this.model.id + link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit) { @@ -47,15 +48,18 @@ define('views/record/row-actions/relationship-no-remove', ['views/record/row-act data: { id: this.model.id }, - link: '#' + this.model.entityType + '/edit/' + this.model.id + link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, }); + if (!this.options.unlinkDisabled) { list.push({ action: 'unlinkRelated', label: 'Unlink', data: { id: this.model.id - } + }, + groupIndex: 0, }); } } diff --git a/client/src/views/record/row-actions/relationship-no-unlink.js b/client/src/views/record/row-actions/relationship-no-unlink.js index dbe73ac735..35b37473ae 100644 --- a/client/src/views/record/row-actions/relationship-no-unlink.js +++ b/client/src/views/record/row-actions/relationship-no-unlink.js @@ -38,6 +38,7 @@ class RelationshipNoUnlinkActionsView extends RelationshipActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit) { @@ -49,6 +50,7 @@ class RelationshipNoUnlinkActionsView extends RelationshipActionsView { id: this.model.id }, link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, } ]); } @@ -60,6 +62,7 @@ class RelationshipNoUnlinkActionsView extends RelationshipActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } diff --git a/client/src/views/record/row-actions/relationship-remove-only.js b/client/src/views/record/row-actions/relationship-remove-only.js index 4d92b40543..bb9a9e869d 100644 --- a/client/src/views/record/row-actions/relationship-remove-only.js +++ b/client/src/views/record/row-actions/relationship-remove-only.js @@ -39,6 +39,7 @@ class RelationshipRemoveOnlyActionsView extends RelationshipActionsView { data: { id: this.model.id, }, + groupIndex: 0, }, ]; } diff --git a/client/src/views/record/row-actions/relationship-unlink-only.js b/client/src/views/record/row-actions/relationship-unlink-only.js index 1f1ad1b5e5..ba0072e9e1 100644 --- a/client/src/views/record/row-actions/relationship-unlink-only.js +++ b/client/src/views/record/row-actions/relationship-unlink-only.js @@ -39,6 +39,7 @@ class RelationshipUnlinkOnlyActionsView extends RelationshipActionsView { data: { id: this.model.id, }, + groupIndex: 0, }, ]; } diff --git a/client/src/views/record/row-actions/relationship-view-and-edit.js b/client/src/views/record/row-actions/relationship-view-and-edit.js index efd66df757..71152adaae 100644 --- a/client/src/views/record/row-actions/relationship-view-and-edit.js +++ b/client/src/views/record/row-actions/relationship-view-and-edit.js @@ -38,6 +38,7 @@ class RelationshipViewAndEditActionsView extends RelationshipActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit) { @@ -48,6 +49,7 @@ class RelationshipViewAndEditActionsView extends RelationshipActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, }); } diff --git a/client/src/views/record/row-actions/relationship-view-and-unlink.js b/client/src/views/record/row-actions/relationship-view-and-unlink.js index a2bb115a0c..ec7e5014c0 100644 --- a/client/src/views/record/row-actions/relationship-view-and-unlink.js +++ b/client/src/views/record/row-actions/relationship-view-and-unlink.js @@ -38,6 +38,7 @@ class RelationshipViewAndUnlinkActionsView extends RelationshipActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit && !this.options.unlinkDisabled) { @@ -47,6 +48,7 @@ class RelationshipViewAndUnlinkActionsView extends RelationshipActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } diff --git a/client/src/views/record/row-actions/relationship-view-only.js b/client/src/views/record/row-actions/relationship-view-only.js index e752f51d64..1df644f52b 100644 --- a/client/src/views/record/row-actions/relationship-view-only.js +++ b/client/src/views/record/row-actions/relationship-view-only.js @@ -39,6 +39,7 @@ class RelationshipViewOnlyActionsView extends RelationshipActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, } ]; } diff --git a/client/src/views/record/row-actions/relationship.js b/client/src/views/record/row-actions/relationship.js index 4c9e89827b..0cce75fda6 100644 --- a/client/src/views/record/row-actions/relationship.js +++ b/client/src/views/record/row-actions/relationship.js @@ -38,6 +38,7 @@ class RelationshipActionsView extends DefaultRowActionsView { id: this.model.id }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit && !this.options.editDisabled) { @@ -48,6 +49,7 @@ class RelationshipActionsView extends DefaultRowActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, }); } @@ -58,6 +60,7 @@ class RelationshipActionsView extends DefaultRowActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } @@ -70,6 +73,7 @@ class RelationshipActionsView extends DefaultRowActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } diff --git a/client/src/views/record/row-actions/remove-only.js b/client/src/views/record/row-actions/remove-only.js index aad973d7df..16eb773066 100644 --- a/client/src/views/record/row-actions/remove-only.js +++ b/client/src/views/record/row-actions/remove-only.js @@ -39,6 +39,7 @@ class RemoveOnlyRowActionsView extends DefaultRowActionsView { data: { id: this.model.id, }, + groupIndex: 0, } ]; } diff --git a/client/src/views/record/row-actions/view-and-edit.js b/client/src/views/record/row-actions/view-and-edit.js index ddd213fcfb..42cfc444f9 100644 --- a/client/src/views/record/row-actions/view-and-edit.js +++ b/client/src/views/record/row-actions/view-and-edit.js @@ -38,6 +38,7 @@ class ViewAndEditRowActionsView extends DefaultRowActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.edit) { @@ -49,6 +50,7 @@ class ViewAndEditRowActionsView extends DefaultRowActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/edit/' + this.model.id, + groupIndex: 0, } ]); } diff --git a/client/src/views/record/row-actions/view-and-remove.js b/client/src/views/record/row-actions/view-and-remove.js index 187a33946a..a346c76219 100644 --- a/client/src/views/record/row-actions/view-and-remove.js +++ b/client/src/views/record/row-actions/view-and-remove.js @@ -39,6 +39,7 @@ class ViewAndRemoveRowActionsView extends DefaultRowActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }]; if (this.options.acl.delete) { @@ -48,6 +49,7 @@ class ViewAndRemoveRowActionsView extends DefaultRowActionsView { data: { id: this.model.id, }, + groupIndex: 0, }); } diff --git a/client/src/views/record/row-actions/view-only.js b/client/src/views/record/row-actions/view-only.js index 31e4046b67..0576bb39a2 100644 --- a/client/src/views/record/row-actions/view-only.js +++ b/client/src/views/record/row-actions/view-only.js @@ -39,6 +39,7 @@ class ViewOnlyRowActionsView extends DefaultRowActionsView { id: this.model.id, }, link: '#' + this.model.entityType + '/view/' + this.model.id, + groupIndex: 0, }, ]; } diff --git a/schema/metadata/clientDefs.json b/schema/metadata/clientDefs.json index 854cd26b5c..f76dcce8d2 100644 --- a/schema/metadata/clientDefs.json +++ b/schema/metadata/clientDefs.json @@ -139,6 +139,11 @@ "handler": { "type": "string", "description": "A handler. Should extend handlers/row-action." + }, + "groupIndex": { + "type": "integer", + "minimum": 0, + "description": "A group index." } } }