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();
+ });
+ }
+}