[Bio] / FigWebServices / subsys.cgi Repository:
ViewVC logotype

Diff of /FigWebServices/subsys.cgi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.103, Sat Jul 30 20:25:38 2005 UTC revision 1.104, Wed Aug 3 17:44:53 2005 UTC
# Line 449  Line 449 
449          return;          return;
450      }      }
451    
452        if ($cgi->param('can_alter') && ($user = $cgi->param('user')) && ($user eq $subsystem->get_curator))
453        {
454            handle_diagram_changes($fig, $subsystem, $cgi, $html);
455        }
456    
457      if (&handle_role_and_subset_changes($fig,$subsystem,$cgi,$html))      if (&handle_role_and_subset_changes($fig,$subsystem,$cgi,$html))
458      {      {
459          &process_spreadsheet_changes($fig,$subsystem,$cgi,$html);          &process_spreadsheet_changes($fig,$subsystem,$cgi,$html);
# Line 769  Line 774 
774      push(@$html, $cgi->h1("Subsystem: $name"),      push(@$html, $cgi->h1("Subsystem: $name"),
775                   $cgi->h1("Author: $curator"),                   $cgi->h1("Author: $curator"),
776                   $cgi->start_form(-action => "subsys.cgi",                   $cgi->start_form(-action => "subsys.cgi",
777                                    -method => 'post'),                                    -method => 'post',
778                                      -enctype => &CGI::MULTIPART),
779                   $cgi->hidden(-name => 'user', -value => $user, -override => 1),                   $cgi->hidden(-name => 'user', -value => $user, -override => 1),
780                   $cgi->hidden(-name => 'request', -value => 'show_ssa', -override => 1),                   $cgi->hidden(-name => 'request', -value => 'show_ssa', -override => 1),
781                   $cgi->hidden(-name => 'can_alter', -value => $can_alter, -override => 1),                   $cgi->hidden(-name => 'can_alter', -value => $can_alter, -override => 1),
# Line 797  Line 803 
803      &format_subsets($fig,$cgi,$html,$subsystem,$can_alter);      &format_subsets($fig,$cgi,$html,$subsystem,$can_alter);
804    
805      #      #
806        # Conditional for now.
807        #
808        if ($cgi->param("enable_diagrams") ne "")
809        {
810            &format_diagrams($fig, $cgi, $html, $subsystem, $can_alter);
811        }
812    
813        #
814      # Put link into constructs tool.      # Put link into constructs tool.
815      #      #
816    
# Line 1397  Line 1411 
1411      }      }
1412  }  }
1413    
1414    
1415    #
1416    # Handle changes to diagrams.
1417    #
1418    
1419    sub handle_diagram_changes
1420    {
1421        my($fig, $subsystem, $cgi, $html) = @_;
1422        my $changed;
1423    
1424        return unless $cgi->param("diagram_action");
1425    
1426        my @actions = grep { /^diagram_/ } $cgi->param();
1427    
1428        for my $action (@actions)
1429        {
1430            my $value = $cgi->param($action);
1431            warn "Diagram action $action: $value\n";
1432            if ($action =~ /^diagram_delete_(\S+)/ and $value eq "on")
1433            {
1434                $subsystem->delete_diagram($1);
1435                $changed++;
1436            }
1437            elsif ($action =~ /^diagram_rename_(\S+)/ and $value ne "")
1438            {
1439                $subsystem->rename_diagram($1, $value);
1440                $changed++;
1441            }
1442        }
1443    
1444        my $fh = $cgi->upload("diagram_image_file");
1445    
1446        if ($fh)
1447        {
1448            $subsystem->create_new_diagram($fh, $cgi->param("diagram_new_name"));
1449            $changed++;
1450        }
1451    
1452        $subsystem->incr_version() if $changed;
1453    }
1454    
1455    #
1456    # Format the list of diagrams that a subsystem has.
1457    #
1458    
1459    sub format_diagrams
1460    {
1461        my($fig, $cgi, $html, $subsystem, $can_alter) = @_;
1462    
1463        my @diagrams = $subsystem->get_diagrams();
1464    
1465        if (@diagrams or $can_alter)
1466        {
1467            push(@$html, $cgi->hr, $cgi->h2("Subsystem Diagrams"));
1468        }
1469    
1470        if (@diagrams)
1471        {
1472            my @hdr = ("Diagram Name");
1473    
1474            if ($can_alter)
1475            {
1476                push(@hdr, "Delete", "Rename");
1477            }
1478    
1479            my @tbl;
1480            for my $dent (@diagrams)
1481            {
1482                my($id, $name, $link) = @$dent;
1483                my @row;
1484    
1485                push(@row, qq(<a href="$link" target="show_ss_diagram_$id">$name</a>));
1486    
1487                if ($can_alter)
1488                {
1489                    push(@row, $cgi->checkbox(-name => "diagram_delete_$id", -label => "",
1490                                              -value => undef,
1491                                              -override => 1));
1492                    push(@row, $cgi->textfield(-name => "diagram_rename_$id",
1493                                               -value => "",
1494                                               -override => 1));
1495                }
1496    
1497                push(@tbl, \@row);
1498            }
1499            push(@$html, &HTML::make_table(\@hdr, \@tbl));
1500        }
1501    
1502        if ($can_alter)
1503        {
1504            my @tbl;
1505    
1506            push(@tbl, ["Diagram name:", $cgi->textfield(-name => "diagram_new_name",
1507                                                         -value => "",
1508                                                         -override => 1,
1509                                                         -size => 30)]);
1510            push(@tbl, ["Diagram image file:", $cgi->filefield(-name => "diagram_image_file",
1511                                                               -size => 50)]);
1512            push(@$html, &HTML::make_table(undef, \@tbl));
1513    
1514            push(@$html, $cgi->submit(-name => 'diagram_action',
1515                                      -label => 'Process diagram actions'));
1516        }
1517        push(@$html, $cgi->hr);
1518    }
1519    
1520  sub tree_link {  sub tree_link {
1521      my $target = "window$$";      my $target = "window$$";
1522      my $url = &FIG::cgi_url . "/subsys.cgi?request=show_tree";      my $url = &FIG::cgi_url . "/subsys.cgi?request=show_tree";

Legend:
Removed from v.1.103  
changed lines
  Added in v.1.104

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3