Port columns_definitions/partitions to Twig
Signed-off-by: Maurício Meneghini Fauth <mauriciofauth@gmail.com>
This commit is contained in:
parent
e270cbdc51
commit
fa5c45444e
@ -16,6 +16,7 @@ use PhpMyAdmin\Twig\PluginsExtension;
|
||||
use PhpMyAdmin\Twig\RelationExtension;
|
||||
use PhpMyAdmin\Twig\SanitizeExtension;
|
||||
use PhpMyAdmin\Twig\ServerPrivilegesExtension;
|
||||
use PhpMyAdmin\Twig\StorageEngineExtension;
|
||||
use PhpMyAdmin\Twig\UrlExtension;
|
||||
use PhpMyAdmin\Twig\UtilExtension;
|
||||
use Twig_Environment;
|
||||
@ -74,6 +75,7 @@ class Template
|
||||
$twig->addExtension(new RelationExtension());
|
||||
$twig->addExtension(new SanitizeExtension());
|
||||
$twig->addExtension(new ServerPrivilegesExtension());
|
||||
$twig->addExtension(new StorageEngineExtension());
|
||||
$twig->addExtension(new UrlExtension());
|
||||
$twig->addExtension(new UtilExtension());
|
||||
}
|
||||
|
||||
35
libraries/classes/Twig/StorageEngineExtension.php
Normal file
35
libraries/classes/Twig/StorageEngineExtension.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* hold PhpMyAdmin\Twig\StorageEngineExtension class
|
||||
*
|
||||
* @package PhpMyAdmin\Twig
|
||||
*/
|
||||
namespace PhpMyAdmin\Twig;
|
||||
|
||||
use Twig_Extension;
|
||||
use Twig_SimpleFunction;
|
||||
|
||||
/**
|
||||
* Class StorageEngineExtension
|
||||
*
|
||||
* @package PhpMyAdmin\Twig
|
||||
*/
|
||||
class StorageEngineExtension extends Twig_Extension
|
||||
{
|
||||
/**
|
||||
* Returns a list of functions to add to the existing list.
|
||||
*
|
||||
* @return Twig_SimpleFunction[]
|
||||
*/
|
||||
public function getFunctions()
|
||||
{
|
||||
return array(
|
||||
new Twig_SimpleFunction(
|
||||
'StorageEngine_getHtmlSelect',
|
||||
'PhpMyAdmin\StorageEngine::getHtmlSelect',
|
||||
array('is_safe' => array('html'))
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -13,6 +13,7 @@ use PhpMyAdmin\Twig\PluginsExtension;
|
||||
use PhpMyAdmin\Twig\RelationExtension;
|
||||
use PhpMyAdmin\Twig\SanitizeExtension;
|
||||
use PhpMyAdmin\Twig\ServerPrivilegesExtension;
|
||||
use PhpMyAdmin\Twig\StorageEngineExtension;
|
||||
use PhpMyAdmin\Twig\UrlExtension;
|
||||
use PhpMyAdmin\Twig\UtilExtension;
|
||||
|
||||
@ -34,6 +35,7 @@ $twig->addExtension(new PluginsExtension());
|
||||
$twig->addExtension(new RelationExtension());
|
||||
$twig->addExtension(new SanitizeExtension());
|
||||
$twig->addExtension(new ServerPrivilegesExtension());
|
||||
$twig->addExtension(new StorageEngineExtension());
|
||||
$twig->addExtension(new UrlExtension());
|
||||
$twig->addExtension(new UtilExtension());
|
||||
|
||||
|
||||
@ -152,7 +152,7 @@ use PhpMyAdmin\Url;
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
<?= PhpMyAdmin\Template::get('columns_definitions/partitions')
|
||||
->render(array('partitionDetails' => $partitionDetails)); ?>
|
||||
->render(array('partition_details' => $partitionDetails)); ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
|
||||
@ -1,172 +0,0 @@
|
||||
<?php
|
||||
$partitionOptions = array('', 'HASH', 'LINEAR HASH', 'KEY', 'LINEAR KEY', 'RANGE', 'RANGE COLUMNS', 'LIST', 'LIST COLUMNS');
|
||||
$subPartitionOptions = array('', 'HASH', 'LINEAR HASH', 'KEY', 'LINEAR KEY');
|
||||
$valueTypeOptions = array('', 'LESS THAN', 'LESS THAN MAXVALUE', 'IN');
|
||||
?>
|
||||
|
||||
<table id="partition_table">
|
||||
<tr class="vmiddle">
|
||||
<td><label for="partition_by"><?= __('Partition by:'); ?></label></td>
|
||||
<td>
|
||||
<select name="partition_by" id="partition_by">
|
||||
<?php foreach ($partitionOptions as $option): ?>
|
||||
<option value="<?= $option?>"
|
||||
<?php if ($partitionDetails['partition_by'] == $option): ?>
|
||||
selected="selected"
|
||||
<?php endif; ?>
|
||||
>
|
||||
<?= $option; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</td>
|
||||
<td>(
|
||||
<input name="partition_expr" type="text"
|
||||
placeholder="<?= __('Expression or column list'); ?>"
|
||||
value="<?= htmlspecialchars($partitionDetails['partition_expr']); ?>"/>
|
||||
)</td>
|
||||
</tr>
|
||||
<tr class="vmiddle">
|
||||
<td><label for="partition_count"><?= __('Partitions:'); ?></label></td>
|
||||
<td colspan="2">
|
||||
<input name="partition_count" type="number" min="2"
|
||||
value="<?= htmlspecialchars($partitionDetails['partition_count']); ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
<?php if ($partitionDetails['can_have_subpartitions']): ?>
|
||||
<tr class="vmiddle">
|
||||
<td><label for="subpartition_by"><?= __('Subpartition by:'); ?></label></td>
|
||||
<td>
|
||||
<select name="subpartition_by" id="subpartition_by">
|
||||
<?php foreach ($subPartitionOptions as $option): ?>
|
||||
<option value="<?= $option?>"
|
||||
<?php if ($partitionDetails['subpartition_by'] == $option): ?>
|
||||
selected="selected"
|
||||
<?php endif; ?>
|
||||
>
|
||||
<?= $option; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</td>
|
||||
<td>(
|
||||
<input name="subpartition_expr" type="text"
|
||||
placeholder="<?= __('Expression or column list'); ?>"
|
||||
value="<?= htmlspecialchars($partitionDetails['subpartition_expr']); ?>"/>
|
||||
)</td>
|
||||
</tr>
|
||||
<tr class="vmiddle">
|
||||
<td><label for="subpartition_count"><?= __('Subpartitions:'); ?></label></td>
|
||||
<td colspan="2">
|
||||
<input name="subpartition_count" type="number" min="2"
|
||||
value="<?= htmlspecialchars($partitionDetails['subpartition_count']); ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
<br />
|
||||
<?php if ($partitionDetails['partition_count'] > 1): ?>
|
||||
<table id="partition_definition_table">
|
||||
<thead><tr>
|
||||
<th><?= __('Partition'); ?></th>
|
||||
<?php if ($partitionDetails['value_enabled']): ?>
|
||||
<th><?= __('Values'); ?></th>
|
||||
<?php endif; ?>
|
||||
<?php if ($partitionDetails['can_have_subpartitions'] && $partitionDetails['subpartition_count'] > 1): ?>
|
||||
<th><?= __('Subpartition'); ?></th>
|
||||
<?php endif; ?>
|
||||
<th><?= __('Engine'); ?></th>
|
||||
<th><?= __('Comment'); ?></th>
|
||||
<th><?= __('Data directory'); ?></th>
|
||||
<th><?= __('Index directory'); ?></th>
|
||||
<th><?= __('Max rows'); ?></th>
|
||||
<th><?= __('Min rows'); ?></th>
|
||||
<th><?= __('Table space'); ?></th>
|
||||
<th><?= __('Node group'); ?></th>
|
||||
</tr></thead>
|
||||
<?php foreach ($partitionDetails['partitions'] as $partition): ?>
|
||||
<?php $rowspan = ! empty($partition['subpartition_count']) ? ($partition['subpartition_count'] + 1) : 2; ?>
|
||||
<tr>
|
||||
<td rowspan="<?= $rowspan; ?>">
|
||||
<input type="text" name="<?= $partition['prefix']; ?>[name]"
|
||||
value="<?= htmlspecialchars($partition['name']); ?>" />
|
||||
</td>
|
||||
<?php if ($partitionDetails['value_enabled']): ?>
|
||||
<td rowspan="<?= $rowspan; ?>" class="vmiddle">
|
||||
<select class="partition_value"
|
||||
name="<?= $partition['prefix']; ?>[value_type]">
|
||||
<?php foreach ($valueTypeOptions as $option): ?>
|
||||
<option value="<?= $option?>"
|
||||
<?php if ($partition['value_type'] == $option): ?>
|
||||
selected="selected"
|
||||
<?php endif; ?>
|
||||
>
|
||||
<?= $option; ?>
|
||||
</option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
<input type="text" class="partition_value"
|
||||
name="<?= $partition['prefix']; ?>[value]"
|
||||
value="<?= $partition['value']; ?>" />
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
if (isset($partition['subpartitions'])):
|
||||
$subpartitions = $partition['subpartitions'];
|
||||
else:
|
||||
$subpartitions = array($partition);
|
||||
endif;
|
||||
?>
|
||||
|
||||
<?php foreach ($subpartitions as $subpartition): ?>
|
||||
<tr>
|
||||
<?php if ($partitionDetails['can_have_subpartitions'] && $partitionDetails['subpartition_count'] > 1): ?>
|
||||
<td>
|
||||
<input type="text" name="<?= $subpartition['prefix']; ?>[name]"
|
||||
value="<?= htmlspecialchars($subpartition['name']); ?>" />
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
<td>
|
||||
<?= PhpMyAdmin\StorageEngine::getHtmlSelect(
|
||||
$subpartition['prefix'] . '[engine]',
|
||||
null,
|
||||
$subpartition['engine'],
|
||||
false,
|
||||
true
|
||||
); ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php //Please keep this at one line to avoid extra spaces in textarea value. ?>
|
||||
<textarea name="<?= $subpartition['prefix']; ?>[comment]"><?= htmlspecialchars($subpartition['comment']); ?></textarea>
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="<?= $subpartition['prefix']; ?>[data_directory]"
|
||||
value="<?= htmlspecialchars($subpartition['data_directory']); ?>" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="<?= $subpartition['prefix']; ?>[index_directory]"
|
||||
value="<?= htmlspecialchars($subpartition['index_directory']); ?>" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" name="<?= $subpartition['prefix']; ?>[max_rows]"
|
||||
value="<?= htmlspecialchars($subpartition['max_rows']); ?>" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" min="0" name="<?= $subpartition['prefix']; ?>[min_rows]"
|
||||
value="<?= htmlspecialchars($subpartition['min_rows']); ?>" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" min="0" name="<?= $subpartition['prefix']; ?>[tablespace]"
|
||||
value="<?= htmlspecialchars($subpartition['tablespace']); ?>" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="<?= $subpartition['prefix']; ?>[node_group]"
|
||||
value="<?= htmlspecialchars($subpartition['node_group']); ?>" />
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
<?php endforeach; ?>
|
||||
</table>
|
||||
<?php endif; ?>
|
||||
180
templates/columns_definitions/partitions.twig
Normal file
180
templates/columns_definitions/partitions.twig
Normal file
@ -0,0 +1,180 @@
|
||||
{% set partition_options = [
|
||||
'',
|
||||
'HASH',
|
||||
'LINEAR HASH',
|
||||
'KEY',
|
||||
'LINEAR KEY',
|
||||
'RANGE',
|
||||
'RANGE COLUMNS',
|
||||
'LIST',
|
||||
'LIST COLUMNS'
|
||||
] %}
|
||||
{% set sub_partition_options = ['', 'HASH', 'LINEAR HASH', 'KEY', 'LINEAR KEY'] %}
|
||||
{% set value_type_options = ['', 'LESS THAN', 'LESS THAN MAXVALUE', 'IN'] %}
|
||||
|
||||
<table id="partition_table">
|
||||
<tr class="vmiddle">
|
||||
<td><label for="partition_by">{% trans 'Partition by:' %}</label></td>
|
||||
<td>
|
||||
<select name="partition_by" id="partition_by">
|
||||
{% for option in partition_options %}
|
||||
<option value="{{ option }}"
|
||||
{%- if partition_details['partition_by'] == option %}
|
||||
selected="selected"
|
||||
{%- endif %}>
|
||||
{{ option }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
(<input name="partition_expr" type="text"
|
||||
placeholder="{% trans 'Expression or column list' %}"
|
||||
value="{{ partition_details['partition_expr'] }}" />)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="vmiddle">
|
||||
<td><label for="partition_count">{% trans 'Partitions:' %}</label></td>
|
||||
<td colspan="2">
|
||||
<input name="partition_count" type="number" min="2"
|
||||
value="{{ partition_details['partition_count'] }}" />
|
||||
</td>
|
||||
</tr>
|
||||
{% if partition_details['can_have_subpartitions'] %}
|
||||
<tr class="vmiddle">
|
||||
<td><label for="subpartition_by">{% trans 'Subpartition by:' %}</label></td>
|
||||
<td>
|
||||
<select name="subpartition_by" id="subpartition_by">
|
||||
{% for option in sub_partition_options %}
|
||||
<option value="<?= $option?>"
|
||||
{%- if partition_details['subpartition_by'] == option %}
|
||||
selected="selected"
|
||||
{%- endif %}>
|
||||
{{ option }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
(<input name="subpartition_expr" type="text"
|
||||
placeholder="{% trans 'Expression or column list' %}"
|
||||
value="{{ partition_details['subpartition_expr'] }}" />)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="vmiddle">
|
||||
<td><label for="subpartition_count">{% trans 'Subpartitions:' %}</label></td>
|
||||
<td colspan="2">
|
||||
<input name="subpartition_count" type="number" min="2"
|
||||
value="{{ partition_details['subpartition_count'] }}" />
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</table>
|
||||
{% if partition_details['partition_count'] > 1 %}
|
||||
<table id="partition_definition_table">
|
||||
<thead><tr>
|
||||
<th>{% trans 'Partition' %}</th>
|
||||
{% if partition_details['value_enabled'] %}
|
||||
<th>{% trans 'Values' %}</th>
|
||||
{% endif %}
|
||||
{% if partition_details['can_have_subpartitions']
|
||||
and partition_details['subpartition_count'] > 1 %}
|
||||
<th>{% trans 'Subpartition' %}</th>
|
||||
{% endif %}
|
||||
<th>{% trans 'Engine' %}</th>
|
||||
<th>{% trans 'Comment' %}</th>
|
||||
<th>{% trans 'Data directory' %}</th>
|
||||
<th>{% trans 'Index directory' %}</th>
|
||||
<th>{% trans 'Max rows' %}</th>
|
||||
<th>{% trans 'Min rows' %}</th>
|
||||
<th>{% trans 'Table space' %}</th>
|
||||
<th>{% trans 'Node group' %}</th>
|
||||
</tr></thead>
|
||||
{% for partition in partition_details['partitions'] %}
|
||||
{% set rowspan = partition['subpartition_count'] is not empty
|
||||
? partition['subpartition_count'] + 1 : 2 %}
|
||||
<tr>
|
||||
<td rowspan="{{ rowspan }}">
|
||||
<input type="text" name="{{ partition['prefix'] }}[name]"
|
||||
value="{{ partition['name'] }}" />
|
||||
</td>
|
||||
{% if partition_details['value_enabled'] %}
|
||||
<td rowspan="{{ rowspan }}" class="vmiddle">
|
||||
<select class="partition_value"
|
||||
name="{{ partition['prefix'] }}[value_type]">
|
||||
{% for option in value_type_options %}
|
||||
<option value="{{ option }}"
|
||||
{%- if partition['value_type'] == option %}
|
||||
selected="selected"
|
||||
{%- endif %}>
|
||||
{{ option }}
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input type="text" class="partition_value"
|
||||
name="{{ partition['prefix'] }}[value]"
|
||||
value="{{ partition['value'] }}" />
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
|
||||
{% if partition['subpartitions'] is defined %}
|
||||
{% set subpartitions = partition['subpartitions'] %}
|
||||
{% else %}
|
||||
{% set subpartitions = [partition] %}
|
||||
{% endif %}
|
||||
|
||||
{% for subpartition in subpartitions %}
|
||||
<tr>
|
||||
{% if partition_details['can_have_subpartitions']
|
||||
and partition_details['subpartition_count'] > 1 %}
|
||||
<td>
|
||||
<input type="text" name="{{ subpartition['prefix'] }}[name]"
|
||||
value="{{ subpartition['name'] }}" />
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
{{ StorageEngine_getHtmlSelect(
|
||||
subpartition['prefix'] ~ '[engine]',
|
||||
null,
|
||||
subpartition['engine'],
|
||||
false,
|
||||
true
|
||||
) }}
|
||||
</td>
|
||||
<td>
|
||||
{% spaceless %}
|
||||
<textarea name="{{ subpartition['prefix'] }}[comment]">
|
||||
{{ subpartition['comment'] }}
|
||||
</textarea>
|
||||
{% endspaceless %}
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="{{ subpartition['prefix'] }}[data_directory]"
|
||||
value="{{ subpartition['data_directory'] }}" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="{{ subpartition['prefix'] }}[index_directory]"
|
||||
value="{{ subpartition['index_directory'] }}" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" name="{{ subpartition['prefix'] }}[max_rows]"
|
||||
value="{{ subpartition['max_rows'] }}" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" min="0" name="{{ subpartition['prefix'] }}[min_rows]"
|
||||
value="{{ subpartition['min_rows'] }}" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" min="0" name="{{ subpartition['prefix'] }}[tablespace]"
|
||||
value="{{ subpartition['tablespace'] }}" />
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" name="{{ subpartition['prefix'] }}[node_group]"
|
||||
value="{{ subpartition['node_group'] }}" />
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
@ -5,7 +5,7 @@
|
||||
<fieldset>
|
||||
<legend><?= __('Edit partitioning'); ?></legend>
|
||||
<?= PhpMyAdmin\Template::get('columns_definitions/partitions')
|
||||
->render(array('partitionDetails' => $partitionDetails)); ?>
|
||||
->render(array('partition_details' => $partitionDetails)); ?>
|
||||
</fieldset>
|
||||
<fieldset class="tblFooters">
|
||||
<input type="submit" name="save_partitioning" value="<?= __('Save'); ?>">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user