Revision 19f44ce2
Von Moritz Bunkus vor etwa 8 Jahren hinzugefügt
SL/Controller/RequirementSpecItem.pm | ||
---|---|---|
94 | 94 |
$self->item->add_to_list(position => $position, reference => $::form->{dropped_id} || undef); |
95 | 95 |
}); |
96 | 96 |
|
97 |
$self->item(SL::DB::RequirementSpecItem->new(id => $self->item->id)->load); |
|
98 |
my $new_section = $self->item->section; |
|
99 |
my $new_visible_section = SL::DB::RequirementSpecItem->new(id => $self->visible_item->id)->load->section; |
|
100 |
|
|
101 | 97 |
return $self->invalidate_version->render if !$old_visible_section || ($new_type eq 'section'); |
102 | 98 |
|
103 | 99 |
# From here on $old_visible_section is definitely set. |
104 | 100 |
|
101 |
$self->item(SL::DB::RequirementSpecItem->new(id => $self->item->id)->load); |
|
102 |
my $new_section = $self->item->section; |
|
103 |
my $new_visible_section = SL::DB::RequirementSpecItem->new(id => $self->visible_item->id)->load->section; |
|
104 |
|
|
105 | 105 |
my $old_parent = SL::DB::RequirementSpecItem->new(id => $old_parent_id)->load; |
106 | 106 |
my $old_section = $old_parent->section; |
107 | 107 |
|
Auch abrufbar als: Unified diff
Pflichtenheft: Zugriff auf nicht vorhandenes »visible_item« verhindern
Sind im Baum gerade Textblöcke ausgewählt, so liefert die Funktion
»visible_item« undef zurück, weil aktuell kein Item (= Abschnitt oder
Funktionsblock) sichtbar ist.
Wird in so einem Moment ein Abschnitt oder Funktionsblock per Drag &
Drop verschoben, so darf daher kein Zugriff auf Funktionen von
»visible_item« stattfinden. Die Prüfung, ob aktuell überhaupt Abschnitte
zu sehen sind, muss daher vorher erfolgen.