Merge pull request #1765 from devenbansod/1060C

Modified structure for pma__designer_settings table
This commit is contained in:
Isaac Bennetch 2015-06-29 10:49:40 -04:00
commit 56ea56a513
4 changed files with 44 additions and 64 deletions

View File

@ -93,13 +93,41 @@ if (isset($_REQUEST['operation'])) {
&& ! empty($cfgDesigner['table'])
&& $GLOBALS['cfgRelation']['designer_settingswork']
) {
$query = 'INSERT INTO ' . PMA_Util::backquote($cfgDesigner['db'])
. '.' . PMA_Util::backquote($cfgDesigner['table'])
. ' VALUES("' . $cfgDesigner['user'] . '", "'
. $_REQUEST['index'] . '", "' . $_REQUEST['value'] . '") ON DUPLICATE KEY '
. 'UPDATE `stored_value` = "' . $_REQUEST['value'] . '";';
$orig_data_query = 'SELECT ' . PMA_Util::backquote('settings_data')
. ' FROM `' . $cfgDesigner['db'] . '`.`' . $cfgDesigner['table'] . '` WHERE '
. PMA_Util::backquote('username') . ' = "'
. $cfgDesigner['user'] . '"';
$orig_data = $GLOBALS['dbi']->fetchSingleRow($orig_data_query);
$success = false;
if (isset($orig_data)
&& ! empty($orig_data)
&& $orig_data
) {
$orig_data = json_decode($orig_data['settings_data'], true);
$orig_data[$_REQUEST['index']] = $_REQUEST['value'];
$orig_data = json_encode($orig_data);
$save_query = 'UPDATE `' . $cfgDesigner['db'] . '`.`'
. $cfgDesigner['table'] . '` SET '
. PMA_Util::backquote('settings_data') . ' = \''
. $orig_data . '\' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $cfgDesigner['user'] . '";';
$success = $GLOBALS['dbi']->query($save_query);
} else {
$save_data = array($_REQUEST['index'] => $_REQUEST['value']);
$query = 'INSERT INTO ' . PMA_Util::backquote($cfgDesigner['db'])
. '.' . PMA_Util::backquote($cfgDesigner['table'])
. ' VALUES("' . PMA_Util::sqlAddSlashes($cfgDesigner['user']) . '", \''
. PMA_Util::sqlAddSlashes(json_encode($save_data)) . '\');';
$success = $GLOBALS['dbi']->query($query);
}
$success = $GLOBALS['dbi']->query($query);
$response->isSuccess($success);
}
}

View File

@ -185,61 +185,15 @@ function PMA_getSideMenuParamsArray()
$cfgRelation = PMA_getRelationsParam();
if ($GLOBALS['cfgRelation']['designer_settingswork']) {
// angular_direct
$query = 'SELECT `stored_value` FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['designer_settings']) . ' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $GLOBALS['cfg']['Server']['user'] . '" AND ' . PMA_Util::backquote('setting') . ' = "angular_direct"';
$query = 'SELECT `settings_data` FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['designer_settings'])
. ' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $GLOBALS['cfg']['Server']['user'] . '";';
$result = $GLOBALS['dbi']->fetchSingleRow($query);
$params['angular_direct'] = $result['stored_value'];
// snap_to_grid
$query = 'SELECT `stored_value` FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['designer_settings']) . ' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $GLOBALS['cfg']['Server']['user'] . '" AND ' . PMA_Util::backquote('setting') . ' = "snap_to_grid"';
$result = $GLOBALS['dbi']->fetchSingleRow($query);
$params['snap_to_grid'] = $result['stored_value'];
// small_big_all
$query = 'SELECT `stored_value` FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['designer_settings']) . ' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $GLOBALS['cfg']['Server']['user'] . '" AND ' . PMA_Util::backquote('setting') . ' = "small_big_all"';
$result = $GLOBALS['dbi']->fetchSingleRow($query);
$params['small_big_all'] = $result['stored_value'];
// relation_lines
$query = 'SELECT `stored_value` FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['designer_settings']) . ' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $GLOBALS['cfg']['Server']['user'] . '" AND ' . PMA_Util::backquote('setting') . ' = "relation_lines"';
$result = $GLOBALS['dbi']->fetchSingleRow($query);
$params['relation_lines'] = $result['stored_value'];
// full_screen
$query = 'SELECT `stored_value` FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['designer_settings']) . ' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $GLOBALS['cfg']['Server']['user'] . '" AND ' . PMA_Util::backquote('setting') . ' = "full_screen"';
$result = $GLOBALS['dbi']->fetchSingleRow($query);
$params['full_screen'] = $result['stored_value'];
// side_menu
$query = 'SELECT `stored_value` FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['designer_settings']) . ' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $GLOBALS['cfg']['Server']['user'] . '" AND ' . PMA_Util::backquote('setting') . ' = "side_menu"';
$result = $GLOBALS['dbi']->fetchSingleRow($query);
$params['side_menu'] = $result['stored_value'];
// pin_text
$query = 'SELECT `stored_value` FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.'
. PMA_Util::backquote($cfgRelation['designer_settings']) . ' WHERE ' . PMA_Util::backquote('username') . ' = "'
. $GLOBALS['cfg']['Server']['user'] . '" AND ' . PMA_Util::backquote('setting') . ' = "pin_text"';
$result = $GLOBALS['dbi']->fetchSingleRow($query);
$params['pin_text'] = $result['stored_value'];
$params = json_decode($result['settings_data'], true);
}
return $params;

View File

@ -330,9 +330,8 @@ CREATE TABLE IF NOT EXISTS `pma__central_columns` (
CREATE TABLE IF NOT EXISTS `pma__designer_settings` (
`username` varchar(64) NOT NULL,
`setting` varchar(64) NOT NULL,
`stored_value` varchar(64) NOT NULL,
PRIMARY KEY (`username`,`setting`)
`settings_data` text NOT NULL,
PRIMARY KEY (`username`)
)
COMMENT='Settings related to Designer'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

View File

@ -282,9 +282,8 @@ CREATE TABLE IF NOT EXISTS `pma__savedsearches` (
CREATE TABLE IF NOT EXISTS `pma__designer_settings` (
`username` varchar(64) NOT NULL,
`setting` varchar(64) NOT NULL,
`stored_value` varchar(64) NOT NULL,
PRIMARY KEY (`username`,`setting`)
`settings_data` text NOT NULL,
PRIMARY KEY (`username`)
)
COMMENT='Settings related to Designer'
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;