From aca35a5bd03efa032cf36af71b22ed3f8070c37b Mon Sep 17 00:00:00 2001 From: Spun Nakandala Date: Thu, 1 Aug 2013 22:47:32 +0530 Subject: [PATCH 1/6] added methods PMA_getMoveColumns, PMA_getHeaderCells --- libraries/tbl_columns_definition_form.inc.php | 81 +------------- libraries/tbl_columns_definition_form.lib.php | 104 ++++++++++++++++++ 2 files changed, 110 insertions(+), 75 deletions(-) diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index dcd355a41b..bae893352f 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -50,42 +50,6 @@ $_form_params = PMA_getFormsParameters( $is_backup = ($action != 'tbl_create.php' && $action != 'tbl_addfield.php'); -$header_cells = array(); -$content_cells = array(); - -$header_cells[] = __('Name'); -$header_cells[] = __('Type') - . PMA_Util::showMySQLDocu('SQL-Syntax', 'data-types'); -$header_cells[] = __('Length/Values') - . PMA_Util::showHint( - __( - 'If column type is "enum" or "set", please enter the values using' - . ' this format: \'a\',\'b\',\'c\'…
If you ever need to put' - . ' a backslash ("\") or a single quote ("\'") amongst those values,' - . ' precede it with a backslash (for example \'\\\\xyz\' or \'a\\\'b\').' - ) - ); -$header_cells[] = __('Default') - . PMA_Util::showHint( - __( - 'For default values, please enter just a single value,' - . ' without backslash escaping or quotes, using this format: a' - ) - ); -$header_cells[] = __('Collation'); -$header_cells[] = __('Attributes'); -$header_cells[] = __('Null'); - -// We could remove this 'if' and let the key information be shown and -// editable. However, for this to work, structure.lib.php must be modified -// to use the key fields, as tbl_addfield does. - -if (! $is_backup) { - $header_cells[] = __('Index'); -} - -$header_cells[] = 'A_I'; - require_once './libraries/transformations.lib.php'; $cfgRelation = PMA_getRelationsParam(); @@ -94,54 +58,21 @@ $mime_map = array(); $available_mime = array(); $comments_map = PMA_getComments($db, $table); -$header_cells[] = __('Comments'); if (isset($fields_meta)) { - // for moving, load all available column names - $move_columns_sql_query = 'SELECT * FROM ' - . PMA_Util::backquote($db) - . '.' - . PMA_Util::backquote($table) - . ' LIMIT 1'; - $move_columns_sql_result = $GLOBALS['dbi']->tryQuery($move_columns_sql_query); - $move_columns = $GLOBALS['dbi']->getFieldsMeta($move_columns_sql_result); - unset($move_columns_sql_query, $move_columns_sql_result); - - $header_cells[] = __('Move column'); + $move_columns = PMA_getMoveColumns($db, $table); } if ($cfgRelation['mimework'] && $GLOBALS['cfg']['BrowseMIME']) { $mime_map = PMA_getMIME($db, $table); $available_mime = PMA_getAvailableMIMEtypes(); - - $hint = '
' - . sprintf( - __( - 'For a list of available transformation options and their MIME' - . ' type transformations, click on %stransformation descriptions%s' - ), - '', - '' - ); - - - $header_cells[] = __('MIME type'); - $header_cells[] = __('Browser transformation'); - $header_cells[] = __('Transformation options') - . PMA_Util::showHint( - __( - 'Please enter the values for transformation options using this' - . ' format: \'a\', 100, b,\'c\'…
If you ever need to put' - . ' a backslash ("\") or a single quote ("\'") amongst those' - . ' values, precede it with a backslash (for example \'\\\\xyz\'' - . ' or \'a\\\'b\').' - ) - . $hint - ); } +$header_cells = PMA_getHeaderCells( + $is_backup, isset($fields_meta) ? $fields_meta : null, + $cfgRelation['mimework'], $db, $table +); + // workaround for field_fulltext, because its submitted indices contain // the index as a value, not a key. Inserted here for easier maintaineance // and less code to change in existing files. diff --git a/libraries/tbl_columns_definition_form.lib.php b/libraries/tbl_columns_definition_form.lib.php index 9b5f45ada4..f3c5ff12e4 100644 --- a/libraries/tbl_columns_definition_form.lib.php +++ b/libraries/tbl_columns_definition_form.lib.php @@ -276,4 +276,108 @@ function PMA_getHtmlForTableCreateOrAddField($action, $form_params, $content_cel return $html; } + +/** + * Function to get header cells + * + * @param bool $is_backup whether backup or not + * @param array $fields_meta fields meta data + * @param bool $mimework whether mimework or not + * @param string $db current database + * @param string $table current table + * + * @return string + */ +function PMA_getHeaderCells($is_backup, $fields_meta, $mimework, $db, $table) +{ + $header_cells = array(); + $header_cells[] = __('Name'); + $header_cells[] = __('Type') + . PMA_Util::showMySQLDocu('SQL-Syntax', 'data-types'); + $header_cells[] = __('Length/Values') + . PMA_Util::showHint( + __( + 'If column type is "enum" or "set", please enter the values using' + . ' this format: \'a\',\'b\',\'c\'…
If you ever need to put' + . ' a backslash ("\") or a single quote ("\'") amongst those' + . ' values, precede it with a backslash (for example \'\\\\xyz\'' + . ' or \'a\\\'b\').' + ) + ); + $header_cells[] = __('Default') + . PMA_Util::showHint( + __( + 'For default values, please enter just a single value,' + . ' without backslash escaping or quotes, using this format: a' + ) + ); + $header_cells[] = __('Collation'); + $header_cells[] = __('Attributes'); + $header_cells[] = __('Null'); + + // We could remove this 'if' and let the key information be shown and + // editable. However, for this to work, structure.lib.php must be modified + // to use the key fields, as tbl_addfield does. + if (! $is_backup) { + $header_cells[] = __('Index'); + } + + $header_cells[] = 'A_I'; + $header_cells[] = __('Comments'); + + if (isset($fields_meta)) { + $header_cells[] = __('Move column'); + } + + if ($mimework && $GLOBALS['cfg']['BrowseMIME']) { + $hint = '
' + . sprintf( + __( + 'For a list of available transformation options and their MIME' + . ' type transformations, click on %stransformation descriptions%s' + ), + '', + '' + ); + + $header_cells[] = __('MIME type'); + $header_cells[] = __('Browser transformation'); + $header_cells[] = __('Transformation options') + . PMA_Util::showHint( + __( + 'Please enter the values for transformation options using this' + . ' format: \'a\', 100, b,\'c\'…
If you ever need to put' + . ' a backslash ("\") or a single quote ("\'") amongst those' + . ' values, precede it with a backslash (for example \'\\\\xyz\'' + . ' or \'a\\\'b\').' + ) + . $hint + ); + } + + return $header_cells; +} + +/** + * Function for moving, load all available column names + * + * @param string $db + * @param string $table + * + * @return array + */ +function PMA_getMoveColumns($db, $table) +{ + $move_columns_sql_query = 'SELECT * FROM ' + . PMA_Util::backquote($db) + . '.' + . PMA_Util::backquote($table) + . ' LIMIT 1'; + $move_columns_sql_result = $GLOBALS['dbi']->tryQuery($move_columns_sql_query); + $move_columns = $GLOBALS['dbi']->getFieldsMeta($move_columns_sql_result); + + return $move_columns; +} ?> From 51ec7f2633436942fe3a7ed6ebb04c8c9f358faf Mon Sep 17 00:00:00 2001 From: Spun Nakandala Date: Thu, 1 Aug 2013 23:39:48 +0530 Subject: [PATCH 2/6] added method PMA_getRowDataForRestoration --- libraries/tbl_columns_definition_form.inc.php | 69 +---------------- libraries/tbl_columns_definition_form.lib.php | 76 +++++++++++++++++++ 2 files changed, 80 insertions(+), 65 deletions(-) diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index bae893352f..2f67043f75 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -86,71 +86,10 @@ for ($i = 0; $i < $num_fields; $i++) { if (! empty($regenerate)) { // An error happened with previous inputs, so we will restore the data // to embed it once again in this form. - - $row['Field'] = isset($_REQUEST['field_name'][$i]) - ? $_REQUEST['field_name'][$i] - : false; - $row['Type'] = isset($_REQUEST['field_type'][$i]) - ? $_REQUEST['field_type'][$i] - : false; - $row['Collation'] = isset($_REQUEST['field_collation'][$i]) - ? $_REQUEST['field_collation'][$i] - : ''; - $row['Null'] = isset($_REQUEST['field_null'][$i]) - ? $_REQUEST['field_null'][$i] - : ''; - - if (isset($_REQUEST['field_key'][$i]) - && $_REQUEST['field_key'][$i] == 'primary_' . $i - ) { - $row['Key'] = 'PRI'; - } elseif (isset($_REQUEST['field_key'][$i]) - && $_REQUEST['field_key'][$i] == 'index_' . $i - ) { - $row['Key'] = 'MUL'; - } elseif (isset($_REQUEST['field_key'][$i]) - && $_REQUEST['field_key'][$i] == 'unique_' . $i - ) { - $row['Key'] = 'UNI'; - } elseif (isset($_REQUEST['field_key'][$i]) - && $_REQUEST['field_key'][$i] == 'fulltext_' . $i - ) { - $row['Key'] = 'FULLTEXT'; - } else { - $row['Key'] = ''; - } - - // put None in the drop-down for Default, when someone adds a field - $row['DefaultType'] = isset($_REQUEST['field_default_type'][$i]) - ? $_REQUEST['field_default_type'][$i] - : 'NONE'; - $row['DefaultValue'] = isset($_REQUEST['field_default_value'][$i]) - ? $_REQUEST['field_default_value'][$i] - : ''; - - switch ($row['DefaultType']) { - case 'NONE' : - $row['Default'] = null; - break; - case 'USER_DEFINED' : - $row['Default'] = $row['DefaultValue']; - break; - case 'NULL' : - case 'CURRENT_TIMESTAMP' : - $row['Default'] = $row['DefaultType']; - break; - } - - $row['Extra'] - = (isset($_REQUEST['field_extra'][$i]) - ? $_REQUEST['field_extra'][$i] - : false); - $row['Comment'] - = (isset($submit_fulltext[$i]) - && ($submit_fulltext[$i] == $i) - ? 'FULLTEXT' - : false); - + $row = PMA_getRowDataForRestoration( + isset($submit_fulltext) ? $submit_fulltext : null + ); + $submit_length = (isset($_REQUEST['field_length'][$i]) ? $_REQUEST['field_length'][$i] diff --git a/libraries/tbl_columns_definition_form.lib.php b/libraries/tbl_columns_definition_form.lib.php index f3c5ff12e4..50487cc302 100644 --- a/libraries/tbl_columns_definition_form.lib.php +++ b/libraries/tbl_columns_definition_form.lib.php @@ -380,4 +380,80 @@ function PMA_getMoveColumns($db, $table) return $move_columns; } + +/** + * Function to get row data for restoring previous when error occured. + * + * @param array $submit_fulltext submit full text + * + * @return array + */ +function PMA_getRowDataForRestoration($submit_fulltext) +{ + $row['Field'] = isset($_REQUEST['field_name'][$i]) + ? $_REQUEST['field_name'][$i] + : false; + $row['Type'] = isset($_REQUEST['field_type'][$i]) + ? $_REQUEST['field_type'][$i] + : false; + $row['Collation'] = isset($_REQUEST['field_collation'][$i]) + ? $_REQUEST['field_collation'][$i] + : ''; + $row['Null'] = isset($_REQUEST['field_null'][$i]) + ? $_REQUEST['field_null'][$i] + : ''; + + if (isset($_REQUEST['field_key'][$i]) + && $_REQUEST['field_key'][$i] == 'primary_' . $i + ) { + $row['Key'] = 'PRI'; + } elseif (isset($_REQUEST['field_key'][$i]) + && $_REQUEST['field_key'][$i] == 'index_' . $i + ) { + $row['Key'] = 'MUL'; + } elseif (isset($_REQUEST['field_key'][$i]) + && $_REQUEST['field_key'][$i] == 'unique_' . $i + ) { + $row['Key'] = 'UNI'; + } elseif (isset($_REQUEST['field_key'][$i]) + && $_REQUEST['field_key'][$i] == 'fulltext_' . $i + ) { + $row['Key'] = 'FULLTEXT'; + } else { + $row['Key'] = ''; + } + + // put None in the drop-down for Default, when someone adds a field + $row['DefaultType'] = isset($_REQUEST['field_default_type'][$i]) + ? $_REQUEST['field_default_type'][$i] + : 'NONE'; + $row['DefaultValue'] = isset($_REQUEST['field_default_value'][$i]) + ? $_REQUEST['field_default_value'][$i] + : ''; + + switch ($row['DefaultType']) { + case 'NONE' : + $row['Default'] = null; + break; + case 'USER_DEFINED' : + $row['Default'] = $row['DefaultValue']; + break; + case 'NULL' : + case 'CURRENT_TIMESTAMP' : + $row['Default'] = $row['DefaultType']; + break; + } + + $row['Extra'] + = (isset($_REQUEST['field_extra'][$i]) + ? $_REQUEST['field_extra'][$i] + : false); + $row['Comment'] + = (isset($submit_fulltext[$i]) + && ($submit_fulltext[$i] == $i) + ? 'FULLTEXT' + : false); + + return $row; +} ?> From bc550013e3cfd0684be50eab18194cdfa979f6b2 Mon Sep 17 00:00:00 2001 From: Spun Nakandala Date: Thu, 1 Aug 2013 23:41:19 +0530 Subject: [PATCH 3/6] function renamed --- libraries/tbl_columns_definition_form.inc.php | 2 +- libraries/tbl_columns_definition_form.lib.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index 2f67043f75..47e2d9a437 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -86,7 +86,7 @@ for ($i = 0; $i < $num_fields; $i++) { if (! empty($regenerate)) { // An error happened with previous inputs, so we will restore the data // to embed it once again in this form. - $row = PMA_getRowDataForRestoration( + $row = PMA_getRowDataForRegeneration( isset($submit_fulltext) ? $submit_fulltext : null ); diff --git a/libraries/tbl_columns_definition_form.lib.php b/libraries/tbl_columns_definition_form.lib.php index 50487cc302..a5ec4be782 100644 --- a/libraries/tbl_columns_definition_form.lib.php +++ b/libraries/tbl_columns_definition_form.lib.php @@ -382,13 +382,13 @@ function PMA_getMoveColumns($db, $table) } /** - * Function to get row data for restoring previous when error occured. + * Function to get row data for regenerating previous when error occured. * * @param array $submit_fulltext submit full text * * @return array */ -function PMA_getRowDataForRestoration($submit_fulltext) +function PMA_getRowDataForRegeneration($submit_fulltext) { $row['Field'] = isset($_REQUEST['field_name'][$i]) ? $_REQUEST['field_name'][$i] From b115f447cddb744cda794a0d94e66421db3824f3 Mon Sep 17 00:00:00 2001 From: Spun Nakandala Date: Thu, 1 Aug 2013 23:46:11 +0530 Subject: [PATCH 4/6] added method PMA_getSubmitPropertiesForRegeneration --- libraries/tbl_columns_definition_form.inc.php | 15 ++--------- libraries/tbl_columns_definition_form.lib.php | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index 47e2d9a437..463081ce32 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -90,19 +90,8 @@ for ($i = 0; $i < $num_fields; $i++) { isset($submit_fulltext) ? $submit_fulltext : null ); - $submit_length - = (isset($_REQUEST['field_length'][$i]) - ? $_REQUEST['field_length'][$i] - : false); - $submit_attribute - = (isset($_REQUEST['field_attribute'][$i]) - ? $_REQUEST['field_attribute'][$i] - : false); - - $submit_default_current_timestamp - = (isset($_REQUEST['field_default_current_timestamp'][$i]) - ? true - : false); + list($submit_length, $submit_attribute, $submit_default_current_timestamp) + = PMA_getSubmitPropertiesForRegeneration(); if (isset($_REQUEST['field_comments'][$i])) { $comments_map[$row['Field']] = $_REQUEST['field_comments'][$i]; diff --git a/libraries/tbl_columns_definition_form.lib.php b/libraries/tbl_columns_definition_form.lib.php index a5ec4be782..92d80d2dc7 100644 --- a/libraries/tbl_columns_definition_form.lib.php +++ b/libraries/tbl_columns_definition_form.lib.php @@ -456,4 +456,30 @@ function PMA_getRowDataForRegeneration($submit_fulltext) return $row; } + +/** + * Function to get submit properties for regenerating previous when error occured. + * + * @return array + */ +function PMA_getSubmitPropertiesForRegeneration() +{ + $submit_length + = (isset($_REQUEST['field_length'][$i]) + ? $_REQUEST['field_length'][$i] + : false); + $submit_attribute + = (isset($_REQUEST['field_attribute'][$i]) + ? $_REQUEST['field_attribute'][$i] + : false); + + $submit_default_current_timestamp + = (isset($_REQUEST['field_default_current_timestamp'][$i]) + ? true + : false); + + return array( + $submit_length, $submit_attribute, $submit_default_current_timestamp + ); +} ?> From 0553f0204c3ae75d2f02e35cb9b59b66c63554b8 Mon Sep 17 00:00:00 2001 From: Spun Nakandala Date: Fri, 2 Aug 2013 00:00:53 +0530 Subject: [PATCH 5/6] added method PMA_handleRegeneration --- libraries/tbl_columns_definition_form.inc.php | 32 +++----------- libraries/tbl_columns_definition_form.lib.php | 43 +++++++++++++++++++ 2 files changed, 48 insertions(+), 27 deletions(-) diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index 463081ce32..f0e14df369 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -84,33 +84,11 @@ if (isset($field_fulltext) && is_array($field_fulltext)) { for ($i = 0; $i < $num_fields; $i++) { if (! empty($regenerate)) { - // An error happened with previous inputs, so we will restore the data - // to embed it once again in this form. - $row = PMA_getRowDataForRegeneration( - isset($submit_fulltext) ? $submit_fulltext : null - ); - - list($submit_length, $submit_attribute, $submit_default_current_timestamp) - = PMA_getSubmitPropertiesForRegeneration(); - - if (isset($_REQUEST['field_comments'][$i])) { - $comments_map[$row['Field']] = $_REQUEST['field_comments'][$i]; - } - - if (isset($_REQUEST['field_mimetype'][$i])) { - $mime_map[$row['Field']]['mimetype'] = $_REQUEST['field_mimetype'][$i]; - } - - if (isset($_REQUEST['field_transformation'][$i])) { - $mime_map[$row['Field']]['transformation'] - = $_REQUEST['field_transformation'][$i]; - } - - if (isset($_REQUEST['field_transformation_options'][$i])) { - $mime_map[$row['Field']]['transformation_options'] - = $_REQUEST['field_transformation_options'][$i]; - } - + list($row, $submit_length, $submit_attribute, + $submit_default_current_timestamp, $comments_map, $mime_map) + = PMA_handleRegeneration(isset($available_mime) ? $mime_map : null, + $comments_map, $mime_map + ); } elseif (isset($fields_meta[$i])) { $row = $fields_meta[$i]; switch ($row['Default']) { diff --git a/libraries/tbl_columns_definition_form.lib.php b/libraries/tbl_columns_definition_form.lib.php index 92d80d2dc7..201d06bd54 100644 --- a/libraries/tbl_columns_definition_form.lib.php +++ b/libraries/tbl_columns_definition_form.lib.php @@ -482,4 +482,47 @@ function PMA_getSubmitPropertiesForRegeneration() $submit_length, $submit_attribute, $submit_default_current_timestamp ); } + +/** + * An error happened with previous inputs, so we will restore the data + * to embed it once again in this form. + * + * @param array $submit_fulltext + * @param array $comments_map + * @param array $mime_map + * + * @return array + */ +function PMA_handleRegeneration($submit_fulltext, $comments_map, $mime_map) +{ + $row = PMA_getRowDataForRegeneration( + isset($submit_fulltext) ? $submit_fulltext : null + ); + + list($submit_length, $submit_attribute, $submit_default_current_timestamp) + = PMA_getSubmitPropertiesForRegeneration(); + + if (isset($_REQUEST['field_comments'][$i])) { + $comments_map[$row['Field']] = $_REQUEST['field_comments'][$i]; + } + + if (isset($_REQUEST['field_mimetype'][$i])) { + $mime_map[$row['Field']]['mimetype'] = $_REQUEST['field_mimetype'][$i]; + } + + if (isset($_REQUEST['field_transformation'][$i])) { + $mime_map[$row['Field']]['transformation'] + = $_REQUEST['field_transformation'][$i]; + } + + if (isset($_REQUEST['field_transformation_options'][$i])) { + $mime_map[$row['Field']]['transformation_options'] + = $_REQUEST['field_transformation_options'][$i]; + } + + return array( + $row, $submit_length, $submit_attribute, $submit_default_current_timestamp, + $comments_map, $mime_map + ); +} ?> From 6e39f058d722f9f8aba87e831750ee05e96e7dc9 Mon Sep 17 00:00:00 2001 From: Spun Nakandala Date: Fri, 2 Aug 2013 00:05:18 +0530 Subject: [PATCH 6/6] phpcs errors corrected --- libraries/tbl_columns_definition_form.inc.php | 9 +++++---- libraries/tbl_columns_definition_form.lib.php | 17 +++++++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index f0e14df369..185e7226de 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -60,7 +60,7 @@ $available_mime = array(); $comments_map = PMA_getComments($db, $table); if (isset($fields_meta)) { - $move_columns = PMA_getMoveColumns($db, $table); + $move_columns = PMA_getMoveColumns($db, $table); } if ($cfgRelation['mimework'] && $GLOBALS['cfg']['BrowseMIME']) { @@ -86,9 +86,10 @@ for ($i = 0; $i < $num_fields; $i++) { if (! empty($regenerate)) { list($row, $submit_length, $submit_attribute, $submit_default_current_timestamp, $comments_map, $mime_map) - = PMA_handleRegeneration(isset($available_mime) ? $mime_map : null, - $comments_map, $mime_map - ); + = PMA_handleRegeneration( + isset($available_mime) ? $mime_map : null, + $comments_map, $mime_map + ); } elseif (isset($fields_meta[$i])) { $row = $fields_meta[$i]; switch ($row['Default']) { diff --git a/libraries/tbl_columns_definition_form.lib.php b/libraries/tbl_columns_definition_form.lib.php index 201d06bd54..e0863e6649 100644 --- a/libraries/tbl_columns_definition_form.lib.php +++ b/libraries/tbl_columns_definition_form.lib.php @@ -207,8 +207,8 @@ function PMA_getHtmlForTableNameAndNoOfColumns() /** * Function to get html for table field definitions * - * @param array $header_cells - * @param array $content_cells + * @param array $header_cells header cells + * @param array $content_cells content cells * * @return string */ @@ -334,7 +334,8 @@ function PMA_getHeaderCells($is_backup, $fields_meta, $mimework, $db, $table) . sprintf( __( 'For a list of available transformation options and their MIME' - . ' type transformations, click on %stransformation descriptions%s' + . ' type transformations, click on' + . ' %stransformation descriptions%s' ), '