Altes CSS menü wg. Probleme mit Opera wiederhergestellt.
authorHolger Lindemann <hli@lx-system.de>
Wed, 22 Jul 2009 12:18:17 +0000 (14:18 +0200)
committerHolger Lindemann <hli@lx-system.de>
Wed, 22 Jul 2009 12:18:17 +0000 (14:18 +0200)
Neues CSS als menuv4 eingefügt. JS alt entfernt.

16 files changed:
bin/mozilla/admin.pl [changed mode: 0644->0755]
bin/mozilla/login.pl
bin/mozilla/menuv3.pl
bin/mozilla/menuv4.pl [new file with mode: 0644]
css/menuv3.css
css/menuv4.css [new file with mode: 0644]
locale/de/all
locale/de/menuv4 [new file with mode: 0644]
macscan/bdv.sql [new file with mode: 0644]
menuv4.pl [new symlink]
templates/webpages/admin/edit_user_de.html
templates/webpages/admin/edit_user_master.html
templates/webpages/am/config_de.html
templates/webpages/am/config_master.html
templates/webpages/menu/menuv4_de.html [new file with mode: 0644]
templates/webpages/menu/menuv4_master.html [new file with mode: 0644]

old mode 100644 (file)
new mode 100755 (executable)
index 0d49058..22c37bf 100644 (file)
@@ -137,7 +137,7 @@ sub login {
 
   my %style_to_script_map = ( 'v3'  => 'v3',
                               'neu' => 'new',
-                              'js' => 'js',
+                              'v4' => 'v4',
                               'xml' => 'XML',
     );
 
index a2b2669..c2fef5d 100644 (file)
@@ -116,11 +116,7 @@ sub print_menu {
         $html .= qq|<li><div class="x">${menu_text}</div><ul>${h}</ul></li>\n|;
       }
     } else {
-      if ($depth>1) {
-      $html .= qq|<li class='sub'>|;
-      } else {
       $html .= qq|<li>|;
-      }
       $html .= $menu->menuitem_v3(\%myconfig, $form, "${parent}$item",
                                   { "title" => $menu_title,
                                     "target" => $target });
diff --git a/bin/mozilla/menuv4.pl b/bin/mozilla/menuv4.pl
new file mode 100644 (file)
index 0000000..ffe3e82
--- /dev/null
@@ -0,0 +1,132 @@
+#=====================================================================
+# 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
+#
+#######################################################################
+
+$menufile = "menu.ini";
+use SL::Menu;
+
+1;
+
+# end of main
+
+sub display {
+  $form->header(qq|<link rel="stylesheet" href="css/menuv4.css?id=" type="text/css">|);
+
+  $form->{date} = clock_line();
+  $form->{menu} = acc_menu();
+
+  print $form->parse_html_template("menu/menuv4");
+
+}
+
+sub clock_line {
+  my ($Sekunden, $Minuten,   $Stunden,   $Monatstag, $Monat,
+      $Jahr,     $Wochentag, $Jahrestag, $Sommerzeit)
+    = 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");
+  return
+      $Wochentage[$Wochentag] . ", der "
+    . $Monatstag . "."
+    . $Monat . "."
+    . $Jahr . " - ";
+}
+
+sub acc_menu {
+  $locale = Locale->new($language, "menu");
+
+  $mainlevel = $form->{level};
+  $mainlevel =~ s/\Q$mainlevel\E--//g;
+  my $menu = new Menu "$menufile";
+
+  $| = 1;
+
+  return print_menu($menu);
+}
+
+sub print_menu {
+  my ($menu, $parent, $depth) = @_;
+  my $html;
+
+  die if ($depth * 1 > 5);
+
+  my @menuorder;
+
+  @menuorder = $menu->access_control(\%myconfig, $parent);
+
+  $parent .= "--" if ($parent);
+
+  foreach my $item (@menuorder) {
+    substr($item, 0, length($parent)) = "";
+    next if (($item eq "") || ($item =~ /--/));
+
+    my $menu_item = $menu->{"${parent}${item}"};
+    my $menu_title = $locale->text($item);
+    my $menu_text = $menu_title;
+
+    my $target = "main_window";
+    $target = $menu_item->{"target"} if ($menu_item->{"target"});
+
+    if ($menu_item->{"submenu"} || !defined($menu_item->{"module"}) ||
+        ($menu_item->{"module"} eq "menu.pl")) {
+
+      my $h = print_menu($menu, "${parent}${item}", $depth * 1 + 1)."\n";
+      if (!$parent) {
+        $html .= qq|<ul><li><h2>${menu_text}</h2><ul>${h}</ul></li></ul>\n|;
+      } else {
+        $html .= qq|<li><div class="x">${menu_text}</div><ul>${h}</ul></li>\n|;
+      }
+    } else {
+      if ($depth>1) {
+      $html .= qq|<li class='sub'>|;
+      } else {
+      $html .= qq|<li>|;
+      }
+      $html .= $menu->menuitem_v3(\%myconfig, $form, "${parent}$item",
+                                  { "title" => $menu_title,
+                                    "target" => $target });
+      $html .= qq|${menu_text}</a></li>\n|;
+    }
+  }
+
+  return $html;
+}
index 4068de3..ae7ef33 100644 (file)
@@ -22,15 +22,9 @@ margin:0;
 padding:1px 0 1px 3px;
 }
 
-#menu h2:before {
-    content:" ";
-}
-#menu h2:after {
-    content:" "; 
-}
 #menu h2 {
 color:#fff;
