Revision 871a70f0
Von Moritz Bunkus vor mehr als 12 Jahren hinzugefügt
SL/Auth.pm | ||
---|---|---|
@user_data{qw(id login)} = @{$ref}{qw(id login)};
|
||
}
|
||
|
||
# The XUL/XML backed menu has been removed.
|
||
$user_data{menustyle} = 'v3' if lc($user_data{menustyle} || '') eq 'xml';
|
||
# The XUL/XML & 'CSS new' backed menus have been removed.
|
||
my %menustyle_map = ( xml => 'new', v4 => 'v3' );
|
||
$user_data{menustyle} = $menustyle_map{lc($user_data{menustyle} || '')} || $user_data{menustyle};
|
||
|
||
# Set default language if selected language does not exist (anymore).
|
||
$user_data{countrycode} = $::lx_office_conf{system}->{language} unless $user_data{countrycode} && -d "locale/$user_data{countrycode}";
|
SL/Form.pm | ||
---|---|---|
my %style_to_script_map = (
|
||
v3 => 'v3',
|
||
neu => 'new',
|
||
v4 => 'v4',
|
||
);
|
||
|
||
my $menu_script = $style_to_script_map{$::myconfig{menustyle}} || '';
|
SL/Layout/Dispatcher.pm | ||
---|---|---|
use SL::Layout::Login;
|
||
use SL::Layout::Classic;
|
||
use SL::Layout::V3;
|
||
use SL::Layout::V4;
|
||
use SL::Layout::Javascript;
|
||
|
||
sub new {
|
||
... | ... | |
|
||
return SL::Layout::Classic->new if $params{style} eq 'old';
|
||
return SL::Layout::V3->new if $params{style} eq 'v3';
|
||
return SL::Layout::V4->new if $params{style} eq 'v4';
|
||
return SL::Layout::Javascript->new if $params{style} eq 'neu';
|
||
return SL::Layout::Admin->new if $params{style} eq 'admin';
|
||
return SL::Layout::Login->new if $params{style} eq 'login';
|
SL/Layout/Top.pm | ||
---|---|---|
|
||
=head1 NAME
|
||
|
||
SL::Layout::Top - Top line in classic and v4 menu.
|
||
SL::Layout::Top - Top line in classic and v3 menu.
|
||
|
||
=head1 DOM MODEL
|
||
|
SL/Layout/V4.pm | ||
---|---|---|
package SL::Layout::V4;
|
||
|
||
use strict;
|
||
use parent qw(SL::Layout::Base);
|
||
use SL::Layout::Css;
|
||
use SL::Layout::Top;
|
||
|
||
use URI;
|
||
|
||
sub init_sub_layouts {
|
||
[
|
||
SL::Layout::Top->new,
|
||
SL::Layout::None->new,
|
||
]
|
||
}
|
||
|
||
sub start_content {
|
||
"<div id='content'>\n";
|
||
}
|
||
|
||
sub end_content {
|
||
"</div>\n";
|
||
}
|
||
|
||
sub pre_content {
|
||
my ($self) = @_;
|
||
|
||
$self->{sub_class} = 1;
|
||
|
||
my $callback = $::form->unescape($::form->{callback});
|
||
$callback = URI->new($callback)->rel($callback) if $callback;
|
||
$callback = "login.pl?action=company_logo" if $callback =~ /^(\.\/)?$/;
|
||
|
||
$self->SUPER::pre_content .
|
||
|
||
$self->SUPER::render('menu/menuv4', { no_menu => 1, no_output => 1 },
|
||
force_ul_width => 1,
|
||
date => $self->clock_line,
|
||
menu => $self->print_menu,
|
||
callback => $callback,
|
||
);
|
||
}
|
||
|
||
1;
|
bin/mozilla/admin.pl | ||
---|---|---|
my @all_menustyles = (
|
||
{ id => 'old', title => $::locale->text('Old (on the side)') },
|
||
{ id => 'v3', title => $::locale->text('Top (CSS)') },
|
||
{ id => 'v4', title => $::locale->text('Top (CSS) new') },
|
||
{ id => 'neu', title => $::locale->text('Top (Javascript)') },
|
||
);
|
||
|
||
... | ... | |
sub add_user {
|
||
$::form->{title} = "kivitendo " . $::locale->text('Administration') . " / " . $::locale->text('Add User');
|
||
|
||
# Note: Menu Style 'v3' is not compatible to all browsers!
|
||
# "menustyle" => "old" sets the HTML Menu to default.
|
||
# User does not have a well behaved new constructor, so we#Ll just have to build one ourself
|
||
# User does not have a well behaved new constructor, so we'll just have to build one ourself
|
||
my $user = bless {
|
||
"vclimit" => 200,
|
||
"countrycode" => "de",
|
||
"numberformat" => "1.000,00",
|
||
"dateformat" => "dd.mm.yy",
|
||
"stylesheet" => "kivitendo.css",
|
||
"menustyle" => "old",
|
||
"menustyle" => "neu",
|
||
dbport => $::auth->{DB_config}->{port} || 5432,
|
||
dbuser => $::auth->{DB_config}->{user} || 'lxoffice',
|
||
dbhost => $::auth->{DB_config}->{host} || 'localhost',
|
css/Mobile/menuv4.css | ||
---|---|---|
../lx-office-erp/menuv4.css
|
css/kivitendo/menu.css | ||
---|---|---|
whiteMenu Hover background color #FFFFE0
|
||
DarkGreensubenu pointer
|
||
*/
|
||
body.menuv4 {
|
||
behavior: url("css/csshover.htc");
|
||
/*font-size: 14pt;*/
|
||
line-height: 20pt;
|
||
font-family: Verdana, Geneva, Tahoma, sans-serif;
|
||
background-color: #FFFFFF;
|
||
color: #000000;
|
||
}
|
||
#menuv4 {
|
||
/*font-size: 85%;*/
|
||
width: 99.8%;
|
||
float: left;
|
||
/*border: 3px solid;*/
|
||
background-color: #FFFFFF;
|
||
color: #000000;
|
||
}
|
||
#menuv4 a, #menuv4 h2, #menuv4 div.x {
|
||
font-size: 80%;
|
||
line-height: 120%;
|
||
display: block;
|
||
border: 0;
|
||
white-space: nowrap;
|
||
margin: 0;
|
||
padding: 0.3em 1em;
|
||
}
|
||
#menuv4 h2 {
|
||
background-color: #ffffff;
|
||
color: #000000;
|
||
/*padding: 2px 15px;*/
|
||
/* Firefox */
|
||
-moz-border-radius: 0.4em 0.4em 0;
|
||
/* Safari, Chrome */
|
||
-webkit-border-radius: 0.4em 0.4em 0;
|
||
/* Konqueror */
|
||
-khtml-border-radius: 0.4em 0.4em 0;
|
||
/* CSS3 */
|
||
border-radius: 0.4em 0.4em 0 0;
|
||
/* behavior: url(border-radius.htc); */
|
||
}
|
||
#menuv4 ul:hover h2 {
|
||
background-color:#DCDCDC;
|
||
}
|
||
#menuv4 a, #menuv4 a:visited, #menuv4 div.x, #menuv4 div.x:visited {
|
||
color: #000000;
|
||
text-decoration: none;
|
||
padding-right: 10px;
|
||
}
|
||
#menuv4 a {
|
||
background: #EBEBEB;
|
||
}
|
||
#menuv4 div.x, #menuv4 div.x:visited {
|
||
background-color: #EBEBEB;
|
||
border-right: 1em solid #FE5F14;
|
||
}
|
||
#menuv4 div.x:hover {
|
||
border-right: none;
|
||
}
|
||
#menuv4 a:hover, #menuv4 div.x:hover {
|
||
color: #FE5F14;
|
||
background-color: #EBEBEB;
|
||
}
|
||
#menuv4 a:active, #menuv4 div.x:active {
|
||
color: #FE5F14;
|
||
background-color: #EBEBEB;
|
||
}
|
||
#menuv4 ul {
|
||
list-style: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
float: left;
|
||
}
|
||
|
||
#menuv4 li {
|
||
position: relative;
|
||
float: none;
|
||
border: 0;
|
||
}
|
||
li.sub {
|
||
position: relativ;
|
||
left: 0.2em;
|
||
top: 0px;
|
||
background-color: #FFFFFF;
|
||
}
|
||
/* 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 */
|
||
#menuv4 ul li {
|
||
/* border: solid;
|
||
border-color: #991900;
|
||
border-width: 0 0 1px 0;
|
||
*/
|
||
}
|
||
#menuv4 ul ul {
|
||
padding: 0 2em 2em 2em;
|
||
margin: 0 -2em -2em -2em;
|
||
}
|
||
#menuv4 ul ul li {
|
||
/*padding-top: 0.01em;*/
|
||
background-color: #FFFFFF;
|
||
}
|
||
/* 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. */
|
||
#menuv4 ul ul {
|
||
position: absolute;
|
||
z-index: 500;
|
||
top: auto;
|
||
display: none;
|
||
}
|
||
#menuv4 ul ul ul {
|
||
top: 0;
|
||
left: 99%;
|
||
padding: 2em;
|
||
margin: -2em;
|
||
}
|
||
#menuv4 ul ul ul li {
|
||
border-left: 0.2em solid #EBEBEB;
|
||
}
|
||
/* Begin non-anchor hover selectors */
|
||
/* Enter the more specific element (div) selectoron non-anchor hovers for IE5.x to comply with theolder version of csshover.htc - V1.21.041022. Itimproves IE's performance speed to use the olderfile and this method */
|
||
div#menuv4 h2:hover {
|
||
background: #EBEBEB;
|
||
color: #FE5F14;
|
||
}
|
||
div#menuv4 li:hover {
|
||
cursor: pointer;
|
||
z-index: 100;
|
||
}
|
||
div#menuv4 li:hover ul ul, div#menuv4 li li:hover ul ul, div#menuv4 li li li:hover ul ul, div#menuv4 li li li li:hover ul ul {
|
||
display: none;
|
||
}
|
||
div#menuv4 li:hover ul, div#menuv4 li li:hover ul, div#menuv4 li li li:hover ul, div#menuv4 li li li li:hover ul {
|
||
display: block;
|
||
position: relativ: left: 10px;
|
||
}
|
||
/* End of non-anchor hover selectors */
|
||
|
||
body.menuv3 {
|
||
behavior: url("css/csshover.htc");
|
||
/*font-size: 14pt;*/
|
||
... | ... | |
/*border: 3px solid;*/
|
||
background-color: #FFFFFF;
|
||
color: #000000;
|
||
margin-top: 0.2em;
|
||
}
|
||
#menuv3 a, #menuv3 h2, #menuv3 div.x {
|
||
font-size: 80%;
|
||
... | ... | |
margin: 0;
|
||
padding: 0.3em 1em;
|
||
}
|
||
#menuv3 h2:before {
|
||
content: " ";
|
||
}
|
||
#menuv3 h2:after {
|
||
content: " ";
|
||
}
|
||
#menuv3 h2 {
|
||
background-color: #ffffff;
|
||
color: #000000;
|
||
... | ... | |
}
|
||
/* End of non-anchor hover selectors */
|
||
|
||
li.sub {
|
||
position: relativ;
|
||
left: 0.2em;
|
||
top: 0px;
|
||
background-color: #FFFFFF;
|
||
}
|
||
|
||
/* html menu */
|
||
/* types of lines: m sm i (menu submenu item)
|
||
each line is a mi (menuitem) and has one mii (menu-item-icon) whcih is ms (menu-spacer)
|
||
... | ... | |
body { margin: 0 }
|
||
|
||
@media print {
|
||
#menuv3, #menuv4, #html-menu, #frame-header, #js-menu { /* items with this class won't print */
|
||
#menuv3, #html-menu, #frame-header, #js-menu { /* items with this class won't print */
|
||
display: none;
|
||
}
|
||
#content.html-menu { margin-left: 0; }
|
css/lx-office-erp/menu.css | ||
---|---|---|
|
||
#menuv3 h2 {
|
||
color:#fff;
|
||
padding:0 5px;
|
||
padding:2px 10px;
|
||
}
|
||
|
||
#menuv3 a, #menuv3 a:visited, #menuv3 div.x, #menuv3 div.x:visited {
|
||
... | ... | |
#menuv3 a {
|
||
background:#eee;
|
||
}
|
||
|
||
#menuv3 div.x, #menuv3 div.x:visited {
|
||
background:#eee url(../../image/right.gif) no-repeat right;
|
||
}
|
||
... | ... | |
margin:0;
|
||
padding:0;
|
||
float:left;
|
||
min-width:7em;
|
||
}
|
||
|
||
#menuv3 li {
|
||
... | ... | |
|
||
#menuv3 ul ul ul {
|
||
top:0;
|
||
left:100%;
|
||
left:90%;
|
||
}
|
||
|
||
/* Begin non-anchor hover selectors */
|
||
... | ... | |
|
||
/* End of non-anchor hover selectors */
|
||
|
||
#menuv4 {
|
||
width:99.8%;
|
||
float:left;
|
||
background:url(../../image/bg_css_menu.png) repeat bottom;
|
||
border:1px solid;
|
||
border-color:#ccc #888 #555 #bbb;
|
||
}
|
||
|
||
#menuv4 a, #menuv4 h2, #menuv4 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;
|
||
}
|
||
|
||
#menuv4 h2 {
|
||
color:#fff;
|
||
padding:2px 10px;
|
||
}
|
||
|
||
#menuv4 a, #menuv4 a:visited, #menuv4 div.x, #menuv4 div.x:visited {
|
||
color:#000;
|
||
text-decoration:none;
|
||
padding-right:10px;
|
||
}
|
||
|
||
#menuv4 a {
|
||
background:#eee;
|
||
}
|
||
#menuv4 div.x, #menuv4 div.x:visited {
|
||
background:#eee url(../../image/right.gif) no-repeat right;
|
||
}
|
||
|
||
#menuv4 a:hover, #menuv4 div.x:hover {
|
||
color:#a00;
|
||
background-color:#ddd;
|
||
}
|
||
|
||
#menuv4 a:active, #menuv4 div.x:active {
|
||
color:#060;
|
||
background-color:#ccc;
|
||
}
|
||
|
||
#menuv4 ul {
|
||
list-style:none;
|
||
margin:0;
|
||
padding:0;
|
||
float:left;
|
||
}
|
||
|
||
#menuv4 li {
|
||
position:relative;
|
||
float:none;
|
||
border:0;
|
||
}
|
||
|
||
/* 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 */
|
||
#menuv4 ul li {
|
||
border:solid;
|
||
border-color:#ccd5e5;
|
||
border-width:0 0 1px 0;
|
||
}
|
||
|
||
#menuv4 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. */
|
||
#menuv4 ul ul {
|
||
position:absolute;
|
||
z-index:500;
|
||
top:auto;
|
||
display:none;
|
||
}
|
||
|
||
#menuv4 ul ul ul {
|
||
top:0;
|
||
left:90%;
|
||
}
|
||
|
||
/* 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#menuv4 h2:hover {
|
||
background:#A3C5FF;
|
||
color:#a00;
|
||
}
|
||
|
||
div#menuv4 li:hover {
|
||
cursor:pointer;
|
||
z-index:100;
|
||
}
|
||
|
||
div#menuv4 li:hover ul ul,
|
||
div#menuv4 li li:hover ul ul,
|
||
div#menuv4 li li li:hover ul ul,
|
||
div#menuv4 li li li li:hover ul ul
|
||
{display:none;}
|
||
|
||
div#menuv4 li:hover ul,
|
||
div#menuv4 li li:hover ul,
|
||
div#menuv4 li li li:hover ul,
|
||
div#menuv4 li li li li:hover ul
|
||
{display:block;}
|
||
|
||
/* End of non-anchor hover selectors */
|
||
|
||
/* html menu */
|
||
/* types of lines: m sm i (menu submenu item)
|
||
each line is a mi (menuitem) and has one mii (menu-item-icon) whcih is ms (menu-spacer)
|
||
... | ... | |
|
||
|
||
@media print {
|
||
#menuv3, #menuv4, #html-menu, #frame-header, #js-menu { /* items with this class won't print */
|
||
#menuv3, #html-menu, #frame-header, #js-menu { /* items with this class won't print */
|
||
display: none;
|
||
}
|
||
#content.html-menu { margin-left: 0; }
|
locale/de/all | ||
---|---|---|
'To add a user to a group edit a name, change the login name and save. A new user with the same variables will then be saved under the new login name.' => 'Um einer Gruppe einen neuen Benutzer hinzuzufügen, ändern und speichern Sie am einfachsten einen bestehenden Benutzernamen. Unter dem neuen Namen wird dann ein Benutzer mit denselben Einstellungen angelegt.',
|
||
'Top' => 'Oben',
|
||
'Top (CSS)' => 'Oben (mit CSS)',
|
||
'Top (CSS) new' => 'Oben (mit CSS, neu)',
|
||
'Top (Javascript)' => 'Oben (mit Javascript)',
|
||
'Top 100' => 'Top 100',
|
||
'Top 100 hinzufuegen' => 'Top 100 hinzufügen',
|
sql/Pg-upgrade2-auth/remove_menustyle_v4.sql | ||
---|---|---|
-- @tag: remove_menustyle_v4
|
||
-- @description: Menütyp "CSS (oben, neu)" wurde entfernt; also durch v3 ersetzen
|
||
-- @depends:
|
||
-- @charset: utf-8
|
||
UPDATE auth.user_config
|
||
SET cfg_value = 'v3'
|
||
WHERE ((cfg_key = 'menustyle')
|
||
AND (cfg_value = 'v4'));
|
templates/webpages/am/config.html | ||
---|---|---|
<select name="menustyle">
|
||
<option value="old"[% IF myconfig_menustyle == 'old' %] selected[% END %]>[% 'Old (on the side)' | $T8 %]</option>
|
||
<option value="v3"[% IF myconfig_menustyle == 'v3' %] selected[% END %]>[% 'Top (CSS)' | $T8 %]</option>
|
||
<option value="v4"[% IF myconfig_menustyle == 'v4' %] selected[% END %]>[% 'Top (CSS) new' | $T8 %]</option>
|
||
<option value="neu"[% IF myconfig_menustyle == 'neu' %] selected[% END %]>[% 'Top (Javascript)' | $T8 %]</option>
|
||
</select>
|
||
</td>
|
||
... | ... | |
maintab.init();
|
||
-->
|
||
</script>
|
||
|
templates/webpages/menu/menuv4.html | ||
---|---|---|
[%- USE T8 %]
|
||
[%- USE HTML %]
|
||
<div id="menuv4">
|
||
[% menu %]
|
||
</div>
|
||
<div style="clear: both;"></div>
|
||
|
||
<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);
|
||
}
|
||
$(clockon);
|
||
//-->
|
||
</script>
|
Auch abrufbar als: Unified diff
Menüsysteme v3 & v4 verschmolzen (Stil von v4, Name & Code von v3)