Просмотр исходного кода

CSV export of audit results: pass the parameters as a POST since they may be too long to fit in the query string of the URL.

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@4328 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 8 лет назад
Родитель
Сommit
28bc0b5af1
1 измененных файлов с 11 добавлено и 2 удалено
  1. 11 2
      application/displayblock.class.inc.php

+ 11 - 2
application/displayblock.class.inc.php

@@ -795,9 +795,17 @@ class DisplayBlock
 			$sCsvFile = strtolower($this->m_oFilter->GetClass()).'.csv'; 
 			$sDownloadLink = utils::GetAbsoluteUrlAppRoot().'webservices/export.php?expression='.urlencode($this->m_oFilter->ToOQL(true)).'&format=csv&filename='.urlencode($sCsvFile);
 			$sLinkToToggle = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search&'.$oAppContext->GetForLink().'&filter='.urlencode($this->m_oFilter->serialize()).'&format=csv';
+			// Pass the parameters via POST, since expression may be very long
+			$aParamsToPost = array(
+				'expression' => $this->m_oFilter->ToOQL(true),
+				'format' => 'csv',
+				'filename' => $sCsvFile,
+				'charset' => 'UTF-8',
+			);
 			if ($bAdvancedMode)
 			{
 				$sDownloadLink .= '&fields_advanced=1';
+				$aParamsToPost['fields_advance'] = 1;
 				$sChecked = 'CHECKED';
 			}
 			else
@@ -805,7 +813,7 @@ class DisplayBlock
 				$sLinkToToggle = $sLinkToToggle.'&advanced=1';
 				$sChecked = '';
 			}
-			$sAjaxLink = $sDownloadLink.'&charset=UTF-8'; // Includes &fields_advanced=1 if in advanced mode
+			$sAjaxLink = utils::GetAbsoluteUrlAppRoot().'webservices/export.php';
 				
 /*
 			$sCSVData = cmdbAbstractObject::GetSetAsCSV($this->m_oSet, array('fields_advanced' => $bAdvancedMode));
@@ -856,7 +864,8 @@ class DisplayBlock
 			$sHtml .= "<div id=\"csv_content_loading\"><div style=\"width: 250px; height: 20px; background: url(../setup/orange-progress.gif); border: 1px #999 solid; margin-left:auto; margin-right: auto; text-align: center;\">".Dict::S('UI:Loading')."</div></div><textarea id=\"csv_content\" style=\"display:none;\">\n";
 			//$sHtml .= htmlentities($sCSVData, ENT_QUOTES, 'UTF-8');
 			$sHtml .= "</textarea>\n";
-			$oPage->add_ready_script("$.post('$sAjaxLink', {}, function(data) { $('#csv_content').html(data); $('#csv_content_loading').hide(); $('#csv_content').show();} );");
+			$sJsonParams = json_encode($aParamsToPost);
+			$oPage->add_ready_script("$.post('$sAjaxLink', $sJsonParams, function(data) { $('#csv_content').html(data); $('#csv_content_loading').hide(); $('#csv_content').show();} );");
 			break;
 
 			case 'modify':