From b4ec610fc21d61f2b66255070452d6fb07fa00a7 Mon Sep 17 00:00:00 2001 From: yuri Date: Wed, 9 Dec 2015 17:20:53 +0200 Subject: [PATCH] record fixes --- frontend/client/src/views/record/base.js | 11 +++++---- .../client/src/views/record/detail-bottom.js | 10 +++++--- .../client/src/views/record/detail-middle.js | 8 +++++++ .../client/src/views/record/detail-side.js | 10 +++++--- frontend/client/src/views/record/detail.js | 24 +++++++++++-------- .../client/src/views/record/panels/bottom.js | 6 ++++- .../client/src/views/record/panels/side.js | 4 ++++ 7 files changed, 52 insertions(+), 21 deletions(-) diff --git a/frontend/client/src/views/record/base.js b/frontend/client/src/views/record/base.js index 8409b710cc..1f5e23b50a 100644 --- a/frontend/client/src/views/record/base.js +++ b/frontend/client/src/views/record/base.js @@ -165,12 +165,11 @@ Espo.define('views/record/base', ['view', 'view-record-helper'], function (Dep, } }, - setConfirmLeaveOut: function (value) { this.getRouter().confirmLeaveOut = value; }, - getFields: function () { + getFieldViews: function () { var fields = {}; this.fieldList.forEach(function (item) { var view = this.getFieldView(item); @@ -181,14 +180,18 @@ Espo.define('views/record/base', ['view', 'view-record-helper'], function (Dep, return fields; }, - getFieldViews: function () { - return this.getFields(); + getFields: function () { + return this.getFieldViews(); }, getFieldView: function (name) { return this.getView(name) || null; }, + getField: function (name) { + return this.getFieldView(name); + }, + data: function () { return { hiddenPanels: this.recordHelper.getHiddenPanels(), diff --git a/frontend/client/src/views/record/detail-bottom.js b/frontend/client/src/views/record/detail-bottom.js index b4e092fc6b..51fb00d37c 100644 --- a/frontend/client/src/views/record/detail-bottom.js +++ b/frontend/client/src/views/record/detail-bottom.js @@ -307,17 +307,21 @@ Espo.define('views/record/detail-bottom', 'view', function (Dep) { return filtered; }, - getFields: function () { + getFieldViews: function () { var fields = {}; this.panelList.forEach(function (p) { var panelView = this.getView(p.name); - if (!panelView.disabled && 'getFields' in panelView) { - fields = _.extend(fields, panelView.getFields()); + if (!panelView.disabled && 'getFieldViews' in panelView) { + fields = _.extend(fields, panelView.getFieldViews()); } }, this); return fields; }, + getFields: function () { + return this.getFieldViews(); + }, + fetch: function () { var data = {}; diff --git a/frontend/client/src/views/record/detail-middle.js b/frontend/client/src/views/record/detail-middle.js index a419efd939..f8a0348ecb 100644 --- a/frontend/client/src/views/record/detail-middle.js +++ b/frontend/client/src/views/record/detail-middle.js @@ -54,6 +54,14 @@ Espo.define('views/record/detail-middle', 'view', function (Dep) { this.$el.find('.panel[data-name="'+name+'"]').addClass('hidden'); } this.recordHelper.setPanelStateParam(name, 'hidden', true); + }, + + getFields: function () { + return this.getFieldViews(); + }, + + getFieldViews: function () { + return Espo.Utils.clone(this.nestedViews); } }); }); diff --git a/frontend/client/src/views/record/detail-side.js b/frontend/client/src/views/record/detail-side.js index e09a52697e..bd73fb3650 100644 --- a/frontend/client/src/views/record/detail-side.js +++ b/frontend/client/src/views/record/detail-side.js @@ -165,17 +165,21 @@ Espo.define('views/record/detail-side', 'view', function (Dep) { }, this); }, - getFields: function () { + getFieldViews: function () { var fields = {}; this.panelList.forEach(function (p) { var panelView = this.getView(p.name); - if (!panelView.disabled && 'getFields' in panelView) { - fields = _.extend(fields, panelView.getFields()); + if (!panelView.disabled && 'getFieldViews' in panelView) { + fields = _.extend(fields, panelView.getFieldViews()); } }, this); return fields; }, + getFields: function () { + return this.getFieldViews(); + }, + fetch: function () { var data = {}; diff --git a/frontend/client/src/views/record/detail.js b/frontend/client/src/views/record/detail.js index 5597a8ad64..57f30a4f31 100644 --- a/frontend/client/src/views/record/detail.js +++ b/frontend/client/src/views/record/detail.js @@ -294,7 +294,7 @@ Espo.define('views/record/detail', ['views/record/base', 'view-record-helper'], } }.bind(this)); - var fields = this.getFields(); + var fields = this.getFieldViews(); var fieldInEditMode = null; for (var field in fields) { @@ -337,7 +337,7 @@ Espo.define('views/record/detail', ['views/record/base', 'view-record-helper'], this.$el.find('.record-buttons').addClass('hidden'); this.$el.find('.edit-buttons').removeClass('hidden'); - var fields = this.getFields(); + var fields = this.getFieldViews(); for (var field in fields) { var fieldView = fields[field]; if (!fieldView.readOnly) { @@ -356,7 +356,7 @@ Espo.define('views/record/detail', ['views/record/base', 'view-record-helper'], this.$el.find('.edit-buttons').addClass('hidden'); this.$el.find('.record-buttons').removeClass('hidden'); - var fields = this.getFields(); + var fields = this.getFieldViews(); for (var field in fields) { var fieldView = fields[field]; if (fieldView.mode != 'detail') { @@ -395,13 +395,17 @@ Espo.define('views/record/detail', ['views/record/base', 'view-record-helper'], } }, - getFields: function () { - var fields = _.clone(this.getView('middle').nestedViews); + getFieldViews: function () { + var fields = {}; + + if (this.hasView('middle')) { + _.extend(fields, Espo.Utils.clone(this.getView('middle').getFieldViews())); + } if (this.hasView('side')) { - _.extend(fields, this.getView('side').getFields()); + _.extend(fields, this.getView('side').getFieldViews()); } if (this.hasView('bottom')) { - _.extend(fields, this.getView('bottom').getFields()); + _.extend(fields, this.getView('bottom').getFieldViews()); } return fields; }, @@ -409,13 +413,13 @@ Espo.define('views/record/detail', ['views/record/base', 'view-record-helper'], getFieldView: function (name) { var view; if (this.hasView('middle')) { - view = this.getView('middle').getView(name) || null; + view = (this.getView('middle').getFieldViews() || {})[name]; } if (!view && this.hasView('side')) { - view = (this.getView('side').getFields() || {})[name]; + view = (this.getView('side').getFieldViews() || {})[name]; } if (!view && this.hasView('bottom')) { - view = (this.getView('bottom').getFields() || {})[name]; + view = (this.getView('bottom').getFieldViews() || {})[name]; } return view || null; }, diff --git a/frontend/client/src/views/record/panels/bottom.js b/frontend/client/src/views/record/panels/bottom.js index c94c25016c..6184c4eebc 100644 --- a/frontend/client/src/views/record/panels/bottom.js +++ b/frontend/client/src/views/record/panels/bottom.js @@ -146,7 +146,7 @@ Espo.define('views/record/panels/bottom', 'view', function (Dep) { }.bind(this)); }, - getFields: function () { + getFieldViews: function () { var fields = {}; this.getFieldList().forEach(function (item) { @@ -157,6 +157,10 @@ Espo.define('views/record/panels/bottom', 'view', function (Dep) { return fields; }, + getFields: function () { + return this.getFields(); + }, + getFieldList: function () { return this.fieldList.map(function (item) { if (typeof item !== 'object') { diff --git a/frontend/client/src/views/record/panels/side.js b/frontend/client/src/views/record/panels/side.js index 1d438427c3..55bc8393a5 100644 --- a/frontend/client/src/views/record/panels/side.js +++ b/frontend/client/src/views/record/panels/side.js @@ -190,6 +190,10 @@ Espo.define('views/record/panels/side', 'view', function (Dep) { }, getFields: function () { + return this.getFields(); + }, + + getFieldViews: function () { var fields = {}; this.getFieldList().forEach(function (item) {