Skip to content

Commit

Permalink
Merge branch 'master' into keyboard-shortcuts
Browse files Browse the repository at this point in the history
  • Loading branch information
janfaracik committed May 13, 2022
2 parents 7d7cd05 + bbd7ca2 commit 76fc089
Show file tree
Hide file tree
Showing 132 changed files with 966 additions and 553 deletions.
23 changes: 19 additions & 4 deletions core/src/main/java/hudson/Functions.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
import hudson.security.csrf.CrumbIssuer;
import hudson.slaves.Cloud;
import hudson.slaves.ComputerLauncher;
import hudson.slaves.JNLPLauncher;
import hudson.slaves.NodeProperty;
import hudson.slaves.NodePropertyDescriptor;
import hudson.slaves.RetentionStrategy;
Expand Down Expand Up @@ -1866,9 +1867,12 @@ public static String toEmailSafeString(String projectName) {
/**
* Obtains the host name of the Hudson server that clients can use to talk back to.
* <p>
* This is primarily used in {@code jenkins-agent.jnlp.jelly} to specify the destination
* This was primarily used in {@code jenkins-agent.jnlp.jelly} to specify the destination
* that the agents talk to.
*
* @deprecated use {@link JNLPLauncher#getInboundAgentUrl}
*/
@Deprecated
public String getServerName() {
// Try to infer this from the configured root URL.
// This makes it work correctly when Hudson runs behind a reverse proxy.
Expand Down Expand Up @@ -2289,12 +2293,17 @@ public static Icon tryGetIcon(String iconGuess) {
return null;
}

StaplerRequest currentRequest = Stapler.getCurrentRequest();
currentRequest.getWebApp().getDispatchValidator().allowDispatch(currentRequest, Stapler.getCurrentResponse());
Icon iconMetadata = IconSet.icons.getIconByClassSpec(iconGuess);

// `iconGuess` must be class names if it contains a whitespace.
// It may contains extra css classes unrelated to icons.
// Filter classes with `icon-` prefix.
if (iconMetadata == null && iconGuess.contains(" ")) {
iconMetadata = IconSet.icons.getIconByClassSpec(filterIconNameClasses(iconGuess));
}

if (iconMetadata == null) {
// Icon could be provided as a simple iconFileName e.g. "settings.png"
// Icon could be provided as a simple iconFileName e.g. "help.svg"
iconMetadata = IconSet.icons.getIconByClassSpec(IconSet.toNormalizedIconNameClass(iconGuess) + " icon-md");
}

Expand All @@ -2306,6 +2315,12 @@ public static Icon tryGetIcon(String iconGuess) {
return iconMetadata;
}

private static @NonNull String filterIconNameClasses(@NonNull String classNames) {
return Arrays.stream(StringUtils.split(classNames, ' '))
.filter(className -> className.startsWith("icon-"))
.collect(Collectors.joining(" "));
}

@Restricted(NoExternalUse.class)
public static String extractPluginNameFromIconSrc(String iconSrc) {
if (iconSrc == null) {
Expand Down
9 changes: 5 additions & 4 deletions core/src/main/java/hudson/model/ParametersAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -335,10 +335,11 @@ private List<? extends ParameterValue> filter(List<ParameterValue> parameters) {
if (this.parameterDefinitionNames.contains(v.getName()) || isSafeParameter(v.getName())) {
filteredParameters.add(v);
} else if (shouldKeepFlag == null) {
LOGGER.log(Level.WARNING, "Skipped parameter `{0}` as it is undefined on `{1}`. Set `-D{2}=true` to allow "
+ "undefined parameters to be injected as environment variables or `-D{3}=[comma-separated list]` to whitelist specific parameter names, "
+ "even though it represents a security breach or `-D{2}=false` to no longer show this message.",
new Object [] { v.getName(), run.getParent().getFullName(), KEEP_UNDEFINED_PARAMETERS_SYSTEM_PROPERTY_NAME, SAFE_PARAMETERS_SYSTEM_PROPERTY_NAME });
LOGGER.log(Level.WARNING, "Skipped parameter `{0}` as it is undefined on `{1}` (#{2}). Set `-D{3}=true` to allow "
+ "undefined parameters to be injected as environment variables or `-D{4}=[comma-separated list]` to whitelist specific parameter names, "
+ "even though it represents a security breach or `-D{3}=false` to no longer show this message.",
new Object [] { v.getName(), run.getParent().getFullName(), run.getNumber(),
KEEP_UNDEFINED_PARAMETERS_SYSTEM_PROPERTY_NAME, SAFE_PARAMETERS_SYSTEM_PROPERTY_NAME });
}
}

Expand Down
8 changes: 4 additions & 4 deletions core/src/main/java/org/jenkins/ui/icon/Icon.java
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public class Icon {
/**
* Creates a {@link IconType#CORE core} icon.
*
* @param classSpec The icon class names.
* @param classSpec The icon class names. Expected to start with `icon-`.
* @param style The icon style.
*/
public Icon(String classSpec, String style) {
Expand All @@ -78,7 +78,7 @@ public Icon(String classSpec, String style) {
/**
* Creates a {@link IconType#CORE core} icon.
*
* @param classSpec The icon class names.
* @param classSpec The icon class names. Expected to start with `icon-`.
* @param url The icon image url.
* @param style The icon style.
*/
Expand All @@ -96,7 +96,7 @@ public Icon(String classSpec, String url, String style) {
/**
* Icon instance.
*
* @param classSpec The icon class specification.
* @param classSpec The icon class specification. Expected to start with `icon-`.
* @param url The icon image url.
* @param style The icon style.
* @param iconType The icon type.
Expand All @@ -108,7 +108,7 @@ public Icon(String classSpec, String url, String style, IconType iconType) {
/**
* Creates an icon.
*
* @param classSpec The icon class names.
* @param classSpec The icon class names. Expected to start with `icon-`.
* @param url The icon image url.
* @param style The icon style.
* @param iconFormat the {@link IconFormat}.
Expand Down
72 changes: 36 additions & 36 deletions core/src/main/resources/hudson/Messages_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ FilePath.validateAntFileMask.portionMatchAndSuggest=''{0}'' no coincide con nada
FilePath.validateAntFileMask.portionMatchButPreviousNotMatchAndSuggest=''{0}'' no coincide con nada: ''{1}'' existe, pero ''{2}'' no existe
FilePath.validateAntFileMask.doesntMatchAnything=''{0}'' no coincide con nada
FilePath.validateAntFileMask.matchWithCaseInsensitive=\
''{0}'' no coincide porque tiene en cuenta la capitalización. Puede desactivar la distinción entre mayúsculas y minúsculas para obtener coincidencias
''{0}'' no coincide porque tiene en cuenta la capitalizaci\u00f3n. Puede desactivar la distinci\u00f3n entre may\u00fasculas y min\u00fasculas para obtener coincidencias
FilePath.validateAntFileMask.doesntMatchAnythingAndSuggest=''{0}'' no coincide con nada: ''{1}'' no existe

FilePath.validateRelativePath.wildcardNotAllowed=No se permiten caracteres comod\u00EDn.
Expand Down Expand Up @@ -58,73 +58,73 @@ PluginManager.PortNotANumber=El puerto no es un n\u00FAmero
PluginManager.PortNotInRange=El puerto no est\u00E1 en el rango de {0} hasta {1}
PluginManager.UploadPluginsPermission.Description=Obsoleto - Utiliza el permiso Overall/Administer en su lugar
PluginManager.ConfigureUpdateCenterPermission.Description=Obsoleto - Utiliza el permiso Overall/Administer en su lugar
PluginManager.PluginCycleDependenciesMonitor.DisplayName=Detector de dependencias cíclicas
PluginManager.PluginUpdateMonitor.DisplayName=Configuración de los plugins no válida
PluginManager.PluginCycleDependenciesMonitor.DisplayName=Detector de dependencias c\u00edclicas
PluginManager.PluginUpdateMonitor.DisplayName=Configuraci\u00f3n de los plugins no v\u00e1lida
PluginManager.PluginDeprecationMonitor.DisplayName=Monitor de plugins obsoletos
PluginManager.CheckUpdateServerError=Hubo errores comprobando los servidores de actualizaciones: {0}
PluginManager.UpdateSiteError=Error comprobando los servidores de actualizaciones en {0} intento(s). La \u00FAltima excepci\u00F3n fue: {1}
PluginManager.UpdateSiteChangeLogLevel=Cambie el nivel de log a WARNING o menos para ver el mensaje de error de cada intento
PluginManager.UnexpectedException=Excepci\u00F3n no esperada en el proceso de reintentos chequeando los servidores de actualizaciones

PluginManager.compatWarning=\
Aviso: La nueva versión de este plugin está marcada como incompatible con la versión instalada. \
Esto puede ocurrir porque su comportamiento ha cambiado o utiliza un formato de configuración diferente que la versión instalada. \
Los trabajos que utilizan ese plugin pueden necesitar ser reconfigurados, y es posible que no pueda revertirse sin errores a la versión anterior sin restaurar manualmente la configuración anterior. \
Consulte las notas de la versión del plugin para más detalles.
Aviso: La nueva versi\u00f3n de este plugin est\u00e1 marcada como incompatible con la versi\u00f3n instalada. \
Esto puede ocurrir porque su comportamiento ha cambiado o utiliza un formato de configuraci\u00f3n diferente que la versi\u00f3n instalada. \
Los trabajos que utilizan ese plugin pueden necesitar ser reconfigurados, y es posible que no pueda revertirse sin errores a la versi\u00f3n anterior sin restaurar manualmente la configuraci\u00f3n anterior. \
Consulte las notas de la versi\u00f3n del plugin para m\u00e1s detalles.
PluginManager.parentDepCompatWarning=Los siguientes plugins son incompatibles:
PluginManager.parentCompatWarning=Esto afecta a los siguientes plugins:
PluginManager.coreWarning=\
Aviso: Este plugin está construido para Jenkins {0} o posterior. \
Jenkins no cargará este plugin aunque está instalado.
Aviso: Este plugin est\u00e1 construido para Jenkins {0} o posterior. \
Jenkins no cargar\u00e1 este plugin aunque est\u00e1 instalado.
PluginManager.javaWarning=\
Aviso: Este plugin requiere Java {0} o más reciente. \
Jenkins no cargará este plugin aunque está instalado.
Aviso: Este plugin requiere Java {0} o m\u00e1s reciente. \
Jenkins no cargar\u00e1 este plugin aunque est\u00e1 instalado.
PluginManager.depCompatWarning=\
Aviso: Este plugin requiere versiones más recientes de dependencias y al menos uno de esos plugins no es compatible con la versión instalada. \
Esto puede ocurrir porque su comportamiento ha cambiado o utiliza un formato de configuración diferente que la versión instalada. \
Los trabajos que utilizan ese plugin pueden necesitar ser reconfigurados, y es posible que no pueda revertirse sin errores a la versión anterior sin restaurar manualmente la configuración anterior. \
Consulte las notas de la versión del plugin para más detalles.
Aviso: Este plugin requiere versiones m\u00e1s recientes de dependencias y al menos uno de esos plugins no es compatible con la versi\u00f3n instalada. \
Esto puede ocurrir porque su comportamiento ha cambiado o utiliza un formato de configuraci\u00f3n diferente que la versi\u00f3n instalada. \
Los trabajos que utilizan ese plugin pueden necesitar ser reconfigurados, y es posible que no pueda revertirse sin errores a la versi\u00f3n anterior sin restaurar manualmente la configuraci\u00f3n anterior. \
Consulte las notas de la versi\u00f3n del plugin para m\u00e1s detalles.
PluginManager.depCoreWarning=\
Aviso: Este plugin tiene dependencias de otros plugins que requieren Jenkins {0} o más reciente. \
Jenkins no se cargará las dependencias que requieren una versión más reciente de Jenkins. \
Por lo que no poderá cargar este plugin.
Aviso: Este plugin tiene dependencias de otros plugins que requieren Jenkins {0} o m\u00e1s reciente. \
Jenkins no se cargar\u00e1 las dependencias que requieren una versi\u00f3n m\u00e1s reciente de Jenkins. \
Por lo que no poder\u00e1 cargar este plugin.
PluginManager.depJavaWarning=\
Aviso: Este plugin tiene dependencias de otros plugins que requieren Java {0} o más reciente. \
Jenkins no se cargará las dependencias que requieren una versión más reciente de Jenkins. \
Por lo que no poderá cargar este plugin.
Aviso: Este plugin tiene dependencias de otros plugins que requieren Java {0} o m\u00e1s reciente. \
Jenkins no se cargar\u00e1 las dependencias que requieren una versi\u00f3n m\u00e1s reciente de Jenkins. \
Por lo que no poder\u00e1 cargar este plugin.
PluginManager.securityWarning=\
Aviso: Esta versión del plugin puede no ser segura. Por favor, revise los siguientes avisos de seguridad:
Aviso: Esta versi\u00f3n del plugin puede no ser segura. Por favor, revise los siguientes avisos de seguridad:
PluginManager.ago=Hace {0}
PluginManager.adoptThisPlugin=\
<strong>¡Este plugin está en adopción!</strong> Buscamos nuevos mantenedores. \
Visita nuestro sitio de la iniciativa <a href="https://www.jenkins.io/doc/developer/plugin-governance/adopt-a-plugin/" rel="noopener noreferrer" target="_blank">Adopte un plugin</a> para obtener más información.
<strong>\u00a1Este plugin est\u00e1 en adopci\u00f3n!</strong> Buscamos nuevos mantenedores. \
Visita nuestro sitio de la iniciativa <a href="https://www.jenkins.io/doc/developer/plugin-governance/adopt-a-plugin/" rel="noopener noreferrer" target="_blank">Adopte un plugin</a> para obtener m\u00e1s informaci\u00f3n.
PluginManager.newerVersionExists=\
Existe una versión más nueva que la que se ofrece para la instalación (versión {0}). \
Este es el típico caso en el que no se satisfacen los requisitos del plugin, por ejemplo, una versión más reciente de Jenkins es necesaria.
Existe una versi\u00f3n m\u00e1s nueva que la que se ofrece para la instalaci\u00f3n (versi\u00f3n {0}). \
Este es el t\u00edpico caso en el que no se satisfacen los requisitos del plugin, por ejemplo, una versi\u00f3n m\u00e1s reciente de Jenkins es necesaria.
PluginManager.newerVersionEntry=\
Esta versión del plugin existe pero no se ofrece como actualización. \
Este es el típico caso en el que no se satisfacen los requisitos del plugin, por ejemplo, una versión más reciente de Jenkins es necesaria. \
Consulte la <a href="{0}" rel="noopener noreferrer" target="_blank">documentación del plugin</a> para obtener información sobre sus requisitos.
Esta versi\u00f3n del plugin existe pero no se ofrece como actualizaci\u00f3n. \
Este es el t\u00edpico caso en el que no se satisfacen los requisitos del plugin, por ejemplo, una versi\u00f3n m\u00e1s reciente de Jenkins es necesaria. \
Consulte la <a href="{0}" rel="noopener noreferrer" target="_blank">documentaci\u00f3n del plugin</a> para obtener informaci\u00f3n sobre sus requisitos.
PluginManager.unavailable=No disponible
PluginManager.deprecationWarning=<strong>Este plugin está obsoleto.</strong> En general, esto significa que ya no se desarrolla o que puede dejar de funcionar. <a href="{0}" rel="noopener noreferrer" target="_blank">Más información</a>
PluginManager.deprecationWarning=<strong>Este plugin est\u00e1 obsoleto.</strong> En general, esto significa que ya no se desarrolla o que puede dejar de funcionar. <a href="{0}" rel="noopener noreferrer" target="_blank">M\u00e1s informaci\u00f3n</a>

AboutJenkins.DisplayName=Acerca de Jenkins
AboutJenkins.Description=Eche un vistazo a la informaci\u00F3n sobre la versi\u00F3n y la licencia.

ProxyConfiguration.TestUrlRequired=Se requiere un URL de prueba.
ProxyConfiguration.MalformedTestUrl=La URL de prueba está mal formada.
ProxyConfiguration.MalformedTestUrl=La URL de prueba est\u00e1 mal formada.
ProxyConfiguration.FailedToConnectViaProxy=No se puede conectar a {0}.
ProxyConfiguration.FailedToConnect=No se puede conectar a {0} (código {1}).
ProxyConfiguration.FailedToConnect=No se puede conectar a {0} (c\u00f3digo {1}).
ProxyConfiguration.Success=Configurado

Functions.NoExceptionDetails=No hay detalles de la excepción
Functions.NoExceptionDetails=No hay detalles de la excepci\u00f3n

PluginWrapper.missing=Falta el plugin: {0} ({1})
PluginWrapper.failed_to_load_plugin=No se puede cargar: {0} ({1})
PluginWrapper.failed_to_load_dependency=No se puede cargar: {0} ({1})
PluginWrapper.disabledAndObsolete=Acutalización requerida: {0} ({1}) a {2} o superior
PluginWrapper.disabled=El plugin requerido está desactivado: {0}
PluginWrapper.obsolete=Acutalización requerida: {0} ({1}) va a actualizar a {2} o superior
PluginWrapper.disabledAndObsolete=Acutalizaci\u00f3n requerida: {0} ({1}) a {2} o superior
PluginWrapper.disabled=El plugin requerido est\u00e1 desactivado: {0}
PluginWrapper.obsolete=Acutalizaci\u00f3n requerida: {0} ({1}) va a actualizar a {2} o superior
PluginWrapper.obsoleteCore=Se requiere Jenkins ({1}) o superior
PluginWrapper.obsoleteJava=Se requiere Java ({1}) o superior
PluginWrapper.PluginWrapperAdministrativeMonitor.DisplayName=No se pueden cargar los plugins
Expand Down
Loading

0 comments on commit 76fc089

Please sign in to comment.