diff --git a/core/src/main/java/hudson/PluginWrapper.java b/core/src/main/java/hudson/PluginWrapper.java index dca97b2b71..879dd3a486 100644 --- a/core/src/main/java/hudson/PluginWrapper.java +++ b/core/src/main/java/hudson/PluginWrapper.java @@ -84,6 +84,7 @@ import static hudson.PluginWrapper.PluginDisableStatus.ERROR_DISABLING; import static hudson.PluginWrapper.PluginDisableStatus.NOT_DISABLED_DEPENDANTS; import static hudson.PluginWrapper.PluginDisableStatus.NO_SUCH_PLUGIN; import static java.util.logging.Level.WARNING; +import jenkins.plugins.DetachedPluginsUtil; import static org.apache.commons.io.FilenameUtils.getBaseName; /** @@ -999,6 +1000,15 @@ public class PluginWrapper implements Comparable, ModelObject { return !archive.exists(); } + /** + * Same as {@link DetachedPluginsUtil#isDetachedPlugin}. + * @since TODO + */ + @Exported + public boolean isDetached() { + return DetachedPluginsUtil.isDetachedPlugin(shortName); + } + /** * Sort by short name. */ diff --git a/core/src/main/resources/hudson/PluginManager/_table.js b/core/src/main/resources/hudson/PluginManager/_table.js index 1851afb419..07da1cb58e 100644 --- a/core/src/main/resources/hudson/PluginManager/_table.js +++ b/core/src/main/resources/hudson/PluginManager/_table.js @@ -290,6 +290,11 @@ Behaviour.specify("#filter-box", '_table', 0, function(e) { return true; } } + + if (pluginTR.hasClassName('detached')) { + infoContainer.update('
' + i18n('detached-disable') + '
' + i18n('detached-possible-dependents') + '
'); + return true; + } return false; } @@ -318,6 +323,11 @@ Behaviour.specify("#filter-box", '_table', 0, function(e) { return true; } + if (pluginTR.hasClassName('detached')) { + infoContainer.update('
' + i18n('detached-uninstall') + '
' + i18n('detached-possible-dependents') + '
'); + return true; + } + return false; } diff --git a/core/src/main/resources/hudson/PluginManager/installed.jelly b/core/src/main/resources/hudson/PluginManager/installed.jelly index aaf533b5c6..3fb415248a 100644 --- a/core/src/main/resources/hudson/PluginManager/installed.jelly +++ b/core/src/main/resources/hudson/PluginManager/installed.jelly @@ -50,6 +50,9 @@ THE SOFTWARE. data-disabled-dependencies="${%It has one or more disabled dependencies}" data-enabled-dependents="${%It has one or more enabled dependents}" data-installed-dependents="${%It has one or more installed dependents}" + data-detached-disable="${%detached-disable}" + data-detached-uninstall="${%detached-uninstall}" + data-detached-possible-dependents="${%detached-possible-dependents}" /> @@ -67,7 +70,7 @@ THE SOFTWARE. - +
${%Uninstall}