-padding:2 15px
+padding:0 5px;
 }
 
 #menu a, #menu a:visited, #menu div.x, #menu div.x:visited {
@@ -42,6 +36,7 @@ padding-right:10px;
 #menu a {
 background:#eee;
 }
+
 #menu div.x, #menu div.x:visited {
 background:#eee url(../image/right.gif) no-repeat right;
 }
@@ -61,6 +56,7 @@ list-style:none;
 margin:0;
 padding:0;
 float:left;
+min-width:7em;
 }
 
 #menu li {
@@ -69,12 +65,6 @@ float:none;
 border:0;
 }
 
-li.sub {
-position:relativ;
-left:-25px;
-top:-3px;
-}
-
 /* IE6 spacing bug fix, <li>s without a bottom border get spaced to far 
  * correction: the bug will change the height of the parent element! this will also cause the whole menu to grow 
  * so the only method to get this pile of crap going is to add a bottom border to the <li>s, where the enclosing <ul> already has
@@ -98,11 +88,13 @@ position:absolute;
 z-index:500;
 top:auto;
 display:none;
+background:#000;
 }
 
 #menu ul ul ul {
 top:0;
 left:100%;
+background:#000;
 }
 
 /* Begin non-anchor hover selectors */
@@ -133,7 +125,7 @@ div#menu li:hover ul,
 div#menu li li:hover ul,
 div#menu li li li:hover ul,
 div#menu li li li li:hover ul
-{display:block; position:relativ: left:10px;}
+{display:block;}
 
 /* End of non-anchor hover selectors */
 
