Merge von 550-553,567,603 aus unstable: Neue Menu
authorStephan Köhler <s.koehler@linet-services.de>
Thu, 24 Nov 2005 15:00:39 +0000 (15:00 +0000)
committerStephan Köhler <s.koehler@linet-services.de>
Thu, 24 Nov 2005 15:00:39 +0000 (15:00 +0000)
12 files changed:
SL/Menu.pm
SL/User.pm
bin/mozilla/admin.pl
bin/mozilla/am.pl
bin/mozilla/login.pl
bin/mozilla/menunew.pl [new file with mode: 0644]
locale/de/admin
locale/de/all
locale/de/am
locale/de/locales.pl
locale/de/menunew [new file with mode: 0644]
makesymlinks

index b10fc67..0bdf945 100644 (file)
@@ -67,8 +67,10 @@ sub menuitem {
   }
 
   my $level = $form->escape($item);
   }
 
   my $level = $form->escape($item);
-  my $str   =
+
+  my $str =
     qq|<a href=$module?path=$form->{path}&action=$action&level=$level&login=$form->{login}&password=$form->{password}|;
     qq|<a href=$module?path=$form->{path}&action=$action&level=$level&login=$form->{login}&password=$form->{password}|;
+
   my @vars = qw(module action target href);
 
   if ($self->{$item}{href}) {
   my @vars = qw(module action target href);
 
   if ($self->{$item}{href}) {
@@ -97,6 +99,44 @@ sub menuitem {
   return $str;
 }
 
   return $str;
 }
 
+sub menuitemNew {
+  my ($self, $myconfig, $form, $item) = @_;
+
+  my $module = $form->{script};
+  my $action = "section_menu";
+
+  #if ($self->{$item}{module}) {
+  $module = $self->{$item}{module};
+
+  #}
+  if ($self->{$item}{action}) {
+    $action = $self->{$item}{action};
+  }
+
+  my $level = $form->escape($item);
+  my $str   =
+    qq|$module?path=$form->{path}&action=$action&level=$level&login=$form->{login}&password=$form->{password}|;
+  my @vars = qw(module action target href);
+
+  if ($self->{$item}{href}) {
+    $str  = qq|$self->{$item}{href}|;
+    @vars = qw(module target href);
+  }
+
+  map { delete $self->{$item}{$_} } @vars;
+
+  # add other params
+  foreach my $key (keys %{ $self->{$item} }) {
+    $str .= "&" . $form->escape($key, 1) . "=";
+    ($value, $conf) = split /=/, $self->{$item}{$key}, 2;
+    $value = $myconfig->{$value} . "/$conf" if ($conf);
+    $str .= $form->escape($value, 1);
+  }
+
+  $str .= " ";
+
+}
+
 sub access_control {
   $main::lxdebug->enter_sub();
 
 sub access_control {
   $main::lxdebug->enter_sub();
 
index a034e03..9fa0035 100644 (file)
@@ -841,7 +841,7 @@ sub config_vars {
     currency dateformat dbconnect dbdriver dbhost dbport dboptions
     dbname dbuser dbpasswd email fax name numberformat password
     printer role sid signature stylesheet tel templates vclimit angebote bestellungen rechnungen
     currency dateformat dbconnect dbdriver dbhost dbport dboptions
     dbname dbuser dbpasswd email fax name numberformat password
     printer role sid signature stylesheet tel templates vclimit angebote bestellungen rechnungen
-    anfragen lieferantenbestellungen einkaufsrechnungen steuernummer ustid duns);
+    anfragen lieferantenbestellungen einkaufsrechnungen steuernummer ustid duns menustyle);
 
   $main::lxdebug->leave_sub();
 
 
   $main::lxdebug->leave_sub();
 
index c1fbb7c..0829934 100644 (file)
@@ -120,8 +120,7 @@ sub adminlogin {
     <th>| . $locale->text('Password') . qq|</th>
     <td><input type=password name=rpw></td>
     <td><input type=submit class=submit name=action value="|
     <th>| . $locale->text('Password') . qq|</th>
     <td><input type=password name=rpw></td>
     <td><input type=submit class=submit name=action value="|
-    . $locale->text('Login')
-    . qq|"></td>
+    . $locale->text('Login') . qq|"></td>
   </tr>
 <input type=hidden name=action value=login>
 <input type=hidden name=root value="root login">
   </tr>
 <input type=hidden name=action value=login>
 <input type=hidden name=root value="root login">
@@ -344,7 +343,9 @@ $nologin
 | . $locale->text('Click on login name to edit!') . qq|
 <br>
 |
 | . $locale->text('Click on login name to edit!') . qq|
 <br>
 |
-    . $locale->text('To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.')
+    . $locale->text(
+    'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.'
+    )
     . qq|
 
 <p>
     . qq|
 
 <p>
@@ -367,8 +368,7 @@ $nologin
          <th align=right>| . $locale->text('Password') . qq|</th>
          <td><input class=login type=password name=password></td>
          <td><input type=submit name=action value="|
          <th align=right>| . $locale->text('Password') . qq|</th>
          <td><input class=login type=password name=password></td>
          <td><input type=submit name=action value="|
-    . $locale->text('Login')
-    . qq|"></td>
+    . $locale->text('Login') . qq|"></td>
        </tr>
 <input type=hidden name=path value=$form->{path}>
       </table>
        </tr>
 <input type=hidden name=path value=$form->{path}>
       </table>
@@ -420,7 +420,8 @@ sub form_header {
   %countrycodes = User->country_codes;
   $countrycodes = "";
   foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} }
   %countrycodes = User->country_codes;
   $countrycodes = "";
   foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} }
