Closing tags at the end of file are not mandatory. It is often suggested to omit to closing tags at the end of file to prevent unwanted effects as PHP will start output buffering if there is any character after closing tag. Reference: http://php.net/manual/en/language.basic-syntax.phptags.php Signed-off-by: Rahul Kadyan <hi@znck.me>
145 lines
5.0 KiB
PHP
145 lines
5.0 KiB
PHP
<?php
|
|
|
|
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
|
/**
|
|
* Central Columns view/edit
|
|
*
|
|
* @package PhpMyAdmin
|
|
*/
|
|
/**
|
|
* Gets some core libraries
|
|
*/
|
|
require_once 'libraries/common.inc.php';
|
|
require_once 'libraries/tbl_columns_definition_form.lib.php';
|
|
require_once 'libraries/central_columns.lib.php';
|
|
|
|
if (isset($_POST['edit_save']) || isset($_POST['add_new_column'])) {
|
|
$col_name = $_POST['col_name'];
|
|
if (isset($_POST['edit_save'])) {
|
|
$orig_col_name = $_POST['orig_col_name'];
|
|
}
|
|
$col_default = $_POST['col_default'];
|
|
if ($col_default == 'NONE' && $_POST['col_default_sel'] != 'USER_DEFINED') {
|
|
$col_default = "";
|
|
}
|
|
$col_extra = $_POST['col_extra'];
|
|
$col_isNull = isset($_POST['col_isNull'])?1:0;
|
|
$col_length = $_POST['col_length'];
|
|
$col_attribute = $_POST['col_attribute'];
|
|
$col_type = $_POST['col_type'];
|
|
$collation = $_POST['collation'];
|
|
if (isset($orig_col_name) && $orig_col_name) {
|
|
echo PMA_updateOneColumn(
|
|
$db, $orig_col_name, $col_name, $col_type,$col_attribute,
|
|
$col_length, $col_isNull, $collation, $col_extra, $col_default
|
|
);
|
|
exit;
|
|
} else {
|
|
$tmp_msg = PMA_updateOneColumn(
|
|
$db, "", $col_name, $col_type,$col_attribute,
|
|
$col_length, $col_isNull, $collation, $col_extra, $col_default
|
|
);
|
|
}
|
|
}
|
|
if (isset($_POST['populateColumns'])) {
|
|
$selected_tbl = $_POST['selectedTable'];
|
|
echo PMA_getHTMLforColumnDropdown($db, $selected_tbl);
|
|
exit;
|
|
}
|
|
if (isset($_POST['getColumnList'])) {
|
|
echo PMA_getCentralColumnsListRaw($db, $_POST['cur_table']);
|
|
exit;
|
|
}
|
|
if (isset($_POST['add_column'])) {
|
|
$selected_col = array();
|
|
$selected_tbl = $_POST['table-select'];
|
|
$selected_col[] = $_POST['column-select'];
|
|
$tmp_msg = PMA_syncUniqueColumns($selected_col, false, $selected_tbl);
|
|
}
|
|
$response = PMA_Response::getInstance();
|
|
$header = $response->getHeader();
|
|
$scripts = $header->getScripts();
|
|
$scripts->addFile('jquery/jquery.uitablefilter.js');
|
|
$scripts->addFile('jquery/jquery.tablesorter.js');
|
|
$scripts->addFile('db_central_columns.js');
|
|
$cfgCentralColumns = PMA_centralColumnsGetParams();
|
|
$pmadb = $cfgCentralColumns['db'];
|
|
$pmatable = $cfgCentralColumns['table'];
|
|
$max_rows = $GLOBALS['cfg']['MaxRows'];
|
|
if (isset($_POST['delete_save'])) {
|
|
$col_name = array();
|
|
$col_name[] = $_REQUEST['col_name'];
|
|
$tmp_msg = PMA_deleteColumnsFromList($col_name, false);
|
|
}
|
|
if (isset($_REQUEST['total_rows']) && $_REQUEST['total_rows']) {
|
|
$total_rows = $_REQUEST['total_rows'];
|
|
} else {
|
|
$total_rows = PMA_getCentralColumnsCount($db);
|
|
}
|
|
if (isset($_REQUEST['pos'])) {
|
|
$pos = $_REQUEST['pos'];
|
|
} else {
|
|
$pos = 0;
|
|
}
|
|
$addNewColumn = PMA_getHTMLforAddNewColumn($db);
|
|
$response->addHTML($addNewColumn);
|
|
if ($total_rows <= 0) {
|
|
$response->addHTML(
|
|
'<fieldset>' . __(
|
|
'The central list of columns for the current database is empty.'
|
|
) . '</fieldset>'
|
|
);
|
|
$columnAdd = PMA_getHTMLforAddCentralColumn($total_rows, $pos, $db);
|
|
$response->addHTML($columnAdd);
|
|
exit;
|
|
}
|
|
$table_navigation_html = PMA_getHTMLforTableNavigation($total_rows, $pos, $db);
|
|
$response->addHTML($table_navigation_html);
|
|
$columnAdd = PMA_getHTMLforAddCentralColumn($total_rows, $pos, $db);
|
|
$response->addHTML($columnAdd);
|
|
$deleteRowForm = '<form method="post" id="del_form" action="db_central_columns.php">'
|
|
. PMA_URL_getHiddenInputs(
|
|
$db
|
|
)
|
|
. '<input id="del_col_name" type="hidden" name="col_name" value="">'
|
|
. '<input type="hidden" name="pos" value="' . $pos . '">'
|
|
. '<input type="hidden" name="delete_save" value="delete"></form>';
|
|
$response->addHTML($deleteRowForm);
|
|
$table_struct = '<div id="tableslistcontainer">'
|
|
. '<table id="table_columns" class="tablesorter" '
|
|
. 'style="min-width:100%" class="data">';
|
|
$response->addHTML($table_struct);
|
|
$tableheader = PMA_getCentralColumnsTableHeader(
|
|
'column_heading', __('Click to sort.'), 2
|
|
);
|
|
$response->addHTML($tableheader);
|
|
$result = PMA_getColumnsList($db, $pos, $max_rows);
|
|
$odd_row = false;
|
|
$row_num=0;
|
|
foreach ($result as $row) {
|
|
if (is_object(json_decode($row['col_extra']))) {
|
|
//Decode the json data of col_extra to col_extra and col_attribute
|
|
$row['col_extra'] = json_decode($row['col_extra'], true);
|
|
} else {
|
|
//it is not json string [FOR the case to handle previous inserted value]
|
|
//like extra column having only increment value,then to deal with it
|
|
$row['col_extra'] = array(
|
|
"col_extra" => $row['col_extra'],
|
|
"col_attribute" => ""
|
|
);
|
|
}
|
|
$tableHtmlRow = PMA_getHTMLforCentralColumnsTableRow(
|
|
$row, $odd_row, $row_num, $db
|
|
);
|
|
$response->addHTML($tableHtmlRow);
|
|
$odd_row = !$odd_row;
|
|
$row_num++;
|
|
}
|
|
$response->addHTML('</table></div>');
|
|
$message = PMA_Message::success(
|
|
sprintf(__('Showing rows %1$s - %2$s.'), ($pos + 1), ($pos + count($result)))
|
|
);
|
|
if (isset($tmp_msg) && $tmp_msg !== true) {
|
|
$message = $tmp_msg;
|
|
}
|