[MRM-1579] rewrite repositories scanning admin page

start some refactoring to ease implementation (reusable beans)

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1298148 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Olivier Lamy 2012-03-07 22:01:13 +00:00
parent 18f3888b23
commit 1f1599658f
6 changed files with 91 additions and 30 deletions

View File

@ -1,4 +1,4 @@
package org.apache.archiva.web.action.admin.scanning;
package org.apache.archiva.rest.api.model;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@ -19,17 +19,34 @@ package org.apache.archiva.web.action.admin.scanning;
* under the License.
*/
import javax.xml.bind.annotation.XmlRootElement;
/**
* AdminRepositoryConsumer
*
* @version $Id$
*/
@XmlRootElement( name = "adminRepositoryConsumer" )
public class AdminRepositoryConsumer
{
private boolean enabled = false;
private String id;
private String description;
public AdminRepositoryConsumer()
{
// no op
}
public AdminRepositoryConsumer( boolean enabled, String id, String description )
{
this.enabled = enabled;
this.id = id;
this.description = description;
}
public String getDescription()
{
return description;

View File

@ -296,4 +296,43 @@ $(function() {
}
//---------------------------
// repository scanning part
//---------------------------
FileType=function(id,patterns){
//private String id;
this.id=ko.observable(id);
//private List<String> patterns;
this.patterns=ko.observableArray(patterns);
}
mapFileType=function(data){
return new FileType(data.id,data.patterns);
}
mapFileTypes=function(data){
if (data!=null){
return $.isArray(data)? $.map(data,function(item){
return mapFileType(item)
}):[mapFileType(data)];
}
return [];
}
displayRepositoryScanning=function(){
$.ajax("restServices/archivaServices/archivaAdministrationService/getFileTypes", {
type: "GET",
dataType: 'json',
success: function(data){
var fileTypes=mapFileTypes(data);
}
});
}
});

View File

@ -45,6 +45,9 @@
<li style="display: none" redback-permissions="{permissions: ['archiva-manage-configuration']}">
<a href="#" id="menu-legacy-support-list-a" onclick="displayLegacyArtifactPathSupport()">${$.i18n.prop('menu.legacy-artifact-support')}</a>
</li>
<li style="display: none" redback-permissions="{permissions: ['archiva-manage-configuration']}">
<a href="#" id="menu-repository-scanning-list-a" onclick="displayRepositoryScanning()">${$.i18n.prop('menu.repository-scanning')}</a>
</li>
</ul>
<ul class="nav nav-list" redback-permissions="{permissions: ['archiva-manage-users']}">

View File

@ -19,6 +19,7 @@ package org.apache.archiva.web.action.admin.scanning;
* under the License.
*/
import org.apache.archiva.rest.api.model.AdminRepositoryConsumer;
import org.apache.commons.collections.Closure;
import org.apache.archiva.consumers.RepositoryContentConsumer;

View File

@ -19,6 +19,8 @@ package org.apache.archiva.web.action.admin.scanning;
* under the License.
*/
import org.apache.archiva.rest.api.model.AdminRepositoryConsumer;
import java.util.Comparator;
/**

View File

@ -27,6 +27,7 @@ import org.apache.archiva.admin.model.beans.FileType;
import org.apache.archiva.admin.repository.admin.FiletypeToMapClosure;
import org.apache.archiva.audit.Auditable;
import org.apache.archiva.repository.scanner.RepositoryContentConsumers;
import org.apache.archiva.rest.api.model.AdminRepositoryConsumer;
import org.apache.archiva.security.common.ArchivaRoleConstants;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
@ -67,7 +68,7 @@ public class RepositoryScanningAction
private List<String> fileTypeIds;
/**
* List of {@link AdminRepositoryConsumer} objects for consumers of known content.
* List of {@link org.apache.archiva.rest.api.model.AdminRepositoryConsumer} objects for consumers of known content.
*/
private List<AdminRepositoryConsumer> knownContentConsumers;
@ -102,6 +103,30 @@ public class RepositoryScanningAction
log.info( "[ActionMessage] {}", aMessage );
}
public void prepare()
throws Exception
{
FiletypeToMapClosure filetypeToMapClosure = new FiletypeToMapClosure();
CollectionUtils.forAllDo( archivaAdministration.getFileTypes(), filetypeToMapClosure );
fileTypeMap = filetypeToMapClosure.getMap();
AddAdminRepoConsumerClosure addAdminRepoConsumer =
new AddAdminRepoConsumerClosure( archivaAdministration.getKnownContentConsumers() );
CollectionUtils.forAllDo( repoconsumerUtil.getAvailableKnownConsumers(), addAdminRepoConsumer );
this.knownContentConsumers = addAdminRepoConsumer.getList();
Collections.sort( knownContentConsumers, AdminRepositoryConsumerComparator.getInstance() );
addAdminRepoConsumer = new AddAdminRepoConsumerClosure( archivaAdministration.getInvalidContentConsumers() );
CollectionUtils.forAllDo( repoconsumerUtil.getAvailableInvalidConsumers(), addAdminRepoConsumer );
this.invalidContentConsumers = addAdminRepoConsumer.getList();
Collections.sort( invalidContentConsumers, AdminRepositoryConsumerComparator.getInstance() );
fileTypeIds = new ArrayList<String>();
fileTypeIds.addAll( fileTypeMap.keySet() );
Collections.sort( fileTypeIds );
}
public String addFiletypePattern()
{
log.info( "Add New File Type Pattern [{}:{}]", getFileTypeId(), getPattern() );
@ -187,32 +212,6 @@ public class RepositoryScanningAction
return bundle;
}
public void prepare()
throws Exception
{
FiletypeToMapClosure filetypeToMapClosure = new FiletypeToMapClosure();
CollectionUtils.forAllDo( archivaAdministration.getFileTypes(), filetypeToMapClosure );
fileTypeMap = filetypeToMapClosure.getMap();
AddAdminRepoConsumerClosure addAdminRepoConsumer =
new AddAdminRepoConsumerClosure( archivaAdministration.getKnownContentConsumers() );
CollectionUtils.forAllDo( repoconsumerUtil.getAvailableKnownConsumers(), addAdminRepoConsumer );
this.knownContentConsumers = addAdminRepoConsumer.getList();
Collections.sort( knownContentConsumers, AdminRepositoryConsumerComparator.getInstance() );
addAdminRepoConsumer = new AddAdminRepoConsumerClosure( archivaAdministration.getInvalidContentConsumers() );
CollectionUtils.forAllDo( repoconsumerUtil.getAvailableInvalidConsumers(), addAdminRepoConsumer );
this.invalidContentConsumers = addAdminRepoConsumer.getList();
Collections.sort( invalidContentConsumers, AdminRepositoryConsumerComparator.getInstance() );
fileTypeIds = new ArrayList<String>();
fileTypeIds.addAll( fileTypeMap.keySet() );
Collections.sort( fileTypeIds );
}
public void setFileTypeId( String fileTypeId )
{
this.fileTypeId = fileTypeId;