Db connection editing, misc cleanup
This commit is contained in:
parent
fb462998b4
commit
1ea1896378
@ -146,9 +146,17 @@ class Settings {
|
|||||||
*
|
*
|
||||||
* @param array $params
|
* @param array $params
|
||||||
*/
|
*/
|
||||||
public function edit_db($params)
|
public function edit_db($name, $params)
|
||||||
{
|
{
|
||||||
if(isset($this->current->dbs->{$params['name']}))
|
if (isset($this->current->dbs->{$name}) && ($name === $params['name']))
|
||||||
|
{
|
||||||
|
$this->current->dbs->{$name} = $params;
|
||||||
|
}
|
||||||
|
elseif ($name !== $params['name'])
|
||||||
|
{
|
||||||
|
unset($this->current->dbs->{$name});
|
||||||
|
|
||||||
|
if ( ! isset($this->current->dbs->{$params['name']}))
|
||||||
{
|
{
|
||||||
$this->current->dbs->{$params['name']} = $params;
|
$this->current->dbs->{$params['name']} = $params;
|
||||||
}
|
}
|
||||||
@ -156,9 +164,16 @@ class Settings {
|
|||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
// Save the json
|
// Save the json
|
||||||
$this->__destruct();
|
$this->__destruct();
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
@ -35,6 +35,9 @@ class Edit_DB extends GtkWindow {
|
|||||||
// Add the Vbox, and show the window
|
// Add the Vbox, and show the window
|
||||||
$this->add($connection_form);
|
$this->add($connection_form);
|
||||||
$this->show_all();
|
$this->show_all();
|
||||||
|
|
||||||
|
// Hide fields
|
||||||
|
$connection_form->set_db();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// End of edit_db.php
|
// End of edit_db.php
|
@ -17,7 +17,38 @@
|
|||||||
*/
|
*/
|
||||||
class DB_Info_Widget extends GtkTable {
|
class DB_Info_Widget extends GtkTable {
|
||||||
|
|
||||||
protected $conn, $dbtype, $host, $user, $pass, $database, $settings, $db_file, $port;
|
/**
|
||||||
|
* Alias to Settings::get_instance
|
||||||
|
* @var Settings
|
||||||
|
*/
|
||||||
|
private $settings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fields
|
||||||
|
*/
|
||||||
|
protected $conn,
|
||||||
|
$conn_db,
|
||||||
|
$dbtype,
|
||||||
|
$host,
|
||||||
|
$user,
|
||||||
|
$pass,
|
||||||
|
$database,
|
||||||
|
$db_file,
|
||||||
|
$port,
|
||||||
|
$old_conn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Labels
|
||||||
|
*/
|
||||||
|
protected $lblconn,
|
||||||
|
$lblconn_db,
|
||||||
|
$lbldbtype,
|
||||||
|
$lblhost,
|
||||||
|
$lbluser,
|
||||||
|
$lblpass,
|
||||||
|
$lbldatabase,
|
||||||
|
$lbldb_file,
|
||||||
|
$lblport;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* No params = add, params = edit
|
* No params = add, params = edit
|
||||||
@ -76,7 +107,12 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
// Select the proper db type if editing
|
// Select the proper db type if editing
|
||||||
if ( ! empty($db->type))
|
if ( ! empty($db->type))
|
||||||
{
|
{
|
||||||
|
// Set the old conn variable for editing
|
||||||
|
$this->old_conn = $db->name;
|
||||||
|
|
||||||
$dbtype = strtolower($db->type);
|
$dbtype = strtolower($db->type);
|
||||||
|
|
||||||
|
// Set the db type based on the current connection
|
||||||
$this->dbtype->set_active(array_search($dbtype, $lower_db_types));
|
$this->dbtype->set_active(array_search($dbtype, $lower_db_types));
|
||||||
|
|
||||||
// Set default path
|
// Set default path
|
||||||
@ -84,10 +120,10 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
{
|
{
|
||||||
$this->db_file->set_filename($db->file);
|
$this->db_file->set_filename($db->file);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->set_db($dbtype);
|
// --------------------------------------------------------------------------
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Table layout
|
* Table layout
|
||||||
@ -185,6 +221,8 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set defaults for new database type
|
* Set defaults for new database type
|
||||||
*
|
*
|
||||||
@ -252,11 +290,16 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Like change_db function, but save current values
|
* Like change_db function, but save current values
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
public function set_db($dbtype)
|
public function set_db()
|
||||||
{
|
{
|
||||||
|
$dbtype = strtolower($this->dbtype->get_active_text());
|
||||||
|
|
||||||
// Reset
|
// Reset
|
||||||
$this->db_file->hide();
|
$this->db_file->hide();
|
||||||
@ -292,6 +335,8 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the database to the settings file
|
* Adds the database to the settings file
|
||||||
*/
|
*/
|
||||||
@ -319,6 +364,8 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
$parent_window->destroy();
|
$parent_window->destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Edit an existing database connection
|
* Edit an existing database connection
|
||||||
*/
|
*/
|
||||||
@ -335,7 +382,7 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
'name' => $this->conn->get_text(),
|
'name' => $this->conn->get_text(),
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($this->settings->edit_db($data))
|
if ($this->settings->edit_db($this->old_conn, $data))
|
||||||
{
|
{
|
||||||
// Let the user know the connection has been updated
|
// Let the user know the connection has been updated
|
||||||
alert("Changes to database connection have been saved");
|
alert("Changes to database connection have been saved");
|
||||||
@ -354,6 +401,8 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
$parent_window->destroy();
|
$parent_window->destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test a db connection, and display a popup with the result of the test
|
* Test a db connection, and display a popup with the result of the test
|
||||||
*/
|
*/
|
||||||
@ -396,6 +445,8 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
alert("Successfully Connected.");
|
alert("Successfully Connected.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks what database drivers are available
|
* Checks what database drivers are available
|
||||||
*
|
*
|
||||||
@ -448,6 +499,8 @@ class DB_Info_Widget extends GtkTable {
|
|||||||
return $drivers;
|
return $drivers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Simple helper function for adding a row to the GtkTable
|
* Simple helper function for adding a row to the GtkTable
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user