if (defined($q->param())) {
if ($q->param('action') eq 'add') {
if ($q->param('confirm')) {
if ($q->param('commit')) {
&commit_dialog();
} else {
&confirm_dialog();
}
} else {
&add_dialog();
}
} elsif ($q->param('action') eq 'remove') {
if ($q->param('confirm')){
if ($q->param('commit')) {
&commit_dialog();
} else {
&confirm_dialog();
}
} else {
&choose_dialog();
}
} elsif ($q->param('action') eq 'modify') {
if ($q->param('confirm')) {
if ($q->param('commit')) {
&commit_dialog();
} else {
&confirm_dialog();
}
} else {
&choose_dialog();
}
} else {
&action_dialog();
}
} else {
&action_dialog();
}
####
sub get_branch_function {
my $query = shift;
my $action = $query->param('action') || 0;
my $confirm = $query->param('confirm') ? 1 : 0;
my $commit = $query->param('commit') ? 1 : 0;
my %dispatch = (
add => {
confirm => {
commit => \&commit_dialog,
default => \&add_dialog,
},
default => \&add_dialog,
},
remove => {
confirm => {
commit => \&commit_dialog,
default => \&confirm_dialog,
},
default => \&choose_dialog,
},
modify => {
confirm => {
commit => \&commit_dialog,
default => \&confirm_dialog,
},
default => \&choose_dialog,
},
default => \&action_dialog
);
if ( ! exists $dispatch{ $action } ) {
return $dispatch{ default }
} elsif ( ! $confirm ) {
return $dispatch{ $action }{ default };
} elsif ( ! $commit ) {
return $dispatch{ $action }{ confirm }{ default };
} else {
return $dispatch{ $action }{ confirm }{ commit };
}
}
####
my %dispatch = (
add => {
confirm => {
commit => \&commit_dialog,
default => \&confirm_dialog,
},
default => \&update_dialog,
},
remove => {
confirm => {
commit => \&commit_dialog,
default => \&confirm_dialog,
},
default => \&choose_dialog,
},
####
modify => {
update => {
confirm => {
commit => \&commit_dialog,
default => \&confirm_dialog,
},
default => \&update_dialog,
},
default => \&choose_dialog,
},
####
default => \&action_dialog
);
####
sub dispatch_table {
my $q = shift;
my $action = $q->param('action') || 0;
my $confirm = $q->param('confirm') ? 1 : 0;
my $commit = $q->param('commit') ? 1 : 0;
my $update = $q->param{'update') ? 1 : 0;
my %dispatch = (
add => {
confirm => {
commit => \&commit_dialog,
default => \&confirm_dialog,
},
default => \&update_dialog,
},
remove => {
confirm => {
commit => \&commit_dialog,
default => \&confirm_dialog,
},
default => \&choose_dialog,
},
modify => {
update => {
confirm => {
commit => \&commit_dialog,
default => \&confirm_dialog,
},
default => \&update_dialog,
},
default => \&choose_dialog,
},
default => \&action_dialog
);
####
if (! exists $dispatch{$action}) {
return $dispatch{default}
} elsif (! $confirm) {
return $dispatch{$action}{default};
} elsif (! $commit) {
return $dispatch{$action}{confirm}{default};
} else {
return $dispatch{$action}{confirm}{commit};
}
}