提交 cdf45c64 编写于 作者: B Bruno Kühnen Meneguello

[FIXED JENKINS-5622] Allow build queue list to be collapsed

上级 aee011b7
......@@ -44,6 +44,7 @@ import hudson.model.JobPropertyDescriptor;
import hudson.model.ModelObject;
import hudson.model.Node;
import hudson.model.PageDecorator;
import hudson.model.PaneStatusProperties;
import hudson.model.ParameterDefinition;
import hudson.model.ParameterDefinition.ParameterDescriptor;
import hudson.model.Project;
......@@ -134,6 +135,7 @@ import jenkins.model.ModelObjectWithContextMenu;
import org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken;
import org.apache.commons.jelly.JellyContext;
import org.apache.commons.jelly.JellyException;
import org.apache.commons.jelly.JellyTagException;
import org.apache.commons.jelly.Script;
import org.apache.commons.jelly.XMLOutput;
......@@ -142,10 +144,13 @@ import org.apache.commons.jexl.util.Introspector;
import org.apache.commons.lang.StringUtils;
import org.jvnet.tiger_types.Types;
import org.kohsuke.stapler.Ancestor;
import org.kohsuke.stapler.MetaClass;
import org.kohsuke.stapler.Stapler;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.WebApp;
import org.kohsuke.stapler.jelly.InternationalizedStringExpression.RawHtmlArgument;
import org.kohsuke.stapler.jelly.JellyClassTearOff;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
......@@ -580,6 +585,10 @@ public class Functions {
return false;
}
public static boolean isCollapsed(String paneId) {
return PaneStatusProperties.forCurrentUser().isCollapsed(paneId);
}
/**
* Finds the given object in the ancestor list and returns its URL.
* This is used to determine the "current" URL assigned to the given object,
......
package hudson.model;
import static java.lang.String.format;
import hudson.Extension;
import hudson.util.PersistedList;
import java.io.IOException;
import javax.servlet.http.HttpSession;
import org.kohsuke.stapler.Stapler;
public class PaneStatusProperties extends UserProperty implements Saveable {
private final PersistedList<String> collapsed = new PersistedList<String>(this);
private static final PaneStatusProperties FALLBACK = new PaneStatusPropertiesSessionFallback();
public boolean isCollapsed(String paneId) {
return collapsed.contains(paneId);
}
/**
* @param paneId panel name
* @return the actual state of panel
*/
public boolean toggleCollapsed(String paneId) throws IOException {
if (collapsed.contains(paneId)) {
collapsed.remove(paneId);
return false;
} else {
collapsed.add(paneId);
return true;
}
}
public void save() throws IOException {
user.save();
}
private Object readResolve() {
collapsed.setOwner(this);
return this;
}
@Extension
public static class DescriptorImpl extends UserPropertyDescriptor {
@Override
public UserProperty newInstance(User user) {
return new PaneStatusProperties();
}
@Override
public String getDisplayName() {
return null;
}
@Override
public boolean isEnabled() {
return false;
}
}
private static class PaneStatusPropertiesSessionFallback extends PaneStatusProperties {
private final String attribute = "jenkins_pane_%s_collapsed";
@Override
public boolean isCollapsed(String paneId) {
final HttpSession session = Stapler.getCurrentRequest().getSession();
return session.getAttribute(format(attribute, paneId)) != null;
}
@Override
public boolean toggleCollapsed(String paneId) {
final HttpSession session = Stapler.getCurrentRequest().getSession();
final String property = format(attribute, paneId);
final Object collapsed = session.getAttribute(property);
if (collapsed == null) {
session.setAttribute(property, true);
return true;
}
session.removeAttribute(property);
return false;
}
}
public static PaneStatusProperties forCurrentUser() {
final User current = User.current();
if (current == null) {
return FALLBACK;
}
return current.getProperty(PaneStatusProperties.class);
}
}
......@@ -65,6 +65,7 @@ import hudson.model.LoadBalancer;
import hudson.model.ManagementLink;
import hudson.model.NoFingerprintMatch;
import hudson.model.OverallLoadStatistics;
import hudson.model.PaneStatusProperties;
import hudson.model.Project;
import hudson.model.Queue.FlyweightTask;
import hudson.model.RestartListener;
......@@ -2876,6 +2877,15 @@ public class Jenkins extends AbstractCIBase implements ModifiableTopLevelItemGro
return new HttpRedirect(".");
}
public HttpResponse doToggleCollapse() throws ServletException, IOException {
final StaplerRequest request = Stapler.getCurrentRequest();
final String paneId = request.getParameter("paneId");
PaneStatusProperties.forCurrentUser().toggleCollapsed(paneId);
return HttpResponses.forwardToPreviousPage();
}
/**
* Backward compatibility. Redirect to the thread dump.
*/
......
......@@ -103,7 +103,8 @@ THE SOFTWARE.
</d:taglib>
<j:set var="computers" value="${attrs.computers?:app.computers}" />
<l:pane width="3" id="executors"
title="&lt;a href='${rootURL}/computer/'>${%Build Executor Status}&lt;/a>">
title="&lt;a href='${rootURL}/computer/'>${%Build Executor Status}&lt;/a>"
collapsedText="${%Computers(computers.size() - 1, app.unlabeledLoad.computeTotalExecutors() - app.unlabeledLoad.computeIdleExecutors(), app.unlabeledLoad.computeTotalExecutors())}">
<colgroup><col width="1*"/><col width="200*"/><col width="24"/></colgroup>
<tr>
......
Computers=master{0,choice,0#|1# + {0,number} computer ({1} of {2} executors)|1< + {0,number} computers ({1} of {2} executors)}
\ No newline at end of file
......@@ -31,3 +31,4 @@ Status=Situa\u00E7\u00E3o
Unknown\ Task=Tarefa n\u00e3o localizada
suspended=suspenso
Offline=desconectado
Computers=mestre{0,choice,0#|1# + {0,number} computador ({1} de {2} executores)|1< + {0,number} computadores ({1} de {2} executores)}
\ No newline at end of file
......@@ -34,7 +34,7 @@ THE SOFTWARE.
</st:attribute>
</st:documentation>
<t:setIconSize/>
<l:pane title="${%Build Queue}" width="2" id="buildQueue">
<l:pane title="${%Build Queue(items.size())}" width="2" id="buildQueue">
<j:if test="${app.quietingDown}">
<tr>
<td class="pane" colspan="2" style="white-space: normal;">
......
Build\ Queue=Build Queue{0,choice,0#|0< ({0,number})}
WaitingFor=Waiting for {0}
\ No newline at end of file
......@@ -20,6 +20,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u0637\u0627\u0628\u0648\u0631 \u0627\u0644\u0628\u0646\u0627\u0621
Build\ Queue=\u0637\u0627\u0628\u0648\u0631 \u0627\u0644\u0628\u0646\u0627\u0621{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u0644\u0627 \u064A\u0648\u062C\u062F \u0623\u064A \u0628\u0646\u0627\u0621 \u0641\u064A \u0627\u0644\u0637\u0627\u0628\u0648\u0631.
WaitingFor=\u0625\u0646\u062A\u0638\u0627\u0631 {0}
# This file is under the MIT License by authors
Build\ Queue=Build Warteschlange
Build\ Queue=Build Warteschlange{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Keine Builds in der Warteschlange
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u041E\u043F\u0430\u0448\u043A\u0430 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435
Build\ Queue=\u041E\u043F\u0430\u0448\u043A\u0430 \u0437\u0430 \u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D\u0438\u0435{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins \u0449\u0435 \u0441\u0435 \u0438\u0437\u043A\u043B\u044E\u0447\u0438. \u0414\u043E\u0431\u0430\u0432\u0435\u043D\u0438\u0442\u0435 \u0431\u0438\u043B\u0434\u043E\u0432\u0435 \u043D\u044F\u043C\u0430 \u0434\u0430 \u0441\u0435 \u0438\u0437\u043F\u044A\u043B\u043D\u044F\u0442
No\ builds\ in\ the\ queue.=\u041D\u044F\u043C\u0430 \u043A\u043E\u043C\u043F\u0438\u043B\u0430\u0446\u0438\u0438 \u0432 \u043E\u043F\u0430\u0448\u043A\u0430\u0442\u0430
cancel=\u043E\u0442\u043A\u0430\u0437
# This file is under the MIT License by authors
Build\ Queue=e
Build\ Queue=e{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=e
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Cua de muntatges
Build\ Queue=Cua de muntatges{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=No hi ha muntatges a la cua
WaitingFor=Esperant {0}
WaitingSince=Esperant des de {0}
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Fronta \u010Dekaj\u00EDc\u00EDch build\u016F
Build\ Queue=Fronta \u010Dekaj\u00EDc\u00EDch build\u016F{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins bude brzy vypnut. \u017D\u00E1dn\u00E9 dal\u0161\u00ED \u00FAlohy nebudou provedeny.
No\ builds\ in\ the\ queue.=\u017D\u00E1dn\u00E1 sestaven\u00ED ve front\u011B.
WaitingFor=\u010Cek\u00E1 na {0}
......
......@@ -25,4 +25,4 @@ No\ builds\ in\ the\ queue.=Ingen job i k\u00F8en.
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins vil lukke ned, der vil ikke blive udf\u00f8rt flere byg.
WaitingFor=afventer {0}
cancel=annuller
Build\ Queue=Job-k\u00F8
Build\ Queue=Job-k\u00F8{0,choice,0#|0< ({0,number})}
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Build Warteschlange
Build\ Queue=Build Warteschlange{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Keine Builds geplant
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins fährt gerade herunter. Es werden keine weiteren Builds ausgeführt.
cancel=Abbrechen
......
......@@ -20,6 +20,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u039F\u03C5\u03C1\u03AC \u03B4\u03B9\u03B5\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD
Build\ Queue=\u039F\u03C5\u03C1\u03AC \u03B4\u03B9\u03B5\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03BF\u03C5\u03BD \u03B4\u03B9\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 \u03B5\u03BD \u03B1\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE
WaitingFor=\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03B3\u03B9\u03B1 {0}
......@@ -20,5 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Konstrua atendovico
Build\ Queue=Konstrua atendovico{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Neniuj konstruoj en la atendovico.
......@@ -21,7 +21,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Trabajos en la cola
Build\ Queue=Trabajos en la cola{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins va a ser apagado. No se procesarán nuevas tareas.
cancel=cancelar
No\ builds\ in\ the\ queue.=No hay trabajos en la cola
......
# This file is under the MIT License by authors
Build\ Queue=Trabajos en cola
Build\ Queue=Trabajos en cola{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=No hay trabajos en cola
WaitingSince=Esperando desde {0}
# This file is under the MIT License by authors
Build\ Queue=Ehitus j\u00E4rjekord
Build\ Queue=Ehitus j\u00E4rjekord{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Ehitamisi pole j\u00E4rjekorras
WaitingFor=Ootan {0}
......@@ -20,5 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Lan ilara
Build\ Queue=Lan ilara{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Ez dago lanik ilaran.
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=K\u00E4\u00E4nn\u00F6sjono
Build\ Queue=K\u00E4\u00E4nn\u00F6sjono{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkinsin alasajo alkaa pian. Enempi\u00E4 k\u00E4\u00E4nn\u00F6ksi\u00E4 ei nyt aloiteta.
No\ builds\ in\ the\ queue.=Ei k\u00E4\u00E4nn\u00F6ksi\u00E4 jonossa.
WaitingFor=Odottaa {0}
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=File d\u2019attente des constructions
Build\ Queue=File d\u2019attente des constructions{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=File d\u2019attente des constructions vide
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins est en cours de fermeture. Aucun nouveau build ne sera lancé.
cancel=Annuler
......
# This file is under the MIT License by authors
Build\ Queue=T\u00F3g\u00E1il scuaine
Build\ Queue=T\u00F3g\u00E1il scuaine{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Uimh T\u00F3gann sa scuaine.
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u05EA\u05D5\u05E8 \u05D1\u05E0\u05D9\u05D5\u05EA
Build\ Queue=\u05EA\u05D5\u05E8 \u05D1\u05E0\u05D9\u05D5\u05EA{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u05D0\u05D9\u05DF \u05D1\u05E0\u05D9\u05D5\u05EA \u05DE\u05DE\u05EA\u05D9\u05E0\u05D5\u05EA \u05D1\u05EA\u05D5\u05E8.
WaitingFor=\u05DE\u05D7\u05DB\u05D4 \u05DC - {0}
WaitingSince=\u05DE\u05DE\u05EA\u05D9\u05DF \u05DE\u05D0\u05D6 {0}
......
# This file is under the MIT License by authors
Build\ Queue=\u0928\u093F\u0930\u094D\u092E\u093E\u0923 \u0915\u0924\u093E\u0930
Build\ Queue=\u0928\u093F\u0930\u094D\u092E\u093E\u0923 \u0915\u0924\u093E\u0930{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u0915\u0924\u093E\u0930 \u092E\u0947\u0902 \u090F\u0915 \u0928\u093F\u0930\u094D\u092E\u093E\u0923 \u092D\u0940 \u0928\u0939\u0940\u0902
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u00C9p\u00EDt\u00E9si Sor
Build\ Queue=\u00C9p\u00EDt\u00E9si Sor{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=A Jenkins le\u00E1ll. Nem hajt v\u00E9gre t\u00F6bb build-et.
No\ builds\ in\ the\ queue.=Nincs \u00FCtemezett build a sorban
WaitingFor=V\u00E1rakoz\u00E1s {0}
......
......@@ -20,5 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Antrian Pembangunan
Build\ Queue=Antrian Pembangunan{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Tidak ada pembangunan di antrian
......@@ -20,5 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Keyrslu r\u00F6\u00F0
Build\ Queue=Keyrslu r\u00F6\u00F0{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Engar keyrslur b\u00ED\u00F0andi
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Elenco build
Build\ Queue=Elenco build{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins si spegner\u00E0 a breve. Nessuna nuova build verr\u00E0 eseguita.
No\ builds\ in\ the\ queue.=Nessun Build In Coda.
WaitingFor=In attesa di {0}
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u30d3\u30eb\u30c9\u30ad\u30e5\u30fc
Build\ Queue=\u30d3\u30eb\u30c9\u30ad\u30e5\u30fc{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u30D3\u30EB\u30C9\u5F85\u3061
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=\
Jenkins\u306f\u7d42\u4e86\u6e96\u5099\u4e2d\u306e\u305f\u3081\u30d3\u30eb\u30c9\u306f\u5b9f\u884c\u3055\u308c\u307e\u305b\u3093\u3002
......
# This file is under the MIT License by authors
Build\ Queue=\u10D1\u10D8\u10DA\u10D3\u10D8\u10E1 \u10E0\u10D8\u10D2\u10D8
Build\ Queue=\u10D1\u10D8\u10DA\u10D3\u10D8\u10E1 \u10E0\u10D8\u10D2\u10D8{0,choice,0#|0< ({0,number})}
# This file is under the MIT License by authors
Build\ Queue=\u0CA8\u0CBF\u0CB0\u0CCD\u0CAE\u0CBE\u0CA3\u0CA6 \u0CB8\u0CB0\u0CA6\u0CBF \u0CB8\u0CBE\u0CB2\u0CC1
Build\ Queue=\u0CA8\u0CBF\u0CB0\u0CCD\u0CAE\u0CBE\u0CA3\u0CA6 \u0CB8\u0CB0\u0CA6\u0CBF \u0CB8\u0CBE\u0CB2\u0CC1{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u0CB8\u0CB0\u0CA6\u0CBF \u0CB8\u0CBE\u0CB2\u0CBF\u0CA8\u0CB2\u0CCD\u0CB2\u0CBF \u0CA8\u0CBF\u0CB0\u0CCD\u0CAE\u0CBE\u0CA3\u0C97\u0CB3\u0CC1 \u0C87\u0CB2\u0CCD\u0CB2
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\uBE4C\uB4DC \uB300\uAE30 \uBAA9\uB85D
Build\ Queue=\uBE4C\uB4DC \uB300\uAE30 \uBAA9\uB85D{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=\
Jenkins\uC774 \uC885\uB8CC \uC900\uBE44\uC911\uC774\uAE30 \uB54C\uBB38\uC5D0 \uBE4C\uB4DC\uB97C \uC2E4\uD589\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
WaitingFor={0} \uAE30\uB2E4\uB9AC\uB294 \uC911
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=U\u017Eduo\u010Di\u0173 eil\u0117
Build\ Queue=U\u017Eduo\u010Di\u0173 eil\u0117{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkinsas ruo\u0161iasi i\u0161jungimui. Nebus vykdomi jokie darbai.
No\ builds\ in\ the\ queue.=U\u017Eduo\u010Di\u0173 eil\u0117 tu\u0161\u010Dia.
cancel=nutraukti
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=B\u016Bv\u0113jumu rinda
Build\ Queue=B\u016Bv\u0113jumu rinda{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins tiks izsl\u0113gts. Turpm\u0101ki b\u016Bv\u0113jumi netiks izpild\u012Bti.
No\ builds\ in\ the\ queue.=Rind\u0101 nav b\u016Bv\u0113jumu
WaitingFor=Gaidu uz {0}
......
# This file is under the MIT License by authors
Build\ Queue=\u0411\u0430\u0439\u0433\u0443\u0443\u043B\u0430\u0445 \u0436\u0430\u0433\u0441\u0430\u0430\u043B\u0442
Build\ Queue=\u0411\u0430\u0439\u0433\u0443\u0443\u043B\u0430\u0445 \u0436\u0430\u0433\u0441\u0430\u0430\u043B\u0442{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u042D\u043D\u044D \u0436\u0430\u0433\u0441\u0430\u0430\u043B\u0442\u0430\u0434 \u0431\u0430\u0439\u0433\u0443\u0443\u043B\u0430\u043B\u0442 \u0430\u043B\u0433\u0430 \u0431\u0430\u0439\u043D\u0430.
......@@ -20,6 +20,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u092C\u093F\u0932\u094D\u0921\u094D\u091A\u0940 \u0930\u093E\u0902\u0917
Build\ Queue=\u092C\u093F\u0932\u094D\u0921\u094D\u091A\u0940 \u0930\u093E\u0902\u0917{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u0930\u093E\u0902\u0917\u0947\u092E\u0927\u0947 \u090F\u0915\u0939\u0940 \u092C\u093F\u0932\u094D\u0921 \u0928\u093E\u0939\u0940
WaitingFor=\u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u0947\u0924
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Byggek\u00F8
Build\ Queue=Byggek\u00F8{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Ingen bygg i k\u00F8en.
WaitingFor=Venter p\u00E5 {0}
cancel=avbryt
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Build-wachtrij
Build\ Queue=Build-wachtrij{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Er staan geen projecten in de wachtrij.
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Er werd een signaal gestuurd om Jenkins zichzelf te laten afsluiten. Er zullen geen nieuwe bouwpogingen meer ondernomen worden.
Unknown\ Task=Onbekende taak
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Kolejka Budowania
Build\ Queue=Kolejka Budowania{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins przygotowuje si\u0119 do wy\u0142\u0105czenia. Uruchamianie nast\u0119pnych kompilacji zosta\u0142o wstrzymane.
No\ builds\ in\ the\ queue.=Nie ma build\u00F3w w kolejce
WaitingFor=Czeka na {0}
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Fila de Constru\u00E7\u00E3o
Build\ Queue=Fila de Constru\u00E7\u00E3o{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Nenhuma constru\u00E7\u00E3o na fila.
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins est\u00e1 sendo desligado. Nenhuma constru\u00e7\u00e3o futura ser\u00e1 executada.
WaitingFor=Aguardando por {0}
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Fila de Compila\u00E7\u00F5es
Build\ Queue=Fila de Compila\u00E7\u00F5es{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=O Jenkins vai encerrar. Nenhum outro build ser\u00E1 levado a cabo.
No\ builds\ in\ the\ queue.=Sem builds em espera.
WaitingFor=\u00C0 espera de {0}
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Lista de asteptare
Build\ Queue=Lista de asteptare{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Nu sunt build-uri in lista de asteptare
WaitingFor=Astept {0}
WaitingSince=Asteapta de
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u041E\u0447\u0435\u0440\u0435\u0434\u044C \u0441\u0431\u043E\u0440\u043E\u043A.
Build\ Queue=\u041E\u0447\u0435\u0440\u0435\u0434\u044C \u0441\u0431\u043E\u0440\u043E\u043A{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u041E\u0447\u0435\u0440\u0435\u0434\u044C \u0441\u0431\u043E\u0440\u043E\u043A \u043F\u0443\u0441\u0442\u0430
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0441\u044f \u043a \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e. \u0421\u0431\u043e\u0440\u043a\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0443\u0442.
WaitingFor=\u0416\u0434\u0451\u0442 {0}
......
# This file is under the MIT License by authors
Build\ Queue=\u0DB4\u0DD0\u0D9A\u0DDA\u0DA2 \u0DB4\u0DDD\u0DBD\u0DD2\u0DB8
Build\ Queue=\u0DB4\u0DD0\u0D9A\u0DDA\u0DA2 \u0DB4\u0DDD\u0DBD\u0DD2\u0DB8{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u0DB4\u0DDD\u0DBD\u0DD2\u0DB8\u0DDA \u0DC3\u0DD1\u0DAF\u0DD3\u0DB8\u0D9A\u0DCA \u0DB1\u0DD0\u0DAD
WaitingFor=\u0DC3\u0DD0\u0DAF\u0DD3\u0DB8\u0DA7 \u0D87\u0DAD\u0DD2 {0}
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Rad behov
Build\ Queue=Rad behov{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins bude vypnut\u00FD. \u017Diadne \u010Fal\u0161ie zostavenia sa nevykonaj\u00FA.
No\ builds\ in\ the\ queue.=\u017Diadne zostavenia v rade.
WaitingFor=\u010Cak\u00E1 sa na {0}
......
......@@ -20,6 +20,6 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u010Cakalna vrsta
Build\ Queue=\u010Cakalna vrsta{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u010Cakalna vrsta je prazna
WaitingFor=\u010Cakam na
# This file is under the MIT License by authors
Build\ Queue=Red Gradnje
Build\ Queue=Red Gradnje{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=Nema zakazanih procesa
WaitingFor=\u010Ceka se {0}
WaitingSince=\u010Ceka od {0}
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Jobbk\u00F6
Build\ Queue=Jobbk\u00F6{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins h\u00E5ller p\u00E5 att avslutas. Inga nya byggen kommer att utf\u00F6ras.
No\ builds\ in\ the\ queue.=Inga k\u00F6ade byggen.
Unknown\ Task=\u00D6kand uppgift
......
# This file is under the MIT License by authors
Build\ Queue=\u0B89\u0BB0\u0BC1\u0BB5\u0BBE\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BA3\u0BBF \u0BB5\u0BB0\u0BBF\u0B9A\u0BC8
Build\ Queue=\u0B89\u0BB0\u0BC1\u0BB5\u0BBE\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BA3\u0BBF \u0BB5\u0BB0\u0BBF\u0B9A\u0BC8{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=\u0B89\u0BB0\u0BC1\u0BB5\u0BBE\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BA3\u0BBF \u0B8E\u0BA4\u0BC1\u0BB5\u0BC1\u0BAE\u0BCD \u0B87\u0BB5\u0BCD\u0BB5\u0BB0\u0BBF\u0B9A\u0BC8\u0BAF\u0BBF\u0BB2\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8
# This file is under the MIT License by authors
Build\ Queue=\u0C28\u0C3F\u0C30\u0C4D\u0C2E\u0C3F\u0C02\u0C1A\u0C41 \u0C15\u0C4D\u0C30\u0C2E\u0C2E\u0C41
Build\ Queue=\u0C28\u0C3F\u0C30\u0C4D\u0C2E\u0C3F\u0C02\u0C1A\u0C41 \u0C15\u0C4D\u0C30\u0C2E\u0C2E\u0C41{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=ee varusalo nirmanalu levu.
# This file is under the MIT License by authors
Build\ Queue=\u0E04\u0E34\u0E27
Build\ Queue=\u0E04\u0E34\u0E27{0,choice,0#|0< ({0,number})}
WaitingFor=\u0E23\u0E2D {0}
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=Yap\u0131land\u0131rma Listesi
Build\ Queue=Yap\u0131land\u0131rma Listesi{0,choice,0#|0< ({0,number})}
No\ builds\ in\ the\ queue.=S\u0131rada bekleyen yap\u0131land\u0131rma yok.
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins\ kapat\u0131lacakt\u0131r.\ Bundan\ sonra\ ba\u015fka\ yap\u0131land\u0131rma\ ba\u015flat\u0131lmayacakt\u0131r.
WaitingFor={0} bekleniyor
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u0427\u0435\u0440\u0433\u0430 \u043F\u043E\u0431\u0443\u0434\u043E\u0432
Build\ Queue=\u0427\u0435\u0440\u0433\u0430 \u043F\u043E\u0431\u0443\u0434\u043E\u0432{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=\u0414\u0436\u0435\u043D\u043A\u0456\u043D\u0441 \u0437\u0431\u0438\u0440\u0430\u0454\u0442\u044C\u0441\u044F \u0437\u0443\u043F\u0438\u043D\u044F\u0442\u0438\u0441\u044C. \u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u0456 \u0437\u0431\u0456\u0440\u043A\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0442\u0438\u0441\u044F \u043D\u0435 \u0431\u0443\u0434\u0443\u0442\u044C.
No\ builds\ in\ the\ queue.=\u041D\u0435\u043C\u0430\u0454 \u0437\u0431\u0456\u0440\u043E\u043A \u0443 \u0447\u0435\u0440\u0437\u0456
WaitingFor=\u041E\u0447\u0456\u043A\u0443\u0454 \u043D\u0430 {0}
......
......@@ -20,7 +20,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u6784\u5EFA\u961F\u5217
Build\ Queue=\u6784\u5EFA\u961F\u5217{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins \u5373\u5C06\u5173\u95ED\u3002\u5269\u4F59\u751F\u6210\u5C06\u4E0D\u4F1A\u88AB\u6267\u884C\u3002
No\ builds\ in\ the\ queue.=\u961F\u5217\u4E2D\u6CA1\u6709\u6784\u5EFA\u4EFB\u52A1
Unknown\ Task=\u672A\u77E5\u4EFB\u52A1
......
......@@ -21,7 +21,7 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
Build\ Queue=\u5efa\u7f6e\u4f47\u5217
Build\ Queue=\u5efa\u7f6e\u4f47\u5217{0,choice,0#|0< ({0,number})}
Jenkins\ is\ going\ to\ shut\ down.\ No\ further\ builds\ will\ be\ performed.=Jenkins \u5373\u5c07\u505c\u6a5f\uff0c\u4e0d\u6703\u518d\u57f7\u884c\u4efb\u4f55\u65b0\u7684\u5efa\u7f6e\u4f5c\u696d\u3002
No\ builds\ in\ the\ queue.=\u4f47\u5217\u4e2d\u6c92\u6709\u5efa\u7f6e\u4f5c\u696d\u3002
WaitingSince=\u5F9E {0} \u958B\u59CB\u7B49\u5F85
......
......@@ -44,8 +44,27 @@ THE SOFTWARE.
</st:documentation>
<table class="pane" id="${attrs.id}">
<tr><td class="pane-header" colspan="${width}">
<div>
<j:out value="${title}"/>
<a class="collapse" href="${rootURL}/toggleCollapse?paneId=${attrs.id}"
title="${h.isCollapsed(attrs.id) ? '%expand' : '%collapse'}">
<img src="${imagesURL}/16x16/${h.isCollapsed(attrs.id) ? 'expand' : 'collapse'}.png"
class="icon16x16"
alt="${h.isCollapsed(attrs.id) ? '%expand' : '%collapse'}" />
</a>
</div>
</td></tr>
<d:invokeBody />
<j:choose>
<j:when test="${h.isCollapsed(attrs.id)}">
<tr>
<td class="pane" colspan="${width}">
${attrs.collapsedText}
</td>
</tr>
</j:when>
<j:otherwise>
<d:invokeBody />
</j:otherwise>
</j:choose>
</table>
</j:jelly>
\ No newline at end of file
......@@ -321,6 +321,21 @@ td.pane-header {
border-left: none;
background-color: #f0f0f0;
font-weight: bold;
padding-right: 24px;
}
td.pane-header > div {
position: relative;
padding-right: 24px;
width: 100%;
height: 100%;
}
td.pane-header > div > a.collapse {
float: right;
position: absolute;
right: 4px;
top: -1px;
}
th.pane {
......
此差异由.gitattributes 抑制。
此差异由.gitattributes 抑制。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册