提交 e86c0271 编写于 作者: K Kohsuke Kawaguchi

Modified to use ID, which is better for this kind of purpose.

上级 87d5bd07
......@@ -241,7 +241,7 @@ public final class ComputerSet extends AbstractModelObject {
return;
}
NodeDescriptor d = NodeDescriptor.all().find(mode);
NodeDescriptor d = NodeDescriptor.all().findByName(mode);
d.handleNewNodePage(this,name,req,rsp);
}
}
......
......@@ -841,6 +841,12 @@ public abstract class Descriptor<T extends Describable<T>> implements Saveable {
if(d.getClass().getName().equals(className))
return d;
}
// Since we introduced Descriptor.getId(), it is a preferred method of identifying descriptor by a string.
// To make that migration easier without breaking compatibility, let's also match up with the id.
for (T d : list) {
if(d.getId().equals(className))
return d;
}
return null;
}
......
......@@ -171,7 +171,7 @@ public abstract class ItemGroupMixIn {
throw new Failure("No mode given");
// create empty job and redirect to the project config screen
result = createProject(Items.getDescriptor(mode), name, true);
result = createProject(Items.all().findByName(mode), name, true);
}
}
......
......@@ -33,18 +33,37 @@ THE SOFTWARE.
@checkUrl : form field validation url
-->
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:s="/lib/form">
<st:documentation>
Generates a form for creating something out of descriptors by (1) selecting a descriptor and specifying a name.
This also presents a copy option. This should be placed inside &lt;l:main-panel>.
<st:attribute name="action">
Specify where the form will be submitted to. Defaults to 'createItem'.
</st:attribute>
<st:attribute name="descriptors" use="required">
Collection of Descriptors to be rendered.
</st:attribute>
<st:attribute name="nameTitle" use="required">
Caption of the text box to receive the name of the newly created item. Something like "Job name"
</st:attribute>
<st:attribute name="checkUrl" use="required">
URL relative to the context root of Jenkins that point to the check method that validates the new name.
</st:attribute>
</st:documentation>
<j:set var="descriptors" value="${h.filterDescriptors(it,attrs.descriptors)}" />
<s:form method="post" action="createItem">
<s:form method="post" action="${attrs.action?:'createItem'}">
<s:entry title="${attrs.nameTitle}">
<s:textbox id="name" name="name" checkUrl="'${rootURL}/${attrs.checkUrl}?value='+encodeURIComponent(this.value)"
<s:textbox id="name" name="name" checkUrl="'${rootURL}/${h.jsStringEscape(attrs.checkUrl)}?value='+encodeURIComponent(this.value)"
onchange="updateOk(this.form)" onkeyup="updateOk(this.form)" />
<script>$('name').focus();</script>
</s:entry>
<j:forEach var="descriptor" items="${descriptors}">
<s:block>
<input type="radio" name="mode" value="${descriptor.class.name}" onchange="updateOk(this.form)" onclick="updateOk(this.form)" />
<input type="radio" name="mode" value="${descriptor.id}" onchange="updateOk(this.form)" onclick="updateOk(this.form)" />
<label class="attach-previous"><b>${descriptor.displayName}</b></label>
</s:block>
<s:entry>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册