Author: olamy
Date: Mon Jan 16 16:53:57 2012
New Revision: 1232062

URL: http://svn.apache.org/viewvc?rev=1232062&view=rev
Log:
[MRM-1574] add managed repo now implemented.
change the rest service to return the repo rather than a Boolean to have real 
path available in the ui.

Modified:
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ManagedRepositoriesService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultManagedRepositoriesService.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ManagedRepositoriesService.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/ManagedRepositoriesService.java?rev=1232062&r1=1232061&r2=1232062&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ManagedRepositoriesService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/ManagedRepositoriesService.java
 Mon Jan 16 16:53:57 2012
@@ -68,7 +68,7 @@ public interface ManagedRepositoriesServ
     @Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
     @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, 
MediaType.TEXT_PLAIN } )
     @RedbackAuthorization( permissions = 
ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
-    Boolean addManagedRepository( ManagedRepository managedRepository )
+    ManagedRepository addManagedRepository( ManagedRepository 
managedRepository )
         throws ArchivaRestServiceException;
 
 

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultManagedRepositoriesService.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/DefaultManagedRepositoriesService.java?rev=1232062&r1=1232061&r2=1232062&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultManagedRepositoriesService.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultManagedRepositoriesService.java
 Mon Jan 16 16:53:57 2012
@@ -93,15 +93,20 @@ public class DefaultManagedRepositoriesS
         }
     }
 
