diff --git a/dictionaries/dictionary.itop.ui.php b/dictionaries/dictionary.itop.ui.php index cdc3845f9..fb254ea58 100644 --- a/dictionaries/dictionary.itop.ui.php +++ b/dictionaries/dictionary.itop.ui.php @@ -427,6 +427,10 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:CSVImport:HeaderSearch' => 'Search?', 'UI:CSVImport:AlertIncompleteMapping' => 'Please select a mapping for every field.', 'UI:CSVImport:AlertNoSearchCriteria' => 'Please select at least one search criteria', + + 'UI:UniversalSearchTitle' => 'iTop - Universal Search', + 'UI:UniversalSearch:Error' => 'Error: %1$s', + 'UI:UniversalSearch:LabelSelectTheClass' => 'Select the class to search: ', )); diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php index 15fa62261..02a44fbab 100644 --- a/dictionaries/fr.dictionary.itop.ui.php +++ b/dictionaries/fr.dictionary.itop.ui.php @@ -427,6 +427,11 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:CSVImport:HeaderSearch' => 'Recherche ?', 'UI:CSVImport:AlertIncompleteMapping' => 'Veuillez choisir le correspondance de chacun des champs.', 'UI:CSVImport:AlertNoSearchCriteria' => 'Veuillez choisir au moins une clef de recherche.', + + 'UI:UniversalSearchTitle' => 'iTop - Recherche Universelle', + 'UI:UniversalSearch:Error' => 'Erreur : %1$s', + 'UI:UniversalSearch:LabelSelectTheClass' => 'Sélectionnez le type d\'objets à rechercher : ', + )); ?> diff --git a/pages/UniversalSearch.php b/pages/UniversalSearch.php index 981061249..556157156 100644 --- a/pages/UniversalSearch.php +++ b/pages/UniversalSearch.php @@ -11,35 +11,34 @@ LoginWebPage::DoLogin(); // Check user rights and prompt if needed $oContext = new UserContext(); $oAppContext = new ApplicationContext(); $iActiveNodeId = utils::ReadParam('menu', -1); -$currentOrganization = utils::ReadParam('org_id', 1); +$currentOrganization = utils::ReadParam('org_id', ''); -$oP = new iTopWebPage("iTop - Universal search", $currentOrganization); +$oP = new iTopWebPage(Dict::S('UI:UniversalSearchTitle'), $currentOrganization); // From now on the context is limited to the the selected organization ?? // Now render the content of the page -$sClass = utils::ReadParam('class', 'bizOrganization'); -$sOQLClass = utils::ReadParam('oql_class', $sClass); +$sBaseClass = utils::ReadParam('baseClass', 'bizOrganization'); +$sClass = utils::ReadParam('class', $sBaseClass); $sOQLClause = utils::ReadParam('oql_clause', ''); -$sClassName = $sOQLClass; //utils::ReadParam('class', $sOQLClass); $sFilter = utils::ReadParam('filter', ''); $sOperation = utils::ReadParam('operation', ''); // First part: select the class to search for $oP->add("
"); $oP->add(""); -$oP->add("Select the class to search: "); $aClassLabels = array(); -foreach(MetaModel::GetClasses('bizmodel') as $sClass) +foreach(MetaModel::GetClasses('bizmodel') as $sCurrentClass) { - $aClassLabels[$sClass] = MetaModel::GetName($sClass); + $aClassLabels[$sCurrentClass] = MetaModel::GetName($sCurrentClass); } asort($aClassLabels); -foreach($aClassLabels as $sClass => $sLabel) +foreach($aClassLabels as $sCurrentClass => $sLabel) { - $sDescription = MetaModel::GetClassDescription($sClass); - $sSelected = ($sClass == $sClassName) ? " SELECTED" : ""; - $oP->add(""); + $sDescription = MetaModel::GetClassDescription($sCurrentClass); + $sSelected = ($sCurrentClass == $sBaseClass) ? " SELECTED" : ""; + $oP->add(""); } $oP->add("
"); @@ -47,7 +46,7 @@ try { if ($sOperation == 'search_form') { - $sOQL = "SELECT $sOQLClass $sOQLClause"; + $sOQL = "SELECT $sClass $sOQLClause"; $oFilter = DBObjectSearch::FromOQL($sOQL); } else @@ -57,17 +56,16 @@ try { $oFilter = CMDBSearchFilter::unserialize($sFilter); } - else if (!empty($sClassName)) + else if (!empty($sClass)) { - $oFilter = new CMDBSearchFilter($sClassName); + $oFilter = new CMDBSearchFilter($sClass); } } } catch (CoreException $e) { - $oFilter = new CMDBSearchFilter($sClassName); - $oP->P("Error:"); - $oP->P($e->getHtmlDesc()); + $oFilter = new CMDBSearchFilter($sClass); + $oP->P("".Dict::Format('UI:UniversalSearch:Error', $e->getHtmlDesc()).""); } if ($oFilter != null) @@ -76,7 +74,7 @@ if ($oFilter != null) $oBlock = new DisplayBlock($oFilter, 'search', false); $aExtraParams = $oAppContext->GetAsHash(); $aExtraParams['open'] = true; - $aExtraParams['oql_class'] = $sOQLClass; + $aExtraParams['baseClass'] = $sBaseClass; //$aExtraParams['class'] = $sClassName; $oBlock->Display($oP, 0, $aExtraParams);