diff --git a/css/jquery.treeview.css b/css/jquery.treeview.css index dccad6c76..b5f038600 100644 --- a/css/jquery.treeview.css +++ b/css/jquery.treeview.css @@ -1,6 +1,4 @@ -.treeview ul { background-color: white; } - -.treeview, .treeview ul { +.treeview, .treeview ul { padding: 0; margin: 0; list-style: none; diff --git a/css/light-grey.css b/css/light-grey.css index 8f502a3cb..031720f0a 100644 --- a/css/light-grey.css +++ b/css/light-grey.css @@ -2140,3 +2140,49 @@ span.refresh-button { color: #fff; border-radius: 4px; } +#img-lifecycle { + width: 100%; +} +#img-lifecycle:hover { + width: 100%; + cursor: pointer; +} +#search-model { + width: 98%; +} +.mfp-figure:after { + background-color: #dff1ff; +} +#classDetailsClassName { + display: inline; +} +.qtip-content a, .qtip-content a:visited { + color: #1c94c4; + text-decoration: none; +} +.qtip-content a:hover, .qtip-content a:active { + color: #e87c1e; + text-decoration: none; +} +.data-model-viewer a, .data-model-viewer a:visited { + color: #1c94c4; + text-decoration: none; +} +.data-model-viewer a:hover { + color: #e87c1e; + text-decoration: none; +} +table.listResults .originColor { + width: 0px; + padding: 2px !important; +} +#displaySelectorLabel, #changeDefaultDisplay { + display: inline-block; +} +#split-pane { + height: 100%; +} +#dataModelClassIcon { + padding-right: 13px; + display: inline; +} diff --git a/css/light-grey.scss b/css/light-grey.scss index f1a1488f7..652d9473d 100644 --- a/css/light-grey.scss +++ b/css/light-grey.scss @@ -2352,4 +2352,57 @@ span.refresh-button { font-size:10px; color:#fff; border-radius: 4px; +} +#img-lifecycle{ + width:100%; +} +#img-lifecycle:hover{ + width:100%; + cursor:pointer; +} + +#search-model{ + width:98%; +} + +.mfp-figure:after{ + background-color: #dff1ff; +} +#classDetailsClassName{ + display:inline; +} + +.qtip-content a, .qtip-content a:visited{ + color : #1c94c4; + text-decoration: none; +} +.qtip-content a:hover, .qtip-content a:active{ + color : #e87c1e; + text-decoration: none; +} + +.data-model-viewer a, .data-model-viewer a:visited { + color : #1c94c4; + text-decoration : none; +} + +.data-model-viewer a:hover { + color: #e87c1e; + text-decoration: none; +} + +table.listResults .originColor{ + width : 0px; + padding : 2px !important; +} +#displaySelectorLabel, #changeDefaultDisplay{ + display :inline-block; +} + +#split-pane{ + height:100%; +} +#dataModelClassIcon{ + padding-right: 13px; + display: inline; } \ No newline at end of file diff --git a/dictionaries/cs.dictionary.itop.ui.php b/dictionaries/cs.dictionary.itop.ui.php index 009a4d0c5..33e1c87f5 100755 --- a/dictionaries/cs.dictionary.itop.ui.php +++ b/dictionaries/cs.dictionary.itop.ui.php @@ -715,7 +715,12 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Musí se změnit', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Uživatel bude vyzván ke změně hodnoty', 'UI:Schema:LifeCycleEmptyList' => 'prázdný seznam', - + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => 'Zadejte první tři znaky...', 'UI:Edit:TestQuery' => 'Otestovat dotaz', 'UI:Combo:SelectValue' => '--- vyberte hodnotu ---', diff --git a/dictionaries/da.dictionary.itop.ui.php b/dictionaries/da.dictionary.itop.ui.php index c9588f305..b527427fb 100644 --- a/dictionaries/da.dictionary.itop.ui.php +++ b/dictionaries/da.dictionary.itop.ui.php @@ -557,6 +557,12 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Skal ændres', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Bruger vil blive bedt om at ændre værdien', 'UI:Schema:LifeCycleEmptyList' => 'Tom liste', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => '', 'UI:Edit:TestQuery' => 'Test forespørgsel', 'UI:Combo:SelectValue' => '--- vælg en værdi ---', diff --git a/dictionaries/de.dictionary.itop.ui.php b/dictionaries/de.dictionary.itop.ui.php index 3af9681e0..527c8c44c 100644 --- a/dictionaries/de.dictionary.itop.ui.php +++ b/dictionaries/de.dictionary.itop.ui.php @@ -558,6 +558,12 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Muss ändern', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Benutzer wird zur Änderung des Wertes aufgefordert werden', 'UI:Schema:LifeCycleEmptyList' => 'Leere Liste', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => 'Geben Sie die ersten 3 Buchstaben ein...', 'UI:Edit:TestQuery' => 'Query testen', 'UI:Combo:SelectValue' => '--- wählen Sie einen Wert ---', diff --git a/dictionaries/dictionary.itop.ui.php b/dictionaries/dictionary.itop.ui.php index 01b48553d..8a91e57a2 100644 --- a/dictionaries/dictionary.itop.ui.php +++ b/dictionaries/dictionary.itop.ui.php @@ -719,6 +719,12 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Must change', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'User will be prompted to change the value', 'UI:Schema:LifeCycleEmptyList' => 'empty list', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => 'Type the first 3 characters...', 'UI:Edit:TestQuery' => 'Test query', 'UI:Combo:SelectValue' => '--- select a value ---', diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php index e80092fc2..4ab7300b8 100644 --- a/dictionaries/es_cr.dictionary.itop.ui.php +++ b/dictionaries/es_cr.dictionary.itop.ui.php @@ -708,6 +708,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Debe cambiar', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Se le pedira al usuario que cambie el valor', 'UI:Schema:LifeCycleEmptyList' => 'Lista Vacía', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => 'Escriba los primeros 3 caracteres...', 'UI:Edit:TestQuery' => 'Consulta de Prueba', 'UI:Combo:SelectValue' => '--- seleccione un valor ---', diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php index 3d0fa44ae..fe510815b 100644 --- a/dictionaries/fr.dictionary.itop.ui.php +++ b/dictionaries/fr.dictionary.itop.ui.php @@ -610,6 +610,12 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Doit changer', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'L\'utilisateur se verra proposer de changer la valeur', 'UI:Schema:LifeCycleEmptyList' => 'liste vide', + 'UI:Schema:ClassFilter' => 'Classe :', + 'UI:Schema:DisplayLabel' => 'Affichage :', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label et code', + 'UI:Schema:DisplaySelector/Label' => 'Label', + 'UI:Schema:DisplaySelector/Code' => 'Code', + 'UI:Schema:Attribute/Filter' => 'Filtre', 'UI:LinksWidget:Autocomplete+' => 'Tapez les 3 premiers caractères...', 'UI:Edit:TestQuery' => 'Tester la requête', 'UI:Combo:SelectValue' => '--- choisissez une valeur ---', diff --git a/dictionaries/hu.dictionary.itop.ui.php b/dictionaries/hu.dictionary.itop.ui.php index d934f06f0..5cbab10db 100755 --- a/dictionaries/hu.dictionary.itop.ui.php +++ b/dictionaries/hu.dictionary.itop.ui.php @@ -489,6 +489,12 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Változtatni kell', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Felhasználó kéri a változtatását', 'UI:Schema:LifeCycleEmptyList' => 'üres lista', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => '', 'UI:Combo:SelectValue' => '--- válasszon értéket ---', 'UI:Label:SelectedObjects' => 'Kiválasztott objektumok: ', diff --git a/dictionaries/it.dictionary.itop.ui.php b/dictionaries/it.dictionary.itop.ui.php index b54736191..53d845a54 100644 --- a/dictionaries/it.dictionary.itop.ui.php +++ b/dictionaries/it.dictionary.itop.ui.php @@ -621,6 +621,12 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Deve cambiare', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'All\'utente verrà richiesto di modificare il valore', 'UI:Schema:LifeCycleEmptyList' => 'lista vuota', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => '', 'UI:Combo:SelectValue' => '--- seleziona un valore ---', 'UI:Label:SelectedObjects' => 'oggetti selezionati: ', diff --git a/dictionaries/ja.dictionary.itop.ui.php b/dictionaries/ja.dictionary.itop.ui.php index fe236da74..2c814205f 100644 --- a/dictionaries/ja.dictionary.itop.ui.php +++ b/dictionaries/ja.dictionary.itop.ui.php @@ -557,6 +557,12 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Schema:LifeCycleAttributeMustChange' => '変更必須', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'ユーザはこの値を変更するよう、促されます。', 'UI:Schema:LifeCycleEmptyList' => '空リスト', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => '最初の3文字をタイプしてください...', 'UI:Edit:TestQuery' => 'Test query', 'UI:Combo:SelectValue' => '--- 値を選んでください ---', diff --git a/dictionaries/nl.dictionary.itop.ui.php b/dictionaries/nl.dictionary.itop.ui.php index bf7757232..da49ae263 100644 --- a/dictionaries/nl.dictionary.itop.ui.php +++ b/dictionaries/nl.dictionary.itop.ui.php @@ -716,6 +716,12 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Moet worden veranderd', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Gebruiker zal worden gevraagd om de waarde te veranderen', 'UI:Schema:LifeCycleEmptyList' => 'lege lijst', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => 'Typ de eerste 3 karakters...', 'UI:Edit:TestQuery' => 'Test query', 'UI:Combo:SelectValue' => '--- selecteer een waarde ---', diff --git a/dictionaries/pt_br.dictionary.itop.ui.php b/dictionaries/pt_br.dictionary.itop.ui.php index 0ee75aaa9..db1104628 100644 --- a/dictionaries/pt_br.dictionary.itop.ui.php +++ b/dictionaries/pt_br.dictionary.itop.ui.php @@ -708,6 +708,12 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Tem que mudar', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Usuário será solicitado para alterar o valor', 'UI:Schema:LifeCycleEmptyList' => 'Lista vazia', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => 'Tipo os 3 primeiro caracteres...', 'UI:Edit:TestQuery' => 'Testar consulta', 'UI:Combo:SelectValue' => '--- selecione um valor ---', diff --git a/dictionaries/ru.dictionary.itop.ui.php b/dictionaries/ru.dictionary.itop.ui.php index 42327e45c..c8af7ff5f 100644 --- a/dictionaries/ru.dictionary.itop.ui.php +++ b/dictionaries/ru.dictionary.itop.ui.php @@ -690,6 +690,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Необходимо изменить', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Пользователю будет предложено изменить значение', 'UI:Schema:LifeCycleEmptyList' => 'пустой список', + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => 'Введите первые 3 символа...', 'UI:Edit:TestQuery' => 'Проверить запрос', 'UI:Combo:SelectValue' => '--- выбор значения ---', diff --git a/dictionaries/tr.dictionary.itop.ui.php b/dictionaries/tr.dictionary.itop.ui.php index d50616a89..aae331517 100644 --- a/dictionaries/tr.dictionary.itop.ui.php +++ b/dictionaries/tr.dictionary.itop.ui.php @@ -595,7 +595,12 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Schema:LifeCycleAttributeMustChange' => 'Değiştirilmesi gereken', 'UI:Schema:LifeCycleAttributeMustPrompt' => 'Kullanıcıdan değeri değüiştirmesi istenir', 'UI:Schema:LifeCycleEmptyList' => 'boş liste', - + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => 'İlk 3 karakteri giriniz...', 'UI:Combo:SelectValue' => '--- değer seçiniz ---', 'UI:Label:SelectedObjects' => 'Seçilen nesneler: ', diff --git a/dictionaries/zh.dictionary.itop.ui.php b/dictionaries/zh.dictionary.itop.ui.php index 46d3007f5..e0aec0a7a 100644 --- a/dictionaries/zh.dictionary.itop.ui.php +++ b/dictionaries/zh.dictionary.itop.ui.php @@ -594,7 +594,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Schema:LifeCycleAttributeMustChange' => '必须变更', 'UI:Schema:LifeCycleAttributeMustPrompt' => '用户将被提示改变值', 'UI:Schema:LifeCycleEmptyList' => '空列表', - + 'UI:Schema:ClassFilter' => 'Class:~~', + 'UI:Schema:DisplayLabel' => 'Display:~~', + 'UI:Schema:DisplaySelector/LabelAndCode' => 'Label and code~~', + 'UI:Schema:DisplaySelector/Label' => 'Label~~', + 'UI:Schema:DisplaySelector/Code' => 'Code~~', + 'UI:Schema:Attribute/Filter' => 'Filter~~', 'UI:LinksWidget:Autocomplete+' => '输入前3个字符...', 'UI:Combo:SelectValue' => '--- 选择一个值 ---', 'UI:Label:SelectedObjects' => '被选对象: ', diff --git a/js/jquery.treeview.js b/js/jquery.treeview.js index bc5d9e46b..67906016f 100644 --- a/js/jquery.treeview.js +++ b/js/jquery.treeview.js @@ -69,12 +69,12 @@ if (!settings.prerendered) { // handle closed ones first - this.filter(":has(>ul:hidden)") + this.filter("."+CLASSES.closed) .addClass(CLASSES.expandable) .replaceClass(CLASSES.last, CLASSES.lastExpandable); // handle open ones - this.not(":has(>ul:hidden)") + this.not("."+CLASSES.closed) .addClass(CLASSES.collapsable) .replaceClass(CLASSES.last, CLASSES.lastCollapsable); diff --git a/pages/graphviz.php b/pages/graphviz.php index 53e089fad..4aaa0791c 100644 --- a/pages/graphviz.php +++ b/pages/graphviz.php @@ -63,9 +63,8 @@ function GraphvizLifecycle($sClass) $aStates = MetaModel::EnumStates($sClass); $aStimuli = MetaModel::EnumStimuli($sClass); $sDotFileContent .= "digraph finite_state_machine { - graph [bgcolor = \"transparent\"]; + graph [bgcolor = \"#eeeeee\"]; rankdir=LR; - size=\"12,12\" node [ fontname=Verdana style=filled fillcolor=\"#ffffff\" ]; edge [ fontname=Verdana ]; "; diff --git a/pages/schema.php b/pages/schema.php index fa6621ac6..1776f4c77 100644 --- a/pages/schema.php +++ b/pages/schema.php @@ -1,5 +1,5 @@ ".MetaModel::GetName($sClass)." ($sClass)"; + return "".MetaModel::GetName($sClass)." (" .$sClass.")"; } /** @@ -85,103 +85,6 @@ function DisplaySubclasses($oPage, $sClass, $sContext) } } -/** - * Helper for the global list and the details of a given class - */ -function DisplayReferencingClasses($oPage, $sClass, $sContext) -{ - $bSkipLinkingClasses = false; - $aRefs = MetaModel::EnumReferencingClasses($sClass, $bSkipLinkingClasses); - if (count($aRefs) != 0) - { - $oPage->add("\n"); - } -} - -/** - * Helper for the global list and the details of a given class - */ -function DisplayLinkingClasses($oPage, $sClass, $sContext) -{ - $bSkipLinkingClasses = false; - $aRefs = MetaModel::EnumLinkingClasses($sClass); - if (count($aRefs) != 0) - { - $oPage->add("\n"); - } -} - -/** - * Helper for the global list and the details of a given class - */ -function DisplayRelatedClassesBestInClass($oPage, $sClass, $iLevels = 20, &$aVisitedClasses = array(), $bSubtree = true, $sContext) -{ - if ($iLevels <= 0) return; - $iLevels--; - - if (array_key_exists($sClass, $aVisitedClasses)) return; - $aVisitedClasses[$sClass] = true; - - if ($bSubtree) $oPage->add("\n"); -} - -/** - * Helper for the list of classes related to the given class - */ -function DisplayRelatedClasses($oPage, $sClass, $sContext) -{ - $oPage->add("

".Dict::Format('UI:Schema:Links:1-n', $sClass)."

\n"); - DisplayReferencingClasses($oPage, $sClass, $sContext); - - $oPage->add("

".Dict::Format('UI:Schema:Links:n-n', $sClass)."

\n"); - DisplayLinkingClasses($oPage, $sClass, $sContext); - - $oPage->add("

".Dict::S('UI:Schema:Links:All')."

\n"); - $aEmpty = array(); - DisplayRelatedClassesBestInClass($oPage, $sClass, 4, $aEmpty, true, $sContext); -} - /** * Helper for the lifecycle details of a given class */ @@ -196,15 +99,22 @@ function DisplayLifecycle($oPage, $sClass) { $aStates = MetaModel::EnumStates($sClass); $aStimuli = MetaModel::EnumStimuli($sClass); - $oPage->add("\n"); + $oPage->add("\n"); + $oPage->add_ready_script( + <<add("

".Dict::S('UI:Schema:LifeCycleTransitions')."

\n"); - $oPage->add("