From d02c7563588aa534629e05b873946680953dbfdc Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Fri, 17 Jan 2020 00:46:58 -0500 Subject: [PATCH] [JENKINS-60750] Skip CONFIGURE_INSTANCE panel when root URL is set during skipFirstUser (#4430) * [JENKINS-60750] Skip the CONFIGURE_INSTANCE panel when JenkinsLocationConfiguration.url is set, even when skipFirstUser is called. * Add nullability annotation Co-Authored-By: Oleg Nenashev Co-authored-by: Oleg Nenashev --- core/src/main/java/jenkins/model/Jenkins.java | 10 ++++++++++ war/src/main/js/pluginSetupWizardGui.js | 14 +++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/jenkins/model/Jenkins.java b/core/src/main/java/jenkins/model/Jenkins.java index 27ea0ec81d..29c0cbb0e2 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 6289591393..95efbcfe1b 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) { -- GitLab