]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1574] remote repository: implements add/update/delete REST call
authorOlivier Lamy <olamy@apache.org>
Tue, 24 Jan 2012 15:53:23 +0000 (15:53 +0000)
committerOlivier Lamy <olamy@apache.org>
Tue, 24 Jan 2012 15:53:23 +0000 (15:53 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1235312 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js
archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html

index ff95ca72d280b797557824977dc936381dddb20c..8304baa0f6a00bd392fe0c3fb4b69cb9264ca104 100644 (file)
@@ -529,7 +529,47 @@ $(function() {
     this.availableLayouts = window.managedRepositoryTypes;
 
     save=function(){
-
+      var valid = $("#main-content #remote-repository-edit-form").valid();
+      if (valid==false) {
+        return;
+      }
+      clearUserMessages();
+      if (update){
+        $.ajax("restServices/archivaServices/remoteRepositoriesService/updateRemoteRepository",
+          {
+            type: "POST",
+            data: "{\"remoteRepository\": " + ko.toJSON(this.remoteRepository)+"}",
+            contentType: 'application/json',
+            dataType: 'json',
+            success: function(data) {
+              displaySuccessMessage($.i18n.prop('remoterepository.updated'));
+              activateRemoteRepositoriesGridTab();
+            },
+            error: function(data) {
+              var res = $.parseJSON(data.responseText);
+              displayRestError(res);
+            }
+          }
+        );
+      }else {
+        $.ajax("restServices/archivaServices/remoteRepositoriesService/addRemoteRepository",
+          {
+            type: "POST",
+            data: "{\"remoteRepository\": " + ko.toJSON(this.remoteRepository)+"}",
+            contentType: 'application/json',
+            dataType: 'json',
+            success: function(data) {
+              self.remoteRepositoriesViewModel.remoteRepositories.push(self.remoteRepository);
+              displaySuccessMessage($.i18n.prop('remoterepository.added'));
+              activateRemoteRepositoriesGridTab();
+            },
+            error: function(data) {
+              var res = $.parseJSON(data.responseText);
+              displayRestError(res);
+            }
+          }
+        );
+      }
     }
 
     displayGrid=function(){
@@ -553,7 +593,19 @@ $(function() {
     }
 
     removeRemoteRepository=function(remoteRepository){
-      $.log("removeRemoteRepository");
+      $.ajax("restServices/archivaServices/remoteRepositoriesService/deleteRemoteRepository/"+remoteRepository.id(),
+        {
+          type: "GET",
+          success: function(data) {
+            self.remoteRepositories.remove(remoteRepository);
+            displaySuccessMessage($.i18n.prop('remoterepository.deleted'));
+          },
+          error: function(data) {
+            var res = $.parseJSON(data.responseText);
+            displayRestError(res);
+          }
+        }
+      );
     }
 
     scheduleDownloadRemoteIndex=function(remoteRepository){
index 59412cc753b09abbe3f19a4a6f32bff9e2285b6f..f6381d8005c3595c207c5e41e2f4f3b49f32cbd6 100644 (file)
         <div class="clearfix">
           <label for="cronExpression">${$.i18n.prop('cronExpression')}</label>
           <div class="input">
-            <input type="text" id="cronExpression" class="required" name="cronExpression" size="40" data-bind="value: remoteRepository.cronExpression"/>
+            <input type="text" id="cronExpression" name="cronExpression" size="40" data-bind="value: remoteRepository.cronExpression"/>
           </div>
         </div>
         <div class="clearfix">
           </div>
         </div>
 
-
-        <!-- proxy id to use -->
-
+        <!-- FIXME proxy id to use -->
 
         <div class="clearfix">
           <label for="downloadRemoteIndexOnStartup">${$.i18n.prop('downloadRemoteIndexOnStartup')}</label>