提交 1cbbb239 编写于 作者: J Jesse Glick

Replaced Job.logRotator with BuildDiscarderProperty.

上级 600b1f07
...@@ -851,6 +851,10 @@ public class Functions { ...@@ -851,6 +851,10 @@ public class Functions {
return JobPropertyDescriptor.getPropertyDescriptors(clazz); return JobPropertyDescriptor.getPropertyDescriptors(clazz);
} }
public static List<JobPropertyDescriptor> getJobPropertyDescriptors(Job job) {
return DescriptorVisibilityFilter.apply(job, JobPropertyDescriptor.getPropertyDescriptors(job.getClass()));
}
public static List<Descriptor<BuildWrapper>> getBuildWrapperDescriptors(AbstractProject<?,?> project) { public static List<Descriptor<BuildWrapper>> getBuildWrapperDescriptors(AbstractProject<?,?> project) {
return BuildWrappers.getFor(project); return BuildWrappers.getFor(project);
} }
......
...@@ -26,6 +26,7 @@ package hudson.model; ...@@ -26,6 +26,7 @@ package hudson.model;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.collect.Collections2; import com.google.common.collect.Collections2;
import com.infradna.tool.bridge_method_injector.WithBridgeMethods; import com.infradna.tool.bridge_method_injector.WithBridgeMethods;
import hudson.BulkChange;
import hudson.EnvVars; import hudson.EnvVars;
import hudson.Extension; import hudson.Extension;
...@@ -104,6 +105,7 @@ import javax.annotation.CheckForNull; ...@@ -104,6 +105,7 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import static javax.servlet.http.HttpServletResponse.*; import static javax.servlet.http.HttpServletResponse.*;
import jenkins.model.BuildDiscarderProperty;
import jenkins.model.ModelObjectWithChildren; import jenkins.model.ModelObjectWithChildren;
import jenkins.model.RunIdMigrator; import jenkins.model.RunIdMigrator;
import jenkins.model.lazy.LazyBuildMixIn; import jenkins.model.lazy.LazyBuildMixIn;
...@@ -147,6 +149,7 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R ...@@ -147,6 +149,7 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R
*/ */
private transient volatile boolean holdOffBuildUntilUserSave; private transient volatile boolean holdOffBuildUntilUserSave;
/** @deprecated Replaced by {@link BuildDiscarderProperty} */
private volatile BuildDiscarder logRotator; private volatile BuildDiscarder logRotator;
/** /**
...@@ -424,15 +427,24 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R ...@@ -424,15 +427,24 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R
} }
/** /**
* Returns the configured build discarder for this job, or null if none. * Returns the configured build discarder for this job, via {@link BuildDiscarderProperty}, or null if none.
*/ */
public BuildDiscarder getBuildDiscarder() { public BuildDiscarder getBuildDiscarder() {
return logRotator; BuildDiscarderProperty prop = getProperty(BuildDiscarderProperty.class);
return prop != null ? prop.getStrategy() : /* settings compatibility */ logRotator;
} }
public void setBuildDiscarder(BuildDiscarder bd) throws IOException { public void setBuildDiscarder(BuildDiscarder bd) throws IOException {
this.logRotator = bd; BulkChange bc = new BulkChange(this);
save(); try {
removeProperty(BuildDiscarderProperty.class);
if (bd != null) {
addProperty(new BuildDiscarderProperty(bd));
}
bc.commit();
} finally {
bc.abort();
}
} }
/** /**
...@@ -444,9 +456,8 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R ...@@ -444,9 +456,8 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R
*/ */
@Deprecated @Deprecated
public LogRotator getLogRotator() { public LogRotator getLogRotator() {
if (logRotator instanceof LogRotator) BuildDiscarder buildDiscarder = getBuildDiscarder();
return (LogRotator) logRotator; return buildDiscarder instanceof LogRotator ? (LogRotator) buildDiscarder : null;
return null;
} }
/** /**
...@@ -1185,11 +1196,6 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R ...@@ -1185,11 +1196,6 @@ public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, R
try { try {
setDisplayName(json.optString("displayNameOrNull")); setDisplayName(json.optString("displayNameOrNull"));
if (json.optBoolean("logrotate"))
logRotator = req.bindJSON(BuildDiscarder.class, json.optJSONObject("buildDiscarder"));
else
logRotator = null;
DescribableList<JobProperty<?>, JobPropertyDescriptor> t = new DescribableList<JobProperty<?>, JobPropertyDescriptor>(NOOP,getAllProperties()); DescribableList<JobProperty<?>, JobPropertyDescriptor> t = new DescribableList<JobProperty<?>, JobPropertyDescriptor>(NOOP,getAllProperties());
JSONObject jsonProperties = json.optJSONObject("properties"); JSONObject jsonProperties = json.optJSONObject("properties");
if (jsonProperties != null) { if (jsonProperties != null) {
......
/*
* The MIT License
*
* Copyright 2015 CloudBees, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package jenkins.model;
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.model.DescriptorVisibilityFilter;
import hudson.model.Items;
import hudson.model.Job;
import org.kohsuke.stapler.DataBoundConstructor;
/**
* Defines a {@link BuildDiscarder}.
*/
public class BuildDiscarderProperty extends OptionalJobProperty<Job<?,?>> {
private final BuildDiscarder strategy;
@DataBoundConstructor
public BuildDiscarderProperty(BuildDiscarder strategy) {
this.strategy = strategy;
}
public BuildDiscarder getStrategy() {
return strategy;
}
@Extension
public static class DescriptorImpl extends OptionalJobPropertyDescriptor {
@Override
public String getDisplayName() {
return Messages.BuildDiscarderProperty_displayName();
}
static {
Items.XSTREAM2.addCompatibilityAlias("org.jenkinsci.plugins.workflow.job.properties.BuildDiscarderProperty", BuildDiscarderProperty.class);
}
}
@Extension
public static class ConditionallyHidden extends DescriptorVisibilityFilter {
@SuppressWarnings("rawtypes")
@Override
public boolean filter(Object context, Descriptor descriptor) {
if (descriptor instanceof DescriptorImpl && context instanceof Job) {
return ((Job) context).supportsLogRotator();
}
return true;
}
}
}
...@@ -45,17 +45,7 @@ THE SOFTWARE. ...@@ -45,17 +45,7 @@ THE SOFTWARE.
<f:textarea name="description" value="${it.description}" codemirror-mode="${app.markupFormatter.codeMirrorMode}" codemirror-config="${app.markupFormatter.codeMirrorConfig}" previewEndpoint="/markupFormatter/previewDescription"/> <f:textarea name="description" value="${it.description}" codemirror-mode="${app.markupFormatter.codeMirrorMode}" codemirror-config="${app.markupFormatter.codeMirrorConfig}" previewEndpoint="/markupFormatter/previewDescription"/>
</f:entry> </f:entry>
<j:if test="${it.supportsLogRotator()}"> <f:descriptorList field="properties" descriptors="${h.getJobPropertyDescriptors(it)}" forceRowSet="true"/>
<!-- log rotator -->
<f:optionalBlock name="logrotate"
help="/help/project-config/log-rotation.html"
title="${%Discard Old Builds}" checked="${it.buildDiscarder!=null}" inline="true">
<f:dropdownDescriptorSelector field="buildDiscarder" title="${%Strategy}"/>
</f:optionalBlock>
</j:if>
<!-- job property configurations. This should have been <f:descriptorList> -->
<f:descriptorList field="properties" descriptors="${h.getJobPropertyDescriptors(it.getClass())}" forceRowSet="true" />
<!-- additional entries from derived classes --> <!-- additional entries from derived classes -->
<st:include page="configure-entries.jelly" /> <st:include page="configure-entries.jelly" />
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435
Discard\ Old\ Builds=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u0431\u0438\u043B\u0434\u043E\u0432\u0435
LOADING=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435 LOADING=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435
Save=\u0417\u0430\u043F\u0438\u0448\u0438 Save=\u0417\u0430\u043F\u0438\u0448\u0438
name=\u0438\u043C\u0435 name=\u0438\u043C\u0435
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=Popis Description=Popis
Discard\ Old\ Builds=Zahodit star\u00E9 sestaven\u00ED
LOADING=Nahr\u00E1v\u00E1n\u00ED LOADING=Nahr\u00E1v\u00E1n\u00ED
name=jm\u00E9no name=jm\u00E9no
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
Strategy=Strategi Strategy=Strategi
name={0} navn name={0} navn
Discard\ Old\ Builds=Fjern Gamle Byg
Save=Gem Save=Gem
LOADING=INDL\u00c6SER LOADING=INDL\u00c6SER
Description=Beskrivelse Description=Beskrivelse
...@@ -23,6 +23,5 @@ ...@@ -23,6 +23,5 @@
Strategy=Strategie Strategy=Strategie
name={0}name name={0}name
Description=Beschreibung Description=Beschreibung
Discard\ Old\ Builds=Alte Builds verwerfen
Save=Speichern Save=Speichern
LOADING=LADE DATEN LOADING=LADE DATEN
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
Strategy=Estrategia Strategy=Estrategia
name={0} nombre name={0} nombre
Discard\ Old\ Builds=Desechar ejecuciones antiguas
Save=Guardar Save=Guardar
Description=Descripción Description=Descripción
LOADING=CARGANDO LOADING=CARGANDO
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=Descripci\u00F3n Description=Descripci\u00F3n
Discard\ Old\ Builds=Descargar build antiguos
LOADING=CARGANDO LOADING=CARGANDO
name={0} nombre name={0} nombre
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=Kirjeldus Description=Kirjeldus
Discard\ Old\ Builds=Eemalda vanad bildid
LOADING=Laen LOADING=Laen
name={0} nimi name={0} nimi
...@@ -21,5 +21,4 @@ ...@@ -21,5 +21,4 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=Kuvaus Description=Kuvaus
Discard\ Old\ Builds=H\u00E4vit\u00E4 vanhat k\u00E4\u00E4nn\u00F6kset
Save=Tallenna Save=Tallenna
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
name=Nom du {0} name=Nom du {0}
Description=Description Description=Description
Discard\ Old\ Builds=Supprimer les anciens builds
Save=Sauver Save=Sauver
LOADING=CHARGEMENT LOADING=CHARGEMENT
Strategy=Strat\u00E9gie Strategy=Strat\u00E9gie
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=\u05EA\u05D0\u05D5\u05E8 Description=\u05EA\u05D0\u05D5\u05E8
Discard\ Old\ Builds=\u05D4\u05E9\u05DE\u05D3 \u05D1\u05E0\u05D9\u05D5\u05EA \u05D9\u05E9\u05E0\u05D5\u05EA
LOADING=\u05D8\u05D5\u05E2\u05DF LOADING=\u05D8\u05D5\u05E2\u05DF
name=\u05E9\u05DD {0} name=\u05E9\u05DD {0}
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=Le\u00EDr\u00E1s Description=Le\u00EDr\u00E1s
Discard\ Old\ Builds=R\u00E9gi \u00E9p\u00EDt\u00E9sek t\u00F6rl\u00E9se
LOADING=BET\u00D6LT\u00C9S LOADING=BET\u00D6LT\u00C9S
Strategy=Strat\u00E9gia Strategy=Strat\u00E9gia
name={0} n\u00E9v name={0} n\u00E9v
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=Descrizione Description=Descrizione
Discard\ Old\ Builds=Elimina Build Precedenti
LOADING=CARICAMENTO LOADING=CARICAMENTO
Save=Salva Save=Salva
Strategy=Strategia Strategy=Strategia
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
name={0}\u540d name={0}\u540d
Description=\u8aac\u660e Description=\u8aac\u660e
Discard\ Old\ Builds=\u53e4\u3044\u30d3\u30eb\u30c9\u306e\u7834\u68c4
Save=\u4fdd\u5b58 Save=\u4fdd\u5b58
LOADING=\u30ed\u30fc\u30c9\u4e2d... LOADING=\u30ed\u30fc\u30c9\u4e2d...
Strategy=\u65b9\u91dd Strategy=\u65b9\u91dd
\ No newline at end of file
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=\uC124\uBA85 Description=\uC124\uBA85
Discard\ Old\ Builds=\uC624\uB798\uB41C \uBE4C\uB4DC \uC0AD\uC81C
LOADING=\uBD88\uB7EC\uC624\uB294 \uC911 LOADING=\uBD88\uB7EC\uC624\uB294 \uC911
Save=\uC800\uC7A5 Save=\uC800\uC7A5
Strategy=\uC804\uB7B5 Strategy=\uC804\uB7B5
......
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=Apra\u0161ymas Description=Apra\u0161ymas
Discard\ Old\ Builds=Pa\u0161alinti senus darbus
LOADING=\u012EKELIAMA LOADING=\u012EKELIAMA
Save=\u012Era\u0161yti Save=\u012Era\u0161yti
Strategy=Strategija Strategy=Strategija
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=Apraksts Description=Apraksts
Discard\ Old\ Builds=Dz\u0113st vecos b\u016Bv\u0113jumus
LOADING=IEL\u0100D\u0112 LOADING=IEL\u0100D\u0112
Save=Saglab\u0101t Save=Saglab\u0101t
name={0} nosaukums name={0} nosaukums
...@@ -21,6 +21,5 @@ ...@@ -21,6 +21,5 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=Beskrivelse Description=Beskrivelse
Discard\ Old\ Builds=Slett gamle bygg
LOADING=LASTER LOADING=LASTER
name={0} navn name={0} navn
...@@ -23,6 +23,5 @@ ...@@ -23,6 +23,5 @@
Strategy=Strategie Strategy=Strategie
name={0} naam name={0} naam
Description=Omschrijving Description=Omschrijving
Discard\ Old\ Builds=Oude builds automatisch verwijderen
LOADING=LADEN LOADING=LADEN
Save=Opslaan Save=Opslaan
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=Opis Description=Opis
Discard\ Old\ Builds=Porzu\u0107 stare buildy
LOADING=\u0141ADOWANIE LOADING=\u0141ADOWANIE
Save=Zapisz Save=Zapisz
Strategy=Strategia Strategy=Strategia
......
...@@ -23,6 +23,5 @@ ...@@ -23,6 +23,5 @@
Strategy=Estrat\u00E9gia Strategy=Estrat\u00E9gia
name=Nome do {0} name=Nome do {0}
Description=Descri\u00e7\u00e3o Description=Descri\u00e7\u00e3o
Discard\ Old\ Builds=Descartar builds antigos
Save=Salvar Save=Salvar
LOADING=CARREGANDO LOADING=CARREGANDO
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=Descri\u00E7\u00E3o Description=Descri\u00E7\u00E3o
Discard\ Old\ Builds=Descartar compila\u00E7\u00F5es antigas
LOADING=A CARREGAR LOADING=A CARREGAR
name={0} nome name={0} nome
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=Descriere Description=Descriere
Discard\ Old\ Builds=Anuleaza Build-urile vechi
LOADING=SE INCARCA LOADING=SE INCARCA
Strategy=Strategie Strategy=Strategie
name=numele {0} name=numele {0}
...@@ -23,6 +23,5 @@ ...@@ -23,6 +23,5 @@
Strategy=\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f Strategy=\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f
name={0} name={0}
Description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 Description=\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435
Discard\ Old\ Builds=\u0423\u0434\u0430\u043b\u044f\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0441\u0431\u043e\u0440\u043a\u0438
LOADING=\u0417\u0410\u0413\u0420\u0423\u0417\u041a\u0410 LOADING=\u0417\u0410\u0413\u0420\u0423\u0417\u041a\u0410
Save=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c Save=\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=Popis Description=Popis
Discard\ Old\ Builds=Vymazanie star\u00FDch zostaven\u00ED
LOADING=Nahr\u00E1vanie LOADING=Nahr\u00E1vanie
Strategy=Strat\u00E9gia Strategy=Strat\u00E9gia
name={0} meno name={0} meno
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=Beskrivning Description=Beskrivning
Discard\ Old\ Builds=Ta bort gamla byggen
LOADING=LADDAR LOADING=LADDAR
Save=Spara Save=Spara
Strategy=Strategi Strategy=Strategi
......
...@@ -23,6 +23,5 @@ ...@@ -23,6 +23,5 @@
Strategy=Strateji Strategy=Strateji
name={0} isim name={0} isim
Description=A\u00e7\u0131klama Description=A\u00e7\u0131klama
Discard\ Old\ Builds=Eski Yap\u0131land\u0131rmalardan Kurtul
LOADING=Y\u00DCKLEN\u0130YOR LOADING=Y\u00DCKLEN\u0130YOR
Save=Kaydet Save=Kaydet
# This file is under the MIT License by authors # This file is under the MIT License by authors
Description=\u041E\u043F\u0438\u0441 Description=\u041E\u043F\u0438\u0441
Discard\ Old\ Builds=\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0440\u0456 \u0431\u0456\u043B\u0434\u0438
LOADING=\u0417\u0410\u0412\u0410\u041D\u0422\u0410\u0416\u0423\u0404\u0422\u042C\u0421\u042F LOADING=\u0417\u0410\u0412\u0410\u041D\u0422\u0410\u0416\u0423\u0404\u0422\u042C\u0421\u042F
Save=\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438 Save=\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438
Strategy=\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0456\u044F Strategy=\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0456\u044F
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
# THE SOFTWARE. # THE SOFTWARE.
Description=\u63CF\u8FF0 Description=\u63CF\u8FF0
Discard\ Old\ Builds=\u4E22\u5F03\u65E7\u7684\u6784\u5EFA
LOADING=\u52A0\u8F7D\u4E2D LOADING=\u52A0\u8F7D\u4E2D
Save=\u4FDD\u5B58 Save=\u4FDD\u5B58
Strategy=\u7B56\u7565 Strategy=\u7B56\u7565
......
...@@ -25,7 +25,6 @@ LOADING=\u8B80\u53D6\u4E2D ...@@ -25,7 +25,6 @@ LOADING=\u8B80\u53D6\u4E2D
name={0} \u540D\u7A31 name={0} \u540D\u7A31
Description=\u63CF\u8FF0 Description=\u63CF\u8FF0
Discard\ Old\ Builds=\u5FFD\u7565\u820ABuilds
Strategy=\u7b56\u7565 Strategy=\u7b56\u7565
Save=\u5132\u5b58 Save=\u5132\u5b58
<?xml version="1.0" encoding="UTF-8"?>
<!--
The MIT License
Copyright 2015 CloudBees, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
<?jelly escape-by-default='true'?>
<j:jelly xmlns:j="jelly:core" xmlns:f="/lib/form">
<f:dropdownDescriptorSelector field="strategy" title="${%Strategy}"/>
</j:jelly>
...@@ -70,3 +70,4 @@ ParameterizedJobMixIn.build_with_parameters=Build with Parameters ...@@ -70,3 +70,4 @@ ParameterizedJobMixIn.build_with_parameters=Build with Parameters
ParameterizedJobMixIn.build_now=Build Now ParameterizedJobMixIn.build_now=Build Now
BlockedBecauseOfBuildInProgress.shortDescription=Build #{0} is already in progress{1} BlockedBecauseOfBuildInProgress.shortDescription=Build #{0} is already in progress{1}
BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0})
BuildDiscarderProperty.displayName=Discard Old Builds
BuildDiscarderProperty.displayName=\u041F\u0440\u0435\u043D\u0435\u0431\u0440\u0435\u0433\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u0442\u0430\u0440\u0438\u0442\u0435 \u0431\u0438\u043B\u0434\u043E\u0432\u0435
BuildDiscarderProperty.displayName=Zahodit star\u00E9 sestaven\u00ED
...@@ -55,3 +55,4 @@ Mailer.Localhost.Error=Venligst inds\u00e6t et gyldigt v\u00e6rtsnavn, istedet f ...@@ -55,3 +55,4 @@ Mailer.Localhost.Error=Venligst inds\u00e6t et gyldigt v\u00e6rtsnavn, istedet f
ParameterizedJobMixIn.build_now=Byg nu ParameterizedJobMixIn.build_now=Byg nu
BlockedBecauseOfBuildInProgress.shortDescription=Byg #{0} er allerede i gang {1} BlockedBecauseOfBuildInProgress.shortDescription=Byg #{0} er allerede i gang {1}
BlockedBecauseOfBuildInProgress.ETA=(ETA:{0}) BlockedBecauseOfBuildInProgress.ETA=(ETA:{0})
BuildDiscarderProperty.displayName=Fjern Gamle Byg
...@@ -65,3 +65,4 @@ ParameterizedJobMixIn.build_with_parameters=Bauen mit Parametern ...@@ -65,3 +65,4 @@ ParameterizedJobMixIn.build_with_parameters=Bauen mit Parametern
ParameterizedJobMixIn.build_now=Jetzt bauen ParameterizedJobMixIn.build_now=Jetzt bauen
BlockedBecauseOfBuildInProgress.shortDescription=Build #{0} ist bereits in Arbeit{1} BlockedBecauseOfBuildInProgress.shortDescription=Build #{0} ist bereits in Arbeit{1}
BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0})
BuildDiscarderProperty.displayName=Alte Builds verwerfen
...@@ -65,3 +65,4 @@ Mailer.Localhost.Error=Escriba un nombre de servidor correcto en lugar de "local ...@@ -65,3 +65,4 @@ Mailer.Localhost.Error=Escriba un nombre de servidor correcto en lugar de "local
ParameterizedJobMixIn.build_now=Construir ahora ParameterizedJobMixIn.build_now=Construir ahora
BlockedBecauseOfBuildInProgress.shortDescription=La ejecuci\u00f3n #{0} ya est\u00e1 en progreso {1} BlockedBecauseOfBuildInProgress.shortDescription=La ejecuci\u00f3n #{0} ya est\u00e1 en progreso {1}
BlockedBecauseOfBuildInProgress.ETA= (ETA:{0}) BlockedBecauseOfBuildInProgress.ETA= (ETA:{0})
BuildDiscarderProperty.displayName=Desechar ejecuciones antiguas
BuildDiscarderProperty.displayName=Descargar build antiguos
BuildDiscarderProperty.displayName=Eemalda vanad bildid
ParameterizedJobMixIn.build_now=K\u00E4\u00E4nn\u00E4 nyt ParameterizedJobMixIn.build_now=K\u00E4\u00E4nn\u00E4 nyt
BuildDiscarderProperty.displayName=H\u00E4vit\u00E4 vanhat k\u00E4\u00E4nn\u00F6kset
...@@ -45,3 +45,4 @@ Hudson.ReadPermission.Description=\ ...@@ -45,3 +45,4 @@ Hudson.ReadPermission.Description=\
ParameterizedJobMixIn.build_now=Lancer un build ParameterizedJobMixIn.build_now=Lancer un build
BlockedBecauseOfBuildInProgress.shortDescription=Le build #{0} est d\u00e9j\u00e0 en cours {1} BlockedBecauseOfBuildInProgress.shortDescription=Le build #{0} est d\u00e9j\u00e0 en cours {1}
BlockedBecauseOfBuildInProgress.ETA=\ (fin pr\u00e9vue \u00e0: {0}) BlockedBecauseOfBuildInProgress.ETA=\ (fin pr\u00e9vue \u00e0: {0})
BuildDiscarderProperty.displayName=Supprimer les anciens builds
BuildDiscarderProperty.displayName=\u05D4\u05E9\u05DE\u05D3 \u05D1\u05E0\u05D9\u05D5\u05EA \u05D9\u05E9\u05E0\u05D5\u05EA
ParameterizedJobMixIn.build_now=\u00C9p\u00EDt\u00E9s Most ParameterizedJobMixIn.build_now=\u00C9p\u00EDt\u00E9s Most
BuildDiscarderProperty.displayName=R\u00E9gi \u00E9p\u00EDt\u00E9sek t\u00F6rl\u00E9se
ParameterizedJobMixIn.build_now=Effettua build ParameterizedJobMixIn.build_now=Effettua build
BlockedBecauseOfBuildInProgress.shortDescription=Build #{0} is already in progress{1} BlockedBecauseOfBuildInProgress.shortDescription=Build #{0} is already in progress{1}
BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0})
BuildDiscarderProperty.displayName=Elimina Build Precedenti
...@@ -66,3 +66,4 @@ ParameterizedJobMixIn.build_with_parameters=\u30d1\u30e9\u30e1\u30fc\u30bf\u4ed8 ...@@ -66,3 +66,4 @@ ParameterizedJobMixIn.build_with_parameters=\u30d1\u30e9\u30e1\u30fc\u30bf\u4ed8
ParameterizedJobMixIn.build_now=\u30d3\u30eb\u30c9\u5b9f\u884c ParameterizedJobMixIn.build_now=\u30d3\u30eb\u30c9\u5b9f\u884c
BlockedBecauseOfBuildInProgress.shortDescription=\u30d3\u30eb\u30c9 #{0} \u306f\u65e2\u306b\u5b9f\u884c\u4e2d\u3067\u3059\u3002{1} BlockedBecauseOfBuildInProgress.shortDescription=\u30d3\u30eb\u30c9 #{0} \u306f\u65e2\u306b\u5b9f\u884c\u4e2d\u3067\u3059\u3002{1}
BlockedBecauseOfBuildInProgress.ETA=\ (\u4e88\u5b9a\u6642\u9593:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (\u4e88\u5b9a\u6642\u9593:{0})
BuildDiscarderProperty.displayName=\u53e4\u3044\u30d3\u30eb\u30c9\u306e\u7834\u68c4
BuildDiscarderProperty.displayName=\uC624\uB798\uB41C \uBE4C\uB4DC \uC0AD\uC81C
BuildDiscarderProperty.displayName=Pa\u0161alinti senus darbus
BuildDiscarderProperty.displayName=Dz\u0113st vecos b\u016Bv\u0113jumus
BuildDiscarderProperty.displayName=Slett gamle bygg
...@@ -33,3 +33,4 @@ Hudson.ViewName=Alle ...@@ -33,3 +33,4 @@ Hudson.ViewName=Alle
ParameterizedJobMixIn.build_now=Start nu een bouwpoging ParameterizedJobMixIn.build_now=Start nu een bouwpoging
BlockedBecauseOfBuildInProgress.shortDescription=Bouwpoging #{0} is reeds actief {1} BlockedBecauseOfBuildInProgress.shortDescription=Bouwpoging #{0} is reeds actief {1}
BlockedBecauseOfBuildInProgress.ETA= (einde voorzien op:{0}) BlockedBecauseOfBuildInProgress.ETA= (einde voorzien op:{0})
BuildDiscarderProperty.displayName=Oude builds automatisch verwijderen
BuildDiscarderProperty.displayName=Porzu\u0107 stare buildy
...@@ -73,3 +73,4 @@ ParameterizedJobMixIn.build_with_parameters=Construir com par\u00e2metros ...@@ -73,3 +73,4 @@ ParameterizedJobMixIn.build_with_parameters=Construir com par\u00e2metros
ParameterizedJobMixIn.build_now=Construir agora ParameterizedJobMixIn.build_now=Construir agora
BlockedBecauseOfBuildInProgress.shortDescription=A builds #{0} j\u00e1 est\u00e1 em progresso{1} BlockedBecauseOfBuildInProgress.shortDescription=A builds #{0} j\u00e1 est\u00e1 em progresso{1}
BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0})
BuildDiscarderProperty.displayName=Descartar builds antigos
BuildDiscarderProperty.displayName=Descartar compila\u00E7\u00F5es antigas
BuildDiscarderProperty.displayName=Anuleaza Build-urile vechi
...@@ -33,3 +33,4 @@ Hudson.ViewName=\u0412\u0441\u0435 ...@@ -33,3 +33,4 @@ Hudson.ViewName=\u0412\u0441\u0435
ParameterizedJobMixIn.build_now=\u0421\u043E\u0431\u0440\u0430\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441 ParameterizedJobMixIn.build_now=\u0421\u043E\u0431\u0440\u0430\u0442\u044C \u0441\u0435\u0439\u0447\u0430\u0441
BlockedBecauseOfBuildInProgress.shortDescription=\u0421\u0431\u043e\u0440\u043a\u0430 #{0} \u0443\u0436\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 {1} BlockedBecauseOfBuildInProgress.shortDescription=\u0421\u0431\u043e\u0440\u043a\u0430 #{0} \u0443\u0436\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 {1}
BlockedBecauseOfBuildInProgress.ETA=\ (\u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (\u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c:{0})
BuildDiscarderProperty.displayName=\u0423\u0434\u0430\u043b\u044f\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0441\u0431\u043e\u0440\u043a\u0438
BuildDiscarderProperty.displayName=Vymazanie star\u00FDch zostaven\u00ED
ParameterizedJobMixIn.build_now=Starta bygge nu ParameterizedJobMixIn.build_now=Starta bygge nu
BuildDiscarderProperty.displayName=Ta bort gamla byggen
...@@ -33,3 +33,4 @@ Hudson.ViewName=Hepsi ...@@ -33,3 +33,4 @@ Hudson.ViewName=Hepsi
ParameterizedJobMixIn.build_now=\u015eimdi Yap\u0131land\u0131r ParameterizedJobMixIn.build_now=\u015eimdi Yap\u0131land\u0131r
BlockedBecauseOfBuildInProgress.shortDescription=Yap\u0131land\u0131rma #{0} zaten i\u015flemde {1} BlockedBecauseOfBuildInProgress.shortDescription=Yap\u0131land\u0131rma #{0} zaten i\u015flemde {1}
BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0})
BuildDiscarderProperty.displayName=Eski Yap\u0131land\u0131rmalardan Kurtul
BuildDiscarderProperty.displayName=\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438 \u0441\u0442\u0430\u0440\u0456 \u0431\u0456\u043B\u0434\u0438
ParameterizedJobMixIn.build_now=\u7acb\u5373\u6784\u5efa ParameterizedJobMixIn.build_now=\u7acb\u5373\u6784\u5efa
BlockedBecauseOfBuildInProgress.shortDescription=Build #{0} is already in progress{1} BlockedBecauseOfBuildInProgress.shortDescription=Build #{0} is already in progress{1}
BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (ETA:{0})
BuildDiscarderProperty.displayName=\u4E22\u5F03\u65E7\u7684\u6784\u5EFA
...@@ -65,3 +65,4 @@ PatternProjectNamingStrategy.NamePatternInvalidSyntax=\u6b63\u898f\u8868\u793a\u ...@@ -65,3 +65,4 @@ PatternProjectNamingStrategy.NamePatternInvalidSyntax=\u6b63\u898f\u8868\u793a\u
ParameterizedJobMixIn.build_now=\u99ac\u4e0a\u5efa\u7f6e ParameterizedJobMixIn.build_now=\u99ac\u4e0a\u5efa\u7f6e
BlockedBecauseOfBuildInProgress.shortDescription=\u5efa\u7f6e #{0} \u57f7\u884c\u4e2d{1} BlockedBecauseOfBuildInProgress.shortDescription=\u5efa\u7f6e #{0} \u57f7\u884c\u4e2d{1}
BlockedBecauseOfBuildInProgress.ETA=\ (\u9810\u4f30\u6642\u9593:{0}) BlockedBecauseOfBuildInProgress.ETA=\ (\u9810\u4f30\u6642\u9593:{0})
BuildDiscarderProperty.displayName=\u5FFD\u7565\u820ABuilds
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册