Layout: Content als eigenes Layout und Split compositor
[kivitendo-erp.git] / SL / Layout / Javascript.pm
1 package SL::Layout::Javascript;
2
3 use strict;
4 use parent qw(SL::Layout::Base);
5
6 use SL::Layout::None;
7 use SL::Layout::Top;
8 use SL::Layout::Content;
9
10 use List::Util qw(max);
11 use URI;
12
13 sub init_sub_layouts {
14   [
15     SL::Layout::None->new,
16     SL::Layout::Top->new,
17     SL::Layout::Content->new,
18   ]
19 }
20
21 sub use_javascript {
22   my $self = shift;
23   qw(
24     js/dhtmlsuite/menu-for-applications.js
25   ),
26   $self->SUPER::use_javascript(@_);
27 }
28
29 sub javascripts_inline {
30   $_[0]->SUPER::javascripts_inline,
31 <<'EOJS'
32   DHTMLSuite.createStandardObjects();
33   DHTMLSuite.configObj.setImagePath('image/dhtmlsuite/');
34   var menu_model = new DHTMLSuite.menuModel();
35   menu_model.addItemsFromMarkup('main_menu_model');
36   menu_model.init();
37   var menu_bar = new DHTMLSuite.menuBar();
38   menu_bar.addMenuItems(menu_model);
39   menu_bar.setTarget('main_menu_div');
40   menu_bar.init();
41 EOJS
42 }
43
44 sub pre_content {
45   $_[0]->SUPER::pre_content .
46   $_[0]->presenter->render("menu/menunew",
47     force_ul_width  => 1,
48     menu            => $_[0]->menu,
49     icon_path       => sub { my $simg = "image/icons/svg/$_[0].svg";  my $pimg="image/icons/16x16/$_[0].png"; -f $simg ? $simg : ( -f $pimg ? $pimg : ()) },
50     max_width       => sub { 10 * max map { length $::locale->text($_->{name}) } @{ $_[0]{children} || [] } },
51   );
52 }
53
54 sub stylesheets {
55   $_[0]->add_stylesheets(qw(
56     dhtmlsuite/menu-item.css
57     dhtmlsuite/menu-bar.css
58     icons16.css
59     menu.css
60   ));
61   $_[0]->SUPER::stylesheets;
62 }
63
64 1;