Added support for current server, GUI for choosing DB from current server

This commit is contained in:
Tomas Srnka
2009-08-24 20:57:51 +00:00
parent 31c6e1d5c5
commit c26c9c1fb5
5 changed files with 164 additions and 77 deletions

View File

@@ -1565,4 +1565,8 @@ $strYes = 'Yes';
$strZeroRemovesTheLimit = 'Note: Setting these options to 0 (zero) removes the limit.';
$strZip = '"zipped"';
$strDatabase_src = 'Source Database';
$strDatabase_trg = 'Target Database';
$strRemoteServer = 'Remote Server';
$strCurrentServer = 'Current Server';
?>

View File

@@ -2717,4 +2717,40 @@ function PMA_duplicateFirstNewline($string){
function PMA_getTitleForTarget($target) {
return $GLOBALS[$GLOBALS['cfg']['DefaultTabTranslationMapping'][$target]];
}
/**
* The function creates javascript and html code, which run given mootools/JS code when DOM is ready
*
* @param String $code - Mootools/JS code, which will be run
* @param boolena $print - If true, then the code is printed, otherwise is returned
*
* @return String - the code
*/
function PMA_js_mootools_domready($code, $print=true)
{
$out = '';
$out .= '<script language="JavaScript">'."\n";
$out .= 'window.addEvent(\'domready\',function() {'."\n";
$out .= $code;
$out .= '});'."\n";
$out .= '</script>'."\n";
if ($print)
echo $out;
return $out;
}
function PMA_js($code, $print=true)
{
$out = '';
$out .= '<script language="JavaScript">'."\n";
$out .= $code;
$out .= '</script>'."\n";
if ($print)
echo $out;
return $out;
}
?>

View File

@@ -16,6 +16,7 @@ require_once './libraries/common.inc.php';
* Does the common work
*/
$GLOBALS['js_include'][] = 'functions.js';
$GLOBALS['js_include'][] = 'mootools.js';
require_once './libraries/server_common.inc.php';
/**
@@ -41,13 +42,14 @@ if (isset($_REQUEST['token'])) {
$_SESSION['token'] = $_REQUEST['token'];
}
// variable for code saving
$cons = array ("src", "trg");
/**
* Displays the page when 'Go' is pressed
*/
if ((isset($_REQUEST['submit_connect']))) {
$cons = array ("src", "trg");
foreach ($cons as $con) {
${"{$con}_host"} = $_REQUEST[$con.'_host'];
${"{$con}_username"} = $_REQUEST[$con.'_username'];
@@ -55,8 +57,15 @@ if ((isset($_REQUEST['submit_connect']))) {
${"{$con}_port"} = $_REQUEST[$con.'_port'];
${"{$con}_socket"} = $_REQUEST[$con.'_socket'];
${"{$con}_db"} = $_REQUEST[$con.'_db'];
${"{$con}_type"} = $_REQUEST[$con.'_type'];
${"{$con}_url"} = '';
if (${"{$con}_type"}=='cur') {
${"{$con}_connection"} = null;
${"{$con}_db"} = $_REQUEST[$con.'_db_sel'];
continue;
}
if (isset(${"{$con}_socket"}) && !empty(${"{$con}_socket"})) {
${"{$con}_url"} = ':'.${"{$con}_socket"};
${"{$con}_server"}['socket'] = ${"{$con}_socket"};
@@ -71,9 +80,8 @@ if ((isset($_REQUEST['submit_connect']))) {
${"{$con}_connection"} = @mysql_connect(${"{$con}_url"}, ${"{$con}_username"}, ${"{$con}_password"});
}
unset ($con, $cons);
if (!($src_connection) || !($trg_connection)) {
if ((!$src_connection && $src_type=='rmt') || (!$trg_connection && $trg_type=='rmt')) {
/**
* Displays the connection error string if
* connections are not established
@@ -89,16 +97,18 @@ if ((isset($_REQUEST['submit_connect']))) {
echo '</div>';
unset($_REQUEST['submit_connect']);
} else if (($src_connection) && ($trg_connection)) {
} else {
/**
* Creating the link object for both source and target databases and
* selecting the source and target databases using these links
*/
$src_link = PMA_DBI_connect($src_username, $src_password, $is_controluser = false, $src_server);
$src_connection = PMA_DBI_select_db($src_db, $src_link);
$trg_link = PMA_DBI_connect($trg_username, $trg_password, $is_controluser = false, $trg_server);
$trg_connection = PMA_DBI_select_db($trg_db, $trg_link);
foreach ($cons as $con) {
if (${"{$con}_connection"}!=null)
${"{$con}_link"} = PMA_DBI_connect(${"{$con}_username"}, ${"{$con}_password"}, $is_controluser = false, ${"{$con}_server"});
else
${"{$con}_link"} = null;
${"{$con}_db_selected"} = PMA_DBI_select_db(${"{$con}_db"}, ${"{$con}_link"});
}
if (($src_db_selected != 1) || ($trg_db_selected != 1)) {
/**
@@ -218,6 +228,8 @@ if ((isset($_REQUEST['submit_connect']))) {
$_SESSION['trg_password'] = $trg_password;
$_SESSION['src_server'] = $src_server;
$_SESSION['trg_server'] = $trg_server;
$_SESSION['src_type'] = $src_type;
$_SESSION['trg_type'] = $trg_type;
$_SESSION['matching_tables_keys'] = $matching_tables_keys;
$_SESSION['uncommon_tables_fields'] = $uncommon_tables_fields;
$_SESSION['uncommon_tables_row_count'] = $row_count;
@@ -510,6 +522,8 @@ if (isset($_REQUEST['Table_ids'])) {
$trg_password = $_SESSION['trg_password'];
$src_server = $_SESSION['src_server'];
$trg_server = $_SESSION['trg_server'];
$src_type = $_SESSION['src_type'];
$trg_type = $_SESSION['trg_type'];
$uncommon_tables = $_SESSION['uncommon_tables'];
$matching_tables = $_SESSION['matching_tables'];
$matching_tables_keys = $_SESSION['matching_tables_keys'];
@@ -537,8 +551,12 @@ if (isset($_REQUEST['Table_ids'])) {
/**
* Creating link object for source and target databases
*/
$src_link = PMA_DBI_connect($src_username, $src_password, $is_controluser = false, $src_server);
$trg_link = PMA_DBI_connect($trg_username, $trg_password, $is_controluser = false, $trg_server);
foreach ($cons as $con) {
if (${"{$con}_type"}=="rmt")
${"{$con}_link"} = PMA_DBI_connect(${"{$con}_username"}, ${"{$con}_password"}, $is_controluser = false, ${"{$con}_server"});
else
${"{$con}_link"} = null;
}
/**
* Initializing arrays to save the table ids whose data and structure difference is to be applied
@@ -1197,72 +1215,86 @@ if (isset($_REQUEST['synchronize_db'])) {
>' // TODO: add check if all var. are filled in
. PMA_generate_common_hidden_inputs('', '');
echo '<fieldset>'."\n";
echo '<legend>Synchronization</legend>'."\n";
echo '<legend>'. $GLOBALS['strSynchronize']. '</legend>'."\n";
/**
* Displays the form for source server
* Displays the forms
*/
echo '<table id="serverstatustraffic" class="data" >
<tr>
<th colspan="2">Source Database</th>
</tr>
<tr class="odd">
<td>'. $GLOBALS['strHost']. '</td>
<td><input type="text" name="src_host" /></td>
</tr>
<tr class="even">
<td>'. $GLOBALS['strPort']. '</td>
<td><input type="text" name="src_port" value="3306" maxlength="5" size="5" /></td>
</tr>
<tr class="odd">
<td>'. $GLOBALS['strSocket']. '</td>
<td><input type="text" name="src_socket" /></td>
</tr>
<tr class="even">
<td>'. $GLOBALS['strUserName']. '</td>
<td><input type="text" name="src_username" /></td>
</tr>
<tr class="odd">
<td>'. $GLOBALS['strPassword']. '</td>
<td><input type="password" name="src_pass" /> </td>
</tr>
<tr class="even">
<td>'. $GLOBALS['strDatabase']. '</td>
<td><input type="text" name="src_db" /></td>
</tr>
</table>';
/**
* Displays the form for target server
*/
echo '<table id="serverstatusconnection" class="data">
<tr>
<th colspan="2">Target Database</th>
</tr>
<tr class="odd">
<td>'. $GLOBALS['strHost']. '</td>
<td><input type="text" name="trg_host" /></td>
</tr>
<tr class="even">
<td>'. $GLOBALS['strPort']. '</td>
<td><input type="text" name="trg_port" value="3306" maxlength="5" size="5" /></td>
</tr>
<tr class="odd">
<td>'. $GLOBALS['strSocket']. '</td>
<td><input type="text" name="trg_socket" /></td>
</tr>
<tr class="even">
<td>'. $GLOBALS['strUserName']. '</td>
<td><input type="text" name="trg_username" /></td>
</tr>
<tr class="odd">
<td>'. $GLOBALS['strPassword']. '</td>
<td><input type="password" name="trg_pass" /></td>
</tr>
<tr class="even">
<td>'. $GLOBALS['strDatabase']. '</td>
<td><input type="text" name="trg_db" /></td>
</tr>
</table>
$databases = PMA_DBI_get_databases_full(null, false, null, $sort_by,
'SCHEMA_NAME', 0, true);
foreach ($cons as $type) {
echo '<table id="serverconnection_'.$type.'_remote" class="data">
<tr>
<th colspan="2">'. $GLOBALS['strDatabase_'.$type] .'</th>
</tr>
<tr class="odd">
<td colspan="2" style="text-align: center">
<select name="'.$type.'_type" id="'.$type.'_type">
<option value="rmt">'.$GLOBALS['strRemoteServer'].'</option>
<option value="cur">'.$GLOBALS['strCurrentServer'].'</option>
</select>
</td>
</tr>
<tr class="even" id="'.$type.'tr1">
<td>'. $GLOBALS['strHost']. '</td>
<td><input type="text" name="'.$type.'_host" /></td>
</tr>
<tr class="odd" id="'.$type.'tr2">
<td>'. $GLOBALS['strPort']. '</td>
<td><input type="text" name="'.$type.'_port" value="3306" maxlength="5" size="5" /></td>
</tr>
<tr class="even" id="'.$type.'tr3">
<td>'. $GLOBALS['strSocket']. '</td>
<td><input type="text" name="'.$type.'_socket" /></td>
</tr>
<tr class="odd" id="'.$type.'tr4">
<td>'. $GLOBALS['strUserName']. '</td>
<td><input type="text" name="'.$type.'_username" /></td>
</tr>
<tr class="even" id="'.$type.'tr5">
<td>'. $GLOBALS['strPassword']. '</td>
<td><input type="password" name="'.$type.'_pass" /> </td>
</tr>
<tr class="odd" id="'.$type.'tr6">
<td>'. $GLOBALS['strDatabase']. '</td>
<td><input type="text" name="'.$type.'_db" /></td>
</tr>
<tr class="even" id="'.$type.'tr7" style="display: none;">
<td>'. $GLOBALS['strDatabase']. '</td>
<td>
<select name="'.$type.'_db_sel">
';
foreach ($databases as $db) {
if ($db['SCHEMA_NAME'] != 'mysql'
&& $db['SCHEMA_NAME'] != 'information_schema')
echo ' <option>'.$db['SCHEMA_NAME'].'</option>'."\n";
}
echo '
</select>
</td>
</tr>
</table>';
PMA_js(''.
'$(\''.$type.'_type\').addEvent(\'change\',function() {'."\n".
' if ($(\''.$type.'tr1\').getStyle(\'display\')=="none") {'."\n".
' for (var i=1; i<7; i++)'."\n".
' $(\''.$type.'tr\'+i).tween(\'display\', \'table-row\');'."\n".
' $(\''.$type.'tr7\').tween(\'display\', \'none\');'."\n".
' }'."\n".
' else {'."\n".
' for (var i=1; i<7; i++)'."\n".
' $(\''.$type.'tr\'+i).tween(\'display\', \'none\');'."\n".
' $(\''.$type.'tr7\').tween(\'display\', \'table-row\');'."\n".
' }'."\n".
'});'."\n"
);
}
unset ($types, $type);
echo '
</fieldset>
<fieldset class="tblFooters">
<input type="submit" name="submit_connect" value="' .$GLOBALS['strGo'] .'" id="buttonGo" />

View File

@@ -894,7 +894,8 @@ div#serverstatus table caption a.top {
}
div#serverstatus div#serverstatusqueriesdetails table,
div#serverstatus table#serverstatustraffic,
div#serverstatus table#serverstatustraffic_src,
div#serverstatus table#serverstatustraffic_trg,
div#serverstatus table#serverstatusconnections {
float: <?php echo $left; ?>;
}
@@ -1243,3 +1244,10 @@ div.upload_progress_bar_inner
height: 12px;
margin: 1px;
}
table#serverconnection_src_remote,
table#serverconnection_trg_remote,
table#serverconnection_src_local,
table#serverconnection_trg_local {
float:left;
}

View File

@@ -1195,3 +1195,10 @@ div.upload_progress_bar_inner
height: 12px;
margin: 1px;
}
table#serverconnection_src_remote,
table#serverconnection_trg_remote,
table#serverconnection_src_local,
table#serverconnection_trg_local {
float:left;
}