From e79e9d6ce1f259688cf07368440fad96815156a4 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sun, 23 Feb 2025 15:03:09 +0200 Subject: [PATCH] ref --- .../res/templates/campaign/tracking-url.tpl | 9 -- .../crm/src/views/call/record/detail.js | 104 +++++++++--------- .../modules/crm/src/views/campaign/detail.js | 6 +- .../crm/src/views/campaign/tracking-url.js | 32 ++++-- .../crm/src/views/case/fields/contact.js | 7 +- .../crm/src/views/case/record/detail.js | 31 +++--- .../modules/crm/src/views/contact/detail.js | 7 +- .../crm/src/views/lead/record/detail.js | 37 +++---- .../crm/src/views/meeting/record/detail.js | 2 +- client/modules/crm/src/views/task/detail.js | 5 +- client/modules/crm/src/views/task/list.js | 6 +- .../modules/crm/src/views/task/record/list.js | 39 ++++--- 12 files changed, 138 insertions(+), 147 deletions(-) delete mode 100644 client/modules/crm/res/templates/campaign/tracking-url.tpl diff --git a/client/modules/crm/res/templates/campaign/tracking-url.tpl b/client/modules/crm/res/templates/campaign/tracking-url.tpl deleted file mode 100644 index 6a9e6d4bee..0000000000 --- a/client/modules/crm/res/templates/campaign/tracking-url.tpl +++ /dev/null @@ -1,9 +0,0 @@ -
-
-
-
-
{{complexText message}}
-
-
-
-
diff --git a/client/modules/crm/src/views/call/record/detail.js b/client/modules/crm/src/views/call/record/detail.js index 509eecefe0..ac1af10f43 100644 --- a/client/modules/crm/src/views/call/record/detail.js +++ b/client/modules/crm/src/views/call/record/detail.js @@ -26,63 +26,63 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/call/record/detail', ['views/record/detail'], function (Dep) { +import DetailRecordView from 'views/record/detail'; - return Dep.extend({ +export default class extends DetailRecordView { - duplicateAction: true, + duplicateAction = true - setupActionItems: function () { - Dep.prototype.setupActionItems.call(this); + setupActionItems() { + super.setupActionItems(); - if ( - this.getAcl().checkModel(this.model, 'edit') && - this.getAcl().checkField(this.entityType, 'status', 'edit') - ) { - if (['Held', 'Not Held'].indexOf(this.model.get('status')) === -1) { - this.dropdownItemList.push({ - 'label': 'Set Held', - 'name': 'setHeld', - }); - - this.dropdownItemList.push({ - 'label': 'Set Not Held', - 'name': 'setNotHeld', - }); - } - } - }, - - manageAccessEdit: function (second) { - Dep.prototype.manageAccessEdit.call(this, second); - - if (second) { - if (!this.getAcl().checkModel(this.model, 'edit', true)) { - this.hideActionItem('setHeld'); - this.hideActionItem('setNotHeld'); - } - } - }, - - actionSetHeld: function () { - this.model.save({status: 'Held'}, {patch: true}) - .then(() => { - Espo.Ui.success(this.translate('Saved')); - - this.removeButton('setHeld'); - this.removeButton('setNotHeld'); + if ( + this.getAcl().checkModel(this.model, 'edit') && + this.getAcl().checkField(this.entityType, 'status', 'edit') + ) { + if (!['Held', 'Not Held'].includes(this.model.attributes.status)) { + this.dropdownItemList.push({ + label: 'Set Held', + name: 'setHeld', + onClick: () => this.actionSetHeld(), }); - }, - actionSetNotHeld: function () { - this.model.save({status: 'Not Held'}, {patch: true}) - .then(() => { - Espo.Ui.success(this.translate('Saved')); - - this.removeButton('setHeld'); - this.removeButton('setNotHeld'); + this.dropdownItemList.push({ + label: 'Set Not Held', + name: 'setNotHeld', + onClick: () => this.actionSetNotHeld(), }); - }, - }); -}); + } + } + } + manageAccessEdit(second) { + super.manageAccessEdit(second); + + if (second) { + if (!this.getAcl().checkModel(this.model, 'edit', true)) { + this.hideActionItem('setHeld'); + this.hideActionItem('setNotHeld'); + } + } + } + + actionSetHeld() { + this.model.save({status: 'Held'}, {patch: true}) + .then(() => { + Espo.Ui.success(this.translate('Saved')); + + this.removeActionItem('setHeld'); + this.removeActionItem('setNotHeld'); + }); + } + + actionSetNotHeld() { + this.model.save({status: 'Not Held'}, {patch: true}) + .then(() => { + Espo.Ui.success(this.translate('Saved')); + + this.removeActionItem('setHeld'); + this.removeActionItem('setNotHeld'); + }); + } +} diff --git a/client/modules/crm/src/views/campaign/detail.js b/client/modules/crm/src/views/campaign/detail.js index d981153abe..b1bfb6c5cc 100644 --- a/client/modules/crm/src/views/campaign/detail.js +++ b/client/modules/crm/src/views/campaign/detail.js @@ -26,8 +26,6 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/campaign/detail', ['views/detail'], function (Dep) { +import DetailView from 'views/detail'; - /** Left for bc. */ - return Dep.extend({}); -}); +export default class extends DetailView {} diff --git a/client/modules/crm/src/views/campaign/tracking-url.js b/client/modules/crm/src/views/campaign/tracking-url.js index 5f5cecf981..d38e255629 100644 --- a/client/modules/crm/src/views/campaign/tracking-url.js +++ b/client/modules/crm/src/views/campaign/tracking-url.js @@ -26,17 +26,27 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/campaign/tracking-url', ['view'], function (Dep) { +import View from 'view'; - return Dep.extend({ +export default class extends View { - template: 'crm:campaign/tracking-url', + // language=Handlebars + templateContent = ` +
+
+
+
+
{{complexText message}}
+
+
+
+
+ ` - data: function () { - return { - message: this.options.message, - }; - } - - }); -}); + data() { + // noinspection JSUnresolvedReference + return { + message: this.options.message, + }; + } +} diff --git a/client/modules/crm/src/views/case/fields/contact.js b/client/modules/crm/src/views/case/fields/contact.js index ba94ab554f..2a65ac49d3 100644 --- a/client/modules/crm/src/views/case/fields/contact.js +++ b/client/modules/crm/src/views/case/fields/contact.js @@ -26,8 +26,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/case/fields/contact', ['views/fields/link'], function (Dep) { +/** Left for bc. */ +import LinkFieldView from 'views/fields/link'; - /** Left for bc. */ - return Dep.extend({}); -}); +export default class extends LinkFieldView {} diff --git a/client/modules/crm/src/views/case/record/detail.js b/client/modules/crm/src/views/case/record/detail.js index 4023e09541..43f98e594d 100644 --- a/client/modules/crm/src/views/case/record/detail.js +++ b/client/modules/crm/src/views/case/record/detail.js @@ -26,22 +26,23 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/case/record/detail', ['views/record/detail'], function (Dep) { +import DetailRecordView from 'views/record/detail'; - return Dep.extend({ +export default class extends DetailRecordView { - selfAssignAction: true, + selfAssignAction = true - getSelfAssignAttributes: function () { - if (this.model.get('status') === 'New') { - if (~(this.getMetadata().get(['entityDefs', 'Case', 'fields', 'status', 'options']) || []) - .indexOf('Assigned') - ) { - return { - 'status': 'Assigned', - }; - } + getSelfAssignAttributes() { + if (this.model.attributes.status === 'New') { + const options = this.getMetadata().get(['entityDefs', 'Case', 'fields', 'status', 'options']) || []; + + if (options.includes('Assigned')) { + return { + status: 'Assigned', + }; } - }, - }); -}); + } + + return {}; + } +} diff --git a/client/modules/crm/src/views/contact/detail.js b/client/modules/crm/src/views/contact/detail.js index 0f05bd6aa2..0de4a7fe13 100644 --- a/client/modules/crm/src/views/contact/detail.js +++ b/client/modules/crm/src/views/contact/detail.js @@ -26,8 +26,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/contact/detail', ['views/detail'], function (Dep) { +import DetailView from 'views/detail'; - /** Left for bc. */ - return Dep.extend({}); -}); +/** Left for bc. */ +export default class extends DetailView {} diff --git a/client/modules/crm/src/views/lead/record/detail.js b/client/modules/crm/src/views/lead/record/detail.js index 9fa3f4d031..52b45f0f20 100644 --- a/client/modules/crm/src/views/lead/record/detail.js +++ b/client/modules/crm/src/views/lead/record/detail.js @@ -26,28 +26,25 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/lead/record/detail', ['views/record/detail'], function (Dep) { +import DetailRecordView from 'views/record/detail'; - return Dep.extend({ +export default class extends DetailRecordView { - selfAssignAction: true, - sideView: 'crm:views/lead/record/detail-side', + selfAssignAction = true - setup: function () { - Dep.prototype.setup.call(this); - }, + sideView = 'crm:views/lead/record/detail-side' - getSelfAssignAttributes: function () { - if (this.model.get('status') === 'New') { - if ( - ~(this.getMetadata().get(['entityDefs', 'Lead', 'fields', 'status', 'options']) || []) - .indexOf('Assigned') - ) { - return { - 'status': 'Assigned', - }; - } + getSelfAssignAttributes() { + if (this.model.attributes.status === 'New') { + const options = this.getMetadata().get(['entityDefs', 'Lead', 'fields', 'status', 'options']) || []; + + if (options.includes('Assigned')) { + return { + 'status': 'Assigned', + }; } - }, - }); -}); + } + + return {}; + } +} diff --git a/client/modules/crm/src/views/meeting/record/detail.js b/client/modules/crm/src/views/meeting/record/detail.js index e2e68c3552..1f3b71ff5c 100644 --- a/client/modules/crm/src/views/meeting/record/detail.js +++ b/client/modules/crm/src/views/meeting/record/detail.js @@ -69,7 +69,7 @@ class MeetingDetailRecordView extends DetailRecordView { } manageAccessEdit(second) { - super.manageAccessEdit(); + super.manageAccessEdit(second); if (second && !this.getAcl().checkModel(this.model, 'edit', true)) { this.hideActionItem('setHeld'); diff --git a/client/modules/crm/src/views/task/detail.js b/client/modules/crm/src/views/task/detail.js index 48702523ba..b1bfb6c5cc 100644 --- a/client/modules/crm/src/views/task/detail.js +++ b/client/modules/crm/src/views/task/detail.js @@ -26,7 +26,6 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/task/detail', ['views/detail'], function (Dep) { +import DetailView from 'views/detail'; - return Dep.extend({}); -}); +export default class extends DetailView {} diff --git a/client/modules/crm/src/views/task/list.js b/client/modules/crm/src/views/task/list.js index 7d7fc92ae6..de8592b668 100644 --- a/client/modules/crm/src/views/task/list.js +++ b/client/modules/crm/src/views/task/list.js @@ -26,8 +26,6 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/task/list', ['views/list'], function (Dep) { +import ListView from 'views/list'; - return Dep.extend({ - }); -}); +export default class extends ListView {}; diff --git a/client/modules/crm/src/views/task/record/list.js b/client/modules/crm/src/views/task/record/list.js index 63ef529c1a..d3ac119a5c 100644 --- a/client/modules/crm/src/views/task/record/list.js +++ b/client/modules/crm/src/views/task/record/list.js @@ -26,32 +26,31 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -define('crm:views/task/record/list', ['views/record/list'], function (Dep) { +import ListRecordView from 'views/record/list'; - return Dep.extend({ +export default class extends ListRecordView { - rowActionsView: 'crm:views/task/record/row-actions/default', + rowActionsView = 'crm:views/task/record/row-actions/default' - actionSetCompleted: function (data) { - const id = data.id; + actionSetCompleted(data) { + const id = data.id; - if (!id) { - return; - } + if (!id) { + return; + } - const model = this.collection.get(id); + const model = this.collection.get(id); - if (!model) { - return; - } + if (!model) { + return; + } - Espo.Ui.notify(this.translate('saving', 'messages')); + Espo.Ui.notify(this.translate('saving', 'messages')); - model.save({status: 'Completed'}, {patch: true}).then(() => { - Espo.Ui.success(this.translate('Saved')); + model.save({status: 'Completed'}, {patch: true}).then(() => { + Espo.Ui.success(this.translate('Saved')); - this.collection.fetch(); - }); - }, - }); -}); + this.collection.fetch(); + }); + } +}