/** * Function to generate HTML for the GIS visualization page * * @param array $url_params url parameters * @param array $labelCandidates list of candidates for the label * @param array $spatialCandidates list of candidates for the spatial column * @param array $visualizationSettings visualization settings * @param String $sql_query the sql query * @param String $visualization HTML and js code for the visualization * @param boolean $svg_support whether svg download format is supported * @param array $data array of visualizing data * * @return string HTML code for the GIS visualization */ function PMA_getHtmlForGisVisualization($url_params, $labelCandidates, $spatialCandidates, $visualizationSettings, $sql_query, $visualization, $svg_support, $data) { $html = '<div id="div_view_options">'; $html .= '<fieldset>'; $html .= '<legend>' . __('Display GIS Visualization') . '</legend>'; $html .= '<div style="width: 400px; float: left;">'; $html .= '<form method="post" action="tbl_gis_visualization.php">'; $html .= PMA_URL_getHiddenInputs($url_params); $html .= '<table class="gis_table">'; $html .= PMA_getHtmlForColumn("labelColumn", $labelCandidates, $visualizationSettings); $html .= PMA_getHtmlForColumn("spatialColumn", $spatialCandidates, $visualizationSettings); $html .= '<tr><td></td>'; $html .= '<td class="button"><input type="submit"'; $html .= ' name="displayVisualizationBtn" value="'; $html .= __('Redraw'); $html .= '" /></td></tr>'; if (!$GLOBALS['PMA_Config']->isHttps()) { $isSelected = isset($visualizationSettings['choice']) ? true : false; $html .= PMA_getHtmlForUseOpenStreetMaps($isSelected); } $html .= '</table>'; $html .= '<input type="hidden" name="displayVisualization" value="redraw">'; $html .= '<input type="hidden" name="sql_query" value="'; $html .= htmlspecialchars($sql_query) . '" />'; $html .= '</form>'; $html .= '</div>'; $html .= '<div style="float:left;">'; $html .= '<form method="post" class="disableAjax"'; $html .= ' action="tbl_gis_visualization.php">'; $html .= PMA_URL_getHiddenInputs($url_params); $html .= '<table class="gis_table">'; $html .= '<tr><td><label for="fileName">'; $html .= __("File name") . '</label></td>'; $html .= '<td><input type="text" name="fileName" id="fileName" /></td></tr>'; $html .= '<tr><td><label for="fileFormat">'; $html .= __("Format") . '</label></td>'; $html .= '<td><select name="fileFormat" id="fileFormat">'; $html .= '<option value="png">PNG</option>'; $html .= '<option value="pdf">PDF</option>'; if ($svg_support) { $html .= '<option value="svg" selected="selected">SVG</option>'; } $html .= '</select></td></tr>'; $html .= '<tr><td></td>'; $html .= '<td class="button"><input type="submit" name="saveToFileBtn" value="'; $html .= __('Download') . '" /></td></tr>'; $html .= '</table>'; $html .= '<input type="hidden" name="saveToFile" value="download">'; $html .= '<input type="hidden" name="sql_query" value="'; $html .= htmlspecialchars($sql_query) . '" />'; $html .= '</form>'; $html .= '</div>'; $html .= '<div style="clear:both;"> </div>'; $html .= '<div id="placeholder" style="width:'; $html .= htmlspecialchars($visualizationSettings['width']) . 'px;height:'; $html .= htmlspecialchars($visualizationSettings['height']) . 'px;">'; $html .= $visualization; $html .= '</div>'; $html .= '<div id="openlayersmap"></div>'; $html .= '<input type="hidden" id="pmaThemeImage" value="'; $html .= $GLOBALS['pmaThemeImage'] . '" />'; $html .= '<script language="javascript" type="text/javascript">'; $html .= 'function drawOpenLayers()'; $html .= '{'; if (!$GLOBALS['PMA_Config']->isHttps()) { $html .= PMA_GIS_visualizationResults($data, $visualizationSettings, 'ol'); } $html .= '}'; $html .= '</script>'; $html .= '</fieldset>'; $html .= '</div>'; return $html; }
/** * Tests for PMA_getHtmlForGisVisualization() method. * * @return void * @test */ public function testPMAGetHtmlForGisVisualization() { $url_params = array("url_params"); $labelCandidates = array("option1", "option2"); $spatialCandidates = array("option2", "option3"); $visualizationSettings = array('width' => 10, 'height' => 12, 'labelColumn' => 'labelColumn', 'spatialColumn' => 'spatialColumn', 'choice' => 'choice'); $sql_query = "sql_query"; $visualization = "visualization"; $svg_support = array(); $data = array(); $html = PMA_getHtmlForGisVisualization($url_params, $labelCandidates, $spatialCandidates, $visualizationSettings, $sql_query, $visualization, $svg_support, $data); $this->assertContains('<legend>' . __('Display GIS Visualization') . '</legend>', $html); $this->assertContains(PMA_URL_getHiddenInputs($url_params), $html); $output = PMA_getHtmlForColumn("labelColumn", $labelCandidates, $visualizationSettings); $this->assertContains($output, $html); $output = PMA_getHtmlForColumn("spatialColumn", $spatialCandidates, $visualizationSettings); $this->assertContains($output, $html); $this->assertContains(__('Redraw'), $html); $this->assertContains(__('Download'), $html); $this->assertContains(htmlspecialchars($sql_query), $html); $this->assertContains('<option value="png">PNG</option>', $html); $this->assertContains('<option value="pdf">PDF</option>', $html); $this->assertContains(htmlspecialchars($visualizationSettings['width']), $html); $this->assertContains(htmlspecialchars($visualizationSettings['height']), $html); $this->assertContains($visualization, $html); }