1 {% extends 'qcg/base.html' %}
2 {% load staticfiles bootstrap3 qcg_utils %}
5 <link href="{% static 'qcg/selectize/selectize.bootstrap3.css' %}" rel="stylesheet">
9 <script src="{% static 'qcg/selectize/selectize.min.js' %}"></script>
10 <script src="{% static 'qcg/formset/jquery.formset.js' %}"></script>
14 $('#id_application').selectize();
15 $('#id_arguments,#id_properties,#id_native').selectize({
16 plugins: ['remove_button'],
19 option_create: function(data, escape) {
20 return '<div class="create">Dodaj <strong>' + escape(data.input) + '</strong>…</div>';
24 $('#id_queue').selectize({
27 option_create: function(data, escape) {
28 return '<div class="create">Wybierz <strong>' + escape(data.input) + '</strong>…</div>';
32 $('#id_modules, #id_hosts').selectize({
33 plugins: ['remove_button']
36 // hide delete checkbox in empty env form
37 $('#env-form-empty').find('div.form-group:last-of-type').hide();
38 $('#env-controls').find('> div').formset({
39 formTemplate: '#env-form-empty',
40 parent: '#env-controls',
41 addLinkParent: '#add-env-form',
43 addCssClass: 'add-btn',
45 deleteCssClass: 'delete-btn btn btn-xs btn-danger'
48 $('input[name="notify_type"],input[name="watch_output_type"],input[name="preprocess_type"],input[name="postprocess_type"]').on('change', function () {
51 $(this).parent().toggleClass('active', this.checked);
57 $('#toggle-advanced').click(function(e) {
59 $('form .collapse').collapse('toggle');
60 $(this).find('span').text(this.text == "Pokaż zaawansowane" ? "Ukryj zaawansowane" : "Pokaż zaawansowane");
67 <h1 class="page-header">{% block title %}Zleć zadanie{% endblock %}</h1>
70 <div class="alert alert-danger">
71 <strong>Uwaga!</strong> Formularz zawiera błędy.
72 {{ form.non_field_errors }}
73 {{ env_formset.non_field_errors }}
77 <form action="." method="post" class="form-horizontal">
81 <ul class="nav nav-tabs" style="margin-bottom: 20px">
82 <li role="presentation" class="active"><a href="#basic" data-toggle="tab">Podstawowe</a></li>
83 <li role="presentation"><a href="#resources" data-toggle="tab">Zasoby</a></li>
84 <li role="presentation"><a href="#files" data-toggle="tab">Pliki</a></li>
85 <li role="presentation"><a href="#environment" data-toggle="tab">Środowisko</a></li>
86 <li role="presentation"><a href="#monitoring" data-toggle="tab">Powiadomienia</a></li>
87 <li role="presentation"><a href="#other" data-toggle="tab">Inne</a></li>
90 <div class="tab-content">
91 <fieldset id="basic" class="tab-pane active" role="tabpanel">
92 {% bootstrap_field form.application layout="horizontal" %}
93 <div class="row" style="margin-top: -15px; margin-bottom: 15px">
94 <div class="col-sm-offset-3 col-md-offset-4 col-sm-9 col-md-6">
96 <a id="add-main-file" href="#">wybierz plik główny »</a>
100 {% bootstrap_field form.executable layout="horizontal" form_group_class="form-group collapse" %}
101 {% bootstrap_field form.script layout="horizontal" form_group_class="form-group collapse" %}
102 {% bootstrap_field form.arguments layout="horizontal" %}
103 {% bootstrap_field form.note layout="horizontal" %}
104 {% bootstrap_field form.grant layout="horizontal" form_group_class="form-group collapse" %}
107 <fieldset id="resources" class="tab-pane" role="tabpanel">
108 {% bootstrap_field form.hosts layout="horizontal" %}
109 {% bootstrap_field form.queue layout="horizontal" %}
110 {% bootstrap_field form.properties layout="horizontal" form_group_class="form-group collapse" %}
111 {% bootstrap_field form.modules layout="horizontal" form_group_class="form-group collapse" %}
112 {% bootstrap_field form.procs layout="horizontal" %}
113 {% bootstrap_field form.nodes layout="horizontal" form_group_class="form-group collapse" %}
114 {% bootstrap_field form.wall_time layout="horizontal" form_group_class="form-group timerange" %}
115 {% bootstrap_field form.memory layout="horizontal" form_group_class="form-group collapse" %}
116 {% bootstrap_field form.memory_per_slot layout="horizontal" form_group_class="form-group collapse" %}
117 {% bootstrap_field form.reservation layout="horizontal" form_group_class="form-group collapse" %}
120 <fieldset id="files" class="tab-pane" role="tabpanel">
121 {% bootstrap_field form.input layout="horizontal" %}
122 {% bootstrap_field form.stage_in layout="horizontal" %}
123 {% bootstrap_field form.stage_out layout="horizontal" form_group_class="form-group collapse" %}
126 <fieldset id="environment" class="tab-pane" role="tabpanel">
127 {{ env_formset.management_form }}
129 <div class="form-group">
130 <label class="col-sm-3 col-md-4 control-label">Zmienne środowiskowe</label>
131 <div class="col-sm-9 col-md-6">
132 <div id="env-controls">
133 {% for env_form in env_formset %}
134 <div>{% bootstrap_form env_form layout='inline' %}</div>
137 <div id="add-env-form"></div>
138 <div id="env-form-empty" style="display: none">
139 {% bootstrap_form env_formset.empty_form layout='inline' %}
145 <fieldset id="monitoring" class="tab-pane" role="tabpanel">
146 {% bootstrap_checkbox form.monitoring %}
148 <div class="form-group">
149 <label class="col-sm-3 col-md-4 control-label">Monitorowanie stanu</label>
150 <div class="col-sm-9 col-md-6">
151 <div class="btn-group" data-toggle="buttons">
152 {% for option in form.notify_type %}
153 <label class="btn btn-default">
154 <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
155 {% if option.is_checked %}checked{% endif %}
156 data-target=".notify-type-{{ forloop.counter0 }}"> {{ option.choice_label }}
163 <div class="tab-content">
164 <div class="tab-pane notify-type-0"></div>
166 <div class="tab-pane notify-type-1 notify-type-2" style="margin-top: 15px">
167 {% bootstrap_field form.notify_address layout="horizontal" %}
171 <div class="collapse">
172 <div class="form-group">
173 <label class="col-sm-3 col-md-4 control-label">Monitorowanie wyjścia</label>
174 <div class="col-sm-9 col-md-6">
175 <div class="btn-group" data-toggle="buttons">
176 {% for option in form.watch_output_type %}
177 <label class="btn btn-default">
178 <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
179 {% if option.is_checked %}checked{% endif %}
180 data-target=".watch-output-type-{{ forloop.counter0 }}"> {{ option.choice_label }}
187 <div class="tab-content">
188 <div class="tab-pane watch-output-type-0"></div>
190 <div class="tab-pane watch-output-type-1 watch-output-type-2" style="margin-top: 15px">
191 {% bootstrap_field form.watch_output_address layout="horizontal" %}
192 {% bootstrap_field form.watch_output_pattern layout="horizontal" %}
198 <fieldset id="other" class="tab-pane" role="tabpanel">
199 <div class="form-group">
200 <label class="col-sm-3 col-md-4 control-label">Preprocessing</label>
201 <div class="col-sm-9 col-md-6">
202 <div class="btn-group" data-toggle="buttons">
203 {% for option in form.preprocess_type %}
204 <label class="btn btn-default">
205 <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
206 {% if option.is_checked %}checked{% endif %}
207 data-target=".preprocess-type-{{ forloop.counter0 }}"> {{ option.choice_label }}
214 <div class="tab-content">
215 <div class="tab-pane preprocess-type-0"></div>
217 <div class="tab-pane preprocess-type-1" style="margin-top: 15px">
218 {% bootstrap_field form.preprocess_cmd layout="horizontal" %}
221 <div class="tab-pane preprocess-type-2" style="margin-top: 15px">
222 {% bootstrap_field form.preprocess_script layout="horizontal" %}
226 <div class="form-group">
227 <label class="col-sm-3 col-md-4 control-label">Postprocessing</label>
228 <div class="col-sm-9 col-md-6">
229 <div class="btn-group" data-toggle="buttons">
230 {% for option in form.postprocess_type %}
231 <label class="btn btn-default">
232 <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
233 {% if option.is_checked %}checked{% endif %}
234 data-target=".postprocess-type-{{ forloop.counter0 }}"> {{ option.choice_label }}
241 <div class="tab-content">
242 <div class="tab-pane postprocess-type-0"></div>
244 <div class="tab-pane postprocess-type-1" style="margin-top: 15px">
245 {% bootstrap_field form.postprocess_cmd layout="horizontal" %}
248 <div class="tab-pane postprocess-type-2" style="margin-top: 15px">
249 {% bootstrap_field form.postprocess_script layout="horizontal" %}
253 {% bootstrap_field form.native layout="horizontal" %}
254 {% bootstrap_checkbox form.persistent %}
261 <div class="col-sm-offset-3 col-md-offset-4 col-sm-9 col-md-6">
262 <button type="submit" class="btn btn-primary">Zleć zadanie</button>
263 <button type="reset" class="btn btn-warning">Resetuj</button>
264 <a id="toggle-advanced" href="#"><span class="text-muted">Pokaż zaawansowane</span></a>