Removed /usr/local from CDPATH
[clearscm.git] / clearadm / viewdetails.cgi
index 51e4265..4daff35 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/local/bin/perl
 
 =pod
 
@@ -52,11 +52,12 @@ use warnings;
 
 use FindBin;
 use Getopt::Long;
-use CGI qw (:standard :cgi-lib *table start_Tr end_Tr);
+use CGI qw(:standard :cgi-lib *table start_Tr end_Tr);
 use CGI::Carp 'fatalsToBrowser';
 
 use lib "$FindBin::Bin/lib", "$FindBin::Bin/../lib";
 
+use Clearadm;
 use ClearadmWeb;
 use Clearcase;
 use Clearcase::View;
@@ -68,36 +69,19 @@ my %opts = Vars;
 
 my $subtitle = 'View Details';
 
-if ($Clearcase::CC->region) {
-  $opts{region} ||= $Clearcase::CC->region;
-} else {
-  $opts{region} ||= 'Clearcase not installed';
-} # if
+$opts{region} ||= $Clearcase::CC->region;
 
-my $VERSION  = '$Revision: 1.11 $';
+my $VERSION  = '$Revision: 1.12 $';
   ($VERSION) = ($VERSION =~ /\$Revision: (.*) /);
 
 sub DisplayTable ($) {
   my ($view) = @_;
 
-  # Data fields
-  my $tag             = setField $view->tag;
-  my $server          = setField $view->shost;
-  my $region          = setField $view->region;
-  my $properties      = setField $view->properties;
-  my $text_mode       = setField $view->text_mode;
   my $permissions     = setField $view->owner_mode
                       . setField $view->group_mode
                       . setField $view->other_mode;
-  my $owner           = setField $view->owner;
   my $active          = ($view->active) ? 'YES' : 'NO';
-  my $created_by      = setField $view->created_by;
-  my $created_date    = setField $view->created_date;
-  my $cs_updated_by   = setField $view->cs_updated_by;
-  my $cs_updated_date = setField $view->cs_updated_date;
-  my $gpath           = setField $view->gpath;
-  my $access_path     = setField $view->access_path;
-  my $uuid            = setField $view->uuid;
+  my $gpath           = $view->gpath;
 
   $gpath = font {-class => 'unknown'}, '<no-gpath>'
     if $gpath eq '<no-gpath>';
@@ -107,45 +91,49 @@ sub DisplayTable ($) {
     -class          => 'main',
   };
 
+  my $clearadm = Clearadm->new;
+
+  my %clearadmview = $clearadm->GetView($view->tag, $view->region);
+
   display start_Tr;
     display th {class => 'label'},              'Tag:';
-    display td {class => 'data', colspan => 3}, $tag;
+    display td {class => 'data', colspan => 3}, setField $view->tag;
     display th {class => 'label'},              'Server:';
     display td {class => 'data'}, a {
-      href => "serverdetails.cgi?server=$server"
-    }, $server;
+      href => 'systemdetails.cgi?system=' . $view->shost
+    }, $view->shost;
     display th {class => 'label'},               'Region:';
-    display td {class => 'data'},                 $region;
+    display td {class => 'data'},                 $view->region;
   display end_Tr;
 
   display start_Tr;
     display th {class => 'label'},              'Properties:';
-    display td {class => 'data', colspan => 3}, $properties;
+    display td {class => 'data', colspan => 3}, $view->properties;
     display th {class => 'label'},              'Text Mode:';
-    display td {class => 'data'},               $text_mode;
+    display td {class => 'data'},               $view->text_mode;
     display th {class => 'label'},              'Permission:';
     display td {class => 'data'},               $permissions;
   display end_Tr;
 
   display start_Tr;
     display th {class => 'label'},              'Owner:';
-    display td {class => 'data', colspan => 3}, $owner;
+    display td {class => 'data', colspan => 3}, $view->owner;
     display th {class => 'label'},              'Active:';
     display td {class => 'data', colspan => 3}, $active;
   display end_Tr;
 
   display start_Tr;
     display th {class => 'label'},              'Created by:';
-    display td {class => 'data', colspan => 3}, $created_by;
+    display td {class => 'data', colspan => 3}, $view->created_by;
     display th {class => 'label'},              'on:';
-    display td {class => 'data', colspan => 3}, $created_date;
+    display td {class => 'data', colspan => 3}, $view->created_date;
   display end_Tr;
 
   display start_Tr;
     display th {class => 'label'},              'CS Updated by:';
-    display td {class => 'data', colspan => 3}, $cs_updated_by;
+    display td {class => 'data', colspan => 3}, $view->cs_updated_by;
     display th {class => 'label'},              'on:';
-    display td {class => 'data', colspan => 3}, $cs_updated_date;
+    display td {class => 'data', colspan => 3}, $view->cs_updated_date;
   display end_Tr;
 
   display start_Tr;
