From 949a4639e2dfe36d6d50bf2aa9398c4f44f1c4dd Mon Sep 17 00:00:00 2001 From: Romain Quetiez Date: Tue, 11 Sep 2012 14:39:09 +0000 Subject: [PATCH] #585 Error in CSV export (from a search result) SVN:trunk[2176] --- application/dashlet.class.inc.php | 4 ++-- application/displayblock.class.inc.php | 24 ++++++++++++------------ pages/UI.php | 10 +++++----- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/application/dashlet.class.inc.php b/application/dashlet.class.inc.php index 05930d348..5f2ef2f32 100644 --- a/application/dashlet.class.inc.php +++ b/application/dashlet.class.inc.php @@ -726,7 +726,7 @@ class DashletGroupByPie2 extends DashletGroupByPie $oCondition = new BinaryExpression($oGroupByExp, '=', new ScalarExpression($sValue)); $oSubsetSearch->AddConditionExpression($oCondition); // Todo - à finir - $aURLs[] = 'http://www.combodo.com/itop'; //utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=search&format=html{$sContext}&filter=".addslashes($oSubsetSearch->serialize()); + $aURLs[] = 'http://www.combodo.com/itop'; //utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=search&format=html{$sContext}&filter=".urlencode($oSubsetSearch->serialize()); } $sJSValues = json_encode($aGroupBy); @@ -1328,7 +1328,7 @@ class DashletProto extends Dashlet $sFilter = urlencode($oSubsetSearch->serialize()); $this->aStats[$sValue1][$sValue2] = array ( - 'href' => utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=search&dosearch=1&$sParams&filter=$sFilter", + 'href' => utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=search&dosearch=1&$sParams&filter=".urlencode($sFilter), 'count' => $iCount, ); if (!array_key_exists($sValue1, $this->aValues1)) diff --git a/application/displayblock.class.inc.php b/application/displayblock.class.inc.php index 5ca2fff0f..f5f82ee60 100644 --- a/application/displayblock.class.inc.php +++ b/application/displayblock.class.inc.php @@ -654,7 +654,7 @@ class DisplayBlock $this->m_oSet = new CMDBObjectSet($this->m_oFilter, array(), $aQueryParams); } $iCount = $this->m_oSet->Count(); - $sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.$this->m_oFilter->serialize(); + $sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.urlencode($this->m_oFilter->serialize()); $sHtml .= '

'; $sHtml .= MetaModel::GetClassIcon($sClass, true, 'float;left;margin-right:10px;'); $sHtml .= MetaModel::GetName($sClass).': '.$iCount.'

'; @@ -715,7 +715,7 @@ class DisplayBlock } else { - $sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.$oFilter->serialize(); + $sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.urlencode($oFilter->serialize()); $aCounts[$sStateValue] = "{$aCounts[$sStateValue]}"; } } @@ -724,7 +724,7 @@ class DisplayBlock $sHtml .= ''.implode('', $aCounts).''; // Title & summary $iCount = $this->m_oSet->Count(); - $sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.$this->m_oFilter->serialize(); + $sHyperlink = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.urlencode($this->m_oFilter->serialize()); $sHtml .= '

'.Dict::S(str_replace('_', ':', $sTitle)).'