-    public Boolean addManagedRepository( ManagedRepository managedRepository )
+    public ManagedRepository addManagedRepository( ManagedRepository 
managedRepository )
         throws ArchivaRestServiceException
     {
 
         try
         {
-            return managedRepositoryAdmin.addManagedRepository( 
managedRepository,
-                                                                
managedRepository.isStageRepoNeeded(),
-                                                                
getAuditInformation() );
+            boolean res =
+                managedRepositoryAdmin.addManagedRepository( 
managedRepository, managedRepository.isStageRepoNeeded(),
+                                                             
getAuditInformation() );
+            if ( res )
+            {
+                return getManagedRepository( managedRepository.getId() );
+            }
+            throw new ArchivaRestServiceException( "fail to created managed 
Repository" );
         }
         catch ( RepositoryAdminException e )
         {

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js?rev=1232062&r1=1232061&r2=1232062&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js
 Mon Jan 16 16:53:57 2012
@@ -67,10 +67,10 @@ $(function() {
     this.stageRepoNeeded=ko.observable(stageRepoNeeded);
   }
 
-  ManagedRepositoryViewModel=function(managedRepository, update){
+  ManagedRepositoryViewModel=function(managedRepository, update, 
managedRepositoriesViewModel){
     this.managedRepository=ko.observable(managedRepository);
+    this.managedRepositoriesViewModel = managedRepositoriesViewModel;
     this.update = update;
-
     save=function(){
       var valid = $("#main-content #managed-repository-edit-form").valid();
       if (valid==false) {
@@ -78,22 +78,41 @@ $(function() {
       }
       $.log("save:"+this.managedRepository().name());
       clearUserMessages();
-      
$.ajax("restServices/archivaServices/managedRepositoriesService/updateManagedRepository",
-        {
-          type: "POST",
-          contentType: 'application/json',
-          data: "{\"managedRepository\": " +  
ko.toJSON(this.managedRepository)+"}",
-          dataType: 'json',
-            success: function(data) {
-              displaySuccessMessage($.i18n.prop('managedrepository.updated'));
-            },
-            error: function(data) {
-              var res = $.parseJSON(data.responseText);
-              displayRestError(res);
-            }
-        }
-      );
-
+      if (this.update){
+        
$.ajax("restServices/archivaServices/managedRepositoriesService/updateManagedRepository",
+          {
+            type: "POST",
+            contentType: 'application/json',
+            data: "{\"managedRepository\": " +  
ko.toJSON(this.managedRepository)+"}",
+            dataType: 'json',
+              success: function(data) {
+                
displaySuccessMessage($.i18n.prop('managedrepository.updated'));
+              },
+              error: function(data) {
+                var res = $.parseJSON(data.responseText);
+                displayRestError(res);
+              }
+          }
+        );
+      } else {
+        $.log("add managedRepo");
+        
$.ajax("restServices/archivaServices/managedRepositoriesService/addManagedRepository",
+          {
+            type: "POST",
+            contentType: 'application/json',
+            data: "{\"managedRepository\": " +  
ko.toJSON(this.managedRepository)+"}",
+            dataType: 'json',
+              success: function(data) {
+                
this.managedRepositoriesViewModel.managedRepositories.push(mapManagedRepository(data));
+                displaySuccessMessage($.i18n.prop('managedrepository.added'));
+              },
+              error: function(data) {
+                var res = $.parseJSON(data.responseText);
+                displayRestError(res);
+              }
+          }
+        );
+      }
     }
 
     displayGrid=function(){
@@ -102,29 +121,34 @@ $(function() {
 
   }
 
+  activateManagedRepositoryFormValidation=function(){
+    $("#main-content #managed-repository-edit-form").validate({
+      rules: {
+        daysOlder : {
+          digits: true
+        },
+        retentionCount : {
+          digits: true
+        }
+      },
+      showErrors: function(validator, errorMap, errorList) {
+        customShowError(validator,errorMap,errorMap);
+      }
+    });
+  }
+
   ManagedRepositoriesViewModel=function(){
     this.managedRepositories=ko.observableArray(new Array());
 
     this.gridViewModel = null;
+    var self = this;
 
     editManagedRepository=function(managedRepository){
-      var viewModel = new ManagedRepositoryViewModel(managedRepository,true);
+      var viewModel = new 
ManagedRepositoryViewModel(managedRepository,true,self);
       ko.applyBindings(viewModel,$("#main-content 
#managed-repository-edit").get(0));
       activateManagedRepositoryEditTab();
       $("#managed-repository-edit-li a").html($.i18n.prop('edit'));
-      $("#main-content #managed-repository-edit-form").validate({
-        rules: {
-          daysOlder : {
-            digits: true
-          },
-          retentionCount : {
-            digits: true
-          }
-        },
-        showErrors: function(validator, errorMap, errorList) {
-          customShowError(validator,errorMap,errorMap);
-        }
-      });
+      activateManagedRepositoryFormValidation();
     }
 
   }
@@ -149,7 +173,7 @@ $(function() {
     clearUserMessages();
     $("#main-content").html(mediumSpinnerImg());
     $("#main-content").html($("#repositoriesMain").tmpl());
-    $("#repositories-tabs").tabs();
+    $("#main-content #repositories-tabs").tabs();
 
     $("#main-content 
#managed-repositories-content").append(mediumSpinnerImg());
     $("#main-content #remote-repositories-content").append(mediumSpinnerImg());
@@ -189,6 +213,18 @@ $(function() {
           removeMediumSpinnerImg("#main-content 
#managed-repositories-content");
           $("#main-content #managed-repositories-table [title]").twipsy();
           activateManagedRepositoriesGridTab();
+          $("#main-content #managed-repositories-pills").bind('change', 
function (e) {
+
+            if ($(e.target).attr("href")=="#managed-repository-edit") {
+              var viewModel = new ManagedRepositoryViewModel(new 
ManagedRepository(),false,managedRepositoriesViewModel);
+              ko.applyBindings(viewModel,$("#main-content 
#managed-repository-edit").get(0));
+              activateManagedRepositoryFormValidation();
+            }
+            if ($(e.target).attr("href")=="#managed-repositories-view") {
+              $("#main-content #managed-repository-edit-li 
a").html($.i18n.prop("add"));
+            }
+
+          });
         }
       }
     );


Reply via email to