diff --git a/ChangeLog b/ChangeLog
index 83c286067..7c075c299 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -85,6 +85,15 @@ $Id$
- patch #2999595, rfe #2998130 [interface] Cleanup navigation frame.
- patch #3025161 [core] Prevent sending of unnecessary cookies,
thanks to Piotr Przybylski - crackpl
+- bug [password] Generate password only available if JS is enabled
+ (fixed for Privileges and Change password)
+- [core] RecodingEngine now accepts none as valid option.
++ [core] Dropped AllowAnywhereRecoding configuration variable.
+- rfe #3016457 [interface] Define tab order in SQL form to allow easier tab
+ navigation.
+
+3.3.6.0 (not yet released)
+- bug #3031705 [core] Do not use CONCAT for DECIMAL fields.
3.3.5.0 (not yet released)
- patch #2932113 [information_schema] Slow export when having lots of
diff --git a/Documentation.html b/Documentation.html
index 1d5b25e55..4c23ec6d4 100644
--- a/Documentation.html
+++ b/Documentation.html
@@ -1683,27 +1683,6 @@ CREATE DATABASE,ALTER DATABASE,DROP DATABASE
expression. For example if you want only Czech and English, you should
set filter to '^(cs|en)'.
-
$cfg['DefaultCharset'] string
-
Default character set to use for recoding of MySQL queries. This must be
- enabled and it's described by
- $cfg['AllowAnywhereRecoding']
- option.
- You can give here any character set which is in
- $cfg['AvailableCharsets']
- array and this is just default choice, user can select any of them.
-
-
$cfg['AllowAnywhereRecoding'] boolean
-
Allow character set recoding of MySQL queries. You need recode or iconv
- support (compiled in or module) in PHP to allow MySQL queries recoding
- and used language file must have it enabled (by default only these
- which are in Unicode, just to avoid losing some characters).
-
- Setting this to TRUE also activates a pull-down menu
- in the Export and Import pages, to choose the character set when
- exporting a file. The default value in this menu comes from
- $cfg['Export']['charset'] and $cfg['Import']['charset'].
-
-
$cfg['RecodingEngine'] string
You can select here which functions will be used for character set
conversion. Possible values are:
@@ -1711,8 +1690,15 @@ CREATE DATABASE,ALTER DATABASE,DROP DATABASE
iconv, then recode)
iconv - use iconv or libiconv functions
recode - use recode_string function
+
none - disable encoding conversion
Default is auto.
+
+ Enabled charset conversion activates a pull-down menu
+ in the Export and Import pages, to choose the character set when
+ exporting a file. The default value in this menu comes from
+ $cfg['Export']['charset'] and $cfg['Import']['charset'].
+
$cfg['IconvExtraParams'] string
Specify some parameters for iconv used in charset conversion. See
@@ -1867,7 +1853,7 @@ $cfg['TrustedProxies'] =
editing.
$cfg['LimitChars'] integer
-
Maximum number of characters showen in any non-numeric column on browse view.
+
Maximum number of characters shown in any non-numeric field on browse view.
Can be turned off by a toggle button on the browse page.
' . "\n";
}
} // end 1.
diff --git a/db_sql.php b/db_sql.php
index 2ac198bda..27194b08d 100644
--- a/db_sql.php
+++ b/db_sql.php
@@ -2,7 +2,6 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
*
- * @version $Id$
* @package phpMyAdmin
*/
diff --git a/db_structure.php b/db_structure.php
index e99cfa308..9a6ee24ec 100644
--- a/db_structure.php
+++ b/db_structure.php
@@ -2,7 +2,6 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
*
- * @version $Id$
* @package phpMyAdmin
*/
diff --git a/db_tracking.php b/db_tracking.php
index 68faafec3..f18b9b821 100644
--- a/db_tracking.php
+++ b/db_tracking.php
@@ -1,7 +1,6 @@
getDisplay();
// Convert the file's charset if necessary
-if ($cfg['AllowAnywhereRecoding'] && isset($charset_of_file)) {
+if ($GLOBALS['PMA_recoding_engine'] != PMA_CHARSET_NONE && isset($charset_of_file)) {
if ($charset_of_file != $charset) {
$charset_conversion = TRUE;
}
@@ -451,7 +450,7 @@ if (isset($my_die)) {
if (! empty($last_query_with_results)) {
// but we want to show intermediate results too
$disp_query = $sql_query;
- $disp_message = __('Your SQL query has been executed successfully');
+ $disp_message = __('Your SQL query has been executed successfully');
$sql_query = $last_query_with_results;
$go_sql = true;
}
diff --git a/import_status.php b/import_status.php
index 4125eadea..d739009ee 100644
--- a/import_status.php
+++ b/import_status.php
@@ -2,7 +2,6 @@
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
*
- * @version $Id$
* @package phpMyAdmin
*/
diff --git a/index.php b/index.php
index d2d16fa78..3b16ec7d2 100644
--- a/index.php
+++ b/index.php
@@ -3,8 +3,6 @@
/**
* forms frameset
*
- * @version $Id$
- * @uses __('phpMyAdmin is more friendly with a frames-capable browser.')
* @uses $GLOBALS['cfg']['QueryHistoryDB']
* @uses $GLOBALS['cfg']['Server']['user']
* @uses $GLOBALS['cfg']['DefaultTabServer'] as src for the mainframe
@@ -63,7 +61,7 @@ unset($cfgRelation);
/**
* pass variables to child pages
*/
-$drops = array('lang', 'server', 'convcharset', 'collation_connection',
+$drops = array('lang', 'server', 'collation_connection',
'db', 'table');
foreach ($drops as $each_drop) {
diff --git a/js/functions.js b/js/functions.js
index a2292031f..32771760c 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -194,7 +194,7 @@ function confirmQuery(theForm1, sqlQuery1)
* Displays a confirmation box before disabling the BLOB repository for a given database.
* This function is called while clicking links
*
- * @param object the database
+ * @param object the database
*
* @return boolean whether to disable the repository or not
*/
@@ -282,10 +282,10 @@ function checkSqlQuery(theForm)
// Global variable row_class is set to even
var row_class = 'even';
-/**
+/**
* Generates a row dynamically in the differences table displaying
-* the complete statistics of difference in table like number of
-* rows to be updated, number of rows to be inserted, number of
+* the complete statistics of difference in table like number of
+* rows to be updated, number of rows to be inserted, number of
* columns to be added, number of columns to be removed, etc.
*
* @param index index of matching table
@@ -294,17 +294,17 @@ var row_class = 'even';
* @param remove_size number of columns to be removed
* @param insert_index number of indexes to be inserted
* @param remove_index number of indexes to be removed
-* @param img_obj image object
+* @param img_obj image object
* @param table_name name of the table
*/
function showDetails(i, update_size, insert_size, remove_size, insert_index, remove_index, img_obj, table_name)
-{
+{
// The path of the image is split to facilitate comparison
- var relative_path = (img_obj.src).split("themes/");
-
+ var relative_path = (img_obj.src).split("themes/");
+
// The image source is changed when the showDetails function is called.
- if (relative_path[1] == 'original/img/new_data_hovered.jpg') {
+ if (relative_path[1] == 'original/img/new_data_hovered.jpg') {
img_obj.src = "./themes/original/img/new_data_selected_hovered.jpg";
img_obj.alt = PMA_messages['strClickToUnselect']; //only for IE browser
} else if (relative_path[1] == 'original/img/new_struct_hovered.jpg') {
@@ -313,76 +313,76 @@ function showDetails(i, update_size, insert_size, remove_size, insert_index, rem
} else if (relative_path[1] == 'original/img/new_struct_selected_hovered.jpg') {
img_obj.src = "./themes/original/img/new_struct_hovered.jpg";
img_obj.alt = PMA_messages['strClickToSelect'];
- } else if (relative_path[1] == 'original/img/new_data_selected_hovered.jpg') {
+ } else if (relative_path[1] == 'original/img/new_data_selected_hovered.jpg') {
img_obj.src = "./themes/original/img/new_data_hovered.jpg";
img_obj.alt = PMA_messages['strClickToSelect'];
- }
-
- var div = document.getElementById("list");
- var table = div.getElementsByTagName("table")[0];
+ }
+
+ var div = document.getElementById("list");
+ var table = div.getElementsByTagName("table")[0];
var table_body = table.getElementsByTagName("tbody")[0];
-
+
//Global variable row_class is being used
if (row_class == 'even') {
row_class = 'odd';
} else {
- row_class = 'even';
+ row_class = 'even';
}
- // If the red or green button against a table name is pressed then append a new row to show the details of differences of this table.
- if ((relative_path[1] != 'original/img/new_struct_selected_hovered.jpg') && (relative_path[1] != 'original/img/new_data_selected_hovered.jpg')) {
-
- var newRow = document.createElement("tr");
+ // If the red or green button against a table name is pressed then append a new row to show the details of differences of this table.
+ if ((relative_path[1] != 'original/img/new_struct_selected_hovered.jpg') && (relative_path[1] != 'original/img/new_data_selected_hovered.jpg')) {
+
+ var newRow = document.createElement("tr");
newRow.setAttribute("class", row_class);
- newRow.className = row_class;
- // Id assigned to this row element is same as the index of this table name in the matching_tables/source_tables_uncommon array
+ newRow.className = row_class;
+ // Id assigned to this row element is same as the index of this table name in the matching_tables/source_tables_uncommon array
newRow.setAttribute("id" , i);
-
+
var table_name_cell = document.createElement("td");
table_name_cell.align = "center";
table_name_cell.innerHTML = table_name ;
-
+
newRow.appendChild(table_name_cell);
-
+
var create_table = document.createElement("td");
create_table.align = "center";
-
+
var add_cols = document.createElement("td");
add_cols.align = "center";
-
+
var remove_cols = document.createElement("td");
remove_cols.align = "center";
-
+
var alter_cols = document.createElement("td");
alter_cols.align = "center";
-
+
var add_index = document.createElement("td");
add_index.align = "center";
-
+
var delete_index = document.createElement("td");
delete_index.align = "center";
-
+
var update_rows = document.createElement("td");
update_rows.align = "center";
-
+
var insert_rows = document.createElement("td");
insert_rows.align = "center";
-
+
var tick_image = document.createElement("img");
- tick_image.src = "./themes/original/img/s_success.png";
+ tick_image.src = "./themes/original/img/s_success.png";
if (update_size == '' && insert_size == '' && remove_size == '') {
/**
- This is the case when the table needs to be created in target database.
+ This is the case when the table needs to be created in target database.
*/
create_table.appendChild(tick_image);
add_cols.innerHTML = "--";
- remove_cols.innerHTML = "--";
+ remove_cols.innerHTML = "--";
alter_cols.innerHTML = "--";
delete_index.innerHTML = "--";
add_index.innerHTML = "--";
update_rows.innerHTML = "--";
insert_rows.innerHTML = "--";
-
+
newRow.appendChild(create_table);
newRow.appendChild(add_cols);
newRow.appendChild(remove_cols);
@@ -391,43 +391,21 @@ function showDetails(i, update_size, insert_size, remove_size, insert_index, rem
newRow.appendChild(add_index);
newRow.appendChild(update_rows);
newRow.appendChild(insert_rows);
-
+
} else if (update_size == '' && remove_size == '') {
/**
- This is the case when data difference is displayed in the
- table which is present in source but absent from target database
+ This is the case when data difference is displayed in the
+ table which is present in source but absent from target database
*/
create_table.innerHTML = "--";
add_cols.innerHTML = "--";
- remove_cols.innerHTML = "--";
+ remove_cols.innerHTML = "--";
alter_cols.innerHTML = "--";
add_index.innerHTML = "--";
delete_index.innerHTML = "--";
update_rows.innerHTML = "--";
insert_rows.innerHTML = insert_size;
-
- newRow.appendChild(create_table);
- newRow.appendChild(add_cols);
- newRow.appendChild(remove_cols);
- newRow.appendChild(alter_cols);
- newRow.appendChild(delete_index);
- newRow.appendChild(add_index);
- newRow.appendChild(update_rows);
- newRow.appendChild(insert_rows);
-
- } else if (remove_size == '') {
- /**
- This is the case when data difference between matching_tables is displayed.
- */
- create_table.innerHTML = "--";
- add_cols.innerHTML = "--";
- remove_cols.innerHTML = "--";
- alter_cols.innerHTML = "--";
- add_index.innerHTML = "--";
- delete_index.innerHTML = "--";
- update_rows.innerHTML = update_size;
- insert_rows.innerHTML = insert_size;
-
+
newRow.appendChild(create_table);
newRow.appendChild(add_cols);
newRow.appendChild(remove_cols);
@@ -436,41 +414,63 @@ function showDetails(i, update_size, insert_size, remove_size, insert_index, rem
newRow.appendChild(add_index);
newRow.appendChild(update_rows);
newRow.appendChild(insert_rows);
-
+
+ } else if (remove_size == '') {
+ /**
+ This is the case when data difference between matching_tables is displayed.
+ */
+ create_table.innerHTML = "--";
+ add_cols.innerHTML = "--";
+ remove_cols.innerHTML = "--";
+ alter_cols.innerHTML = "--";
+ add_index.innerHTML = "--";
+ delete_index.innerHTML = "--";
+ update_rows.innerHTML = update_size;
+ insert_rows.innerHTML = insert_size;
+
+ newRow.appendChild(create_table);
+ newRow.appendChild(add_cols);
+ newRow.appendChild(remove_cols);
+ newRow.appendChild(alter_cols);
+ newRow.appendChild(delete_index);
+ newRow.appendChild(add_index);
+ newRow.appendChild(update_rows);
+ newRow.appendChild(insert_rows);
+
} else {
/**
This is the case when structure difference between matching_tables id displayed
*/
create_table.innerHTML = "--";
add_cols.innerHTML = insert_size;
- remove_cols.innerHTML = remove_size;
+ remove_cols.innerHTML = remove_size;
alter_cols.innerHTML = update_size;
delete_index.innerHTML = remove_index;
add_index.innerHTML = insert_index;
update_rows.innerHTML = "--";
insert_rows.innerHTML = "--";
-
+
newRow.appendChild(create_table);
newRow.appendChild(add_cols);
newRow.appendChild(remove_cols);
- newRow.appendChild(alter_cols);
+ newRow.appendChild(alter_cols);
newRow.appendChild(delete_index);
newRow.appendChild(add_index);
newRow.appendChild(update_rows);
newRow.appendChild(insert_rows);
}
table_body.appendChild(newRow);
-
+
} else if ((relative_path[1] != 'original/img/new_struct_hovered.jpg') && (relative_path[1] != 'original/img/new_data_hovered.jpg')) {
//The case when the row showing the details need to be removed from the table i.e. the difference button is deselected now.
var table_rows = table_body.getElementsByTagName("tr");
var j;
var index = 0;
- for (j=0; j < table_rows.length; j++)
- {
- if (table_rows[j].id == i) {
+ for (j=0; j < table_rows.length; j++)
+ {
+ if (table_rows[j].id == i) {
index = j;
- table_rows[j].parentNode.removeChild(table_rows[j]);
+ table_rows[j].parentNode.removeChild(table_rows[j]);
}
}
//The table row css is being adjusted. Class "odd" for odd rows and "even" for even rows should be maintained.
@@ -481,11 +481,11 @@ function showDetails(i, update_size, insert_size, remove_size, insert_index, rem
table_rows[index].setAttribute("class","odd"); // for Mozilla firefox
table_rows[index].className = "odd"; // for IE browser
} else {
- table_rows[index].setAttribute("class","even"); // for Mozilla firefox
- table_rows[index].className = "even"; // for IE browser
+ table_rows[index].setAttribute("class","even"); // for Mozilla firefox
+ table_rows[index].className = "even"; // for IE browser
}
- }
- }
+ }
+ }
}
/**
@@ -494,35 +494,35 @@ function showDetails(i, update_size, insert_size, remove_size, insert_index, rem
* @param img_obj the image object whose source needs to be changed
*
*/
-
+
function change_Image(img_obj)
{
- var relative_path = (img_obj.src).split("themes/");
-
- if (relative_path[1] == 'original/img/new_data.jpg') {
- img_obj.src = "./themes/original/img/new_data_hovered.jpg";
+ var relative_path = (img_obj.src).split("themes/");
+
+ if (relative_path[1] == 'original/img/new_data.jpg') {
+ img_obj.src = "./themes/original/img/new_data_hovered.jpg";
} else if (relative_path[1] == 'original/img/new_struct.jpg') {
img_obj.src = "./themes/original/img/new_struct_hovered.jpg";
} else if (relative_path[1] == 'original/img/new_struct_hovered.jpg') {
img_obj.src = "./themes/original/img/new_struct.jpg";
- } else if (relative_path[1] == 'original/img/new_data_hovered.jpg') {
- img_obj.src = "./themes/original/img/new_data.jpg";
- } else if (relative_path[1] == 'original/img/new_data_selected.jpg') {
- img_obj.src = "./themes/original/img/new_data_selected_hovered.jpg";
- } else if(relative_path[1] == 'original/img/new_struct_selected.jpg') {
- img_obj.src = "./themes/original/img/new_struct_selected_hovered.jpg";
- } else if (relative_path[1] == 'original/img/new_struct_selected_hovered.jpg') {
- img_obj.src = "./themes/original/img/new_struct_selected.jpg";
- } else if (relative_path[1] == 'original/img/new_data_selected_hovered.jpg') {
- img_obj.src = "./themes/original/img/new_data_selected.jpg";
+ } else if (relative_path[1] == 'original/img/new_data_hovered.jpg') {
+ img_obj.src = "./themes/original/img/new_data.jpg";
+ } else if (relative_path[1] == 'original/img/new_data_selected.jpg') {
+ img_obj.src = "./themes/original/img/new_data_selected_hovered.jpg";
+ } else if(relative_path[1] == 'original/img/new_struct_selected.jpg') {
+ img_obj.src = "./themes/original/img/new_struct_selected_hovered.jpg";
+ } else if (relative_path[1] == 'original/img/new_struct_selected_hovered.jpg') {
+ img_obj.src = "./themes/original/img/new_struct_selected.jpg";
+ } else if (relative_path[1] == 'original/img/new_data_selected_hovered.jpg') {
+ img_obj.src = "./themes/original/img/new_data_selected.jpg";
}
}
/**
- * Generates the URL containing the list of selected table ids for synchronization and
- * a variable checked for confirmation of deleting previous rows from target tables
+ * Generates the URL containing the list of selected table ids for synchronization and
+ * a variable checked for confirmation of deleting previous rows from target tables
*
- * @param token the token generated for each PMA form
+ * @param token the token generated for each PMA form
*
*/
@@ -536,15 +536,15 @@ function ApplySelectedChanges(token)
var x = table_rows.length;
var i;
/**
- Append the token at the beginning of the query string followed by
- Table_ids that shows that "Apply Selected Changes" button is pressed
+ Append the token at the beginning of the query string followed by
+ Table_ids that shows that "Apply Selected Changes" button is pressed
*/
var append_string = "?token="+token+"&Table_ids="+1;
for(i=0; i $js_message) {
PMA_printJsValue("PMA_messages['" . $name . "']", $js_message);
diff --git a/js/password_generation.js b/js/password_generation.js
new file mode 100644
index 000000000..9153cc9b5
--- /dev/null
+++ b/js/password_generation.js
@@ -0,0 +1,10 @@
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+ * for libraries/display_change_password.lib.php
+ *
+ */
+
+$(document).ready(function() {
+ $('#tr_element_before_generate_password').parent().append('