Translated using Weblate (Slovenian)
[phpmyadmin.git] / tbl_indexes.php
blob1a6c3e78d54fd23c27d794094cbc7d331d3edcdd
1 <?php
2 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 /**
4 * Displays index edit/creation form and handles it
6 * @package PhpMyAdmin
7 */
9 /**
10 * Gets some core libraries
12 require_once 'libraries/common.inc.php';
13 require_once 'libraries/Index.class.php';
14 require_once 'libraries/Template.class.php';
16 if (! isset($_REQUEST['create_edit_table'])) {
17 include_once 'libraries/tbl_common.inc.php';
20 if (isset($_REQUEST['index'])) {
21 if (is_array($_REQUEST['index'])) {
22 // coming already from form
23 $index = new PMA_Index($_REQUEST['index']);
24 } else {
25 $index = $GLOBALS['dbi']->getTable($db, $table)
26 ->getIndex($_REQUEST['index']);
28 } else {
29 $index = new PMA_Index;
32 /**
33 * Process the data from the edit/create index form,
34 * run the query to build the new index
35 * and moves back to "tbl_sql.php"
37 if (isset($_REQUEST['do_save_data'])) {
39 $error = false;
41 $sql_query = $GLOBALS['dbi']->getTable($db, $table)
42 ->getSqlQueryForIndexCreateOrEdit($index, $error);
44 // If there is a request for SQL previewing.
45 if (isset($_REQUEST['preview_sql'])) {
47 PMA_Response::getInstance()->addJSON(
48 'sql_data',
49 PMA\Template::get('preview_sql')
50 ->render(
51 array(
52 'query_data' => $sql_query
56 } elseif (!$error) {
58 $GLOBALS['dbi']->query($sql_query);
59 if ($GLOBALS['is_ajax_request'] == true) {
60 $message = PMA_Message::success(
61 __('Table %1$s has been altered successfully.')
63 $message->addParam($table);
64 $response = PMA_Response::getInstance();
65 $response->addJSON(
66 'message', PMA_Util::getMessage($message, $sql_query, 'success')
68 $response->addJSON('index_table', PMA_Index::getHtmlForIndexes($table, $db));
69 } else {
70 include 'tbl_structure.php';
72 } else {
73 $response = PMA_Response::getInstance();
74 $response->isSuccess(false);
75 $response->addJSON('message', $error);
77 exit;
78 } // end builds the new index
81 /**
82 * Display the form to edit/create an index
84 require_once 'libraries/tbl_info.inc.php';
86 $add_fields = 0;
87 if (isset($_REQUEST['index']) && is_array($_REQUEST['index'])) {
88 // coming already from form
89 if (isset($_REQUEST['index']['columns']['names'])) {
90 $add_fields = count($_REQUEST['index']['columns']['names'])
91 - $index->getColumnCount();
93 if (isset($_REQUEST['add_fields'])) {
94 $add_fields += $_REQUEST['added_fields'];
96 } elseif (isset($_REQUEST['create_index'])) {
97 $add_fields = $_REQUEST['added_fields'];
98 } // end preparing form values
100 // Get fields and stores their name/type
101 if (isset($_REQUEST['create_edit_table'])) {
102 $fields = json_decode($_REQUEST['columns'], true);
103 $index_params = array(
104 'Non_unique' => ($_REQUEST['index']['Index_choice'] == 'UNIQUE') ? '0' : '1'
106 $index->set($index_params);
107 $add_fields = count($fields);
108 } else {
109 $fields = $GLOBALS['dbi']->getTable($db, $table)->getNameAndTypeOfTheColumns();
112 $form_params = array(
113 'db' => $db,
114 'table' => $table,
117 if (isset($_REQUEST['create_index'])) {
118 $form_params['create_index'] = 1;
119 } elseif (isset($_REQUEST['old_index'])) {
120 $form_params['old_index'] = $_REQUEST['old_index'];
121 } elseif (isset($_REQUEST['index'])) {
122 $form_params['old_index'] = $_REQUEST['index'];
125 $response = PMA_Response::getInstance();
126 $response->addHTML(
127 PMA\Template::get('index_form')
128 ->render(
129 array(
130 'fields' => $fields,
131 'index' => $index,
132 'form_params' => $form_params,
133 'add_fields' => $add_fields
137 $header = $response->getHeader();
138 $scripts = $header->getScripts();
139 $scripts->addFile('indexes.js');