X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/e822adb3f7c61a1148cd6f73be2bb302ab704e0f..61d88e69bd686dcc00bc3cb0cbfa37bc808cebeb:/SL/Controller/RequirementSpec.pm diff --git a/SL/Controller/RequirementSpec.pm b/SL/Controller/RequirementSpec.pm index d88ec8f29..3158cd09a 100644 --- a/SL/Controller/RequirementSpec.pm +++ b/SL/Controller/RequirementSpec.pm @@ -21,6 +21,7 @@ use SL::DB::RequirementSpecRisk; use SL::DB::RequirementSpecStatus; use SL::DB::RequirementSpecType; use SL::DB::RequirementSpec; +use SL::Helper::CreatePDF qw(); use SL::Helper::Flash; use SL::Locale::String; use SL::Template::LaTeX; @@ -29,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) ], + current_text_block_output_position models time_based_units html_template) ], ); __PACKAGE__->run_before('setup'); @@ -207,7 +208,7 @@ sub action_revert_to { my $version = $versioned_copy->versions->[0]; $version->update_attributes(working_copy_id => $self->requirement_spec->id); - flash_later('info', t8('The requirement spec has been reverted to version #1.', $self->requirement_spec->version->version_number)); + flash_later('info', t8('The requirement spec has been reverted to version #1.', $versioned_copy->version->version_number)); $self->js->redirect_to($self->url_for(action => 'show', id => $self->requirement_spec->id))->render($self); } @@ -231,6 +232,27 @@ sub action_create_pdf { unlink $result{file_name}; } +sub action_create_html { + my ($self, %params) = @_; + + my $base_name = $self->requirement_spec->type->template_file_name || 'requirement_spec'; + my @pictures = $self->prepare_pictures_for_printing; + my $content = SL::Helper::CreatePDF->create_parsed_file( + template => "${base_name}.html", + format => 'html', + template_type => 'HTML', + variables => { + SELF => $self, + rspec => $self->requirement_spec, + }); + + # $content is now a scalar of bytes, but $self->render() expects a + # scalar of characters. + $content = Encode::decode('utf-8', $content); + + $self->render(\$content, { layout => 0, process => 0 }); +} + sub action_select_template_to_paste { my ($self) = @_; @@ -301,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); + $::request->{layout}->use_javascript("${_}.js") for qw(jquery.jstree jquery/jquery.contextMenu jquery/jquery.hotkeys requirement_spec ckeditor/ckeditor ckeditor/adapters/jquery autocomplete_part); $self->init_visible_section; return 1; @@ -613,4 +635,11 @@ sub init_models { ); } +sub init_html_template { + my ($self) = @_; + my $base_name = $self->requirement_spec->type->template_file_name || 'requirement_spec'; + my $template = SL::Helper::CreatePDF->find_template(name => $base_name, extension => 'html'); + return !!$template; +} + 1;