diff --git a/application/Espo/Resources/metadata/clientDefs/EmailAccount.json b/application/Espo/Resources/metadata/clientDefs/EmailAccount.json index b690b8b22e..e87e5567db 100644 --- a/application/Espo/Resources/metadata/clientDefs/EmailAccount.json +++ b/application/Espo/Resources/metadata/clientDefs/EmailAccount.json @@ -1,9 +1,12 @@ { "controller": "Controllers.EmailAccount", - "recordViews":{ + "recordViews": { "list":"EmailAccount.Record.List", "detail": "EmailAccount.Record.Detail", "edit": "EmailAccount.Record.Edit" }, + "views": { + "list": "EmailAccount.List" + }, "disableSearchPanel": true } diff --git a/frontend/client/src/controllers/email-account.js b/frontend/client/src/controllers/email-account.js index 0c3faaea24..1e8bad40a2 100644 --- a/frontend/client/src/controllers/email-account.js +++ b/frontend/client/src/controllers/email-account.js @@ -38,6 +38,7 @@ Espo.define('Controllers.EmailAccount', 'Controllers.Record', function (Dep) { this.main(this.getViewName('list'), { scope: this.name, collection: collection, + userId: userId }); }); } diff --git a/frontend/client/src/views/email-account/list.js b/frontend/client/src/views/email-account/list.js new file mode 100644 index 0000000000..f8c64d3fd7 --- /dev/null +++ b/frontend/client/src/views/email-account/list.js @@ -0,0 +1,58 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2015 Yuri Kuznetsov, Taras Machyshyn, Oleksiy Avramenko + * Website: http://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + ************************************************************************/ + +Espo.define('Views.EmailAccount.List', 'Views.List', function (Dep) { + + return Dep.extend({ + + createButton: false, + + setup: function () { + Dep.prototype.setup.call(this); + + this.menu.buttons.unshift({ + action: 'createEmailAccount', + label: 'Create ' + this.scope, + style: 'primary', + acl: 'edit' + }); + }, + + actionCreateEmailAccount: function () { + if (this.options.userId) { + this.getRouter().dispatch('EmailAccount', 'create', { + attributes: { + assignedUserId: this.options.userId, + assignedUserName: this.options.userId + } + }); + this.getRouter().navigate('#EmailAccount/create', {trigger: false}); + } else { + this.getRouter().navigate('#EmailAccount/create', {trigger: true}); + } + + + }, + + + }); +}); + diff --git a/frontend/client/src/views/email-account/record/detail.js b/frontend/client/src/views/email-account/record/detail.js index 33894bbe62..9a428674c4 100644 --- a/frontend/client/src/views/email-account/record/detail.js +++ b/frontend/client/src/views/email-account/record/detail.js @@ -26,8 +26,18 @@ Espo.define('Views.EmailAccount.Record.Detail', 'Views.Record.Detail', function afterRender: function () { Dep.prototype.afterRender.call(this); this.initSslFieldListening(); + + if (this.getUser().isAdmin()) { + var fieldView = this.getFieldView('assignedUser'); + if (fieldView) { + fieldView.readOnly = false; + fieldView.render(); + } + + } }, + initSslFieldListening: function () { var sslField = this.getFieldView('ssl'); this.listenTo(sslField, 'change', function () { diff --git a/frontend/client/src/views/email-account/record/edit.js b/frontend/client/src/views/email-account/record/edit.js index f3d84ec8da..da13ac12f6 100644 --- a/frontend/client/src/views/email-account/record/edit.js +++ b/frontend/client/src/views/email-account/record/edit.js @@ -29,14 +29,15 @@ Espo.define('Views.EmailAccount.Record.Edit', ['Views.Record.Edit', 'Views.Email Detail.prototype.initSslFieldListening.call(this); if (this.getUser().isAdmin()) { - var fieldView = this.getFieldView('assignedUser'); - if (fieldView) { - fieldView.readOnly = false; - fieldView.setMode('edit'); - fieldView.render(); - } + var fieldView = this.getFieldView('assignedUser'); + if (fieldView) { + fieldView.readOnly = false; + fieldView.setMode('edit'); + fieldView.render(); + } } + }, });