minor changes to drag and drop
This commit is contained in:
parent
c812705537
commit
9c5082f450
2 changed files with 31 additions and 20 deletions
|
|
@ -316,22 +316,29 @@ $self->session->errorHandler->error("In Drag Drop ".Dumper $p);
|
|||
$self->helper->insertObject($target, [$bid[0]]);
|
||||
}elsif(@tid == 2){#questions can be moved to any section, but a pushed to the end of a new section.
|
||||
if(@bid == 1){#moved to a new section or head of current section
|
||||
if($bid[0] == $tid[0]){#moved to top of current section
|
||||
if($bid[0] == $tid[0]){
|
||||
#moved to top of current section
|
||||
$bid[1] = -1;
|
||||
}else{
|
||||
#else move to the end of the selected section
|
||||
$bid[1] = $#{$self->helper->questions([$bid[0]])};
|
||||
}
|
||||
}
|
||||
$self->helper->insertObject($target, [$bid[0],$bid[1]]);
|
||||
}elsif(@tid == 3){#answers can only be rearranged in the same question
|
||||
if(@$bid == 2 and $bid[1] == $tid[1]){
|
||||
if(@bid == 2 and $bid[1] == $tid[1]){
|
||||
$bid[2] = -1;
|
||||
$self->helper->insertObject($target, [$bid[0],$bid[1],$bid[2]]);
|
||||
}elsif(@$bid == 3){
|
||||
}elsif(@bid == 3){
|
||||
$self->helper->insertObject($target, [$bid[0],$bid[1],$bid[2]]);
|
||||
}else{
|
||||
$self->helper->insertObject($target, \@tid);#else put it back where it was
|
||||
#else put it back where it was
|
||||
$self->helper->insertObject($target, \@tid);
|
||||
}
|
||||
}
|
||||
|
||||
$self->saveSurveyJSON();
|
||||
$self->session->errorHandler->error("Finsihed Drag Drop ".Dumper $self->helper->freeze());
|
||||
|
||||
return $self->www_loadSurvey({address => $address});
|
||||
}
|
||||
|
|
@ -353,13 +360,13 @@ $self->session->errorHandler->error("Entering loadSurvey");
|
|||
}
|
||||
}
|
||||
my $message = defined $options->{message} ? $options->{message} : '';
|
||||
$self->session->errorHandler->error("Getting edit vars:".join(',',@$address));
|
||||
#$self->session->errorHandler->error("Getting edit vars:".join(',',@$address));
|
||||
my $var = defined $options->{var} ? $options->{var} : $self->helper->getEditVars($address);
|
||||
|
||||
$self->session->errorHandler->error("Got edit vars");
|
||||
$self->session->errorHandler->error("Loaded beginning params ".join(',',@$address));
|
||||
my $editHtml;
|
||||
$self->session->errorHandler->error("The edit vars:".Dumper $var);
|
||||
#$self->session->errorHandler->error("The edit vars:".Dumper $var);
|
||||
if($var->{type} eq 'section'){
|
||||
$editHtml = $self->processTemplate($var,$self->get("sectionEditTemplateId"));
|
||||
}elsif($var->{type} eq 'question'){
|
||||
|
|
@ -369,7 +376,7 @@ $self->session->errorHandler->error("The edit vars:".Dumper $var);
|
|||
|
||||
my %buttons;
|
||||
my $data = $self->helper->getDragDropList($address);
|
||||
$self->session->errorHandler->error("The DD data :".Dumper $data);
|
||||
#$self->session->errorHandler->error("The DD data :".Dumper $data);
|
||||
my $html;
|
||||
my ($scount,$qcount,$acount) = (-1,-1,-1);
|
||||
my $lastType;
|
||||
|
|
@ -449,7 +456,7 @@ $self->session->errorHandler->error("The DD data :".Dumper $data);
|
|||
$buttons{'section'} = "$lastId{section}";
|
||||
}
|
||||
}
|
||||
$self->session->errorHandler->error($html);
|
||||
#$self->session->errorHandler->error($html);
|
||||
|
||||
#address is the address of the focused object
|
||||
#buttons are the data to create the Add buttons
|
||||
|
|
@ -458,11 +465,11 @@ $self->session->errorHandler->error($html);
|
|||
#ids is a list of all ids passed in which are draggable (for adding events)
|
||||
#type is the object type
|
||||
my $return = {"address",$address,"buttons",\%buttons,"edithtml",$editHtml,"ddhtml",$html,"ids",\@ids,"type",$var->{type}};
|
||||
$self->session->errorHandler->error(Dumper $return);
|
||||
#$self->session->errorHandler->error(Dumper $return);
|
||||
eval{
|
||||
$self->session->errorHandler->error(encode_json($return));
|
||||
# $self->session->errorHandler->error(encode_json($return));
|
||||
};
|
||||
$self->session->errorHandler->error($@);
|
||||
#$self->session->errorHandler->error($@);
|
||||
|
||||
$self->session->errorHandler->error("Returning from loadSurvey");
|
||||
return encode_json($return);
|
||||
|
|
|
|||
|
|
@ -58,11 +58,11 @@ eval{
|
|||
if($address->[0] == $i){
|
||||
|
||||
for(my $x = 0; $x <= $#{$self->questions($address)}; $x++){
|
||||
$self->log("dd'ing questions".$#{$self->questions});
|
||||
#$self->log("dd'ing questions".$#{$self->questions});
|
||||
push(@data,{text=>$self->question([$i,$x])->{text}, type=>'question'});
|
||||
if($address->[1] == $x){
|
||||
for(my $y = 0; $y <= $#{$self->answers($address)}; $y++){
|
||||
$self->log("dd'ing answers".$#{$self->answers});
|
||||
#$self->log("dd'ing answers".$#{$self->answers});
|
||||
push(@data,{text=>$self->answer([$i,$x,$y])->{text}, type=>'answer'});
|
||||
}
|
||||
}
|
||||
|
|
@ -71,7 +71,7 @@ $self->log("dd'ing answers".$#{$self->answers});
|
|||
}
|
||||
};
|
||||
$self->log($@);
|
||||
$self->log('finished dding');
|
||||
#$self->log('finished dding');
|
||||
return \@data;
|
||||
}
|
||||
|
||||
|
|
@ -166,25 +166,29 @@ $self->log("$object didn't exist");
|
|||
# ref should contain all the information for the new
|
||||
sub insertObject{
|
||||
my ($self,$object,$address) = @_;
|
||||
|
||||
$self->log("Inserting ".join(',',@$address));
|
||||
if(@$address == 1){
|
||||
splice(@{$self->sections($address)},$$address[0] + 1, 0, $object);
|
||||
}elsif(@$address == 2)
|
||||
}elsif(@$address == 2){
|
||||
splice(@{$self->questions($address)},$$address[1] + 1, 0, $object);
|
||||
}elsif(@$address == 3)
|
||||
}elsif(@$address == 3){
|
||||
splice(@{$self->answers($address)},$$address[2] + 1, 0, $object);
|
||||
}
|
||||
$self->log("Finished inserting ");
|
||||
|
||||
}
|
||||
sub remove{
|
||||
my ($self,$address,$movingOverride) = @_;
|
||||
if(@$address == 1){
|
||||
splice(@{$self->{sections}},$$address[0],1) if($$address[0] != 0 and ! defined $movingOverride);#can't delete the first section
|
||||
$self->log("removing here $$address[0] :".$#{$self->sections}) if($$address[0] != 0 or defined $movingOverride);;
|
||||
splice(@{$self->{sections}},$$address[0],1) if($$address[0] != 0 or defined $movingOverride);#can't delete the first section
|
||||
$self->log("removing here $$address[0] :".$#{$self->sections});
|
||||
}elsif(@$address == 2){
|
||||
$self->log('removing here');
|
||||
$self->log("removing here $$address[0] $$address[1]");
|
||||
splice(@{$self->questions($address)},$$address[1],1);
|
||||
|
||||
}elsif(@$address == 3){
|
||||
$self->log("removing here $$address[0] $$address[1] $$address[2]");
|
||||
splice(@{$self->answers($address)},$$address[2],1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue