diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index b006b2288d..1062ae467a 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -1009,6 +1009,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas pluginInfo.put("bundled", plugin.isBundled); pluginInfo.put("deleted", plugin.isDeleted()); pluginInfo.put("downgradable", plugin.isDowngradable()); + pluginInfo.put("website", plugin.getUrl()); List dependencies = plugin.getDependencies(); if (dependencies != null && !dependencies.isEmpty()) { Map dependencyMap = new HashMap<>(); @@ -1033,6 +1034,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas pluginInfo.put("excerpt", plugin.excerpt); pluginInfo.put("site", site.getId()); pluginInfo.put("dependencies", plugin.dependencies); + pluginInfo.put("website", plugin.wiki); response.add(pluginInfo); } } @@ -1198,19 +1200,19 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas new Thread() { @Override public void run() { - final boolean failures[] = { false }; + boolean failures = false; INSTALLING: while (true) { try { updateCenter.persistInstallStatus(); Thread.sleep(500); - failures[0] = false; + failures = false; for (Future jobFuture : installJobs) { if(!jobFuture.isDone() && !jobFuture.isCancelled()) { continue INSTALLING; } UpdateCenter.UpdateCenterJob job = jobFuture.get(); if(job instanceof InstallationJob && ((InstallationJob)job).status instanceof DownloadJob.Failure) { - failures[0] = true; + failures = true; } } } catch (Exception e) { @@ -1219,7 +1221,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas break; } updateCenter.persistInstallStatus(); - if(!failures[0]) { + if(!failures) { jenkins.setInstallState(InstallState.INITIAL_PLUGINS_INSTALLING.getNextState()); } } diff --git a/core/src/main/resources/jenkins/install/pluginSetupWizard.properties b/core/src/main/resources/jenkins/install/pluginSetupWizard.properties index 379a230a66..be81bbc3c8 100644 --- a/core/src/main/resources/jenkins/install/pluginSetupWizard.properties +++ b/core/src/main/resources/jenkins/install/pluginSetupWizard.properties @@ -50,6 +50,7 @@ installWizard_configureProxy_save=Save and Continue installWizard_skipPluginInstallations=Skip Plugin Installations installWizard_installIncomplete_dependenciesLabel=Dependencies installWizard_installingConsole_dependencyIndicatorNote=** - required dependency +installWizard_websiteLinkLabel=Website installWizard_pluginInstallFailure_title=Installation Failures installWizard_pluginInstallFailure_message=Some plugins failed to install properly, you may retry installing them or continue \ with the failed plugins diff --git a/war/src/main/js/pluginSetupWizardGui.js b/war/src/main/js/pluginSetupWizardGui.js index d78be420cd..f71bd2e595 100644 --- a/war/src/main/js/pluginSetupWizardGui.js +++ b/war/src/main/js/pluginSetupWizardGui.js @@ -208,7 +208,7 @@ var createPluginSetupWizard = function(appendTarget) { decorate($container); var $modalHeader = $container.find('.modal-header'); - if($modalHeader.length > 0) { + if($modalHeader.length > 0 && $modalHeader.is('.closeable')) { $modalHeader.prepend( ''); } @@ -852,7 +852,7 @@ var createPluginSetupWizard = function(appendTarget) { '.plugin-select-recommended': function() { selectedPluginNames = pluginManager.recommendedPluginNames(); refreshPluginSelectionPanel(); }, '.plugin-show-selected': toggleSelectedSearch, '.select-category': selectCategory, - '.close': closeInstaller, + '.close': skipFirstUser, '.resume-installation': resumeInstallation, '.install-done-restart': restartJenkins, '.save-first-user:not([disabled])': saveFirstUser, diff --git a/war/src/main/js/templates/pluginSelectionPanel.hbs b/war/src/main/js/templates/pluginSelectionPanel.hbs index addd570e56..ad1affa91e 100644 --- a/war/src/main/js/templates/pluginSelectionPanel.hbs +++ b/war/src/main/js/templates/pluginSelectionPanel.hbs @@ -1,4 +1,4 @@ -