Pflichtenheft: Zugriff auf nicht vorhandenes »visible_item« verhindern
[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 List::Util qw(max);
7 use URI;
8
9 sub init_sub_layouts {
10   [
11     SL::Layout::None->new,
12     SL::Layout::Top->new,
13   ]
14 }
15
16 sub use_javascript {
17   my $self = shift;
18   qw(
19     js/dhtmlsuite/menu-for-applications.js
20   ),
21   $self->SUPER::use_javascript(@_);
22 }
23
24 sub javascripts_inline {
25   $_[0]->SUPER::javascripts_inline,
26 <<'EOJS'
27   DHTMLSuite.createStandardObjects();
28   DHTMLSuite.configObj.setImagePath('image/dhtmlsuite/');
29   var menu_model = new DHTMLSuite.menuModel();
30   menu_model.addItemsFromMarkup('main_menu_model');
31   menu_model.init();
32   var menu_bar = new DHTMLSuite.menuBar();
33   menu_bar.addMenuItems(menu_model);
34   menu_bar.setTarget('main_menu_div');
35   menu_bar.init();
36 EOJS
37 }
38
39 sub pre_content {
40   $_[0]->SUPER::pre_content .
41   $_[0]->presenter->render("menu/menunew",
42     force_ul_width  => 1,
43     menu            => $_[0]->menu,
44     icon_path       => sub { my $img = "image/icons/16x16/$_[0].png"; -f $img ? $img : () },
45     max_width       => sub { 10 * max map { length $::locale->text($_->{name}) } @{ $_[0]{children} || [] } },
46   );
47 }
48
49 sub start_content {
50   "<div id='content'>\n";
51 }
52
53 sub end_content {
54   "</div>\n";
55 }
56
57 sub stylesheets {
58   $_[0]->add_stylesheets(qw(
59     dhtmlsuite/menu-item.css
60     dhtmlsuite/menu-bar.css
61     icons16.css
62     menu.css
63   ));
64   $_[0]->SUPER::stylesheets;
65 }
66
67 1;