From: Nick J. <nje...@us...> - 2002-02-02 01:41:13
|
Update of /cvsroot/sandweb/sandweb/bin In directory usw-pr-cvs1:/tmp/cvs-serv17875/bin Modified Files: sandweb.cgi Log Message: * lots of work done on the repository menu, it's still not operational but is comming along. There are lots of issues due to the fact that lots of development was done *before* multiple repositories were in place, so theres alot of code that will need to be changed. Index: sandweb.cgi =================================================================== RCS file: /cvsroot/sandweb/sandweb/bin/sandweb.cgi,v retrieving revision 1.146 retrieving revision 1.147 diff -U2 -r1.146 -r1.147 --- sandweb.cgi 2002/02/01 23:31:12 1.146 +++ sandweb.cgi 2002/02/02 01:41:09 1.147 @@ -210,6 +210,24 @@ } elsif ( $action eq 'repository_menu' ) { + my $rs = CGI::param('repository_selected'); + my $rn = CGI::param('repo_name'); + my $s = CGI::param('server'); + my $un = CGI::param('usr_name'); + my $rt = CGI::param('repo_type'); + my $c = CGI::param('connection'); + my $r = CGI::param('root'); + my $nr = CGI::param('new_repository'); + my $s = CGI::param('Submit'); repository_menu( ck_auth => $ck_auth, + repository_selected => $rs, + repo_name => $rn, + server => $s, + usr_name => $un, + repo_type => $rt, + connection => $c, + root => $r, + new_repository => $nr, + submit => $s, ); } @@ -991,22 +1009,79 @@ # # ck_auth - cookie data +# repository_selected - name of selected repository +# repository_name - name of repository selected +# repo_name - name of repository +# server - name of repositories server +# usr_name - user name for repository +# repo_type - type of repository (CVS, RSH, arch, subversion etc). +# connection - connection type +# root - repository root # sub repository_menu { my %args = @_; my $ck_auth = $args{'ck_auth'}; + my $repository_selected = $args{'repository_selected'}; + my $repo_name = $args{'repo_name'}; + my $server = $args{'server'}; + my $usr_name = $args{'usr_name'}; + my $repo_type = $args{'repo_type'}; + my $connection = $args{'connection'}; + my $root = $args{'root'}; + my $new_repository = $args{'new_repository'} ? 1 : 0; + my $submit = $args{'submit'} ? 1 : 0; + + $log->debug("entering repository_menu\n"); + + use Data::Dumper; + $log->debug("<pre>" . Dumper(\%args) . "</pre>"); + # check cookie unless ($ck_auth) { + $log->debug("bad cookie '$ck_auth'\n"); &login_menu(); exit 0; } + my $new_string = 'Add a new repository'; my $username = $auth->get_userinfo('username'); my $users_dir = $config->{'paths'}->{'users_dir'}; - # get list of repositories - my @repos = sort keys %{$repository_settings}; - my $repo_selected = $repos[0]; # default for pulldown + my @repos = sort keys %{$repository_settings}; # get list of repositories + $log->debug("<pre>" . Dumper(\%{$repository_settings}) . "</pre>"); + + if (($repository_selected) && ($repository_selected != $new_string)) { + my $valid = 0; + # verify repository name + foreach my $repo (@repos) { + if ($repository_selected eq $repo) { + $repo_name = $repo; + $valid = 1; + } + } + if (!$valid) { + # bad repository name + set_error("Invalid repository name: $repository_selected\n"); + $repository_selected = $new_string; + $repo_name = ''; + } + } + + if ((($repository_selected eq $repo_name) && ($submit)) || (($new_repository) && ($submit))) { + # modified existing repository and commited or + # added new repository and commited + # commit data to file + + } elsif (($repository_selected eq $new_string) && (!$new_repository)) { + # repository selected was 'add new repository' + # new repository display + } elsif ($repository_selected) { + # display existing repository + $server = $repository_settings->{$repository_selected}->{'server'}; + $usr_name = $repository_settings->{$repository_selected}->{'usr_name'}; + $connection = $repository_settings->{$repository_selected}->{'connection'}; + $repo_type = $repository_settings->{$repository_selected}->{'repo_type'}; + $root = $repository_settings->{$repository_selected}->{'root'}; + } + # selected repository data - my $repo_type = $repository_settings->{$repo_selected}->{'repo_type'}; - my $connection = $repository_settings->{$repo_selected}->{'connection'}; my $vcsroot; @@ -1019,4 +1094,5 @@ my @connections = $repository->get_connections(); my @repo_types = $repository->get_repo_types(); + my $repository_selected = ($repository_selected) ? $repository_selected : $repos[0]; # default for pulldown # loop data @@ -1027,5 +1103,5 @@ foreach my $repo (@repos) { my %entries; - if ($repo_selected eq $repo) { + if (($repository_selected eq $repo) && ($repository_selected != $new_string)) { $entries{REPOSITORY_ENTRY} = "<option selected>$repo</option>"; } else { @@ -1036,9 +1112,9 @@ # add new repo my %tmp; - if ($repo_selected eq 'Add New Repository') { - $tmp{REPOSITORY_ENTRY} = "<option select>Add New Repository</option>"; + if ($repository_selected eq $new_string) { + $tmp{REPOSITORY_ENTRY} = "<option selected>$new_string</option>"; } else { - $tmp{REPOSITORY_ENTRY} = "<option>Add New Repository</option>"; + $tmp{REPOSITORY_ENTRY} = "<option>$new_string</option>"; } @@ -1068,4 +1144,5 @@ } + my $content = $ui->get_menu( MENU => 'repository', @@ -1074,4 +1151,5 @@ LOOP_REPO_TYPE => \@loop_repo_type, LOOP_REPOSITORY_SELECT => \@loop_repository_select, + REPOSITORY_SELECTED => $repository_selected, ); |