You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2006/09/09 17:47:25 UTC

svn commit: r441799 - in /maven/archiva/trunk/archiva-webapp/src/main: java/org/apache/maven/archiva/web/action/ReportsAction.java webapp/WEB-INF/jsp/reports/reports.jsp

Author: brett
Date: Sat Sep  9 08:47:24 2006
New Revision: 441799

URL: http://svn.apache.org/viewvc?view=rev&rev=441799
Log:
[MRM-166] select repository to show in reports page

Modified:
    maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
    maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp

Modified: maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java?view=diff&rev=441799&r1=441798&r2=441799
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ReportsAction.java Sat Sep  9 08:47:24 2006
@@ -17,6 +17,7 @@
  */
 
 import com.opensymphony.xwork.ActionSupport;
+import com.opensymphony.xwork.Preparable;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ConfigurationStore;
 import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
@@ -26,6 +27,7 @@
 import org.apache.maven.archiva.reporting.ReportExecutor;
 import org.apache.maven.archiva.reporting.ReportingDatabase;
 import org.apache.maven.archiva.reporting.ReportingStore;
+import org.apache.maven.archiva.reporting.ReportingStoreException;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
 
@@ -40,6 +42,7 @@
  */
 public class ReportsAction
     extends ActionSupport
+    implements Preparable
 {
     /**
      * @plexus.requirement
@@ -65,33 +68,45 @@
      */
     private ReportExecutor executor;
 
+    private Configuration configuration;
+
     public String execute()
         throws Exception
     {
         databases = new ArrayList();
 
-        Configuration configuration = configurationStore.getConfigurationFromStore();
-
-        for ( Iterator i = configuration.getRepositories().iterator(); i.hasNext(); )
+        if ( repositoryId != null && !repositoryId.equals( "-" ) )
         {
-            RepositoryConfiguration repositoryConfiguration = (RepositoryConfiguration) i.next();
-
-            ArtifactRepository repository = factory.createRepository( repositoryConfiguration );
-
-            ReportingDatabase database = reportingStore.getReportsFromStore( repository );
+            RepositoryConfiguration repositoryConfiguration = configuration.getRepositoryById( repositoryId );
+            getReport( repositoryConfiguration );
+        }
+        else
+        {
+            for ( Iterator i = configuration.getRepositories().iterator(); i.hasNext(); )
+            {
+                RepositoryConfiguration repositoryConfiguration = (RepositoryConfiguration) i.next();
 
-            databases.add( database );
+                getReport( repositoryConfiguration );
+            }
         }
         return SUCCESS;
     }
 
+    private void getReport( RepositoryConfiguration repositoryConfiguration )
+        throws ReportingStoreException
+    {
+        ArtifactRepository repository = factory.createRepository( repositoryConfiguration );
+
+        ReportingDatabase database = reportingStore.getReportsFromStore( repository );
+
+        databases.add( database );
+    }
+
     public String runReport()
         throws Exception
     {
         // TODO: this should be one that runs in the background - see the showcase
 
-        Configuration configuration = configurationStore.getConfigurationFromStore();
-
         RepositoryConfiguration repositoryConfiguration = configuration.getRepositoryById( repositoryId );
         ArtifactRepository repository = factory.createRepository( repositoryConfiguration );
 
@@ -148,5 +163,16 @@
     public List getDatabases()
     {
         return databases;
+    }
+
+    public void prepare()
+        throws Exception
+    {
+        configuration = configurationStore.getConfigurationFromStore();
+    }
+
+    public Configuration getConfiguration()
+    {
+        return configuration;
     }
 }

Modified: maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp?view=diff&rev=441799&r1=441798&r2=441799
==============================================================================
--- maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp (original)
+++ maven/archiva/trunk/archiva-webapp/src/main/webapp/WEB-INF/jsp/reports/reports.jsp Sat Sep  9 08:47:24 2006
@@ -32,7 +32,12 @@
 
 <div id="contentArea">
 
-<%-- TODO!: select report, repository and filter --%>
+<%-- TODO!: select report, filter --%>
+<ww:form action="reports" namespace="/admin">
+  <ww:select list="configuration.repositories" listKey="id" listValue="name" label="Repository" headerKey="-"
+             headerValue="(All repositories)" name="repositoryId"/>
+  <ww:submit value="Get Report"/>
+</ww:form>
 
 <ww:set name="databases" value="databases"/>
 <c:forEach items="${databases}" var="database">