From b48055876376c5f20ef651cad045cee95e1fa607 Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Tue, 17 Jan 2012 22:35:42 +0000 Subject: [PATCH] display warning message when adding a repository concerns an existing directory location git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1232617 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/archiva/i18n/default.properties | 6 +- .../main/webapp/js/archiva/repositories.js | 77 +++++++++++++------ .../js/archiva/templates/repositories.html | 15 ++++ 3 files changed, 72 insertions(+), 26 deletions(-) diff --git a/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties b/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties index 37489eee3..1b6214939 100644 --- a/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties +++ b/archiva-modules/archiva-web/archiva-web-common/src/main/resources/org/apache/archiva/i18n/default.properties @@ -23,9 +23,13 @@ #default common id=id warning.not.undone.operation=WARNING: This operation can not be undone. + managedrepository.delete.content=Delete Content too ? # managed repositories screen managedrepository.delete.confirm=Delete Managed Repository managedrepository.delete.warning.message=Are you sure you want to delete the following managed repository? -managedrepository.deleted=Managed Repository " {0} " deleted. \ No newline at end of file +managedrepository.deleted=Managed Repository " {0} " deleted. +managedrepository.location.already.exists=WARNING: Repository location already exists. +managedrepository.location.already.exists.warning.message=Are you sure you want to use this directory +managedrepository.add.title=Add Managed Repository \ No newline at end of file diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js index b6f6a0121..6e2ba4393 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/repositories.js @@ -74,6 +74,7 @@ $(function() { this.managedRepositoriesViewModel = managedRepositoriesViewModel; this.update = update; var self = this; + save=function(){ var valid = $("#main-content #managed-repository-edit-form").valid(); if (valid==false) { @@ -85,33 +86,11 @@ $(function() { $.ajax("restServices/archivaServices/managedRepositoriesService/updateManagedRepository", { type: "POST", + data: "{\"managedRepository\": " + ko.toJSON(this.managedRepository)+"}", contentType: 'application/json', - data: "{\"managedRepository\": " + ko.toJSON(this.managedRepository)+"}", - dataType: 'json', - success: function(data) { - displaySuccessMessage($.i18n.prop('managedrepository.updated')); - activateManagedRepositoriesGridTab(); - }, - 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(self.managedRepository)+"}", dataType: 'json', success: function(data) { - //var repo = mapManagedRepository(data); - //$.log("data:"+data.responseText); - self.managedRepositoriesViewModel.managedRepositories.push(self.managedRepository); - displaySuccessMessage($.i18n.prop('managedrepository.added')); + displaySuccessMessage($.i18n.prop('managedrepository.updated')); activateManagedRepositoriesGridTab(); }, error: function(data) { @@ -120,9 +99,57 @@ $(function() { } } ); + } else { + var url="restServices/archivaServices/managedRepositoriesService/fileLocationExists"; + url+="?fileLocation="+encodeURIComponent(self.managedRepository.location()); + $.ajax(url, + { + type: "GET", + dataType: 'json', + success: function(data) { + if (data){ + openDialogConfirm( + function(){addManagedRepository(self.managedRepository),function(){window.modalConfirmDialog.modal('hide')}}, + $.i18n.prop('ok'), $.i18n.prop('cancel'), + $.i18n.prop('managedrepository.add.title'), + $("#managed-repository-location-warning-tmpl").tmpl(self.managedRepository)); + }else{ + addManagedRepository(self.managedRepository); + } + } + }); + //addManagedRepository(self.managedRepository); } } + addManagedRepository=function(managedRepository,completeCallbackFn){ + $.log("add managedRepo"); + var curManagedRepository=managedRepository; + var callbackFn = completeCallbackFn; + $.ajax("restServices/archivaServices/managedRepositoriesService/addManagedRepository", + { + type: "POST", + contentType: 'application/json', + data: "{\"managedRepository\": " + ko.toJSON(managedRepository)+"}", + dataType: 'json', + success: function(data) { + self.managedRepositoriesViewModel.managedRepositories.push(curManagedRepository); + displaySuccessMessage($.i18n.prop('managedrepository.added')); + activateManagedRepositoriesGridTab(); + }, + error: function(data) { + var res = $.parseJSON(data.responseText); + displayRestError(res); + }, + complete:function(data){ + if(callbackFn){ + callbackFn(); + } + } + } + ); + } + displayGrid=function(){ activateManagedRepositoriesGridTab(); } @@ -237,7 +264,7 @@ $(function() { title: "Repository type (default is Maven 2)" } ], - pageSize: 10 + pageSize: 5 }); ko.applyBindings(managedRepositoriesViewModel,$("#main-content #managed-repositories-table").get(0)); $("#main-content #managed-repositories-pills").pills(); diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html index 95375527e..9d4e88e98 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/templates/repositories.html @@ -216,4 +216,19 @@ ${$.i18n.prop('managedrepository.delete.content')}: + + \ No newline at end of file