hydra/src/root/edit-jobset.tt

195 lines
7 KiB
Plaintext
Raw Normal View History

[% WRAPPER layout.tt title=(create ? "Create jobset in project $project.name" : clone ? "Cloning jobset $project.name:$jobset.name" : "Editing jobset $project.name:$jobset.name") %]
2013-02-21 01:33:57 +00:00
[% PROCESS common.tt %]
[% USE format %]
2013-02-21 01:33:57 +00:00
2013-03-19 15:14:47 +00:00
[% BLOCK renderJobsetInputAlt %]
2013-02-21 01:33:57 +00:00
<button type="button" class="btn btn-warning" onclick='$(this).parents(".inputalt").remove()'><i class="icon-trash icon-white"></i></button>
<input type="text" [% HTML.attributes(value => alt.value, name => name) %]/>
2013-02-21 01:33:57 +00:00
<br />
[% END %]
2013-03-19 15:14:47 +00:00
[% BLOCK renderJobsetInput %]
2013-02-21 01:33:57 +00:00
<tr class="input [% extraClass %]" [% IF id %]id="[% id %]"[% END %]>
<td>
<button type="button" class="btn btn-warning" onclick='$(this).parents(".input").remove()'><i class="icon-trash icon-white"></i></button>
<input type="text" id="[% baseName %]-name" name="[% baseName %]-name" [% HTML.attributes(value => input.name) %]/>
2013-02-21 01:33:57 +00:00
</td>
<td>
[% INCLUDE renderSelection curValue=input.type param="$baseName-type" options=inputTypes %]
</td>
<td class="inputalts" id="[% baseName %]">
[% FOREACH alt IN input.search_related('jobsetinputalts', {}, { order_by => 'altnr' }) %]
2013-02-21 01:33:57 +00:00
<span class="inputalt">
2013-03-19 15:14:47 +00:00
[% INCLUDE renderJobsetInputAlt alt=alt name="$baseName-values" %]
2013-02-21 01:33:57 +00:00
</span>
[% END %]
[% IF edit %]<button type="button" class="add-inputalt btn btn-success" onclick='return false'><i class="icon-plus icon-white"></i></button>[% END %]
</td>
</tr>
[% END %]
2013-03-19 15:14:47 +00:00
[% BLOCK renderJobsetInputs %]
2013-02-21 01:33:57 +00:00
<table class="table table-striped table-condensed">
<thead>
<tr><th>Input name</th><th>Type</th><th>Values</th></tr>
</thead>
<tbody class="inputs">
[% FOREACH input IN jobset.jobsetinputs %]
2013-03-19 15:14:47 +00:00
[% INCLUDE renderJobsetInput input=input baseName="input-$input.name" %]
2013-02-21 01:33:57 +00:00
[% END %]
<tr>
<td colspan="3" style="text-align: center;"><button type="button" class="add-input btn btn-success"><i class="icon-plus icon-white"></i> Add a new input</button></td>
2013-02-21 01:33:57 +00:00
</tr>
</tbody>
</table>
[% END %]
<form class="form-horizontal">
2013-02-21 01:33:57 +00:00
<fieldset>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox" name="enabled" [% IF jobset.enabled; 'checked="checked"'; END %]/>Enabled
2013-02-21 01:33:57 +00:00
</label>
</div>
<div class="controls">
<label class="checkbox">
<input type="checkbox" name="visible" [% IF !jobset.hidden; 'checked="checked"'; END %]/>Visible
</label>
</div>
2013-02-21 01:33:57 +00:00
</div>
<div class="control-group">
<label class="control-label">Identifier</label>
<div class="controls">
<input type="text" class="span3" name="name" [% HTML.attributes(value => clone ? "" : jobset.name) %]/>
2013-02-21 01:33:57 +00:00
</div>
</div>
<div class="control-group">
<label class="control-label">Description</label>
<div class="controls">
<input type="text" class="span3" name="description" [% HTML.attributes(value => jobset.description) %]/>
2013-02-21 01:33:57 +00:00
</div>
</div>
<div class="control-group">
<label class="control-label">Nix expression</label>
<div class="controls">
<input type="text" class="span3" name="nixexprpath" [% HTML.attributes(value => jobset.nixexprpath) %]/>
2013-02-21 01:33:57 +00:00
in
<input type="text" class="span3" name="nixexprinput" [% HTML.attributes(value => jobset.nixexprinput) %]/>
2013-02-21 01:33:57 +00:00
</div>
</div>
<div class="control-group">
<label class="control-label">Check interval</label>
<div class="controls">
<div class="input-append">
<input type="number" class="span3" name="checkinterval" [% HTML.attributes(value => jobset.checkinterval) %]/>
<span class="add-on">sec</span>
</div>
<span class="help-inline">(0 to disable polling)</span>
</div>
</div>
<div class="control-group">
<label class="control-label">Scheduling shares</label>
<div class="controls">
<div class="input-append">
<input type="number" class="span3" name="schedulingshares" [% HTML.attributes(value => jobset.schedulingshares) %]/>
</div>
[% IF totalShares %]
<span class="help-inline">([% f = format("%.2f"); f(jobset.schedulingshares / totalShares * 100) %]% out of [% totalShares %] shares)</span>
[% END %]
</div>
</div>
2013-02-21 01:33:57 +00:00
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox" name="enableemail" [% IF jobset.enableemail; 'checked="checked"'; END %]/>Email notification
2013-02-21 01:33:57 +00:00
</label>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox" name="emailresponsible" [% IF jobset.emailresponsible; 'checked="checked"'; END %]/>Notify responsible committers when build status changes
</label>
</div>
</div>
2013-02-21 01:33:57 +00:00
<div class="control-group">
<label class="control-label">Email override</label>
<div class="controls">
<input type="text" class="span3" name="emailoverride" [% HTML.attributes(value => jobset.emailoverride) %]/>
2013-02-21 01:33:57 +00:00
</div>
</div>
<div class="control-group">
<label class="control-label">Number of evaluations to keep</label>
2013-02-21 01:33:57 +00:00
<div class="controls">
<input type="number" class="span3" name="keepnr" [% HTML.attributes(value => jobset.keepnr) %]/>
2013-02-21 01:33:57 +00:00
</div>
</div>
2013-03-19 15:14:47 +00:00
[% INCLUDE renderJobsetInputs %]
2013-02-21 01:33:57 +00:00
<div class="form-actions">
<button id="submit-jobset" type="submit" class="btn btn-primary"><i class="icon-ok icon-white"></i> [%IF create || clone %]Create jobset[% ELSE %]Apply changes[% END %]</button>
2013-02-21 01:33:57 +00:00
</div>
</fieldset>
2013-02-21 17:10:06 +00:00
<table style="display: none">
2013-03-19 15:14:47 +00:00
[% INCLUDE renderJobsetInput input="" extraClass="template" id="input-template" baseName="input-template" %]
2013-02-21 01:33:57 +00:00
</table>
2013-02-21 17:10:06 +00:00
<tt class="inputalt" id="inputalt-template" style="display: none">
2013-03-19 15:14:47 +00:00
[% INCLUDE renderJobsetInputAlt alt=alt %]
2013-02-21 01:33:57 +00:00
</tt>
</form>
<script type="text/javascript">
$(document).ready(function() {
var id = 0;
$(".add-input").click(function() {
var newid = "input-" + id++;
var x = $("#input-template").clone(true).attr("id", "").insertBefore($(this).parents("tr")).show();
$("#input-template-name", x).attr("name", newid + "-name");
$("#input-template-type", x).attr("name", newid + "-type");
$("#input-template", x).attr("id", newid);
return false;
2013-02-21 01:33:57 +00:00
});
$(".add-inputalt").click(function() {
var x = $("#inputalt-template").clone(true).insertBefore($(this)).attr("id", "").show();
$("input", x).attr("name", x.parents(".inputalts").attr("id") + "-values");
});
});
$("#submit-jobset").click(function() {
requestJSON({
[% IF create || clone %]
url: "[% c.uri_for('/jobset' project.name '.new') %]",
[% ELSE %]
url: "[% c.uri_for('/jobset' project.name jobset.name) %]",
[% END %]
data: $(this).parents("form").serialize(),
type: 'PUT',
success: function(data) {
window.location = data.redirect;
},
});
return false;
});
</script>
2013-02-21 01:33:57 +00:00
[% END %]