From 01ba132a62208caf93ae2c4192437a1b83f1c9fd Mon Sep 17 00:00:00 2001 From: yuri Date: Fri, 6 Sep 2019 16:19:49 +0300 Subject: [PATCH] field manager fix --- application/Espo/Controllers/FieldManager.php | 2 ++ application/Espo/Core/Utils/Language.php | 7 ++++--- client/src/language.js | 5 +++-- client/src/metadata.js | 9 ++++++--- client/src/views/admin/field-manager/edit.js | 7 ++++--- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/application/Espo/Controllers/FieldManager.php b/application/Espo/Controllers/FieldManager.php index 8cc054794d..ba166dee91 100644 --- a/application/Espo/Controllers/FieldManager.php +++ b/application/Espo/Controllers/FieldManager.php @@ -121,6 +121,8 @@ class FieldManager extends \Espo\Core\Controllers\Base $this->getContainer()->get('fieldManager')->resetToDefault($data->scope, $data->name); + $this->getContainer()->get('dataManager')->clearCache(); + $this->getContainer()->get('dataManager')->rebuildMetadata(); return true; diff --git a/application/Espo/Core/Utils/Language.php b/application/Espo/Core/Utils/Language.php index e9f2ed2e71..ef34ab992b 100644 --- a/application/Espo/Core/Utils/Language.php +++ b/application/Espo/Core/Utils/Language.php @@ -354,7 +354,7 @@ class Language $cacheFile = $this->getCacheFile($language); - if (!$this->useCache || !file_exists($cacheFile)) { + if (!$this->useCache || !file_exists($cacheFile) || $reload) { $paths = $this->paths; @@ -368,11 +368,12 @@ class Language $data = $this->getUnifier()->unify('i18n', $paths, true); - if (is_array($data)) + if (is_array($data)) { $this->sanitizeData($data); + } if ($language != $this->defaultLanguage) { - $data = Util::merge($this->getDefaultLanguageData(), $data); + $data = Util::merge($this->getDefaultLanguageData($reload), $data); } $this->data[$language] = $data; diff --git a/client/src/language.js b/client/src/language.js index 9cf39492ac..ffc998dd79 100644 --- a/client/src/language.js +++ b/client/src/language.js @@ -116,7 +116,8 @@ define('language', ['ajax'], function (Ajax) { }, load: function (callback, disableCache, loadDefault) { - this.once('sync', callback); + if (callback) + this.once('sync', callback); if (!disableCache) { if (this.loadFromCache(loadDefault)) { @@ -129,7 +130,7 @@ define('language', ['ajax'], function (Ajax) { }, fetch: function (disableCache, loadDefault) { - Ajax.getRequest(this.url, {default: loadDefault}).then(function (data) { + return Ajax.getRequest(this.url, {default: loadDefault}).then(function (data) { this.data = data; if (!disableCache) { this.storeToCache(loadDefault); diff --git a/client/src/metadata.js b/client/src/metadata.js index 957c70941d..9e11defeb2 100644 --- a/client/src/metadata.js +++ b/client/src/metadata.js @@ -46,19 +46,22 @@ define('metadata', [], function () { load: function (callback, disableCache, sync) { var sync = (typeof sync == 'undefined') ? false: sync; this.off('sync'); - this.once('sync', callback); + + if (callback) + this.once('sync', callback); + if (!disableCache) { if (this.loadFromCache()) { this.trigger('sync'); return; } } - this.fetch(sync); + return this.fetch(sync); }, fetch: function (sync) { var self = this; - this.ajax({ + return this.ajax({ url: this.url, type: 'GET', dataType: 'JSON', diff --git a/client/src/views/admin/field-manager/edit.js b/client/src/views/admin/field-manager/edit.js index 149b1e886c..380b93965f 100644 --- a/client/src/views/admin/field-manager/edit.js +++ b/client/src/views/admin/field-manager/edit.js @@ -424,8 +424,9 @@ Espo.define('views/admin/field-manager/edit', ['view', 'model'], function (Dep, }.bind(this)), new Promise(function (resolve) { this.getLanguage().load(function () { + this.getLanguage().storeToCache(); resolve(); - }, true); + }.bind(this), true); }.bind(this)) ]).then(function () { this.trigger('after:save'); @@ -501,6 +502,7 @@ Espo.define('views/admin/field-manager/edit', ['view', 'model'], function (Dep, }.bind(this)), new Promise(function (resolve) { this.getLanguage().load(function () { + this.getLanguage().storeToCache(); resolve(); }.bind(this), true); }.bind(this)) @@ -513,8 +515,7 @@ Espo.define('views/admin/field-manager/edit', ['view', 'model'], function (Dep, }.bind(this)); }, this); - } + }, }); - });