Administration: Einen Button zum Testen der Datenbankeinstellung in der Maske zur...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 31 Jan 2008 08:19:48 +0000 (08:19 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 31 Jan 2008 08:19:48 +0000 (08:19 +0000)
bin/mozilla/admin.pl
js/common.js
locale/de/admin
locale/de/all
templates/webpages/admin/edit_user_de.html
templates/webpages/admin/edit_user_master.html
templates/webpages/admin/test_db_connection_de.html [new file with mode: 0644]
templates/webpages/admin/test_db_connection_master.html [new file with mode: 0644]

index bd8a532..4248a9c 100644 (file)
@@ -635,6 +635,22 @@ sub dbselect_source {
   print $form->parse_html_template("admin/dbadmin");
 }
 
+sub test_db_connection {
+  $form->{dbdriver} = 'Pg';
+  User::dbconnect_vars($form, $form->{dbname});
+
+  my $dbh = DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd});
+
+  $form->{connection_ok} = $dbh ? 1 : 0;
+  $form->{errstr}        = $DBI::errstr;
+
+  $dbh->disconnect() if ($dbh);
+
+  $form->{title} = $locale->text('Database Connection Test');
+  $form->header();
+  print $form->parse_html_template("admin/test_db_connection");
+}
+
 sub continue {
   call_sub($form->{"nextsub"});
 }
index a89fa02..953dac7 100644 (file)
@@ -147,3 +147,9 @@ function show_alert_and_focus(input_name, errorMessage) {
   return false;
 }
   
