Kleine HTML-Syntax-Korrektur
[kivitendo-erp.git] / bin / mozilla / admin.pl
index 2eb5387..4e33ef2 100644 (file)
 
 $menufile = "menu.ini";
 
+use DBI;
+use CGI;
+
 use SL::Form;
 use SL::User;
+use SL::Common;
+
+require "bin/mozilla/common.pl";
+
+our $cgi = new CGI('');
 
 $form = new Form;
 $form->{"root"} = "root login";
 
 $locale = new Locale $language, "admin";
 
-eval { require DBI; };
-$form->error($locale->text('DBI not installed!')) if ($@);
-
 # customization
-if (-f "$form->{path}/custom_$form->{script}") {
-  eval { require "$form->{path}/custom_$form->{script}"; };
+if (-f "bin/mozilla/custom_$form->{script}") {
+  eval { require "bin/mozilla/custom_$form->{script}"; };
   $form->error($@) if ($@);
 }
 
@@ -67,7 +72,7 @@ if ($form->{action}) {
 
   &check_password;
 
-  &$subroutine;
+  call_sub($subroutine);
 
 } else {
 
@@ -125,7 +130,6 @@ sub adminlogin {
     . $locale->text('Login') . qq|"></td>
   </tr>
 <input type=hidden name=action value=login>
-<input type=hidden name=path value=$form->{path}>
 </table>
 
 
@@ -197,8 +201,7 @@ sub form_footer {
 
   print qq|
 
-<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&rpw=$form->{rpw}">
-<input type=hidden name=path value=$form->{path}>
+<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
 <input type=hidden name=rpw value=$form->{rpw}>
 
 <input type=submit class=submit name=action value="|
@@ -293,7 +296,7 @@ sub list_users {
 
   foreach $key (sort keys %member) {
     $href =
-      "$script?action=edit&login=$key&path=$form->{path}&rpw=$form->{rpw}";
+      "$script?action=edit&login=$key&rpw=$form->{rpw}";
     $href =~ s/ /%20/g;
 
     $member{$key}{templates} =~ s/^$templates\///;
@@ -330,7 +333,6 @@ sub list_users {
   </tr>
 </table>
 
-<input type=hidden name=path value=$form->{path}>
 <input type=hidden name=rpw value=$form->{rpw}>
 
 <br><input type=submit class=submit name=action value="|
@@ -373,7 +375,6 @@ $nologin
          <td><input type=submit name=action value="|
     . $locale->text('Login') . qq|"></td>
        </tr>
-<input type=hidden name=path value=$form->{path}>
       </table>
     </td>
   </tr>
@@ -473,9 +474,13 @@ sub form_header {
     }
   }
 
-  opendir CSS, "css/.";
-  @all = sort(grep({ /\.css$/ && ($_ ne "tabcontent.css") } readdir(CSS)));
-  closedir CSS;
+#  opendir CSS, "css/.";
+#  @all = grep /.*\.css$/, readdir CSS;
+#  closedir CSS;
+
+# css dir has styles that are not intended as general layouts.
+# reverting to hardcoded list
+  @all = qw(lx-office-erp.css Win2000.css);
 
   foreach $item (@all) {
     if ($item eq $myconfig->{stylesheet}) {
@@ -508,16 +513,16 @@ sub form_header {
       <table>
        <tr>
          <th align=right>| . $locale->text('Login') . qq|</th>
-         <td><input name=login value="$myconfig->{login}"></td>
+         <td><input name="login" value="$myconfig->{login}"></td>
        </tr>
        <tr>
          <th align=right>| . $locale->text('Password') . qq|</th>
-         <td><input type=password name=password size=8 value=$myconfig->{password}></td>
-         <input type=hidden name=old_password value=$myconfig->{password}>
+         <td><input type="password" name="password" size="8" value="$myconfig->{password}"></td>
+         <input type="hidden" name="old_password" value="$myconfig->{password}">
        </tr>
        <tr>
          <th align=right>| . $locale->text('Name') . qq|</th>
-         <td><input name=name size=15 value="$myconfig->{name}"></td>
+         <td><input name="name" size="15" value="$myconfig->{name}"></td>
        </tr>
        <tr>
          <th align=right>| . $locale->text('E-mail') . qq|</th>
@@ -575,10 +580,6 @@ sub form_header {
          <th align=right>| . $locale->text('Language') . qq|</th>
          <td><select name=countrycode>$countrycodes</select></td>
        </tr>
-       <tr>
-         <th align=right>| . $locale->text('Character Set') . qq|</th>
-         <td><input name=charset value="$myconfig->{charset}"></td>
-       </tr>
        <tr>
          <th align=right>| . $locale->text('Stylesheet') . qq|</th>
          <td><select name=userstylesheet>$selectstylesheet</select></td>
@@ -635,24 +636,25 @@ sub form_header {
 
     print qq|
          <th align=right>| . $locale->text('Driver') . qq|</th>
-         <td><input name=dbdriver type=radio class=radio value=$item $checked>&nbsp;$item</td>
+         <td><input name="dbdriver" type="radio" class="radio" value="$item" $checked>&nbsp;$item</td>
          <th align=right>| . $locale->text('Host') . qq|</th>
-         <td><input name="${item}_dbhost" size=30 value=$form->{"${item}_dbhost"}></td>
+         <td><input name="${item}_dbhost" size=30 value="$form->{"${item}_dbhost"}"></td>
        </tr>
        <tr>|;
 
     if ($item eq 'Pg') {
+    
       print qq|
          <th align=right>| . $locale->text('Dataset') . qq|</th>
-         <td><input name=Pg_dbname size=15 value=$form->{Pg_dbname}></td>
+         <td><input name="Pg_dbname" size="15" value="$form->{Pg_dbname}"></td>
          <th align=right>| . $locale->text('Port') . qq|</th>
-         <td><input name=Pg_dbport size=4 value=$form->{Pg_dbport}></td>
+         <td><input name="Pg_dbport" size="4" value="$form->{Pg_dbport}"></td>
        </tr>
        <tr>
          <th align=right>| . $locale->text('User') . qq|</th>
-         <td><input name="${item}_dbuser" size=15 value=$form->{"${item}_dbuser"}></td>
+         <td><input name="${item}_dbuser" size=15 value="$form->{"${item}_dbuser"}"></td>
          <th align=right>| . $locale->text('Password') . qq|</th>
-         <td><input name="${item}_dbpasswd" type=password size=10 value=$form->{"${item}_dbpasswd"}></td>
+         <td><input name="${item}_dbpasswd" type=password size=10 value="$form->{"${item}_dbpasswd"}"></td>
        </tr>|;
 
     }
@@ -668,13 +670,13 @@ sub form_header {
          <th align=right>| . $locale->text('Dataset') . qq|</th>
          <td><input name="${item}_dbuser" size=15 value=$form->{"${item}_dbuser"}></td>
          <th align=right>| . $locale->text('Password') . qq|</th>
-         <td><input name="${item}_dbpasswd" type=password size=10 value=$form->{"${item}_dbpasswd"}></td>
+         <td><input name="${item}_dbpasswd" type=password size=10 value="$form->{"${item}_dbpasswd"}"></td>
 
        </tr>|;
     }
 
     print qq|
-       <input type=hidden name=old_dbpasswd value=$myconfig->{dbpasswd}>
+       <input type="hidden" name="old_dbpasswd" value="$myconfig->{dbpasswd}">
       </table>
     </td>
   </tr>
@@ -692,11 +694,6 @@ sub form_header {
   @a = <FH>;
   close(FH);
 
-  if (open(FH, "custom_$menufile")) {
-    push @a, <FH>;
-  }
-  close(FH);
-
   foreach $item (@a) {
     next unless $item =~ /\[/;
     next if $item =~ /\#/;
@@ -969,6 +966,9 @@ sub save {
     }
   }
 
+  $form->{templates}       =~ s|.*/||;
+  $form->{mastertemplates} =~ s|.*/||;
+
   # create user template directory and copy master files
   if (!-d "$form->{templates}") {
     umask(002);
@@ -1142,7 +1142,6 @@ sub change_admin_password {
   </tr>
 </table>
 
-<input type=hidden name=path value=$form->{path}>
 <input type=hidden name=rpw value=$form->{rpw}>
 
 <p>
@@ -1183,7 +1182,7 @@ sub change_password {
   $root->save_member($memberfile);
 
   $form->{callback} =
-    "$form->{script}?action=list_users&path=$form->{path}&rpw=$root->{password}";
+    "$form->{script}?action=list_users&rpw=$root->{password}";
 
   $form->redirect($locale->text('Password changed!'));
 
@@ -1286,9 +1285,9 @@ sub dbselect_source {
   <tr>
 
     <th align=right>| . $locale->text('User') . qq|</th>
-    <td><input name=dbuser size=10 value=$form->{dbuser}></td>
+    <td><input name="dbuser" size="10" value="$form->{dbuser}"></td>
     <th align=right>| . $locale->text('Password') . qq|</th>
-    <td><input type=password name=dbpasswd size=10></td>
+    <td><input type="password" name="dbpasswd" size="10"></td>
 
   </tr>
 
@@ -1304,8 +1303,7 @@ sub dbselect_source {
 </td></tr>
 </table>
 
-<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&rpw=$form->{rpw}">
-<input type=hidden name=path value=$form->{path}>
+<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
 <input type=hidden name=rpw value=$form->{rpw}>
 
 <br>
@@ -1339,9 +1337,7 @@ print qq| <input type=submit class=submit name=action value="|
 }
 
 sub continue {
-
-  &{ $form->{nextsub} };
-
+  call_sub($form->{"nextsub"});
 }
 
 sub update_dataset {
@@ -1379,12 +1375,12 @@ sub update_dataset {
 <table width=100%>
 <form method=post action=$form->{script}>
 
-<input type=hidden name=dbdriver value=$form->{dbdriver}>
-<input type=hidden name=dbhost value=$form->{dbhost}>
-<input type=hidden name=dbport value=$form->{dbport}>
-<input type=hidden name=dbuser value=$form->{dbuser}>
-<input type=hidden name=dbpasswd value=$form->{dbpasswd}>
-<input type=hidden name=dbdefault value=$form->{dbdefault}>
+<input type=hidden name="dbdriver"  value="$form->{dbdriver}">
+<input type=hidden name="dbhost"    value="$form->{dbhost}">
+<input type=hidden name="dbport"    value="$form->{dbport}">
+<input type=hidden name="dbuser"    value="$form->{dbuser}">
+<input type=hidden name="dbpasswd"  value="$form->{dbpasswd}">
+<input type=hidden name="dbdefault" value="$form->{dbdefault}">
 
 <tr class=listheading>
   <th>| . $locale->text('The following Datasets need to be updated') . qq|</th>
@@ -1401,9 +1397,8 @@ $upd
 
 <input name=dbupdate type=hidden value="$form->{dbupdate}">
 
-<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&rpw=$form->{rpw}">
+<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
 
-<input type=hidden name=path value=$form->{path}>
 <input type=hidden name=rpw value=$form->{rpw}>
 
 <input type=hidden name=nextsub value=dbupdate>
@@ -1455,7 +1450,7 @@ sub dbupdate {
 <br>
 
 <a id="enddatasetupdate" href="admin.pl?action=login&| .
-join("&", map({ "$_=" . $form->escape($form->{$_}); } qw(path rpw))) .
+join("&", map({ "$_=" . $form->escape($form->{$_}); } qw(rpw))) .
 qq|">| . $locale->text("Continue") . qq|</a>|;
 
 }
@@ -1467,7 +1462,7 @@ sub create_dataset {
   }
 
   opendir SQLDIR, "sql/." or $form - error($!);
-  foreach $item (sort grep /-chart\.sql/, readdir SQLDIR) {
+  foreach $item (sort grep /-chart\.sql\z/, readdir SQLDIR) {
     next if ($item eq 'Default-chart.sql');
     $item =~ s/-chart\.sql//;
     push @charts,
@@ -1475,23 +1470,24 @@ sub create_dataset {
   }
   closedir SQLDIR;
 
-  $selectencoding = qq|<option>
-  <option value=SQL_ASCII>ASCII
-  <option value=EUC_JP>Japanese Extended UNIX Code
-  <option value=EUC_CN>Chinese Extended UNIX Code
-  <option value=EUC_KR>Korean Extended UNIX Code
-  <option value=EUC_TW>Taiwan Extended UNIX Code
-  <option value=UNICODE>UTF-8 Unicode
-  <option value=MULE_INTERNAL>Mule internal type
-  <option value=LATIN1>ISO 8859-1
-  <option value=LATIN2>ISO 8859-2
-  <option value=LATIN3>ISO 8859-3
-  <option value=LATIN4>ISO 8859-4
-  <option value=LATIN5>ISO 8859-5
-  <option value=KOI8>KOI8-R
-  <option value=WIN>Windows CP1251
-  <option value=ALT>Windows CP866
-  |;
+  my (@values, %labels);
+
+  my $default_charset = $dbcharset;
+  $default_charset ||= Common::DEFAULT_CHARSET;
+  my $default_encoding;
+
+  foreach my $encoding (@Common::db_encodings) {
+    push @values, $encoding->{dbencoding};
+    $labels{$encoding->{dbencoding}} = $encoding->{label};
+
+    $default_encoding = $encoding->{dbencoding} if $encoding->{charset} eq $default_charset;
+  }
+
+  $selectencoding =
+    NTI($cgi->popup_menu('-name' => 'encoding',
+                         '-values' => \@values,
+                         '-labels' => \%labels,
+                         '-default' => $default_encoding));
 
   $form->{title} =
       "Lx-Office ERP "
@@ -1531,7 +1527,7 @@ sub create_dataset {
   <tr>
 
     <th align=right nowrap>| . $locale->text('Multibyte Encoding') . qq|</th>
-    <td><select name=encoding>$selectencoding</select></td>
+    <td>$selectencoding</td>
 
   </tr>
 
@@ -1545,16 +1541,15 @@ sub create_dataset {
 
   <tr><td colspan=2>
 <p>
-<input type=hidden name=dbdriver value=$form->{dbdriver}>
-<input type=hidden name=dbuser value=$form->{dbuser}>
-<input type=hidden name=dbhost value=$form->{dbhost}>
-<input type=hidden name=dbport value=$form->{dbport}>
-<input type=hidden name=dbpasswd value=$form->{dbpasswd}>
-<input type=hidden name=dbdefault value=$form->{dbdefault}>
+<input type=hidden name="dbdriver"  value="$form->{dbdriver}">
+<input type=hidden name="dbuser"    value="$form->{dbuser}">
+<input type=hidden name="dbhost"    value="$form->{dbhost}">
+<input type=hidden name="dbport"    value="$form->{dbport}">
+<input type=hidden name="dbpasswd"  value="$form->{dbpasswd}">
+<input type=hidden name="dbdefault" value="$form->{dbdefault}">
 
-<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&rpw=$form->{rpw}">
+<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
 
-<input type=hidden name=path value=$form->{path}>
 <input type=hidden name=rpw value=$form->{rpw}>
 
 <input type=hidden name=nextsub value=dbcreate>
@@ -1605,7 +1600,6 @@ sub dbcreate {
 
     . qq|
 
-<input type=hidden name=path value="$form->{path}">
 <input type=hidden name=rpw value="$form->{rpw}">
 
 <input type=hidden name=nextsub value=list_users>
@@ -1661,16 +1655,15 @@ sub delete_dataset {
 
   <tr><td>
 <p>
-<input type=hidden name=dbdriver value=$form->{dbdriver}>
-<input type=hidden name=dbuser value=$form->{dbuser}>
-<input type=hidden name=dbhost value=$form->{dbhost}>
-<input type=hidden name=dbport value=$form->{dbport}>
-<input type=hidden name=dbpasswd value=$form->{dbpasswd}>
-<input type=hidden name=dbdefault value=$form->{dbdefault}>
+<input type=hidden name="dbdriver"  value="$form->{dbdriver}">
+<input type=hidden name="dbuser"    value="$form->{dbuser}">
+<input type=hidden name="dbhost"    value="$form->{dbhost}">
+<input type=hidden name="dbport"    value="$form->{dbport}">
+<input type=hidden name="dbpasswd"  value="$form->{dbpasswd}">
+<input type=hidden name="dbdefault" value="$form->{dbdefault}">
 
-<input name=callback type=hidden value="$form->{script}?action=list_users&path=$form->{path}&rpw=$form->{rpw}">
+<input name=callback type=hidden value="$form->{script}?action=list_users&rpw=$form->{rpw}">
 
-<input type=hidden name=path value="$form->{path}">
 <input type=hidden name=rpw value="$form->{rpw}">
 
 <input type=hidden name=nextsub value=dbdelete>
@@ -1720,7 +1713,6 @@ $form->{db} | . $locale->text('successfully deleted!')
 
     . qq|
 
-<input type=hidden name=path value="$form->{path}">
 <input type=hidden name=rpw value="$form->{rpw}">
 
 <input type=hidden name=nextsub value=list_users>
@@ -1741,7 +1733,7 @@ sub unlock_system {
   unlink "$userspath/nologin";
 
   $form->{callback} =
-    "$form->{script}?action=list_users&path=$form->{path}&rpw=$root->{password}";
+    "$form->{script}?action=list_users&rpw=$root->{password}";
 
   $form->redirect($locale->text('Lockfile removed!'));
 
@@ -1754,7 +1746,7 @@ sub lock_system {
   close(FH);
 
   $form->{callback} =
-    "$form->{script}?action=list_users&path=$form->{path}&rpw=$root->{password}";
+    "$form->{script}?action=list_users&rpw=$root->{password}";
 
   $form->redirect($locale->text('Lockfile created!'));