Author: olamy
Date: Thu Oct 11 19:25:41 2012
New Revision: 1397245

URL: http://svn.apache.org/viewvc?rev=1397245&view=rev
Log:
[MRM-1689] Ability to delete a specific version of an an artifact from the 
artifact screen.

Modified:
    
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/templates/archiva/search.html

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=1397245&r1=1397244&r2=1397245&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
 Thu Oct 11 19:25:41 2012
@@ -184,7 +184,7 @@ define("archiva.search",["jquery","i18n"
 
   ArtifactDetailViewModel=function(groupId,artifactId){
     var self=this;
-    this.versions=[];
+    this.versions=ko.observableArray([]);
     this.projectVersionMetadata=null;
     this.groupId=groupId;
     this.artifactId=artifactId;
@@ -201,6 +201,50 @@ define("archiva.search",["jquery","i18n"
       }
     }
 
+    deleteVersion=function(version){
+      var repoId=getSelectedBrowsingRepository();
+      if(!repoId){
+        var escapedVersion=escapeDot(version);
+        var selected = $("#main-content" ).find("#delete-"+escapedVersion );
+        
selected.attr("data-content",$.i18n.prop('version.delete.missing.repoId'))
+        selected.popover({
+          html:true,
+          template: '<div class="popover"><div class="arrow"></div><div 
class="popover-inner"><div class="popover-content"><p></p></div></div></div>',
+          placement:'top',
+          trigger:'manual'});
+        selected.popover('show');
+        selected.mouseover(function(){
+          selected.popover("destroy");
+        });
+        return;
+      }
+      $.log("deleteVersion:"+version+',repoId:'+repoId);
+      clearUserMessages();
+        var artifact = new 
Artifact(repoId,null,self.groupId,self.artifactId,repoId,version);
+        openDialogConfirm(function(){
+          $.ajax({
+            
url:"restServices/archivaServices/repositoriesService/deleteArtifact",
+            type:"POST",
+            dataType:"json",
+            contentType: 'application/json',
+            data: ko.toJSON(artifact),
+            success:function(data){
+              self.versions.remove(version);
+              displaySuccessMessage( $.i18n.prop('artifact.deleted'));
+            },
+            error:function(data){
+              displayRestError(data,"user-messages");
+            },
+            complete:function(){
+              closeDialogConfirm();
+            }
+          });
+        }, $.i18n.prop('ok'),
+            $.i18n.prop('cancel'),
+            $.i18n.prop('artifact.delete.confirm.title'),
+            $.i18n.prop('artifact.delete.confirm.save'));
+    }
+
     displayArtifactVersionDetail=function(version){
       var selectedRepo=getSelectedBrowsingRepository();
       var location ="#artifact";
@@ -903,7 +947,7 @@ define("archiva.search",["jquery","i18n"
                         type: "GET",
                         dataType: 'json',
                         success: function(data) {
-                          
artifactDetailViewModel.versions=mapVersionsList(data);
+                          artifactDetailViewModel.versions=ko.observableArray( 
mapVersionsList(data));
                           
ko.applyBindings(artifactDetailViewModel,mainContent.find("#browse_artifact").get(0));
                           
ko.applyBindings(artifactDetailViewModel,mainContent.find("#browse_breadcrumb").get(0));
                          }

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=1397245&r1=1397244&r2=1397245&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
 Thu Oct 11 19:25:41 2012
@@ -183,7 +183,11 @@
         <table class="table table-condensed">
         {{each(i,version) versions}}
           <tr>
-            <th><a href="#" data-bind="click: 
function(){displayArtifactVersionDetail(version)}">${version}</a></th>
+            {{if deleteKarma}}
+              <th><a id="delete-${version}" href="#" data-bind="click: 
function(){deleteVersion(version)}"><img src="images/trash.png"/></a>&nbsp;<a 
href="#" data-bind="click: 
function(){displayArtifactVersionDetail(version)}">${version}</a></th>
+            {{else}}
+              <th><a href="#" data-bind="click: 
function(){displayArtifactVersionDetail(version)}">${version}</a></th>
+            {{/if}}
           </tr>
         {{/each}}
         </table>


Reply via email to