1 {% extends 'qcg/base.html' %}
2 {% load staticfiles bootstrap3 qcg_utils %}
5 <link href="{% static 'qcg/selectize/selectize.bootstrap3.css' %}" rel="stylesheet">
6 <link href="{% static 'qcg/datetimepicker/bootstrap-datetimepicker.min.css' %}" rel="stylesheet">
10 <script src="{% static 'qcg/selectize/selectize.min.js' %}"></script>
11 <script src="{% static 'qcg/formset/jquery.formset.js' %}"></script>
12 <script src="{% static 'qcg/moment/moment.min.js' %}"></script>
13 <script src="{% static 'qcg/moment/pl.js' %}"></script>
14 <script src="{% static 'qcg/datetimepicker/bootstrap-datetimepicker.min.js' %}"></script>
18 $('#id_application, #id_host').selectize();
19 $('#id_arguments,#id_properties,#id_native').selectize({
20 plugins: ['remove_button'],
23 option_create: function(data, escape) {
24 return '<div class="create">Dodaj <strong>' + escape(data.input) + '</strong>…</div>';
28 $('#id_queue').selectize({
31 option_create: function(data, escape) {
32 return '<div class="create">Wybierz <strong>' + escape(data.input) + '</strong>…</div>';
36 $('#id_modules').selectize({
37 plugins: ['remove_button']
40 // hide delete checkbox in empty env form
41 $('#env-form-empty').find('div.form-group:last-of-type').hide();
42 $('#env-controls').find('> div').formset({
43 formTemplate: '#env-form-empty',
44 parent: '#env-controls',
45 addLinkParent: '#add-env-form',
47 addCssClass: 'add-btn',
49 deleteCssClass: 'delete-btn btn btn-xs btn-danger'
52 $('#id_not_before,#id_not_after').datetimepicker({
57 $('input[name="notify_type"],input[name="watch_output_type"],input[name="preprocess_type"],input[name="postprocess_type"]').on('change', function () {
60 $(this).parent().toggleClass('active', this.checked);
66 $('#toggle-advanced').click(function(e) {
68 $('form .collapse').collapse('toggle');
69 $(this).find('span').text(this.text == "Pokaż zaawansowane" ? "Ukryj zaawansowane" : "Pokaż zaawansowane");
72 $('#new-env').click(function(e) {
74 $('#env-modal').modal('show');
77 $('#env-form').submit(function(e) {
79 $('#env-modal').modal('hide');
81 $('#id_environment')[0].selectize.createItem($('#id_env_name').val() + '=' + $('#id_env_value').val());
88 <h1 class="page-header">{% block title %}Zleć zadanie{% endblock %}</h1>
90 <form action="." method="post" class="form-horizontal">
94 <ul class="nav nav-tabs" style="margin-bottom: 20px">
95 <li role="presentation" class="active"><a href="#basic" data-toggle="tab">Podstawowe</a></li>
96 <li role="presentation"><a href="#resources" data-toggle="tab">Zasoby</a></li>
97 <li role="presentation"><a href="#files" data-toggle="tab">Pliki</a></li>
98 <li role="presentation"><a href="#environment" data-toggle="tab">Środowisko</a></li>
99 <li role="presentation"><a href="#monitoring" data-toggle="tab">Powiadomienia</a></li>
100 <li role="presentation"><a href="#other" data-toggle="tab">Inne</a></li>
103 <div class="tab-content">
104 <fieldset id="basic" class="tab-pane active" role="tabpanel">
105 {% bootstrap_field form.application layout="horizontal" %}
106 <div class="row" style="margin-top: -15px; margin-bottom: 15px">
107 <div class="col-sm-offset-3 col-md-offset-4 col-sm-9 col-md-6">
109 <a id="add-main-file" href="#">wybierz plik główny »</a>
113 {% bootstrap_field form.executable layout="horizontal" form_group_class="form-group collapse" %}
114 {% bootstrap_field form.script layout="horizontal" form_group_class="form-group collapse" %}
115 {% bootstrap_field form.arguments layout="horizontal" %}
116 {% bootstrap_field form.note layout="horizontal" %}
117 {% bootstrap_field form.grant layout="horizontal" %}
120 <fieldset id="resources" class="tab-pane" role="tabpanel">
121 {% bootstrap_field form.host layout="horizontal" %}
122 {% bootstrap_field form.queue layout="horizontal" %}
123 {% bootstrap_field form.properties layout="horizontal" form_group_class="form-group collapse" %}
124 {% bootstrap_field form.modules layout="horizontal" form_group_class="form-group collapse" %}
125 {% bootstrap_field form.procs layout="horizontal" %}
126 {% bootstrap_field form.nodes layout="horizontal" form_group_class="form-group collapse" %}
127 {% bootstrap_field form.wall_time layout="horizontal" %}
128 {% bootstrap_field form.memory layout="horizontal" form_group_class="form-group collapse" %}
129 {% bootstrap_field form.memory_per_slot layout="horizontal" form_group_class="form-group collapse" %}
130 {% bootstrap_field form.reservation layout="horizontal" form_group_class="form-group collapse" %}
133 <fieldset id="files" class="tab-pane" role="tabpanel">
134 {% bootstrap_field form.input layout="horizontal" %}
135 {% bootstrap_field form.stage_in layout="horizontal" %}
136 {% bootstrap_field form.stage_out layout="horizontal" form_group_class="form-group collapse" %}
139 <fieldset id="environment" class="tab-pane" role="tabpanel">
140 {{ env_formset.management_form }}
142 <div class="form-group">
143 <label class="col-sm-3 col-md-4 control-label">Zmienne środowiskowe</label>
144 <div class="col-sm-9 col-md-6">
145 <div id="env-controls">
146 {% for env_form in env_formset %}
147 <div>{% bootstrap_form env_form layout='inline' %}</div>
150 <div id="add-env-form"></div>
151 <div id="env-form-empty" style="display: none">
152 {% bootstrap_form env_formset.empty_form layout='inline' %}
158 <fieldset id="monitoring" class="tab-pane" role="tabpanel">
159 {% bootstrap_checkbox form.monitoring %}
161 <div class="form-group">
162 <label class="col-sm-3 col-md-4 control-label">Monitorowanie stanu</label>
163 <div class="col-sm-9 col-md-6">
164 <div class="btn-group" data-toggle="buttons">
165 {% for option in form.notify_type %}
166 <label class="btn btn-default">
167 <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
168 {% if option.is_checked %}checked{% endif %}
169 data-target=".notify-type-{{ option.choice_value }}"> {{ option.choice_label }}
176 <div class="tab-content">
177 <div class="tab-pane notify-type-0"></div>
179 <div class="tab-pane notify-type-1 notify-type-2" style="margin-top: 15px">
180 {% bootstrap_field form.notify_address layout="horizontal" %}
184 <div class="collapse">
185 <div class="form-group">
186 <label class="col-sm-3 col-md-4 control-label">Monitorowanie wyjścia</label>
187 <div class="col-sm-9 col-md-6">
188 <div class="btn-group" data-toggle="buttons">
189 {% for option in form.watch_output_type %}
190 <label class="btn btn-default">
191 <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
192 {% if option.is_checked %}checked{% endif %}
193 data-target=".watch-output-type-{{ option.choice_value }}"> {{ option.choice_label }}
200 <div class="tab-content">
201 <div class="tab-pane watch-output-type-0"></div>
203 <div class="tab-pane watch-output-type-1 watch-output-type-2" style="margin-top: 15px">
204 {% bootstrap_field form.watch_output_address layout="horizontal" %}
205 {% bootstrap_field form.watch_output_pattern layout="horizontal" %}
211 <fieldset id="other" class="tab-pane" role="tabpanel">
212 <div class="form-group">
213 <label class="col-sm-3 col-md-4 control-label">Preprocessing</label>
214 <div class="col-sm-9 col-md-6">
215 <div class="btn-group" data-toggle="buttons">
216 {% for option in form.preprocess_type %}
217 <label class="btn btn-default">
218 <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
219 {% if option.is_checked %}checked{% endif %}
220 data-target=".preprocess-type-{{ option.choice_value }}"> {{ option.choice_label }}
227 <div class="tab-content">
228 <div class="tab-pane preprocess-type-0"></div>
230 <div class="tab-pane preprocess-type-1" style="margin-top: 15px">
231 {% bootstrap_field form.preprocess_cmd layout="horizontal" %}
234 <div class="tab-pane preprocess-type-2" style="margin-top: 15px">
235 {% bootstrap_field form.preprocess_script layout="horizontal" %}
239 <div class="form-group">
240 <label class="col-sm-3 col-md-4 control-label">Postprocessing</label>
241 <div class="col-sm-9 col-md-6">
242 <div class="btn-group" data-toggle="buttons">
243 {% for option in form.postprocess_type %}
244 <label class="btn btn-default">
245 <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
246 {% if option.is_checked %}checked{% endif %}
247 data-target=".postprocess-type-{{ option.choice_value }}"> {{ option.choice_label }}
254 <div class="tab-content">
255 <div class="tab-pane postprocess-type-0"></div>
257 <div class="tab-pane postprocess-type-1" style="margin-top: 15px">
258 {% bootstrap_field form.postprocess_cmd layout="horizontal" %}
261 <div class="tab-pane postprocess-type-2" style="margin-top: 15px">
262 {% bootstrap_field form.postprocess_script layout="horizontal" %}
266 {% bootstrap_field form.native layout="horizontal" %}
267 {% bootstrap_checkbox form.persistent %}
274 <div class="col-sm-offset-3 col-md-offset-4 col-sm-9 col-md-6">
275 <button type="submit" class="btn btn-primary">Zleć zadanie</button>
276 <button type="reset" class="btn btn-warning">Resetuj</button>
277 <a id="toggle-advanced" href="#"><span class="text-muted">Pokaż zaawansowane</span></a>