diff --git a/plugins/scm-hg-plugin/src/main/java/sonia/scm/api/rest/resources/HgConfigResource.java b/plugins/scm-hg-plugin/src/main/java/sonia/scm/api/rest/resources/HgConfigResource.java index 674100db1e..4ac5bc18e2 100644 --- a/plugins/scm-hg-plugin/src/main/java/sonia/scm/api/rest/resources/HgConfigResource.java +++ b/plugins/scm-hg-plugin/src/main/java/sonia/scm/api/rest/resources/HgConfigResource.java @@ -78,6 +78,27 @@ public class HgConfigResource this.handler = handler; } + //~--- methods -------------------------------------------------------------- + + /** + * Method description + * + * + * @param uriInfo + * + * @return + */ + @POST + @Path("auto-configuration") + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + public HgConfig autoConfiguration(@Context UriInfo uriInfo) + { + handler.setConfig(null); + handler.doAutoConfiguration(); + + return handler.getConfig(); + } + //~--- get methods ---------------------------------------------------------- /** diff --git a/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java b/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java index 7d031d4881..aebaabdaf7 100644 --- a/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java +++ b/plugins/scm-hg-plugin/src/main/java/sonia/scm/repository/HgRepositoryHandler.java @@ -101,11 +101,8 @@ public class HgRepositoryHandler * Method description * */ - @Override - public void loadConfig() + public void doAutoConfiguration() { - super.loadConfig(); - HgInstaller installer = null; if (SystemUtil.isWindows()) @@ -163,6 +160,17 @@ public class HgRepositoryHandler storeConfig(); } + /** + * Method description + * + */ + @Override + public void loadConfig() + { + super.loadConfig(); + doAutoConfiguration(); + } + //~--- get methods ---------------------------------------------------------- /** diff --git a/plugins/scm-hg-plugin/src/main/resources/sonia/scm/hg.config.js b/plugins/scm-hg-plugin/src/main/resources/sonia/scm/hg.config.js index 875b34422d..0532890ece 100644 --- a/plugins/scm-hg-plugin/src/main/resources/sonia/scm/hg.config.js +++ b/plugins/scm-hg-plugin/src/main/resources/sonia/scm/hg.config.js @@ -30,6 +30,7 @@ */ registerConfigPanel({ + id: 'hgConfigForm', xtype : 'configForm', title : 'Mercurial Settings', items : [{ @@ -56,6 +57,14 @@ registerConfigPanel({ name: 'useOptimizedBytecode', fieldLabel: 'Optimized Bytecode (.pyo)', inputValue: 'true' + },{ + xtype: 'button', + text: 'Load Auto-Configuration', + fieldLabel: 'Auto-Configuration', + handler: function(){ + var self = Ext.getCmp('hgConfigForm'); + self.loadConfig( self.el, 'config/repositories/hg/auto-configuration.json', 'POST' ); + } }], onSubmit: function(values){ @@ -76,10 +85,14 @@ registerConfigPanel({ }, onLoad: function(el){ + this.loadConfig(el, 'config/repositories/hg.json', 'GET'); + }, + + loadConfig: function(el, url, method){ var tid = setTimeout( function(){ el.mask('Loading ...'); }, 100); Ext.Ajax.request({ - url: restUrl + 'config/repositories/hg.json', - method: 'GET', + url: restUrl + url, + method: method, scope: this, disableCaching: true, success: function(response){