123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * Central Columns view/edit
- *
- * @package PhpMyAdmin
- */
- use PhpMyAdmin\CentralColumns;
- use PhpMyAdmin\Core;
- use PhpMyAdmin\Message;
- use PhpMyAdmin\Response;
- use PhpMyAdmin\Url;
- /**
- * Gets some core libraries
- */
- require_once 'libraries/common.inc.php';
- $centralColumns = new CentralColumns($GLOBALS['dbi']);
- 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 = isset($_POST['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 $centralColumns->updateOneColumn(
- $db, $orig_col_name, $col_name, $col_type, $col_attribute,
- $col_length, $col_isNull, $collation, $col_extra, $col_default
- );
- exit;
- } else {
- $tmp_msg = $centralColumns->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 $centralColumns->getHtmlForColumnDropdown(
- $db,
- $selected_tbl
- );
- exit;
- }
- if (isset($_POST['getColumnList'])) {
- echo $centralColumns->getListRaw(
- $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 = $centralColumns->syncUniqueColumns(
- $selected_col,
- false,
- $selected_tbl
- );
- }
- $response = Response::getInstance();
- $header = $response->getHeader();
- $scripts = $header->getScripts();
- $scripts->addFile('vendor/jquery/jquery.uitablefilter.js');
- $scripts->addFile('vendor/jquery/jquery.tablesorter.js');
- $scripts->addFile('db_central_columns.js');
- $cfgCentralColumns = $centralColumns->getParams();
- $pmadb = $cfgCentralColumns['db'];
- $pmatable = $cfgCentralColumns['table'];
- $max_rows = intval($GLOBALS['cfg']['MaxRows']);
- if (isset($_POST['edit_central_columns_page'])) {
- $selected_fld = $_POST['selected_fld'];
- $selected_db = $_POST['db'];
- $edit_central_column_page = $centralColumns->getHtmlForEditingPage(
- $selected_fld,
- $selected_db
- );
- $response->addHTML($edit_central_column_page);
- exit;
- }
- if (isset($_POST['multi_edit_central_column_save'])) {
- $message = $centralColumns->updateMultipleColumn();
- if (!is_bool($message)) {
- $response->setRequestStatus(false);
- $response->addJSON('message', $message);
- }
- }
- if (isset($_POST['delete_save'])) {
- $col_name = array();
- parse_str($_POST['col_name'], $col_name);
- $tmp_msg = $centralColumns->deleteColumnsFromList(
- $col_name['selected_fld'],
- false
- );
- }
- if (!empty($_POST['total_rows'])
- && Core::isValid($_POST['total_rows'], 'integer')
- ) {
- $total_rows = $_POST['total_rows'];
- } else {
- $total_rows = $centralColumns->getCount($db);
- }
- if (Core::isValid($_POST['pos'], 'integer')) {
- $pos = intval($_POST['pos']);
- } else {
- $pos = 0;
- }
- $addNewColumn = $centralColumns->getHtmlForAddNewColumn($db, $total_rows);
- $response->addHTML($addNewColumn);
- if ($total_rows <= 0) {
- $response->addHTML(
- '<fieldset>' . __(
- 'The central list of columns for the current database is empty.'
- ) . '</fieldset>'
- );
- $columnAdd = $centralColumns->getHtmlForAddColumn($total_rows, $pos, $db);
- $response->addHTML($columnAdd);
- exit;
- }
- $table_navigation_html = $centralColumns->getHtmlForTableNavigation(
- $total_rows,
- $pos,
- $db
- );
- $response->addHTML($table_navigation_html);
- $columnAdd = $centralColumns->getHtmlForAddColumn($total_rows, $pos, $db);
- $response->addHTML($columnAdd);
- $deleteRowForm = '<form method="post" id="del_form" action="db_central_columns.php">'
- . 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">'
- . '<form name="tableslistcontainer">'
- . '<table id="table_columns" class="tablesorter" '
- . 'class="data">';
- $response->addHTML($table_struct);
- $tableheader = $centralColumns->getTableHeader(
- 'column_heading', __('Click to sort.'), 2
- );
- $response->addHTML($tableheader);
- $result = $centralColumns->getColumnsList($db, $pos, $max_rows);
- $row_num = 0;
- foreach ($result as $row) {
- $tableHtmlRow = $centralColumns->getHtmlForTableRow(
- $row,
- $row_num,
- $db
- );
- $response->addHTML($tableHtmlRow);
- $row_num++;
- }
- $response->addHTML('</table>');
- $tablefooter = $centralColumns->getTableFooter($pmaThemeImage, $text_dir);
- $response->addHTML($tablefooter);
- $response->addHTML('</form></div>');
- $message = Message::success(
- sprintf(__('Showing rows %1$s - %2$s.'), ($pos + 1), ($pos + count($result)))
- );
- if (isset($tmp_msg) && $tmp_msg !== true) {
- $message = $tmp_msg;
- }
|