X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/fec397bf76c75df4102a45444512572a686cbf24..945793f0b279b59e89523634dd998cc17766f31f:/SL/Controller/RequirementSpec.pm diff --git a/SL/Controller/RequirementSpec.pm b/SL/Controller/RequirementSpec.pm index f762b9794..d65ce8926 100644 --- a/SL/Controller/RequirementSpec.pm +++ b/SL/Controller/RequirementSpec.pm @@ -207,7 +207,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); } @@ -265,6 +265,33 @@ sub action_paste_template { $self->invalidate_version->render($self); } +sub action_renumber_sections { + my ($self) = @_; + + my %numbers = map { ($_ => 1) } qw(section function_block); + my %formats = map { my $method = "${_}_number_format"; ($_ => $self->requirement_spec->type->$method) } qw(section function_block); + my @items = @{ $self->requirement_spec->sections_sorted }; + + $self->requirement_spec->db->with_transaction(sub { + while (@items) { + my $item = shift @items; + my $type = $item->parent_id ? 'function_block' : 'section'; + + $item->update_attributes(fb_number => SL::PrefixedNumber->new(number => $formats{$type} || 0)->set_to($numbers{$type})); + + $numbers{$type}++; + + unshift @items, @{ $item->children_sorted }; + } + + $self->requirement_spec->invalidate_version unless $self->requirement_spec->is_template; + + 1; + }); + + $self->redirect_to(action => 'show', id => $self->requirement_spec->id); +} + # # filters # @@ -274,7 +301,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;