Remove Display\Import class
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
aa8c4a773c
commit
fa67657b1a
@ -4,24 +4,29 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Database;
|
||||
|
||||
use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Charsets\Charset;
|
||||
use PhpMyAdmin\Common;
|
||||
use PhpMyAdmin\Config\PageSettings;
|
||||
use PhpMyAdmin\Display\Import;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Display\ImportAjax;
|
||||
use PhpMyAdmin\Encoding;
|
||||
use PhpMyAdmin\Import;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Plugins;
|
||||
use PhpMyAdmin\Util;
|
||||
use function intval;
|
||||
|
||||
final class ImportController extends AbstractController
|
||||
{
|
||||
public function index(): void
|
||||
{
|
||||
global $db, $max_upload_size, $table, $tables, $num_tables, $total_num_tables, $is_show_stats;
|
||||
global $db, $max_upload_size, $table, $tables, $num_tables, $total_num_tables, $is_show_stats, $cfg;
|
||||
global $db_is_system_schema, $tooltip_truename, $tooltip_aliasname, $pos, $sub_part, $SESSION_KEY;
|
||||
|
||||
$pageSettings = new PageSettings('Import');
|
||||
$this->response->addHTML($pageSettings->getErrorHTML());
|
||||
$this->response->addHTML($pageSettings->getHTML());
|
||||
$pageSettingsErrorHtml = $pageSettings->getErrorHTML();
|
||||
$pageSettingsHtml = $pageSettings->getHTML();
|
||||
|
||||
$this->addScriptFiles(['import.js']);
|
||||
|
||||
@ -51,16 +56,58 @@ final class ImportController extends AbstractController
|
||||
return;
|
||||
}
|
||||
|
||||
$import = Import::get(
|
||||
'database',
|
||||
$db,
|
||||
$table,
|
||||
$max_upload_size,
|
||||
$SESSION_KEY,
|
||||
$uploadId,
|
||||
$importList
|
||||
);
|
||||
$offset = null;
|
||||
if (Core::isValid($_REQUEST['offset'], 'numeric')) {
|
||||
$offset = intval($_REQUEST['offset']);
|
||||
}
|
||||
|
||||
$this->render('display/import/import', $import);
|
||||
$timeoutPassed = $_REQUEST['timeout_passed'] ?? null;
|
||||
$localImportFile = $_REQUEST['local_import_file'] ?? null;
|
||||
$compressions = Import::getCompressions();
|
||||
|
||||
$allCharsets = Charsets::getCharsets($this->dbi, $cfg['Server']['DisableIS']);
|
||||
$charsets = [];
|
||||
/** @var Charset $charset */
|
||||
foreach ($allCharsets as $charset) {
|
||||
$charsets[] = [
|
||||
'name' => $charset->getName(),
|
||||
'description' => $charset->getDescription(),
|
||||
];
|
||||
}
|
||||
|
||||
$idKey = $_SESSION[$SESSION_KEY]['handler']::getIdKey();
|
||||
$hiddenInputs = [
|
||||
$idKey => $uploadId,
|
||||
'import_type' => 'database',
|
||||
'db' => $db,
|
||||
];
|
||||
|
||||
$this->render('database/import/index', [
|
||||
'page_settings_error_html' => $pageSettingsErrorHtml,
|
||||
'page_settings_html' => $pageSettingsHtml,
|
||||
'upload_id' => $uploadId,
|
||||
'handler' => $_SESSION[$SESSION_KEY]['handler'],
|
||||
'pma_theme_image' => $GLOBALS['pmaThemeImage'],
|
||||
'hidden_inputs' => $hiddenInputs,
|
||||
'db' => $db,
|
||||
'table' => $table,
|
||||
'max_upload_size' => $max_upload_size,
|
||||
'import_list' => $importList,
|
||||
'local_import_file' => $localImportFile,
|
||||
'is_upload' => $GLOBALS['is_upload'],
|
||||
'upload_dir' => $cfg['UploadDir'] ?? null,
|
||||
'timeout_passed_global' => $GLOBALS['timeout_passed'] ?? null,
|
||||
'compressions' => $compressions,
|
||||
'is_encoding_supported' => Encoding::isSupported(),
|
||||
'encodings' => Encoding::listEncodings(),
|
||||
'import_charset' => $cfg['Import']['charset'] ?? null,
|
||||
'timeout_passed' => $timeoutPassed,
|
||||
'offset' => $offset,
|
||||
'can_convert_kanji' => Encoding::canConvertKanji(),
|
||||
'charsets' => $charsets,
|
||||
'is_foreign_key_check' => Util::isForeignKeyCheck(),
|
||||
'user_upload_dir' => Util::userDir($cfg['UploadDir'] ?? ''),
|
||||
'local_files' => Import::getLocalFiles($importList),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,23 +4,29 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Server;
|
||||
|
||||
use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Charsets\Charset;
|
||||
use PhpMyAdmin\Common;
|
||||
use PhpMyAdmin\Config\PageSettings;
|
||||
use PhpMyAdmin\Controllers\AbstractController;
|
||||
use PhpMyAdmin\Display\Import;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Display\ImportAjax;
|
||||
use PhpMyAdmin\Encoding;
|
||||
use PhpMyAdmin\Import;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Plugins;
|
||||
use PhpMyAdmin\Util;
|
||||
use function intval;
|
||||
|
||||
final class ImportController extends AbstractController
|
||||
{
|
||||
public function index(): void
|
||||
{
|
||||
global $db, $max_upload_size, $table, $SESSION_KEY;
|
||||
global $db, $max_upload_size, $table, $SESSION_KEY, $cfg;
|
||||
|
||||
$pageSettings = new PageSettings('Import');
|
||||
$this->response->addHTML($pageSettings->getErrorHTML());
|
||||
$this->response->addHTML($pageSettings->getHTML());
|
||||
$pageSettingsErrorHtml = $pageSettings->getErrorHTML();
|
||||
$pageSettingsHtml = $pageSettings->getHTML();
|
||||
|
||||
$this->addScriptFiles(['import.js']);
|
||||
|
||||
@ -38,16 +44,57 @@ final class ImportController extends AbstractController
|
||||
return;
|
||||
}
|
||||
|
||||
$import = Import::get(
|
||||
'server',
|
||||
$db,
|
||||
$table,
|
||||
$max_upload_size,
|
||||
$SESSION_KEY,
|
||||
$uploadId,
|
||||
$importList
|
||||
);
|
||||
$offset = null;
|
||||
if (Core::isValid($_REQUEST['offset'], 'numeric')) {
|
||||
$offset = intval($_REQUEST['offset']);
|
||||
}
|
||||
|
||||
$this->render('display/import/import', $import);
|
||||
$timeoutPassed = $_REQUEST['timeout_passed'] ?? null;
|
||||
$localImportFile = $_REQUEST['local_import_file'] ?? null;
|
||||
$compressions = Import::getCompressions();
|
||||
|
||||
$allCharsets = Charsets::getCharsets($this->dbi, $cfg['Server']['DisableIS']);
|
||||
$charsets = [];
|
||||
/** @var Charset $charset */
|
||||
foreach ($allCharsets as $charset) {
|
||||
$charsets[] = [
|
||||
'name' => $charset->getName(),
|
||||
'description' => $charset->getDescription(),
|
||||
];
|
||||
}
|
||||
|
||||
$idKey = $_SESSION[$SESSION_KEY]['handler']::getIdKey();
|
||||
$hiddenInputs = [
|
||||
$idKey => $uploadId,
|
||||
'import_type' => 'server',
|
||||
];
|
||||
|
||||
$this->render('server/import/index', [
|
||||
'page_settings_error_html' => $pageSettingsErrorHtml,
|
||||
'page_settings_html' => $pageSettingsHtml,
|
||||
'upload_id' => $uploadId,
|
||||
'handler' => $_SESSION[$SESSION_KEY]['handler'],
|
||||
'pma_theme_image' => $GLOBALS['pmaThemeImage'],
|
||||
'hidden_inputs' => $hiddenInputs,
|
||||
'db' => $db,
|
||||
'table' => $table,
|
||||
'max_upload_size' => $max_upload_size,
|
||||
'import_list' => $importList,
|
||||
'local_import_file' => $localImportFile,
|
||||
'is_upload' => $GLOBALS['is_upload'],
|
||||
'upload_dir' => $cfg['UploadDir'] ?? null,
|
||||
'timeout_passed_global' => $GLOBALS['timeout_passed'] ?? null,
|
||||
'compressions' => $compressions,
|
||||
'is_encoding_supported' => Encoding::isSupported(),
|
||||
'encodings' => Encoding::listEncodings(),
|
||||
'import_charset' => $cfg['Import']['charset'] ?? null,
|
||||
'timeout_passed' => $timeoutPassed,
|
||||
'offset' => $offset,
|
||||
'can_convert_kanji' => Encoding::canConvertKanji(),
|
||||
'charsets' => $charsets,
|
||||
'is_foreign_key_check' => Util::isForeignKeyCheck(),
|
||||
'user_upload_dir' => Util::userDir($cfg['UploadDir'] ?? ''),
|
||||
'local_files' => Import::getLocalFiles($importList),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,23 +4,29 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Controllers\Table;
|
||||
|
||||
use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Charsets\Charset;
|
||||
use PhpMyAdmin\Common;
|
||||
use PhpMyAdmin\Config\PageSettings;
|
||||
use PhpMyAdmin\Display\Import;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Display\ImportAjax;
|
||||
use PhpMyAdmin\Encoding;
|
||||
use PhpMyAdmin\Import;
|
||||
use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Plugins;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
use function intval;
|
||||
|
||||
final class ImportController extends AbstractController
|
||||
{
|
||||
public function index(): void
|
||||
{
|
||||
global $db, $max_upload_size, $table, $url_query, $url_params, $SESSION_KEY;
|
||||
global $db, $max_upload_size, $table, $url_query, $url_params, $SESSION_KEY, $cfg;
|
||||
|
||||
$pageSettings = new PageSettings('Import');
|
||||
$this->response->addHTML($pageSettings->getErrorHTML());
|
||||
$this->response->addHTML($pageSettings->getHTML());
|
||||
$pageSettingsErrorHtml = $pageSettings->getErrorHTML();
|
||||
$pageSettingsHtml = $pageSettings->getHTML();
|
||||
|
||||
$this->addScriptFiles(['import.js']);
|
||||
|
||||
@ -42,16 +48,59 @@ final class ImportController extends AbstractController
|
||||
return;
|
||||
}
|
||||
|
||||
$import = Import::get(
|
||||
'table',
|
||||
$db,
|
||||
$table,
|
||||
$max_upload_size,
|
||||
$SESSION_KEY,
|
||||
$uploadId,
|
||||
$importList
|
||||
);
|
||||
$offset = null;
|
||||
if (Core::isValid($_REQUEST['offset'], 'numeric')) {
|
||||
$offset = intval($_REQUEST['offset']);
|
||||
}
|
||||
|
||||
$this->render('display/import/import', $import);
|
||||
$timeoutPassed = $_REQUEST['timeout_passed'] ?? null;
|
||||
$localImportFile = $_REQUEST['local_import_file'] ?? null;
|
||||
$compressions = Import::getCompressions();
|
||||
|
||||
$allCharsets = Charsets::getCharsets($this->dbi, $cfg['Server']['DisableIS']);
|
||||
$charsets = [];
|
||||
/** @var Charset $charset */
|
||||
foreach ($allCharsets as $charset) {
|
||||
$charsets[] = [
|
||||
'name' => $charset->getName(),
|
||||
'description' => $charset->getDescription(),
|
||||
];
|
||||
}
|
||||
|
||||
$idKey = $_SESSION[$SESSION_KEY]['handler']::getIdKey();
|
||||
$hiddenInputs = [
|
||||
$idKey => $uploadId,
|
||||
'import_type' => 'table',
|
||||
'db' => $db,
|
||||
'table' => $table,
|
||||
];
|
||||
|
||||
$this->render('table/import/index', [
|
||||
'page_settings_error_html' => $pageSettingsErrorHtml,
|
||||
'page_settings_html' => $pageSettingsHtml,
|
||||
'upload_id' => $uploadId,
|
||||
'handler' => $_SESSION[$SESSION_KEY]['handler'],
|
||||
'pma_theme_image' => $GLOBALS['pmaThemeImage'],
|
||||
'hidden_inputs' => $hiddenInputs,
|
||||
'db' => $db,
|
||||
'table' => $table,
|
||||
'max_upload_size' => $max_upload_size,
|
||||
'import_list' => $importList,
|
||||
'local_import_file' => $localImportFile,
|
||||
'is_upload' => $GLOBALS['is_upload'],
|
||||
'upload_dir' => $cfg['UploadDir'] ?? null,
|
||||
'timeout_passed_global' => $GLOBALS['timeout_passed'] ?? null,
|
||||
'compressions' => $compressions,
|
||||
'is_encoding_supported' => Encoding::isSupported(),
|
||||
'encodings' => Encoding::listEncodings(),
|
||||
'import_charset' => $cfg['Import']['charset'] ?? null,
|
||||
'timeout_passed' => $timeoutPassed,
|
||||
'offset' => $offset,
|
||||
'can_convert_kanji' => Encoding::canConvertKanji(),
|
||||
'charsets' => $charsets,
|
||||
'is_foreign_key_check' => Util::isForeignKeyCheck(),
|
||||
'user_upload_dir' => Util::userDir($cfg['UploadDir'] ?? ''),
|
||||
'local_files' => Import::getLocalFiles($importList),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,131 +0,0 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Display;
|
||||
|
||||
use PhpMyAdmin\Charsets;
|
||||
use PhpMyAdmin\Charsets\Charset;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\Encoding;
|
||||
use PhpMyAdmin\FileListing;
|
||||
use PhpMyAdmin\Util;
|
||||
use function function_exists;
|
||||
use function intval;
|
||||
|
||||
/**
|
||||
* Functions for displaying import for: server, database and table
|
||||
*/
|
||||
class Import
|
||||
{
|
||||
/**
|
||||
* @param string $importType Import type: server|database|table
|
||||
* @param string $db Selected DB
|
||||
* @param string $table Selected Table
|
||||
* @param int $maxUploadSize Max upload size
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function get(
|
||||
$importType,
|
||||
$db,
|
||||
$table,
|
||||
$maxUploadSize,
|
||||
string $sessionKey,
|
||||
string $uploadId,
|
||||
array $importList
|
||||
): array {
|
||||
global $cfg;
|
||||
|
||||
if (Core::isValid($_REQUEST['offset'], 'numeric')) {
|
||||
$offset = intval($_REQUEST['offset']);
|
||||
}
|
||||
if (isset($_REQUEST['timeout_passed'])) {
|
||||
$timeoutPassed = $_REQUEST['timeout_passed'];
|
||||
}
|
||||
|
||||
$localImportFile = '';
|
||||
if (isset($_REQUEST['local_import_file'])) {
|
||||
$localImportFile = $_REQUEST['local_import_file'];
|
||||
}
|
||||
|
||||
// zip, gzip and bzip2 encode features
|
||||
$compressions = [];
|
||||
if ($cfg['GZipDump'] && function_exists('gzopen')) {
|
||||
$compressions[] = 'gzip';
|
||||
}
|
||||
if ($cfg['BZipDump'] && function_exists('bzopen')) {
|
||||
$compressions[] = 'bzip2';
|
||||
}
|
||||
if ($cfg['ZipDump'] && function_exists('zip_open')) {
|
||||
$compressions[] = 'zip';
|
||||
}
|
||||
|
||||
$allCharsets = Charsets::getCharsets($GLOBALS['dbi'], $cfg['Server']['DisableIS']);
|
||||
$charsets = [];
|
||||
/** @var Charset $charset */
|
||||
foreach ($allCharsets as $charset) {
|
||||
$charsets[] = [
|
||||
'name' => $charset->getName(),
|
||||
'description' => $charset->getDescription(),
|
||||
];
|
||||
}
|
||||
|
||||
return [
|
||||
'upload_id' => $uploadId,
|
||||
'handler' => $_SESSION[$sessionKey]['handler'],
|
||||
'id_key' => $_SESSION[$sessionKey]['handler']::getIdKey(),
|
||||
'pma_theme_image' => $GLOBALS['pmaThemeImage'],
|
||||
'import_type' => $importType,
|
||||
'db' => $db,
|
||||
'table' => $table,
|
||||
'max_upload_size' => $maxUploadSize,
|
||||
'import_list' => $importList,
|
||||
'local_import_file' => $localImportFile,
|
||||
'is_upload' => $GLOBALS['is_upload'],
|
||||
'upload_dir' => $cfg['UploadDir'] ?? null,
|
||||
'timeout_passed_global' => $GLOBALS['timeout_passed'] ?? null,
|
||||
'compressions' => $compressions,
|
||||
'is_encoding_supported' => Encoding::isSupported(),
|
||||
'encodings' => Encoding::listEncodings(),
|
||||
'import_charset' => $cfg['Import']['charset'] ?? null,
|
||||
'timeout_passed' => $timeoutPassed ?? null,
|
||||
'offset' => $offset ?? null,
|
||||
'can_convert_kanji' => Encoding::canConvertKanji(),
|
||||
'charsets' => $charsets,
|
||||
'is_foreign_key_check' => Util::isForeignKeyCheck(),
|
||||
'user_upload_dir' => Util::userDir($cfg['UploadDir'] ?? ''),
|
||||
'local_files' => self::getLocalFiles($importList),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $importList List of plugin instances.
|
||||
*
|
||||
* @return false|string
|
||||
*/
|
||||
private static function getLocalFiles(array $importList)
|
||||
{
|
||||
$fileListing = new FileListing();
|
||||
|
||||
$extensions = '';
|
||||
foreach ($importList as $importPlugin) {
|
||||
if (! empty($extensions)) {
|
||||
$extensions .= '|';
|
||||
}
|
||||
$extensions .= $importPlugin->getProperties()->getExtension();
|
||||
}
|
||||
|
||||
$matcher = '@\.(' . $extensions . ')(\.(' . $fileListing->supportedDecompressions() . '))?$@';
|
||||
|
||||
$active = isset($GLOBALS['timeout_passed'], $GLOBALS['local_import_file']) && $GLOBALS['timeout_passed']
|
||||
? $GLOBALS['local_import_file']
|
||||
: '';
|
||||
|
||||
return $fileListing->getFileSelectOptions(
|
||||
Util::userDir($GLOBALS['cfg']['UploadDir'] ?? ''),
|
||||
$matcher,
|
||||
$active
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -16,6 +16,7 @@ use PhpMyAdmin\SqlParser\Utils\Query;
|
||||
use function abs;
|
||||
use function count;
|
||||
use function explode;
|
||||
use function function_exists;
|
||||
use function htmlspecialchars;
|
||||
use function implode;
|
||||
use function is_array;
|
||||
@ -1782,4 +1783,54 @@ class Import
|
||||
|
||||
return $GLOBALS['dbi']->numRows($result) == 1;
|
||||
}
|
||||
|
||||
/** @return string[] */
|
||||
public static function getCompressions(): array
|
||||
{
|
||||
global $cfg;
|
||||
|
||||
$compressions = [];
|
||||
|
||||
if ($cfg['GZipDump'] && function_exists('gzopen')) {
|
||||
$compressions[] = 'gzip';
|
||||
}
|
||||
if ($cfg['BZipDump'] && function_exists('bzopen')) {
|
||||
$compressions[] = 'bzip2';
|
||||
}
|
||||
if ($cfg['ZipDump'] && function_exists('zip_open')) {
|
||||
$compressions[] = 'zip';
|
||||
}
|
||||
|
||||
return $compressions;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $importList List of plugin instances.
|
||||
*
|
||||
* @return false|string
|
||||
*/
|
||||
public static function getLocalFiles(array $importList)
|
||||
{
|
||||
$fileListing = new FileListing();
|
||||
|
||||
$extensions = '';
|
||||
foreach ($importList as $importPlugin) {
|
||||
if (! empty($extensions)) {
|
||||
$extensions .= '|';
|
||||
}
|
||||
$extensions .= $importPlugin->getProperties()->getExtension();
|
||||
}
|
||||
|
||||
$matcher = '@\.(' . $extensions . ')(\.(' . $fileListing->supportedDecompressions() . '))?$@';
|
||||
|
||||
$active = isset($GLOBALS['timeout_passed'], $GLOBALS['local_import_file']) && $GLOBALS['timeout_passed']
|
||||
? $GLOBALS['local_import_file']
|
||||
: '';
|
||||
|
||||
return $fileListing->getFileSelectOptions(
|
||||
Util::userDir($GLOBALS['cfg']['UploadDir'] ?? ''),
|
||||
$matcher,
|
||||
$active
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
3
templates/database/import/index.twig
Normal file
3
templates/database/import/index.twig
Normal file
@ -0,0 +1,3 @@
|
||||
{% extends 'import.twig' %}
|
||||
|
||||
{% block title %}{{ 'Importing into the database "%s"'|trans|format(db) }}{% endblock %}
|
||||
@ -1,3 +1,6 @@
|
||||
{{ page_settings_error_html|raw }}
|
||||
{{ page_settings_html|raw }}
|
||||
|
||||
<iframe id="import_upload_iframe" name="import_upload_iframe" width="1" height="1" class="hide"></iframe>
|
||||
<div id="import_form_status" class="hide"></div>
|
||||
<div id="importmain" class="container-fluid">
|
||||
@ -5,7 +8,7 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
{% include 'display/import/javascript.twig' with {
|
||||
{% include 'import/javascript.twig' with {
|
||||
'upload_id': upload_id,
|
||||
'handler': handler,
|
||||
'pma_theme_image': pma_theme_image
|
||||
@ -23,26 +26,12 @@
|
||||
target="import_upload_iframe"
|
||||
{%- endif %}>
|
||||
|
||||
<input type="hidden" name="{{ id_key }}" value="{{ upload_id }}">
|
||||
{% if import_type == 'server' %}
|
||||
{{ get_hidden_inputs('', '', 1) }}
|
||||
{% elseif import_type == 'database' %}
|
||||
{{ get_hidden_inputs(db, '', 1) }}
|
||||
{% else %}
|
||||
{{ get_hidden_inputs(db, table, 1) }}
|
||||
{% endif %}
|
||||
<input type="hidden" name="import_type" value="{{ import_type }}">
|
||||
{{ get_hidden_inputs(hidden_inputs) }}
|
||||
|
||||
<div class="exportoptions" id="header">
|
||||
<h2>
|
||||
{{ get_image('b_import', 'Import'|trans) }}
|
||||
{% if import_type == 'server' %}
|
||||
{% trans 'Importing into the current server' %}
|
||||
{% elseif import_type == 'database' %}
|
||||
{{ 'Importing into the database "%s"'|trans|format(db) }}
|
||||
{% else %}
|
||||
{{ 'Importing into the table "%s"'|trans|format(table) }}
|
||||
{% endif %}
|
||||
{% block title %}{% endblock %}
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
3
templates/server/import/index.twig
Normal file
3
templates/server/import/index.twig
Normal file
@ -0,0 +1,3 @@
|
||||
{% extends 'import.twig' %}
|
||||
|
||||
{% block title %}{% trans 'Importing into the current server' %}{% endblock %}
|
||||
3
templates/table/import/index.twig
Normal file
3
templates/table/import/index.twig
Normal file
@ -0,0 +1,3 @@
|
||||
{% extends 'import.twig' %}
|
||||
|
||||
{% block title %}{{ 'Importing into the table "%s"'|trans|format(table) }}{% endblock %}
|
||||
Loading…
Reference in New Issue
Block a user