@@ -155,12 +143,68 @@ sub DisplayTable ($) {
 
   display start_Tr;
     display th {class => 'label'},              'Access Path:';
-    display td {class => 'data', colspan => 7}, $access_path;
+    display td {class => 'data', colspan => 7}, $view->access_path;
   display end_Tr;
 
   display start_Tr;
     display th {class => 'label'},              'UUID:';
-    display td {class => 'data', colspan => 7}, $uuid;
+    display td {class => 'data', colspan => 7}, $view->uuid;
+  display end_Tr;
+
+  display start_Tr;
+    display th {class => 'labelCentered', colspan => 10}, 'View Storage Pools';
+  display end_Tr;
+
+  my $image = $clearadmview{dbsmall}
+    ? "data:image/png;base64,$clearadmview{dbsmall}"
+    : "plotstorage.cgi?type=view&storage=db&tiny=1&tag=" . $view->tag;
+
+  display start_Tr;
+    display th {class => 'label'},                                'Database:';
+    display td {class => 'data', colspan => 3, align => 'center'}, a {href =>
+       "plot.cgi?type=view&storage=db&scaling=Day&points=7&region=" . $view->region . '&tag=' . $view->tag
+    }, img {
+      src    => $image,
+      border => 0,
+    };
+
+    $image = $clearadmview{privatesmall}
+      ? "data:image/png;base64,$clearadmview{privatesmall}"
+      : "plotstorage.cgi?type=view&storage=private&tiny=1&tag=" . $view->tag;
+
+    display th {class => 'label'},                                'Private:';
+    display td {class => 'data', colspan => 5, align => 'center'}, a {href =>
+       "plot.cgi?type=view&storage=private&scaling=Day&points=7&region=" . $view->region . '&tag=' . $view->tag
+    }, img {
+      src    => $image,
+      border => 0,
+    };
+  display end_Tr;
+
+  $image = $clearadmview{adminsmall}
+    ? "data:image/png;base64,$clearadmview{adminsmall}"
+    : "plotstorage.cgi?type=view&storage=admin&tiny=1&tag=" . $view->tag;
+
+  display start_Tr;
+    display th {class => 'label'},                                'Admin:';
+    display td {class => 'data', colspan => 3, align => 'center'}, a {href =>
+       "plot.cgi?type=view&storage=admin&scaling=Day&points=7&region=" . $view->region . '&tag=' . $view->tag
+    }, img {
+      src    => $image,
+      border => 0,
+    };
+
+    $image = $clearadmview{totalsmall}
+      ? "data:image/png;base64,$clearadmview{totalsmall}"
+      : "plotstorage.cgi?type=view&storage=total&tiny=1&tag=" . $view->tag;
+
+    display th {class => 'label'},                                'Total Space:';
+    display td {class => 'data', colspan => 5, align => 'center'}, a {href =>
+       "plot.cgi?type=view&storage=total&scaling=Day&points=7&region=" . $view->region . '&tag=' . $view->tag
+    }, img {
+      src    => $image,
+      border => 0,
+    };
   display end_Tr;
 
   display end_table;
@@ -168,17 +212,15 @@ sub DisplayTable ($) {
   return
 } # DisplayTable
 
-sub DisplayRegion {
+sub DisplayRegion() {
   display start_form (action => 'viewdetails.cgi');
 
   display 'Region ';
 
-  my ($defaultRegion, @regions) = ('', ('Clearcase not installed'));
-
   display popup_menu (
     -name     => 'region',
-    -values   => [@regions],
-    -default  => $defaultRegion,
+    -values   => [$Clearcase::CC->regions],
+    -default  => $Clearcase::CC->region,
     -onchange => 'submit();',
   );
 
@@ -191,7 +233,7 @@ sub DisplayRegion {
   return
 } # DisplayRegion
 
-sub DisplayViews ($) {
+sub DisplayViews($) {
   my ($region) = @_;
 
   my $views = Clearcase::Views->new ($region);
@@ -201,7 +243,7 @@ sub DisplayViews ($) {
     push @views, 'No Views';
   } # unless
 
-  display start_form (action => 'viewdetails.cgi');
+  display start_form(action => 'viewdetails.cgi');
 
   display 'Region ';
 
@@ -220,7 +262,7 @@ sub DisplayViews ($) {
      -onchange => 'submit();',
   );
 
-  display submit (
+  display submit(
     -value     => 'Go',
   );
 
@@ -230,7 +272,7 @@ sub DisplayViews ($) {
 } # DisplayViews
 
 # Main
-GetOptions (
+GetOptions(
   \%opts,
   'usage'        => sub { Usage },
   'verbose'      => sub { set_verbose },
@@ -258,9 +300,7 @@ unless ($opts{tag}) {
   exit;
 } # unless
 
-my $view = Clearcase::View->new ($opts{tag}, $opts{region});
-
-DisplayTable $view;
+DisplayTable(Clearcase::View->new($opts{tag}, $opts{region}));
 
 footing;
 
@@ -290,6 +330,7 @@ L<Getopt::Long|Getopt::Long>
 
 =begin man 
 
+ Clearadm
  ClearadmWeb
  Clearcase
  Clearcase::View
@@ -302,6 +343,7 @@ L<Getopt::Long|Getopt::Long>
 =begin html
 
 <blockquote>
+<a href="http://clearscm.com/php/scm_man.php?file=clearadm/lib/Clearadm.pm">Clearadm</a><br>
 <a href="http://clearscm.com/php/scm_man.php?file=clearadm/lib/ClearadmWeb.pm">ClearadmWeb</a><br>
 <a href="http://clearscm.com/php/scm_man.php?file=lib/Clearcase.pm">Clearcase</a><br>
 <a href="http://clearscm.com/php/scm_man.php?file=lib/Clearcase/View.pm">Clearcase::View</a><br>
@@ -322,4 +364,4 @@ Please report problems to Andrew DeFaria <Andrew@ClearSCM.com>.
 
 Copyright (c) 2010, ClearSCM, Inc. All rights reserved.
 
-=cut
\ No newline at end of file
+=cut