Skip to content

Commit

Permalink
Merge pull request #13819 from mauriciofauth/display-results
Browse files Browse the repository at this point in the history
Use templates for some of Display/Results methods
  • Loading branch information
MauricioFauth committed Nov 19, 2017
2 parents 92b8276 + f50cac4 commit d498b0c
Show file tree
Hide file tree
Showing 11 changed files with 346 additions and 319 deletions.
403 changes: 117 additions & 286 deletions libraries/classes/Display/Results.php

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions templates/display/results/additional_fields.twig
@@ -0,0 +1,14 @@
<input type="hidden" name="sql_query" value="{{ sql_query|raw }}" />
<input type="hidden" name="goto" value="{{ goto }}" />
{# Do not change the position when changing the number of rows #}
<input type="hidden" name="pos" size="3" value="{{ pos }}" />
<input type="hidden" name="is_browse_distinct" value="{{ is_browse_distinct }}" />
{% trans 'Number of rows:' %}
{{ Util_getDropdown(
'session_max_rows',
number_of_rows_choices,
max_rows,
'',
'autosubmit',
number_of_rows_placeholder
) }}
10 changes: 10 additions & 0 deletions templates/display/results/comment_for_row.twig
@@ -0,0 +1,10 @@
{% if comments_map[fields_meta.table] is defined
and comments_map[fields_meta.table][fields_meta.name] is defined %}
<span class="tblcomment" title="{{ comments_map[fields_meta.table][fields_meta.name] }}">
{% if comments_map[fields_meta.table][fields_meta.name]|length > limit_chars %}
{{ comments_map[fields_meta.table][fields_meta.name]|slice(0, limit_chars) }}…
{% else %}
{{ comments_map[fields_meta.table][fields_meta.name] }}
{% endif %}
</span>
{% endif %}
1 change: 1 addition & 0 deletions templates/display/results/empty_display.twig
@@ -0,0 +1 @@
<td {{ align }} class="{{ classes }}"></td>
12 changes: 12 additions & 0 deletions templates/display/results/multi_row_operations_form.twig
@@ -0,0 +1,12 @@
{% if delete_link == delete_row or delete_link == kill_process %}
<form method="post"
action="tbl_row_action.php"
name="resultsForm"
id="resultsForm_{{ unique_id }}"
class="ajax">
{{ Url_getHiddenInputs(db, table, 1) }}
<input type="hidden" name="goto" value="sql.php" />
{% endif %}

<div class="responsivetable">
<table class="table_results data ajax" data-uniqueId="{{ unique_id }}">
7 changes: 7 additions & 0 deletions templates/display/results/null_display.twig
@@ -0,0 +1,7 @@
<td {{ align }}
data-decimals="{{ meta.decimals is defined ? meta.decimals : '-1' }}"
data-type="{{ meta.type }}"
{# The null class is needed for grid editing #}
class="{{ classes }} null">
<em>NULL</em>
</td>
99 changes: 99 additions & 0 deletions templates/display/results/options_block.twig
@@ -0,0 +1,99 @@
<form method="post" action="sql.php" name="displayOptionsForm" class="ajax print_ignore">
{{ Url_getHiddenInputs({
'db': db,
'table': table,
'sql_query': sql_query,
'goto': goto,
'display_options_form': 1
}) }}

{{ Util_getDivForSliderEffect('', 'Options'|trans) }}
<fieldset>
<div class="formelement">
{# pftext means "partial or full texts" (done to reduce line lengths #}
{{ Util_getRadioFields(
'pftext',
{
'P': 'Partial texts'|trans,
'F': 'Full texts'|trans
},
pftext,
true,
true,
'',
'pftext_' ~ unique_id
) }}
</div>

{% if relwork and displaywork %}
<div class="formelement">
{{ Util_getRadioFields(
'relational_display',
{
'K': 'Relational key'|trans,
'D': 'Display column for relationships'|trans
},
relational_display,
true,
true,
'',
'relational_display_' ~ unique_id
) }}
</div>
{% endif %}

<div class="formelement">
{% include 'checkbox.twig' with {
'html_field_name': 'display_binary',
'label': 'Show binary contents'|trans,
'checked': display_binary is not empty,
'onclick': false,
'html_field_id': 'display_binary_' ~ unique_id
} only %}
{% include 'checkbox.twig' with {
'html_field_name': 'display_blob',
'label': 'Show BLOB contents'|trans,
'checked': display_blob is not empty,
'onclick': false,
'html_field_id': 'display_blob_' ~ unique_id
} only %}
</div>

{# I would have preferred to name this "display_transformation".
This is the only way I found to be able to keep this setting sticky
per SQL query, and at the same time have a default that displays
the transformations. #}
<div class="formelement">
{% include 'checkbox.twig' with {
'html_field_name': 'hide_transformation',
'label': 'Hide browser transformation'|trans,
'checked': hide_transformation is not empty,
'onclick': false,
'html_field_id': 'hide_transformation_' ~ unique_id
} only %}
</div>

<div class="formelement">
{{ Util_getRadioFields(
'geoOption',
{
'GEOM': 'Geometry'|trans,
'WKT': 'Well Known Text'|trans,
'WKB': 'Well Known Binary'|trans
},
geo_option,
true,
true,
'',
'geoOption_' ~ unique_id
) }}
</div>

<div class="clearfloat"></div>
</fieldset>

<fieldset class="tblFooters">
<input type="submit" value="{% trans 'Go' %}" />
</fieldset>
</div>{# slider effect div #}
</form>
13 changes: 13 additions & 0 deletions templates/display/results/show_all_checkbox.twig
@@ -0,0 +1,13 @@
<td>
<form action="sql.php" method="post">
{{ Url_getHiddenInputs(db, table) }}
<input type="hidden" name="sql_query" value="{{ html_sql_query|raw }}" />
<input type="hidden" name="pos" value="0" />
<input type="hidden" name="is_browse_distinct" value="{{ is_browse_distinct }}" />
<input type="hidden" name="session_max_rows" value="{{ not showing_all ? 'all' : max_rows }}" />
<input type="hidden" name="goto" value="{{ goto }}" />
<input type="checkbox" name="navig" id="showAll_{{ unique_id }}" class="showAllRows"
{{- showing_all ? ' checked="checked"' }} value="all" />
<label for="showAll_{{ unique_id }}">{% trans 'Show all' %}</label>
</form>
</td>
12 changes: 12 additions & 0 deletions templates/display/results/table_navigation_button.twig
@@ -0,0 +1,12 @@
<td>
<form action="sql.php" method="post"{{ onsubmit|raw }}>
{{ Url_getHiddenInputs(db, table) }}
<input type="hidden" name="sql_query" value="{{ sql_query|raw }}" />
<input type="hidden" name="pos" value="{{ pos }}" />
<input type="hidden" name="is_browse_distinct" value="{{ is_browse_distinct }}" />
<input type="hidden" name="goto" value="{{ goto }}" />
{{ input_for_real_end|raw }}
<input type="submit" name="navig" class="ajax" value="{{ caption_output|raw }}" title="{{ title }}"
{{- onclick|raw }} />
</form>
</td>
3 changes: 3 additions & 0 deletions templates/display/results/value_display.twig
@@ -0,0 +1,3 @@
<td class="left {{ class }}{{ condition_field ? ' condition' }}">
{{ value|raw }}
</td>
91 changes: 58 additions & 33 deletions test/classes/Display/ResultsTest.php
Expand Up @@ -111,25 +111,37 @@ public function testisSelect()
* @param string $title text for button
* @param integer $pos position for next query
* @param string $html_sql_query query ready for display
* @param string $output output from the _getTableNavigationButton
* method
*
* @return void
*
* @dataProvider providerForTestGetTableNavigationButton
*/
public function testGetTableNavigationButton(
$caption, $title, $pos, $html_sql_query, $output
$caption, $title, $pos, $html_sql_query
) {
$GLOBALS['cfg']['TableNavigationLinksMode'] = 'icons';
$_SESSION[' PMA_token '] = 'token';

$this->assertEquals(
$output,
$this->_callPrivateFunction(
'_getTableNavigationButton',
array(&$caption, $title, $pos, $html_sql_query, true)
)
$actual = $this->_callPrivateFunction(
'_getTableNavigationButton',
array(&$caption, $title, $pos, $html_sql_query, true)
);

$this->assertContains(
'<form action="sql.php" method="post">',
$actual
);
$this->assertContains(
'name="sql_query" value="SELECT * FROM `pma_bookmark` WHERE 1"',
$actual
);
$this->assertContains(
'name="pos" value="1"',
$actual
);
$this->assertContains(
'value="btn" title="Submit"',
$actual
);
}

Expand All @@ -146,18 +158,6 @@ public function providerForTestGetTableNavigationButton()
'Submit',
1,
'SELECT * FROM `pma_bookmark` WHERE 1',
'<td><form action="sql.php" method="post" >'
. '<input type="hidden" name="db" value="as" />'
. '<input type="hidden" name="lang" value="en" />'
. '<input type="hidden" name="collation_connection" value="utf-8" />'
. '<input type="hidden" name="token" value="token" />'
. '<input type="hidden" name="sql_query" value="SELECT * '
. 'FROM `pma_bookmark` WHERE 1" />'
. '<input type="hidden" name="pos" value="1" />'
. '<input type="hidden" name="is_browse_distinct" value="" />'
. '<input type="hidden" name="goto" value="" />'
. '<input type="submit" name="navig" class="ajax" '
. 'value="btn" title="Submit" /></form></td>'
)
);
}
Expand Down Expand Up @@ -1197,12 +1197,30 @@ public function testGetShowAllCheckboxForTableNavigation(
$this->object->__set('goto', $goto);
$this->object->__set('unique_id', $unique_id);

$this->assertEquals(
$output,
$this->_callPrivateFunction(
'_getShowAllCheckboxForTableNavigation',
array(false, $html_sql_query)
)
$result = $this->_callPrivateFunction(
'_getShowAllCheckboxForTableNavigation',
array(false, $html_sql_query)
);

$this->assertContains(
'name="db" value="' . $db . '"',
$result
);
$this->assertContains(
'name="table" value="' . $table . '"',
$result
);
$this->assertContains(
'name="sql_query" value="' . $html_sql_query . '"',
$result
);
$this->assertContains(
'name="goto" value="' . $goto . '"',
$result
);
$this->assertContains(
'<label for="showAll_' . $unique_id . '">Show all</label>',
$result
);
}

Expand Down Expand Up @@ -1473,11 +1491,13 @@ public function dataProviderForTestGetDataCellForNonNumericColumns()
array(),
0,
'binary',
'<td class="left hex"><a href="tbl_get_field.php?'
'<td class="left hex">' . PHP_EOL
. ' <a href="tbl_get_field.php?'
. 'db=foo&amp;table=tbl&amp;server=0&amp;lang=en'
. '&amp;collation_connection=utf-8'
. '" '
. 'class="disableAjax">[BLOB - 4 B]</a></td>'
. 'class="disableAjax">[BLOB - 4 B]</a>' . PHP_EOL
. '</td>' . PHP_EOL
),
array(
'noblob',
Expand All @@ -1494,8 +1514,9 @@ public function dataProviderForTestGetDataCellForNonNumericColumns()
array(),
0,
'binary',
'<td class="left grid_edit transformed hex">'
. '1001</td>'
'<td class="left grid_edit transformed hex">' . PHP_EOL
. ' 1001' . PHP_EOL
. '</td>' . PHP_EOL
),
array(
'noblob',
Expand All @@ -1512,8 +1533,12 @@ public function dataProviderForTestGetDataCellForNonNumericColumns()
array(),
0,
0,
'<td data-decimals="0" data-type="string" '
. 'class="grid_edit null"><i>NULL</i></td>'
'<td ' . PHP_EOL
. ' data-decimals="0"' . PHP_EOL
. ' data-type="string"' . PHP_EOL
. ' class="grid_edit null">' . PHP_EOL
. ' <em>NULL</em>' . PHP_EOL
. '</td>' . PHP_EOL
),
array(
'all',
Expand Down

0 comments on commit d498b0c

Please sign in to comment.