Author: olamy
Date: Wed May 30 16:05:28 2012
New Revision: 1344323
URL: http://svn.apache.org/viewvc?rev=1344323&view=rev
Log:
start work on deleting artifacts tru the ui
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java?rev=1344323&r1=1344322&r2=1344323&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
Wed May 30 16:05:28 2012
@@ -19,11 +19,11 @@ package org.apache.archiva.rest.api.serv
* under the License.
*/
+import org.apache.archiva.redback.authorization.RedbackAuthorization;
import org.apache.archiva.repository.scanner.RepositoryScanStatistics;
import org.apache.archiva.rest.api.model.Artifact;
import org.apache.archiva.rest.api.model.ArtifactTransferRequest;
import org.apache.archiva.security.common.ArchivaRoleConstants;
-import org.apache.archiva.redback.authorization.RedbackAuthorization;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
@@ -111,20 +111,21 @@ public interface RepositoriesService
@Path( "deleteArtifact" )
- @GET
+ @POST
+ @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
@RedbackAuthorization( noPermission = true )
/**
* <b>permissions are checked in impl</b>
* @since 1.4-M2
*/
- Boolean deleteArtifact( @QueryParam( "" ) Artifact artifact, @QueryParam(
"repositoryId" ) String repositoryId )
+ Boolean deleteArtifact( Artifact artifact )
throws ArchivaRestServiceException;
@Path( "isAuthorizedToDeleteArtifacts/{repositoryId}" )
@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML,
MediaType.TEXT_PLAIN } )
- @RedbackAuthorization( noPermission = true, noRestriction = true)
+ @RedbackAuthorization( noPermission = true, noRestriction = true )
Boolean isAuthorizedToDeleteArtifacts( @PathParam( "repositoryId" ) String
repoId )
throws ArchivaRestServiceException;
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java?rev=1344323&r1=1344322&r2=1344323&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
Wed May 30 16:05:28 2012
@@ -620,10 +620,11 @@ public class DefaultRepositoriesService
}
}
- public Boolean deleteArtifact( Artifact artifact, String repositoryId )
+ public Boolean deleteArtifact( Artifact artifact )
throws ArchivaRestServiceException
{
+ String repositoryId = artifact.getContext();
if ( StringUtils.isEmpty( repositoryId ) )
{
throw new ArchivaRestServiceException( "repositoryId cannot be
null", 400, null );
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties?rev=1344323&r1=1344322&r2=1344323&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties
Wed May 30 16:05:28 2012
@@ -264,6 +264,7 @@ artifact.detail.tab.header.dependency.tr
artifact.detail.tab.header.used.by=Used By
artifact.detail.tab.header.file.content=Artifacts Content
artifact.detail.tab.header.file.download=Artifacts
+artifact.deleted=Artifact deleted.
browse.artifact.version=Version
browse.artifact.pom.snippet=POM Snippet
browse.artifact.parent=Parent
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js?rev=1344323&r1=1344322&r2=1344323&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/search.js
Wed May 30 16:05:28 2012
@@ -273,95 +273,21 @@ define("search",["jquery","i18n","jquery
}
if
($(e.target).attr("href")=="#artifact-details-download-content") {
- $.log("artifact metadata");
- //
mainContent.find("#artifact-details-download-content"
).html(smallSpinnerImg());
var artifactDownloadInfosUrl =
"restServices/archivaServices/browseService/artifactDownloadInfos/"+encodeURIComponent(self.groupId);
artifactDownloadInfosUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(self.version);
artifactDownloadInfosUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
$.get(artifactDownloadInfosUrl,function(data){
- $("#artifact-details-download-content"
).html($("#artifact-details-download-content_tmpl").tmpl({artifactDownloadInfos:data}));
+ var artifactDetailsDownloadViewModel = new
ArtifactDetailsDownloadViewModel(mapArtifacts(data));
+ mainContent.find("#artifact-details-download-content"
).attr("data-bind",'template:{name:"artifact-details-download-content_tmpl"}');
+
ko.applyBindings(artifactDetailsDownloadViewModel,mainContent.find("#artifact-details-download-content"
).get(0));
});
return;
}
if
($(e.target).attr("href")=="#artifact-details-files-content") {
- mainContent.find("#artifact-details-files-content"
).html(smallSpinnerImg());
- var artifactDownloadInfosUrl =
"restServices/archivaServices/browseService/artifactDownloadInfos/"+encodeURIComponent(self.groupId);
-
artifactDownloadInfosUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(self.version);
-
artifactDownloadInfosUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
-
- $.get(artifactDownloadInfosUrl,function(data){
- $("#artifact-details-files-content"
).html($("#artifact-details-files-content_tmpl").tmpl({artifactDownloadInfos:data}));
- mainContent.find("#artifact-content-list-files li"
).on("click",function(){
- mainContent.find("#artifact_content_tree").html("");
- mainContent.find("#artifact-content-text" ).html("");
- var idValue = $(this ).attr("id");
- var splitted = idValue.split(":");
-
- var
classifier=splitted[0];//idValue.substringBeforeLast(":");
- var version=splitted[1];
- var type = splitted[2];
-
- $.log("click:" + idValue + " -> " + classifier + ":" +
type + ":" + version);
- if (type=="pom"){
- $.log("show pom");
- var pomContentUrl =
"restServices/archivaServices/browseService/artifactContentText/"+encodeURIComponent(self.groupId);
-
pomContentUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(version);
-
pomContentUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
- pomContentUrl+="&t=pom";
- mainContent.find("#artifact-content-text"
).html(smallSpinnerImg());
- $.ajax({
- url: pomContentUrl,
- success: function(data) {
- var text = data.content.replace(/</g,'<');
- text=text.replace(/>/g,">");
- mainContent.find("#artifact-content-text"
).html(text);
- prettyPrint();
- goToAnchor("artifact-content-text-header");
- }
- });
- return;
- }
- var entriesUrl =
"restServices/archivaServices/browseService/artifactContentEntries/"+encodeURIComponent(self.groupId);
-
entriesUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(version);
-
entriesUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
- if(classifier){
- entriesUrl+="&c="+encodeURIComponent(classifier);
- }
- $("#main-content #artifact_content_tree").fileTree({
- script: entriesUrl,
- root: ""
- },function(file) {
-
$.log("file:"+file.substringBeforeLast("/")+',classifier:'+classifier);
- var fileContentUrl =
"restServices/archivaServices/browseService/artifactContentText/"+encodeURIComponent(self.groupId);
-
fileContentUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(version);
-
fileContentUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
- if(type){
- fileContentUrl+="&t="+encodeURIComponent(type);
- }
- if(classifier){
-
fileContentUrl+="&c="+encodeURIComponent(classifier);
- }
-
fileContentUrl+="&p="+encodeURIComponent(file.substringBeforeLast("/"));
- $.ajax({
- url: fileContentUrl,
- success: function(data) {
- var text = data.content.replace(/</g,'<');
- text=text.replace(/>/g,">");
- mainContent.find("#artifact-content-text"
).html(smallSpinnerImg());
- mainContent.find("#artifact-content-text"
).html(text);
- prettyPrint();
- goToAnchor("artifact-content-text-header");
- }
- });
- }
- );
- });
-
- });
-
+ displayArtifactFilesContent(self);
}
});
}
@@ -461,6 +387,109 @@ define("search",["jquery","i18n","jquery
}
+ ArtifactDetailsDownloadViewModel=function(artifacts){
+ this.artifacts=ko.observableArray(artifacts);
+ var self=this;
+ deleteArtifact=function(artifact){
+ $.log("deleteArtifact");
+ clearUserMessages();
+ $.ajax({
+ url:"restServices/archivaServices/repositoriesService/deleteArtifact",
+ type:"POST",
+ dataType:"json",
+ contentType: 'application/json',
+ data: ko.toJSON(artifact),
+ success:function(data){
+ self.artifacts.remove(artifact);
+ displaySuccessMessage( $.i18n.prop('artifact.deleted'));
+ },
+ error:function(data){
+ displayRestError(data,"user-messages");
+ }
+ });
+
+ }
+ }
+
+ displayArtifactFilesContent=function(self){
+ var mainContent = $("#main-content");
+ mainContent.find("#artifact-details-files-content"
).html(smallSpinnerImg());
+ var artifactDownloadInfosUrl =
"restServices/archivaServices/browseService/artifactDownloadInfos/"+encodeURIComponent(self.groupId);
+
artifactDownloadInfosUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(self.version);
+
artifactDownloadInfosUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
+
+ $.get(artifactDownloadInfosUrl,function(data){
+ $("#artifact-details-files-content"
).html($("#artifact-details-files-content_tmpl").tmpl({artifactDownloadInfos:data}));
+ mainContent.find("#artifact-content-list-files li"
).on("click",function(){
+ mainContent.find("#artifact_content_tree").html("");
+ mainContent.find("#artifact-content-text" ).html("");
+ var idValue = $(this ).attr("id");
+ var splitted = idValue.split(":");
+
+ var classifier=splitted[0];//idValue.substringBeforeLast(":");
+ var version=splitted[1];
+ var type = splitted[2];
+
+ $.log("click:" + idValue + " -> " + classifier + ":" + type + ":" +
version);
+ if (type=="pom"){
+ $.log("show pom");
+ var pomContentUrl =
"restServices/archivaServices/browseService/artifactContentText/"+encodeURIComponent(self.groupId);
+
pomContentUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(version);
+
pomContentUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
+ pomContentUrl+="&t=pom";
+ mainContent.find("#artifact-content-text" ).html(smallSpinnerImg());
+ $.ajax({
+ url: pomContentUrl,
+ success: function(data) {
+ var text = data.content.replace(/</g,'<');
+ text=text.replace(/>/g,">");
+ mainContent.find("#artifact-content-text" ).html(text);
+ prettyPrint();
+ goToAnchor("artifact-content-text-header");
+ }
+ });
+ return;
+ }
+ var entriesUrl =
"restServices/archivaServices/browseService/artifactContentEntries/"+encodeURIComponent(self.groupId);
+
entriesUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(version);
+
entriesUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
+ if(classifier){
+ entriesUrl+="&c="+encodeURIComponent(classifier);
+ }
+ $("#main-content #artifact_content_tree").fileTree({
+ script: entriesUrl,
+ root: ""
+ },function(file) {
+
$.log("file:"+file.substringBeforeLast("/")+',classifier:'+classifier);
+ var fileContentUrl =
"restServices/archivaServices/browseService/artifactContentText/"+encodeURIComponent(self.groupId);
+
fileContentUrl+="/"+encodeURIComponent(self.artifactId)+"/"+encodeURIComponent(version);
+
fileContentUrl+="?repositoryId="+encodeURIComponent(getSelectedBrowsingRepository());
+ if(type){
+ fileContentUrl+="&t="+encodeURIComponent(type);
+ }
+ if(classifier){
+ fileContentUrl+="&c="+encodeURIComponent(classifier);
+ }
+
fileContentUrl+="&p="+encodeURIComponent(file.substringBeforeLast("/"));
+ $.ajax({
+ url: fileContentUrl,
+ success: function(data) {
+ var text = data.content.replace(/</g,'<');
+ text=text.replace(/>/g,">");
+ mainContent.find("#artifact-content-text"
).html(smallSpinnerImg());
+ mainContent.find("#artifact-content-text" ).html(text);
+ prettyPrint();
+ goToAnchor("artifact-content-text-header");
+ }
+ });
+ }
+ );
+ });
+
+ });
+
+ }
+
ArtifactContentEntry=function(path,file,depth){
this.path=path;
this.file=file;
@@ -1016,7 +1045,7 @@ define("search",["jquery","i18n","jquery
//-----------------------------------------
Artifact=function(context,url,groupId,artifactId,repositoryId,version,prefix,goals,bundleVersion,bundleSymbolicName,
bundleExportPackage,bundleExportService,bundleDescription,bundleName,bundleLicense,bundleDocUrl,
-
bundleImportPackage,bundleRequireBundle,classifier,packaging,fileExtension){
+
bundleImportPackage,bundleRequireBundle,classifier,packaging,fileExtension,size){
var self=this;
@@ -1095,6 +1124,8 @@ define("search",["jquery","i18n","jquery
//private String fileExtension;
this.fileExtension=fileExtension;
+ this.size=size;
+
this.crumbEntries=function(){
return calculateCrumbEntries(self.groupId,self.artifactId,self.version);
}
@@ -1126,7 +1157,7 @@ define("search",["jquery","i18n","jquery
mapArtifacts=function(data){
if (data){
- return $.isArray(data )? $.map(data,function(item){return
mapArtifact(item)}) : [data];
+ return $.isArray(data)? $.map(data,function(item){return
mapArtifact(item)}) : [data];
}
return [];
}
@@ -1137,7 +1168,7 @@ define("search",["jquery","i18n","jquery
data.goals,data.bundleVersion,data.bundleSymbolicName,
data.bundleExportPackage,data.bundleExportService,data.bundleDescription,data.bundleName,
data.bundleLicense,data.bundleDocUrl,
-
data.bundleImportPackage,data.bundleRequireBundle,data.classifier,data.packaging,data.fileExtension);
+
data.bundleImportPackage,data.bundleRequireBundle,data.classifier,data.packaging,data.fileExtension,data.size);
}
return null;
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js?rev=1344323&r1=1344322&r2=1344323&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/utils.js
Wed May 30 16:05:28 2012
@@ -293,10 +293,10 @@ define("utils",["jquery","i18n","jquery.
}
if (data.errorKey && data.errorKey.length>0){
- displayErrorMessage($.i18n.prop( data.errorKey ),idToAppend);
- } else {
- $.log("data.errorMessage:"+data.errorMessage);
- displayErrorMessage(data.errorMessage,idToAppend);
+ displayErrorMessage($.i18n.prop( data.errorKey ),idToAppend);
+ } else {
+ $.log("data.errorMessage:"+data.errorMessage);
+ displayErrorMessage(data.errorMessage,idToAppend);
}
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html?rev=1344323&r1=1344322&r2=1344323&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/search.html
Wed May 30 16:05:28 2012
@@ -835,9 +835,9 @@
<script id="artifact-details-download-content_tmpl" type="text/html">
<ul id="artifact-download-list-files">
- {{each artifactDownloadInfos}}
+ {{each(i, row) artifacts()}}
<li>
- <a
href="${$value.url}">${$value.packaging}:${$value.version} - ${$value.size}</a>
+ <a href="#" data-bind="click:
function(){deleteArtifact(row)}">del</a>:<a
href="${row.url}">${row.packaging}:${row.version} - ${row.size}</a>
</li>
{{/each}}
</ul>