dbi = $dbi; $this->indexes = $indexes; } public function __invoke(ServerRequest $request): void { $GLOBALS['urlParams'] = $GLOBALS['urlParams'] ?? null; $GLOBALS['errorUrl'] = $GLOBALS['errorUrl'] ?? null; if (! isset($_POST['create_edit_table'])) { $this->checkParameters(['db', 'table']); $GLOBALS['urlParams'] = ['db' => $GLOBALS['db'], 'table' => $GLOBALS['table']]; $GLOBALS['errorUrl'] = Util::getScriptNameForOption($GLOBALS['cfg']['DefaultTabTable'], 'table'); $GLOBALS['errorUrl'] .= Url::getCommon($GLOBALS['urlParams'], '&'); DbTableExists::check($GLOBALS['db'], $GLOBALS['table']); } if (isset($_POST['index'])) { if (is_array($_POST['index'])) { // coming already from form $index = new Index($_POST['index']); } else { $index = $this->dbi->getTable($GLOBALS['db'], $GLOBALS['table'])->getIndex($_POST['index']); } } else { $index = new Index(); } if (isset($_POST['do_save_data'])) { $this->indexes->doSaveData($index, true, $GLOBALS['db'], $GLOBALS['table']); return; } $this->displayRenameForm($index); } /** * Display the rename form to rename an index * * @param Index $index An Index instance. */ private function displayRenameForm(Index $index): void { $this->dbi->selectDb($GLOBALS['db']); $formParams = [ 'db' => $GLOBALS['db'], 'table' => $GLOBALS['table'], ]; if (isset($_POST['old_index'])) { $formParams['old_index'] = $_POST['old_index']; } elseif (isset($_POST['index'])) { $formParams['old_index'] = $_POST['index']; } $this->addScriptFiles(['indexes.js']); $this->render('table/index_rename_form', [ 'index' => $index, 'form_params' => $formParams, ]); } }