[Bio] / SubsystemEditor / WebPage / MetaOverview.pm Repository:
ViewVC logotype

Annotation of /SubsystemEditor/WebPage/MetaOverview.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (view) (download) (as text)

1 : bartels 1.1 package SubsystemEditor::WebPage::MetaOverview;
2 :    
3 :     use strict;
4 :     use warnings;
5 :     use URI::Escape;
6 :     use HTML;
7 :     use Data::Dumper;
8 :     use Mail::Mailer;
9 : bartels 1.2 use MetaSubsystem;
10 : bartels 1.1
11 :     use FIG;
12 :    
13 :     use base qw( WebPage );
14 :    
15 :     1;
16 :    
17 :     ##################################################
18 :     # Method for registering components etc. for the #
19 :     # application #
20 :     ##################################################
21 :     sub init {
22 :     my ( $self ) = @_;
23 :    
24 :     $self->application->register_component( 'Table', 'retttable' );
25 :     }
26 :    
27 :     ##############################################
28 :     # Website content is returned by this method #
29 :     ##############################################
30 :     sub output {
31 :     my ( $self ) = @_;
32 :    
33 :     my $fig = new FIG;
34 :     my $cgi = $self->application->cgi;
35 :     $self->application->show_login_user_info(1);
36 :    
37 :     # look if someone is logged in and can write the subsystem #
38 :     my $can_alter = 0;
39 :     my $user = $self->application->session->user;
40 :     if ( $user ) {
41 :     $can_alter = 1;
42 :     }
43 :    
44 : paczian 1.6 my $dbmaster = $self->application->dbmaster;
45 :     my $ppoapplication = $self->application->backend;
46 : bartels 1.1
47 :     # get a seeduser #
48 :     my $seeduser = '';
49 :     if ( defined( $user ) && ref( $user ) ) {
50 :     my $preferences = $dbmaster->Preferences->get_objects( { user => $user,
51 :     name => 'SeedUser',
52 :     application => $ppoapplication } );
53 :     if ( defined( $preferences->[0] ) ) {
54 :     $seeduser = $preferences->[0]->value();
55 :     }
56 :     $fig->set_user( $seeduser );
57 :     }
58 :    
59 : bartels 1.3 my $content = "<H2>MetaSubsystems Overview</H2>";
60 : bartels 1.1 $content .= $self->start_form();
61 :     if ( $user ) {
62 :     # $content .= "<INPUT TYPE=SUBMIT NAME='SHOWRIGHT' ID='SHOWRIGHT' VALUE='Show only Subsystems I can Edit'>";
63 :     # $content .= "<INPUT TYPE=SUBMIT NAME='SHOWMINE' ID='SHOWMINE' VALUE='Show only my Subsystems'>";
64 :     $content .= "<INPUT TYPE=BUTTON NAME='NEWSUBSYS' ID='NEWSUBSYS' VALUE='Create new metasubsystem' onclick=\" window.open( '?page=NewMetaSubsystem' )\">";
65 : bartels 1.5 $content .= "<INPUT TYPE=BUTTON NAME='MANAGESUBSYS' ID='MANAGESUBSYS' VALUE='Manage my metasubsystems' onclick=\" window.open( '?page=ManageMetaSubsystems' )\">";
66 : bartels 1.1 }
67 :     $content .= $self->end_form();
68 :    
69 :     my ( $sstable, $comment ) = getMetaSubsystemTable( $self, $fig, $can_alter, $user, $seeduser );
70 :    
71 :     $content .= $sstable;
72 :    
73 :     return $content;
74 :     }
75 :    
76 :    
77 :     ####################################
78 :     # get the subsystem overview table #
79 :     ####################################
80 :     sub getMetaSubsystemTable {
81 :    
82 :     my ( $self, $fig, $can_alter, $user, $seeduser ) = @_;
83 :    
84 :     my $cgi = $self->application->cgi;
85 :     my $comment = '';
86 :    
87 :     my $showright = defined( $cgi->param( 'SHOWRIGHT' ) );
88 :     my $showmine = defined( $cgi->param( 'SHOWMINE' ) );
89 :    
90 :     my $rettable;
91 :    
92 :     opendir( SSA, "$FIG_Config::data/MetaSubsystems" ) or die "Could not open $FIG_Config::data/MetaSubsystems";
93 :     my @sss = readdir( SSA );
94 :    
95 :     my $retcolumns = [ { 'name' => 'Meta Name',
96 :     'width' => 300,
97 :     'sortable' => 1,
98 :     'filter' => 1 },
99 :     { 'name' => 'Meta Owner',
100 :     'width' => 200,
101 :     'sortable' => 1,
102 : bartels 1.3 'filter' => 1 }
103 :     # { 'name' => '# subsystems',
104 :     # 'sortable' => 1 }
105 : bartels 1.1 ];
106 :    
107 :     my $retdata = [];
108 :     foreach ( @sss ) {
109 :     next if ( $_ =~ /^\./ );
110 :    
111 :     my $name = $_;
112 :    
113 :     if ( defined( $name ) && $name ne '' && $name ne ' ' ) {
114 :    
115 :     my $ssname = $name;
116 :     $ssname =~ s/\_/ /g;
117 :    
118 :     my $esc_name = uri_escape($name);
119 :    
120 :     my $subsysurl = "SubsysEditor.cgi?page=MetaSpreadsheet&metasubsystem=$esc_name";
121 : bartels 1.2 my $owner = MetaSubsystem::get_curator_from_metaname( $name );
122 : bartels 1.1
123 :     my $retrow = [ "<A HREF='$subsysurl' target='_blank'>$ssname</A>",
124 : bartels 1.2 $owner,
125 : bartels 1.3 # "-"
126 : bartels 1.1 ];
127 :     push @$retdata, $retrow;
128 :     }
129 :     }
130 :    
131 :     my $rettableobject = $self->application->component( 'retttable' );
132 :     $rettableobject->width( 900 );
133 :     $rettableobject->data( $retdata );
134 :     $rettableobject->columns( $retcolumns );
135 :     $rettable = $rettableobject->output();
136 :    
137 :     return ( $rettable, $comment );
138 :     }
139 :    
140 :     sub supported_rights {
141 :    
142 :     return [ [ 'login', '*', '*' ] ];
143 :    
144 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3