Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinston Prakash2011-09-16 00:33:31 +0000
committerWinston Prakash2011-09-16 00:33:31 +0000
commitc74a6240b309125e185126ec4214a748b73eb1a9 (patch)
tree931dd006e49f6cb506257e0e0cbc0eb399153526 /hudson-core/src/main/resources/lib/form
downloadorg.eclipse.hudson.core-c74a6240b309125e185126ec4214a748b73eb1a9.tar.gz
org.eclipse.hudson.core-c74a6240b309125e185126ec4214a748b73eb1a9.tar.xz
org.eclipse.hudson.core-c74a6240b309125e185126ec4214a748b73eb1a9.zip
Initial commit of hudson-core files which are approved via CQ 5461
Diffstat (limited to 'hudson-core/src/main/resources/lib/form')
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced.jelly39
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_da.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_de.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_es.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_fr.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_it.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_ja.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_nl.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_pt_BR.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_ru.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_sv_SE.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/advanced_tr.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/block.jelly27
-rw-r--r--hudson-core/src/main/resources/lib/form/booleanRadio.jelly39
-rw-r--r--hudson-core/src/main/resources/lib/form/booleanRadio_da.properties18
-rw-r--r--hudson-core/src/main/resources/lib/form/booleanRadio_es.properties18
-rw-r--r--hudson-core/src/main/resources/lib/form/booleanRadio_ja.properties18
-rw-r--r--hudson-core/src/main/resources/lib/form/booleanRadio_pt_BR.properties18
-rw-r--r--hudson-core/src/main/resources/lib/form/checkbox.jelly60
-rw-r--r--hudson-core/src/main/resources/lib/form/combobox.jelly46
-rw-r--r--hudson-core/src/main/resources/lib/form/description.jelly28
-rw-r--r--hudson-core/src/main/resources/lib/form/descriptorList.jelly78
-rw-r--r--hudson-core/src/main/resources/lib/form/descriptorRadioList.jelly55
-rw-r--r--hudson-core/src/main/resources/lib/form/dropdownDescriptorSelector.jelly52
-rw-r--r--hudson-core/src/main/resources/lib/form/dropdownList.jelly73
-rw-r--r--hudson-core/src/main/resources/lib/form/dropdownListBlock.jelly50
-rw-r--r--hudson-core/src/main/resources/lib/form/editableComboBox.jelly53
-rw-r--r--hudson-core/src/main/resources/lib/form/editableComboBoxValue.jelly25
-rw-r--r--hudson-core/src/main/resources/lib/form/entry.jelly83
-rw-r--r--hudson-core/src/main/resources/lib/form/enum.jelly35
-rw-r--r--hudson-core/src/main/resources/lib/form/enumSet.jelly34
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox.jelly74
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox.properties19
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox_da.properties18
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox_de.properties20
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox_es.properties20
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox_fr.properties19
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox_ja.properties19
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox_nl.properties19
-rw-r--r--hudson-core/src/main/resources/lib/form/expandableTextbox_pt_BR.properties18
-rw-r--r--hudson-core/src/main/resources/lib/form/form.jelly49
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea.jelly29
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_da.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_de.properties15
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_es.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_fi.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_fr.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_hu.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_it.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_ja.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_nb_NO.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_nl.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_pt_BR.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_ru.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_sv_SE.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_zh_CN.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/helpArea_zh_TW.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/hetero-list.jelly111
-rw-r--r--hudson-core/src/main/resources/lib/form/hetero-list_da.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/hetero-list_de.properties15
-rw-r--r--hudson-core/src/main/resources/lib/form/hetero-list_es.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/hetero-list_ja.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/hetero-list_pt_BR.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/hetero-list_zh_TW.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/hetero-radio.jelly48
-rw-r--r--hudson-core/src/main/resources/lib/form/invisibleEntry.jelly27
-rw-r--r--hudson-core/src/main/resources/lib/form/nested.jelly28
-rw-r--r--hudson-core/src/main/resources/lib/form/option.jelly36
-rw-r--r--hudson-core/src/main/resources/lib/form/optionalBlock.jelly72
-rw-r--r--hudson-core/src/main/resources/lib/form/optionalProperty.jelly38
-rw-r--r--hudson-core/src/main/resources/lib/form/password.jelly54
-rw-r--r--hudson-core/src/main/resources/lib/form/prepareDatabinding.jelly30
-rw-r--r--hudson-core/src/main/resources/lib/form/property.jelly34
-rw-r--r--hudson-core/src/main/resources/lib/form/radio.jelly24
-rw-r--r--hudson-core/src/main/resources/lib/form/radioBlock.jelly63
-rw-r--r--hudson-core/src/main/resources/lib/form/readOnlyTextbox.jelly66
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable.jelly147
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton.jelly27
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_da.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_de.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_es.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_fi.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_fr.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_ja.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_nl.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_pt_BR.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_ru.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_tr.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableDeleteButton_zh_TW.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatableProperty.jelly70
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_da.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_de.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_es.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_fi.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_fr.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_ja.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_nl.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_pt_BR.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_ru.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_sv_SE.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_tr.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/repeatable_zh_TW.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/richtextarea.jelly33
-rw-r--r--hudson-core/src/main/resources/lib/form/rowSet.jelly43
-rw-r--r--hudson-core/src/main/resources/lib/form/section.jelly41
-rw-r--r--hudson-core/src/main/resources/lib/form/select.jelly50
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode.jelly33
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_da.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_de.properties15
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_es.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_fr.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_ja.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_nl.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_pt_BR.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_ru.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_sv_SE.properties17
-rw-r--r--hudson-core/src/main/resources/lib/form/slave-mode_zh_CN.properties15
-rw-r--r--hudson-core/src/main/resources/lib/form/submit.jelly33
-rw-r--r--hudson-core/src/main/resources/lib/form/taglib0
-rw-r--r--hudson-core/src/main/resources/lib/form/textarea.jelly59
-rw-r--r--hudson-core/src/main/resources/lib/form/textbox.jelly72
-rw-r--r--hudson-core/src/main/resources/lib/form/validateButton.jelly57
122 files changed, 3546 insertions, 0 deletions
diff --git a/hudson-core/src/main/resources/lib/form/advanced.jelly b/hudson-core/src/main/resources/lib/form/advanced.jelly
new file mode 100644
index 00000000..e7c9ef21
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced.jelly
@@ -0,0 +1,39 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Expandable section that shows "advanced..." button by default.
+ Upon clicking it, a section unfolds, and the HTML rendered by the body of this tag
+ appears.
+ <st:attribute name="title">
+ Custom button title.
+ </st:attribute>
+ </st:documentation>
+
+ <tr><td/><td/>
+ <td>
+ <div class="advancedLink">
+ <input type="button" value="${attrs.title != null ? attrs.title : 'Advanced...'}" class="advancedButton" />
+ </div>
+ <table class="advancedBody"><tbody>
+ <!-- this is the hidden portion that hosts the "advanced" part. Contents will be moved to the master table when "advanced..." is clicked -->
+ <d:invokeBody/>
+ </tbody></table>
+ </td>
+ </tr>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/advanced_da.properties b/hudson-core/src/main/resources/lib/form/advanced_da.properties
new file mode 100644
index 00000000..b0f81d79
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_da.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi. Knud Poulsen.
+#
+#
+#**************************************************************************
+
+Advanced=Avanceret
diff --git a/hudson-core/src/main/resources/lib/form/advanced_de.properties b/hudson-core/src/main/resources/lib/form/advanced_de.properties
new file mode 100644
index 00000000..2dcabe08
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_de.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Simon Wiest
+#
+#
+#**************************************************************************
+
+Advanced=Erweitert
diff --git a/hudson-core/src/main/resources/lib/form/advanced_es.properties b/hudson-core/src/main/resources/lib/form/advanced_es.properties
new file mode 100644
index 00000000..e0874555
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_es.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Advanced=Avanzado
diff --git a/hudson-core/src/main/resources/lib/form/advanced_fr.properties b/hudson-core/src/main/resources/lib/form/advanced_fr.properties
new file mode 100644
index 00000000..679959e0
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_fr.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Eric Lefevre-Ardant
+#
+#
+#**************************************************************************
+
+Advanced=Avanc\u00E9
diff --git a/hudson-core/src/main/resources/lib/form/advanced_it.properties b/hudson-core/src/main/resources/lib/form/advanced_it.properties
new file mode 100644
index 00000000..68b99f5d
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_it.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Advanced=Avanzate
diff --git a/hudson-core/src/main/resources/lib/form/advanced_ja.properties b/hudson-core/src/main/resources/lib/form/advanced_ja.properties
new file mode 100644
index 00000000..bffd4042
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_ja.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#**************************************************************************
+
+Advanced=\u9ad8\u5ea6\u306a\u8a2d\u5b9a
diff --git a/hudson-core/src/main/resources/lib/form/advanced_nl.properties b/hudson-core/src/main/resources/lib/form/advanced_nl.properties
new file mode 100644
index 00000000..1c089d9b
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_nl.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, id:sorokh
+#
+#
+#**************************************************************************
+
+Advanced=Uitgebreid...
diff --git a/hudson-core/src/main/resources/lib/form/advanced_pt_BR.properties b/hudson-core/src/main/resources/lib/form/advanced_pt_BR.properties
new file mode 100644
index 00000000..10bab0b4
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_pt_BR.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva
+#
+#
+#**************************************************************************
+
+Advanced=Avan\u00e7ado
diff --git a/hudson-core/src/main/resources/lib/form/advanced_ru.properties b/hudson-core/src/main/resources/lib/form/advanced_ru.properties
new file mode 100644
index 00000000..82ba4652
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_ru.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Mike Salnikov
+#
+#
+#**************************************************************************
+
+Advanced=\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435
diff --git a/hudson-core/src/main/resources/lib/form/advanced_sv_SE.properties b/hudson-core/src/main/resources/lib/form/advanced_sv_SE.properties
new file mode 100644
index 00000000..22a2aaba
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_sv_SE.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Advanced=Avancerat
diff --git a/hudson-core/src/main/resources/lib/form/advanced_tr.properties b/hudson-core/src/main/resources/lib/form/advanced_tr.properties
new file mode 100644
index 00000000..3a3204f0
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/advanced_tr.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Oguz Dag
+#
+#
+#**************************************************************************
+
+Advanced=Geli\u015fmi\u015f
diff --git a/hudson-core/src/main/resources/lib/form/block.jelly b/hudson-core/src/main/resources/lib/form/block.jelly
new file mode 100644
index 00000000..af5c266b
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/block.jelly
@@ -0,0 +1,27 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Full-width space in the form table that can be filled with arbitrary HTML.
+ </st:documentation>
+ <tr>
+ <td colspan="3">
+ <d:invokeBody />
+ </td>
+ </tr>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/booleanRadio.jelly b/hudson-core/src/main/resources/lib/form/booleanRadio.jelly
new file mode 100644
index 00000000..59c4e87f
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/booleanRadio.jelly
@@ -0,0 +1,39 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010, CollabNet
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#************************************************************************** -->
+
+<?jelly escape-by-default='true'?>
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define"
+ xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Binds a boolean field to two radio buttons that say Yes/No OK/Cancel Top/Bottom.
+
+ <st:attribute name="field">
+ Databinding field.
+ </st:attribute>
+ <st:attribute name="true">
+ Text to be displayed for the 'true' value. Defaults to 'Yes'.
+ </st:attribute>
+ <st:attribute name="false">
+ Text to be displayed for the 'false' value. Defaults to 'No'.
+ </st:attribute>
+ </st:documentation>
+ <f:prepareDatabinding />
+
+ <f:radio name="_.${attrs.field}" value="true" checked="${instance[field]}" />
+ <label class="attach-previous">${attrs['true']?:'%Yes'}</label>
+ <f:radio name="_.${attrs.field}" value="false" checked="${!instance[field]}" />
+ <label class="attach-previous">${attrs['false']?:'%No'}</label>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/booleanRadio_da.properties b/hudson-core/src/main/resources/lib/form/booleanRadio_da.properties
new file mode 100644
index 00000000..970a9be9
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/booleanRadio_da.properties
@@ -0,0 +1,18 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi. Knud Poulsen.
+#
+#
+#**************************************************************************
+
+Yes=Ja
+No=Nej
diff --git a/hudson-core/src/main/resources/lib/form/booleanRadio_es.properties b/hudson-core/src/main/resources/lib/form/booleanRadio_es.properties
new file mode 100644
index 00000000..6089d8ba
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/booleanRadio_es.properties
@@ -0,0 +1,18 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Yes=S\u00ED
+No=No
diff --git a/hudson-core/src/main/resources/lib/form/booleanRadio_ja.properties b/hudson-core/src/main/resources/lib/form/booleanRadio_ja.properties
new file mode 100644
index 00000000..cddab532
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/booleanRadio_ja.properties
@@ -0,0 +1,18 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Seiji Sogabe
+#
+#
+#**************************************************************************
+
+Yes=\u306F\u3044
+No=\u3044\u3044\u3048
diff --git a/hudson-core/src/main/resources/lib/form/booleanRadio_pt_BR.properties b/hudson-core/src/main/resources/lib/form/booleanRadio_pt_BR.properties
new file mode 100644
index 00000000..f54711b3
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/booleanRadio_pt_BR.properties
@@ -0,0 +1,18 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Cleiber Silva
+#
+#
+#**************************************************************************
+
+Yes=Sim
+No=
diff --git a/hudson-core/src/main/resources/lib/form/checkbox.jelly b/hudson-core/src/main/resources/lib/form/checkbox.jelly
new file mode 100644
index 00000000..a026c4b7
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/checkbox.jelly
@@ -0,0 +1,60 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ &lt;input type="checkbox"> tag that takes true/false for @checked, which is more Jelly friendly.
+
+ <st:attribute name="name" />
+ <st:attribute name="checked" />
+ <st:attribute name="value" />
+ <st:attribute name="json">
+ Normally, the submitted JSON will be boolean indicating whether the checkbox was checked or not.
+ This is sometimes inconvenient if you have a UI that lets user select a subset of a set.
+ If this attribute is present, the submitted JSON will have this as a string value if the checkbox is checked,
+ and none otherwise, making the subset selection easier.
+ </st:attribute>
+ <st:attribute name="default">
+ The default value of the check box, in case both @checked and @instance are null.
+ If this attribute is unspecified or null, it defaults to unchecked, otherwise checked.
+ </st:attribute>
+ <st:attribute name="id" />
+ <st:attribute name="onclick" />
+ <st:attribute name="class" />
+ <st:attribute name="negative" />
+ <st:attribute name="field">
+ Used for databinding. TBD.
+ </st:attribute>
+ <st:attribute name="title">
+ If specified, this human readable text will follow the checkbox, and clicking this text also
+ toggles the checkbox.
+ </st:attribute>
+ </st:documentation>
+ <f:prepareDatabinding />
+ <input type="checkbox"
+ name="${attrs.name?:'_.'+attrs.field}"
+ value="${attrs.value}"
+ onclick="${attrs.onclick}" id="${attrs.id}" class="${attrs.negative!=null ? 'negative' : null} ${attrs.checkUrl!=null?'validated':''}"
+ checkUrl="${attrs.checkUrl}" json="${attrs.json}"
+ checked="${(attrs.checked ?: instance[attrs.field] ?: attrs.default) ? 'true' : null}"/>
+ <j:if test="${attrs.title!=null}">
+ <label class="attach-previous">
+ <j:whitespace> </j:whitespace>
+ ${attrs.title}
+ </label>
+ </j:if>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/combobox.jelly b/hudson-core/src/main/resources/lib/form/combobox.jelly
new file mode 100644
index 00000000..bd89abb4
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/combobox.jelly
@@ -0,0 +1,46 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Bruce Chapman, Alan Harder
+#
+#
+#************************************************************************** -->
+
+
+<!-- Tomcat doesn't like us using the attribute called 'class' -->
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Editable drop-down combo box that supports the data binding and AJAX updates.
+ Your descriptor should have the 'doFillXyzItems' method, which returns a ComboBoxModel
+ representation of the items in your combo box, and your instance field should
+ hold the current value.
+
+ <st:attribute name="clazz">
+ Additional CSS classes that the control gets.
+ </st:attribute>
+ <st:attribute name="field">
+ Used for databinding.
+ </st:attribute>
+ </st:documentation>
+
+ <st:once>
+ <script type="text/javascript" src="${request.contextPath}/scripts/utilities.js"/>
+ <script type="text/javascript" src="${request.contextPath}/scripts/combobox.js"/>
+ </st:once>
+
+ <f:prepareDatabinding/>
+ ${descriptor.calcFillSettings(field,attrs)} <!-- this figures out the 'fillUrl' and 'fillDependsOn' attribute -->
+
+ <m:input xmlns:m="jelly:hudson.util.jelly.MorphTagLibrary" ATTRIBUTES="${attrs}" EXCEPT="field items clazz"
+ autocomplete="off" class="combobox2 settings-input ${attrs.clazz}${attrs.checkUrl!=null ? ' validated' : ''}"
+ name="${attrs.name ?: '_.'+attrs.field}"
+ value="${attrs.value ?: instance[attrs.field]}" />
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/description.jelly b/hudson-core/src/main/resources/lib/form/description.jelly
new file mode 100644
index 00000000..d3788095
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/description.jelly
@@ -0,0 +1,28 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Renders a row that shows description text below an input field.
+ </st:documentation>
+ <tr>
+ <td colspan="2"/>
+ <td class="setting-description">
+ <d:invokeBody />
+ </td>
+ </tr>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/descriptorList.jelly b/hudson-core/src/main/resources/lib/form/descriptorList.jelly
new file mode 100644
index 00000000..3edf27d4
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/descriptorList.jelly
@@ -0,0 +1,78 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Generate config pages from a list of Descriptors into a section.
+
+ <st:attribute name="title">
+ Human readable title of the section to be rendered in HTML.
+ </st:attribute>
+ <st:attribute name="descriptors" use="required">
+ hudson.model.Descriptor collection whose configuration page is rendered.
+ </st:attribute>
+ <st:attribute name="instances">
+ Map&lt;Descriptor,Describable> that defines current instances of those descriptors.
+ These are used to fill initial values. Other classes that define the get(Descriptor)
+ method works fine, too, such as DescribableList.
+ </st:attribute>
+ <st:attribute name="field">
+ Either @field or @instances are required (or @field needs to be inherited from the ancestor &lt;entry> elemetn.
+ If field is specified, instances are assumed to be instance[field].
+
+ When this attribute is specified, JSON structure is properly set up so that the databinding
+ can set the field (or pass this collection as a constructor parameter of the same name.
+
+ This is more modern way of doing databinding, and thus preferred approach.
+ </st:attribute>
+ <st:attribute name="targetType">
+ the type for which descriptors will be configured.
+ default to ${it.class}
+ </st:attribute>
+ </st:documentation>
+
+ <j:if test="${attrs.field==null}">
+ <!-- inherit @field if we should do so -->
+ <j:set target="${attrs}" property="field" value="${entry.field}" />
+ </j:if>
+
+ <j:set var="targetType" value="${attrs.targetType ?: it.class}"/>
+ <j:set var="instances" value="${attrs.instances ?: instance[field] ?: descriptor['default'+h.capitalize(field)]}"/>
+
+ <j:if test="${!empty(descriptors) or context['org.apache.commons.jelly.body']!=null}">
+ <f:section title="${attrs.title}" name="${attrs.field?:attrs.name}">
+ <j:if test="${attrs.field!=null}">
+ <tr>
+ <td>
+ <input type="hidden" name="stapler-class-bag" value="true" />
+ </td>
+ </tr>
+ </j:if>
+
+ <d:invokeBody />
+ <j:forEach var="d" items="${descriptors}">
+ <f:optionalBlock name="${d.jsonSafeClassName}" help="${d.helpFile}"
+ title="${d.displayName}" checked="${instances.get(d)!=null}">
+
+ <j:set var="descriptor" value="${d}" />
+ <j:set var="instance" value="${instances.get(d)}" />
+ <st:include from="${d}" page="${d.configPage}" optional="true" />
+ </f:optionalBlock>
+ </j:forEach>
+ </f:section>
+ </j:if>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/descriptorRadioList.jelly b/hudson-core/src/main/resources/lib/form/descriptorRadioList.jelly
new file mode 100644
index 00000000..45914957
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/descriptorRadioList.jelly
@@ -0,0 +1,55 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Generate config pages from a list of Descriptors into a section.
+
+ <st:attribute name="title" use="required">
+ Human readable title of the section to be rendered in HTML.
+ </st:attribute>
+ <st:attribute name="descriptors" use="required">
+ hudson.model.Descriptor collection whose configuration page is rendered.
+ </st:attribute>
+ <st:attribute name="instance" use="required">
+ The currently configured instance used to fill the initial values of the form.
+ </st:attribute>
+ <st:attribute name="targetType">
+ the type for which descriptors will be configured.
+ default to ${it.class}
+ </st:attribute>
+ <st:attribute name="varName" use="required">
+ Used as a variable name as well as block name.
+ </st:attribute>
+ </st:documentation>
+
+ <j:set var="targetType" value="${attrs.targetType?:it.class}"/>
+ <f:section title="${attrs.title}">
+ <d:invokeBody />
+ <j:forEach var="d" items="${descriptors}" varStatus="loop">
+ <f:radioBlock name="${varName}" help="${d.helpFile}" value="${loop.index}"
+ title="${d.displayName}" checked="${instance.descriptor==d}">
+ <j:set var="descriptor" value="${d}" />
+ <j:set var="instance" value="${instance.descriptor==d?instance:null}" />
+ <f:invisibleEntry>
+ <input type="hidden" name="stapler-class" value="${descriptor.clazz.name}"/>
+ </f:invisibleEntry>
+ <st:include from="${d}" page="${d.configPage}" optional="true" />
+ </f:radioBlock>
+ </j:forEach>
+ </f:section>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/dropdownDescriptorSelector.jelly b/hudson-core/src/main/resources/lib/form/dropdownDescriptorSelector.jelly
new file mode 100644
index 00000000..854c4a89
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/dropdownDescriptorSelector.jelly
@@ -0,0 +1,52 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2010, InfraDNA, Inc.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#************************************************************************** -->
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Renders a single &lt;select> control for choosing a Describable.
+ Depending on the currently selected value, its config.jelly will be
+ rendered below &lt;select, allowing the user to configure Describable.
+
+ <st:attribute name="field" use="required">
+ form field name. Used for databinding.
+ </st:attribute>
+ <st:attribute name="title" use="required">
+ Human readable title of this control.
+ </st:attribute>
+ <st:attribute name="descriptors">
+ Collection that lists up all the valid candidate descriptors.
+ If unspecified, inferred from the type of the field.
+ </st:attribute>
+ <st:attribute name="default">
+ If specified, this will be chosen as the default value in case the current selection is null.
+ </st:attribute>
+ </st:documentation>
+
+ <j:set target="${attrs}" property="descriptors" value="${attrs.descriptors ?: descriptor.getPropertyType(instance,attrs.field).getApplicableDescriptors()}" />
+
+ <f:dropdownList name="${attrs.field}" title="${attrs.title}" help="${descriptor.getHelpFile(attrs.field)}">
+ <d:invokeBody />
+
+ <j:set var="current" value="${instance[attrs.field]}"/>
+ <j:forEach var="descriptor" items="${attrs.descriptors}" varStatus="loop">
+ <f:dropdownListBlock value="${loop.index}" title="${descriptor.displayName}"
+ selected="${current.descriptor==descriptor || (current==null and descriptor==attrs.default)}" staplerClass="${descriptor.clazz.name}">
+ <j:set var="instance" value="${current.descriptor==descriptor ? current : null}" />
+ <st:include from="${descriptor}" page="${descriptor.configPage}" />
+ </f:dropdownListBlock>
+ </j:forEach>
+ </f:dropdownList>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/dropdownList.jelly b/hudson-core/src/main/resources/lib/form/dropdownList.jelly
new file mode 100644
index 00000000..ce6e7fb3
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/dropdownList.jelly
@@ -0,0 +1,73 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Stephen Connolly
+#
+#
+#************************************************************************** -->
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout"
+ xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Foldable block expanded when the corresponding item is selected in the drop-down list.
+
+ <st:attribute name="title">
+ Human readable title text of this drop-down listbox.
+ Shown in the same position as &lt;f:entry title="..." />
+ </st:attribute>
+ <st:attribute name="name" use="required">
+ name of the drop-down list.
+ </st:attribute>
+ <st:attribute name="help">
+ Path to the inline help. See &lt;f:entry help="..." />
+ </st:attribute>
+ </st:documentation>
+
+ <tr>
+ <td class="setting-leftspace"><st:nbsp/></td>
+ <td class="setting-name">
+ ${attrs.title}
+ </td>
+ <td class="setting-main">
+ <!-- create drop-down list -->
+ <select class="setting-input dropdownList" onchange="updateDropDownList(this)">
+ <j:set var="dropdownListMode" value="createSelectField"/>
+ <d:invokeBody/>
+ </select>
+ </td>
+ <j:if test="${attrs.help!=null}">
+ <td class="setting-help">
+ <a href="#" class="help-button" helpURL="${rootURL}${attrs.help}"><img src="${imagesURL}/16x16/help.gif"
+ alt="Help for feature: ${title}"/></a>
+ </td>
+ </j:if>
+ </tr>
+
+ <!-- generate the actual form entries -->
+ <tr class="dropdownList-container">
+ <td colspan="2"/>
+ <td colspan="2">
+ <table width="100%" name="${name}">
+ <j:set var="dropdownListMode" value="generateEntries"/>
+ <d:invokeBody/>
+ </table>
+ </td>
+ </tr>
+
+ <j:if test="${!empty(attrs.description)}">
+ <f:description>
+ ${description}
+ </f:description>
+ </j:if>
+ <j:if test="${attrs.help!=null}">
+ <f:helpArea/>
+ </j:if>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/dropdownListBlock.jelly b/hudson-core/src/main/resources/lib/form/dropdownListBlock.jelly
new file mode 100644
index 00000000..ac76c77e
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/dropdownListBlock.jelly
@@ -0,0 +1,50 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Foldable block expanded when the corresponding item is selected in the drop-down list.
+
+ <st:attribute name="value" use="required">
+ value of the list item. set to &lt;option value="...">
+ </st:attribute>
+ <st:attribute name="title" use="required">
+ human readable text displayed for this list item.
+ </st:attribute>
+ <st:attribute name="selected" type="boolean">
+ is this value initially selected?
+ </st:attribute>
+ <st:attribute name="staplerClass">
+ provide hint for stapler data binding.
+ typically set to ${descriptor.clazz.name} if dropdownList is for a list of descriptors.
+ </st:attribute>
+ </st:documentation>
+ <j:choose>
+ <j:when test="${dropdownListMode=='createSelectField'}">
+ <f:option selected="${attrs.selected}" value="${value}">${title}</f:option>
+ </j:when>
+ <j:when test="${dropdownListMode=='generateEntries'}">
+ <!-- sandwich them by markers so that we know what to show/hide -->
+ <tr class="dropdownList-start" style="display:none">
+ <j:if test="${!empty(attrs.staplerClass)}">
+ <td><input type="hidden" name="stapler-class" value="${attrs.staplerClass}"/></td>
+ </j:if>
+ </tr>
+ <d:invokeBody />
+ <tr class="dropdownList-end" style="display:none" />
+ </j:when>
+ </j:choose>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/editableComboBox.jelly b/hudson-core/src/main/resources/lib/form/editableComboBox.jelly
new file mode 100644
index 00000000..cf1d28d2
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/editableComboBox.jelly
@@ -0,0 +1,53 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Bruce Chapman, Alan Harder
+#
+#
+#************************************************************************** -->
+
+
+<!-- Tomcat doesn't like us using the attribute called 'class' -->
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Editable drop-down combo box. Deprecated as of 1.356. Use f:combobox and databinding instead.
+
+ <st:attribute name="clazz">
+ Additional CSS classes that the control gets.
+ </st:attribute>
+ <st:attribute name="items">
+ List of possible values. Either this or nested &lt;f:editableComboBoxValue/>s are required.
+ </st:attribute>
+ <st:attribute name="field">
+ Used for databinding.
+ </st:attribute>
+ </st:documentation>
+
+ <st:once>
+ <script type="text/javascript" src="${request.contextPath}/scripts/utilities.js"/>
+ <script type="text/javascript" src="${request.contextPath}/scripts/combobox.js"/>
+ </st:once>
+
+ <f:prepareDatabinding/>
+
+ <input id="${attrs.id}" autocomplete="off" class="combobox ${attrs.clazz}${attrs.checkUrl!=null ? ' validated' : ''}"
+ name="${attrs.name ?: '_.'+attrs.field}"
+ value="${attrs.value ?: instance[attrs.field]}"
+ checkUrl="${attrs.checkUrl}" />
+ <div class="combobox-values">
+ <j:if test="${items!=null}">
+ <j:forEach var="v" items="${items}">
+ <f:editableComboBoxValue value="${v}" />
+ </j:forEach>
+ </j:if>
+ <d:invokeBody />
+ </div>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/editableComboBoxValue.jelly b/hudson-core/src/main/resources/lib/form/editableComboBoxValue.jelly
new file mode 100644
index 00000000..6087d5e4
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/editableComboBoxValue.jelly
@@ -0,0 +1,25 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Alan Harder
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler">
+ <st:documentation>
+ Used inside &lt;f:editableComboBox/> to specify one value of a combobox.
+ Normally one would use multiple values.
+ <st:attribute name="value" use="required" />
+ </st:documentation>
+ <div value="${value}"/>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/entry.jelly b/hudson-core/src/main/resources/lib/form/entry.jelly
new file mode 100644
index 00000000..f594f5ce
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/entry.jelly
@@ -0,0 +1,83 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ An entry of the &lt;f:form>, which is one logical row (that consists of
+ several &lt;TR> tags.
+
+ One entry normally host one control.
+
+ <st:attribute name="title">
+ Name of the entry. Think of this like a label for the control.
+ </st:attribute>
+ <st:attribute name="field">
+ Used for the databinding. TBD. When this attribute
+ is specified, @help is inferred, and nested input controls don't need
+ the @field nor @name.
+ </st:attribute>
+ <st:attribute name="description">
+ If it's not obvious to the user as to what the control expects,
+ specify some description text (which currently gets rendered as
+ small text under the control, but that may change.)
+
+ This text shouldn't get too long, and in recent Hudson, this feature
+ is somewhat de-emphasized, in favor of the inline foldable help page
+ specified via @help.
+ </st:attribute>
+ <st:attribute name="help">
+ URL to the HTML page. When this attribute is specified, the entry gets
+ a (?) icon on the right, and if the user clicks it, the contents of the
+ given URL is rendered as a box below the entry.
+
+ The URL should return an HTML document wrapped in a &lt;div> tag.
+ The URL is interpreted to be rooted at the context path of Hudson,
+ so it's normally something like "/plugin/foobar/help/abc.html".
+ </st:attribute>
+ </st:documentation>
+ <j:if test="${attrs.help==null and attrs.field!=null}">
+ <!-- infer the help page from the current descriptor and field if possible -->
+ <j:set target="${attrs}" property="help"
+ value="${descriptor.getHelpFile(attrs.field)}" />
+ </j:if>
+ <!-- expose this so that we can look up the @field value later from prepareDatabinding.jelly -->
+ <j:set var="entry" value="${attrs}" />
+ <tr>
+ <td class="setting-leftspace"><st:nbsp/></td>
+ <td class="setting-name">
+ ${attrs.title}
+ </td>
+ <td class="setting-main">
+ <d:invokeBody />
+ </td>
+ <j:if test="${attrs.help!=null}">
+ <td class="setting-help">
+ <a href="#" class="help-button" helpURL="${rootURL}${attrs.help}"><img src="${imagesURL}/16x16/help.gif" alt="Help for feature: ${title}" /></a>
+ </td>
+ </j:if>
+ </tr>
+ <!-- used to display the form validation error -->
+ <tr class="validation-error-area"><td colspan="2" /><td /></tr>
+ <j:if test="${!empty(attrs.description)}">
+ <f:description>
+ ${description}
+ </f:description>
+ </j:if>
+ <j:if test="${attrs.help!=null}">
+ <f:helpArea />
+ </j:if>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/enum.jelly b/hudson-core/src/main/resources/lib/form/enum.jelly
new file mode 100644
index 00000000..32e798ba
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/enum.jelly
@@ -0,0 +1,35 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Binds an enum field to a &lt;select> element.
+ The body of this tag is evaluated for each enum value,
+ which is passed as 'it'.
+
+ <st:attribute name="field">
+ Used for databinding. TBD.
+ </st:attribute>
+ </st:documentation>
+ <select class="setting-input" name="${field}">
+ <j:forEach var="it" items="${descriptor.getPropertyType(instance,field).enumConstants}">
+ <f:option value="${it.name()}" selected="${it==instance[field]}">
+ <d:invokeBody />
+ </f:option>
+ </j:forEach>
+ </select>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/enumSet.jelly b/hudson-core/src/main/resources/lib/form/enumSet.jelly
new file mode 100644
index 00000000..8146a285
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/enumSet.jelly
@@ -0,0 +1,34 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Binds a set of Enum to a list of checkboxes, each with the label taken from enum Enum.toString()
+ Should be used inside an &lt;f:entry field='...'> element.
+ <st:attribute name="field" implicit="true">
+ Used for databinding.
+ </st:attribute>
+ </st:documentation>
+ <div name="${field}">
+ <j:forEach var="e" items="${descriptor.getPropertyType(instance,field).itemType.enumConstants}">
+ <div>
+ <input type="checkbox" name="_.${e.name()}" checked="${instance[field].contains(e)?'true':null}"/>
+ <label class="attach-previous">${e}</label>
+ </div>
+ </j:forEach>
+ </div>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox.jelly b/hudson-core/src/main/resources/lib/form/expandableTextbox.jelly
new file mode 100644
index 00000000..1cb4a4bd
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox.jelly
@@ -0,0 +1,74 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Seiji Sogabe
+#
+#
+#************************************************************************** -->
+
+
+<!--
+ TODO: support @checkUrl
+-->
+<j:jelly xmlns:j="jelly:core" xmlns:d="jelly:define" xmlns:f="/lib/form" xmlns:st="jelly:stapler">
+ <st:documentation>
+ single-line textbox that can be expanded into a multi-line textarea.
+
+ This control is useful for a field that expects multiple whitespaec-separated tokens
+ (such as URLs, glob patterns, etc.) When the user only enters a few tokens,
+ they can keep it as a single line to save space, but to enter a large number of values,
+ this can be turned into textarea for better visibility.
+
+ If the initial value is already multi-line text, the control starts with
+ textarea.
+
+ On the server side, your program is responsible for treating ' ', \t, \r, and \n for
+ separators. (StringTokenizer would do this.)
+
+ <st:attribute name="field">
+ Used for databinding. TBD.
+ </st:attribute>
+ <st:attribute name="name">
+ This becomes @name of the &lt;input> tag.
+ If @field is specified, this value is inferred from it.
+ </st:attribute>
+ <st:attribute name="value">
+ The initial value of the field. This becomes the @value of the &lt;input> tag.
+ If @field is specified, the current property from the "instance" object
+ will be set as the initial value automatically,
+ which is the recommended approach.
+ </st:attribute>
+ </st:documentation>
+ <f:prepareDatabinding />
+ <j:set var="value" value="${attrs.value?:instance[attrs.field]}" />
+ <j:choose>
+ <j:when test="${h.isMultiline(value)}">
+ <!-- multiline text area to begin with -->
+ <f:textarea name='${attrs.name}' value="${value}" field="${attrs.field}"/>
+ </j:when>
+ <j:otherwise>
+ <!-- single line textbox with expand button -->
+ <table border="0" style="width:100%" cellspacing="0" cellpadding="0">
+ <tr>
+ <td width="*">
+ <j:set var="name" value="${attrs.name ?: '_.'+attrs.field}" />
+ <input class="setting-input" type="text"
+ name="${name}" value="${value}"
+ id="textarea.${name}" />
+ </td><td width="1">
+ <input type="button" value="&#x25BC;" onclick="expandTextArea(this,'textarea.${name}')"
+ tooltip="${%tooltip}"/>
+ </td>
+ </tr>
+ </table>
+ </j:otherwise>
+ </j:choose>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox.properties b/hudson-core/src/main/resources/lib/form/expandableTextbox.properties
new file mode 100644
index 00000000..940d4b54
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox.properties
@@ -0,0 +1,19 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Seiji Sogabe
+#
+#
+#**************************************************************************
+
+tooltip=\
+ Click to expand to multiple lines<br />where you can use new lines instead of space.<br />\
+ To revert back to single line, write everything in one line then submit.
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox_da.properties b/hudson-core/src/main/resources/lib/form/expandableTextbox_da.properties
new file mode 100644
index 00000000..7eaabd4c
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox_da.properties
@@ -0,0 +1,18 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi. Knud Poulsen.
+#
+#
+#**************************************************************************
+
+tooltip=Klik for at udvide til flere linjer<br />hvor du kan bruge nye linjer i stedet for mellemrum.<br />\
+For at skifte tilbage til en linje skriv alt p\u00e5 en linje og gem.
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox_de.properties b/hudson-core/src/main/resources/lib/form/expandableTextbox_de.properties
new file mode 100644
index 00000000..edd1a3b0
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox_de.properties
@@ -0,0 +1,20 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2011 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#**************************************************************************
+
+tooltip=\
+ Klicken Sie hier f\u00FCr ein gr\u00F6\u00DFeres Texteingabefeld,<br/>\
+ in dem Sie Zeilenvorsch\u00FCbe statt Leerzeichen<br/>\
+ verwenden k\u00F6nnen. Um wieder zu einer Textzeile<br/>\
+ zur\u00FCckzukehren, schreiben Sie alles in eine Zeile,<br/>\
+ bevor Sie Ihre \u00C4nderungen \u00FCbernehmen.
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox_es.properties b/hudson-core/src/main/resources/lib/form/expandableTextbox_es.properties
new file mode 100644
index 00000000..f35b7271
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox_es.properties
@@ -0,0 +1,20 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Seiji Sogabe
+#
+#
+#**************************************************************************
+
+tooltip=\
+ Pulse para usar m\u00FAltiples l\u00EDneas<br />y usar as\u00ED ''nuevas lineas'' en lugar de ''espacios''.<br />\
+ Para volver a usar s\u00F3lo una l\u00EDnea, escribe todo en una l\u00EDnea y despu\u00E9s env\u00EDa.
+
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox_fr.properties b/hudson-core/src/main/resources/lib/form/expandableTextbox_fr.properties
new file mode 100644
index 00000000..4868fae8
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox_fr.properties
@@ -0,0 +1,19 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Eric Lefevre-Ardant
+#
+#
+#**************************************************************************
+
+tooltip=\
+ Cliquez pour obtenir des lignes multiples<br />et pouvoir utiliser des nouvelles lignes plut\u00F4t que des espaces.<br />\
+ Pour retourner sur une ligne unique, \u00E9crivez tout sur une seule ligne et envoyez vos changements.
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox_ja.properties b/hudson-core/src/main/resources/lib/form/expandableTextbox_ja.properties
new file mode 100644
index 00000000..da11c5d1
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox_ja.properties
@@ -0,0 +1,19 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Seiji Sogabe
+#
+#
+#**************************************************************************
+
+tooltip=\
+ \u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u8907\u6570\u884C\u306B\u62E1\u5F35\u3057\u307E\u3059\u3002<br />\u30B9\u30DA\u30FC\u30B9\u306E\u4EE3\u308F\u308A\u306B\u6539\u884C\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002<br />\
+ 1\u884C\u306B\u623B\u3059\u306B\u306F\u30011\u884C\u306B\u3059\u3079\u3066\u3092\u8A18\u8FF0\u3057\u3066\u9001\u4FE1\u3057\u3066\u304F\u3060\u3055\u3044\u3002
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox_nl.properties b/hudson-core/src/main/resources/lib/form/expandableTextbox_nl.properties
new file mode 100644
index 00000000..deeb33a5
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox_nl.properties
@@ -0,0 +1,19 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Wim Rosseel
+#
+#
+#**************************************************************************
+
+tooltip=\
+ Klik om meerdere lijnen te krijgen, <br />waarbij u nieuwe lijnen kunt gebruiken i.p.v. spaties.<br/> \
+ Om terug te keren naar enkelelijnsmodus, geeft u alles in op 1 lijn en stuurt dit door.
diff --git a/hudson-core/src/main/resources/lib/form/expandableTextbox_pt_BR.properties b/hudson-core/src/main/resources/lib/form/expandableTextbox_pt_BR.properties
new file mode 100644
index 00000000..6b76db9a
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/expandableTextbox_pt_BR.properties
@@ -0,0 +1,18 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Cleiber Silva
+#
+#
+#**************************************************************************
+
+tooltip=Clique para expandir em m\u00faltiplas linhas <br />onde voc\u00ea pode usar novas linhas em vez de espa\u00e7o.<br />\
+Para reverter de volta em uma linha, escreva tudo em uma linha ent\u00e3o envie.
diff --git a/hudson-core/src/main/resources/lib/form/form.jelly b/hudson-core/src/main/resources/lib/form/form.jelly
new file mode 100644
index 00000000..801d0aee
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/form.jelly
@@ -0,0 +1,49 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Outer-most tag of the entire form taglib, that generates &lt;form> element.
+
+ <st:attribute name="action" use="required">
+ @action of the form field. The URL where the submission is sent.
+ </st:attribute>
+ <st:attribute name="method" use="required">
+ Submission method. Either post or get.
+ </st:attribute>
+ <st:attribute name="name" use="required">
+ @name of the form. In HTML this is not a mandatory attribute,
+ but in Hudson you should have it for testing and page scraping,
+ so this attribute is marked required.
+ </st:attribute>
+ <st:attribute name="enctype">
+ @enctype of the &lt;form> HTML element.
+ </st:attribute>
+ <st:attribute name="target">
+ @target of the &lt;form> HTML element. Works like &lt;a target="...">
+ and controls which window the result of the submission goes to.
+ </st:attribute>
+ <st:attribute name="tableClass">
+ Optional class attribute for &lt;table> that is created in the form.
+ </st:attribute>
+ </st:documentation>
+ <form action="${action}" method="${method}" enctype="${attrs.enctype}" name="${name}" target="${attrs.target}">
+ <table width="100%" class="${attrs.tableClass}">
+ <d:invokeBody/>
+ </table>
+ </form>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/helpArea.jelly b/hudson-core/src/main/resources/lib/form/helpArea.jelly
new file mode 100644
index 00000000..512b95c3
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea.jelly
@@ -0,0 +1,29 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Seiji Sogabe
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Place holder to lazy-load help text via AJAX.
+ </st:documentation>
+ <tr class="help-area">
+ <td/>
+ <td colspan="2">
+ <div class="help">${%Loading...}</div>
+ </td>
+ <td/>
+ </tr>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_da.properties b/hudson-core/src/main/resources/lib/form/helpArea_da.properties
new file mode 100644
index 00000000..58ccaf3d
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_da.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi. Knud Poulsen.
+#
+#
+#**************************************************************************
+
+Loading...=Indl\u00e6ser...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_de.properties b/hudson-core/src/main/resources/lib/form/helpArea_de.properties
new file mode 100644
index 00000000..47e3638e
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_de.properties
@@ -0,0 +1,15 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2011 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#**************************************************************************
+
+Loading...=Daten werden geladen...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_es.properties b/hudson-core/src/main/resources/lib/form/helpArea_es.properties
new file mode 100644
index 00000000..9344d1d6
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_es.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=Cargando...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_fi.properties b/hudson-core/src/main/resources/lib/form/helpArea_fi.properties
new file mode 100644
index 00000000..a352e5b0
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_fi.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=Ladataan...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_fr.properties b/hudson-core/src/main/resources/lib/form/helpArea_fr.properties
new file mode 100644
index 00000000..9836d1c3
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_fr.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Eric Lefevre-Ardant
+#
+#
+#**************************************************************************
+
+Loading...=Chargement...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_hu.properties b/hudson-core/src/main/resources/lib/form/helpArea_hu.properties
new file mode 100644
index 00000000..0f95dd20
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_hu.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=Bet\u00F6lt\u00E9s...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_it.properties b/hudson-core/src/main/resources/lib/form/helpArea_it.properties
new file mode 100644
index 00000000..f8f3ec91
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_it.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=Carico...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_ja.properties b/hudson-core/src/main/resources/lib/form/helpArea_ja.properties
new file mode 100644
index 00000000..dd6a3c34
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_ja.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Seiji Sogabe
+#
+#
+#**************************************************************************
+
+Loading...=\u30ED\u30FC\u30C9\u4E2D
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_nb_NO.properties b/hudson-core/src/main/resources/lib/form/helpArea_nb_NO.properties
new file mode 100644
index 00000000..8a0db2bc
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_nb_NO.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=Laster...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_nl.properties b/hudson-core/src/main/resources/lib/form/helpArea_nl.properties
new file mode 100644
index 00000000..ff45f3a4
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_nl.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Wim Rosseel
+#
+#
+#**************************************************************************
+
+Loading...=Ophalen...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_pt_BR.properties b/hudson-core/src/main/resources/lib/form/helpArea_pt_BR.properties
new file mode 100644
index 00000000..3a664e46
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_pt_BR.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Cleiber Silva
+#
+#
+#**************************************************************************
+
+Loading...=Carregando...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_ru.properties b/hudson-core/src/main/resources/lib/form/helpArea_ru.properties
new file mode 100644
index 00000000..93b5cf41
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_ru.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_sv_SE.properties b/hudson-core/src/main/resources/lib/form/helpArea_sv_SE.properties
new file mode 100644
index 00000000..1c30ef9b
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_sv_SE.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=Laddar...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_zh_CN.properties b/hudson-core/src/main/resources/lib/form/helpArea_zh_CN.properties
new file mode 100644
index 00000000..e9137fa4
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_zh_CN.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=\u8BFB\u53D6\u4E2D...
diff --git a/hudson-core/src/main/resources/lib/form/helpArea_zh_TW.properties b/hudson-core/src/main/resources/lib/form/helpArea_zh_TW.properties
new file mode 100644
index 00000000..489bf286
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/helpArea_zh_TW.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Loading...=\u8F09\u5165\u4E2D...
diff --git a/hudson-core/src/main/resources/lib/form/hetero-list.jelly b/hudson-core/src/main/resources/lib/form/hetero-list.jelly
new file mode 100644
index 00000000..aff9cd60
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/hetero-list.jelly
@@ -0,0 +1,111 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:local="local">
+ <st:documentation>
+ Outer most tag for creating a heterogeneous list, where the user can choose arbitrary number of
+ arbitrary items from the given list of descriptors, and configure them independently.
+
+ The submission can be data-bound into List&lt;T> where T is the common base type for the describable instances.
+
+ <st:attribute name="name" use="required">
+ form name that receives an array for all the items in the heterogeneous list.
+ </st:attribute>
+ <st:attribute name="items" use="required" type="java.util.Collection">
+ existing items to be displayed. Something iterable, such as array or collection.
+ </st:attribute>
+ <st:attribute name="descriptors" use="required">
+ all types that the user can add.
+ </st:attribute>
+ <st:attribute name="addCaption">
+ caption of the 'add' button.
+ </st:attribute>
+ <st:attribute name="deleteCaption">
+ caption of the 'delete' button.
+ </st:attribute>
+ <st:attribute name="targetType">
+ the type for which descriptors will be configured. Defaults to ${it.class} (optional)
+ </st:attribute>
+ <st:attribute name="hasHeader">
+ For each item, add a caption from descriptor.getDisplayName().
+ This also activates drag&amp;drop (where the header is a grip), and help text support.
+ </st:attribute>
+ </st:documentation>
+ <d:taglib uri="local">
+ <d:tag name="body">
+ <table style="width:100%">
+ <j:set var="help" value="${descriptor.helpFile}" />
+ <j:if test="${hasHeader}">
+ <tr>
+ <td colspan="3">
+ <div class="dd-handle">
+ <b>${descriptor.displayName}</b>
+ </div>
+ </td>
+ <j:if test="${help!=null}">
+ <td>
+ <a href="#" class="help-button" helpURL="${rootURL}${help}"><img src="${imagesURL}/16x16/help.gif" alt="[help]"/></a>
+ </td>
+ </j:if>
+ </tr>
+ <!-- TODO: help support is unintuitive; people should be able to see help from drop-down menu -->
+ <j:if test="${help!=null}">
+ <f:helpArea />
+ </j:if>
+ </j:if>
+ <!-- optional added to keep from breaking page rendering when
+ a descriptor doesn't have a config.jelly. -->
+ <st:include from="${descriptor}"
+ page="${descriptor.configPage}" optional="true" />
+ <f:block>
+ <div align="right">
+ <input type="hidden" name="stapler-class" value="${descriptor.clazz.name}" />
+ <f:repeatableDeleteButton value="${attrs.deleteCaption}" />
+ </div>
+ </f:block>
+ </table>
+ <input type="hidden" name="kind" value="${descriptor.class.name}" />
+ </d:tag>
+ </d:taglib>
+
+ <j:set var="targetType" value="${attrs.targetType?:it.class}"/>
+ <div class="hetero-list-container${hasHeader?' with-drag-drop':''}">
+ <!-- display existing items -->
+ <j:forEach var="i" items="${attrs.items}">
+ <j:set var="descriptor" value="${i.descriptor}" />
+ <j:set var="instance" value="${i}" />
+ <div name="${attrs.name}" class="repeated-chunk">
+ <local:body deleteCaption="${attrs.deleteCaption}" />
+ </div>
+ </j:forEach>
+
+ <div class="repeatable-insertion-point" />
+ <div class="prototypes to-be-removed">
+ <!-- render one prototype for each type -->
+ <j:set var="instance" value="${null}" />
+ <j:forEach var="descriptor" items="${attrs.descriptors}" varStatus="loop">
+ <div name="${attrs.name}" title="${descriptor.displayName}" tooltip="${descriptor.tooltip}">
+ <local:body deleteCaption="${attrs.deleteCaption}" />
+ </div>
+ </j:forEach>
+ </div>
+
+ <div>
+ <input type="button" value="${attrs.addCaption?:'%Add'}" class="hetero-list-add" />
+ </div>
+ </div>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/hetero-list_da.properties b/hudson-core/src/main/resources/lib/form/hetero-list_da.properties
new file mode 100644
index 00000000..2707967a
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/hetero-list_da.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi. Knud Poulsen.
+#
+#
+#**************************************************************************
+
+Add=Tilf\u00f8j
diff --git a/hudson-core/src/main/resources/lib/form/hetero-list_de.properties b/hudson-core/src/main/resources/lib/form/hetero-list_de.properties
new file mode 100644
index 00000000..d6aa7f53
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/hetero-list_de.properties
@@ -0,0 +1,15 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2011 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#**************************************************************************
+
+Add=Hinzuf\u00FCgen
diff --git a/hudson-core/src/main/resources/lib/form/hetero-list_es.properties b/hudson-core/src/main/resources/lib/form/hetero-list_es.properties
new file mode 100644
index 00000000..bdd1dca0
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/hetero-list_es.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Add=A\u00F1adir
diff --git a/hudson-core/src/main/resources/lib/form/hetero-list_ja.properties b/hudson-core/src/main/resources/lib/form/hetero-list_ja.properties
new file mode 100644
index 00000000..d9c1e298
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/hetero-list_ja.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Seiji Sogabe
+#
+#
+#**************************************************************************
+
+Add=\u8FFD\u52A0
diff --git a/hudson-core/src/main/resources/lib/form/hetero-list_pt_BR.properties b/hudson-core/src/main/resources/lib/form/hetero-list_pt_BR.properties
new file mode 100644
index 00000000..2a0c2220
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/hetero-list_pt_BR.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Cleiber Silva
+#
+#
+#**************************************************************************
+
+Add=Adicionar
diff --git a/hudson-core/src/main/resources/lib/form/hetero-list_zh_TW.properties b/hudson-core/src/main/resources/lib/form/hetero-list_zh_TW.properties
new file mode 100644
index 00000000..d6dd5fb8
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/hetero-list_zh_TW.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Add=\u65B0\u589E
diff --git a/hudson-core/src/main/resources/lib/form/hetero-radio.jelly b/hudson-core/src/main/resources/lib/form/hetero-radio.jelly
new file mode 100644
index 00000000..6792f0fd
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/hetero-radio.jelly
@@ -0,0 +1,48 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:local="local">
+ <st:documentation>
+ Sibling of hetero-list, which only allows the user to pick one type from the list of descriptors and configure it.
+
+ <st:attribute name="field" use="required">
+ Field name in the parent object where databinding happens.
+ </st:attribute>
+ <st:attribute name="descriptors" use="required">
+ all types that the user can add.
+ </st:attribute>
+ </st:documentation>
+
+ <f:prepareDatabinding />
+
+ <table style="width:100%">
+ <j:set var="currentInstance" value="${instance[field]}" />
+ <j:set var="currentDescriptor" value="${currentInstance.descriptor}" />
+ <j:forEach var="d" items="${descriptors}" varStatus="loop">
+ <f:radioBlock name="${field}" help="${d.helpFile}" value="${loop.index}"
+ title="${d.displayName}" checked="${currentDescriptor==d}">
+ <j:set var="descriptor" value="${d}" />
+ <j:set var="instance" value="${currentDescriptor==d?currentInstance:null}" />
+ <st:include from="${d}" page="${d.configPage}" optional="true" />
+
+ <f:invisibleEntry><!-- this tells Stapler which block is for which class -->
+ <input type="hidden" name="stapler-class" value="${d.clazz.name}" />
+ </f:invisibleEntry>
+ </f:radioBlock>
+ </j:forEach>
+ </table>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/invisibleEntry.jelly b/hudson-core/src/main/resources/lib/form/invisibleEntry.jelly
new file mode 100644
index 00000000..02b45187
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/invisibleEntry.jelly
@@ -0,0 +1,27 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2010, InfraDNA, Inc.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Invisible &lt;f:entry> type. Useful for adding hidden field values.
+ </st:documentation>
+ <tr style="display:none">
+ <td>
+ <d:invokeBody />
+ </td>
+ </tr>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/nested.jelly b/hudson-core/src/main/resources/lib/form/nested.jelly
new file mode 100644
index 00000000..fc49bf5b
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/nested.jelly
@@ -0,0 +1,28 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<!--
+ Used to display indented nested portion of the form
+-->
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <tr>
+ <td colspan="2"/>
+ <td colspan="2">
+ <d:invokeBody />
+ </td>
+ </tr>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/option.jelly b/hudson-core/src/main/resources/lib/form/option.jelly
new file mode 100644
index 00000000..7b8a0e80
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/option.jelly
@@ -0,0 +1,36 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+<?jelly escape-by-default='true'?>
+<j:jelly xmlns:j="jelly:core" xmlns:d="jelly:define" xmlns:st="jelly:stapler">
+ <st:documentation>
+ &lt;option> tag for the &lt;select> element that takes true/false for selected.
+
+ <st:attribute name="value">
+ The value to be sent when the form is submitted.
+ If omitted, the body of the tag will be placed in the value attribute as well
+ (due to the browser incompatibility between IE and Firefox, value attribute
+ must be included).
+ </st:attribute>
+ <st:attribute name="selected" type="boolean">
+ If true, the option value appears as selected.
+ </st:attribute>
+ </st:documentation>
+ <!-- No escape/encode to avoid double-encoding if used in value attribute below -->
+ <j:set var="optionBody" encode="false"><d:invokeBody escapeText="false"/></j:set>
+ <option value="${attrs.value!=null?attrs.value:optionBody}"
+ selected="${attrs.selected?'true':null}">${optionBody}</option>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/optionalBlock.jelly b/hudson-core/src/main/resources/lib/form/optionalBlock.jelly
new file mode 100644
index 00000000..a6b13d1d
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/optionalBlock.jelly
@@ -0,0 +1,72 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Foldable block that can be expanded to show more controls by checking the checkbox.
+
+ <st:attribute name="name">
+ Name of the checkbox. Can be used by the server to determine
+ if the block is collapsed or expanded at the time of submission.
+
+ Note that when the block is collapsed, none of its child controls will send
+ the values to the server (unlike &lt;f:advanced>)
+ </st:attribute>
+ <st:attribute name="title">
+ Human readable text that follows the checkbox.
+ </st:attribute>
+ <st:attribute name="field">
+ Used for databinding. TBD. Either this or @name/@title combo is required.
+ </st:attribute>
+ <st:attribute name="checked">
+ initial checkbox status. true/false.
+ </st:attribute>
+ <st:attribute name="help">
+ If present, the (?) icon will be rendered on the right to show inline help.
+ See @help for &lt;f:entry>.
+ </st:attribute>
+ <st:attribute name="negative">
+ if present, the foldable section expands when the checkbox is unchecked.
+ </st:attribute>
+ <st:attribute name="inline">
+ if present, the foldable section will not be grouped into a separate JSON object upon submission
+ </st:attribute>
+ </st:documentation>
+ <j:if test="${attrs.help==null}">
+ <!-- infer the help page from the current descriptor and field if possible -->
+ <j:set target="${attrs}" property="help"
+ value="${descriptor.getHelpFile(attrs.field)}" />
+ </j:if>
+
+ <tr class="optional-block-start ${attrs.inline?'':'row-set-start'}" hasHelp="${attrs.help!=null}"><!-- this ID marks the beginning -->
+ <td colspan="3">
+ <f:checkbox name="${attrs.name}" onclick="javascript:updateOptionalBlock(this,true)"
+ negative="${attrs.negative}" checked="${attrs.checked}" field="${attrs.field}" title="${title}" />
+ </td>
+ <j:if test="${attrs.help!=null}">
+ <td>
+ <a href="#" class="help-button" helpURL="${rootURL}${attrs.help}"><img src="${imagesURL}/16x16/help.gif" alt="Help for feature: ${title}" /></a>
+ </td>
+ </j:if>
+ </tr>
+ <j:if test="${attrs.help!=null}">
+ <f:helpArea />
+ </j:if>
+ <d:invokeBody />
+ <!-- end marker -->
+ <tr class="${attrs.inline?'':'row-set-end'} optional-block-end" />
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/optionalProperty.jelly b/hudson-core/src/main/resources/lib/form/optionalProperty.jelly
new file mode 100644
index 00000000..77d9f03d
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/optionalProperty.jelly
@@ -0,0 +1,38 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2010, CollabNet
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Renders inline an optional single-value nested data-bound property of the current instance,
+ by using a &lt;f:optionalBlock>
+
+ This is useful when your object composes another data-bound object, and when that's optional,
+ where the absence of the value is signified as null (in which case the optionalBlock will be drawn unchecked),
+ and the presence of the value.
+ <st:attribute name="field" use="required" />
+ <st:attribute name="title" use="required" />
+ </st:documentation>
+ <!--
+ Without @checked, optionalBlock will try to coarse an obejct to a boolean, which fails,
+ so override @checked manually.
+ -->
+ <f:optionalBlock field="${field}" title="${title}" checked="${instance[field]!=null}">
+ <j:set var="descriptor" value="${app.getDescriptorOrDie(descriptor.getPropertyType(instance,field).clazz)}" />
+ <j:set var="instance" value="${instance[field]}"/>
+ <st:include from="${descriptor}" page="${descriptor.configPage}" />
+ </f:optionalBlock>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/password.jelly b/hudson-core/src/main/resources/lib/form/password.jelly
new file mode 100644
index 00000000..c2feac51
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/password.jelly
@@ -0,0 +1,54 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:d="jelly:define" xmlns:st="jelly:stapler" xmlns:f="/lib/form">
+ <st:documentation>
+ Glorified &lt;input type="password">
+
+ <st:attribute name="field">
+ Used for databinding. TBD.
+ </st:attribute>
+ <st:attribute name="name">
+ This becomes @name of the &lt;input> tag.
+ If @field is specified, this value is inferred from it.
+ </st:attribute>
+ <st:attribute name="value">
+ The initial value of the field. This becomes the @value of the &lt;input> tag.
+ If @field is specified, the current property from the "instance" object
+ will be set as the initial value automatically,
+ which is the recommended approach.
+ </st:attribute>
+ <st:attribute name="clazz">
+ Additional CSS class(es) to add (such as client-side validation clazz="required",
+ "number" or "positive-number"; these may be combined, as clazz="required number").
+ </st:attribute>
+ <st:attribute name="checkUrl">
+ If specified, the value entered in this input field will be checked (via AJAX)
+ against this URL, and errors will be rendered under the text field.
+
+ If @field is specified, this will be inferred automatically,
+ which is the recommended approach.
+ </st:attribute>
+ </st:documentation>
+ <f:prepareDatabinding />
+ <m:input xmlns:m="jelly:hudson.util.jelly.MorphTagLibrary"
+ class="setting-input ${attrs.checkUrl!=null?'validated ':''}${attrs.clazz}"
+ name ="${attrs.name ?: '_.'+attrs.field}"
+ value="${h.getPasswordValue(attrs.value ?: instance[attrs.field])}"
+ type="password"
+ ATTRIBUTES="${attrs}" EXCEPT="field clazz" />
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/prepareDatabinding.jelly b/hudson-core/src/main/resources/lib/form/prepareDatabinding.jelly
new file mode 100644
index 00000000..a5caa5bc
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/prepareDatabinding.jelly
@@ -0,0 +1,30 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define">
+ <st:documentation>
+ Modifies the 'attrs.field' of the parent to inherit @field from the enclosing &lt;f:entry>
+ if available. Also computes the @checkUrl attribute.
+ </st:documentation>
+ <j:set var="pattrs" value="${parentScope.attrs}" />
+ <j:if test="${pattrs.field==null}">
+ <!-- this looks up the ancestor <entry> set by entry.jelly -->
+ <j:set target="${pattrs}" property="field" value="${entry.field}" />
+ </j:if>
+ <j:set target="${pattrs}" property="checkUrl"
+ value="${h.getCheckUrl(pattrs.checkUrl,descriptor,pattrs.field)}" />
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/property.jelly b/hudson-core/src/main/resources/lib/form/property.jelly
new file mode 100644
index 00000000..09719dcf
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/property.jelly
@@ -0,0 +1,34 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2010, CollabNet
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Renders inline a single-value nested data-bound property of the current instance.
+ This is useful when your object composes another data-bound object as a nested object,
+ yet your UI would still like to render it
+
+ <st:attribute name="field" use="required" />
+ <st:attribute name="propertyDescriptor">
+ If specified, bypass the item descriptor inference and use this instead.
+ </st:attribute>
+ </st:documentation>
+ <f:rowSet name="${field}">
+ <j:set var="descriptor" value="${attrs.propertyDescriptor ?: app.getDescriptorOrDie(descriptor.getPropertyType(instance,field).clazz)}" />
+ <j:set var="instance" value="${instance[field]}"/>
+ <st:include from="${descriptor}" page="${descriptor.configPage}" />
+ </f:rowSet>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/radio.jelly b/hudson-core/src/main/resources/lib/form/radio.jelly
new file mode 100644
index 00000000..6644fe01
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/radio.jelly
@@ -0,0 +1,24 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<!--
+ <input type="radio"> tag that takes true/false for @checked.
+
+ Note that safari doesn't support onchange.
+-->
+<input type="radio" name="${attrs.name}" onclick="${attrs.onclick}" id="${attrs.id}" value="${attrs.value}"
+ checked="${attrs.checked?'true':null}"/>
diff --git a/hudson-core/src/main/resources/lib/form/radioBlock.jelly b/hudson-core/src/main/resources/lib/form/radioBlock.jelly
new file mode 100644
index 00000000..7326df98
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/radioBlock.jelly
@@ -0,0 +1,63 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Radio button with a label that hides additional controls.
+ When checked, those additional controls are displayed. This is useful
+ for presenting mutually exclusive options, where each option comes
+ with a sub-form that provides additional configuration.
+
+ <st:attribute name="name" use="required">
+ Name of the radio button group. Radio buttons that are mutually exclusive need
+ to have the same name.
+ </st:attribute>
+ <st:attribute name="value" use="required">
+ @value of the &lt;input> element.
+ </st:attribute>
+ <st:attribute name="title" use="required">
+ Human readable label text to be rendered next to the radio button.
+ </st:attribute>
+ <st:attribute name="checked" use="required" type="boolean">
+ Should this control be initially checked or not?
+ </st:attribute>
+ <st:attribute name="help">
+ If specified, the (?) help icon will be rendered on the right,
+ for in place help text. See &lt;f:entry> for the details.
+ </st:attribute>
+ </st:documentation>
+
+ <tr class="radio-block-start" hasHelp="${attrs.help!=null}"><!-- this ID marks the beginning -->
+ <td colspan="3">
+ <input type="radio" name="${name}" value="${value}"
+ class="radio-block-control" checked="${checked?'true':null}" />
+ <st:nbsp/>
+ <label class="attach-previous">${title}</label>
+ </td>
+ <j:if test="${attrs.help!=null}">
+ <td>
+ <a href="#" class="help-button" helpURL="${rootURL}${help}"><img src="${imagesURL}/16x16/help.gif" alt="Help for feature: ${title}" /></a>
+ </td>
+ </j:if>
+ </tr>
+ <j:if test="${attrs.help!=null}">
+ <f:helpArea />
+ </j:if>
+ <d:invokeBody />
+ <!-- end marker -->
+ <tr class="radio-block-end" style="display:none" />
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/readOnlyTextbox.jelly b/hudson-core/src/main/resources/lib/form/readOnlyTextbox.jelly
new file mode 100644
index 00000000..4ee1a2c3
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/readOnlyTextbox.jelly
@@ -0,0 +1,66 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Yahoo!, Inc.
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:f="/lib/form">
+ <st:documentation>
+ Generates an input field <tt>&lt;input type="text" ... /></tt> to be
+ used inside &lt;f:entry/>
+
+ <st:attribute name="field">
+ Used for databinding. TBD.
+ </st:attribute>
+ <st:attribute name="name">
+ This becomes @name of the &lt;input> tag.
+ If @field is specified, this value is inferred from it.
+ </st:attribute>
+ <st:attribute name="value">
+ The initial value of the field. This becomes the @value of the &lt;input> tag.
+ If @field is specified, the current property from the "instance" object
+ will be set as the initial value automatically,
+ which is the recommended approach.
+ </st:attribute>
+ <st:attribute name="default">
+ The default value of the text box, in case both @value is and 'instance[field]' is null.
+ </st:attribute>
+ <!-- Tomcat doesn't like us using the attribute called 'class' -->
+ <st:attribute name="clazz">
+ Additional CSS class(es) to add (such as client-side validation clazz="required",
+ "number" or "positive-number"; these may be combined, as clazz="required number").
+ </st:attribute>
+ <st:attribute name="checkMessage">
+ Override the default error message when client-side validation fails,
+ as with clazz="required", etc.
+ </st:attribute>
+ <st:attribute name="checkUrl">
+ If specified, the value entered in this input field will be checked (via AJAX)
+ against this URL, and errors will be rendered under the text field.
+
+ If @field is specified, this will be inferred automatically,
+ which is the recommended approach.
+ </st:attribute>
+ </st:documentation>
+ <f:prepareDatabinding />
+ <input class="setting-input ${attrs.checkUrl!=null?'validated':''} ${attrs.clazz}"
+ name="${attrs.name ?: '_.'+attrs.field}"
+ value="${attrs.value ?: instance[attrs.field] ?: attrs.default}"
+ id="${attrs.id}"
+ type="text"
+ readonly="readonly"
+ checkUrl="${attrs.checkUrl}" checkMethod="${attrs.checkMethod}"
+ checkMessage="${attrs.checkMessage}"
+ onchange="${attrs.onchange}" onkeyup="${attrs.onkeyup}"/>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/repeatable.jelly b/hudson-core/src/main/resources/lib/form/repeatable.jelly
new file mode 100644
index 00000000..6a1a0843
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable.jelly
@@ -0,0 +1,147 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Alan Harder
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation> <![CDATA[]
+ Repeatable blocks used to present UI where the user can configure multiple entries
+ of the same kind (see the Java installations configuration in the system config.)
+
+ This tag works like <j:forEach> and repeatedly evaluate the body so that
+ initially all the items get their own copy. This tag also evaluate the body
+ once more with var=null to create a 'master copy', which is the template entry
+ used when a new copy is inserted.
+
+ h1. HTML structure
+ this tag mainly produces the nested DIVs with CSS classes as follows:
+
+ {noformat}
+ <div class="repeated-container"> // container for the whole thing
+ <div class="repeated-chunk">
+ ... copy 1 ...
+ <div class="repeated-chunk">
+ ... copy 2 ...
+ ...
+ {noformat}
+
+ The 'repeated-chunk' DIVs will also have additional CSS classes that represent
+ their positions among siblings:
+
+ first : first chunk among the siblings
+ last : last chunk among the siblings
+ middle: neither first nor last
+ only : it is the only chunk (automatically get first and last at the same time)
+
+ h1. Usage Note
+ The caller of this tag should define a button to add a new copy and delete
+ the current copy. Such buttons should have 'repeatable-add' CSS class and
+ 'repeatable-delete' CSS class respectively (it can have other CSS classes),
+ so that their event handlers get properly wired up.
+
+ The positional CSS classes on 'repeated-chunk' DIVs (as explained above)
+ can be used to control the visibility of such buttons. For example, this allows
+ you to hide 'delete' button if there's only one item, or only show 'add' button
+ on the last row. There are a few CSS classes already defined in style.css
+ for this purpose.
+ ]]>
+ <st:attribute name="var">
+ variable that receives the item of the current iteration.
+ Accessible from the body. Required unless @field is given.
+ </st:attribute>
+ <st:attribute name="varStatus">
+ Status variable that indicates the loop status.
+ </st:attribute>
+ <st:attribute name="name">
+ name used in the structured form submission. Defaults to the same name as @var.
+ </st:attribute>
+ <st:attribute name="field">
+ Used for the data binding.
+ </st:attribute>
+ <st:attribute name="items">
+ The item collection to loop over. Required unless @field is given.
+ </st:attribute>
+ <st:attribute name="noAddButton">
+ true if the default 'add' button (that adds a new copy) shouldn't be displayed.
+ When you use this attribute,
+ </st:attribute>
+ <st:attribute name="add">
+ If specified, this text will replace the standard "Add" text.
+ </st:attribute>
+ <st:attribute name="minimum">
+ At least provide this number of copies initially.
+ minimum="1" is useful to make sure there's always at least one entry for the user to fill in.
+ </st:attribute>
+ <st:attribute name="header">
+ For each item, add this header.
+ This also activates drag&amp;drop (where the header is a grip).
+ </st:attribute>
+ <st:attributeConstraints expr="((var,items,name?)|field),varStatus?,noAddButton?,add?,minimum?,header?"/>
+ </st:documentation>
+
+
+ <!--
+ If bi-directional binding, fill in the rest of attributes automatically
+ -->
+ <j:choose>
+ <j:when test="${attrs.field!=null}">
+ <j:set var="name" value="${field}"/>
+ <j:set var="var" value="instance"/>
+ <j:set var="items" value="${instance[name]}"/>
+
+ <!-- and expose update descriptor to the body of this tag -->
+ <j:set var="descriptor" value="${descriptor.getPropertyType(instance,field).itemTypeDescriptor}" />
+ </j:when>
+ <j:otherwise>
+ <j:set var="name" value="${attrs.name?:attrs.var}"/>
+ <j:set var="items" value="${attrs.items}"/>
+ </j:otherwise>
+ </j:choose>
+
+ <div class="repeated-container${!empty(header)?' with-drag-drop':''}">
+ <!-- The first DIV is the master copy. -->
+ <div class="repeated-chunk to-be-removed" name="${name}">
+ <j:if test="${!empty(header)}"><div class="dd-handle">${header}</div></j:if>
+ <j:scope>
+ <j:set var="${var}" value="${null}"/>
+ <d:invokeBody />
+ </j:scope>
+ </div>
+ <!-- then populate them for each item -->
+ <j:forEach var="loop" varStatus="loopStatus" items="${items}">
+ <div class="repeated-chunk" name="${name}">
+ <j:set var="${var}" value="${loop}" />
+ <j:if test="${!empty(header)}"><div class="dd-handle">${header}</div></j:if>
+ <d:invokeBody />
+ </div>
+ </j:forEach>
+ <j:remove var="${var}" />
+
+ <j:if test="${minimum &gt; 0}">
+ <j:forEach begin="${h.size2(items)}" end="${minimum-1}" var="i">
+ <j:set var="${var}" value="${null}" />
+ <div class="repeated-chunk" name="${name}">
+ <j:if test="${!empty(header)}"><div class="dd-handle">${header}</div></j:if>
+ <d:invokeBody />
+ </div>
+ </j:forEach>
+ </j:if>
+
+ <div class="repeatable-insertion-point" />
+ <j:if test="${!attrs.noAddButton}">
+ <input type="button" value="${attrs.add?:'%Add'}" class="repeatable-add" />
+ </j:if>
+ </div>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton.jelly b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton.jelly
new file mode 100644
index 00000000..07a949e5
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton.jelly
@@ -0,0 +1,27 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Delete button for the &lt;repeatable> tag.
+
+ <st:attribute name="value">
+ Caption of the button. Defaults to 'Delete'.
+ </st:attribute>
+ </st:documentation>
+ <input type="button" value="${attrs.value ?: '%Delete'}" class="repeatable-delete" />
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_da.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_da.properties
new file mode 100644
index 00000000..fbab03e6
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_da.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi. Knud Poulsen.
+#
+#
+#**************************************************************************
+
+Delete=Slet
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_de.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_de.properties
new file mode 100644
index 00000000..e208bbfe
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_de.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Simon Wiest
+#
+#
+#**************************************************************************
+
+Delete=L\u00F6schen
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_es.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_es.properties
new file mode 100644
index 00000000..8dd2b799
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_es.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Delete=Borrar
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_fi.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_fi.properties
new file mode 100644
index 00000000..7314ae74
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_fi.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Delete=Poista
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_fr.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_fr.properties
new file mode 100644
index 00000000..c1b6ac8c
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_fr.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Eric Lefevre-Ardant
+#
+#
+#**************************************************************************
+
+Delete=Supprimer
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_ja.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_ja.properties
new file mode 100644
index 00000000..0ef5ae7c
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_ja.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#**************************************************************************
+
+Delete=\u524a\u9664
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_nl.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_nl.properties
new file mode 100644
index 00000000..43c37892
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_nl.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, id:sorokh
+#
+#
+#**************************************************************************
+
+Delete=Verwijderen
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_pt_BR.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_pt_BR.properties
new file mode 100644
index 00000000..55a0fd45
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_pt_BR.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva
+#
+#
+#**************************************************************************
+
+Delete=Apagar
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_ru.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_ru.properties
new file mode 100644
index 00000000..38b5c609
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_ru.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Mike Salnikov
+#
+#
+#**************************************************************************
+
+Delete=\u0423\u0434\u0430\u043b\u0438\u0442\u044c
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_tr.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_tr.properties
new file mode 100644
index 00000000..264dc671
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_tr.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Oguz Dag
+#
+#
+#**************************************************************************
+
+Delete=Sil
diff --git a/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_zh_TW.properties b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_zh_TW.properties
new file mode 100644
index 00000000..efe8bde6
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableDeleteButton_zh_TW.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Delete=\u522A\u9664
diff --git a/hudson-core/src/main/resources/lib/form/repeatableProperty.jelly b/hudson-core/src/main/resources/lib/form/repeatableProperty.jelly
new file mode 100644
index 00000000..cefd442d
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatableProperty.jelly
@@ -0,0 +1,70 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2010, CloudBees, Inc.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#************************************************************************** -->
+
+<!--
+ * The MIT License
+ *
+ * Copyright (c) 2010, 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.
+ -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation> <![CDATA[]
+ Data-bound only version of <f:repeatable> that assumes the type pointed by the property is data-bound as well.
+ ]]>
+
+ <st:attribute name="field">
+ Used for the data binding.
+ </st:attribute>
+ <st:attribute name="noAddButton">
+ true if the default 'add' button (that adds a new copy) shouldn't be displayed.
+ When you use this attribute,
+ </st:attribute>
+ <st:attribute name="add">
+ If specified, this text will replace the standard "Add" text.
+ </st:attribute>
+ <st:attribute name="minimum">
+ At least provide this number of copies initially.
+ minimum="1" is useful to make sure there's always at least one entry for the user to fill in.
+ </st:attribute>
+ <st:attribute name="header">
+ For each item, add this header.
+ This also activates drag&amp;drop (where the header is a grip).
+ </st:attribute>
+ </st:documentation>
+
+
+ <f:repeatable field="${attrs.field}" noAddButton="${attrs.noAddButton}" header="${attrs.header}">
+ <table style="width:100%">
+ <st:include page="config.jelly" class="${descriptor.clazz}" />
+ </table>
+ </f:repeatable>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_da.properties b/hudson-core/src/main/resources/lib/form/repeatable_da.properties
new file mode 100644
index 00000000..2707967a
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_da.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi. Knud Poulsen.
+#
+#
+#**************************************************************************
+
+Add=Tilf\u00f8j
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_de.properties b/hudson-core/src/main/resources/lib/form/repeatable_de.properties
new file mode 100644
index 00000000..d3786141
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_de.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Simon Wiest
+#
+#
+#**************************************************************************
+
+Add=Hinzuf\u00FCgen
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_es.properties b/hudson-core/src/main/resources/lib/form/repeatable_es.properties
new file mode 100644
index 00000000..bdd1dca0
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_es.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Add=A\u00F1adir
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_fi.properties b/hudson-core/src/main/resources/lib/form/repeatable_fi.properties
new file mode 100644
index 00000000..397fa9a9
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_fi.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Add=Lis\u00E4\u00E4
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_fr.properties b/hudson-core/src/main/resources/lib/form/repeatable_fr.properties
new file mode 100644
index 00000000..14225f85
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_fr.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Eric Lefevre-Ardant
+#
+#
+#**************************************************************************
+
+Add=Ajouter
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_ja.properties b/hudson-core/src/main/resources/lib/form/repeatable_ja.properties
new file mode 100644
index 00000000..fd8b7145
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_ja.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#**************************************************************************
+
+Add=\u8ffd\u52a0
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_nl.properties b/hudson-core/src/main/resources/lib/form/repeatable_nl.properties
new file mode 100644
index 00000000..57c1ec68
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_nl.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, id:sorokh
+#
+#
+#**************************************************************************
+
+Add=Toevoegen
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_pt_BR.properties b/hudson-core/src/main/resources/lib/form/repeatable_pt_BR.properties
new file mode 100644
index 00000000..77dde227
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_pt_BR.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva
+#
+#
+#**************************************************************************
+
+Add=Adicionar
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_ru.properties b/hudson-core/src/main/resources/lib/form/repeatable_ru.properties
new file mode 100644
index 00000000..b08c1328
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_ru.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Mike Salnikov
+#
+#
+#**************************************************************************
+
+Add=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_sv_SE.properties b/hudson-core/src/main/resources/lib/form/repeatable_sv_SE.properties
new file mode 100644
index 00000000..d7174740
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_sv_SE.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Add=L\u00E4gg till
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_tr.properties b/hudson-core/src/main/resources/lib/form/repeatable_tr.properties
new file mode 100644
index 00000000..6840f2eb
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_tr.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Oguz Dag
+#
+#
+#**************************************************************************
+
+Add=Ekle
diff --git a/hudson-core/src/main/resources/lib/form/repeatable_zh_TW.properties b/hudson-core/src/main/resources/lib/form/repeatable_zh_TW.properties
new file mode 100644
index 00000000..d6dd5fb8
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/repeatable_zh_TW.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Add=\u65B0\u589E
diff --git a/hudson-core/src/main/resources/lib/form/richtextarea.jelly b/hudson-core/src/main/resources/lib/form/richtextarea.jelly
new file mode 100644
index 00000000..63b09e09
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/richtextarea.jelly
@@ -0,0 +1,33 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:l="/lib/layout">
+ <st:documentation>
+ Rich HTML editor from http://developer.yahoo.com/yui/editor/
+ All the attributes are those of the &lt;textarea> tag.
+
+ <st:attribute name="name" use="required"/>
+ <st:attribute name="value" use="required"/>
+ <st:attribute name="id"/>
+ <st:attribute name="style"/>
+ </st:documentation>
+ <textarea name="${attrs.name}" id="${attrs.id}" style="${attrs.style}"
+ class="setting-input rich-editor"
+ rows="${h.determineRows(attrs.value)}">
+ <st:out value="${attrs.value}" />
+ </textarea>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/rowSet.jelly b/hudson-core/src/main/resources/lib/form/rowSet.jelly
new file mode 100644
index 00000000..cf14826f
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/rowSet.jelly
@@ -0,0 +1,43 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Adds @nameRef to all table rows inside this tag, so that when the form is submitted,
+ it gets grouped in one JSON object.
+
+ <st:attribute name="name">
+ if the group head is not available outside, use this attribute to specify the name.
+ @name and @ref are mutually exclusive.
+ </st:attribute>
+ <st:attribute name="ref">
+ id of the thing that serves as the group head, if that's available separately
+ </st:attribute>
+ </st:documentation>
+
+ <j:choose>
+ <j:when test="${attrs.ref==null and attrs.name==null}">
+ <!-- noop -->
+ <d:invokeBody />
+ </j:when>
+ <j:otherwise>
+ <tr ref="${attrs.ref}" class="row-set-start" style="display:none" name="${attrs.name}" />
+ <d:invokeBody />
+ <tr class="row-set-end" />
+ </j:otherwise>
+ </j:choose>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/section.jelly b/hudson-core/src/main/resources/lib/form/section.jelly
new file mode 100644
index 00000000..c9dcab8f
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/section.jelly
@@ -0,0 +1,41 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Section header in the form table.
+
+ <st:attribute name="title" use="required">
+ The section header text.
+ If null is given, the entire &lt;f:section> tag becomes no-op.
+ </st:attribute>
+ <st:attribute name="name">
+ Optional attribute to create a JSON object from this section.
+ </st:attribute>
+ </st:documentation>
+
+ <f:rowSet name="${attrs.name}">
+ <j:if test="${attrs.title!=null}">
+ <f:block>
+ <div style="font-weight:bold; border-bottom: 1px solid black; margin-bottom:0.2em; margin-top:0.4em">
+ ${title}
+ </div>
+ </f:block>
+ </j:if>
+ <d:invokeBody />
+ </f:rowSet>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/select.jelly b/hudson-core/src/main/resources/lib/form/select.jelly
new file mode 100644
index 00000000..3b8224e9
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/select.jelly
@@ -0,0 +1,50 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Bruce Chapman, Alan Harder, CloudBees, Inc.
+#
+#
+#************************************************************************** -->
+
+
+<!-- Tomcat doesn't like us using the attribute called 'class' -->
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ Glorified &lt;select> control that supports the data binding and AJAX updates.
+ Your descriptor should have the 'doFillXyzItems' method, which returns a ListBoxModel
+ representation of the items in your drop-down list box, and your instance field should
+ hold the current value.
+
+ <st:attribute name="clazz">
+ Additional CSS classes that the control gets.
+ </st:attribute>
+ <st:attribute name="field">
+ Used for databinding.
+ </st:attribute>
+ <st:attribute name="default">
+ The default value of the text box, in case both @value is and 'instance[field]' is null.
+ </st:attribute>
+ </st:documentation>
+
+ <f:prepareDatabinding/>
+
+ ${descriptor.calcFillSettings(field,attrs)} <!-- this figures out the 'fillUrl' and 'fillDependsOn' attribute -->
+ <j:set var="value" value="${attrs.value ?: instance[attrs.field] ?: attrs.default}" />
+ <m:select xmlns:m="jelly:hudson.util.jelly.MorphTagLibrary"
+ class="setting-input ${attrs.checkUrl!=null?'validated':''} select ${attrs.clazz}"
+ name="${attrs.name ?: '_.'+attrs.field}"
+ value="${value}"
+ ATTRIBUTES="${attrs}" EXCEPT="field clazz">
+ <j:if test="${value!=null}">
+ <option value="${value}">${value}</option>
+ </j:if>
+ </m:select>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode.jelly b/hudson-core/src/main/resources/lib/form/slave-mode.jelly
new file mode 100644
index 00000000..1f37f24d
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode.jelly
@@ -0,0 +1,33 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<!--
+ listbox for choosing the slave's usage.
+
+ @name : name of the <select> element
+ @node : Node object
+-->
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout"
+ xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <f:entry title="${%Usage}" help="/help/system-config/master-slave/usage.html">
+ <select class="setting-input" name="${name}">
+ <j:forEach var="m" items="${h.getNodeModes()}">
+ <f:option value="${m.name}" selected="${m==node.mode}">${m.description}</f:option>
+ </j:forEach>
+ </select>
+ </f:entry>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_da.properties b/hudson-core/src/main/resources/lib/form/slave-mode_da.properties
new file mode 100644
index 00000000..5b97a04d
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_da.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi. Knud Poulsen.
+#
+#
+#**************************************************************************
+
+Usage=Brug
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_de.properties b/hudson-core/src/main/resources/lib/form/slave-mode_de.properties
new file mode 100644
index 00000000..e01d8a76
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_de.properties
@@ -0,0 +1,15 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2011 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#**************************************************************************
+
+Usage=Auslastung
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_es.properties b/hudson-core/src/main/resources/lib/form/slave-mode_es.properties
new file mode 100644
index 00000000..4617478d
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_es.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Usage=Usar
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_fr.properties b/hudson-core/src/main/resources/lib/form/slave-mode_fr.properties
new file mode 100644
index 00000000..95465f04
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_fr.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Eric Lefevre-Ardant
+#
+#
+#**************************************************************************
+
+Usage=Utilisation
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_ja.properties b/hudson-core/src/main/resources/lib/form/slave-mode_ja.properties
new file mode 100644
index 00000000..5bb79e93
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_ja.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Seiji Sogabe
+#
+#
+#**************************************************************************
+
+Usage=\u7528\u9014
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_nl.properties b/hudson-core/src/main/resources/lib/form/slave-mode_nl.properties
new file mode 100644
index 00000000..485feafb
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_nl.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Wim Rosseel
+#
+#
+#**************************************************************************
+
+Usage=Gebruik
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_pt_BR.properties b/hudson-core/src/main/resources/lib/form/slave-mode_pt_BR.properties
new file mode 100644
index 00000000..8738f66b
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_pt_BR.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Cleiber Silva
+#
+#
+#**************************************************************************
+
+Usage=Uso
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_ru.properties b/hudson-core/src/main/resources/lib/form/slave-mode_ru.properties
new file mode 100644
index 00000000..35f52646
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_ru.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Usage=\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_sv_SE.properties b/hudson-core/src/main/resources/lib/form/slave-mode_sv_SE.properties
new file mode 100644
index 00000000..2462e871
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_sv_SE.properties
@@ -0,0 +1,17 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#
+#
+#**************************************************************************
+
+Usage=Anv\u00E4ndande
diff --git a/hudson-core/src/main/resources/lib/form/slave-mode_zh_CN.properties b/hudson-core/src/main/resources/lib/form/slave-mode_zh_CN.properties
new file mode 100644
index 00000000..7a143441
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/slave-mode_zh_CN.properties
@@ -0,0 +1,15 @@
+#**************************************************************************
+#
+# Copyright (c) 2004-2011 Oracle Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+#
+#**************************************************************************
+
+Usage=\u7528\u6cd5
diff --git a/hudson-core/src/main/resources/lib/form/submit.jelly b/hudson-core/src/main/resources/lib/form/submit.jelly
new file mode 100644
index 00000000..0bd0ecbb
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/submit.jelly
@@ -0,0 +1,33 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Yahoo! Inc.
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:s="jelly:stapler" xmlns:d="jelly:define" xmlns:f="/lib/form">
+ <s:documentation>
+ Submit button themed by YUI. This should be always
+ used instead of the plain &lt;input tag.
+
+ <s:attribute name="name">
+ If specified, becomes the value of the name attribute.
+ When you have more than one submit button on the form, this can be used to determine
+ which button is pressed, as the server will get a parameter by this name.
+ </s:attribute>
+ <s:attribute name="value" use="required">
+ The text of the submit button. Something like "submit", "OK", etc.
+ </s:attribute>
+ </s:documentation>
+ <input type="submit" name="${attrs.name ?: 'Submit'}" value="${attrs.value}" class="submit-button" />
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/taglib b/hudson-core/src/main/resources/lib/form/taglib
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/taglib
diff --git a/hudson-core/src/main/resources/lib/form/textarea.jelly b/hudson-core/src/main/resources/lib/form/textarea.jelly
new file mode 100644
index 00000000..e0c09991
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/textarea.jelly
@@ -0,0 +1,59 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Johnathon Jamison, Yahoo! Inc.
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:f="/lib/form">
+ <st:documentation>
+ &lt;textarea> tag on steroids.
+ The textarea will be rendered to fit the content. It also gets the resize handle.
+
+ <st:attribute name="field">
+ Used for databinding. TBD.
+ </st:attribute>
+ <st:attribute name="name">
+ This becomes @name of the &lt;textarea> tag.
+ If @field is specified, this value is inferred from it.
+ </st:attribute>
+ <st:attribute name="value">
+ The initial value of the field. This becomes the value of the &lt;textarea> tag.
+ If @field is specified, the current property from the "instance" object
+ will be set as the initial value automatically,
+ which is the recommended approach.
+ </st:attribute>
+ <st:attribute name="default">
+ The default value of the text box, in case both @value is and 'instance[field]' is null.
+ </st:attribute>
+ <st:attribute name="checkUrl">
+ If specified, the value entered in this input field will be checked (via AJAX)
+ against this URL, and errors will be rendered under the text field.
+
+ If @field is specified, this will be inferred automatically,
+ which is the recommended approach.
+ </st:attribute>
+ </st:documentation>
+
+ <f:prepareDatabinding />
+ <j:set var="value" value="${attrs.value ?: instance[attrs.field] ?: attrs.default}" />
+ <textarea id="${attrs.id}" style="${attrs.style}"
+ name ="${attrs.name ?: '_.'+attrs.field}"
+ class="setting-input ${attrs.checkUrl!=null?'validated':''} ${attrs.class}"
+ checkUrl="${attrs.checkUrl}"
+ rows="${h.determineRows(value)}">
+ <st:out value="${value}" />
+ </textarea>
+ <!-- resize handle -->
+ <div class="textarea-handle"/>
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/textbox.jelly b/hudson-core/src/main/resources/lib/form/textbox.jelly
new file mode 100644
index 00000000..8f5434dc
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/textbox.jelly
@@ -0,0 +1,72 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2010 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi, Yahoo! Inc.
+#
+#
+#************************************************************************** -->
+
+
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:f="/lib/form">
+ <st:documentation>
+ Generates an input field <tt>&lt;input type="text" ... /></tt> to be
+ used inside &lt;f:entry/>
+
+ <st:attribute name="field">
+ Used for databinding. TBD.
+ </st:attribute>
+ <st:attribute name="name">
+ This becomes @name of the &lt;input> tag.
+ If @field is specified, this value is inferred from it.
+ </st:attribute>
+ <st:attribute name="value">
+ The initial value of the field. This becomes the @value of the &lt;input> tag.
+ If @field is specified, the current property from the "instance" object
+ will be set as the initial value automatically,
+ which is the recommended approach.
+ </st:attribute>
+ <st:attribute name="default">
+ The default value of the text box, in case both @value is and 'instance[field]' is null.
+ </st:attribute>
+ <!-- Tomcat doesn't like us using the attribute called 'class' -->
+ <st:attribute name="clazz">
+ Additional CSS class(es) to add (such as client-side validation clazz="required",
+ "number" or "positive-number"; these may be combined, as clazz="required number").
+ </st:attribute>
+ <st:attribute name="checkMessage">
+ Override the default error message when client-side validation fails,
+ as with clazz="required", etc.
+ </st:attribute>
+ <st:attribute name="checkUrl">
+ If specified, the value entered in this input field will be checked (via AJAX)
+ against this URL, and errors will be rendered under the text field.
+
+ If @field is specified, this will be inferred automatically,
+ which is the recommended approach.
+ </st:attribute>
+ <st:attribute name="autoCompleteDelimChar">
+ A single character that can be used as a delimiter for autocompletion. Normal
+ autocomplete will replace the entire content of the text box with the autocomplete
+ selection. With this attribute set, the selection will be appended with the
+ delimiter to the existing value of the text box.
+ </st:attribute>
+ </st:documentation>
+ <f:prepareDatabinding />
+ ${descriptor.calcAutoCompleteSettings(field,attrs)} <!-- this figures out the 'autoCompleteUrl' attribute -->
+
+ <!-- mostly pass-through all the attributes -->
+ <m:input xmlns:m="jelly:hudson.util.jelly.MorphTagLibrary"
+ class="setting-input ${attrs.checkUrl!=null?'validated':''} ${attrs.autoCompleteUrl!=null?'auto-complete':null} ${attrs.clazz}"
+ name="${attrs.name ?: '_.'+attrs.field}"
+ value="${attrs.value ?: instance[attrs.field] ?: attrs.default}"
+ type="text"
+ ATTRIBUTES="${attrs}" EXCEPT="field clazz" />
+</j:jelly>
diff --git a/hudson-core/src/main/resources/lib/form/validateButton.jelly b/hudson-core/src/main/resources/lib/form/validateButton.jelly
new file mode 100644
index 00000000..9e002471
--- /dev/null
+++ b/hudson-core/src/main/resources/lib/form/validateButton.jelly
@@ -0,0 +1,57 @@
+<!-- **************************************************************************
+#
+# Copyright (c) 2004-2009 Oracle Corporation.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#
+# Kohsuke Kawaguchi
+#
+#
+#************************************************************************** -->
+
+
+<!--
+
+-->
+<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
+ <st:documentation>
+ See
+ http://wiki.hudson-ci.org/display/HUDSON/Jelly+form+controls
+ for the reference.
+
+ <st:attribute name="method" use="required">
+ Server-side method that handles the validation. For example, if this is 'foo', you need "doFoo" on
+ your descriptor class.
+ </st:attribute>
+ <st:attribute name="title" use="required">
+ Caption of the validate button. Should be internationalized.
+ </st:attribute>
+ <st:attribute name="progress">
+ Caption of the text shown while the AJAX call is in progress. For example, "checking..."
+ </st:attribute>
+ <st:attribute name="with">
+ ','-separated list of fields that are sent to the server.
+ </st:attribute>
+ <st:attribute name="checkUrl">
+ User-defined url for AJAX request. Default value is ${rootURL}/descriptor/${descriptor.clazz.name}
+ </st:attribute>
+ <st:attribute name="queryParams">
+ Additional query params for AJAX request
+ </st:attribute>
+ </st:documentation>
+ <f:nested>
+ <div style="float:right">
+ <input type="button" value="${title}" class="yui-button"
+ onclick="validateButton('${checkUrl!=null? checkUrl : rootURL+'/descriptor/'+descriptor.clazz.name}/${method}${queryParams!=null? '?'+queryParams : ''}','${with}',this)" />
+ </div>
+ <div style="display:none;">
+ <img src="${imagesURL}/spinner.gif" /> ${attrs.progress}
+ </div>
+ <div><!-- this is where the error message goes --></div>
+ </f:nested>
+</j:jelly>

Back to the top