diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 27ea0ec81d90ad0a7417713a328c22812f11b1b8..29c0cbb0e235dfdeeaeb187b0385cbff64ff9d83 100644 --- a/core/src/main/java/jenkins/model/Jenkins.java +++ b/core/src/main/java/jenkins/model/Jenkins.java @@ -304,6 +304,7 @@ import hudson.util.LogTaskListener; import static java.util.logging.Level.*; import javax.annotation.Nonnegative; import static javax.servlet.http.HttpServletResponse.*; +import org.kohsuke.accmod.restrictions.DoNotUse; import org.kohsuke.stapler.WebMethod; /** @@ -2340,6 +2341,15 @@ public class Jenkins extends AbstractCIBase implements DirectlyModifiableTopLeve return null; } + /** Exported alias for {@link JenkinsLocationConfiguration#getUrl}. */ + @Exported(name="url") + @Restricted(DoNotUse.class) + @CheckForNull + public String getConfiguredRootUrl() { + JenkinsLocationConfiguration config = JenkinsLocationConfiguration.get(); + return config != null ? config.getUrl() : null; + } + /** * Is Jenkins running in HTTPS? * diff --git a/war/src/main/js/pluginSetupWizardGui.js b/war/src/main/js/pluginSetupWizardGui.js index 62895913930fef66db509b824e4613261e52dd25..95efbcfe1bf1b52f6b1d7901ddf5b9ea55312b0e 100644 --- a/war/src/main/js/pluginSetupWizardGui.js +++ b/war/src/main/js/pluginSetupWizardGui.js @@ -940,7 +940,19 @@ var createPluginSetupWizard = function(appendTarget) { var skipFirstUser = function() { $('button').prop({disabled:true}); firstUserSkipped = true; - showConfigureInstance(); + jenkins.get('/api/json?tree=url', function(data) { + if (data.url) { + // as in InstallState.ConfigureInstance.initializeState + showSetupCompletePanel({message: translations.installWizard_firstUserSkippedMessage}); + } else { + showConfigureInstance(); + } + }, { + error: function() { + // give up + showConfigureInstance(); + } + }); }; var handleConfigureInstanceResponseSuccess = function (data) {