+function get_input_value(input_name) {
+  var the_input = document.getElementsByName(input_name);
+  if (the_input && the_input[0])
+    return the_input[0].value;
+  return '';
+}
index a78f616..ada2b4d 100644 (file)
@@ -47,6 +47,7 @@ $self->{texts} = {
   'DELETED'                     => 'Gelöscht',
   'DUNNING STARTED'             => 'Mahnprozess gestartet',
   'Database Administration'     => 'Datenbankadministration',
+  'Database Connection Test'    => 'Test der Datenbankverbindung',
   'Database User missing!'      => 'Datenbankbenutzer fehlt!',
   'Database backups and restorations are disabled in lx-erp.conf.' => 'Datenbanksicherungen und -wiederherstellungen sind in der lx-erp.conf deaktiviert.',
   'Dataset missing!'            => 'Datenbank fehlt!',
@@ -250,6 +251,7 @@ $self->{subs} = {
   'set_longdescription'         => 'set_longdescription',
   'show_history'                => 'show_history',
   'show_vc_details'             => 'show_vc_details',
+  'test_db_connection'          => 'test_db_connection',
   'unlock_system'               => 'unlock_system',
   'update_dataset'              => 'update_dataset',
   'user_migration_complete'     => 'user_migration_complete',
index a44e670..8e433cb 100644 (file)
@@ -403,6 +403,7 @@ aktualisieren wollen?',
   'DUNS-Nr'                     => 'DUNS-Nr.',
   'Database'                    => 'Datenbank',
   'Database Administration'     => 'Datenbankadministration',
+  'Database Connection Test'    => 'Test der Datenbankverbindung',
   'Database Host'               => 'Datenbankcomputer',
   'Database User missing!'      => 'Datenbankbenutzer fehlt!',
   'Database backups and restorations are disabled in lx-erp.conf.' => 'Datenbanksicherungen und -wiederherstellungen sind in der lx-erp.conf deaktiviert.',
@@ -591,6 +592,7 @@ aktualisieren wollen?',
   'Error in position #1: You must either assign no stock at all or the full quantity of #2 #3.' => 'Fehler in Position #1: Sie m&uuml;ssen einer Position entweder gar keinen Lagereingang oder die vollst&auml;ndige im Lieferschein vermerkte Menge von #2 #3 zuweisen.',
   'Error in position #1: You must either assign no transfer at all or the full quantity of #2 #3.' => 'Fehler in Position #1: Sie m&uuml;ssen einer Position entweder gar keinen Lagerausgang oder die vollst&auml;ndige im Lieferschein vermerkte Menge von #2 #3 zuweisen.',
   'Error in row #1: The quantity you entered is bigger than the stocked quantity.' => 'Fehler in Zeile #1: Die angegebene Menge ist gr&ouml;&szlig;er als die vorhandene Menge.',
+  'Error message from the database driver:' => 'Fehlermeldung des Datenbanktreibers:',
   'Error!'                      => 'Fehler!',
   'Ertrag'                      => 'Ertrag',
   'Ertrag prozentual'           => 'Ertrag prozentual',
@@ -1332,6 +1334,7 @@ aktualisieren wollen?',
   'Template database'           => 'Datenbankvorlage',
   'Templates'                   => 'Vorlagen',
   'Terms missing in row '       => '+Tage fehlen in Zeile ',
+  'Test connection'             => 'Verbindung testen',
   'Text field'                  => 'Textfeld',
   'Text field variables: \'WIDTH=w HEIGHT=h\' sets the width and height of the text field. They default to 30 and 5 respectively.' => 'Textfelder: \'WIDTH=w HEIGHT=h\' setzen die Breite und die H&ouml;he des Textfeldes. Wenn nicht anders angegeben, so werden sie 30 Zeichen breit und f&uuml;nf Zeichen hoch dargestellt.',
   'Text variables: \'MAXLENGTH=n\' sets the maximum entry length to \'n\'.' => 'Textzeilen: \'MAXLENGTH=n\' setzt eine Maximall&auml;nge von n Zeichen.',
@@ -1351,7 +1354,9 @@ aktualisieren wollen?',
   'The config file "config/authentication.pl" was not found.' => 'Die Konfigurationsdatei "config/authentication.pl" wurde nicht gefunden.',
   'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.' => 'Die Verbindung zum LDAP-Server kann nicht verschl&uuml;sselt werden (Fehler bei SSL/TLS-Initialisierung). Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
   'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:',
+  'The connection to the database could not be established.' => 'Die Verbindung zur Datenbank konnte nicht hergestellt werden.',
   'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
+  'The connection was established successfully.' => 'Die Verbindung zur Datenbank wurde erfolgreich hergestellt.',
   'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
   'The custom variable has been deleted.' => 'Die benutzerdefinierte Variable wurde gel&ouml;scht.',
   'The custom variable has been saved.' => 'Die benutzerdefinierte Variable wurde gespeichert.',
index 42fc980..6dd456d 100644 (file)
@@ -1,6 +1,24 @@
 [% USE HTML %]<body class="admin">
 
- <form method="post" action="admin.pl">
+ <script type="text/javascript" src="js/common.js"></script>
+ <script type="text/javascript">
+  <!--
+      function open_connection_test_window() {
+        // host name port user passwd
+        var url = "admin.pl?action=test_db_connection&" +
+          "dbhost="   + escape_more(get_input_value("dbhost"))   + "&" +
+          "dbname="   + escape_more(get_input_value("dbname"))   + "&" +
+          "dbuser="   + escape_more(get_input_value("dbuser"))   + "&" +
+          "dbpasswd=" + escape_more(get_input_value("dbpasswd")) + "&";
+
+        var parm = centerParms(400,300) + ",width=400,height=300,status=yes,scrollbars=yes";
+
+        window.open(url, "_new_generic", parm);
+      }
+    -->
+ </script>
+
+ <form name="Form" method="post" action="admin.pl">
 
   <div class="listtop" width="100%">[% title %]</div>
 
        <th align="right">Passwort</th>
        <td><input name="dbpasswd" type="password" size="10" value="[% HTML.escape(myc_dbpasswd) %]"></td>
       </tr>
+
+      <tr>
+       <td colspan="2"><input type="button" class="submit" onclick="open_connection_test_window();" value="Verbindung testen"></td>
+      </tr>
      </table>
     </td>
    </tr>
index 1456c2d..71fd282 100644 (file)
@@ -1,6 +1,24 @@
 [% USE HTML %]<body class="admin">
 
- <form method="post" action="admin.pl">
+ <script type="text/javascript" src="js/common.js"></script>
+ <script type="text/javascript">
+  <!--
+      function open_connection_test_window() {
+        // host name port user passwd
+        var url = "admin.pl?action=test_db_connection&" +
+          "dbhost="   + escape_more(get_input_value("dbhost"))   + "&" +
+          "dbname="   + escape_more(get_input_value("dbname"))   + "&" +
+          "dbuser="   + escape_more(get_input_value("dbuser"))   + "&" +
+          "dbpasswd=" + escape_more(get_input_value("dbpasswd")) + "&";
+
+        var parm = centerParms(400,300) + ",width=400,height=300,status=yes,scrollbars=yes";
+
+        window.open(url, "_new_generic", parm);
+      }
+    -->
+ </script>
+
+ <form name="Form" method="post" action="admin.pl">
 
   <div class="listtop" width="100%">[% title %]</div>
 
        <th align="right"><translate>Password</translate></th>
        <td><input name="dbpasswd" type="password" size="10" value="[% HTML.escape(myc_dbpasswd) %]"></td>
       </tr>
+
+      <tr>
+       <td colspan="2"><input type="button" class="submit" onclick="open_connection_test_window();" value="<translate>Test connection</translate>"></td>
+      </tr>
      </table>
     </td>
    </tr>
diff --git a/templates/webpages/admin/test_db_connection_de.html b/templates/webpages/admin/test_db_connection_de.html
new file mode 100644 (file)
index 0000000..ced5658
--- /dev/null
@@ -0,0 +1,27 @@
+[% USE HTML %]<body>
+
+ <div class="listtop">[% title %]</div>
+
+ [%- IF connection_ok %]
+
+ <p>Die Verbindung zur Datenbank wurde erfolgreich hergestellt.</p>
+
+ [%- ELSE %]
+
+ <p>
+  Die Verbindung zur Datenbank konnte nicht hergestellt werden.
+  Fehlermeldung des Datenbanktreibers:
+ </p>
+
+ <p>[% HTML.escape(errstr) %]</p>
+
+ [%- END %]
+
+ <p>
+  <form>
+   <input type="button" class="submit" onclick="window.close()" value="Fenster Schlie&szlig;en">
+  </form>
+ </p>
+
+</body>
+</html>
diff --git a/templates/webpages/admin/test_db_connection_master.html b/templates/webpages/admin/test_db_connection_master.html
new file mode 100644 (file)
index 0000000..25dedac
--- /dev/null
@@ -0,0 +1,28 @@
+[% USE HTML %]<body>
+
+ <div class="listtop">[% title %]</div>
+
+ [%- IF connection_ok %]
+
+ <p><translate>The connection was established successfully.</translate></p>
+
+ [%- ELSE %]
+
+ <p>
+  <translate>The connection to the database could not be
+   established.</translate>
+  <translate>Error message from the database driver:</translate>
+ </p>
+
+ <p>[% HTML.escape(errstr) %]</p>
+
+ [%- END %]
+
+ <p>
+  <form>
+   <input type="button" class="submit" onclick="window.close()" value="<translate>Close Window</translate>">
+  </form>
+ </p>
+
+</body>
+</html>