'; $sHtml .= ''.Dict::Format(str_replace('_', ':', $sLabel), $iCount).''; break; @@ -780,11 +780,11 @@ EOF $oPage->add_script("function ofc_resize(left, width, top, height) { /* do nothing special */ }"); if (isset($aExtraParams['group_by_label'])) { - $sUrl = urlencode(utils::GetAbsoluteUrlAppRoot()."pages/ajax.render.php?operation=open_flash_chart¶ms[group_by]=$sGroupBy{$sGroupByExpr}¶ms[group_by_label]={$aExtraParams['group_by_label']}¶ms[chart_type]=$sChartType¶ms[chart_title]=$sTitle¶ms[currentId]=$sId&id=$sId&filter=".$sFilter); + $sUrl = urlencode(utils::GetAbsoluteUrlAppRoot()."pages/ajax.render.php?operation=open_flash_chart¶ms[group_by]=$sGroupBy{$sGroupByExpr}¶ms[group_by_label]={$aExtraParams['group_by_label']}¶ms[chart_type]=$sChartType¶ms[chart_title]=$sTitle¶ms[currentId]=$sId&id=$sId&filter=".urlencode($sFilter)); } else { - $sUrl = urlencode(utils::GetAbsoluteUrlAppRoot()."pages/ajax.render.php?operation=open_flash_chart¶ms[group_by]=$sGroupBy{$sGroupByExpr}¶ms[chart_type]=$sChartType¶ms[chart_title]=$sTitle¶ms[currentId]=$sId&id=$sId&filter=".$sFilter); + $sUrl = urlencode(utils::GetAbsoluteUrlAppRoot()."pages/ajax.render.php?operation=open_flash_chart¶ms[group_by]=$sGroupBy{$sGroupByExpr}¶ms[chart_type]=$sChartType¶ms[chart_title]=$sTitle¶ms[currentId]=$sId&id=$sId&filter=".urlencode($sFilter)); } $oPage->add_ready_script("swfobject.embedSWF(\"../images/open-flash-chart.swf\", \"my_chart_$sId{$iChartCounter}\", \"100%\", \"300\",\"9.0.0\", \"expressInstall.swf\", @@ -839,7 +839,7 @@ EOF $sURLList = ''; foreach($aURLs as $index => $sURL) { - $sURLList .= "\taURLs[$index] = '".utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=search&format=html{$sContext}&filter=".addslashes($sURL)."';\n"; + $sURLList .= "\taURLs[$index] = '".utils::GetAbsoluteUrlAppRoot()."pages/UI.php?operation=search&format=html{$sContext}&filter=".urlencode($sURL)."';\n"; } $oPage->add_script( << Dict::S('UI:Menu:EMail'), 'url' => "mailto:?subject=".urlencode($oObj->GetRawName())."&body=".urlencode($sUrl)); - $aActions['UI:Menu:CSVExport'] = array ('label' => Dict::S('UI:Menu:CSVExport'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=search&filter=$sFilter&format=csv{$sContext}"); + $aActions['UI:Menu:CSVExport'] = array ('label' => Dict::S('UI:Menu:CSVExport'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=search&filter=".urlencode($sFilter)."&format=csv{$sContext}"); // The style tells us whether the menu is displayed on a list of one object, or on the details of the given object if ($this->m_sStyle == 'list') { @@ -1275,8 +1275,8 @@ class MenuBlock extends DisplayBlock { // many objects in the set, possible actions are: new / modify all / delete all if ($bIsCreationAllowed) { $aActions['UI:Menu:New'] = array ('label' => Dict::S('UI:Menu:New'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=new&class=$sClass{$sContext}{$sDefault}"); } - if ($bIsBulkModifyAllowed) { $aActions['UI:Menu:ModifyAll'] = array ('label' => Dict::S('UI:Menu:ModifyAll'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=select_for_modify_all&class=$sClass&filter=$sFilter{$sContext}"); } - if ($bIsBulkDeleteAllowed) { $aActions['UI:Menu:BulkDelete'] = array ('label' => Dict::S('UI:Menu:BulkDelete'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=select_for_deletion&filter=$sFilter{$sContext}"); } + if ($bIsBulkModifyAllowed) { $aActions['UI:Menu:ModifyAll'] = array ('label' => Dict::S('UI:Menu:ModifyAll'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=select_for_modify_all&class=$sClass&filter=".urlencode($sFilter)."{$sContext}"); } + if ($bIsBulkDeleteAllowed) { $aActions['UI:Menu:BulkDelete'] = array ('label' => Dict::S('UI:Menu:BulkDelete'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=select_for_deletion&filter=".urlencode($sFilter)."{$sContext}"); } // Stimuli $aStates = MetaModel::EnumStates($sClass); @@ -1307,7 +1307,7 @@ class MenuBlock extends DisplayBlock { case UR_ALLOWED_YES: case UR_ALLOWED_DEPENDS: - $aActions[$sStimulusCode] = array('label' => $aStimuli[$sStimulusCode]->GetLabel(), 'url' => "{$sRootUrl}pages/UI.php?operation=select_bulk_stimulus&stimulus=$sStimulusCode&state=$sState&class=$sClass&filter=$sFilter{$sContext}"); + $aActions[$sStimulusCode] = array('label' => $aStimuli[$sStimulusCode]->GetLabel(), 'url' => "{$sRootUrl}pages/UI.php?operation=select_bulk_stimulus&stimulus=$sStimulusCode&state=$sState&class=$sClass&filter=".urlencode($sFilter)."{$sContext}"); break; default: @@ -1319,8 +1319,8 @@ class MenuBlock extends DisplayBlock } $this->AddMenuSeparator($aActions); $sUrl = utils::GetAbsoluteUrlAppRoot(); - $aActions['UI:Menu:EMail'] = array ('label' => Dict::S('UI:Menu:EMail'), 'url' => "mailto:?subject=$sFilterDesc&body=".urlencode("{$sUrl}pages/$sUIPage?operation=search&filter=$sFilter{$sContext}")); - $aActions['UI:Menu:CSVExport'] = array ('label' => Dict::S('UI:Menu:CSVExport'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=search&filter=$sFilter&format=csv{$sContext}"); + $aActions['UI:Menu:EMail'] = array ('label' => Dict::S('UI:Menu:EMail'), 'url' => "mailto:?subject=$sFilterDesc&body=".urlencode("{$sUrl}pages/$sUIPage?operation=search&filter=".urlencode($sFilter)."{$sContext}")); + $aActions['UI:Menu:CSVExport'] = array ('label' => Dict::S('UI:Menu:CSVExport'), 'url' => "{$sRootUrl}pages/$sUIPage?operation=search&filter=".urlencode($sFilter)."&format=csv{$sContext}"); $sOQL = addslashes($sFilterDesc); $aActions['UI:Menu:AddToDashboard'] = array ('label' => Dict::S('UI:Menu:AddToDashboard'), 'url' => "#", 'onclick' => "return DashletCreationDlg('$sOQL')"); } diff --git a/pages/UI.php b/pages/UI.php index 4b4a2e2ef..e4e8c98a7 100644 --- a/pages/UI.php +++ b/pages/UI.php @@ -962,7 +962,7 @@ try $oDummyObj->DisplayModifyForm($oP, array('fieldsComments' => $aComments, 'noRelations' => true, 'custom_operation' => 'preview_or_modify_all', 'custom_button' => Dict::S('UI:Button:PreviewModifications'), 'selectObj' => $sSelectedObj, 'filter' => $sFilter, 'preview_mode' => true, 'disabled_fields' => '{}')); $oP->add("\n"); $oP->add_ready_script($sReadyScript); - $sURL = "./UI.php?operation=search&filter=$sFilter&".$oAppContext->GetForLink(); + $sURL = "./UI.php?operation=search&filter=".urlencode($sFilter)."&".$oAppContext->GetForLink(); $oP->add_ready_script( <<Table($aHeaders, $aRows); - $sURL = "./UI.php?operation=search&filter=$sFilter&".$oAppContext->GetForLink(); + $sURL = "./UI.php?operation=search&filter=".urlencode($sFilter)."&".$oAppContext->GetForLink(); if ($bPreview) { // Form to submit: @@ -1079,7 +1079,7 @@ EOF } else { - $sURL = "./UI.php?operation=search&filter=$sFilter&".$oAppContext->GetForLink(); + $sURL = "./UI.php?operation=search&filter=".urlencode($sFilter)."&".$oAppContext->GetForLink(); $oP->add("\n"); } break; @@ -1610,7 +1610,7 @@ EOF $oP->add("\n"); $oP->add($oAppContext->GetForForm()); $oP->add("\n"); - $sURL = "./UI.php?operation=search&filter=$sFilter&".$oAppContext->GetForLink(); + $sURL = "./UI.php?operation=search&filter=".urlencode($sFilter)."&".$oAppContext->GetForLink(); $oP->add("    \n"); $oP->add("\n"); $oP->add("\n"); @@ -1776,7 +1776,7 @@ EOF } $oP->Table($aHeaders, $aRows); // Back to the list - $sURL = "./UI.php?operation=search&filter=$sFilter&".$oAppContext->GetForLink(); + $sURL = "./UI.php?operation=search&filter=".urlencode($sFilter)."&".$oAppContext->GetForLink(); $oP->add(''); } break;