diff --git a/css/menuv4.css b/css/menuv4.css
new file mode 100644 (file)
index 0000000..2fdd7ce
--- /dev/null
@@ -0,0 +1,140 @@
+body {
+behavior:url("css/csshover.htc");
+}
+
+#menu {
+width:99.8%;
+float:left;
+background:url(../image/bg_css_menu.png) repeat bottom;
+border:1px solid;
+border-color:#ccc #888 #555 #bbb;
+}
+
+#menu a, #menu h2, #menu div.x {
+font:11px/16px arial,helvetica,sans-serif;
+display:block;
+border:0;
+border-right:1px;
+border-style:solid;
+border-color:#ccc #888 #555 #bbb;
+white-space:nowrap;
+margin:0;
+padding:1px 0 1px 3px;
+}
+
+#menu h2:before {
+    content:" ";
+}
+#menu h2:after {
+    content:" "; 
+}
+#menu h2 {
+color:#fff;
+padding:2 15px
+}
+
+#menu a, #menu a:visited, #menu div.x, #menu div.x:visited {
+color:#000;
+text-decoration:none;
+padding-right:10px;
+}
+
+#menu a {
+background:#eee;
+}
+#menu div.x, #menu div.x:visited {
+background:#eee url(../image/right.gif) no-repeat right;
+}
+
+#menu a:hover, #menu div.x:hover {
+color:#a00;
+background-color:#ddd;
+}
+
+#menu a:active, #menu div.x:active {
+color:#060;
+background-color:#ccc;
+}
+
+#menu ul {
+list-style:none;
+margin:0;
+padding:0;
+float:left;
+}
+
+#menu li {
+position:relative;
+float:none;
+border:0;
+}
+
+li.sub {
+position:relativ;
+left:-25px;
+top:-3px;
+}
+
+/* IE6 spacing bug fix, <li>s without a bottom border get spaced to far 
+ * correction: the bug will change the height of the parent element! this will also cause the whole menu to grow 
+ * so the only method to get this pile of crap going is to add a bottom border to the <li>s, where the enclosing <ul> already has
+ * a bottom border, which just looks ugly
+ * the trick: color the bottom border with the same color as the bottom pixel of the background image - noone notices */
+#menu ul li {
+border:solid;
+border-color:#ccd5e5;
+border-width:0 0 1px 0;
+}
+
+#menu ul ul li {
+border:solid;
+border-width:0 0 1px 0;
+}
+
+/* IE6 event bug fix, without a background there hovers will be occassionally lost between the li's to the layer below 
+ * causing the menu to close. Opera 9 has the same bug btw. */
+#menu ul ul {
+position:absolute;
+z-index:500;
+top:auto;
+display:none;
+}
+
+#menu ul ul ul {
+top:0;
+left:100%;
+}
+
+/* Begin non-anchor hover selectors */
+
+/* Enter the more specific element (div) selector
+on non-anchor hovers for IE5.x to comply with the
+older version of csshover.htc - V1.21.041022. It
+improves IE's performance speed to use the older
+file and this method */
+
+div#menu h2:hover {
+background:#A3C5FF;
+color:#a00;
+}
+
+div#menu li:hover {
+cursor:pointer;
+z-index:100;
+}
+
+div#menu li:hover ul ul,
+div#menu li li:hover ul ul,
+div#menu li li li:hover ul ul,
+div#menu li li li li:hover ul ul
+{display:none;}
+
+div#menu li:hover ul,
+div#menu li li:hover ul,
+div#menu li li li:hover ul,
+div#menu li li li li:hover ul
+{display:block; position:relativ: left:10px;}
+
+/* End of non-anchor hover selectors */
+
+
index ee987ca..cc87cd8 100644 (file)
@@ -102,6 +102,9 @@ $self->{texts} = {
   'Active?'                     => 'Aktiviert?',
   'Add'                         => 'Erfassen',
   'Add '                        => 'Hinzufügen',
+  'Add (Customers and Vendors)' => '',
+  'Add (Parts, services, assemblies)' => '',
+  'Add (Projects)'              => '',
   'Add AP Transaction'          => 'Kreditorenbuchung',
   'Add AR Transaction'          => 'Debitorenbuchung',
   'Add Account'                 => 'Konto erfassen',
@@ -152,6 +155,7 @@ $self->{texts} = {
   'Add to group'                => 'Zu Gruppe hinzufügen',
   'Add unit'                    => 'Einheit hinzuf&uuml;gen',
   'Address'                     => 'Adresse',
+  'Admin'                       => '',
   'Administration'              => 'Administration',
   'Administration area'         => 'Administrationsbereich',
   'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
@@ -211,6 +215,7 @@ $self->{texts} = {
   'Attachment name'             => 'Name des Anhangs',
   'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
   'Audit Control'               => 'Bücherkontrolle',
+  'Auftragschance'              => '',
   'Aug'                         => 'Aug',
   'August'                      => 'August',
   'Authentification database creation' => 'Anlegen der Datenbank zur Benutzerauthentifizierung',
@@ -239,9 +244,11 @@ $self->{texts} = {
   'Batch Printing'              => 'Druck',
   'Bcc'                         => 'Bcc',
   'Belegnummer'                 => 'Buchungsnummer',
+  'Benutzer'                    => '',
   'Beratername'                 => 'Beratername',
   'Beraternummer'               => 'Beraternummer',
   'Bestandskonto'               => 'Bestandskonto',
+  'Bestellungen'                => '',
   'Bilanz'                      => 'Bilanz',
   'Billing Address'             => 'Rechnungsadresse',
   'Billing/shipping address (city)' => 'Rechnungsadresse (Stadt)',
@@ -276,6 +283,7 @@ $self->{texts} = {
   'CANCELED'                    => 'Storniert',
   'CB Transaction'              => 'SB-Buchung',
   'CR'                          => 'H',
+  'CRM'                         => '',
   'CRM admin'                   => 'Administration',
   'CRM create customers, vendors and contacts' => 'Erfassen (Kunden, Lieferanten, Personen)',
   'CRM follow up'               => 'Wiedervorlage',
@@ -536,6 +544,7 @@ $self->{texts} = {
   'Do you want to carry this shipping address over to the new purchase order so that the vendor can deliver the goods directly to your customer?' => 'Wollen Sie diese Lieferadresse in den neuen Lieferantenauftrag &uuml;bernehmen, damit der H&auml;ndler die Waren direkt an Ihren Kunden liefern kann?',
   'Do you want to store the existing onhand values into a new warehouse?' => 'M&ouml;chten Sie die vorhandenen Mengendaten in ein Lager &uuml;bertragen?',
   'Documents in the WebDAV repository' => 'Dokumente im WebDAV-Repository',
+  'Dokumentvorlage'             => '',
   'Done'                        => 'Fertig',
   'Download the backup'         => 'Die Sicherungsdatei herunterladen',
   'Draft saved.'                => 'Entwurf gespeichert.',
@@ -658,6 +667,7 @@ $self->{texts} = {
   'Ertrag'                      => 'Ertrag',
   'Ertrag prozentual'           => 'Ertrag prozentual',
   'Escape character'            => 'Escape-Zeichen',
+  'Etiketten'                   => '',
   'Exact'                       => 'Genau',
   'Exch'                        => 'Wechselkurs.',
   'Exchangerate'                => 'Wechselkurs',
@@ -746,6 +756,7 @@ $self->{texts} = {
   'Group missing!'              => 'Warengruppe fehlt!',
   'Group saved!'                => 'Warengruppe gespeichert!',
   'Groups'                      => 'Warengruppen',
+  'Gruppen'                     => '',
   'HTML'                        => 'HTML',
   'HTML Templates'              => 'HTML-Vorlagen',
   'Header'                      => 'Überschrift',
@@ -753,6 +764,7 @@ $self->{texts} = {
   'Help'                        => 'Hilfe',
   'Here\'s an example command line:' => 'Hier ist eine Kommandozeile, die als Beispiel dient:',
   'Hide by default'             => 'Standardm&auml;&szlig;ig verstecken',
+  'Hilfe'                       => '',
   'History'                     => 'Historie',
   'History Search'              => 'Historien Suche',
   'History Search Engine'       => 'Historien Suchmaschine',
@@ -849,8 +861,10 @@ $self->{texts} = {
   'KNE-Export erfolgreich!'     => 'KNE-Export erfolgreich!',
   'KNr. beim Kunden'            => 'KNr. beim Kunden',
   'Keine Suchergebnisse gefunden!' => 'Keine Suchergebnisse gefunden!',
+  'Konfiguration'               => '',
   'Konten'                      => 'Konten',
   'Kontonummernerweiterung (KNE)' => 'Kontonummernerweiterung (KNE)',
+  'Kunden'                      => '',
   'L'                           => 'L',
   'LIABILITIES'                 => 'PASSIVA',
   'LP'                          => 'LP',
@@ -884,11 +898,14 @@ $self->{texts} = {
   'License key'                 => 'Lizenzschlüssel',
   'Licensed to'                 => 'Lizenziert für',
   'Licenses'                    => 'Lizenzen',
+  'Lieferant'                   => '',
   'Lieferungen'                 => 'Lieferungen',
   'Limit part selection'        => 'Artikelauswahl eingrenzen',
   'Line Total'                  => 'Zeilensumme',
   'Line endings'                => 'Zeilenumbr&uuml;che',
-  'List'                        => 'Anzeigen',
+  'List (Customers and Vendors)' => '',
+  'List (Parts, services, assemblies)' => '',
+  'List (Projects)'             => '',
   'List Accounting Groups'      => 'Buchungsgruppen anzeigen',
   'List Accounts'               => 'Konten anzeigen',
   'List Businesses'             => 'Kunden-/Lieferantentypen anzeigen',
@@ -924,6 +941,7 @@ $self->{texts} = {
   'Lx-Office is about to update the database <b>[% HTML.escape(dbname) %]</b>. You should create a backup of the database before proceeding because the backup might not be reversible.' => 'Lx-Office wird gleich die Datenbank <b>[% HTML.escape(dbname) %]</b> aktualisieren. Sie sollten eine Sicherungskopie der Datenbank erstellen, bevor Sie fortfahren, da die Aktualisierung unter Umst&auml;nden nicht umkehrbar ist.',
   'Lx-Office is now able to manage warehouses instead of just tracking the amount of goods in your system.' => 'Lx-Office enth&auml;lt jetzt auch echte Lagerverwaultung anstatt reiner Mengenz&auml;hlung.',
   'Lx-Office website'           => 'Lx-Office-Webseite',
+  'MACSCAN'                     => '',
   'MAILED'                      => 'Gesendet',
   'MSG_BROWSER_DOES_NOT_SUPPORT_IFRAMES' => 'Ihr Browser kann leider keine eingebetteten Frames anzeigen. Bitte w&auml;hlen Sie ein anderes Men&uuml; in der Benutzerkonfiguration im Administrationsmen&uuml; aus.',
   'Main Preferences'            => 'Grundeinstellungen',
@@ -937,6 +955,8 @@ $self->{texts} = {
   'Mark closed'                 => 'Schließen',
   'Marked as paid'              => 'Als bezahlt markiert',
   'Marked entries printed!'     => 'Markierte Einträge wurden gedruckt!',
+  'Maschinen'                   => '',
+  'Maschinen erfassen'          => '',
   'Master Data'                 => 'Stammdaten',
   'Max. Dunning Level'          => 'höchste Mahnstufe',
   'May'                         => 'Mai',
@@ -957,6 +977,7 @@ $self->{texts} = {
   'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
   'Missing parameter (at least one of #1) in call to sub #2.' => 'Fehlernder Parameter (mindestens einer aus \'#1\') in Funktionsaufruf \'#2\'.',
   'Mitarbeiter'                 => 'Mitarbeiter',
+  'Mitteilungen'                => '',
   'Mobile1'                     => 'Mobile 1',
   'Mobile2'                     => 'Mobile 2',
   'Model'                       => 'Lieferanten-Art-Nr.',
@@ -1030,6 +1051,7 @@ $self->{texts} = {
   'Nothing has been selected for transfer.' => 'Es wurde nichts zum Umlagern ausgew&auml;hlt.',
   'Nothing selected!'           => 'Es wurde nichts ausgewählt!',
   'Nothing to delete!'          => 'Es konnte nichts gelöscht werden!',
+  'Notizen'                     => '',
   'Nov'                         => 'Nov',
   'November'                    => 'November',
   'Now the user must select a single Buchungsgruppe for each part instead of three distinct accounts.' => 'Der Benutzer muss nun f&uuml;r jeden Artikel nur noch die Buchungsgruppe anstelle der drei einzelnen Konten ausw&auml;hlen.',
@@ -1117,6 +1139,7 @@ $self->{texts} = {
   'Period'                      => 'Zeitraum',
   'Period:'                     => 'Zeitraum:',
   'Personal settings'           => 'Pers&ouml;nliche Einstellungen',
+  'Personen'                    => '',
   'Pg Database Administration'  => 'Datenbankadministration',
   'Phone'                       => 'Telefon',
   'Phone1'                      => 'Telefon 1 ',
@@ -1311,6 +1334,7 @@ $self->{texts} = {
   'Save as new'                 => 'als neu speichern',
   'Save draft'                  => 'Entwurf speichern',
   'Saving the file \'%s\' failed. OS error message: %s' => 'Das Speichern der Datei \'%s\' schlug fehl. Fehlermeldung des Betriebssystems: %s',
+  'Schnellsuche'                => '',
   'Screen'                      => 'Bildschirm',
   'Searchable'                  => 'Durchsuchbar',
   'Select'                      => 'auswählen',
@@ -1356,6 +1380,7 @@ $self->{texts} = {
   'Shipping Address'            => 'Lieferadresse',
   'Shipping Point'              => 'Versandort',
   'Shipto'                      => 'Lieferanschriften',
+  'Shop'                        => '',
   'Shopartikel'                 => 'Shopartikel',
   'Short'                       => 'Knapp',
   'Show'                        => 'Zeigen',
@@ -1373,6 +1398,7 @@ $self->{texts} = {
   'Skonto Terms'                => 'Zahlungsziel Skonto',
   'Sold'                        => 'Verkauft',
   'Solution'                    => 'Lösung',
+  'Sonderflag'                  => '',
   'Source'                      => 'Beleg',
   'Source bin'                  => 'Quelllagerplatz',
   'Spoolfile'                   => 'Druckdatei',
@@ -1385,6 +1411,7 @@ $self->{texts} = {
   'Statement Balance'           => 'Sammelrechnungsbilanz',
   'Statement sent to'           => 'Sammelrechnung verschickt an',
   'Statements sent to printer!' => 'Sammelrechnungen an Drucker geschickt!',
+  'Status'                      => '',
   'Step 1 of 3: Parts'          => 'Schritt 1 von 3: Waren',
   'Step 2 of 3: Services'       => 'Schritt 2 von 3: Dienstleistungen',
   'Step 3 of 3: Assemblies'     => 'Schritt 3 von 3: Erzeugnisse',
@@ -1451,6 +1478,7 @@ $self->{texts} = {
   'Template Code missing!'      => 'Vorlagenkürzel fehlt!',
   'Template database'           => 'Datenbankvorlage',
   'Templates'                   => 'Vorlagen',
+  'Termine'                     => '',
   'Terms missing in row '       => '+Tage fehlen in Zeile ',
   'Test connection'             => 'Verbindung testen',
   'Text field'                  => 'Textfeld',
@@ -1610,8 +1638,8 @@ $self->{texts} = {
   '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&uuml;gen, &auml;ndern und speichern Sie am einfachsten einen bestehen den Zugriffsnamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
   'Top'                         => 'Oben',
   'Top (CSS)'                   => 'Oben (mit CSS)',
+  'Top (CSS) new'               => '',
   'Top (Javascript)'            => 'Oben (mit Javascript)',
-  'Top (Javascript) old'        => 'Oben (mit Javascript) alt',
   'Top (XUL; only for Mozilla Firefox)' => 'Oben (XUL; nur f&uuml;r Mozilla Firefox)',
   'Top 100'                     => 'Top 100',
   'Top 100 hinzufuegen'         => 'Top 100 hinzufügen',
@@ -1724,12 +1752,17 @@ $self->{texts} = {
   'Warehouse management'        => 'Lagerverwaltung/Bestandsveränderung',
   'Warehouse saved.'            => 'Lager gespeichert.',
   'Warehouses'                  => 'Lager',
+  'Warenexport'                 => '',
   'Warnings during template upgrade' => 'Warnungen bei Aktualisierung der Dokumentenvorlagen',
+  'Wartungsvertrag'             => '',
+  'Wartungsvertrag erfassen'    => '',
   'WebDAV link'                 => 'WebDAV-Link',
   'Weight'                      => 'Gewicht',
   'Weight unit'                 => 'Gewichtseinheit',
   'What type of item is this?'  => 'Was ist dieser Artikel?',
   'What\'s the <b>term</b> you\'re looking for?' => 'Nach welchem <b>Begriff</b> wollen Sie suchen?',
+  'Wiedervorlage'               => '',
+  'Wissens-DB'                  => '',
   'With Extension Of Time'      => 'mit Dauerfristverlängerung',
   'Workflow Delivery Order'     => 'Workflow Lieferschein',
   'Workflow purchase_order'     => 'Workflow Lieferantenauftrag',
@@ -1821,10 +1854,12 @@ $self->{texts} = {
   'down'                        => 'runter',
   'drucken'                     => 'drucken',
   'dunning_list'                => 'mahnungsliste',
+  'eMail'                       => '',
   'eMail Send?'                 => 'eMail-Versand?',
   'eMail?'                      => 'eMail?',
   'ea'                          => 'St.',
   'emailed to'                  => 'gemailt an',
+  'erfassen'                    => '',
   'female'                      => 'weiblich',
   'follow_up_list'              => 'wiedervorlageliste',
   'for'                         => 'f&uuml;r',
diff --git a/locale/de/menuv4 b/locale/de/menuv4
new file mode 100644 (file)
index 0000000..1e2fdc9
--- /dev/null
@@ -0,0 +1,91 @@
+#!/usr/bin/perl
+
+$self->{texts} = {
+  'A temporary file could not be created. Please verify that the directory "#1" is writeable by the webserver.' => 'Eine temporäre Datei konnte nicht angelegt werden. Bitte stellen Sie sicher, dass das Verzeichnis "#1" vom Webserver beschrieben werden darf.',
+  'AP'                          => 'Einkauf',
+  'AR'                          => 'Verkauf',
+  'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
+  'All reports'                 => 'Alle Berichte (Konten&uuml;bersicht, Summen- u. Saldenliste, GuV, BWA, Bilanz, Projektbuchungen)',
+  'Bcc'                         => 'Bcc',
+  'Binding to the LDAP server as "#1" failed. Please check config/authentication.pl.' => 'Die Anmeldung am LDAP-Server als "#1" schlug fehl. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
+  'CRM admin'                   => 'Administration',
+  'CRM create customers, vendors and contacts' => 'Erfassen (Kunden, Lieferanten, Personen)',
+  'CRM follow up'               => 'Wiedervorlage',
+  'CRM know how'                => 'Wissens DB',
+  'CRM notices'                 => 'Notizen',
+  'CRM opportunity'             => 'Auftragschance',
+  'CRM optional software'       => 'CRM optionale Software',
+  'CRM other'                   => 'alles Andere',
+  'CRM search'                  => 'Adresssuche',
+  'CRM send email'              => 'eMail',
+  'CRM services'                => 'Dienstleistung',
+  'CRM status'                  => 'Admin Stautus',
+  'CRM termin'                  => 'Termine',
+  'CRM user'                    => 'Admin Benutzer',
+  'Cc'                          => 'Cc',
+  'Change Lx-Office installation settings (all menu entries beneath \'System\')' => 'Ver&auml;ndern der Lx-Office-Installationseinstellungen (Men&uuml;punkte unterhalb von \'System\')',
+  'Create and edit RFQs'        => 'Lieferantenanfragen erfassen und bearbeiten',
+  'Create and edit customers and vendors' => 'Kunden und Lieferanten erfassen und bearbeiten',
+  'Create and edit dunnings'    => 'Mahnungen erfassen und bearbeiten',
+  'Create and edit invoices and credit notes' => 'Rechnungen und Gutschriften erfassen und bearbeiten',
+  'Create and edit parts, services, assemblies' => 'Artikel, Dienstleistungen, Erzeugnisse erfassen und bearbeiten',
+  'Create and edit projects'    => 'Projekte erfassen und bearbeiten',
+  'Create and edit purchase delivery orders' => 'Lieferscheine von Lieferanten erfassen und bearbeiten',
+  'Create and edit purchase orders' => 'Lieferantenauftr&auml;ge erfassen und bearbeiten',
+  'Create and edit sales delivery orders' => 'Lieferscheine f&uuml;r Kunden erfassen und bearbeiten',
+  'Create and edit sales orders' => 'Auftragsbest&auml;tigungen erfassen und bearbeiten',
+  'Create and edit sales quotations' => 'Angebote erfassen und bearbeiten',
+  'Create and edit vendor invoices' => 'Eingangsrechnungen erfassen und bearbeiten',
+  'DATEV Export'                => 'DATEV-Export',
+  'Dataset upgrade'             => 'Datenbankaktualisierung',
+  'Date'                        => 'Datum',
+  'Dependency loop detected:'   => 'Schleife in den Abh&auml;ngigkeiten entdeckt:',
+  'Directory'                   => 'Verzeichnis',
+  'Error in database control file \'%s\': %s' => 'Fehler in Datenbankupgradekontrolldatei \'%s\': %s',
+  'File'                        => 'Datei',
+  'General ledger and cash'     => 'Finanzbuchhaltung und Zahlungsverkehr',
+  'Manage license keys'         => 'Lizenzschl&uuml;ssel verwalten',
+  'Master Data'                 => 'Stammdaten',
+  'May set the BCC field when sending emails' => 'Beim Verschicken von Emails das Feld \'BCC\' setzen',
+  'Message'                     => 'Nachricht',
+  'Missing \'description\' field.' => 'Fehlendes Feld \'description\'.',
+  'Missing \'tag\' field.'      => 'Fehlendes Feld \'tag\'.',
+  'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
+  'Missing parameter (at least one of #1) in call to sub #2.' => 'Fehlernder Parameter (mindestens einer aus \'#1\') in Funktionsaufruf \'#2\'.',
+  'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
+  'No or an unknown authenticantion module specified in "config/authentication.pl".' => 'Es wurde kein oder ein unbekanntes Authentifizierungsmodul in "config/authentication.pl" angegeben.',
+  'Others'                      => 'Andere',
+  'Receipt, payment, reconciliation' => 'Zahlungseingang, Zahlungsausgang, Kontenabgleich',
+  'Reports'                     => 'Berichte',
+  'Subject'                     => 'Betreff',
+  'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
+  'The LDAP server "#1:#2" is unreachable. Please check config/authentication.pl.' => 'Der LDAP-Server "#1:#2" ist nicht erreichbar. Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
+  'The config file "config/authentication.pl" contained invalid Perl code:' => 'Die Konfigurationsdatei "config/authentication.pl" enthielt ung&uuml;tigen Perl-Code:',
+  'The config file "config/authentication.pl" was not found.' => 'Die Konfigurationsdatei "config/authentication.pl" wurde nicht gefunden.',
+  'The connection to the LDAP server cannot be encrypted (SSL/TLS startup failure). Please check config/authentication.pl.' => 'Die Verbindung zum LDAP-Server kann nicht verschl&uuml;sselt werden (Fehler bei SSL/TLS-Initialisierung). Bitte &uuml;berpr&uuml;fen Sie die Angaben in config/authentication.pl.',
+  'The connection to the authentication database failed:' => 'Die Verbindung zur Authentifizierungsdatenbank schlug fehl:',
+  'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
+  'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
+  'To (email)'                  => 'An',
+  'Transactions, AR transactions, AP transactions' => 'Dialogbuchen, Debitorenrechnungen, Kreditorenrechnungen',
+  'Unknown dependency \'%s\'.'  => 'Unbekannte Abh&auml;ngigkeit \'%s\'.',
+  'View warehouse content'      => 'Lagerbestand ansehen',
+  'Warehouse management'        => 'Lagerverwaltung/Bestandsveränderung',
+  'You do not have the permissions to access this function.' => 'Sie verf&uuml;gen nicht &uuml;ber die notwendigen Rechte, um auf diese Funktion zuzugreifen.',
+  'Your PostgreSQL installationen uses UTF-8 as its encoding. Therefore you have to configure Lx-Office to use UTF-8 as well.' => 'Ihre PostgreSQL-Installation benutzt UTF-8 als Zeichensatz. Sie müssen deshalb Lx-Office so konfigurieren, dass es ebenfalls UTF-8 als Zeichensatz benutzt.',
+  '[email]'                     => '[email]',
+  'config/authentication.pl: Key "DB_config" is missing.' => 'config/authentication.pl: Das Schl&uuml;sselwort "DB_config" fehlt.',
+  'config/authentication.pl: Key "LDAP_config" is missing.' => 'config/authentication.pl: Der Schl&uuml;ssel "LDAP_config" fehlt.',
+  'config/authentication.pl: Missing parameters in "DB_config". Required parameters are "host", "db" and "user".' => 'config/authentication.pl: Fehlende Parameter in "DB_config". Ben&ouml;tigte Parameter sind "host", "db" und "user".',
+  'config/authentication.pl: Missing parameters in "LDAP_config". Required parameters are "host", "attribute" and "base_dn".' => 'config/authentication.pl: Fehlende Parameter in "LDAP_config". Ben&ouml;tigt werden "host", "attribute" und "base_dn".',
+};
+
+$self->{subs} = {
+  'acc_menu'                    => 'acc_menu',
+  'clock_line'                  => 'clock_line',
+  'display'                     => 'display',
+  'print_menu'                  => 'print_menu',
+  'weiter'                      => 'continue',
+};
+
+1;
diff --git a/macscan/bdv.sql b/macscan/bdv.sql
new file mode 100644 (file)
index 0000000..07f915a
--- /dev/null
@@ -0,0 +1,18 @@
+COPY custom_variable_configs (id, name, description, type, module, default_value, options, searchable, includeable, included_by_default, sortkey, itime, mtime, flags) FROM stdin;
+1   Testvar Ein Test    text    CT          f   f   f   1   2009-05-26 15:39:20.45002   \N  \N
+6   ICAO_LDG    DEST    text    IC          t   t   f   4   2009-07-02 20:58:55.844121  2009-07-06 15:38:48.508868  editable=1
+3   DEP DEP text    IC  Startort        t   t   f   3   2009-06-30 15:39:34.078988  2009-07-06 15:38:53.161427  editable=1
+7   bool    bool    bool    CT  1       t   t   f   6   2009-07-05 19:05:08.463692  \N
+16  INDEX   Index   text    IC          t   t   f   2   2009-07-06 15:38:23.081605  2009-07-06 15:38:53.161427  editable=1
+14  PILOT   Pilot   text    IC          t   t   f   5   2009-07-06 14:22:03.488833  2009-07-06 15:46:31.835116  editable=1
+4   PILOT2  2.Pilot text    IC          t   t   f   7   2009-07-02 20:58:18.262238  2009-07-06 15:46:41.764174  editable=1
+5   RULES   Rules   select  IC  IFR IFR##VFR    t   t   f   8   2009-07-02 20:58:34.638175  2009-07-06 18:14:53.256683  editable=1
+15  LDG LDG text    IC          t   t   f   15  2009-07-06 15:36:18.309392  2009-07-06 15:38:28.763417  editable=1
+13  BLK TFT text    IC          t   t   f   14  2009-07-06 14:21:47.575732  2009-07-06 15:38:30.816017  editable=1
+12  TA2 ABT text    IC          t   t   f   13  2009-07-06 14:21:33.786458  2009-07-06 15:38:32.480749  editable=1
+11  TA1 AOBT    text    IC          t   t   f   12  2009-07-06 14:21:17.440972  2009-07-06 15:38:34.237022  editable=1
+10  FT  TTA text    IC          t   t   f   11  2009-07-06 14:21:01.253932  2009-07-06 15:38:35.828773  editable=1
+9   LA  ATA text    IC          t   t   f   10  2009-07-06 14:20:45.866457  2009-07-06 15:38:38.069121  editable=1
+8   TO  ATD text    IC          t   t   f   9   2009-07-06 14:20:31.601538  2009-07-06 15:38:40.393254  editable=1
+\.
+
diff --git a/menuv4.pl b/menuv4.pl
new file mode 120000 (symlink)
index 0000000..385000d
--- /dev/null
+++ b/menuv4.pl
@@ -0,0 +1 @@
+am.pl
\ No newline at end of file
index 7ab8788..be71f4f 100644 (file)
        <td>
         <select name="menustyle">
          <option value="v3"[% IF menustyle_v3 %] selected[% END %]>Oben (mit CSS)</option>
+         <option value="v4"[% IF menustyle_v4 %] selected[% END %]>Top (CSS) new</option>
          <option value="neu"[% IF menustyle_neu %] selected[% END %]>Oben (mit Javascript)</option>
-         <option value="js"[% IF menustyle_js %] selected[% END %]>Oben (mit Javascript) alt</option>
          <option value="xml"[% IF menustyle_xml %] selected[% END %]>Oben (XUL; nur f&uuml;r Mozilla Firefox)</option>
          <option value="old"[% IF menustyle_old %] selected[% END %]>Alt (seitlich)</option>
         </select>
index ef9c3b6..53187ed 100644 (file)
        <td>
         <select name="menustyle">
          <option value="v3"[% IF menustyle_v3 %] selected[% END %]><translate>Top (CSS)</translate></option>
+         <option value="v4"[% IF menustyle_v4 %] selected[% END %]><translate>Top (CSS) new</translate></option>
          <option value="neu"[% IF menustyle_neu %] selected[% END %]><translate>Top (Javascript)</translate></option>
-         <option value="js"[% IF menustyle_js %] selected[% END %]><translate>Top (Javascript) old</translate></option>
          <option value="xml"[% IF menustyle_xml %] selected[% END %]><translate>Top (XUL; only for Mozilla Firefox)</translate></option>
          <option value="old"[% IF menustyle_old %] selected[% END %]><translate>Old (on the side)</translate></option>
         </select>
index 88c24b7..2a455c9 100644 (file)
       <td>
        <select name="menustyle">
         <option value="v3"[% IF myconfig_menustyle == 'v3' %] selected[% END %]>Oben (mit CSS)</option>
+        <option value="v4"[% IF myconfig_menustyle == 'v4' %] selected[% END %]>Top (CSS) new</option>
         <option value="neu"[% IF myconfig_menustyle == 'neu' %] selected[% END %]>Oben (mit Javascript)</option>
-        <option value="js"[% IF myconfig_menustyle == 'js' %] selected[% END %]>Oben (mit Javascript) alt</option>
         <option value="xml"[% IF myconfig_menustyle == 'xml' %] selected[% END %]>Oben (XUL; nur f&uuml;r Mozilla Firefox)</option>
         <option value="old"[% IF myconfig_menustyle == 'old' %] selected[% END %]>Alt (seitlich)</option>
        </select>
index 43347ee..8b1a97f 100644 (file)
       <td>
        <select name="menustyle">
         <option value="v3"[% IF myconfig_menustyle == 'v3' %] selected[% END %]><translate>Top (CSS)</translate></option>
+        <option value="v4"[% IF myconfig_menustyle == 'v4' %] selected[% END %]><translate>Top (CSS) new</translate></option>
         <option value="neu"[% IF myconfig_menustyle == 'neu' %] selected[% END %]><translate>Top (Javascript)</translate></option>
-        <option value="js"[% IF myconfig_menustyle == 'js' %] selected[% END %]><translate>Top (Javascript) old</translate></option>
         <option value="xml"[% IF myconfig_menustyle == 'xml' %] selected[% END %]><translate>Top (XUL; only for Mozilla Firefox)</translate></option>
         <option value="old"[% IF myconfig_menustyle == 'old' %] selected[% END %]><translate>Old (on the side)</translate></option>
        </select>
diff --git a/templates/webpages/menu/menuv4_de.html b/templates/webpages/menu/menuv4_de.html
new file mode 100644 (file)
index 0000000..5c23218
--- /dev/null
@@ -0,0 +1,45 @@
+[% USE HTML %]<body style="padding:0px; margin:0px;">
+
+ <script type="text/javascript">
+<!--
+function clockon() {
+  var now = new Date();
+  var h = now.getHours();
+  var m = now.getMinutes();
+  document.getElementById('clock_id').innerHTML = (h<10?'0'+h:h)+":"+(m<10?'0'+m:m);
+  var timer=setTimeout("clockon()", 10000);
+}
+window.onload=clockon
+//-->
+ </script>
+
+ <table border="0" width="100%" background="image/bg_titel.gif" cellpadding="0" cellspacing="0">
+  <tr>
+   <td style="color:white; font-family:verdana,arial,sans-serif; font-size: 12px;">
+    &nbsp;
+    [<a href="menuv4.pl?action=display" target="_blank">neues Fenster</a>]
+    &nbsp;
+    [<a href="JavaScript:top.main_window.print()">drucken</a>]
+   </td>
+   <td align="right" style="vertical-align:middle; color:white; font-family:verdana,arial,sans-serif; font-size: 12px;" nowrap>
+    [Benutzer: [% HTML.escape(login) %] -
+    <a href="login.pl?action=logout" target="_top">abmelden</a>]
+    [% date %] <span id='clock_id' style='position:relative'></span>&nbsp;
+   </td>
+  </tr>
+ </table>
+
+
+ <div id="menu">
+
+  [% menu %]
+
+ </div>
+
+ <div style="clear: both;"></div>
+
+ <iframe id="win1" src="login.pl?action=company_logo" width="100%" height="94%" name="main_window" style="position: absolute; border: 0px; z-index: 99; ">
+  <p>Ihr Browser kann leider keine eingebetteten Frames anzeigen. Bitte w&auml;hlen Sie ein anderes Men&uuml; in der Benutzerkonfiguration im Administrationsmen&uuml; aus.</p>
+ </iframe>
+</body>
+</html>
diff --git a/templates/webpages/menu/menuv4_master.html b/templates/webpages/menu/menuv4_master.html
new file mode 100644 (file)
index 0000000..5002c48
--- /dev/null
@@ -0,0 +1,45 @@
+[% USE HTML %]<body style="padding:0px; margin:0px;">
+
+ <script type="text/javascript">
+<!--
+function clockon() {
+  var now = new Date();
+  var h = now.getHours();
+  var m = now.getMinutes();
+  document.getElementById('clock_id').innerHTML = (h<10?'0'+h:h)+":"+(m<10?'0'+m:m);
+  var timer=setTimeout("clockon()", 10000);
+}
+window.onload=clockon
+//-->
+ </script>
+
+ <table border="0" width="100%" background="image/bg_titel.gif" cellpadding="0" cellspacing="0">
+  <tr>
+   <td style="color:white; font-family:verdana,arial,sans-serif; font-size: 12px;">
+    &nbsp;
+    [<a href="menuv4.pl?action=display" target="_blank"><translate>new Window</translate></a>]
+    &nbsp;
+    [<a href="JavaScript:top.main_window.print()"><translate>print</translate></a>]
+   </td>
+   <td align="right" style="vertical-align:middle; color:white; font-family:verdana,arial,sans-serif; font-size: 12px;" nowrap>
+    [<translate>User</translate>: [% HTML.escape(login) %] -
+    <a href="login.pl?action=logout" target="_top"><translate>logout</translate></a>]
+    [% date %] <span id='clock_id' style='position:relative'></span>&nbsp;
+   </td>
+  </tr>
+ </table>
+
+
+ <div id="menu">
+
+  [% menu %]
+
+ </div>
+
+ <div style="clear: both;"></div>
+
+ <iframe id="win1" src="login.pl?action=company_logo" width="100%" height="94%" name="main_window" style="position: absolute; border: 0px; z-index: 99; ">
+  <p><translate>MSG_BROWSER_DOES_NOT_SUPPORT_IFRAMES</translate></p>
+ </iframe>
+</body>
+</html>