From dd7bd118afc0c525ff0aaa3911041e764c2756a1 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 17 Mar 2020 18:28:58 +0200 Subject: [PATCH 01/13] css fix --- frontend/less/espo/custom.less | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/frontend/less/espo/custom.less b/frontend/less/espo/custom.less index c6054e7793..da6ce086f4 100644 --- a/frontend/less/espo/custom.less +++ b/frontend/less/espo/custom.less @@ -1296,6 +1296,12 @@ optgroup { width: 36px; float: left; } + + &:after { + clear: both; + content: " "; + display: block; + } } h3 { From 78aa4ce6c5fdfb824f898d5ce9d14267210eb0ec Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 18 Mar 2020 09:53:25 +0200 Subject: [PATCH 02/13] less changes --- frontend/less/espo-rtl/main.less | 2 - frontend/less/espo-vertical/main.less | 2 - frontend/less/espo/custom.less | 102 +---------------- frontend/less/espo/elements/buttons.less | 105 ++++++++++++++++++ .../espo/{mixins => elements}/side-modal.less | 0 frontend/less/espo/main.less | 2 - frontend/less/hazyblue-vertical/main.less | 2 - frontend/less/hazyblue/main.less | 2 - frontend/less/sakura-vertical/main.less | 2 - frontend/less/sakura/main.less | 2 - frontend/less/violet-vertical/main.less | 2 - frontend/less/violet/main.less | 2 - 12 files changed, 109 insertions(+), 116 deletions(-) create mode 100644 frontend/less/espo/elements/buttons.less rename frontend/less/espo/{mixins => elements}/side-modal.less (100%) diff --git a/frontend/less/espo-rtl/main.less b/frontend/less/espo-rtl/main.less index 2717e5b636..1a749daf42 100644 --- a/frontend/less/espo-rtl/main.less +++ b/frontend/less/espo-rtl/main.less @@ -15,8 +15,6 @@ @import "custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "bootstrap-rtl/utilities-rtl.less"; body { diff --git a/frontend/less/espo-vertical/main.less b/frontend/less/espo-vertical/main.less index 4ce6373463..4feeb2af0b 100644 --- a/frontend/less/espo-vertical/main.less +++ b/frontend/less/espo-vertical/main.less @@ -10,8 +10,6 @@ @import "../espo/custom.less"; @import "custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "../espo/bootstrap/utilities.less"; body { diff --git a/frontend/less/espo/custom.less b/frontend/less/espo/custom.less index da6ce086f4..15ee6ff36f 100644 --- a/frontend/less/espo/custom.less +++ b/frontend/less/espo/custom.less @@ -160,10 +160,6 @@ b, strong { font-size: @font-size-smaller; } -.btn { - border-radius: @button-radius; -} - .panel-body { padding: @panel-padding; .clearfix(); @@ -1259,29 +1255,6 @@ optgroup { z-index: 3; } -.input-group { - .input-group-btn > { - .btn { - height: 33px; - } - } - - &.input-group-sm { - .input-group-btn > { - .btn { - height: 30px; - } - } - } - &.input-group-lg { - .input-group-btn > { - .btn { - height: 46px; - } - } - } -} - .input-group.input-group-dt { display: block; @@ -3346,85 +3319,15 @@ a.field-info > span.fa-info-circle { } } -.btn-icon { - width: 36px; - padding-left: 0; - padding-right: 0; - - .fa, .fas { - position: relative; - width: 16px; - text-align: center; - } - .fa-sm { - top: -1px; - } -} - - -.btn-icon.btn-sm { - .fa-sm { - top: 0; - } -} - -.btn-icon.btn-sm { - width: 34px; - - .fa, .fas { - font-size: 12px; - width: 12px; - } -} - .btn > .fa-ellipsis-v { position: relative; top: 1px; } -.btn.btn-icon-wide { - width: 54px; -} - -.btn.btn-icon-x-wide { - width: 76px; -} - -.btn.btn-icon-xx-wide { - width: 100px; -} - .btn-icon > .fa-chevron-left { left: -1px; } -.btn.btn-wide { - min-width: 100px; -} - -.btn.btn-x-wide { - min-width: 150px; -} - -.btn.btn-xx-wide { - min-width: 200px; -} - -.btn-default > .fa, -.btn-default > .fas { - color: @gray-soft; -} - -.btn-default > .fa.text-muted, -.btn-default > .fas.text-muted { - color: @gray-light; -} - -.btn-default.disabled > .fa, -.btn-default.disabled > .fas { - color: @gray-light; -} - .btn-default > .fa-sm.fa-rss { position: relative; top: -1px; @@ -3677,4 +3580,7 @@ a.link-gray { .selectize-control.as-list .item { display: block; -} \ No newline at end of file +} + +@import "elements/side-modal.less"; +@import "elements/buttons.less"; diff --git a/frontend/less/espo/elements/buttons.less b/frontend/less/espo/elements/buttons.less new file mode 100644 index 0000000000..9cfa7de839 --- /dev/null +++ b/frontend/less/espo/elements/buttons.less @@ -0,0 +1,105 @@ +.btn { + border-radius: @button-radius; +} + +.btn { + height: @input-height-base; +} +.btn-lg { + height: @input-height-large; +} +.btn-sm { + height: @input-height-small; +} + +.input-group { + .input-group-btn > { + .btn { + height: @input-height-base; + } + } + + &.input-group-sm { + .input-group-btn > { + .btn { + height: @input-height-small; + } + } + } + &.input-group-lg { + .input-group-btn > { + .btn { + height: @input-height-large; + } + } + } +} + +.btn-icon { + width: 36px; + padding-left: 0; + padding-right: 0; + + .fa, .fas { + position: relative; + width: 16px; + text-align: center; + } + .fa-sm { + top: -1px; + } +} + +.btn-icon.btn-sm { + .fa-sm { + top: 0; + } +} + +.btn-icon.btn-sm { + width: 34px; + + .fa, .fas { + font-size: 12px; + width: 12px; + } +} + +.btn.btn-wide { + min-width: 100px; +} + +.btn.btn-x-wide { + min-width: 150px; +} + +.btn.btn-xx-wide { + min-width: 200px; +} + +.btn.btn-icon-wide { + width: 54px; +} + +.btn.btn-icon-x-wide { + width: 76px; +} + +.btn.btn-icon-xx-wide { + width: 100px; +} + +.btn-default > .fa, +.btn-default > .fas { + color: @gray-soft; +} + +.btn-default > .fa.text-muted, +.btn-default > .fas.text-muted { + color: @gray-light; +} + +.btn-default.disabled > .fa, +.btn-default.disabled > .fas { + color: @gray-light; +} diff --git a/frontend/less/espo/mixins/side-modal.less b/frontend/less/espo/elements/side-modal.less similarity index 100% rename from frontend/less/espo/mixins/side-modal.less rename to frontend/less/espo/elements/side-modal.less diff --git a/frontend/less/espo/main.less b/frontend/less/espo/main.less index 4e22a3b323..dadf5ba432 100644 --- a/frontend/less/espo/main.less +++ b/frontend/less/espo/main.less @@ -6,8 +6,6 @@ @import "layout.less"; @import "custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "bootstrap/utilities.less"; body { diff --git a/frontend/less/hazyblue-vertical/main.less b/frontend/less/hazyblue-vertical/main.less index 2df901f38a..14af213e41 100644 --- a/frontend/less/hazyblue-vertical/main.less +++ b/frontend/less/hazyblue-vertical/main.less @@ -14,8 +14,6 @@ @import "custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "../espo/bootstrap/utilities.less"; body { diff --git a/frontend/less/hazyblue/main.less b/frontend/less/hazyblue/main.less index 14acabef36..5014ead9e1 100644 --- a/frontend/less/hazyblue/main.less +++ b/frontend/less/hazyblue/main.less @@ -12,8 +12,6 @@ @import "custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "../espo/bootstrap/utilities.less"; body { diff --git a/frontend/less/sakura-vertical/main.less b/frontend/less/sakura-vertical/main.less index 4a909463fe..8bc7905783 100644 --- a/frontend/less/sakura-vertical/main.less +++ b/frontend/less/sakura-vertical/main.less @@ -11,8 +11,6 @@ @import "../espo/custom.less"; @import "../espo-vertical/custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "../espo/bootstrap/utilities.less"; body { diff --git a/frontend/less/sakura/main.less b/frontend/less/sakura/main.less index 2dd9ac5151..76219626c0 100644 --- a/frontend/less/sakura/main.less +++ b/frontend/less/sakura/main.less @@ -7,8 +7,6 @@ @import "../espo/layout.less"; @import "../espo/custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "../espo/bootstrap/utilities.less"; body { diff --git a/frontend/less/violet-vertical/main.less b/frontend/less/violet-vertical/main.less index 222def9db0..05d8488873 100644 --- a/frontend/less/violet-vertical/main.less +++ b/frontend/less/violet-vertical/main.less @@ -11,8 +11,6 @@ @import "../espo/custom.less"; @import "../espo-vertical/custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "../espo/bootstrap/utilities.less"; body { diff --git a/frontend/less/violet/main.less b/frontend/less/violet/main.less index eb0195725e..5fbcc6887a 100644 --- a/frontend/less/violet/main.less +++ b/frontend/less/violet/main.less @@ -7,8 +7,6 @@ @import "../espo/layout.less"; @import "../espo/custom.less"; -@import "../espo/mixins/side-modal.less"; - @import "../espo/bootstrap/utilities.less"; body { From 2eac1b37217700093ef2cf384b51b1e6412a60f2 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 18 Mar 2020 10:35:16 +0200 Subject: [PATCH 03/13] fix date end --- .../crm/src/views/meeting/fields/date-end.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/client/modules/crm/src/views/meeting/fields/date-end.js b/client/modules/crm/src/views/meeting/fields/date-end.js index 48d009aa72..f5c892cf65 100644 --- a/client/modules/crm/src/views/meeting/fields/date-end.js +++ b/client/modules/crm/src/views/meeting/fields/date-end.js @@ -26,7 +26,7 @@ * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ -Espo.define('crm:views/meeting/fields/date-end', 'views/fields/datetime-optional', function (Dep) { +define('crm:views/meeting/fields/date-end', 'views/fields/datetime-optional', function (Dep) { return Dep.extend({ @@ -39,10 +39,19 @@ Espo.define('crm:views/meeting/fields/date-end', 'views/fields/datetime-optional setup: function () { Dep.prototype.setup.call(this); + this.isAllDayValue = this.model.get('isAllDay'); + this.listenTo(this.model, 'change:isAllDay', function (model, value, o) { if (!o.ui) return; if (!this.isEditMode()) return; + if (this.isAllDayValue === undefined && !value) { + this.isAllDayValue = value; + return; + } + + this.isAllDayValue = value; + if (value) { this.$time.val(this.noneOption); } else { @@ -51,11 +60,13 @@ Espo.define('crm:views/meeting/fields/date-end', 'views/fields/datetime-optional dateTime = this.getDateTime().getNow(5); } var m = this.getDateTime().toMoment(dateTime); - dateTime = m.format(this.getDateTime().internalDateTimeFormat); + dateTime = m.format(this.getDateTime().getDateTimeFormat()); var index = dateTime.indexOf(' '); var time = dateTime.substr(index + 1); - this.$time.val(time); + if (this.model.get('dateEnd')) { + this.$time.val(time); + } } this.trigger('change'); this.controlTimePartVisibility(); @@ -80,7 +91,7 @@ Espo.define('crm:views/meeting/fields/date-end', 'views/fields/datetime-optional this.$time.removeClass('hidden'); this.$el.find('.time-picker-btn').removeClass('hidden'); } - } + }, }); }); From c0355cb2b24a7646eac1a1b77344116322fa77a9 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 18 Mar 2020 11:34:17 +0200 Subject: [PATCH 04/13] date-time css fix --- client/res/templates/fields/datetime/edit.tpl | 6 +++++- frontend/less/espo/custom.less | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/client/res/templates/fields/datetime/edit.tpl b/client/res/templates/fields/datetime/edit.tpl index eb6ee735c1..3cfa4ca695 100644 --- a/client/res/templates/fields/datetime/edit.tpl +++ b/client/res/templates/fields/datetime/edit.tpl @@ -1,11 +1,15 @@ -
+
+
+
+
+
diff --git a/frontend/less/espo/custom.less b/frontend/less/espo/custom.less index 15ee6ff36f..f509b84f91 100644 --- a/frontend/less/espo/custom.less +++ b/frontend/less/espo/custom.less @@ -1255,6 +1255,22 @@ optgroup { z-index: 3; } +.input-group-container-2 { + width: ~"calc(100% + 1px)"; + > div { + width: 50%; + float: left; + } + > div:last-child { + margin-left: -1px; + } + &:after { + clear: both; + content: " "; + display: block; + } +} + .input-group.input-group-dt { display: block; From a6f7df72b5249f836e3dcaaa8ac917535645ee8e Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 18 Mar 2020 12:49:42 +0200 Subject: [PATCH 05/13] css fix --- frontend/less/espo/custom.less | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/less/espo/custom.less b/frontend/less/espo/custom.less index f509b84f91..267b39cb39 100644 --- a/frontend/less/espo/custom.less +++ b/frontend/less/espo/custom.less @@ -1775,6 +1775,7 @@ table.no-margin { .list .checkbox-dropdown > a { padding: 0; line-height: 1; + height: 14px; } .list .record-checkbox-container { From 1c5537bb55c12744ad8ef4440c0ec2ec1650e237 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 18 Mar 2020 20:30:18 +0200 Subject: [PATCH 06/13] css avatar fix --- frontend/less/espo/custom.less | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/less/espo/custom.less b/frontend/less/espo/custom.less index 267b39cb39..301875dac4 100644 --- a/frontend/less/espo/custom.less +++ b/frontend/less/espo/custom.less @@ -2424,8 +2424,16 @@ h4.panel-title span.fas.color-icon { img.avatar.avatar-link { display: inline-block; - margin-top: -2px; + margin-top: 0; margin-right: 3px; + position: relative; + vertical-align: top; + top: 2px; + + &[width="14"] { + top: 2px; + vertical-align: baseline; + } } stream-head-text-container .span { From 44460362c50ecedba764c9d6a36ca33d0225c768 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 18 Mar 2020 20:45:31 +0200 Subject: [PATCH 07/13] change default date time formats --- application/Espo/Core/defaults/config.php | 4 ++-- application/Espo/Resources/metadata/entityDefs/Settings.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/application/Espo/Core/defaults/config.php b/application/Espo/Core/defaults/config.php index 15f213297f..cc4824d510 100644 --- a/application/Espo/Core/defaults/config.php +++ b/application/Espo/Core/defaults/config.php @@ -43,8 +43,8 @@ return [ 'applicationName' => 'EspoCRM', 'version' => '@@version', 'timeZone' => 'UTC', - 'dateFormat' => 'MM/DD/YYYY', - 'timeFormat' => 'hh:mm a', + 'dateFormat' => 'DD.MM.YYYY', + 'timeFormat' => 'hh:mm', 'weekStart' => 0, 'thousandSeparator' => ',', 'decimalMark' => '.', diff --git a/application/Espo/Resources/metadata/entityDefs/Settings.json b/application/Espo/Resources/metadata/entityDefs/Settings.json index 761f2f1cf9..a9ee9f15c7 100644 --- a/application/Espo/Resources/metadata/entityDefs/Settings.json +++ b/application/Espo/Resources/metadata/entityDefs/Settings.json @@ -27,8 +27,8 @@ }, "dateFormat": { "type": "enum", - "options": ["MM/DD/YYYY", "YYYY-MM-DD", "DD.MM.YYYY", "DD/MM/YYYY"], - "default": "MM/DD/YYYY" + "options": ["DD.MM.YYYY", "MM/DD/YYYY", "DD/MM/YYYY", "YYYY-MM-DD"], + "default": "DD.MM.YYYY" }, "timeFormat": { "type": "enum", From 32f07d81d4a1eb71867b8d5d907afd60adc0435c Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Wed, 18 Mar 2020 21:13:27 +0200 Subject: [PATCH 08/13] install: admin preferences with default values --- install/core/Installer.php | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/install/core/Installer.php b/install/core/Installer.php index e7c4a64279..022e8ece53 100644 --- a/install/core/Installer.php +++ b/install/core/Installer.php @@ -328,8 +328,7 @@ class Installer $res = $this->saveConfig($preferences); - /*save these settings for admin*/ - $this->setAdminPreferences($preferences); + $this->saveAdminPreferences($preferences); return $res; } @@ -408,20 +407,19 @@ class Installer return $result; } - protected function setAdminPreferences($preferences) + protected function saveAdminPreferences($preferences) { - $allowedPreferences = array( - 'dateFormat', - 'timeFormat', - 'timeZone', - 'weekStart', - 'defaultCurrency', - 'thousandSeparator', - 'decimalMark', - 'language', - ); + $data = [ + 'dateFormat' => '', + 'timeFormat' => '', + 'timeZone' => '', + 'weekStart' => -1, + 'defaultCurrency' => '', + 'language' => '', + 'thousandSeparator' => $preferences['thousandSeparator'] ?? ',', + 'decimalMark' => $preferences['decimalMark'] ?? '.', + ]; - $data = array_intersect_key($preferences, array_flip($allowedPreferences)); if (empty($data)) { return true; } From 6dfd2d49bb9a3c5572396628df3b653fb807486a Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 19 Mar 2020 19:40:15 +0200 Subject: [PATCH 09/13] meeting all day fix date time zone --- application/Espo/Core/Repositories/Event.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/application/Espo/Core/Repositories/Event.php b/application/Espo/Core/Repositories/Event.php index 0546a03d9e..5d4b60401a 100644 --- a/application/Espo/Core/Repositories/Event.php +++ b/application/Espo/Core/Repositories/Event.php @@ -251,15 +251,17 @@ class Event extends \Espo\Core\ORM\Repositories\RDB protected function convertDateTimeToDefaultTimezone($string) { - $dateTime = \DateTime::createFromFormat($this->getDateTime()->getInternalDateTimeFormat(), $string); - $timeZone = $this->getConfig()->get('timeZone'); - if (empty($timeZone)) { - $timeZone = 'UTC'; - } - $tz = $timezone = new \DateTimeZone($timeZone); + $timeZone = $this->getConfig()->get('timeZone') ?? 'UTC'; - if ($dateTime) { - return $dateTime->setTimezone($tz)->format($this->getDateTime()->getInternalDateTimeFormat()); + $tz = new \DateTimeZone($timeZone); + + try { + $dt = \DateTime::createFromFormat($this->getDateTime()->getInternalDateTimeFormat(), $string, $tz); + } catch (\Exception $e) {} + + if ($dt) { + $utcTz = new \DateTimeZone('UTC'); + return $dt->setTimezone($utcTz)->format($this->getDateTime()->getInternalDateTimeFormat()); } return null; } From d55b82a6ea3fd4a9898a257371020115de5b17ed Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 19 Mar 2020 21:13:31 +0200 Subject: [PATCH 10/13] fix css --- frontend/less/espo/elements/buttons.less | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/less/espo/elements/buttons.less b/frontend/less/espo/elements/buttons.less index 9cfa7de839..525bdb7467 100644 --- a/frontend/less/espo/elements/buttons.less +++ b/frontend/less/espo/elements/buttons.less @@ -12,6 +12,10 @@ height: @input-height-small; } +.btn.btn-link { + height: auto; +} + .input-group { .input-group-btn > { .btn { @@ -103,3 +107,4 @@ .btn-default.disabled > .fas { color: @gray-light; } + From a9dff223ede631b7f3b4f887c4bb760e04d3432f Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Fri, 20 Mar 2020 11:43:21 +0200 Subject: [PATCH 11/13] hide panel locked --- client/src/views/record/detail-middle.js | 2 ++ client/src/views/record/detail.js | 8 +++++++- client/src/views/record/panels-container.js | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/client/src/views/record/detail-middle.js b/client/src/views/record/detail-middle.js index 972915e51e..2100681cc5 100644 --- a/client/src/views/record/detail-middle.js +++ b/client/src/views/record/detail-middle.js @@ -43,6 +43,8 @@ define('views/record/detail-middle', 'view', function (Dep) { }, showPanel: function (name) { + if (this.recordHelper.getPanelStateParam(name, 'hiddenLocked')) return; + if (this.isRendered()) { this.$el.find('.panel[data-name="'+name+'"]').removeClass('hidden'); } diff --git a/client/src/views/record/detail.js b/client/src/views/record/detail.js index b1d629c21f..a9057d5c03 100644 --- a/client/src/views/record/detail.js +++ b/client/src/views/record/detail.js @@ -421,6 +421,8 @@ define('views/record/detail', ['views/record/base', 'view-record-helper'], funct }, showPanel: function (name) { + if (this.recordHelper.getPanelStateParam(name, 'hiddenLocked')) return; + this.recordHelper.setPanelStateParam(name, 'hidden', false); var middleView = this.getView('middle'); @@ -457,9 +459,13 @@ define('views/record/detail', ['views/record/base', 'view-record-helper'], funct } }, - hidePanel: function (name) { + hidePanel: function (name, locked) { this.recordHelper.setPanelStateParam(name, 'hidden', true); + if (locked) { + this.recordHelper.setPanelStateParam(name, 'hidden', true); + } + var middleView = this.getView('middle'); if (middleView) { middleView.hidePanel(name); diff --git a/client/src/views/record/panels-container.js b/client/src/views/record/panels-container.js index 76e494ede5..d910de931c 100644 --- a/client/src/views/record/panels-container.js +++ b/client/src/views/record/panels-container.js @@ -178,6 +178,8 @@ define('views/record/panels-container', 'view', function (Dep) { }, showPanel: function (name, callback) { + if (this.recordHelper.getPanelStateParam(name, 'hiddenLocked')) return; + this.recordHelper.setPanelStateParam(name, 'hidden', false); var isFound = false; From 1567fd4feb06cd1cb650141abe7e2243f59a4fe7 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Fri, 20 Mar 2020 11:49:25 +0200 Subject: [PATCH 12/13] fix locked panel --- client/src/views/record/detail.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/views/record/detail.js b/client/src/views/record/detail.js index a9057d5c03..06d4d838ce 100644 --- a/client/src/views/record/detail.js +++ b/client/src/views/record/detail.js @@ -463,7 +463,7 @@ define('views/record/detail', ['views/record/base', 'view-record-helper'], funct this.recordHelper.setPanelStateParam(name, 'hidden', true); if (locked) { - this.recordHelper.setPanelStateParam(name, 'hidden', true); + this.recordHelper.setPanelStateParam(name, 'hiddenLocked', true); } var middleView = this.getView('middle'); From c2d0b2fb8656342a0636adc1b4525c5eec6fce70 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Fri, 20 Mar 2020 14:43:21 +0200 Subject: [PATCH 13/13] fix task date timezone --- .../Espo/Modules/Crm/Repositories/Task.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/application/Espo/Modules/Crm/Repositories/Task.php b/application/Espo/Modules/Crm/Repositories/Task.php index f75aa1e551..8f21dac91b 100644 --- a/application/Espo/Modules/Crm/Repositories/Task.php +++ b/application/Espo/Modules/Crm/Repositories/Task.php @@ -56,15 +56,17 @@ class Task extends \Espo\Core\Repositories\Event protected function convertDateTimeToDefaultTimezone($string) { - $dateTime = \DateTime::createFromFormat($this->getDateTime()->getInternalDateTimeFormat(), $string); - $timeZone = $this->getConfig()->get('timeZone'); - if (empty($timeZone)) { - $timeZone = 'UTC'; - } - $tz = $timezone = new \DateTimeZone($timeZone); + $timeZone = $this->getConfig()->get('timeZone') ?? 'UTC'; - if ($dateTime) { - return $dateTime->setTimezone($tz)->format($this->getDateTime()->getInternalDateTimeFormat()); + $tz = new \DateTimeZone($timeZone); + + try { + $dt = \DateTime::createFromFormat($this->getDateTime()->getInternalDateTimeFormat(), $string, $tz); + } catch (\Exception $e) {} + + if ($dt) { + $utcTz = new \DateTimeZone('UTC'); + return $dt->setTimezone($utcTz)->format($this->getDateTime()->getInternalDateTimeFormat()); } return null; }