X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c1569bc195865fa5c25c6945bbad78c872fa2046..2eb2bc5583f28aa5f9bb18c2cd314995d0570f8c:/SL/Presenter/RequirementSpecItem.pm diff --git a/SL/Presenter/RequirementSpecItem.pm b/SL/Presenter/RequirementSpecItem.pm index cdf05cf36..c9653e7ac 100644 --- a/SL/Presenter/RequirementSpecItem.pm +++ b/SL/Presenter/RequirementSpecItem.pm @@ -5,20 +5,28 @@ use strict; use parent qw(Exporter); use Exporter qw(import); -our @EXPORT = qw(requirement_spec_item_jstree_data requirement_spec_item_dependency_list); +our @EXPORT = qw(requirement_spec_item_tree_node_title requirement_spec_item_jstree_data requirement_spec_item_dependency_list); use Carp; +sub requirement_spec_item_tree_node_title { + my ($self, $item) = @_; + + return join(' ', map { $_ || '' } ($item->fb_number, $self->truncate($item->parent_id ? $item->description : $item->title, at => 30), '<' . $item->id . '>')); +} + sub requirement_spec_item_jstree_data { my ($self, $item, %params) = @_; - my @children = map { $self->requirement_spec_item_jstree_data($_, %params) } @{ $item->sorted_children }; - my $type = !$item->parent_id ? 'section' : 'functionblock'; + my @children = map { $self->requirement_spec_item_jstree_data($_, %params) } @{ $item->children_sorted }; + my $type = !$item->parent_id ? 'section' : 'function-block'; + my $class = $type . '-context-menu'; + $class .= ' flagged' if $item->is_flagged; return { - data => join(' ', map { $_ || '' } ($item->fb_number, $item->title)), + data => $self->requirement_spec_item_tree_node_title($item), metadata => { id => $item->id, type => $type }, - attr => { id => "fb-" . $item->id, href => $params{href} || '#' }, + attr => { id => "fb-" . $item->id, href => $params{href} || '#', class => $class }, children => \@children, }; }