X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FController%2FRequirementSpec.pm;h=1e3618112dd7351505868cd21a614723e63d2b18;hb=e73ff77bd82ac037e7189d0d30397dc08d8c9584;hp=e249196d19a9bb6cd64b5fb1c9ddaa402a2d3a97;hpb=680c9d5c8ed0bd4101384ca1b89a9405b8c2c49e;p=kivitendo-erp.git diff --git a/SL/Controller/RequirementSpec.pm b/SL/Controller/RequirementSpec.pm index e249196d1..1e3618112 100644 --- a/SL/Controller/RequirementSpec.pm +++ b/SL/Controller/RequirementSpec.pm @@ -30,7 +30,7 @@ use Rose::Object::MakeMethods::Generic ( scalar => [ qw(requirement_spec_item visible_item visible_section) ], 'scalar --get_set_init' => [ qw(requirement_spec customers types statuses complexities risks projects project_types project_statuses default_project_type default_project_status copy_source js - current_text_block_output_position models time_based_units html_template) ], + current_text_block_output_position models time_based_units html_template cvar_configs includeable_cvar_configs include_cvars) ], ); __PACKAGE__->run_before('setup'); @@ -323,7 +323,7 @@ sub setup { $::auth->assert('requirement_spec_edit'); $::request->{layout}->use_stylesheet("${_}.css") for qw(jquery.contextMenu requirement_spec); - $::request->{layout}->use_javascript("${_}.js") for qw(jquery.jstree jquery/jquery.contextMenu jquery/jquery.hotkeys requirement_spec ckeditor/ckeditor ckeditor/adapters/jquery autocomplete_part); + $::request->{layout}->use_javascript("${_}.js") for qw(jquery.jstree jquery/jquery.contextMenu jquery/jquery.hotkeys requirement_spec ckeditor/ckeditor ckeditor/adapters/jquery autocomplete_part autocomplete_customer); $self->init_visible_section; return 1; @@ -340,6 +340,7 @@ sub init_risks { SL::DB::Manager::RequirementSpecRisk->get_all_ sub init_statuses { SL::DB::Manager::RequirementSpecStatus->get_all_sorted } sub init_time_based_units { SL::DB::Manager::Unit->time_based_units } sub init_types { SL::DB::Manager::RequirementSpecType->get_all_sorted } +sub init_cvar_configs { SL::DB::Manager::CustomVariableConfig->get_all_sorted(where => [ module => 'RequirementSpecs' ]) } sub init_customers { my ($self) = @_; @@ -365,6 +366,17 @@ sub init_current_text_block_output_position { $self->current_text_block_output_position($::form->{current_content_type} !~ m/^(?:text-blocks|tb)-(front|back)/ ? -1 : $1 eq 'front' ? 0 : 1); } +sub init_includeable_cvar_configs { + my ($self) = @_; + return [ grep { $_->includeable } @{ $self->cvar_configs } ]; +} + +sub init_include_cvars { + my ($self) = @_; + return $::form->{include_cvars} if $::form->{include_cvars} && (ref($::form->{include_cvars}) eq 'HASH'); + return { map { ($_->name => ($_->includeable && $_->included_by_default)) } @{ $self->cvar_configs } }; +} + # # helpers # @@ -473,7 +485,21 @@ sub prepare_report { ); } - map { $column_defs{$_}->{text} ||= $::locale->text( $self->models->get_sort_spec->{$_}->{title} ) } keys %column_defs; + $column_defs{$_}->{text} ||= $::locale->text( $self->models->get_sort_spec->{$_}->{title} ) for keys %column_defs; + + if (!$is_template) { + my %cvar_column_defs = map { + my $cfg = $_; + (('cvar_' . $cfg->name) => { + sub => sub { my $var = $_[0]->cvar_by_name($cfg->name); $var ? $var->value_as_text : '' }, + text => $cfg->description, + visible => $self->include_cvars->{ $cfg->name } ? 1 : 0, + }) + } @{ $self->includeable_cvar_configs }; + + push @columns, map { 'cvar_' . $_->name } @{ $self->includeable_cvar_configs }; + %column_defs = (%column_defs, %cvar_column_defs); + } $report->set_options( std_column_visibility => 1,