Revision adf1b8cb
Von Moritz Bunkus vor fast 13 Jahren hinzugefügt
DEBIAN/DEBIAN/md5sum | ||
---|---|---|
1776 | 1776 |
8bc701c81a0ee89fe4478ddae2ef4827 var/lib/lx-office-erp/templates/French-sales_order.html |
1777 | 1777 |
6f81ff6f4639eefe6816e7288374a28b var/lib/lx-office-erp/templates/German-check.tex |
1778 | 1778 |
b064d0f07f8fd71423879e8ffe9d6be5 var/lib/lx-office-erp/templates/Default-invoice.html |
1779 |
0eab06c10a4c76e73d23218740dd6de1 var/lib/lx-office-erp/xslt/xulmenu.xsl |
|
1780 |
2f7fbf7fd0626ab4ffdedcdd8b33ccd0 var/lib/lx-office-erp/xslt/style1.css |
|
1781 | 1779 |
947ddd3cdc8d188dce0d9b0c689f3235 etc/lx-office-erp/lx-erp.conf.default |
1782 | 1780 |
ea0d4d87c77d5b69a20bcafc76c987c6 etc/lx-office-erp/lx-office-erp.cherokee |
1783 | 1781 |
947ddd3cdc8d188dce0d9b0c689f3235 etc/lx-office-erp/lx-erp.conf |
DEBIAN/mk_erp_deb.sh | ||
---|---|---|
52 | 52 |
cp -a $SRC/css var/lib/lx-office-erp |
53 | 53 |
cp -a $SRC/templates var/lib/lx-office-erp |
54 | 54 |
cp -a $SRC/users var/lib/lx-office-erp |
55 |
cp -a $SRC/xslt var/lib/lx-office-erp |
|
56 | 55 |
|
57 | 56 |
cp -a $SRC/doc/* usr/share/doc/lx-office-erp/ |
58 | 57 |
cp -a $SRC/image/* usr/share/lx-office-erp/ |
SL/Auth.pm | ||
---|---|---|
455 | 455 |
@user_data{qw(id login)} = @{$ref}{qw(id login)}; |
456 | 456 |
} |
457 | 457 |
|
458 |
# The XUL/XML backed menu has been removed. |
|
459 |
$user_data{menustyle} = 'v3' if lc($user_data{menustyle} || '') eq 'xml'; |
|
460 |
|
|
458 | 461 |
$sth->finish(); |
459 | 462 |
|
460 | 463 |
$main::lxdebug->leave_sub(); |
SL/Form.pm | ||
---|---|---|
311 | 311 |
<script type="text/javascript"> |
312 | 312 |
<!-- |
313 | 313 |
// If JavaScript is enabled, the whole thing will be reloaded. |
314 |
// The reason is: When one changes his menu setup (HTML / XUL / CSS ...)
|
|
314 |
// The reason is: When one changes his menu setup (HTML / CSS ...) |
|
315 | 315 |
// it now loads the correct code into the browser instead of do nothing. |
316 | 316 |
setTimeout("top.frames.location.href='login.pl'",500); |
317 | 317 |
//--> |
SL/User.pm | ||
---|---|---|
177 | 177 |
$self->{"menustyle"} eq "v3" ? "menuv3.pl" : |
178 | 178 |
$self->{"menustyle"} eq "neu" ? "menunew.pl" : |
179 | 179 |
$self->{"menustyle"} eq "js" ? "menujs.pl" : |
180 |
$self->{"menustyle"} eq "xml" ? "menuXML.pl" : |
|
181 | 180 |
"menu.pl"; |
182 | 181 |
|
183 | 182 |
print $form->parse_html_template("dbupgrade/footer", { "menufile" => $menufile }); |
bin/mozilla/login.pl | ||
---|---|---|
126 | 126 |
v3 => 'v3', |
127 | 127 |
neu => 'new', |
128 | 128 |
v4 => 'v4', |
129 |
xml => 'XML', |
|
130 | 129 |
); |
131 | 130 |
|
132 | 131 |
my $menu_script = $style_to_script_map{$user->{menustyle}} || ''; |
bin/mozilla/menuXML.pl | ||
---|---|---|
1 |
#===================================================================== |
|
2 |
# LX-Office ERP |
|
3 |
# Copyright (C) 2004 |
|
4 |
# Based on SQL-Ledger Version 2.1.9 |
|
5 |
# Web http://www.lx-office.org |
|
6 |
# |
|
7 |
###################################################################### |
|
8 |
# SQL-Ledger Accounting |
|
9 |
# Copyright (c) 1998-2002 |
|
10 |
# |
|
11 |
# Author: Dieter Simader |
|
12 |
# Email: dsimader@sql-ledger.org |
|
13 |
# Web: http://www.sql-ledger.org |
|
14 |
# |
|
15 |
# Contributors: Christopher Browne |
|
16 |
# |
|
17 |
# This program is free software; you can redistribute it and/or modify |
|
18 |
# it under the terms of the GNU General Public License as published by |
|
19 |
# the Free Software Foundation; either version 2 of the License, or |
|
20 |
# (at your option) any later version. |
|
21 |
# |
|
22 |
# This program is distributed in the hope that it will be useful, |
|
23 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
24 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
25 |
# GNU General Public License for more details. |
|
26 |
# You should have received a copy of the GNU General Public License |
|
27 |
# along with this program; if not, write to the Free Software |
|
28 |
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
|
29 |
####################################################################### |
|
30 |
# |
|
31 |
# three frame layout with refractured menu |
|
32 |
# |
|
33 |
# CHANGE LOG: |
|
34 |
# DS. 2002-03-25 Created |
|
35 |
# 2004-12-14 - New Optik - Marco Welter <mawe@linux-studio.de> |
|
36 |
# 2007-10-14 - XMLified - Holger Will <holger@treebuilder.de> |
|
37 |
####################################################################### |
|
38 |
|
|
39 |
use utf8; |
|
40 |
|
|
41 |
use SL::Menu; |
|
42 |
|
|
43 |
use CGI::Carp qw(fatalsToBrowser); |
|
44 |
use Encode; |
|
45 |
use URI; |
|
46 |
|
|
47 |
use strict; |
|
48 |
|
|
49 |
1; |
|
50 |
|
|
51 |
# end of main |
|
52 |
|
|
53 |
sub display { |
|
54 |
my $form = $main::form; |
|
55 |
my %myconfig = %main::myconfig; |
|
56 |
|
|
57 |
my $charset = $::lx_office_conf{system}->{dbcharset} || 'ISO-8859-1'; |
|
58 |
my $callback = $form->unescape($form->{callback}); |
|
59 |
$callback = URI->new($callback)->rel($callback) if $callback; |
|
60 |
$callback = "login.pl?action=company_logo" if $callback =~ /^(\.\/)?$/; |
|
61 |
|
|
62 |
my $text = $form->create_http_response('content_type' => 'text/xml', |
|
63 |
'charset' => $charset) |
|
64 |
. qq|<?xml version="1.0" encoding="${charset}"?> |
|
65 |
<?xml-stylesheet href="xslt/xulmenu.xsl" type="text/xsl"?> |
|
66 |
<!DOCTYPE doc [ |
|
67 |
<!ENTITY szlig "| . $::locale->{iconv_utf8}->convert('ß') . qq|"> |
|
68 |
<!ENTITY auml "| . $::locale->{iconv_utf8}->convert('ä') . qq|"> |
|
69 |
<!ENTITY ouml "| . $::locale->{iconv_utf8}->convert('ö') . qq|"> |
|
70 |
<!ENTITY uuml "| . $::locale->{iconv_utf8}->convert('ü') . qq|"> |
|
71 |
]> |
|
72 |
|
|
73 |
<doc> |
|
74 |
<name>$myconfig{name}</name> |
|
75 |
<version>$form->{version}</version> |
|
76 |
<callback>$callback</callback> |
|
77 |
<db>$myconfig{dbname}</db> |
|
78 |
|
|
79 |
<favorites>|; |
|
80 |
|
|
81 |
my $fav = $myconfig{favorites}; |
|
82 |
my @favorites = split m/;/, $fav; |
|
83 |
foreach (@favorites) { |
|
84 |
$text .= qq|<link name="$_"/>|; |
|
85 |
} |
|
86 |
|
|
87 |
$text .= qq|</favorites>\n| |
|
88 |
. qq|<menu>\n| |
|
89 |
. acc_menu() |
|
90 |
. qq|</menu>\n| |
|
91 |
. qq|</doc>\n|; |
|
92 |
|
|
93 |
print $text; |
|
94 |
} |
|
95 |
|
|
96 |
|
|
97 |
sub acc_menu { |
|
98 |
my $form = $main::form; |
|
99 |
|
|
100 |
my $mainlevel = $form->{level}; |
|
101 |
$mainlevel =~ s/$mainlevel--//g; |
|
102 |
my $menu = Menu->new("menu.ini"); |
|
103 |
|
|
104 |
$| = 1; |
|
105 |
|
|
106 |
return print_menu($menu); |
|
107 |
} |
|
108 |
|
|
109 |
sub print_menu { |
|
110 |
my ($menu, $parent, $depth) = @_; |
|
111 |
my $html; |
|
112 |
|
|
113 |
my $form = $main::form; |
|
114 |
my %myconfig = %main::myconfig; |
|
115 |
|
|
116 |
die if ($depth * 1 > 5); |
|
117 |
|
|
118 |
my @menuorder; |
|
119 |
|
|
120 |
@menuorder = $menu->access_control(\%myconfig, $parent); |
|
121 |
|
|
122 |
$parent .= "--" if ($parent); |
|
123 |
|
|
124 |
foreach my $item (@menuorder) { |
|
125 |
my $menu_item_id = $item; |
|
126 |
substr($item, 0, length($parent)) = ""; |
|
127 |
next if (($item eq "") || ($item =~ /--/)); |
|
128 |
|
|
129 |
my $menu_item = $menu->{"${parent}${item}"}; |
|
130 |
my $menu_title = $::locale->text($item); |
|
131 |
my $menu_text = $menu_title; |
|
132 |
|
|
133 |
my $target = "main_window"; |
|
134 |
$target = $menu_item->{"target"} if ($menu_item->{"target"}); |
|
135 |
|
|
136 |
if ($menu_item->{"submenu"} || !defined($menu_item->{"module"}) || |
|
137 |
($menu_item->{"module"} eq "menu.pl")) { |
|
138 |
|
|
139 |
my $h = print_menu($menu, "${parent}${item}", $depth * 1 + 1)."\n"; |
|
140 |
if (!$parent) { |
|
141 |
$html .= qq|<item name='${menu_text}' id='${menu_item_id}'>${h}</item>\n|; |
|
142 |
} else { |
|
143 |
$html .= qq|<item name='${menu_text}' id='${menu_item_id}'>${h}</item>\n|; |
|
144 |
} |
|
145 |
} else { |
|
146 |
$html .= qq|<item |; |
|
147 |
$html .= $menu->menuitem_XML(\%myconfig, $form, "${parent}$item", |
|
148 |
{ "title" => $menu_title, |
|
149 |
"target" => $target }); |
|
150 |
$html .= qq| name="${menu_text}" id='${menu_item_id}'/>\n|; |
|
151 |
} |
|
152 |
} |
|
153 |
|
|
154 |
return $html; |
|
155 |
} |
doc/languages_howto.txt | ||
---|---|---|
133 | 133 |
|
134 | 134 |
HTML |
135 | 135 |
URL@HTML |
136 |
XUL |
|
137 | 136 |
Template/HTML |
138 | 137 |
Template/XML |
139 | 138 |
Template/LaTeX |
locale/de/all | ||
---|---|---|
809 | 809 |
'Factor' => 'Faktor', |
810 | 810 |
'Factor missing!' => 'Der Faktor fehlt.', |
811 | 811 |
'Falsches Datumsformat!' => 'Falsches Datumsformat!', |
812 |
'Favorites' => 'Favoriten (nur im XUL-Menü)', |
|
813 | 812 |
'Fax' => 'Fax', |
814 | 813 |
'Feb' => 'Feb', |
815 | 814 |
'February' => 'Februar', |
... | ... | |
1203 | 1202 |
'Not done yet' => 'Noch nicht fertig', |
1204 | 1203 |
'Not obsolete' => 'Gültig', |
1205 | 1204 |
'Note' => 'Hinweis', |
1206 |
'Note: For Firefox 4 and later the menu XUL menu requires the addon <a href="#1">Remote XUL Manager</a> and the Lx-Office server to be white listed.' => 'Bitte beachten: Ab Firefox 4 benötigt das XUL Menü das Addon <a href="#1">Remote XUL Manager</a>, in dem der Lx-Office Server eingetragen sein muss.', |
|
1207 | 1205 |
'Note: Taxkeys must have a "valid from" date, and will not behave correctly without.' => 'Hinweis: Steuerschlüssel sind fehlerhaft ohne "Gültig ab" Datum', |
1208 | 1206 |
'Notes' => 'Bemerkungen', |
1209 | 1207 |
'Notes (translation for #1)' => 'Bemerkungen (Übersetzung für #1)', |
... | ... | |
1916 | 1914 |
'Top (CSS)' => 'Oben (mit CSS)', |
1917 | 1915 |
'Top (CSS) new' => 'Oben (mit CSS, neu)', |
1918 | 1916 |
'Top (Javascript)' => 'Oben (mit Javascript)', |
1919 |
'Top (XUL; only for Mozilla Firefox)' => 'Oben + links (XUL, nur Mozilla Firefox)', |
|
1920 | 1917 |
'Top 100' => 'Top 100', |
1921 | 1918 |
'Top 100 hinzufuegen' => 'Top 100 hinzufügen', |
1922 | 1919 |
'Top Level' => 'Hauptartikelbezeichnung', |
locale/de/special_chars | ||
---|---|---|
16 | 16 |
order=" |
17 | 17 |
"=" |
18 | 18 |
|
19 |
[XUL] |
|
20 |
order=& |
|
21 |
&=" |
|
22 |
|
|
23 | 19 |
[Template/HTML] |
24 | 20 |
order=< > \n |
25 | 21 |
<=< |
locale/de_DE/all | ||
---|---|---|
750 | 750 |
'Factor' => 'Faktor', |
751 | 751 |
'Factor missing!' => 'Der Faktor fehlt.', |
752 | 752 |
'Falsches Datumsformat!' => 'Falsches Datumsformat!', |
753 |
'Favorites' => 'Favoriten (nur im XUL-Menü)', |
|
754 | 753 |
'Fax' => 'Fax', |
755 | 754 |
'Feb' => 'Feb', |
756 | 755 |
'February' => 'Februar', |
... | ... | |
1772 | 1771 |
'Top (CSS)' => 'Oben (mit CSS)', |
1773 | 1772 |
'Top (CSS) new' => 'Oben (mit CSS, neu)', |
1774 | 1773 |
'Top (Javascript)' => 'Oben (mit Javascript)', |
1775 |
'Top (XUL; only for Mozilla Firefox)' => 'Oben + links (XUL, nur Mozilla Firefox)', |
|
1776 | 1774 |
'Top 100' => 'Top 100', |
1777 | 1775 |
'Top 100 hinzufuegen' => 'Top 100 hinzufügen', |
1778 | 1776 |
'Top Level' => 'Hauptartikelbezeichnung', |
locale/de_DE/special_chars | ||
---|---|---|
16 | 16 |
order=" |
17 | 17 |
"=" |
18 | 18 |
|
19 |
[XUL] |
|
20 |
order=& |
|
21 |
&=" |
|
22 |
|
|
23 | 19 |
[Template/HTML] |
24 | 20 |
order=< > \n |
25 | 21 |
<=< |
locale/en/all | ||
---|---|---|
754 | 754 |
'Factor' => '', |
755 | 755 |
'Factor missing!' => '', |
756 | 756 |
'Falsches Datumsformat!' => '', |
757 |
'Favorites' => '', |
|
758 | 757 |
'Fax' => '', |
759 | 758 |
'Feb' => '', |
760 | 759 |
'February' => '', |
... | ... | |
1779 | 1778 |
'Top (CSS)' => '', |
1780 | 1779 |
'Top (CSS) new' => '', |
1781 | 1780 |
'Top (Javascript)' => '', |
1782 |
'Top (XUL; only for Mozilla Firefox)' => '', |
|
1783 | 1781 |
'Top 100' => '', |
1784 | 1782 |
'Top 100 hinzufuegen' => '', |
1785 | 1783 |
'Top Level' => '', |
locale/en/special_chars | ||
---|---|---|
16 | 16 |
order=" |
17 | 17 |
"=" |
18 | 18 |
|
19 |
[XUL] |
|
20 |
order=& |
|
21 |
&=" |
|
22 |
|
|
23 | 19 |
[Template/HTML] |
24 | 20 |
order=< > \n |
25 | 21 |
<=< |
locale/fr/all | ||
---|---|---|
1702 | 1702 |
'Top (CSS)' => '', |
1703 | 1703 |
'Top (CSS) new' => '', |
1704 | 1704 |
'Top (Javascript)' => '', |
1705 |
'Top (XUL; only for Mozilla Firefox)' => '', |
|
1706 | 1705 |
'Top 100' => '', |
1707 | 1706 |
'Top 100 hinzufuegen' => '', |
1708 | 1707 |
'Top Level' => '', |
menuXML.pl | ||
---|---|---|
1 |
am.pl |
scripts/mklinks.sh | ||
---|---|---|
4 | 4 |
rm $i.pl 2> /dev/null |
5 | 5 |
ln -s admin.pl $i.pl |
6 | 6 |
done |
7 |
for i in acctranscorrections amcvar amtemplates ap ar bankaccounts bp ca common cp ct datev dn do fu gl ic ir is menujs menunew menu menuv3 menuv4 menuXML oe pe projects rc rp sepa todo ustva wh vk; do
|
|
7 |
for i in acctranscorrections amcvar amtemplates ap ar bankaccounts bp ca common cp ct datev dn do fu gl ic ir is menujs menunew menu menuv3 menuv4 oe pe projects rc rp sepa todo ustva wh vk; do |
|
8 | 8 |
rm $i.pl 2> /dev/null |
9 | 9 |
ln -s am.pl $i.pl |
10 | 10 |
done |
sql/Pg-upgrade2-auth/remove_menustyle_xml.sql | ||
---|---|---|
1 |
-- @tag: remove_menustyle_xml |
|
2 |
-- @description: Menütyp "XUL/XML" wurde entfernt; also durch v3 ersetzen |
|
3 |
-- @depends: |
|
4 |
-- @charset: utf-8 |
|
5 |
UPDATE auth.user_config |
|
6 |
SET cfg_value = 'v3' |
|
7 |
WHERE ((cfg_key = 'menustyle') |
|
8 |
AND (cfg_value = 'xml')); |
templates/webpages/admin/edit_user.html | ||
---|---|---|
184 | 184 |
<option value="v3"[% IF menustyle_v3 %] selected[% END %]>[% 'Top (CSS)' | $T8 %]</option> |
185 | 185 |
<option value="v4"[% IF menustyle_v4 %] selected[% END %]>[% 'Top (CSS) new' | $T8 %]</option> |
186 | 186 |
<option value="neu"[% IF menustyle_neu %] selected[% END %]>[% 'Top (Javascript)' | $T8 %]</option> |
187 |
<option value="xml"[% IF menustyle_xml %] selected[% END %]>[% 'Top (XUL; only for Mozilla Firefox)' | $T8 %]</option> |
|
188 | 187 |
</select> |
189 | 188 |
</td> |
190 | 189 |
</tr> |
templates/webpages/am/config.html | ||
---|---|---|
133 | 133 |
<option value="v3"[% IF myconfig_menustyle == 'v3' %] selected[% END %]>[% 'Top (CSS)' | $T8 %]</option> |
134 | 134 |
<option value="v4"[% IF myconfig_menustyle == 'v4' %] selected[% END %]>[% 'Top (CSS) new' | $T8 %]</option> |
135 | 135 |
<option value="neu"[% IF myconfig_menustyle == 'neu' %] selected[% END %]>[% 'Top (Javascript)' | $T8 %]</option> |
136 |
<option value="xml"[% IF myconfig_menustyle == 'xml' %] selected[% END %]>[% 'Top (XUL; only for Mozilla Firefox)' | $T8 %]</option> |
|
137 | 136 |
</select> |
138 | 137 |
</td> |
139 | 138 |
</tr> |
140 | 139 |
|
141 |
<tr valign="top"> |
|
142 |
<th align="right">[% 'Favorites' | $T8 %]</th> |
|
143 |
<td><textarea name="favorites" rows="4" cols="50">[% HTML.escape(myconfig_favorites) %]</textarea></td> |
|
144 |
</tr> |
|
145 |
|
|
146 | 140 |
<tr> |
147 | 141 |
<th align="right">[% 'Form details (second row)' | $T8 %]</th> |
148 | 142 |
<td> |
... | ... | |
164 | 158 |
</tr> |
165 | 159 |
</table> |
166 | 160 |
|
167 |
<p>[% LxERP.t8('Note: For Firefox 4 and later the menu XUL menu requires the addon <a href="#1">Remote XUL Manager</a> and the Lx-Office server to be white listed.', 'https://addons.mozilla.org/de/firefox/addon/remote-xul-manager/') %]</p> |
|
168 |
|
|
169 | 161 |
<br style="clear: left" /> |
170 | 162 |
</div> |
171 | 163 |
|
xslt/style1.css | ||
---|---|---|
1 |
/* toolbar style */ |
|
2 |
toolbar{ |
|
3 |
-moz-appearance:none !important; |
|
4 |
background: url('../image/fade.png'); |
|
5 |
border-bottom:1px solid #888; |
|
6 |
} |
|
7 |
|
|
8 |
/* sidebar styles */ |
|
9 |
tree{ |
|
10 |
-moz-appearance: none !important; |
|
11 |
border:0px solid black; |
|
12 |
padding-top:2px; |
|
13 |
background: white url('../image/fade.png') repeat-x; |
|
14 |
} |
|
15 |
|
|
16 |
#sidebar{ |
|
17 |
background-image: url('../image/fade.png'); |
|
18 |
max-width:450px; |
|
19 |
width:150px; |
|
20 |
font:12px Arial; |
|
21 |
margin:0px; |
|
22 |
border-right:1px solid #888; |
|
23 |
} |
|
24 |
|
|
25 |
/* menubar styles */ |
|
26 |
menubar{ |
|
27 |
-moz-appearance:none !important; |
|
28 |
background: url('../image/bg_titel.gif'); |
|
29 |
border:0px; |
|
30 |
} |
|
31 |
|
|
32 |
menu, |
|
33 |
menuitem{ |
|
34 |
font:12px Arial; |
|
35 |
} |
|
36 |
|
|
37 |
menu menu{ |
|
38 |
-moz-appearance: none !important; |
|
39 |
color:white; |
|
40 |
background: #35a; |
|
41 |
} |
|
42 |
|
|
43 |
menubar menu{ |
|
44 |
-moz-appearance: none !important; |
|
45 |
color:white; |
|
46 |
} |
|
47 |
|
|
48 |
menubar menu:hover{ |
|
49 |
-moz-appearance:none !important; |
|
50 |
background:#46d; |
|
51 |
color:yellow; |
|
52 |
} |
|
53 |
|
|
54 |
/* are splitter & iframe in use currently? */ |
|
55 |
splitter{ |
|
56 |
-moz-appearance:none !important; |
|
57 |
background:white url('../image/fade.png') no-repeat !important; |
|
58 |
border:0px; |
|
59 |
} |
|
60 |
iframe{ |
|
61 |
border-left:1px solid #888 !important; |
|
62 |
} |
xslt/xulmenu.xsl | ||
---|---|---|
1 |
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
|
2 |
xmlns:html="http://www.w3.org/1999/xhtml" |
|
3 |
xmlns:svg="http://www.w3.org/2000/svg" |
|
4 |
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> |
|
5 |
<xsl:output media-type="application/vnd.mozilla.xul+xml"/> |
|
6 |
<xsl:template match="/"> |
|
7 |
<xsl:choose> |
|
8 |
<xsl:when test="system-property('xsl:vendor')='Transformiix'"> |
|
9 |
|
|
10 |
<xsl:apply-templates/> |
|
11 |
</xsl:when> |
|
12 |
<xsl:otherwise> |
|
13 |
<xsl:apply-templates mode="html"/> |
|
14 |
</xsl:otherwise> |
|
15 |
</xsl:choose> |
|
16 |
</xsl:template> |
|
17 |
|
|
18 |
<xsl:template match="doc" mode="html"> |
|
19 |
<html xmlns="http://www.w3.org/1999/xhtml"> |
|
20 |
<head> |
|
21 |
<meta http-equiv="refresh" content="5;url=menu.pl?action=display"/> |
|
22 |
</head> |
|
23 |
<body style="background-color: #eee; color: #333;"> |
|
24 |
<div style="margin-top: 2em; margin-left: auto; margin-right: auto; border: solid 0.1em #f88; width: 30em; background-color:#fff; font-size: 0.8em;font-family: Verdana, Arial, Helvetica; padding: 2em;"> |
|
25 |
<h2>XUL-Menü ist aktiviert</h2> |
|
26 |
<h3>Nur der Firefox-Browser mag das XUL-Menü.</h3> |
|
27 |
Wir schalten auf die kompatiblere <a href="menu.pl?action=display">HTML-Variante</a> um. |
|
28 |
<h3>Only the Firefox-Browser likes the XUL-Menu.</h3> |
|
29 |
We switch to the <a href="menu.pl?action=display">HTML-Version</a> now. |
|
30 |
</div> |
|
31 |
</body> |
|
32 |
</html> |
|
33 |
</xsl:template> |
|
34 |
|
|
35 |
<!-- main document structure --> |
|
36 |
<!-- ******************************************************************* --> |
|
37 |
<xsl:template match="doc"> |
|
38 |
<xsl:processing-instruction name="xml-stylesheet">href="xslt/style1.css" type="text/css"</xsl:processing-instruction> |
|
39 |
<xsl:variable name="callback"><xsl:value-of select='/doc/callback'/></xsl:variable> |
|
40 |
<xsl:variable name="title"> |
|
41 |
LX-Office Version <xsl:value-of select='/doc/version'/> |
|
42 |
- <xsl:value-of select='/doc/name'/> |
|
43 |
- <xsl:value-of select='/doc/db'/> |
|
44 |
</xsl:variable> |
|
45 |
<!-- <xsl:call-template name="style"/>--> |
|
46 |
<window title="{$title}"> |
|
47 |
<html:title/> |
|
48 |
<xsl:call-template name="script"/> |
|
49 |
<toolbox> |
|
50 |
<xsl:apply-templates select="menu"/> |
|
51 |
<xsl:apply-templates select="favorites"/> |
|
52 |
</toolbox> |
|
53 |
<hbox flex="1"> |
|
54 |
<vbox id="sidebar" style="overflow:hidden"> |
|
55 |
|
|
56 |
<xsl:apply-templates mode="tree" select="menu"/> |
|
57 |
|
|
58 |
<xsl:call-template name="ArtikelSuche"/> |
|
59 |
<!--<iframe src="xslt/trans.xml" flex="1" id="uhr"/>--> |
|
60 |
</vbox> |
|
61 |
<splitter state="open" collapse="before" resizeafter="farthest"><grippy/></splitter> |
|
62 |
<browser id="main_window" type="content" src="{$callback}" flex="1" style="border:0px"/> |
|
63 |
</hbox> |
|
64 |
</window> |
|
65 |
</xsl:template> |
|
66 |
<!-- ******************************************************************* --> |
|
67 |
|
|
68 |
|
|
69 |
<!-- the top menu --> |
|
70 |
<!-- ******************************************************************* --> |
|
71 |
<xsl:template match="menu"><menubar id="sample-menubar" flex="1"><xsl:apply-templates/></menubar></xsl:template> |
|
72 |
<!-- ******************************************************************* --> |
|
73 |
|
|
74 |
|
|
75 |
<!-- favorites toolbar --> |
|
76 |
<!-- ******************************************************************* --> |
|
77 |
<xsl:template match="favorites"> |
|
78 |
<toolbar id="favoriten" > |
|
79 |
<xsl:call-template name="specialbuttons"/> |
|
80 |
<toolbarseparator/> |
|
81 |
<xsl:for-each select="link"> |
|
82 |
<xsl:variable name="name" select="@name"/> |
|
83 |
<xsl:choose> |
|
84 |
<xsl:when test="/*//item[@id=$name]/item"> |
|
85 |
<toolbarbutton type="menu" label="{$name}" tooltiptext="A simple popup" link="{/*//item[@id=$name]/@link}" oncommand="openLink(event)"> |
|
86 |
<image src="image/icons/24x24/{/*//item[@id=$name]/@id}.png" width="24" height="24" /> |
|
87 |
<menupopup id="file-popup"> |
|
88 |
<xsl:apply-templates select="/*//item[@id=$name]/*"/> |
|
89 |
</menupopup> |
|
90 |
</toolbarbutton> |
|
91 |
</xsl:when> |
|
92 |
<xsl:otherwise> |
|
93 |
<toolbarbutton label="{$name}" tooltiptext="A simple popup" link="{/*//item[@id=$name]/@link}" oncommand="openLink(event)" lxid="{/*//item[@id=$name]/@id}"> |
|
94 |
<image src="image/icons/24x24/{/*//item[@id=$name]/@id}.png" width="24" height="24" /> |
|
95 |
</toolbarbutton> |
|
96 |
</xsl:otherwise> |
|
97 |
</xsl:choose> |
|
98 |
</xsl:for-each> |
|
99 |
<toolbarspring flex="1"/> |
|
100 |
<xsl:call-template name="searchbox"/> |
|
101 |
|
|
102 |
</toolbar> |
|
103 |
</xsl:template> |
|
104 |
<!-- ******************************************************************* --> |
|
105 |
|
|
106 |
|
|
107 |
<!-- template for the top menu items |
|
108 |
********************************************************************************* --> |
|
109 |
<xsl:template match="item"> |
|
110 |
<xsl:choose> |
|
111 |
<xsl:when test="item"> |
|
112 |
<menu id="{@name}_menu" label="{@name}" class="menu-iconic" image="image/icons/16x16/{@id}.png"> |
|
113 |
<menupopup id="file-popup"> |
|
114 |
<xsl:apply-templates/> |
|
115 |
</menupopup> |
|
116 |
</menu> |
|
117 |
</xsl:when> |
|
118 |
<xsl:otherwise> |
|
119 |
<menuitem target="{@target}" link="{@link}" label="{@name}" oncommand="openLink(event)" class="menuitem-iconic" image="image/icons/16x16/{@id}.png" lxid="{@id}" onclick="openLinkNewTab(event)"/> |
|
120 |
</xsl:otherwise> |
|
121 |
</xsl:choose> |
|
122 |
</xsl:template> |
|
123 |
<!-- *************************************************************************** --> |
|
124 |
|
|
125 |
|
|
126 |
<!-- templates for the treeview |
|
127 |
********************************************************************************** --> |
|
128 |
<xsl:template match="menu" mode="tree"> |
|
129 |
<toolbar> |
|
130 |
<label value="Hauptmenü"/> |
|
131 |
</toolbar> |
|
132 |
<tree flex="1" onselect="openTreeLink(event)" style="margin:0px;" hidecolumnpicker="true"> |
|
133 |
<treecols> |
|
134 |
<treecol hideheader="true" id="menuepunkt" primary="true" flex="1" /> |
|
135 |
</treecols> |
|
136 |
<treechildren> |
|
137 |
<xsl:apply-templates mode="tree"/> |
|
138 |
</treechildren> |
|
139 |
</tree> |
|
140 |
</xsl:template> |
|
141 |
|
|
142 |
<xsl:template match="item" mode="tree"> |
|
143 |
<xsl:choose> |
|
144 |
<xsl:when test="item"> |
|
145 |
<treeitem container="true" open="false"> |
|
146 |
<treerow> |
|
147 |
<treecell label="{@name}" src="image/icons/16x16/{@id}.png"/> |
|
148 |
</treerow> |
|
149 |
<treechildren> |
|
150 |
<xsl:apply-templates mode="tree"/> |
|
151 |
</treechildren> |
|
152 |
</treeitem> |
|
153 |
</xsl:when> |
|
154 |
<xsl:otherwise> |
|
155 |
<treeitem link="{@link}"> |
|
156 |
<treerow> |
|
157 |
<treecell label="{@name}" src="image/icons/16x16/{@id}.png"/> |
|
158 |
</treerow> |
|
159 |
</treeitem> |
|
160 |
</xsl:otherwise> |
|
161 |
</xsl:choose> |
|
162 |
</xsl:template> |
|
163 |
<!-- *************************************************************************** --> |
|
164 |
|
|
165 |
|
|
166 |
<!-- template fuer die uhr |
|
167 |
******************************************************************************** --> |
|
168 |
<xsl:template name="uhr"> |
|
169 |
|
|
170 |
</xsl:template> |
|
171 |
<!-- *************************************************************************** --> |
|
172 |
|
|
173 |
|
|
174 |
<!-- scripts |
|
175 |
******************************************************************************** --> |
|
176 |
<xsl:template name="script"> |
|
177 |
<html:script type="text/ecmascript"> |
|
178 |
|
|
179 |
function openLink(event) |
|
180 |
{ |
|
181 |
var path=event.target.getAttribute("link") |
|
182 |
if(event.target.getAttribute("target")=="_top") |
|
183 |
{ |
|
184 |
window.location=path |
|
185 |
} |
|
186 |
else |
|
187 |
{ |
|
188 |
var bf=document.getElementById("main_window") |
|
189 |
bf.setAttribute("src",path) |
|
190 |
} |
|
191 |
} |
|
192 |
|
|
193 |
function openLinkNewTab(event) |
|
194 |
{ |
|
195 |
if(event.button!=1) return |
|
196 |
var path=event.target.getAttribute("link") |
|
197 |
if(event.target.getAttribute("target")=="_top") |
|
198 |
{ |
|
199 |
window.location=path |
|
200 |
} |
|
201 |
else |
|
202 |
{ |
|
203 |
window.open(path,"_new","") |
|
204 |
|
|
205 |
} |
|
206 |
} |
|
207 |
|
|
208 |
|
|
209 |
function openLinkNewWindow(event) |
|
210 |
{ |
|
211 |
var path=event.target.getAttribute("link") |
|
212 |
window.open(path,"_blank","") |
|
213 |
} |
|
214 |
|
|
215 |
function openTreeLink(event) |
|
216 |
{ |
|
217 |
var tree=event.target |
|
218 |
var selIndex=tree.currentIndex |
|
219 |
var item=tree.view.getItemAtIndex(selIndex) |
|
220 |
var link=item.getAttribute("link") |
|
221 |
if(link) document.getElementById("main_window").setAttribute("src",link) |
|
222 |
} |
|
223 |
|
|
224 |
function updateClock() |
|
225 |
{ |
|
226 |
var d= new Date() |
|
227 |
var sec=d.getSeconds() |
|
228 |
var min=d.getMinutes() |
|
229 |
var std=(d.getHours() % 12 ) + min/60 |
|
230 |
document.getElementById("std").setAttribute("transform","rotate("+std*30+",20,20)") |
|
231 |
document.getElementById("min").setAttribute("transform","rotate("+min*6+",20,20)") |
|
232 |
document.getElementById("sec").setAttribute("transform","rotate("+sec*6+",20,20)") |
|
233 |
} |
|
234 |
|
|
235 |
function PrintW() |
|
236 |
{ |
|
237 |
document.getElementById("main_window").contentWindow.print() |
|
238 |
} |
|
239 |
|
|
240 |
function doSearch(){ |
|
241 |
var t=document.getElementById("searchboxtext").value |
|
242 |
document.getElementById("desc").value=t |
|
243 |
document.getElementById("sb").click() |
|
244 |
|
|
245 |
} |
|
246 |
function checkEnter(event){ |
|
247 |
if(event.keyCode==13) doSearch() |
|
248 |
} |
|
249 |
//setInterval("updateClock()",1000) |
|
250 |
function MyGoBack(){ |
|
251 |
document.getElementById("main_window").contentWindow.history.back() |
|
252 |
} |
|
253 |
function MyGoForward(){ |
|
254 |
document.getElementById("main_window").contentWindow.history.forward() |
|
255 |
} |
|
256 |
</html:script> |
|
257 |
</xsl:template> |
|
258 |
<!-- *************************************************************************** --> |
|
259 |
|
|
260 |
<!-- special buttons ( logout , print, open new window ) |
|
261 |
The tooltips, like tooltiptext="Neues Fenster", do not appear in my Firefox/Prism browsers. Why? |
|
262 |
https://developer.mozilla.org/en/XUL_Tutorial/Popup_Menus |
|
263 |
https://developer.mozilla.org/en/XUL/Attribute/tooltiptext |
|
264 |
**************************************************************************** --> |
|
265 |
<xsl:template name="specialbuttons"> |
|
266 |
<toolbarbutton image="image/icons/24x24/Batch Printing.png" oncommand="PrintW(event)" tooltiptext="Drucken"/> |
|
267 |
<toolbarbutton image="image/icons/24x24/Neues Fenster.png" tooltiptext="Neues Fenster" link="menuXML.pl?action=display" target="_top" oncommand="openLinkNewWindow(event)"/> |
|
268 |
<toolbarbutton image="image/icons/24x24/Program--Logout.png" link="{/*//item[@id='Program--Logout']/@link}" target="_top" oncommand="openLink(event)" tooltiptext="Abmelden"/> |
|
269 |
<toolbarseparator/> |
|
270 |
<toolbarbutton image="image/icons/24x24/leftarrow_24.png" tooltiptext="Schritt zurück" oncommand="MyGoBack()"/> |
|
271 |
<toolbarbutton image="image/icons/24x24/rightarrow_24.png" tooltiptext="Schritt vor" oncommand="MyGoForward()"/> |
|
272 |
</xsl:template> |
|
273 |
<!-- *************************************************************************** --> |
|
274 |
|
|
275 |
|
|
276 |
<!-- searchbox |
|
277 |
**************************************************************************** --> |
|
278 |
<xsl:template name="searchbox"> |
|
279 |
<vbox style="padding-top:2px"> |
|
280 |
<hbox> |
|
281 |
<textbox style="font-size:11px;margin-right:0px" width="200px" id="searchboxtext" onkeypress="checkEnter(event)"/> |
|
282 |
<toolbarbutton type="toolbar" width="20" height="20" style="padding:5px !important" image="image/icons/16x16/CRM--Schnellsuche.png" flex="0" oncommand="doSearch()"/> |
|
283 |
</hbox> |
|
284 |
|
|
285 |
</vbox> |
|
286 |
</xsl:template> |
|
287 |
<!-- *************************************************************************** --> |
|
288 |
|
|
289 |
|
|
290 |
<!-- hidden form for article search |
|
291 |
**************************************************************************** --> |
|
292 |
<xsl:template name="ArtikelSuche"> |
|
293 |
<form id="aform" method="post" action="ic.pl" xmlns="http://www.w3.org/1999/xhtml" target="main_window" style="font-family:arial;font-size:12px;display:none"> |
|
294 |
<input name="partnumber" size="20"/> |
|
295 |
<input name="description" flex="1" id="desc"/> |
|
296 |
<input name="partsgroup" size="20"/> |
|
297 |
<input name="make" size="20"/> |
|
298 |
<input class="submit" type="submit" name="action" value="Weiter" id="sb"/> |
|
299 |
<div style="display:none" > |
|
300 |
<input class="submit" type="submit" name="action" value="Top 100"/> |
|
301 |
<input type="hidden" name="serialnumber" size="20"/> |
|
302 |
<input type="hidden" name="ean" size="20"/> |
|
303 |
<input type="hidden" name="searchitems" value="part"/> |
|
304 |
<input type="hidden" name="title" value="Waren"/> |
|
305 |
<input type="hidden" name="revers" value="0"/> |
|
306 |
<input type="hidden" name="lastsort" value=""/> |
|
307 |
<input type="hidden" name="model" size="20"/> |
|
308 |
<input type="hidden" name="drawing" size="20"/> |
|
309 |
<input type="hidden" name="microfiche" size="20"/> |
|
310 |
<input name="itemstatus" class="radio" type="radio" value="active" checked="true"/> |
|
311 |
<input name="itemstatus" class="radio" type="radio" value="onhand"/> |
|
312 |
<input name="itemstatus" class="radio" type="radio" value="short"/> |
|
313 |
<input name="itemstatus" class="radio" type="radio" value="obsolete"/> |
|
314 |
<input name="itemstatus" class="radio" type="radio" value="orphaned"/> |
|
315 |
<input name="bought" class="checkbox" type="checkbox" value="1"/> |
|
316 |
<input name="sold" class="checkbox" type="checkbox" value="1"/> |
|
317 |
<input name="onorder" class="checkbox" type="checkbox" value="1"/> |
|
318 |
<input name="ordered" class="checkbox" type="checkbox" value="1"/> |
|
319 |
<input name="rfq" class="checkbox" type="checkbox" value="1"/>Anfrage |
|
320 |
<input name="quoted" class="checkbox" type="checkbox" value="1"/>Angeboten |
|
321 |
<input type="hidden" name="transdatefrom" id="transdatefrom" size="11" title="dd.mm.yy"/> |
|
322 |
<input type="button" name="transdatefrom" id="trigger1" value="?"/> |
|
323 |
<input name="transdateto" id="transdateto" size="11" title="dd.mm.yy"/> |
|
324 |
<input type="button" name="transdateto" id="trigger2" value="?"/> |
|
325 |
<input name="l_partnumber" class="checkbox" type="checkbox" value="Y" checked="true"/>Artikelnummer |
|
326 |
<input name="l_description" class="checkbox" type="checkbox" value="Y" checked="true"/>Artikelbeschreibung |
|
327 |
<input name="l_serialnumber" class="checkbox" type="checkbox" value="Y"/>Seriennummer |
|
328 |
<input name="l_unit" class="checkbox" type="checkbox" value="Y" checked="true"/>Maszeinheit |
|
329 |
<input name="l_listprice" class="checkbox" type="checkbox" value="Y"/>Listenpreis |
|
330 |
<input name="l_sellprice" class="checkbox" type="checkbox" value="Y" checked="true"/>Verkaufspreis |
|
331 |
<input name="l_lastcost" class="checkbox" type="checkbox" value="Y" checked="true"/>Einkaufspreis |
|
332 |
<input name="l_linetotal" class="checkbox" type="checkbox" value="Y" checked="true"/>Zeilensumme |
|
333 |
<input name="l_priceupdate" class="checkbox" type="checkbox" value="Y"/>Erneuert am |
|
334 |
<input name="l_bin" class="checkbox" type="checkbox" value="Y"/>Lagerplatz |
|
335 |
<input name="l_rop" class="checkbox" type="checkbox" value="Y"/>Mindestlagerbestand |
|
336 |
<input name="l_weight" class="checkbox" type="checkbox" value="Y"/>Gewicht |
|
337 |
<input name="l_image" class="checkbox" type="checkbox" value="Y"/>Grafik |
|
338 |
<input name="l_drawing" class="checkbox" type="checkbox" value="Y"/>Zeichnung |
|
339 |
<input name="l_microfiche" class="checkbox" type="checkbox" value="Y"/>Mikrofilm |
|
340 |
<input name="l_partsgroup" class="checkbox" type="checkbox" value="Y"/>Warengruppe |
|
341 |
<input name="l_subtotal" class="checkbox" type="checkbox" value="Y"/>Zwischensumme |
|
342 |
<input name="l_soldtotal" class="checkbox" type="checkbox" value="Y"/>Verkaufte Anzahl |
|
343 |
<input name="l_deliverydate" class="checkbox" type="checkbox" value="Y"/>Lieferdatum |
|
344 |
<input type="hidden" name="nextsub" value="generate_report"/> |
|
345 |
<input type="hidden" name="revers" value="0"/> |
|
346 |
<input type="hidden" name="lastsort" value=""/> |
|
347 |
<input type="hidden" name="sort" value="description"/> |
|
348 |
<input type="hidden" name="ndxs_counter" value="0"/> |
|
349 |
</div> |
|
350 |
</form> |
|
351 |
</xsl:template> |
|
352 |
<!-- *************************************************************************** --> |
|
353 |
</xsl:stylesheet> |
Auch abrufbar als: Unified diff
Das XUL-/XML-Menü entfernen
Das alte XUL-/XML-Menü war von der Benutzung her zwar beliebt, hatte
aber aush administrativer Sicht diverse Probleme. Früher konnte
Firefox XUL von beliebigen Webservern ausführen, heute seit Firefox 4
nicht mehr -- aus Sicherheitsgründen. Daher musste man bereits ein
Addon installieren, damit es überhaupt geht.
In späteren Firefox-Versionen gab es immer wieder noch andere
Probleme.
Insgesamt sehe ich die folgenden drei Probleme:
1. Unbedarfte Benutzer werden immer trotz der von Lx-Office
angezeigten Warnmeldung das XUL-Menü einschalten und sich dann
wundern, dass nur eine ausgesprochen verwirrende Fehlermeldung
angezeigt wird.
2. Diese Fehlermeldung wirkt extrem unprofessional.
3. Es erzeugt bei Entwicklern, Debuggern, Supporter,
Dokumentationsschreibern einen deutlich erhöhten Aufwand.
Fix für Bugs 1705 und 1706.