X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FController%2FRequirementSpec.pm;h=afbe2bba6f39254466bf9ad981ad07deaf38b7b1;hb=630c1ae7ea6477846e6f03263262a7ffef670caf;hp=b22e15f652026f1316fe1f7d12d43c5077f33bce;hpb=6ef53d3f84ed5471a251856b0d4b2ca42e2e3992;p=kivitendo-erp.git diff --git a/SL/Controller/RequirementSpec.pm b/SL/Controller/RequirementSpec.pm index b22e15f65..afbe2bba6 100644 --- a/SL/Controller/RequirementSpec.pm +++ b/SL/Controller/RequirementSpec.pm @@ -23,6 +23,7 @@ use SL::DB::RequirementSpec; use SL::Helper::CreatePDF qw(); use SL::Helper::Flash; use SL::Locale::String; +use SL::System::Process; use SL::Template::LaTeX; use Rose::Object::MakeMethods::Generic @@ -86,6 +87,7 @@ sub action_ajax_edit { $self->js ->hide('#basic_settings') ->after('#basic_settings', $html) + ->reinit_widgets ->render; } @@ -217,9 +219,16 @@ sub action_revert_to { sub action_create_pdf { my ($self, %params) = @_; + my $keep_temp_files = $::lx_office_conf{debug} && $::lx_office_conf{debug}->{keep_temp_files}; + my $temp_dir = File::Temp->newdir( + "kivitendo-print-XXXXXX", + DIR => SL::System::Process::exe_dir() . "/" . $::lx_office_conf{paths}->{userspath}, + CLEANUP => !$keep_temp_files, + ); + my $base_name = $self->requirement_spec->type->template_file_name || 'requirement_spec'; - my @pictures = $self->prepare_pictures_for_printing; - my %result = SL::Template::LaTeX->parse_and_create_pdf("${base_name}.tex", SELF => $self, rspec => $self->requirement_spec); + my @pictures = $self->prepare_pictures_for_printing($temp_dir->dirname); + my %result = SL::Template::LaTeX->parse_and_create_pdf("${base_name}.tex", SELF => $self, rspec => $self->requirement_spec, userspath => $temp_dir->dirname); unlink @pictures unless ($::lx_office_conf{debug} || {})->{keep_temp_files}; @@ -325,7 +334,8 @@ 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 kivi.Part kivi.CustomerVendor); + $::request->{layout}->use_javascript("${_}.js") for qw(jquery.jstree jquery/jquery.contextMenu jquery/jquery.hotkeys requirement_spec ckeditor/ckeditor ckeditor/adapters/jquery kivi.Part kivi.CustomerVendor + ckeditor/ckeditor ckeditor/adapters/jquery); $self->init_visible_section; return 1; @@ -374,7 +384,7 @@ sub init_includeable_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 => $::form->{"include_cvars_" . $_->name}) } @{ $self->cvar_configs } } if $::form->{_include_cvars_from_form}; return { map { ($_->name => ($_->includeable && $_->included_by_default)) } @{ $self->cvar_configs } }; } @@ -516,6 +526,8 @@ sub prepare_report { %column_defs = (%column_defs, %cvar_column_defs); } + my @cvar_column_form_names = ('_include_cvars_from_form', map { "include_cvars_" . $_->name } @{ $self->includeable_cvar_configs }); + $report->set_options( std_column_visibility => 1, controller_class => 'RequirementSpec', @@ -528,7 +540,7 @@ sub prepare_report { ); $report->set_columns(%column_defs); $report->set_column_order(@columns); - $report->set_export_options(qw(list filter)); + $report->set_export_options(qw(list filter), @cvar_column_form_names); $report->set_options_from_form; $self->models->set_report_generator_sort_options(report => $report, sortable_columns => \@sortable); } @@ -597,11 +609,11 @@ sub render_first_pasted_section_as_list { } sub prepare_pictures_for_printing { - my ($self) = @_; + my ($self, $userspath) = @_; my @files; - my $userspath = File::Spec->rel2abs($::lx_office_conf{paths}->{userspath}); - my $target = "${userspath}/kivitendo-print-requirement-spec-picture-" . Common::unique_id() . '-'; + $userspath ||= SL::System::Process::exe_dir() . "/" . $::lx_office_conf{paths}->{userspath}; + my $target = "${userspath}/kivitendo-print-requirement-spec-picture-" . Common::unique_id() . '-'; foreach my $picture (map { @{ $_->pictures } } @{ $self->requirement_spec->text_blocks }) { my $output_file_name = $target . $picture->id . '.' . $picture->get_default_file_name_extension;