-                keys %countrycodes) {
+                keys %countrycodes
+    ) {
     $countrycodes .=
       ($myconfig->{countrycode} eq $key)
       ? "<option selected value=$key>$countrycodes{$key}"
     $countrycodes .=
       ($myconfig->{countrycode} eq $key)
       ? "<option selected value=$key>$countrycodes{$key}"
@@ -481,6 +482,9 @@ sub form_header {
 
   $form->header;
 
 
   $form->header;
 
+  if ($myconfig->{menustyle} eq "neu") { $neu = "checked"; }
+  else { $old = "checked"; }
+
   print qq|
 <body class=admin>
 
   print qq|
 <body class=admin>
 
@@ -585,6 +589,11 @@ sub form_header {
          <th align=right>| . $locale->text('Setup Templates') . qq|</th>
          <td><select name=mastertemplates>$mastertemplates</select></td>
        </tr>
          <th align=right>| . $locale->text('Setup Templates') . qq|</th>
          <td><select name=mastertemplates>$mastertemplates</select></td>
        </tr>
+       <tr>
+           <th align=right>| . $locale->text('Setup Menu') . qq|</th>
+           <td><input name=menustyle type=radio class=radio value=neu $neu>&nbsp;New
+                 <input name=menustyle type=radio class=radio value=old $old>&nbsp;Old</td>
+         </tr>
        <input type=hidden name=templates value=$myconfig->{templates}>
       </table>
     </td>
        <input type=hidden name=templates value=$myconfig->{templates}>
       </table>
     </td>
@@ -1193,9 +1202,12 @@ sub dbselect_source {
   &dbdriver_defaults;
 
   $msg{Pg} =
   &dbdriver_defaults;
 
   $msg{Pg} =
-    $locale->text('Leave host and port field empty unless you want to make a remote connection.');
+    $locale->text(
+    'Leave host and port field empty unless you want to make a remote connection.'
+    );
   $msg{Oracle} =
   $msg{Oracle} =
-    $locale->text('You must enter a host and port for local and remote connections!');
+    $locale->text(
+           'You must enter a host and port for local and remote connections!');
 
   $form->{title} =
     "Lx-Office ERP / " . $locale->text('Database Administration');
 
   $form->{title} =
     "Lx-Office ERP / " . $locale->text('Database Administration');
@@ -1275,7 +1287,9 @@ sub dbselect_source {
 </table>
 
 <p>|
 </table>
 
 <p>|
-    . $locale->text('This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!')
+    . $locale->text(
+    'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!'
+    )
 
     . qq|
 <br>$msg{$form->{dbdriver}}
 
     . qq|
 <br>$msg{$form->{dbdriver}}
@@ -1468,8 +1482,7 @@ sub create_dataset {
   <tr>
 
     <th align=right nowrap>|
   <tr>
 
     <th align=right nowrap>|
-    . $locale->text('Create Chart of Accounts')
-    . qq|</th>
+    . $locale->text('Create Chart of Accounts') . qq|</th>
     <td>@charts</td>
 
   </tr>
     <td>@charts</td>
 
   </tr>
index ced3b08..d75766a 100644 (file)
@@ -282,27 +282,21 @@ sub account_header {
            <table>
              <tr valign=top>
                <td><input name=category type=radio class=radio value=A $checked{A_}>&nbsp;|
            <table>
              <tr valign=top>
                <td><input name=category type=radio class=radio value=A $checked{A_}>&nbsp;|
-    . $locale->text('Asset')
-    . qq|\n<br>
+    . $locale->text('Asset') . qq|\n<br>
                <input name=category type=radio class=radio value=L $checked{L_}>&nbsp;|
                <input name=category type=radio class=radio value=L $checked{L_}>&nbsp;|
-    . $locale->text('Liability')
-    . qq|\n<br>
+    . $locale->text('Liability') . qq|\n<br>
                <input name=category type=radio class=radio value=Q $checked{Q_}>&nbsp;|
                <input name=category type=radio class=radio value=Q $checked{Q_}>&nbsp;|
-    . $locale->text('Equity')
-    . qq|\n<br>
+    . $locale->text('Equity') . qq|\n<br>
                <input name=category type=radio class=radio value=I $checked{I_}>&nbsp;|
                <input name=category type=radio class=radio value=I $checked{I_}>&nbsp;|
-    . $locale->text('Revenue')
-    . qq|\n<br>
+    . $locale->text('Revenue') . qq|\n<br>
                <input name=category type=radio class=radio value=E $checked{E_}>&nbsp;|
                <input name=category type=radio class=radio value=E $checked{E_}>&nbsp;|
-    . $locale->text('Expense')
-    . qq|</td>
+    . $locale->text('Expense') . qq|</td>
                <td width=50>&nbsp;</td>
                <td>
                <input name=charttype type=radio class=radio value="H" $checked{H}>&nbsp;|
     . $locale->text('Heading') . qq|<br>
                <input name=charttype type=radio class=radio value="A" $checked{A}>&nbsp;|
                <td width=50>&nbsp;</td>
                <td>
                <input name=charttype type=radio class=radio value="H" $checked{H}>&nbsp;|
     . $locale->text('Heading') . qq|<br>
                <input name=charttype type=radio class=radio value="A" $checked{A}>&nbsp;|
-    . $locale->text('Account')
-    . qq|</td>
+    . $locale->text('Account') . qq|</td>
              </tr>
            </table>
          </td>
              </tr>
            </table>
          </td>
@@ -316,8 +310,7 @@ sub account_header {
            <table>
              <tr>
                <th align=left>|
            <table>
              <tr>
                <th align=left>|
-      . $locale->text('Is this a summary account to record')
-      . qq|</th>
+      . $locale->text('Is this a summary account to record') . qq|</th>
                <td>
                <input name=AR type=checkbox class=checkbox value=AR $form->{AR}>&nbsp;|
       . $locale->text('AR')
                <td>
                <input name=AR type=checkbox class=checkbox value=AR $form->{AR}>&nbsp;|
       . $locale->text('AR')
@@ -345,41 +338,33 @@ sub account_header {
              <tr>
                <td>
                <input name=AR_amount type=checkbox class=checkbox value=AR_amount $form->{AR_amount}>&nbsp;|
              <tr>
                <td>
                <input name=AR_amount type=checkbox class=checkbox value=AR_amount $form->{AR_amount}>&nbsp;|
-      . $locale->text('Revenue')
-      . qq|\n<br>
+      . $locale->text('Revenue') . qq|\n<br>
                <input name=AR_paid type=checkbox class=checkbox value=AR_paid $form->{AR_paid}>&nbsp;|
                <input name=AR_paid type=checkbox class=checkbox value=AR_paid $form->{AR_paid}>&nbsp;|
-      . $locale->text('Receipt')
-      . qq|\n<br>
+      . $locale->text('Receipt') . qq|\n<br>
                <input name=AR_tax type=checkbox class=checkbox value=AR_tax $form->{AR_tax}>&nbsp;|
       . $locale->text('Tax') . qq|
                </td>
                <td>
                <input name=AP_amount type=checkbox class=checkbox value=AP_amount $form->{AP_amount}>&nbsp;|
                <input name=AR_tax type=checkbox class=checkbox value=AR_tax $form->{AR_tax}>&nbsp;|
       . $locale->text('Tax') . qq|
                </td>
                <td>
                <input name=AP_amount type=checkbox class=checkbox value=AP_amount $form->{AP_amount}>&nbsp;|
-      . $locale->text('Expense/Asset')
-      . qq|\n<br>
+      . $locale->text('Expense/Asset') . qq|\n<br>
                <input name=AP_paid type=checkbox class=checkbox value=AP_paid $form->{AP_paid}>&nbsp;|
                <input name=AP_paid type=checkbox class=checkbox value=AP_paid $form->{AP_paid}>&nbsp;|
-      . $locale->text('Payment')
-      . qq|\n<br>
+      . $locale->text('Payment') . qq|\n<br>
                <input name=AP_tax type=checkbox class=checkbox value=AP_tax $form->{AP_tax}>&nbsp;|
       . $locale->text('Tax') . qq|
                </td>
                <td>
                <input name=IC_sale type=checkbox class=checkbox value=IC_sale $form->{IC_sale}>&nbsp;|
                <input name=AP_tax type=checkbox class=checkbox value=AP_tax $form->{AP_tax}>&nbsp;|
       . $locale->text('Tax') . qq|
                </td>
                <td>
                <input name=IC_sale type=checkbox class=checkbox value=IC_sale $form->{IC_sale}>&nbsp;|
-      . $locale->text('Revenue')
-      . qq|\n<br>
+      . $locale->text('Revenue') . qq|\n<br>
                <input name=IC_cogs type=checkbox class=checkbox value=IC_cogs $form->{IC_cogs}>&nbsp;|
                <input name=IC_cogs type=checkbox class=checkbox value=IC_cogs $form->{IC_cogs}>&nbsp;|
-      . $locale->text('COGS')
-      . qq|\n<br>
+      . $locale->text('COGS') . qq|\n<br>
                <input name=IC_taxpart type=checkbox class=checkbox value=IC_taxpart $form->{IC_taxpart}>&nbsp;|
       . $locale->text('Tax') . qq|
                </td>
                <td>
                <input name=IC_income type=checkbox class=checkbox value=IC_income $form->{IC_income}>&nbsp;|
                <input name=IC_taxpart type=checkbox class=checkbox value=IC_taxpart $form->{IC_taxpart}>&nbsp;|
       . $locale->text('Tax') . qq|
                </td>
                <td>
                <input name=IC_income type=checkbox class=checkbox value=IC_income $form->{IC_income}>&nbsp;|
-      . $locale->text('Revenue')
-      . qq|\n<br>
+      . $locale->text('Revenue') . qq|\n<br>
                <input name=IC_expense type=checkbox class=checkbox value=IC_expense $form->{IC_expense}>&nbsp;|
                <input name=IC_expense type=checkbox class=checkbox value=IC_expense $form->{IC_expense}>&nbsp;|
-      . $locale->text('Expense')
-      . qq|\n<br>
+      . $locale->text('Expense') . qq|\n<br>
                <input name=IC_taxservice type=checkbox class=checkbox value=IC_taxservice $form->{IC_taxservice}>&nbsp;|
       . $locale->text('Tax') . qq|
                </td>
                <input name=IC_taxservice type=checkbox class=checkbox value=IC_taxservice $form->{IC_taxservice}>&nbsp;|
       . $locale->text('Tax') . qq|
                </td>
@@ -1419,8 +1404,7 @@ sub sic_header {
   <tr>
     <td></td>
     <th align=left><input name=sictype type=checkbox style=checkbox value="H" $checked> |
   <tr>
     <td></td>
     <th align=left><input name=sictype type=checkbox style=checkbox value="H" $checked> |
-    . $locale->text('Heading')
-    . qq|</th>
+    . $locale->text('Heading') . qq|</th>
   <tr>
   <tr>
     <th align=right>| . $locale->text('Description') . qq|</th>
   <tr>
   <tr>
     <th align=right>| . $locale->text('Description') . qq|</th>
@@ -1605,7 +1589,8 @@ sub config {
   %countrycodes = User->country_codes;
   $countrycodes = '';
   foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} }
   %countrycodes = User->country_codes;
   $countrycodes = '';
   foreach $key (sort { $countrycodes{$a} cmp $countrycodes{$b} }
-                keys %countrycodes) {
+                keys %countrycodes
+    ) {
     $countrycodes .=
       ($myconfig{countrycode} eq $key)
       ? "<option selected value=$key>$countrycodes{$key}\n"
     $countrycodes .=
       ($myconfig{countrycode} eq $key)
       ? "<option selected value=$key>$countrycodes{$key}\n"
@@ -1639,6 +1624,9 @@ sub config {
 
   $form->header;
 
 
   $form->header;
 
+  if ($myconfig{menustyle} eq "old") { $oldS = "checked"; }
+  else { $newS = "checked"; }
+
   print qq|
 <body>
 
   print qq|
 <body>
 
@@ -1709,6 +1697,11 @@ sub config {
          <th align=right>| . $locale->text('Stylesheet') . qq|</th>
          <td><select name=usestylesheet>$selectstylesheet</select></td>
        </tr>
          <th align=right>| . $locale->text('Stylesheet') . qq|</th>
          <td><select name=usestylesheet>$selectstylesheet</select></td>
        </tr>
+       <tr>
+         <th align=right>| . $locale->text('Setup Menu') . qq|</th>
+         <td><input name=menustyle type=radio class=radio value=neu $newS>&nbsp;New
+                 <input name=menustyle type=radio class=radio value=old $oldS>&nbsp;Old</td>
+       </tr>   
        <input name=printer type=hidden value="$myconfig{printer}">
        <tr class=listheading>
          <th colspan=2>&nbsp;</th>
        <input name=printer type=hidden value="$myconfig{printer}">
        <tr class=listheading>
          <th colspan=2>&nbsp;</th>
@@ -1731,8 +1724,7 @@ sub config {
        </tr>
        <tr class=listheading>
          <th colspan=2>|
        </tr>
        <tr class=listheading>
          <th colspan=2>|
-    . $locale->text('Last Numbers & Default Accounts')
-    . qq|</th>
+    . $locale->text('Last Numbers & Default Accounts') . qq|</th>
        </tr>
        <tr>
          <td colspan=2>
        </tr>
        <tr>
          <td colspan=2>
@@ -1759,7 +1751,9 @@ sub config {
              </tr>
              <tr>
                <td colspan=2>|
              </tr>
              <tr>
                <td colspan=2>|
-    . $locale->text('Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies')
+    . $locale->text(
+    'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies'
+    )
     . qq|<br><input name=curr size=40 value="$form->{defaults}{curr}"></td>
              </tr>
             </table>
     . qq|<br><input name=curr size=40 value="$form->{defaults}{curr}"></td>
              </tr>
             </table>
@@ -1772,38 +1766,31 @@ sub config {
                <th align=right nowrap>| . $locale->text('Last Invoice Number') . qq|</th>
                <td><input name=invnumber size=10 value=$form->{defaults}{invnumber}></td>
                 <th align=right nowrap>|
                <th align=right nowrap>| . $locale->text('Last Invoice Number') . qq|</th>
                <td><input name=invnumber size=10 value=$form->{defaults}{invnumber}></td>
                 <th align=right nowrap>|
-    . $locale->text('Last Customer Number')
-    . qq|</th>
+    . $locale->text('Last Customer Number') . qq|</th>
                <td><input name=customernumber size=10 value=$form->{defaults}{customernumber}></td>
              </tr>
              <tr>
                <th align=right nowrap>|
                <td><input name=customernumber size=10 value=$form->{defaults}{customernumber}></td>
              </tr>
              <tr>
                <th align=right nowrap>|
-    . $locale->text('Last Sales Order Number')
-    . qq|</th>
+    . $locale->text('Last Sales Order Number') . qq|</th>
                <td><input name=sonumber size=10 value=$form->{defaults}{sonumber}></td>
                 <th align=right nowrap>|
                <td><input name=sonumber size=10 value=$form->{defaults}{sonumber}></td>
                 <th align=right nowrap>|
-    . $locale->text('Last Vendor Number')
-    . qq|</th>
+    . $locale->text('Last Vendor Number') . qq|</th>
                <td><input name=vendornumber size=10 value=$form->{defaults}{vendornumber}></td>
              </tr>
              <tr>
                <th align=right nowrap>|
                <td><input name=vendornumber size=10 value=$form->{defaults}{vendornumber}></td>
              </tr>
              <tr>
                <th align=right nowrap>|
-    . $locale->text('Last Purchase Order Number')
-    . qq|</th>
+    . $locale->text('Last Purchase Order Number') . qq|</th>
                <td><input name=ponumber size=10 value=$form->{defaults}{ponumber}></td>
                 <th align=right nowrap>|
                <td><input name=ponumber size=10 value=$form->{defaults}{ponumber}></td>
                 <th align=right nowrap>|
-    . $locale->text('Last Article Number')
-    . qq|</th>
+    . $locale->text('Last Article Number') . qq|</th>
                <td><input name=articlenumber size=10 value=$form->{defaults}{articlenumber}></td>
              </tr>
              <tr>
                <th align=right nowrap>|
                <td><input name=articlenumber size=10 value=$form->{defaults}{articlenumber}></td>
              </tr>
              <tr>
                <th align=right nowrap>|
-    . $locale->text('Last Sales Quotation Number')
-    . qq|</th>
+    . $locale->text('Last Sales Quotation Number') . qq|</th>
                <td><input name=sqnumber size=10 value=$form->{defaults}{sqnumber}></td>
                 <th align=right nowrap>|
                <td><input name=sqnumber size=10 value=$form->{defaults}{sqnumber}></td>
                 <th align=right nowrap>|
-    . $locale->text('Last Service Number')
-    . qq|</th>
+    . $locale->text('Last Service Number') . qq|</th>
                <td><input name=servicenumber size=10 value=$form->{defaults}{servicenumber}></td>
              </tr>
              <tr>
                <td><input name=servicenumber size=10 value=$form->{defaults}{servicenumber}></td>
              </tr>
              <tr>
@@ -1944,8 +1931,7 @@ sub audit_control {
       <table>
        <tr>
          <td>|
       <table>
        <tr>
          <td>|
-    . $locale->text('Enforce transaction reversal for all dates')
-    . qq|</th>
+    . $locale->text('Enforce transaction reversal for all dates') . qq|</th>
          <td><input name=revtrans class=radio type=radio value="1" $checked{Y}> |
     . $locale->text('Yes')
     . qq| <input name=revtrans class=radio type=radio value="0" $checked{N}> |
          <td><input name=revtrans class=radio type=radio value="1" $checked{Y}> |
     . $locale->text('Yes')
     . qq| <input name=revtrans class=radio type=radio value="0" $checked{N}> |
index cea1559..e888721 100644 (file)
@@ -84,8 +84,7 @@ sub login_screen {
   <tr>
     <td class=login align=center><a href="http://www.lx-office.org" target=_top><img src="image/lx-office-erp.png" border=0></a>
 <h1 class=login align=center>|
   <tr>
     <td class=login align=center><a href="http://www.lx-office.org" target=_top><img src="image/lx-office-erp.png" border=0></a>
 <h1 class=login align=center>|
-    . $locale->text('Version')
-    . qq| $form->{version}
+    . $locale->text('Version') . qq| $form->{version}
 </h1>
 
 <p>
 </h1>
 
 <p>
@@ -153,8 +152,13 @@ sub login {
   }
 
   # made it this far, execute the menu
   }
 
   # made it this far, execute the menu
-  $form->{callback} =
-    "menu.pl?login=$form->{login}&password=$form->{password}&path=$form->{path}&action=display";
+  if ($user->{menustyle} eq "neu") {
+    $form->{callback} =
+      "menunew.pl?login=$form->{login}&password=$form->{password}&path=$form->{path}&action=display";
+  } else {
+    $form->{callback} =
+      "menu.pl?login=$form->{login}&password=$form->{password}&path=$form->{path}&action=display";
+  }
 
   $form->redirect;
 
 
   $form->redirect;
 
diff --git a/bin/mozilla/menunew.pl b/bin/mozilla/menunew.pl
new file mode 100644 (file)
index 0000000..64a1f58
--- /dev/null
@@ -0,0 +1,436 @@
+#=====================================================================
+# LX-Office ERP
+# Copyright (C) 2004
+# Based on SQL-Ledger Version 2.1.9
+# Web http://www.lx-office.org
+#
+######################################################################
+# SQL-Ledger Accounting
+# Copyright (c) 1998-2002
+#
+#  Author: Dieter Simader
+#   Email: dsimader@sql-ledger.org
+#     Web: http://www.sql-ledger.org
+#
+#  Contributors: Christopher Browne
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#######################################################################
+#
+# thre frame layout with refractured menu
+#
+# CHANGE LOG:
+#   DS. 2002-03-25  Created
+#  2004-12-14 - New Optik - Marco Welter <mawe@linux-studio.de>
+#######################################################################
+
+$menufile = "menu.ini";
+use SL::Menu;
+use CGI::Carp qw(fatalsToBrowser);
+
+1;
+
+# end of main
+
+sub display {
+
+  $form->header;
+
+  &clock_line;
+
+  &acc_menu;
+
+  print qq|
+<iframe src="login.pl?login=$form->{login}&password=$form->{password}&action=company_logo&path=$form->{path}" width="100%" height="93%" name="main_window" style="position: absolute; border:0px;">
+<p>Ihr Browser kann leider keine eingebetteten Frames anzeigen.
+</p>
+</iframe>
+</body>
+</html>
+
+|;
+
+}
+
+sub clock_line {
+
+  $login = "["
+    . $form->{login}
+    . " - <a href=\"login.pl?path="
+    . $form->{"path"}
+    . "&password="
+    . $form->{"password"}
+    . "&action=logout\" target=\"_top\">"
+    . $locale->text('Logout')
+    . "</a>] ";
+  my ($Sekunden, $Minuten,   $Stunden,   $Monatstag, $Monat,
+      $Jahr,     $Wochentag, $Jahrestag, $Sommerzeit)
+    = localtime(time);
+  my $CTIME_String = localtime(time);
+  $Monat     += 1;
+  $Jahrestag += 1;
+  $Monat     = $Monat < 10     ? $Monat     = "0" . $Monat     : $Monat;
+  $Monatstag = $Monatstag < 10 ? $Monatstag = "0" . $Monatstag : $Monatstag;
+  $Jahr += 1900;
+  my @Wochentage = ("Sonntag",    "Montag",  "Dienstag", "Mittwoch",
+                    "Donnerstag", "Freitag", "Samstag");
+  my @Monatsnamen = ("",       "Januar",    "Februar", "M&auml;rz",
+                     "April",  "Mai",       "Juni",    "Juli",
+                     "August", "September", "Oktober", "November",
+                     "Dezember");
+  $datum =
+      $Wochentage[$Wochentag] . ", der "
+    . $Monatstag . "."
+    . $Monat . "."
+    . $Jahr . " - ";
+
+  #$zeit="<div id='Uhr'>".$Stunden.":".$Minuten.":".$Sekunden."</div>";
+  $zeit = "<div id='Uhr'>" . $Stunden . ":" . $Minuten . "</div>";
+  print qq|
+<script type="text/javascript">
+<!--
+var clockid=new Array()
+var clockidoutside=new Array()
+var i_clock=-1
+var thistime= new Date()
+var hours= | . $Stunden . qq|;
+var minutes= | . $Minuten . qq|;
+var seconds= | . $Sekunden . qq|;
+if (eval(hours) <10) {hours="0"+hours}
+if (eval(minutes) < 10) {minutes="0"+minutes}
+if (seconds < 10) {seconds="0"+seconds}
+//var thistime = hours+":"+minutes+":"+seconds
+var thistime = hours+":"+minutes
+
+function writeclock() {
+       i_clock++
+       if (document.all \|\| document.getElementById \|\| document.layers) {
+               clockid[i_clock]="clock"+i_clock
+               document.write("<font family=arial size=2><span id='"+clockid[i_clock]+"' style='position:relative'>"+thistime+"</span></font>")
+       }
+}
+
+function clockon() {
+       thistime= new Date()
+       hours=thistime.getHours()
+       minutes=thistime.getMinutes()
+       seconds=thistime.getSeconds()
+       if (eval(hours) <10) {hours="0"+hours}
+       if (eval(minutes) < 10) {minutes="0"+minutes}
+       if (seconds < 10) {seconds="0"+seconds}
+       //thistime = hours+":"+minutes+":"+seconds
+       thistime = hours+":"+minutes
+
+       if (document.all) {
+               for (i=0;i<=clockid.length-1;i++) {
+                       var thisclock=eval(clockid[i])
+                       thisclock.innerHTML=thistime
+               }
+       }
+
+       if (document.getElementById) {
+               for (i=0;i<=clockid.length-1;i++) {
+                       document.getElementById(clockid[i]).innerHTML=thistime
+               }
+       }
+       var timer=setTimeout("clockon()",60000)
+}
+//window.onload=clockon
+//-->
+</script>
+<table border="0" width="100%" background="image/bg_titel.gif" cellpadding="0" cellspacing="0">
+       <tr>
+               <td align="right" style="vertical-align:middle; color:white; font-family:verdana,arial,sans-serif; font-size: 12px;" nowrap>|
+    . $login
+    . $datum
+    . qq| <script>writeclock()</script>&nbsp;
+               </td>
+       </tr>
+</table>
+|;
+}
+
+sub acc_menu {
+  $mainlevel = $form->{level};
+  $mainlevel =~ s/$mainlevel--//g;
+  my $menu = new Menu "$menufile";
+  $menu = new Menu "custom_$menufile" if (-f "custom_$menufile");
+  $menu = new Menu "$form->{login}_$menufile"
+    if (-f "$form->{login}_$menufile");
+
+  $| = 1;
+
+  print qq|
+<script type="text/javascript">
+<!--
+var isDOM = (document.getElementById ? true : false); 
+var isIE4 = ((document.all && !isDOM) ? true : false);
+var isNS4 = (document.layers ? true : false);
+function getRef(id) {
+       if (isDOM) return document.getElementById(id);
+       if (isIE4) return document.all[id];
+       if (isNS4) return document.layers[id];
+}
+function getSty(id) {
+       return (isNS4 ? getRef(id) : getRef(id).style);
+} 
+var popTimer = 0;
+var litNow = new Array();
+function popOver(menuNum, itemNum) {
+       clearTimeout(popTimer);
+       hideAllBut(menuNum);
+       litNow = getTree(menuNum, itemNum);
+       changeCol(litNow, true);
+       targetNum = menu[menuNum][itemNum].target;
+       if (targetNum > 0) {
+               thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
+               thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
+               with (menu[targetNum][0].ref) {
+                       left = parseInt(thisX + menu[targetNum][0].x);
+                       top = parseInt(thisY + menu[targetNum][0].y);
+                       visibility = 'visible';
+               }
+       }
+}
+function popOut(menuNum, itemNum) {
+       if ((menuNum == 0) && !menu[menuNum][itemNum].target)
+               hideAllBut(0)
+       else
+               popTimer = setTimeout('hideAllBut(0)', 500);
+}
+function getTree(menuNum, itemNum) {
+       itemArray = new Array(menu.length);
+       while(1) {
+               itemArray[menuNum] = itemNum;
+               if (menuNum == 0) return itemArray;
+               itemNum = menu[menuNum][0].parentItem;
+               menuNum = menu[menuNum][0].parentMenu;
+       }
+}
+function changeCol(changeArray, isOver) {
+       for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
+               if (changeArray[menuCount]) {
+                       newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;
+                       with (menu[menuCount][changeArray[menuCount]].ref) {
+                               if (isNS4) bgColor = newCol;
+                               else backgroundColor = newCol;
+                       }
+               }
+       }
+}
+function hideAllBut(menuNum) {
+       var keepMenus = getTree(menuNum, 1);
+       for (count = 0; count < menu.length; count++)
+               if (!keepMenus[count])
+                       menu[count][0].ref.visibility = 'hidden';
+       changeCol(litNow, false);
+}
+function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) {
+       this.isVert = isVert;
+       this.popInd = popInd
+       this.x = x;
+       this.y = y;
+       this.width = width;
+       this.overCol = overCol;
+       this.backCol = backCol;
+       this.borderClass = borderClass;
+       this.textClass = textClass;
+       this.parentMenu = null;
+       this.parentItem = null;
+       this.ref = null;
+}
+function Item(text, href, frame, length, spacing, target) {
+       this.text = text;
+       this.href = href;
+       this.frame = frame;
+       this.length = length;
+       this.spacing = spacing;
+       this.target = target;
+       this.ref = null;
+}
+function writeMenus() {
+       if (!isDOM && !isIE4 && !isNS4) return;
+       for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
+               var str = '', itemX = 0, itemY = 0;
+               for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
+                       var itemID = 'menu' + currMenu + 'item' + currItem;
+                       var w = (isVert ? width : length);
+                       var h = (isVert ? length : width);
+                       if (isDOM \|\| isIE4) {
+                               str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
+                               if (backCol) str += 'background: ' + backCol + '; ';
+                               str += '" ';
+                       }
+                       if (isNS4) {
+                               str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' +  w + '" height="' + h + '" visibility="inherit" ';
+                               if (backCol) str += 'bgcolor="' + backCol + '" ';
+                       }
+                       if (borderClass) str += 'class="' + borderClass + '" ';
+                       str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';
+                       str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '"><tr><td align="left" height="' + (h - 7) + '">' + '<a class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text + '</a></td>';
+                       if (target > 0) {
+                               menu[target][0].parentMenu = currMenu;
+                               menu[target][0].parentItem = currItem;
+                               if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
+                       }
+                       str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
+                       if (isVert) itemY += length + spacing;
+                       else itemX += length + spacing;
+               }
+               if (isDOM) {
+                       var newDiv = document.createElement('div');
+                       document.getElementsByTagName('body').item(0).appendChild(newDiv);
+                       newDiv.innerHTML = str;
+                       ref = newDiv.style;
+                       ref.position = 'absolute';
+                       ref.visibility = 'hidden';
+               }
+               if (isIE4) {
+                       document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
+                       ref = getSty('menu' + currMenu + 'div');
+               }
+               if (isNS4) {
+                       ref = new Layer(0);
+                       ref.document.write(str);
+                       ref.document.close();
+               }
+               for (currItem = 1; currItem < menu[currMenu].length; currItem++) {
+                       itemName = 'menu' + currMenu + 'item' + currItem;
+                       if (isDOM \|\| isIE4) menu[currMenu][currItem].ref = getSty(itemName);
+                       if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName];
+               }
+       }
+       with(menu[0][0]) {
+               ref.left = x;
+               ref.top = y;
+               ref.visibility = 'visible';
+   }
+}
+var menu = new Array();
+var defOver = '#AAAAFF', defBack = '#8888DD';
+var defLength = 22;
+menu[0] = new Array();
+menu[0][0] = new Menu(false, '', 5, 18, 19, '#AAAAFF', '#AAAAFF', '', 'itemText');
+
+|;
+
+  #
+  &section_menu($menu);
+
+  print qq|
+var popOldWidth = window.innerWidth;
+nsResizeHandler = new Function('if (popOldWidth != window.innerWidth) location.reload()');
+if (isNS4) document.captureEvents(Event.CLICK);
+document.onclick = clickHandle;
+function clickHandle(evt) {
+       if (isNS4) document.routeEvent(evt);
+       hideAllBut(0);
+}
+function moveRoot() {
+       with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
+}
+//  End -->
+</script>
+<style>
+<!--
+
+.itemBorder { border: 1px solid black }
+.itemText { text-decoration: none; color: #FFFFFF; font: 12px Arial, Helvetica }
+
+-->
+</style>
+
+<!--body bgcolor="#AAAAff" text="#ffffff" link="#ffffff" vlink="#ffffff" alink="#ffffff" topmargin="0" leftmargin="0"  marginwidth="0" marginheight="0"-->
+<BODY scrolling="no" topmargin="0" leftmargin="0"  marginwidth="0" marginheight="0" style="margin: 0" onLoad="writeMenus(); clockon();" onResize="if (isNS4) nsResizeHandler()">
+<!--BODY marginwidth="0" marginheight="0" style="margin: 0" onLoad="writeMenus()" onResize="if (isNS4) nsResizeHandler()"-->
+
+
+<table bgcolor="#AAAAFF" width="100%" border="0" cellpadding="0" cellspacing="0">
+<tr><td height="21"><font size="1"> </font></td></tr></table>
+
+|;
+
+  print qq|
+  
+|;
+
+}
+
+sub section_menu {
+  my ($menu, $level) = @_;
+
+  # build tiered menus
+  my @menuorder = $menu->access_control(\%myconfig, $level);
+  $main = 0;
+
+  #$pm=0;
+  while (@menuorder) {
+    $item  = shift @menuorder;
+    $label = $item;
+    $ml    = $item;
+    $label =~ s/$level--//g;
+    $ml    =~ s/--.*//;
+    $label = $locale->text($label);
+    $label =~ s/ /&nbsp;/g;
+    $menu->{$item}{target} = "main_window" unless $menu->{$item}{target};
+
+    if ($menu->{$item}{submenu}) {
+      $menu->{$item}{$item} = !$form->{$item};
+
+      # Untermenü
+      if ($mlz{"s$ml"} > 1) { $z = $mlz{"s$ml"}++; $sm = 1; }
+      else { $z = $sm; $mlz{"s$ml"}++; }
+      print
+        qq|menu[$mlz{$ml}][$z] = new Item('$label', '#', '', defLength, 0, |
+        . ++$pm
+        . qq|);\n|;
+      $sm = 1;
+      print qq|menu[$pm] = new Array();\n|;
+      print
+        qq|menu[$pm][0] = new Menu(true, '', 85, 0, 180, defOver, defBack, 'itemBorder', 'itemText');\n|;
+      map { shift @menuorder } grep /^$item/, @menuorder;
+      &section_menu($menu, $item);
+      map { shift @menuorder } grep /^$item/, @menuorder;
+    } else {
+      if ($menu->{$item}{module}) {
+
+        #Untermenüpunkte
+        $target = $menu->{$item}{target};
+        $uri    = $menu->menuitemNew(\%myconfig, \%$form, $item, $level);
+
+        #print qq|<tr><td class="hover" height="13" >$spacer<img src="image/unterpunkt.png"  style="vertical-align:text-top">|.$menu->menuitem(\%myconfig, \%$form, $item, $level).qq|$label</a></td></tr>\n|;
+        print
+          qq|menu[$pm][$sm] = new Item('$label', '$uri', '$target', defLength, 0, 0);\n|;
+        $sm++;
+      } else {    # Hauptmenu
+        my $ml_ = $form->escape($ml);
+        $mm++;
+        $pm++;
+        %mlz   = ($ml, $pm, "s$ml", 1);
+        $sm    = 1;
+        $breit = 15 + length($label) * 6;
+        print
+          qq|menu[0][$mm] = new Item('  $label', '#', '', $breit, 10, $pm);    \n|;
+        print qq|menu[$pm] = new Array();\n|;
+        print
+          qq|menu[$pm][0] = new Menu(true, '>', 0, 22, 180, defOver, defBack, 'itemBorder', 'itemText');\n|;
+
+        #print qq|<tr><td class="bg" height="22" align="left" valign="middle" ><img src="image/$item.png" style="vertical-align:middle">&nbsp;<a href="menu.pl?path=bin/mozilla&action=acc_menu&level=$ml_&login=$form->{login}&password=$form->{password}" class="nohover">$label</a>&nbsp;&nbsp;&nbsp;&nbsp;</td></tr>\n|;
+        &section_menu($menu, $item);
+
+        #print qq|<br>\n|;
+      }
+    }
+  }
+}
index ffa694a..d3c5be1 100644 (file)
@@ -39,7 +39,6 @@ $self{texts} = {
   'Hostname missing!'           => 'Computername fehlt!',
   'Incorrect Password!'         => 'Ungültiges Passwort!',
   'Language'                    => 'Sprache',
   'Hostname missing!'           => 'Computername fehlt!',
   'Incorrect Password!'         => 'Ungültiges Passwort!',
   'Language'                    => 'Sprache',
-  'Leave host and port field empty unless you want to make a remote connection.' => 'Für lokale Verbindungen "Rechner" und "Port" freilassen.',
   'Lock System'                 => 'System sperren',
   'Lockfile created!'           => 'System gesperrt!',
   'Lockfile removed!'           => 'System entsperrt!',
   'Lock System'                 => 'System sperren',
   'Lockfile created!'           => 'System gesperrt!',
   'Lockfile removed!'           => 'System entsperrt!',
@@ -62,6 +61,7 @@ $self{texts} = {
   'Port missing!'               => 'Portangabe fehlt!',
   'Printer'                     => 'Drucker',
   'Save'                        => 'Speichern',
   'Port missing!'               => 'Portangabe fehlt!',
   'Printer'                     => 'Drucker',
   'Save'                        => 'Speichern',
+  'Setup Menu'                  => 'Setup Menu',
   'Setup Templates'             => 'Vorlagen auswählen',
   'Signature'                   => 'Unterschrift',
   'Steuernummer'                => 'Steuernummer',
   'Setup Templates'             => 'Vorlagen auswählen',
   'Signature'                   => 'Unterschrift',
   'Steuernummer'                => 'Steuernummer',
@@ -70,8 +70,6 @@ $self{texts} = {
   'Templates'                   => 'Vorlagen',
   'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und können gelöscht werden',
   'The following Datasets need to be updated' => 'Folgende Datenbanken müssen aktualisiert werden',
   'Templates'                   => 'Vorlagen',
   'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und können gelöscht werden',
   'The following Datasets need to be updated' => 'Folgende Datenbanken müssen aktualisiert werden',
-  'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datenbanken gesucht. Es werden noch keine Änderungen vorgenommen!',
-  'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
   'Unlock System'               => 'System entsperren',
   'Update Dataset'              => 'Datenbank aktualisieren',
   'Use Templates'               => 'benutze Vorlagen',
   'Unlock System'               => 'System entsperren',
   'Update Dataset'              => 'Datenbank aktualisieren',
   'Use Templates'               => 'benutze Vorlagen',
@@ -81,7 +79,6 @@ $self{texts} = {
   'Ust-IDNr'                    => 'USt-IdNr.',
   'Version'                     => 'Version',
   'WEBDAV-Zugriff'              => 'WEBDAV-Zugriff',
   'Ust-IDNr'                    => 'USt-IdNr.',
   'Version'                     => 'Version',
   'WEBDAV-Zugriff'              => 'WEBDAV-Zugriff',
-  'You must enter a host and port for local and remote connections!' => '"Rechner" und "Port" müssen für lokale und externe Verbindungen eingetragen werden!',
   'does not exist'              => 'existiert nicht',
   'is already a member!'        => 'ist bereits ein Mitglied!',
   'localhost'                   => 'lokaler Rechner',
   'does not exist'              => 'existiert nicht',
   'is already a member!'        => 'ist bereits ein Mitglied!',
   'localhost'                   => 'lokaler Rechner',
index f98de79..beb266a 100644 (file)
@@ -427,7 +427,6 @@ $self{texts} = {
   'Last Sales Quotation Number' => 'Letzte Angebotsnummer',
   'Last Service Number'         => 'Letzte Dienstleistungsnr.',
   'Last Vendor Number'          => 'Letzte Lieferantennummer',
   'Last Sales Quotation Number' => 'Letzte Angebotsnummer',
   'Last Service Number'         => 'Letzte Dienstleistungsnr.',
   'Last Vendor Number'          => 'Letzte Lieferantennummer',
-  'Leave host and port field empty unless you want to make a remote connection.' => 'Für lokale Verbindungen "Rechner" und "Port" freilassen.',
   'Liability'                   => 'Passiva',
   'License'                     => 'Lizenz',
   'License key'                 => 'Lizenzschlüssel',
   'Liability'                   => 'Passiva',
   'License'                     => 'Lizenz',
   'License key'                 => 'Lizenzschlüssel',
@@ -643,6 +642,7 @@ $self{texts} = {
   'Service Items'               => 'Dienstleistungen',
   'Service Number missing!'     => 'Dienstleistungsnummer fehlt!',
   'Services'                    => 'Dienstleistungen',
   'Service Items'               => 'Dienstleistungen',
   'Service Number missing!'     => 'Dienstleistungsnummer fehlt!',
   'Services'                    => 'Dienstleistungen',
+  'Setup Menu'                  => '',
   'Setup Templates'             => 'Vorlagen auswählen',
   'Ship'                        => 'Lagerausgang',
   'Ship Merchandise'            => 'Waren versenden',
   'Setup Templates'             => 'Vorlagen auswählen',
   'Ship'                        => 'Lagerausgang',
   'Ship Merchandise'            => 'Waren versenden',
@@ -700,10 +700,8 @@ $self{texts} = {
   'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und können gelöscht werden',
   'The following Datasets need to be updated' => 'Folgende Datenbanken müssen aktualisiert werden',
   'The licensing module has been deactivated in lx-erp.conf.' => 'Das Lizenzverwaltungsmodul wurde in lx-erp.conf deaktiviert.',
   'The following Datasets are not in use and can be deleted' => 'Die folgenden Datenbanken sind nicht in Verwendung und können gelöscht werden',
   'The following Datasets need to be updated' => 'Folgende Datenbanken müssen aktualisiert werden',
   'The licensing module has been deactivated in lx-erp.conf.' => 'Das Lizenzverwaltungsmodul wurde in lx-erp.conf deaktiviert.',
-  'This is a preliminary check for existing sources. Nothing will be created or deleted at this stage!' => 'In diesem Schritt werden bestehende Datenbanken gesucht. Es werden noch keine Änderungen vorgenommen!',
   'Title'                       => 'Titel',
   'To'                          => 'An',
   'Title'                       => 'Titel',
   'To'                          => 'An',
-  'To add a user to a group edit a name, change the login name and save.  A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
   'Top 100'                     => 'Top 100',
   'Top 100 hinzufuegen'         => 'Top 100 hinzufügen',
   'Top Level'                   => 'Hauptartikelbezeichnung',
   'Top 100'                     => 'Top 100',
   'Top 100 hinzufuegen'         => 'Top 100 hinzufügen',
   'Top Level'                   => 'Hauptartikelbezeichnung',
@@ -771,7 +769,6 @@ $self{texts} = {
   'Yes'                         => 'Ja',
   'You are logged out!'         => 'Auf Wiedersehen!',
   'You did not enter a name!'   => 'Sie haben keinen Namen eingegeben!',
   'Yes'                         => 'Ja',
   'You are logged out!'         => 'Auf Wiedersehen!',
   'You did not enter a name!'   => 'Sie haben keinen Namen eingegeben!',
-  'You must enter a host and port for local and remote connections!' => '"Rechner" und "Port" müssen für lokale und externe Verbindungen eingetragen werden!',
   'Zeitraum'                    => 'Zeitraum',
   'Zipcode'                     => 'PLZ',
   'accrual'                     => 'Bilanzierung (Soll-Versteuerung)',
   'Zeitraum'                    => 'Zeitraum',
   'Zipcode'                     => 'PLZ',
   'accrual'                     => 'Bilanzierung (Soll-Versteuerung)',
index 92e0ed5..5923fba 100644 (file)
@@ -117,6 +117,7 @@ $self{texts} = {
   'Salesman'                    => 'Vertreter',
   'Save'                        => 'Speichern',
   'Service Items'               => 'Dienstleistungen',
   'Salesman'                    => 'Vertreter',
   'Save'                        => 'Speichern',
   'Service Items'               => 'Dienstleistungen',
+  'Setup Menu'                  => 'Setup Menu',
   'Signature'                   => 'Unterschrift',
   'Standard Industrial Codes'   => 'SIC',
   'Steuersatz'                  => 'Steuersatz',
   'Signature'                   => 'Unterschrift',
   'Standard Industrial Codes'   => 'SIC',
   'Steuersatz'                  => 'Steuersatz',
index 9e132c9..f5cd120 100755 (executable)
@@ -59,7 +59,13 @@ foreach $file (@progfiles) {
       &scanmenu("$basedir/$item");
     }
   }
       &scanmenu("$basedir/$item");
     }
   }
-  
+
+  if ($file eq 'menunew.pl') {
+    foreach $item (@menufiles) {
+      &scanmenu("$basedir/$item");
+    }
+  }
+
   $file =~ s/\.pl//;
 
   eval { require 'missing'; };
   $file =~ s/\.pl//;
 
   eval { require 'missing'; };
diff --git a/locale/de/menunew b/locale/de/menunew
new file mode 100644 (file)
index 0000000..45874d8
--- /dev/null
@@ -0,0 +1,99 @@
+$self{texts} = {
+  'AP'                          => 'Einkauf',
+  'AP Aging'                    => 'Offene Verbindlichkeiten',
+  'AR'                          => 'Verkauf',
+  'AR Aging'                    => 'Offene Forderungen',
+  'Add AP Transaction'          => 'Kreditorenbuchung',
+  'Add AR Transaction'          => 'Debitorenbuchung',
+  'Add Account'                 => 'Konto erfassen',
+  'Add Assembly'                => 'Erzeugnis erfassen',
+  'Add Business'                => 'Kundentyp erfassen',
+  'Add Customer'                => 'Kunde erfassen',
+  'Add Department'              => 'Abteilung erfassen',
+  'Add Group'                   => 'Warengruppe erfassen',
+  'Add License'                 => 'Lizenz erfassen',
+  'Add Part'                    => 'Ware erfassen',
+  'Add Project'                 => 'Projekt erfassen',
+  'Add Purchase Order'          => 'Lieferantenauftrag erfassen',
+  'Add Quotation'               => 'Angebot erfassen',
+  'Add RFQ'                     => 'Neue Preisanfrage',
+  'Add SIC'                     => 'SIC erfassen',
+  'Add Sales Invoice'           => 'Rechnung erfassen',
+  'Add Sales Order'             => 'Auftrag erfassen',
+  'Add Service'                 => 'Dienstleistung erfassen',
+  'Add Transaction'             => 'Dialogbuchen',
+  'Add Vendor'                  => 'Lieferant erfassen',
+  'Add Vendor Invoice'          => 'Einkaufsrechnung erfassen',
+  'Assemblies'                  => 'Erzeugnisse',
+  'Audit Control'               => 'Bücherkontrolle',
+  'BWA'                         => 'BWA',
+  'Backup'                      => 'Datensicherung',
+  'Balance Sheet'               => 'Bilanz',
+  'Batch Printing'              => 'Druck',
+  'Cash'                        => 'Zahlungsverkehr',
+  'Chart of Accounts'           => 'Kontenübersicht',
+  'Check'                       => 'Scheck',
+  'Checks'                      => 'Schecks',
+  'Customers'                   => 'Kunden',
+  'DATEV - Export Assistent'    => 'DATEV-Exportassistent',
+  'Departments'                 => 'Abteilungen',
+  'General Ledger'              => 'Finanzbuchhaltung',
+  'Groups'                      => 'Warengruppen',
+  'HTML Templates'              => 'HTML-Vorlagen',
+  'Income Statement'            => 'GuV',
+  'Invoice'                     => 'Rechnung',
+  'Invoices'                    => 'Rechnungen',
+  'Journal'                     => 'Buchungsjournal',
+  'LaTeX Templates'             => 'LaTeX-Vorlagen',
+  'Licenses'                    => 'Lizenzen',
+  'List Accounts'               => 'Kontenliste',
+  'List Businesses'             => 'Liste Kundentypen',
+  'List Departments'            => 'Abteilungsliste',
+  'List SIC'                    => 'SIC anzeigen',
+  'Logout'                      => 'Abmeldung',
+  'Master Data'                 => 'Stammdaten',
+  'Packing List'                => 'Verpackungsliste',
+  'Packing Lists'               => 'Lieferschein',
+  'Parts'                       => 'Waren',
+  'Payment'                     => 'Zahlungsausgang',
+  'Payments'                    => 'Zahlungsausgänge',
+  'Preferences'                 => 'Benutzereinstellungen',
+  'Programm'                    => 'Programm',
+  'Projects'                    => 'Projekte',
+  'Projecttransactions'         => 'Projektbuchungen',
+  'Purchase Order'              => 'Lieferantenauftrag',
+  'Purchase Orders'             => 'Lieferantenaufträge',
+  'Quotation'                   => 'Angebot',
+  'Quotations'                  => 'Angebote',
+  'RFQ'                         => 'Anfrage',
+  'RFQs'                        => 'Anfragen',
+  'Receipt'                     => 'Zahlungseingang',
+  'Receipts'                    => 'Zahlungseingänge',
+  'Reports'                     => 'Berichte',
+  'SIC'                         => 'SIC',
+  'Sales Invoices'              => 'Kundenrechnung',
+  'Sales Order'                 => 'Auftrag',
+  'Sales Orders'                => 'Aufträge',
+  'Save to File'                => 'auf Festplatte speichern',
+  'Send by E-Mail'              => 'Per eMail schicken',
+  'Services'                    => 'Dienstleistungen',
+  'Statement'                   => 'Sammelrechnung',
+  'Stylesheet'                  => 'Stilvorlage',
+  'System'                      => 'System',
+  'Trial Balance'               => 'Vergleichsbilanz',
+  'Type of Business'            => 'Kundentyp',
+  'UStVa'                       => 'UStVa',
+  'UStVa Einstellungen'         => 'UStVa Einstellungen',
+  'Vendor Invoices'             => 'Einkaufsrechnungen',
+  'Vendors'                     => 'Lieferanten',
+  'Version'                     => 'Version',
+};
+
+$self{subs} = {
+  'acc_menu'                    => 'acc_menu',
+  'clock_line'                  => 'clock_line',
+  'display'                     => 'display',
+  'section_menu'                => 'section_menu',
+};
+
+1;
index 39ebcd6..7046180 100755 (executable)
@@ -3,7 +3,7 @@
 # Erstellt die benotigten Symlinks
 
 ln -vsf login.pl admin.pl
 # Erstellt die benotigten Symlinks
 
 ln -vsf login.pl admin.pl
-for i in ap ar bp ca cp ct gl ic ir is menu oe pe rc rp datev licenses fa ustva; do
+for i in ap ar bp ca cp ct gl ic ir is menu oe pe rc rp datev licenses fa ustva menunew; do
   ln -vsf am.pl $i.pl
 done
 
   ln -vsf am.pl $i.pl
 done