diff options
author | Jason <jason.daurus@gmail.com> | 2015-06-08 16:54:27 +0300 |
---|---|---|
committer | Jason <jason.daurus@gmail.com> | 2015-06-08 16:54:27 +0300 |
commit | 4ecdba91002b688d60fa0bc0aa69b1645acde5cd (patch) | |
tree | 692c90acf34dfbacacea9f3321d5d52fdd7f8dfd /tbl_indexes.php | |
parent | 3169c5f48d94029e5ef9e46d1806cace54296700 (diff) |
Refactoring tbl_indexes.lib.php & tbl_chart.lib.php
Signed-off-by: Jason <jason.daurus@gmail.com>
Diffstat (limited to 'tbl_indexes.php')
-rw-r--r-- | tbl_indexes.php | 95 |
1 files changed, 86 insertions, 9 deletions
diff --git a/tbl_indexes.php b/tbl_indexes.php index 12e1ee7bc8..fec42e645c 100644 --- a/tbl_indexes.php +++ b/tbl_indexes.php @@ -11,21 +11,68 @@ */ require_once 'libraries/common.inc.php'; require_once 'libraries/Index.class.php'; -require_once 'libraries/tbl_indexes.lib.php'; +require_once 'libraries/Template.class.php'; if (! isset($_REQUEST['create_edit_table'])) { include_once 'libraries/tbl_common.inc.php'; } +if (isset($_REQUEST['index'])) { + if (is_array($_REQUEST['index'])) { + // coming already from form + $index = new PMA_Index($_REQUEST['index']); + } else { + $index = $GLOBALS['dbi']->getTable($db, $table) + ->getIndex($_REQUEST['index']); + } +} else { + $index = new PMA_Index; +} -$index = PMA_prepareFormValues($db, $table); /** * Process the data from the edit/create index form, * run the query to build the new index * and moves back to "tbl_sql.php" */ if (isset($_REQUEST['do_save_data'])) { - PMA_handleCreateOrEditIndex($db, $table, $index); + + $error = false; + + $sql_query = $GLOBALS['dbi']->getTable($db, $table) + ->getSqlQueryForIndexCreateOrEdit($index, $error); + + // If there is a request for SQL previewing. + if (isset($_REQUEST['preview_sql'])) { + + PMA_Response::getInstance()->addJSON( + 'sql_data', + PMA\Template::get('preview_sql.phtml') + ->render(array( + 'query_data' => $sql_query + )) + ); + } elseif (!$error) { + + $GLOBALS['dbi']->query($sql_query); + if ($GLOBALS['is_ajax_request'] == true) { + $message = PMA_Message::success( + __('Table %1$s has been altered successfully.') + ); + $message->addParam($table); + $response = PMA_Response::getInstance(); + $response->addJSON( + 'message', PMA_Util::getMessage($message, $sql_query, 'success') + ); + $response->addJSON('index_table', PMA_Index::getHtmlForIndexes($table, $db)); + } else { + include 'tbl_structure.php'; + } + } else { + $response = PMA_Response::getInstance(); + $response->isSuccess(false); + $response->addJSON('message', $error); + } + exit; } // end builds the new index @@ -34,9 +81,19 @@ if (isset($_REQUEST['do_save_data'])) { */ require_once 'libraries/tbl_info.inc.php'; -$add_fields = PMA_getNumberOfFieldsForForm($index); - -$form_params = PMA_getFormParameters($db, $table); +$add_fields = 0; +if (isset($_REQUEST['index']) && is_array($_REQUEST['index'])) { + // coming already from form + if (isset($_REQUEST['index']['columns']['names'])) { + $add_fields = count($_REQUEST['index']['columns']['names']) + - $index->getColumnCount(); + } + if (isset($_REQUEST['add_fields'])) { + $add_fields += $_REQUEST['added_fields']; + } +} elseif (isset($_REQUEST['create_index'])) { + $add_fields = $_REQUEST['added_fields']; +} // end preparing form values // Get fields and stores their name/type if (isset($_REQUEST['create_edit_table'])) { @@ -47,13 +104,33 @@ if (isset($_REQUEST['create_edit_table'])) { $index->set($index_params); $add_fields = count($fields); } else { - $fields = PMA_getNameAndTypeOfTheColumns($db, $table); + $fields = $GLOBALS['dbi']->getTable($db, $table)->getNameAndTypeOfTheColumns(); } -$html = PMA_getHtmlForIndexForm($fields, $index, $form_params, $add_fields); +$form_params = array( + 'db' => $db, + 'table' => $table, +); + +if (isset($_REQUEST['create_index'])) { + $form_params['create_index'] = 1; +} elseif (isset($_REQUEST['old_index'])) { + $form_params['old_index'] = $_REQUEST['old_index']; +} elseif (isset($_REQUEST['index'])) { + $form_params['old_index'] = $_REQUEST['index']; +} $response = PMA_Response::getInstance(); -$response->addHTML($html); +$response->addHTML(PMA\Template::get('index_form') + ->render( + array( + 'fields' => $fields, + 'index' => $index, + 'form_params' => $form_params, + 'add_fields' => $add_fields + ) + ) +); $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('indexes.js'); |