Neues Menu von Holger L.
authorStephan Köhler <s.koehler@linet-services.de>
Fri, 23 Sep 2005 14:05:08 +0000 (14:05 +0000)
committerStephan Köhler <s.koehler@linet-services.de>
Fri, 23 Sep 2005 14:05:08 +0000 (14:05 +0000)
-Wenn manuell eingespielt vorher makesymlinks und locales.pl ausführen!
-Auswahl über Programm->Benutzereinstellungen "Setup Menu" New/Old,
dann ab- und neuanmelden.
-Die Auswahl im der Adminmaske funktioniert noch nicht!

SL/Menu.pm
SL/User.pm
bin/mozilla/am.pl
bin/mozilla/login.pl
bin/mozilla/menunew.pl [new file with mode: 0644]
locale/de/all
locale/de/am
locale/de/locales.pl
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 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..9f7d53c
--- /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, 140, 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 = 20 + length($label) * 5;
+        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, 160, 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 756192e..c3b25cc 100644 (file)
@@ -297,7 +297,6 @@ $self{texts} = {
   'Edit Warehouse'              => 'Lager bearbeiten',
   'Employee'                    => 'Bearbeiter',
   'Enforce transaction reversal for all dates' => 'Gegenbuchungen für jeden Zeitraum aktualisieren',
   'Edit Warehouse'              => 'Lager bearbeiten',
   'Employee'                    => 'Bearbeiter',
   'Enforce transaction reversal for all dates' => 'Gegenbuchungen für jeden Zeitraum aktualisieren',
-  'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; Ihre eigene LandesWährung zuerst (z.B. EUR:USD:CAD)',
   'Equity'                      => 'Passiva',
   'Exch'                        => 'Wechselkurs.',
   'Exchangerate'                => 'Wechselkurs',
   'Equity'                      => 'Passiva',
   'Exch'                        => 'Wechselkurs.',
   'Exchangerate'                => 'Wechselkurs',
@@ -634,6 +633,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',
index 82d698b..0af0305 100644 (file)
@@ -64,7 +64,6 @@ $self{texts} = {
   'Edit Template'               => 'Vorlage bearbeiten',
   'Edit Warehouse'              => 'Lager bearbeiten',
   'Enforce transaction reversal for all dates' => 'Gegenbuchungen für jeden Zeitraum aktualisieren',
   'Edit Template'               => 'Vorlage bearbeiten',
   'Edit Warehouse'              => 'Lager bearbeiten',
   'Enforce transaction reversal for all dates' => 'Gegenbuchungen für jeden Zeitraum aktualisieren',
-  'Enter up to 3 letters separated by a colon (i.e CAD:USD:EUR) for your native and foreign currencies' => 'Durch Doppelpunkte getrennte Währungskürzel mit maximal 3 Buchstaben aufführen; Ihre eigene LandesWährung zuerst (z.B. EUR:USD:CAD)',
   'Equity'                      => 'Passiva',
   'Expense'                     => 'Aufwandskonto',
   'Expense Account'             => 'Aufwandskonto',
   'Equity'                      => 'Passiva',
   'Expense'                     => 'Aufwandskonto',
   'Expense Account'             => 'Aufwandskonto',
@@ -117,6 +116,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 8981e5a..0d251c0 100755 (executable)
@@ -62,7 +62,13 @@ foreach $file (@progfiles) {
       &scanmenu("$basedir/$item");
     }
   }
       &scanmenu("$basedir/$item");
     }
   }
-  
+
+  if ($file eq 'menunew.pl') {
+    foreach $item (@menufiles) {
+      &scanmenu("$basedir/$item");
+    }
+  }
+
   $file =~ s/\.pl//;
 
 
   $file =~ s/\.pl//;
 
 
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