diff --git a/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php index ac3a5196f..accbc7cee 100644 --- a/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/cs.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', [ // Dict::Add('CS CZ', 'Czech', 'Čeština', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php index 5bcb967ee..6d593294c 100644 --- a/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/da.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', [ // Dict::Add('DA DA', 'Danish', 'Dansk', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php index a8a0f4d9d..350afaa01 100644 --- a/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/en.dict.itop-oauth-client.php @@ -33,7 +33,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:OAuthClient' => 'Oauth Client', + 'Class:OAuthClient' => 'OAuth Client', 'Class:OAuthClient/Attribute:provider' => 'Provider', 'Class:OAuthClient/Attribute:provider+' => '', 'Class:OAuthClient/Attribute:name' => 'Login', diff --git a/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php index 5baf5dbf9..31747d432 100644 --- a/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/es_cr.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', [ // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php index 6c6287f9f..0ec445c19 100644 --- a/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/hu.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', [ // Dict::Add('HU HU', 'Hungarian', 'Magyar', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php index bc601ae8b..a8edf10e0 100644 --- a/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/it.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', [ // Dict::Add('IT IT', 'Italian', 'Italiano', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php index 1a5bdca02..61edd9435 100644 --- a/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/ja.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', [ // Dict::Add('JA JP', 'Japanese', '日本語', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php index 81d390251..79cc72903 100644 --- a/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/nl.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', [ // Dict::Add('NL NL', 'Dutch', 'Nederlands', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php index 150ac6fc6..e129bcd92 100644 --- a/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/pt_br.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ // Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php index b97fad178..c79644cff 100644 --- a/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/ru.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', [ // Dict::Add('RU RU', 'Russian', 'Русский', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php index d1e15cc49..14c58c855 100644 --- a/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/sk.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ // Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php index 8ef119962..5df57e5e2 100644 --- a/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/tr.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', [ // Dict::Add('TR TR', 'Turkish', 'Türkçe', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php index e4f644fde..69e6fb6ba 100644 --- a/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/zh_cn.dict.itop-oauth-client.php @@ -28,7 +28,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Dict::Add('ZH CN', 'Chinese', '简体中文', [ - 'Class:OAuthClient' => 'Oauth Client~~', + 'Class:OAuthClient' => 'OAuth Client~~', 'Class:OAuthClient/Attribute:provider' => 'Provider~~', 'Class:OAuthClient/Attribute:provider+' => '~~', 'Class:OAuthClient/Attribute:name' => 'Login~~', diff --git a/setup/compiler.class.inc.php b/setup/compiler.class.inc.php index c5765a6fe..b11e16a04 100644 --- a/setup/compiler.class.inc.php +++ b/setup/compiler.class.inc.php @@ -2026,7 +2026,11 @@ EOF // Note: We can't use ModelFactory::GetField() as the current clas doesn't seem to be loaded yet. $oField = $this->oFactory->GetNodes('field[@id="'.$sStateAttCode.'"]', $oFields)->item(0); if ($oField == null) { - throw new DOMFormatException("Non existing attribute '$sStateAttCode'", null, null, $oStateAttribute); + // Search field in parent class + $oField = $this->GetFieldInParentClasses($oClass, $sStateAttCode); + if ($oField == null) { + throw new DOMFormatException("Non existing attribute '$sStateAttCode'", null, null, $oStateAttribute); + } } $oValues = $oField->GetUniqueElement('values'); $oValueNodes = $oValues->getElementsByTagName('value'); @@ -3799,4 +3803,19 @@ EOF; return $sValue; } + + private function GetFieldInParentClasses($oClass, $sAttCode) + { + $sParentClass = $oClass->GetChildText('parent', 'DBObject'); + if ($sParentClass != 'DBObject') { + $oParent = $this->oFactory->GetClass($sParentClass); + $oParentFields = $oParent->GetOptionalElement('fields'); + $oField = $this->oFactory->GetNodes('field[@id="'.$sAttCode.'"]', $oParentFields)->item(0); + if ($oField != null) { + return $oField; + } + return $this->GetFieldInParentClasses($oParent, $sAttCode); + } + return null; + } }