You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/05/05 02:05:26 UTC
svn commit: r535418 [2/2] - in /maven/archiva/trunk:
archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/util/
archiva-base/archiva-configuration/src/main/mdo/
archiva-base/archiva-policies/src/main/java/org/apache/m...
Copied: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java (from r534213, maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureRepositoryAction.java)
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java?view=diff&rev=535418&p1=maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureRepositoryAction.java&r1=534213&p2=maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/ConfigureRepositoryAction.java (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/ConfigureRepositoryAction.java Fri May 4 17:05:23 2007
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.web.action.admin;
+package org.apache.maven.archiva.web.action.admin.repositories;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,21 +19,25 @@
* under the License.
*/
-import com.opensymphony.xwork.ModelDriven;
+import com.opensymphony.xwork.ActionContext;
import com.opensymphony.xwork.Preparable;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
+import org.apache.maven.archiva.common.utils.PathUtil;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.InvalidConfigurationException;
import org.apache.maven.archiva.configuration.RepositoryConfiguration;
import org.apache.maven.archiva.security.ArchivaRoleConstants;
-import org.apache.maven.archiva.web.action.admin.models.AdminRepositoryConfiguration;
import org.codehaus.plexus.rbac.profile.RoleProfileException;
import org.codehaus.plexus.rbac.profile.RoleProfileManager;
import org.codehaus.plexus.registry.RegistryException;
+import org.codehaus.plexus.security.authorization.AuthorizationException;
+import org.codehaus.plexus.security.authorization.AuthorizationResult;
import org.codehaus.plexus.security.rbac.RbacManagerException;
import org.codehaus.plexus.security.rbac.Resource;
+import org.codehaus.plexus.security.system.SecuritySession;
+import org.codehaus.plexus.security.system.SecuritySystem;
import org.codehaus.plexus.security.ui.web.interceptor.SecureAction;
import org.codehaus.plexus.security.ui.web.interceptor.SecureActionBundle;
import org.codehaus.plexus.security.ui.web.interceptor.SecureActionException;
@@ -49,89 +53,137 @@
*/
public class ConfigureRepositoryAction
extends PlexusActionSupport
- implements ModelDriven, Preparable, SecureAction
+ implements Preparable, SecureAction
{
/**
- * @plexus.requirement
- */
- private ArchivaConfiguration archivaConfiguration;
-
- /**
* @plexus.requirement role-hint="archiva"
*/
private RoleProfileManager roleProfileManager;
/**
- * The repository.
+ * @plexus.requirement
*/
- private AdminRepositoryConfiguration repository;
+ private SecuritySystem securitySystem;
/**
- * The repository ID to lookup when editing a repository.
+ * @plexus.requirement
*/
- private String repoId;
+ private ArchivaConfiguration archivaConfiguration;
+
+ private String repoid;
+
+ private String mode;
/**
- * The previously read configuration.
+ * The model for this action.
*/
- private Configuration configuration;
+ private AdminRepositoryConfiguration repository;
public String add()
- throws IOException, InvalidConfigurationException, RbacManagerException, RoleProfileException,
- RegistryException
{
- // TODO: if this didn't come from the form, go to configure.action instead of going through with re-saving what was just loaded
getLogger().info( ".add()" );
+ this.mode = "add";
- AdminRepositoryConfiguration existingRepository = getRepository( repository.getId() );
- if ( existingRepository != null )
+ return INPUT;
+ }
+
+ public String confirm()
+ {
+ getLogger().info( ".confirm()" );
+
+ if ( operationAllowed( ArchivaRoleConstants.OPERATION_DELETE_REPOSITORY, getRepoid() ) )
{
- addFieldError( "id", "A repository with that id already exists" );
- return INPUT;
+ addActionError( "You do not have the appropriate permissions to delete the " + getRepoid() + " repository." );
+ return ERROR;
}
- return saveConfiguration();
+ return INPUT;
}
- public String edit()
- throws IOException, InvalidConfigurationException, RbacManagerException, RoleProfileException,
- RegistryException
+ public String delete()
{
- // TODO: if this didn't come from the form, go to configure.action instead of going through with re-saving what was just loaded
- getLogger().info( ".edit()" );
+ getLogger().info( ".delete()" );
- if ( StringUtils.isBlank( repository.getId() ) )
+ if ( operationAllowed( ArchivaRoleConstants.OPERATION_DELETE_REPOSITORY, getRepoid() ) )
{
- addFieldError( "id", "A repository with a blank id cannot be editted." );
- return INPUT;
+ addActionError( "You do not have the appropriate permissions to delete the " + getRepoid() + " repository." );
+ return ERROR;
}
- removeRepository( getRepository() );
+ if ( StringUtils.equals( mode, "delete-entry" ) || StringUtils.equals( mode, "delete-contents" ) )
+ {
+ AdminRepositoryConfiguration existingRepository = getRepository();
+ if ( existingRepository == null )
+ {
+ addActionError( "A repository with that id does not exist" );
+ return ERROR;
+ }
- addRepository();
+ // TODO: remove from index too!
- return saveConfiguration();
- }
+ try
+ {
+ removeRepository( getRepoid() );
+ removeRepositoryRoles( existingRepository );
+ saveConfiguration();
+
+ if ( StringUtils.equals( mode, "delete-contents" ) )
+ {
+ removeContents( existingRepository );
+ }
+ }
+ catch ( IOException e )
+ {
+ addActionError( "Unable to delete repository: " + e.getMessage() );
+ }
+ catch ( RoleProfileException e )
+ {
+ addActionError( "Unable to delete repository: " + e.getMessage() );
+ }
+ catch ( InvalidConfigurationException e )
+ {
+ addActionError( "Unable to delete repository: " + e.getMessage() );
+ }
+ catch ( RbacManagerException e )
+ {
+ addActionError( "Unable to delete repository: " + e.getMessage() );
+ }
+ catch ( RegistryException e )
+ {
+ addActionError( "Unable to delete repository: " + e.getMessage() );
+ }
+ }
- public Configuration getConfiguration()
- {
- return configuration;
+ return SUCCESS;
}
- public Object getModel()
+ public String edit()
{
- getLogger().info( ".getModel()" );
- if( repository == null )
+ getLogger().info( ".edit()" );
+ this.mode = "edit";
+
+ if ( operationAllowed( ArchivaRoleConstants.OPERATION_EDIT_REPOSITORY, getRepoid() ) )
{
- repository = createRepository();
+ addActionError( "You do not have the appropriate permissions to edit the " + getRepoid() + " repository." );
+ return ERROR;
}
-
- return repository;
+
+ return INPUT;
}
- public String getRepoId()
+ public String getMode()
{
- return repoId;
+ return this.mode;
+ }
+
+ public String getRepoid()
+ {
+ return repoid;
+ }
+
+ public AdminRepositoryConfiguration getRepository()
+ {
+ return repository;
}
public SecureActionBundle getSecureActionBundle()
@@ -140,80 +192,98 @@
SecureActionBundle bundle = new SecureActionBundle();
bundle.setRequiresAuthentication( true );
-
- if ( getRepoId() != null )
- {
- // TODO: this is not right. It needs to change based on method. But is this really the right way to restrict this area?
- // TODO: not right. We only care about this permission on managed repositories. Otherwise, it's configuration
- bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_EDIT_REPOSITORY, getRepoId() );
- }
- else
- {
- bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL );
- }
+ bundle.addRequiredAuthorization( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION, Resource.GLOBAL );
return bundle;
}
- public String input()
- {
- getLogger().info( ".input()" );
- return INPUT;
- }
-
- public String doDefault()
- throws Exception
- {
- getLogger().info( ".doDefault()" );
- return super.doDefault();
- }
-
- public String doInput()
- throws Exception
- {
- getLogger().info( ".doInput()" );
- return super.doInput();
- }
-
- public void validate()
- {
- getLogger().info( ".validate()" );
- // super.validate();
- }
-
- public String execute()
+ public void prepare()
throws Exception
{
- getLogger().info( ".execute()" );
- return super.execute();
+ String id = getRepoid();
+ if ( id == null )
+ {
+ this.repository = new AdminRepositoryConfiguration();
+ }
+
+ RepositoryConfiguration repoconfig = archivaConfiguration.getConfiguration().findRepositoryById( id );
+ if ( repoconfig != null )
+ {
+ this.repository = new AdminRepositoryConfiguration( repoconfig );
+ }
}
- public void prepare()
+ public String save()
{
- getLogger().info( ".prepare()" );
- configuration = archivaConfiguration.getConfiguration();
+ String mode = getMode();
+ String repoId = getRepository().getId();
- if ( repository == null )
+ getLogger().info( ".save(" + mode + ":" + repoId + ")" );
+
+ if ( StringUtils.isBlank( repository.getId() ) )
+ {
+ addFieldError( "id", "A repository with a blank id cannot be saved." );
+ return SUCCESS;
+ }
+
+ if ( StringUtils.equalsIgnoreCase( "edit", mode ) )
+ {
+ removeRepository( repoId );
+ }
+
+ try
+ {
+ addRepository( getRepository() );
+ saveConfiguration();
+ }
+ catch ( IOException e )
+ {
+ addActionError( "I/O Exception: " + e.getMessage() );
+ }
+ catch ( RoleProfileException e )
+ {
+ addActionError( "Role Profile Exception: " + e.getMessage() );
+ }
+ catch ( InvalidConfigurationException e )
+ {
+ addActionError( "Invalid Configuration Exception: " + e.getMessage() );
+ }
+ catch ( RbacManagerException e )
{
- repository = getRepository( repoId );
+ addActionError( "RBAC Manager Exception: " + e.getMessage() );
}
- if ( repository == null )
+ catch ( RegistryException e )
{
- repository = createRepository();
+ addActionError( "Configuration Registry Exception: " + e.getMessage() );
}
+
+ return SUCCESS;
}
- public void setRepoId( String repoId )
+ public void setMode( String mode )
{
- this.repoId = repoId;
+ this.mode = mode;
}
-
- private void addRepository()
+
+ public void setRepoid( String repoid )
+ {
+ this.repoid = repoid;
+ }
+
+ public void setRepository( AdminRepositoryConfiguration repository )
+ {
+ this.repository = repository;
+ }
+
+ private void addRepository( AdminRepositoryConfiguration repository )
throws IOException, RoleProfileException
{
- getLogger().info( ".addRepository()" );
- AdminRepositoryConfiguration repository = (AdminRepositoryConfiguration) getRepository();
+ getLogger().info( ".addRepository(" + repository + ")" );
+ // Fix the URL entry (could possibly be a filesystem path)
+ String rawUrlEntry = repository.getUrl();
+ repository.setUrl( PathUtil.toUrl( rawUrlEntry ) );
+
if ( repository.isManaged() )
{
// Normalize the path
@@ -226,7 +296,7 @@
}
}
- configuration.addRepository( repository );
+ archivaConfiguration.getConfiguration().addRepository( repository );
// TODO: double check these are configured on start up
roleProfileManager.getDynamicRole( "archiva-repository-manager", repository.getId() );
@@ -234,43 +304,55 @@
roleProfileManager.getDynamicRole( "archiva-repository-observer", repository.getId() );
}
- private AdminRepositoryConfiguration createRepository()
+ private boolean operationAllowed( String permission, String repoid )
{
- getLogger().info( ".createRepository()" );
- AdminRepositoryConfiguration repository = new AdminRepositoryConfiguration();
- repository.setIndexed( false );
- return repository;
- }
+ ActionContext context = ActionContext.getContext();
+ SecuritySession securitySession = (SecuritySession) context.get( SecuritySession.ROLE );
- private AdminRepositoryConfiguration getRepository()
- {
- return repository;
+ AuthorizationResult authzResult;
+ try
+ {
+ authzResult = securitySystem.authorize( securitySession, permission, repoid );
+
+ return authzResult.isAuthorized();
+ }
+ catch ( AuthorizationException e )
+ {
+ getLogger().info(
+ "Unable to authorize permission: " + permission + " against repo: " + repoid
+ + " due to: " + e.getMessage() );
+ return false;
+ }
}
- private AdminRepositoryConfiguration getRepository( String id )
+ private void removeContents( AdminRepositoryConfiguration existingRepository )
+ throws IOException
{
- getLogger().info( ".getRepository(" + id + ")" );
-
- RepositoryConfiguration repoconfig = configuration.findRepositoryById( id );
- if ( repoconfig == null )
+ if ( existingRepository.isManaged() )
{
- return createRepository();
+ getLogger().info( "Removing " + existingRepository.getDirectory() );
+ FileUtils.deleteDirectory( new File( existingRepository.getDirectory() ) );
}
- return new AdminRepositoryConfiguration( repoconfig );
}
- private boolean removeRepository( RepositoryConfiguration existingRepository )
+ private void removeRepository( String repoId )
{
getLogger().info( ".removeRepository()" );
- RepositoryConfiguration toremove = configuration.findRepositoryById( existingRepository.getId() );
+ RepositoryConfiguration toremove = archivaConfiguration.getConfiguration().findRepositoryById( repoId );
if ( toremove != null )
{
- configuration.removeRepository( toremove );
- return true;
+ archivaConfiguration.getConfiguration().removeRepository( toremove );
}
-
- return false;
+ }
+
+ private void removeRepositoryRoles( RepositoryConfiguration existingRepository )
+ throws RoleProfileException
+ {
+ roleProfileManager.deleteDynamicRole( "archiva-repository-manager", existingRepository.getId() );
+ roleProfileManager.deleteDynamicRole( "archiva-repository-observer", existingRepository.getId() );
+
+ getLogger().info( "removed user roles associated with repository " + existingRepository.getId() );
}
private String saveConfiguration()
@@ -278,11 +360,8 @@
RegistryException
{
getLogger().info( ".saveConfiguration()" );
- addRepository();
-
- archivaConfiguration.save( configuration );
- // TODO: do we need to check if indexing is needed?
+ archivaConfiguration.save( archivaConfiguration.getConfiguration() );
addActionMessage( "Successfully saved configuration" );
Copied: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java (from r534213, maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/RepositoriesAction.java)
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java?view=diff&rev=535418&p1=maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/RepositoriesAction.java&r1=534213&p2=maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/RepositoriesAction.java (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java Fri May 4 17:05:23 2007
@@ -1,4 +1,4 @@
-package org.apache.maven.archiva.web.action.admin;
+package org.apache.maven.archiva.web.action.admin.repositories;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -20,17 +20,17 @@
*/
import com.opensymphony.webwork.interceptor.ServletRequestAware;
-import com.opensymphony.xwork.ModelDriven;
import com.opensymphony.xwork.Preparable;
-import com.opensymphony.xwork.Validateable;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.Transformer;
+import org.apache.commons.collections.list.TransformedList;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
-import org.apache.maven.archiva.database.ArchivaDAO;
-import org.apache.maven.archiva.database.constraints.MostRecentRepositoryScanStatistics;
-import org.apache.maven.archiva.model.RepositoryContentStatistics;
+import org.apache.maven.archiva.configuration.Configuration;
+import org.apache.maven.archiva.configuration.util.LocalRepositoryPredicate;
+import org.apache.maven.archiva.configuration.util.RemoteRepositoryPredicate;
+import org.apache.maven.archiva.configuration.util.RepositoryConfigurationComparator;
import org.apache.maven.archiva.security.ArchivaRoleConstants;
-import org.apache.maven.archiva.web.action.admin.models.AdminModel;
-import org.apache.maven.archiva.web.action.admin.models.AdminRepositoryConfiguration;
import org.apache.maven.archiva.web.util.ContextUtils;
import org.codehaus.plexus.security.rbac.Resource;
import org.codehaus.plexus.security.ui.web.interceptor.SecureAction;
@@ -38,7 +38,8 @@
import org.codehaus.plexus.security.ui.web.interceptor.SecureActionException;
import org.codehaus.plexus.xwork.action.PlexusActionSupport;
-import java.util.Iterator;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -53,44 +54,27 @@
*/
public class RepositoriesAction
extends PlexusActionSupport
- implements ModelDriven, Preparable, Validateable, SecureAction, ServletRequestAware
+ implements SecureAction, ServletRequestAware, Preparable
{
/**
- * @plexus.requirement role-hint="jdo"
+ * @plexus.requirement role-hint="adminrepoconfig"
*/
- private ArchivaDAO dao;
+ private Transformer repoConfigToAdmin;
/**
* @plexus.requirement
*/
private ArchivaConfiguration archivaConfiguration;
- private AdminModel model;
+ private List managedRepositories;
- private String baseUrl;
-
- public Object getModel()
- {
- return getAdminModel();
- }
-
- public void prepare()
- throws Exception
- {
- model = null;
- getModel();
- }
+ private List remoteRepositories;
- public void validate()
- {
- super.validate();
- }
+ private String baseUrl;
- public String execute()
- throws Exception
+ public void setServletRequest( HttpServletRequest request )
{
- getLogger().info( ".execute()" );
- return super.execute();
+ this.baseUrl = ContextUtils.getBaseURL( request, "repository" );
}
public SecureActionBundle getSecureActionBundle()
@@ -104,46 +88,33 @@
return bundle;
}
- public void setServletRequest( HttpServletRequest request )
+ public void prepare()
+ throws Exception
{
- this.baseUrl = ContextUtils.getBaseURL( request, "repository" );
- }
+ Configuration config = archivaConfiguration.getConfiguration();
- public AdminModel getAdminModel()
- {
- if ( model == null )
- {
- model = new AdminModel( archivaConfiguration.getConfiguration() );
- model.setBaseUrl( baseUrl );
- updateLastIndexed( model.getManagedRepositories() );
- }
+ remoteRepositories = TransformedList.decorate( new ArrayList(), repoConfigToAdmin );
+ managedRepositories = TransformedList.decorate( new ArrayList(), repoConfigToAdmin );
- return model;
+ remoteRepositories.addAll( CollectionUtils.select( config.getRepositories(), RemoteRepositoryPredicate.getInstance() ) );
+ managedRepositories.addAll( CollectionUtils.select( config.getRepositories(), LocalRepositoryPredicate.getInstance() ) );
+
+ Collections.sort( managedRepositories, new RepositoryConfigurationComparator() );
+ Collections.sort( remoteRepositories, new RepositoryConfigurationComparator() );
}
- private void updateLastIndexed( List managedRepositories )
+ public List getManagedRepositories()
{
- Iterator it = managedRepositories.iterator();
- while ( it.hasNext() )
- {
- AdminRepositoryConfiguration config = (AdminRepositoryConfiguration) it.next();
-
- List results = dao.query( new MostRecentRepositoryScanStatistics( config.getId() ) );
- if ( !results.isEmpty() )
- {
- RepositoryContentStatistics stats = (RepositoryContentStatistics) results.get( 0 );
- config.setStats( stats );
- }
- }
+ return managedRepositories;
}
- public String getBaseUrlB()
+ public List getRemoteRepositories()
{
- return baseUrl;
+ return remoteRepositories;
}
- public void setBaseUrlB( String baseUrl )
+ public String getBaseUrl()
{
- this.baseUrl = baseUrl;
+ return baseUrl;
}
}
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryConfigurationAdminTransformer.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryConfigurationAdminTransformer.java?view=auto&rev=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryConfigurationAdminTransformer.java (added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryConfigurationAdminTransformer.java Fri May 4 17:05:23 2007
@@ -0,0 +1,75 @@
+package org.apache.maven.archiva.web.action.admin.repositories;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.commons.collections.Transformer;
+import org.apache.maven.archiva.configuration.RepositoryConfiguration;
+import org.apache.maven.archiva.database.ArchivaDAO;
+import org.apache.maven.archiva.database.constraints.MostRecentRepositoryScanStatistics;
+import org.apache.maven.archiva.model.RepositoryContentStatistics;
+
+import java.util.List;
+
+/**
+ * RepositoryConfigurationAdminTransformer
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ *
+ * @plexus.component role="org.apache.commons.collections.Transformer"
+ * role-hint="adminrepoconfig"
+ */
+public class RepositoryConfigurationAdminTransformer
+ implements Transformer
+{
+ /**
+ * @plexus.requirement role-hint="jdo"
+ */
+ private ArchivaDAO dao;
+
+ public Object transform( Object input )
+ {
+ if ( input instanceof RepositoryConfiguration )
+ {
+ RepositoryConfiguration repoconfig = (RepositoryConfiguration) input;
+ AdminRepositoryConfiguration arepo = new AdminRepositoryConfiguration( repoconfig );
+
+ if ( arepo.isManaged() )
+ {
+ arepo.setStats( getLatestStats( arepo.getId() ) );
+ }
+
+ return arepo;
+ }
+
+ return null;
+ }
+
+ private RepositoryContentStatistics getLatestStats( String repoId )
+ {
+ List results = dao.query( new MostRecentRepositoryScanStatistics( repoId ) );
+ if ( results.isEmpty() )
+ {
+ return null;
+ }
+
+ return (RepositoryContentStatistics) results.get( 0 );
+ }
+}
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryConfigurationAdminTransformer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryConfigurationAdminTransformer.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoryConfigurationAdminTransformer.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java?view=auto&rev=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java (added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java Fri May 4 17:05:23 2007
@@ -0,0 +1,73 @@
+package org.apache.maven.archiva.web.action.admin.scanning;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import com.opensymphony.webwork.interceptor.ServletRequestAware;
+import com.opensymphony.xwork.ModelDriven;
+import com.opensymphony.xwork.Preparable;
+import com.opensymphony.xwork.Validateable;
+
+import org.codehaus.plexus.security.ui.web.interceptor.SecureAction;
+import org.codehaus.plexus.security.ui.web.interceptor.SecureActionBundle;
+import org.codehaus.plexus.security.ui.web.interceptor.SecureActionException;
+import org.codehaus.plexus.xwork.action.PlexusActionSupport;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * RepositoryScanningAction
+ *
+ * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
+ * @version $Id$
+ *
+ * @plexus.component role="com.opensymphony.xwork.Action" role-hint="repositoryScanningAction"
+ */
+public class RepositoryScanningAction
+extends PlexusActionSupport
+implements ModelDriven, Preparable, Validateable, SecureAction, ServletRequestAware
+{
+
+ public Object getModel()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void prepare()
+ throws Exception
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public SecureActionBundle getSecureActionBundle()
+ throws SecureActionException
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void setServletRequest( HttpServletRequest request )
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/scanning/RepositoryScanningAction.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml?view=diff&rev=535418&r1=535417&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/resources/xwork.xml Fri May 4 17:05:23 2007
@@ -36,11 +36,15 @@
<interceptor name="pssSecureActions" class="pssSecureActionInterceptor"/>
<interceptor name="pssAutoLogin" class="pssAutoLoginInterceptor"/>
<interceptor name="pssPolicyEnforcement" class="pssPolicyEnforcementInterceptor"/>
-
+ <interceptor name="paramFilter" class="com.opensymphony.xwork.interceptor.ParameterFilterInterceptor" />
+
<interceptor-stack name="configuredArchivaStack">
<interceptor-ref name="pssForceAdminUser"/>
<interceptor-ref name="pssAutoLogin"/>
<interceptor-ref name="defaultStack"/>
+ <interceptor-ref name="paramFilter">
+ <param name="blocked">externalResult</param>
+ </interceptor-ref>
<interceptor-ref name="pssSecureActions"/>
<interceptor-ref name="pssPolicyEnforcement"/>
<interceptor-ref name="configuration"/>
@@ -225,8 +229,11 @@
<result name="input">/WEB-INF/jsp/admin/repositories.jsp</result>
</action>
+ <!-- .\ REPOSITORIES \.____________________________________________ -->
+
<action name="repositories" class="repositoriesAction" method="input">
<result name="input">/WEB-INF/jsp/admin/repositories.jsp</result>
+ <result name="confirm" type="redirect-action">deleteRepository</result>
</action>
<action name="indexRepository" class="indexRepositoryAction" method="run">
@@ -235,26 +242,85 @@
<action name="addRepository" class="configureRepositoryAction" method="add">
<result name="input">/WEB-INF/jsp/admin/addRepository.jsp</result>
- <result type="redirect-action">repositories</result>
- <!-- <interceptor-ref name="unconfiguredArchivaStack"/> -->
+ <result name="success" type="redirect-action">repositories</result>
+ <interceptor-ref name="configuredPrepareParamsStack"/>
</action>
- <action name="editRepository" class="editRepositoryAction" method="edit">
+ <action name="editRepository" class="configureRepositoryAction" method="edit">
<result name="input">/WEB-INF/jsp/admin/editRepository.jsp</result>
<result name="error" type="redirect-action">repositories</result>
<result name="success" type="redirect-action">repositories</result>
<interceptor-ref name="configuredPrepareParamsStack"/>
</action>
- <action name="saveRepository" class="saveRepositoryAction" method="save">
+ <action name="saveRepository" class="configureRepositoryAction" method="save">
<result name="success" type="redirect-action">repositories</result>
+ <interceptor-ref name="configuredPrepareParamsStack"/>
</action>
- <action name="deleteRepository" class="deleteRepositoryAction">
+ <action name="deleteRepository" class="configureRepositoryAction" method="confirm">
<result name="input">/WEB-INF/jsp/admin/deleteRepository.jsp</result>
- <result type="redirect-action">repositories</result>
+ <result name="success" type="redirect-action">repositories</result>
+ <interceptor-ref name="configuredPrepareParamsStack"/>
</action>
+ <!-- .\ PROXY CONNECTORS \.________________________________________ -->
+
+ <action name="proxyConnectors" class="proxyConnectorsAction" method="input">
+ <result name="input">/WEB-INF/jsp/admin/proxyConnectors.jsp</result>
+ </action>
+
+ <action name="addProxyConnector" class="configureProxyConnectorAction" method="add">
+ <result name="input">/WEB-INF/jsp/admin/addProxyConnector.jsp</result>
+ <result name="success" type="redirect-action">proxyConnectors</result>
+ <interceptor-ref name="configuredPrepareParamsStack"/>
+ </action>
+
+ <action name="configureProxyConnector" class="configureProxyConnectorAction" method="input">
+ <result name="input">/WEB-INF/jsp/admin/editProxyConnector.jsp</result>
+ <result name="success" type="redirect-action">proxyConnectors</result>
+ <interceptor-ref name="configuredPrepareParamsStack"/>
+ </action>
+
+ <action name="editProxyConnector" class="configureProxyConnectorAction" method="edit">
+ <result name="input">/WEB-INF/jsp/admin/editProxyConnector.jsp</result>
+ <result name="success" type="redirect-action">proxyConnectors</result>
+ <interceptor-ref name="configuredPrepareParamsStack"/>
+ </action>
+
+ <action name="saveProxyConnector" class="configureProxyConnectorAction" method="save">
+ <result name="input">/WEB-INF/jsp/admin/editProxyConnector.jsp</result>
+ <result name="success" type="redirect-action">proxyConnectors</result>
+ <interceptor-ref name="configuredPrepareParamsStack"/>
+ </action>
+
+ <action name="deleteProxyConnector" class="configureProxyConnectorAction" method="confirm">
+ <result name="input">/WEB-INF/jsp/admin/deleteProxyConnector.jsp</result>
+ <result name="success" type="redirect-action">proxyConnectors</result>
+ <interceptor-ref name="configuredPrepareParamsStack"/>
+ </action>
+
+ <!-- .\ NETWORK PROXIES \._________________________________________ -->
+
+ <action name="networkProxies" class="networkProxiesAction" method="input">
+ <result name="input">/WEB-INF/jsp/admin/networkProxies.jsp</result>
+ </action>
+
+ <!-- .\ REPOSITORY SCANNING \._____________________________________ -->
+
+ <action name="repositoryScanning" class="repositoryScanningAction" method="input">
+ <result name="input">/WEB-INF/jsp/admin/repositoryScanning.jsp</result>
+ </action>
+
+ <!-- .\ DATABASE \.________________________________________________ -->
+
+ <action name="database" class="databaseAction" method="input">
+ <result name="input">/WEB-INF/jsp/admin/database.jsp</result>
+ </action>
+
+ <!-- .\ CONFIGURATION \.___________________________________________ -->
+
+
<action name="configure" class="configureAction" method="input">
<result name="input">/WEB-INF/jsp/admin/configure.jsp</result>
<interceptor-ref name="unconfiguredArchivaStack"/>
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp?view=auto&rev=535418
==============================================================================
(empty)
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addProxyConnector.jsp
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp?view=diff&rev=535418&r1=535417&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/addRepository.jsp Fri May 4 17:05:23 2007
@@ -21,27 +21,28 @@
<html>
<head>
- <title>Configuration</title>
+ <title>Admin: Add Repository</title>
<ww:head/>
</head>
<body>
-<h1>Configuration</h1>
+<h1>Admin: Add Repository</h1>
<div id="contentArea">
- <h2>Add Managed Repository</h2>
+ <h2>Add Repository</h2>
<ww:actionmessage/>
- <ww:form method="post" action="addRepository" namespace="/admin" validate="true">
- <ww:textfield name="model.id" label="Identifier" size="10" required="true"/>
- <%@ include file="/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf" %>
+ <ww:form method="post" action="saveRepository" namespace="/admin" validate="true">
+ <ww:hidden name="mode" value="add"/>
+ <ww:textfield name="repository.id" label="Identifier" size="10" required="true"/>
+ <%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %>
<ww:submit value="Add Repository"/>
</ww:form>
<script type="text/javascript">
- document.getElementById("addRepository_id").focus();
+ document.getElementById("saveRepository_id").focus();
</script>
</div>
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp?view=diff&rev=535418&r1=535417&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/deleteRepository.jsp Fri May 4 17:05:23 2007
@@ -37,11 +37,11 @@
<strong><span class="statusFailed">WARNING:</span> This operation can not be undone.</strong>
</blockquote>
- <ww:form method="post" action="deleteRepository" namespace="/admin" validate="true">
- <ww:hidden name="repoId"/>
+ <ww:form method="post" action="deleteRepository!delete" namespace="/admin" validate="true">
+ <ww:hidden name="repoid"/>
<ww:radio list="#@java.util.LinkedHashMap@{'delete-contents' : 'Remove the repository and delete its contents from disk',
'delete-entry' : 'Remove the repository from the management list, but leave the contents unmodified',
- 'unmodified' : 'Leave the repository unmodified'}" name="operation" theme="archiva"/>
+ 'unmodified' : 'Leave the repository unmodified'}" name="mode" theme="archiva"/>
<ww:submit value="Go"/>
</ww:form>
</div>
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp?view=auto&rev=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp (added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp Fri May 4 17:05:23 2007
@@ -0,0 +1,52 @@
+<%--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ --%>
+
+<%@ taglib prefix="ww" uri="/webwork" %>
+
+<html>
+<head>
+ <title>Admin : Edit Proxy Connector</title>
+ <ww:head/>
+</head>
+
+<body>
+
+<h1>Admin : Edit Proxy Connector</h1>
+
+<div id="contentArea">
+
+ <h2>Edit Proxy Connector</h2>
+
+ <ww:actionerror/>
+ <ww:actionmessage/>
+
+ <ww:form method="post" action="saveProxyConnector" namespace="/admin" validate="false">
+ <ww:hidden name="mode"/>
+ <%@ include file="/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf" %>
+ <ww:submit value="Save Proxy Connector"/>
+ </ww:form>
+
+ <script type="text/javascript">
+ document.getElementById("saveProxyConnector_proxyId").focus();
+ </script>
+
+</div>
+
+</body>
+</html>
\ No newline at end of file
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editProxyConnector.jsp
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp?view=diff&rev=535418&r1=535417&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp Fri May 4 17:05:23 2007
@@ -21,28 +21,28 @@
<html>
<head>
- <title>Configuration</title>
+ <title>Admin: Edit Repository</title>
<ww:head/>
</head>
<body>
-<h1>Configuration</h1>
+<h1>Admin: Edit Repository</h1>
<div id="contentArea">
- <h2>Edit Managed Repository</h2>
+ <h2>Edit Repository</h2>
<ww:actionmessage/>
<ww:form method="post" action="saveRepository" namespace="/admin" validate="false">
- <ww:hidden name="mode"/>
- <ww:hidden name="id"/>
- <%@ include file="/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf" %>
+ <ww:hidden name="mode" value="edit"/>
+ <ww:hidden name="repository.id"/>
+ <%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %>
<ww:submit value="Update Repository"/>
</ww:form>
<script type="text/javascript">
- document.getElementById("editRepository_name").focus();
+ document.getElementById("saveRepository_name").focus();
</script>
</div>
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf?view=auto&rev=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf (added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/proxyConnectorForm.jspf Fri May 4 17:05:23 2007
@@ -0,0 +1,196 @@
+<%--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ --%>
+<%@ taglib prefix="ww" uri="/webwork" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+
+<c:url var="iconDeleteUrl" value="/images/icons/delete.gif" />
+
+<input type="hidden" name="pattern"/>
+<ww:select name="connector.proxyId" list="proxyIdOptions" label="Network Proxy" required="true"/>
+<ww:select name="connector.sourceRepoId" list="localRepoIdList" label="Local Repository" required="true"/>
+<ww:select name="connector.targetRepoId" list="remoteRepoIdList" label="Remote Repository" required="true" />
+
+<script type="text/javascript">
+<!--
+ function setAndSubmit(id, value, action)
+ {
+ var f = document.forms.saveProxyConnector;
+
+ f.action = action;
+ f[id].value = value;
+ f.submit();
+ }
+//-->
+</script>
+
+<tr><td valign="top"><label>Policies:</label></td>
+<td>
+ <table>
+ <c:forEach items="${policyMap}" var="policy" varStatus="i">
+ <tr>
+ <td>
+ <ww:label for="policy_${policy.key}" required="true"
+ theme="simple">${policy.key}:</ww:label>
+ </td>
+ <td>
+ <ww:select name="connector.policies['${policy.key}']"
+ list="policyMap['${policy.key}'].options"
+ value="connector.policies['${policy.key}']"
+ id="policy_${policy.key}"
+ theme="simple"
+ cssStyle="width: 10em" />
+ </td>
+ </tr>
+ </c:forEach>
+ </table>
+</td></tr>
+
+<tr class="seperator">
+ <td valign="top">
+ <label for="propertiesEntry">Properties:</label>
+ </td>
+ <td>
+ <ww:textfield name="propertyKey" size="15" id="propertiesEntry" theme="simple" /> :
+ <ww:textfield name="propertyValue" size="15" id="propertiesValue" theme="simple" />
+ <ww:submit name="action:editProxyConnector!addProperty" value="Add Property" theme="simple" />
+ </td>
+</tr>
+<tr>
+ <td>
+ </td>
+ <td>
+ <c:choose>
+ <c:when test="${empty(connector.properties)}">
+ <i>No properties have been set.</i>
+ </c:when>
+ <c:otherwise>
+ <ww:url id="removePropertyUrl"
+ action="editProxyConnector"
+ method="removeProperty" />
+ <table>
+ <c:forEach items="${connector.properties}" var="property" varStatus="i">
+ <tr>
+ <td>
+ <ww:label for="property_${property.key}"
+ theme="simple">${property.key}</ww:label>
+ </td>
+ <td>
+ <ww:textfield name="connector.properties['${property.key}']"
+ size="15"
+ id="property_${property.key}"
+ theme="simple" />
+ </td>
+ <td>
+ <ww:a href="#" title="Remove [${property.key}] Property"
+ onclick="setAndSubmit('propertyKey', '${property.key}', '%{removePropertyUrl}')"
+ theme="simple">
+ <img src="${iconDeleteUrl}" /></ww:a>
+
+ </td>
+ </tr>
+ </c:forEach>
+ </table>
+ </c:otherwise>
+ </c:choose>
+ </td>
+</tr>
+
+<tr class="seperator">
+ <td valign="top">
+ <label for="blackListEntry">Black List:</label>
+ </td>
+ <td>
+ <ww:textfield name="blackListPattern" size="30" id="blackListEntry" theme="simple" />
+ <ww:submit name="action:editProxyConnector!addBlackListPattern" value="Add Pattern" theme="simple" />
+ </td>
+</tr>
+<tr>
+ <td>
+ </td>
+ <td>
+ <ww:url id="removeBlackListPatternUrl"
+ action="editProxyConnector"
+ method="removeBlackListPattern" />
+ <c:choose>
+ <c:when test="${empty(connector.blackListPatterns)}">
+ <i>No black list patterns have been set.</i>
+ </c:when>
+ <c:otherwise>
+ <table>
+ <c:forEach items="${connector.blackListPatterns}" var="pattern" varStatus="i">
+ <tr>
+ <td>
+ <ww:hidden name="connector.blackListPatterns" value="${pattern}"/>
+ <code>"${pattern}"</code>
+ </td>
+ <td>
+ <ww:a href="#" title="Remove [${pattern}] Pattern"
+ onclick="setAndSubmit('pattern', '${pattern}', '%{removeBlackListPatternUrl}')"
+ theme="simple">
+ <img src="${iconDeleteUrl}" /></ww:a>
+ </td>
+ </tr>
+ </c:forEach>
+ </table>
+ </c:otherwise>
+ </c:choose>
+ </td>
+</tr>
+
+<tr class="seperator">
+ <td valign="top">
+ <label for="whiteListEntry">White List:</label>
+ </td>
+ <td>
+ <ww:textfield name="whiteListPattern" size="30" id="whiteListEntry" theme="simple" />
+ <ww:submit name="action:editProxyConnector!addWhiteListPattern" value="Add Pattern" theme="simple" />
+ </td>
+</tr>
+<tr>
+ <td>
+ </td>
+ <td>
+ <ww:url id="removeWhiteListPatternUrl"
+ action="editProxyConnector"
+ method="removeWhiteListPattern" />
+ <c:choose>
+ <c:when test="${empty(connector.whiteListPatterns)}">
+ <i>No white list patterns have been set.</i>
+ </c:when>
+ <c:otherwise>
+ <table>
+ <c:forEach items="${connector.whiteListPatterns}" var="pattern" varStatus="i">
+ <tr>
+ <td>
+ <ww:hidden name="connector.whiteListPatterns" value="${pattern}"/>
+ <code>"${pattern}"</code>
+ </td>
+ <td>
+ <ww:a href="#" title="Remove [${pattern}] Pattern"
+ onclick="setAndSubmit('pattern', '${pattern}', '%{removeWhiteListPatternUrl}')"
+ theme="simple">
+ <img src="${iconDeleteUrl}" /></ww:a>
+ </td>
+ </tr>
+ </c:forEach>
+ </table>
+ </c:otherwise>
+ </c:choose>
+ </td>
+</tr>
Copied: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf (from r534213, maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf)
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf?view=diff&rev=535418&p1=maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf&r1=534213&p2=maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/managedRepositoryForm.jspf (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/include/repositoryForm.jspf Fri May 4 17:05:23 2007
@@ -19,11 +19,11 @@
<%@ taglib prefix="ww" uri="/webwork" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<ww:textfield name="name" label="Name" size="50" required="true"/>
-<ww:textfield name="directory" label="Directory" size="100" required="true"/>
+<ww:textfield name="repository.name" label="Name" size="50" required="true"/>
+<ww:textfield name="repository.url" label="Directory or URL" size="100" required="true"/>
<ww:select list="#@java.util.LinkedHashMap@{'default' : 'Maven 2.x Repository', 'legacy' : 'Maven 1.x Repository'}"
- name="layout" label="Type"/>
-<ww:textfield name="refreshCronExpression" label="Cron" size="100" required="true" />
-<ww:checkbox name="releases" fieldValue="true" label="Releases Included"/>
-<ww:checkbox name="snapshots" fieldValue="false" label="Snapshots Included"/>
-<ww:checkbox name="indexed" fieldValue="true" label="Indexed"/>
+ name="repository.layout" label="Type"/>
+<ww:textfield name="repository.refreshCronExpression" label="Cron" size="100" required="true" />
+<ww:checkbox name="repository.releases" fieldValue="true" label="Releases Included"/>
+<ww:checkbox name="repository.snapshots" fieldValue="false" label="Snapshots Included"/>
+<ww:checkbox name="repository.indexed" fieldValue="true" label="Indexed"/>
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp?view=auto&rev=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp (added)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp Fri May 4 17:05:23 2007
@@ -0,0 +1,170 @@
+<%--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ --%>
+
+<%@ taglib prefix="ww" uri="/webwork" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ taglib prefix="pss" uri="/plexusSecuritySystem" %>
+<%@ taglib prefix="archiva" uri="http://maven.apache.org/archiva" %>
+
+<html>
+<head>
+ <title>Administration - Proxy Connectors</title>
+ <ww:head/>
+</head>
+
+<body>
+
+<h1>Administration - Proxy Connectors</h1>
+
+<div id="contentArea">
+
+ <ww:actionerror />
+ <ww:actionmessage />
+
+ <div style="float:right">
+ <pss:ifAnyAuthorized permissions="archiva-manage-configuration">
+ <ww:url id="addProxyConnectorUrl" action="addProxyConnector" />
+ <ww:a href="%{addProxyConnectorUrl}" cssClass="create">
+ <img src="<c:url value="/images/icons/create.png" />" />
+ Add Proxy Connector
+ </ww:a>
+ </pss:ifAnyAuthorized>
+ </div>
+
+ <h2>Repository Proxy Connectors</h2>
+
+ <c:choose>
+ <c:when test="${empty(proxyConnectorMap)}">
+ <strong>No Repository Proxy Connectors Defined.</strong>
+ </c:when>
+ <c:otherwise>
+ <table width="100%">
+ <c:forEach items="${proxyConnectorMap}" var="repository" varStatus="i">
+
+ <c:forEach items="${repository.value}" var="connector" varStatus="pc">
+ <tr class="proxyConnector">
+ <c:if test="${pc.first}">
+ <td class="managedRepo" rowspan="${fn:length(repository.value)}">
+ <div>
+ <img src="<c:url value="/images/archiva-splat-32.gif"/>" />
+ <p class="id">${repository.key}</p>
+ <p class="name">${repoMap[repository.key].name}</p>
+ </div>
+ </td>
+ </c:if>
+ <td class="connector">
+ <div class="wrap">
+ <div class="controls">
+ <pss:ifAnyAuthorized permissions="archiva-manage-configuration">
+ <ww:url id="editProxyConnectorUrl" action="editProxyConnector">
+ <ww:param name="target" value="%{'${connector.targetRepoId}'}" />
+ <ww:param name="source" value="%{'${connector.sourceRepoId}'}" />
+ </ww:url>
+ <ww:url id="deleteProxyConnectorUrl" action="deleteProxyConnector" method="confirm">
+ <ww:param name="source" value="%{'${connector.sourceRepoId}'}" />
+ <ww:param name="target" value="%{'${connector.targetRepoId}'}" />
+ </ww:url>
+ <ww:a href="%{editProxyConnectorUrl}" cssClass="edit" title="Edit Proxy Connector">
+ <img src="<c:url value="/images/icons/edit.png" />" />
+ </ww:a>
+ <ww:a href="%{deleteProxyConnectorUrl}" cssClass="delete" title="Delete Proxy Connector">
+ <img src="<c:url value="/images/icons/delete.gif" />" />
+ </ww:a>
+ </pss:ifAnyAuthorized>
+ </div>
+
+ <h4>Proxy Connector</h4>
+ <table>
+ <tr>
+ <th nowrap="nowrap">Network Proxy:</th>
+ <td>
+ <c:choose>
+ <c:when test="${empty(connector.proxyId)}">
+ <i>(Direct Connection)</i>
+ </c:when>
+ <c:otherwise>
+ ${connector.proxyId}
+ </c:otherwise>
+ </c:choose>
+ </td>
+ </tr>
+ <tr>
+ <th>Policies:</th>
+ <td nowrap="nowrap">
+ <c:forEach items="${connector.policies}" var="policies">
+ <p><em>${policies.key}</em>: ${policies.value}</p>
+ </c:forEach>
+ </td>
+ </tr>
+
+ <c:if test="${not(empty(connector.whiteListPatterns))}">
+ <tr>
+ <th nowrap="nowrap">White List:</th>
+ <td nowrap="nowrap">
+ <c:forEach items="${connector.whiteListPatterns}" var="pattern">
+ <p><code>"${pattern}"</code></p>
+ </c:forEach>
+ </td>
+ </tr>
+ </c:if>
+
+ <c:if test="${not(empty(connector.blackListPatterns))}">
+ <tr>
+ <th nowrap="nowrap">Black List:</th>
+ <td>
+ <c:forEach items="${connector.blackListPatterns}" var="pattern">
+ <p><code>"${pattern}"</code></p>
+ </c:forEach>
+ </td>
+ </tr>
+ </c:if>
+
+ <c:if test="${not(empty(connector.properties))}">
+ <tr>
+ <th>Properties:</th>
+ <td>
+ <c:forEach items="${connector.properties}" var="prop">
+ <p><em>${prop.key}</em>: ${prop.value}</p>
+ </c:forEach>
+ </td>
+ </tr>
+ </c:if>
+ </table>
+ </div>
+ </td>
+ <td class="remoteRepo">
+ <div>
+ <img src="<c:url value="/images/archiva-world.png"/>" />
+ <p class="id">${connector.targetRepoId}</p>
+ <p class="name">${repoMap[connector.targetRepoId].name}</p>
+ <p class="url">${repoMap[connector.targetRepoId].url}</p>
+ </div>
+ </td>
+ </tr>
+ </c:forEach>
+ </c:forEach>
+ </table>
+ </c:otherwise>
+ </c:choose>
+
+</div>
+
+</body>
+</html>
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/proxyConnectors.jsp
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp?view=diff&rev=535418&r1=535417&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp Fri May 4 17:05:23 2007
@@ -37,28 +37,30 @@
<ww:actionerror />
<ww:actionmessage />
-<div>
- <div style="float: right">
- <%-- TODO replace with icons --%>
- <pss:ifAuthorized permission="archiva-manage-configuration">
- <ww:url id="addRepositoryUrl" action="addRepository"/>
- <ww:a href="%{addRepositoryUrl}">Add Repository</ww:a>
- </pss:ifAuthorized>
+ <div>
+ <div style="float: right">
+ <%-- TODO replace with icons --%>
+ <pss:ifAuthorized permission="archiva-manage-configuration">
+ <ww:url id="addRepositoryUrl" action="addRepository"/>
+ <ww:a href="%{addRepositoryUrl}">
+ <img src="<c:url value="/images/icons/create.png" />" />
+ Add Repository</ww:a>
+ </pss:ifAuthorized>
+ </div>
+ <h2>Local Repositories</h2>
</div>
- <h2>Managed Repositories</h2>
-</div>
<c:choose>
- <c:when test="${empty(model.managedRepositories)}">
- <%-- No Managed Repositories. --%>
- <strong>There are no managed repositories configured yet.</strong>
+ <c:when test="${empty(managedRepositories)}">
+ <%-- No Local Repositories. --%>
+ <strong>There are no local repositories configured yet.</strong>
</c:when>
<c:otherwise>
<%-- Display the repositories. --%>
- <c:forEach items="${model.managedRepositories}" var="repository" varStatus="i">
+ <c:forEach items="${managedRepositories}" var="repository" varStatus="i">
- <div>
+ <div class="repository">
<div style="float: right">
<%-- TODO: make some icons --%>
@@ -69,12 +71,20 @@
<ww:url id="deleteRepositoryUrl" action="deleteRepository" method="confirm">
<ww:param name="repoid" value="%{'${repository.id}'}" />
</ww:url>
- <ww:a href="%{editRepositoryUrl}">Edit Repository</ww:a>
- <ww:a href="%{deleteRepositoryUrl}">Delete Repository</ww:a>
+ <ww:a href="%{editRepositoryUrl}">
+ <img src="<c:url value="/images/icons/edit.png" />" />
+ Edit Repository</ww:a>
+ <ww:a href="%{deleteRepositoryUrl}">
+ <img src="<c:url value="/images/icons/delete.gif" />" />
+ Delete Repository</ww:a>
</pss:ifAnyAuthorized>
</div>
- <h3>${repository.name}</h3>
+ <div style="float: left">
+ <img src="<c:url value="/images/archiva-splat-32.gif"/>" />
+ </div>
+
+ <h3 class="repository">${repository.name}</h3>
<table class="infoTable">
<tr>
@@ -93,7 +103,7 @@
</tr>
<tr>
<th>WebDAV URL</th>
- <td><a href="${model.baseUrl}/${repository.id}/">${model.baseUrl}/${repository.id}/</a></td>
+ <td><a href="${baseUrl}/${repository.id}/">${baseUrl}/${repository.id}/</a></td>
</tr>
<tr>
<th>Type</th>
@@ -176,6 +186,83 @@
</div>
</c:forEach>
+ </c:otherwise>
+</c:choose>
+
+ <h2>Remote Repositories</h2>
+
+<c:choose>
+ <c:when test="${empty(remoteRepositories)}">
+ <%-- No Remote Repositories. --%>
+ <strong>There are no remote repositories configured yet.</strong>
+ </c:when>
+ <c:otherwise>
+ <%-- Display the repositories. --%>
+
+ <c:forEach items="${remoteRepositories}" var="repository" varStatus="i">
+ <div class="repository">
+
+ <div style="float: right">
+ <%-- TODO: make some icons --%>
+ <pss:ifAnyAuthorized permissions="archiva-manage-configuration">
+ <ww:url id="editRepositoryUrl" action="editRepository">
+ <ww:param name="repoid" value="%{'${repository.id}'}" />
+ </ww:url>
+ <ww:url id="deleteRepositoryUrl" action="deleteRepository" method="confirm">
+ <ww:param name="repoid" value="%{'${repository.id}'}" />
+ </ww:url>
+ <ww:a href="%{editRepositoryUrl}">
+ <img src="<c:url value="/images/icons/edit.png" />" />
+ Edit Repository</ww:a>
+ <ww:a href="%{deleteRepositoryUrl}">
+ <img src="<c:url value="/images/icons/delete.gif" />" />
+ Delete Repository</ww:a>
+ </pss:ifAnyAuthorized>
+ </div>
+
+ <div style="float: left">
+ <img src="<c:url value="/images/archiva-world.png"/>" />
+ </div>
+
+ <h3 class="repository">${repository.name}</h3>
+
+ <table class="infoTable">
+ <tr>
+ <th>Identifier</th>
+ <td>
+ <code>${repository.id}</code>
+ </td>
+ </tr>
+ <tr>
+ <th>URL</th>
+ <td>${repository.url}</td>
+ </tr>
+ <tr>
+ <th>Type</th>
+ <%-- TODO: can probably just use layout appended to a key prefix in i18n to simplify this --%>
+ <td>
+ <c:choose>
+ <c:when test="${repository.layout == 'default'}">
+ Maven 2.x Repository
+ </c:when>
+ <c:otherwise>
+ Maven 1.x Repository
+ </c:otherwise>
+ </c:choose>
+ </td>
+ </tr>
+ <tr>
+ <th>Releases Included</th>
+ <td class="${repository.releases ? 'donemark' : 'errormark'} booleanIcon"> ${repository.releases}</td>
+ </tr>
+ <tr>
+ <th>Snapshots Included</th>
+ <td class="${repository.snapshots ? 'donemark' : 'errormark'} booleanIcon"> ${repository.snapshots}</td>
+ </tr>
+ </table>
+
+ </div>
+ </c:forEach>
</c:otherwise>
</c:choose>
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp?view=diff&rev=535418&r1=535417&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/decorators/default.jsp Fri May 4 17:05:23 2007
@@ -116,6 +116,10 @@
<my:currentWWUrl action="configureAppearance" namespace="/admin">Appearance</my:currentWWUrl>
</li>
</pss:ifAuthorized>
+ <%-- TODO: future options here.
+ * Repository Statistics.
+ * Web Services Statistics.
+ --%>
</ul>
</pss:ifAnyAuthorized>
@@ -123,22 +127,24 @@
<h5>Administration</h5>
<ul>
<li class="none">
- <my:currentWWUrl action="index" namespace="/admin">Settings</my:currentWWUrl>
+ <my:currentWWUrl action="repositories" namespace="/admin">Repositories</my:currentWWUrl>
</li>
<li class="none">
- <my:currentWWUrl action="repositories" namespace="/admin">Repositories</my:currentWWUrl>
+ <my:currentWWUrl action="proxyConnectors" namespace="/admin">Proxy Connectors</my:currentWWUrl>
</li>
- <%--
<li class="none">
- <my:currentWWUrl action="proxiedRepositories" namespace="/admin">Proxied Repositories</my:currentWWUrl>
+ <my:currentWWUrl action="networkProxies" namespace="/admin">Network Proxies</my:currentWWUrl>
</li>
- --%>
-
- <%-- TODO: add back after synced repos are implemented
- <li class="none">
- <my:currentWWUrl action="syncedRepositories" namespace="/admin">Synced Repositories</my:currentWWUrl>
- </li>
- --%>
+ <li class="none">
+ <my:currentWWUrl action="repositoryScanning" namespace="/admin">Repository Scanning</my:currentWWUrl>
+ </li>
+ <li class="none">
+ <my:currentWWUrl action="database" namespace="/admin">Database</my:currentWWUrl>
+ </li>
+ <%-- TODO: future options here.
+ * Repository Syncing Connectors. (rsync, ftp, scp, etc...)
+ * Web Services (enable / disable), role based?
+ --%>
</ul>
</pss:ifAuthorized>
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css?view=diff&rev=535418&r1=535417&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/maven-base.css Fri May 4 17:05:23 2007
@@ -84,7 +84,6 @@
}
#leftColumn {
- height: 315px;
width: 170px;
float: left;
overflow: auto;
Modified: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css?view=diff&rev=535418&r1=535417&r2=535418
==============================================================================
--- maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css (original)
+++ maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/css/site.css Fri May 4 17:05:23 2007
@@ -211,3 +211,77 @@
background-color: #F3B455 !important;
}
+div.repository h3 {
+ border-bottom: 0px !important;
+ padding-left: 15px !important;
+}
+
+div.repository {
+ border-bottom: 1px solid #DFDEDE;
+}
+
+tr.proxyConnector {
+ border-bottom: 1px solid #DFDEDE;
+}
+
+tr.proxyConnector td.managedRepo div,
+tr.proxyConnector td.remoteRepo div {
+ border: 1px dotted gray;
+ padding: 5px;
+ background-color: white;
+}
+
+tr.proxyConnector td.managedRepo img,
+tr.proxyConnector td.remoteRepo img {
+ float: left;
+ border: 0px;
+}
+
+tr.proxyConnector td.managedRepo div p,
+tr.proxyConnector td.remoteRepo div p {
+ margin: 0px;
+ margin-left: 40px;
+ padding: 0px;
+}
+
+tr.proxyConnector td.managedRepo div p.id,
+tr.proxyConnector td.remoteRepo div p.id {
+ font-family: monospace;
+}
+
+tr.proxyConnector td.connector {
+ padding-left: 10px;
+ padding-right: 10px;
+}
+
+tr.proxyConnector td.connector div.wrap {
+ margin-left: 10px;
+ margin-right: 10px;
+ padding: 5px;
+ border: 1px solid gray;
+ background-color: #eeeeee;
+}
+
+tr.proxyConnector td.connector div.controls {
+ float: right;
+}
+
+tr.proxyConnector td.connector div h4 {
+ font-size: 1.0em;
+ margin: 0px;
+}
+
+tr.proxyConnector td.connector table {
+ border: 0px;
+ background-color: transparent;
+ font-size: 0.8em;
+}
+
+tr.proxyConnector td.connector table p {
+ margin: 0px;
+ padding: 0px;
+}
+
+tr.seperator td {
+ border-top: 1px dashed #dddddd !important;
+}
\ No newline at end of file
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/archiva-splat-32.gif
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/archiva-splat-32.gif?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/archiva-splat-32.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/archiva-world.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-down.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-left.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-right.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-up.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-up.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/arrow-up.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/box.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/create.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/create.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/create.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/delete.gif
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/delete.gif?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/delete.gif
------------------------------------------------------------------------------
svn:mime-type = image/gif
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/edit.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/edit.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/edit.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-key.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-key.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-key.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/security-lock.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png
URL: http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png?view=auto&rev=535418
==============================================================================
Binary file - no diff available.
Propchange: maven/archiva/trunk/archiva-web/archiva-webapp/src/main/webapp/images/icons/user.png
------------------------------------------------------------------------------
svn:mime-type = image/png