Projekt

Allgemein

Profil

Herunterladen (1,26 KB) Statistiken
| Zweig: | Markierung: | Revision:
c1569bc1 Moritz Bunkus
package SL::Presenter::RequirementSpecItem;

use strict;

use parent qw(Exporter);

use Exporter qw(import);
442b26e2 Moritz Bunkus
our @EXPORT = qw(requirement_spec_item_tree_node_title requirement_spec_item_jstree_data requirement_spec_item_dependency_list);
c1569bc1 Moritz Bunkus
use Carp;

442b26e2 Moritz Bunkus
sub requirement_spec_item_tree_node_title {
my ($self, $item) = @_;

3fbb0b9b Moritz Bunkus
return join(' ', map { $_ || '' } ($item->fb_number, $self->truncate($item->parent_id ? $item->description_as_stripped_html : $item->title, at => 30)));
442b26e2 Moritz Bunkus
}

c1569bc1 Moritz Bunkus
sub requirement_spec_item_jstree_data {
my ($self, $item, %params) = @_;

84fc52bd Moritz Bunkus
my @children = map { $self->requirement_spec_item_jstree_data($_, %params) } @{ $item->children_sorted };
1f592a0f Moritz Bunkus
my $type = !$item->parent_id ? 'section' : 'function-block';
786437b6 Moritz Bunkus
my $class = $type . '-context-menu tooltip';
90f4ba5d Moritz Bunkus
$class .= ' flagged' if $item->is_flagged;
c1569bc1 Moritz Bunkus
return {
442b26e2 Moritz Bunkus
data => $self->requirement_spec_item_tree_node_title($item),
c1569bc1 Moritz Bunkus
metadata => { id => $item->id, type => $type },
786437b6 Moritz Bunkus
attr => { id => "fb-" . $item->id, href => $params{href} || '#', class => $class, title => $item->content_excerpt },
c1569bc1 Moritz Bunkus
children => \@children,
};
}

sub requirement_spec_item_dependency_list {
my ($self, $item) = @_;

$::locale->language_join([ map { $_->fb_number } @{ $item->dependencies } ]);
}

1;