X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FRequirementSpecTextBlock.pm;h=264b83b5ac07b4d43f1a8a9fb373106103397418;hb=deb4d2dbb676d7d6f69dfe7815d6e0cb09bd4a44;hp=02a27a537037f68f8457c406fa8f67d1972646d5;hpb=9bbb6912f72c14e23a25ec0a26e8d68b45b224b8;p=kivitendo-erp.git diff --git a/SL/Controller/RequirementSpecTextBlock.pm b/SL/Controller/RequirementSpecTextBlock.pm index 02a27a537..264b83b5a 100644 --- a/SL/Controller/RequirementSpecTextBlock.pm +++ b/SL/Controller/RequirementSpecTextBlock.pm @@ -8,7 +8,6 @@ use Carp; use Params::Validate (); use Time::HiRes (); -use SL::ClientJS; use SL::Clipboard; use SL::Controller::Helper::RequirementSpec; use SL::DB::RequirementSpec; @@ -23,9 +22,10 @@ use constant SORTABLE_PICTURE_LIST => 'kivi.requirement_spec.make_text_block_pic use Rose::Object::MakeMethods::Generic ( scalar => [ qw(text_block) ], - 'scalar --get_set_init' => [ qw(predefined_texts js picture) ], + 'scalar --get_set_init' => [ qw(predefined_texts picture) ], ); +__PACKAGE__->run_before('check_auth'); __PACKAGE__->run_before('load_requirement_spec_text_block', only => [qw(ajax_edit ajax_update ajax_delete ajax_flag dragged_and_dropped ajax_copy ajax_add_picture)]); # @@ -65,7 +65,7 @@ sub action_ajax_add { $self->add_new_text_block_form(output_position => $new_where, insert_after_id => $::form->{id}, requirement_spec_id => $::form->{requirement_spec_id}); - $self->invalidate_version->render($self); + $self->invalidate_version->render; } sub action_ajax_edit { @@ -85,6 +85,7 @@ sub action_ajax_edit { ->insertAfter($html, '#text-block-' . $self->text_block->id) ->jstree->select_node('#tree', '#tb-' . $self->text_block->id) ->focus('#edit_text_block_' . $self->text_block->id . '_title') + ->reinit_widgets ->render($self); } @@ -397,6 +398,11 @@ sub action_reorder_pictures { # filters # +sub check_auth { + my ($self) = @_; + $::auth->assert('requirement_spec_edit'); +} + sub load_requirement_spec_text_block { my ($self) = @_; $self->text_block(SL::DB::RequirementSpecTextBlock->new(id => $::form->{id})->load || die "No such requirement spec text block"); @@ -420,18 +426,13 @@ sub output_position_from_id { } sub init_predefined_texts { - return SL::DB::Manager::RequirementSpecPredefinedText->get_all_sorted; + return SL::DB::Manager::RequirementSpecPredefinedText->get_all_sorted(where => [ useable_for_text_blocks => 1 ]); } sub init_picture { return SL::DB::RequirementSpecPicture->new(id => $::form->{picture_id} || $::form->{id})->load; } -sub init_js { - my ($self) = @_; - $self->js(SL::ClientJS->new); -} - sub invalidate_version { my ($self) = @_; @@ -456,6 +457,7 @@ sub add_new_text_block_form { $self->js ->action($params{insert_after_id} ? 'insertAfter' : 'appendTo', $html, '#text-block-' . ($params{insert_after_id} || 'list')) + ->reinit_widgets ->focus('#' . $id_base . '_title'); } @@ -487,7 +489,7 @@ sub paste_picture { $self->text_block->save; })) { $::lxdebug->message(LXDebug::WARN(), "Error: " . $self->text_block->db->error); - return $self->js->error($::locale->text('Saving failed. Error message from the database: #1', $self->text_block->db->error))->render($self); + return $self->js->error($::locale->text('Saving failed. Error message from the database: #1', $self->text_block->db->error))->render; } my $html = $self->render('requirement_spec_text_block/_text_block_picture', { output => 0 }, picture => $self->picture); @@ -495,7 +497,7 @@ sub paste_picture { $self->invalidate_version ->append('#text-block-' . $self->text_block->id . '-pictures', $html) ->show('#text-block-' . $self->text_block->id . '-pictures') - ->render($self); + ->render; } 1;