Installer: currency fixes

This commit is contained in:
Taras Machyshyn
2019-12-09 15:31:56 +02:00
parent 5e7f61b46d
commit 6f2270eea7
+24 -26
View File
@@ -56,14 +56,11 @@ class Installer
'timeFormat',
'timeZone',
'weekStart',
'defaultCurrency' => array(
'currencyList', 'defaultCurrency',
),
'defaultCurrency',
'smtpSecurity',
'language',
);
public function __construct()
{
$this->initialize();
@@ -189,15 +186,20 @@ class Installer
return $this->language;
}
public function getLanguageList()
public function getLanguageList($isTranslated = true)
{
$config = $this->app->getContainer()->get('config');
$languageList = $this->app->getContainer()->get('config')->get('languageList');
$languageList = $config->get('languageList');
if ($isTranslated) {
return $this->getLanguage()->translate('language', 'options', 'Global', $languageList);
}
$translated = $this->getLanguage()->translate('language', 'options', 'Global', $languageList);
return $languageList;
}
return $translated;
protected function getCurrencyList()
{
return $this->app->getMetadata()->get('app.currency.list');
}
public function getInstallerConfigData()
@@ -309,7 +311,7 @@ class Installer
public function setPreferences($preferences)
{
$currencyList = $this->getConfig()->get('currencyList', array());
$currencyList = $this->getCurrencyList();
if (isset($preferences['defaultCurrency']) && !in_array($preferences['defaultCurrency'], $currencyList)) {
$preferences['currencyList'] = array($preferences['defaultCurrency']);
@@ -458,29 +460,25 @@ class Installer
public function getSettingDefaults()
{
$defaults = array();
$settingDefs = $this->app->getMetadata()->get('entityDefs.Settings.fields');
foreach ($this->settingList as $fieldName => $field) {
$defaults = array();
if (is_array($field)) {
$fieldDefaults = array();
foreach ($field as $subField) {
if (isset($settingDefs[$subField])) {
$fieldDefaults = array_merge($fieldDefaults, $this->translateSetting($subField, $settingDefs[$subField]));
}
}
$defaults[$fieldName] = $fieldDefaults;
foreach ($this->settingList as $fieldName) {
} else if (isset($settingDefs[$field])) {
if (!isset($settingDefs[$fieldName])) continue;
$defaults[$field] = $this->translateSetting($field, $settingDefs[$field]);
switch ($fieldName) {
case 'defaultCurrency':
$settingDefs['defaultCurrency']['options'] = $this->getCurrencyList();
break;
case 'language':
$settingDefs['language']['options'] = $this->getLanguageList(false);
break;
}
}
if (isset($defaults['language'])) {
$defaults['language']['options'] = $this->getLanguageList();
$defaults[$fieldName] = $this->translateSetting($fieldName, $settingDefs[$fieldName]);
}
return $defaults;