{% extends 'qcg/base.html' %}
-{% load staticfiles bootstrap3 qcg_utils %}
+{% load staticfiles bootstrap3 %}
{% block extra_css %}
<link href="{% static 'qcg/selectize/selectize.bootstrap3.css' %}" rel="stylesheet">
return res;
}
- $('#id_master_file,#id_executable,#id_input,#id_preprocess_script,#id_postprocess_script').before(function() {
+ $('#id_master_file,#id_pdb_file,#id_executable,#id_input,#id_preprocess_script,#id_postprocess_script').before(function() {
var target = this;
return gridftpButton.clone().click(function() {
$('#select-btn').off().click(function() {
});
}).wrap('<div style="margin-right: 80px"></div>');
- $('#id_application').selectize();
+ $('#id_application,#id_force_field').selectize();
$('#id_arguments,#id_properties,#id_native').selectize({
plugins: ['remove_button'],
create: true,
}
}
});
- $('#id_modules,#id_hosts,#id_master_file,#id_executable,#id_input,#id_stage_in,#id_preprocess_script,#id_postprocess_script').selectize({
+
+ $('#id_modules,#id_hosts,#id_pdb_file,#id_master_file,#id_executable,#id_input,#id_stage_in,#id_preprocess_script,#id_postprocess_script').selectize({
+
plugins: ['remove_button']
});
$('input[name="notify_type"],input[name="watch_output_type"],input[name="preprocess_type"],input[name="postprocess_type"]').on('change', function () {
$(this).tab('show');
}).each(function() {
- $(this).parent().toggleClass('active', this.checked);
-
if (this.checked)
$(this).tab('show');
});
$('#gridftp').one('show.bs.modal', function() {
filex.initialLoad();
+ $(this).find('.modal-body').css('height', window.innerHeight - 200 + 'px');
+ });
+
+ $('#template').on('show.bs.modal', function() {
+ this.reset();
+ }).on('shown.bs.modal', function() {
+ $(this).find('input[type="text"]')[0].focus();
+ }).on('submit', function(e) {
+ e.preventDefault();
+
+ // copy this form's fields to description form and send it
+ $('#description').append($(this).find('input').clone().attr('type', 'hidden')).submit();
});
});
</script>
{% endblock %}
{% block container %}
- <h1 class="page-header">{% block title %}Zleć zadanie{% endblock %}</h1>
+ <div class="pull-right">
+ {% if template %}
+ <button class="btn btn-default" data-toggle="modal" data-target="#template">Zapisz</button>
+ <button class="btn btn-default" data-toggle="modal" data-target="#delete-modal">Usuń</button>
+ {% else %}
+ <button class="btn btn-default" data-toggle="modal" data-target="#template">Zapisz jako szablon</button>
+ {% endif %}
+ </div>
+
+ <h1 class="page-header">{% block title %}Zleć zadanie{% endblock %} <small>{{ template.name }}</small></h1>
{% if errors %}
<div class="alert alert-danger">
<strong>Uwaga!</strong> Formularz zawiera błędy.
{{ form.non_field_errors }}
{{ env_formset.non_field_errors }}
+ {{ template_form.non_field_errors }}
</div>
{% endif %}
- <form action="." method="post" class="form-horizontal">
+ <form id="description" action="." method="post" class="form-horizontal">
{% csrf_token %}
- <!-- Nav tabs -->
- <ul class="nav nav-tabs" style="margin-bottom: 20px">
- <li role="presentation" class="active"><a href="#basic" data-toggle="tab">Podstawowe</a></li>
- <li role="presentation"><a href="#resources" data-toggle="tab">Zasoby</a></li>
- <li role="presentation"><a href="#files" data-toggle="tab">Pliki</a></li>
- <li role="presentation"><a href="#environment" data-toggle="tab">Środowisko</a></li>
- <li role="presentation"><a href="#monitoring" data-toggle="tab">Powiadomienia</a></li>
- <li role="presentation"><a href="#other" data-toggle="tab">Inne</a></li>
- </ul>
-
- <div class="tab-content">
- <fieldset id="basic" class="tab-pane active" role="tabpanel">
- {% bootstrap_field form.application layout="horizontal" %}
- {% bootstrap_field form.master_file layout="horizontal" %}
- {% bootstrap_field form.executable layout="horizontal" form_group_class="form-group collapse" %}
- {% bootstrap_field form.script layout="horizontal" form_group_class="form-group collapse" %}
- {% bootstrap_field form.arguments layout="horizontal" %}
- {% bootstrap_field form.note layout="horizontal" %}
- {% bootstrap_field form.grant layout="horizontal" form_group_class="form-group collapse" %}
- </fieldset>
-
- <fieldset id="resources" class="tab-pane" role="tabpanel">
- {% bootstrap_field form.hosts layout="horizontal" %}
- {% bootstrap_field form.queue layout="horizontal" %}
- {% bootstrap_field form.properties layout="horizontal" form_group_class="form-group collapse" %}
- {% bootstrap_field form.modules layout="horizontal" form_group_class="form-group collapse" %}
- {% bootstrap_field form.procs layout="horizontal" %}
- {% bootstrap_field form.nodes layout="horizontal" form_group_class="form-group collapse" %}
- {% bootstrap_field form.wall_time layout="horizontal" form_group_class="form-group timerange" %}
- {% bootstrap_field form.memory layout="horizontal" form_group_class="form-group collapse" %}
- {% bootstrap_field form.memory_per_slot layout="horizontal" form_group_class="form-group collapse" %}
- {% bootstrap_field form.reservation layout="horizontal" form_group_class="form-group collapse" %}
- </fieldset>
-
- <fieldset id="files" class="tab-pane" role="tabpanel">
- {% bootstrap_field form.input layout="horizontal" %}
- {% bootstrap_field form.stage_in layout="horizontal" %}
-{# {% bootstrap_field form.stage_out layout="horizontal" form_group_class="form-group collapse" %}#}
- </fieldset>
-
- <fieldset id="environment" class="tab-pane" role="tabpanel">
- {{ env_formset.management_form }}
-
- <div class="form-group">
- <label class="col-sm-3 col-md-4 control-label">Zmienne środowiskowe</label>
- <div class="col-sm-9 col-md-6">
- <div id="env-controls">
- {% for env_form in env_formset %}
- <div>{% bootstrap_form env_form layout='inline' %}</div>
- {% endfor %}
- </div>
- <div id="add-env-form"></div>
- <div id="env-form-empty" style="display: none">
- {% bootstrap_form env_formset.empty_form layout='inline' %}
- </div>
- </div>
- </div>
- </fieldset>
-
- <fieldset id="monitoring" class="tab-pane" role="tabpanel">
- {% bootstrap_checkbox form.monitoring %}
-
- <div class="form-group">
- <label class="col-sm-3 col-md-4 control-label">Monitorowanie stanu</label>
- <div class="col-sm-9 col-md-6">
- <div class="btn-group" data-toggle="buttons">
- {% for option in form.notify_type %}
- <label class="btn btn-default">
- <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
- {% if option.is_checked %}checked{% endif %}
- data-target=".notify-type-{{ forloop.counter0 }}"> {{ option.choice_label }}
- </label>
- {% endfor %}
- </div>
- </div>
- </div>
-
- <div class="tab-content">
- <div class="tab-pane notify-type-0"></div>
-
- <div class="tab-pane notify-type-1 notify-type-2" style="margin-top: 15px">
- {% bootstrap_field form.notify_address layout="horizontal" %}
- </div>
- </div>
-
- <div class="collapse">
- <div class="form-group">
- <label class="col-sm-3 col-md-4 control-label">Monitorowanie wyjścia</label>
- <div class="col-sm-9 col-md-6">
- <div class="btn-group" data-toggle="buttons">
- {% for option in form.watch_output_type %}
- <label class="btn btn-default">
- <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
- {% if option.is_checked %}checked{% endif %}
- data-target=".watch-output-type-{{ forloop.counter0 }}"> {{ option.choice_label }}
- </label>
- {% endfor %}
- </div>
- </div>
- </div>
-
- <div class="tab-content">
- <div class="tab-pane watch-output-type-0"></div>
-
- <div class="tab-pane watch-output-type-1 watch-output-type-2" style="margin-top: 15px">
- {% bootstrap_field form.watch_output_address layout="horizontal" %}
- {% bootstrap_field form.watch_output_pattern layout="horizontal" %}
- </div>
- </div>
- </div>
- </fieldset>
-
- <fieldset id="other" class="tab-pane" role="tabpanel">
- <div class="form-group">
- <label class="col-sm-3 col-md-4 control-label">Preprocessing</label>
- <div class="col-sm-9 col-md-6">
- <div class="btn-group" data-toggle="buttons">
- {% for option in form.preprocess_type %}
- <label class="btn btn-default">
- <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
- {% if option.is_checked %}checked{% endif %}
- data-target=".preprocess-type-{{ forloop.counter0 }}"> {{ option.choice_label }}
- </label>
- {% endfor %}
- </div>
- </div>
- </div>
-
- <div class="tab-content">
- <div class="tab-pane preprocess-type-0"></div>
-
- <div class="tab-pane preprocess-type-1" style="margin-top: 15px">
- {% bootstrap_field form.preprocess_cmd layout="horizontal" %}
- </div>
-
- <div class="tab-pane preprocess-type-2" style="margin-top: 15px">
- {% bootstrap_field form.preprocess_script layout="horizontal" %}
- </div>
- </div>
-
- <div class="form-group">
- <label class="col-sm-3 col-md-4 control-label">Postprocessing</label>
- <div class="col-sm-9 col-md-6">
- <div class="btn-group" data-toggle="buttons">
- {% for option in form.postprocess_type %}
- <label class="btn btn-default">
- <input type="radio" autocomplete="off" name="{{ option.name }}" value="{{ option.choice_value }}"
- {% if option.is_checked %}checked{% endif %}
- data-target=".postprocess-type-{{ forloop.counter0 }}"> {{ option.choice_label }}
- </label>
- {% endfor %}
- </div>
- </div>
- </div>
-
- <div class="tab-content">
- <div class="tab-pane postprocess-type-0"></div>
-
- <div class="tab-pane postprocess-type-1" style="margin-top: 15px">
- {% bootstrap_field form.postprocess_cmd layout="horizontal" %}
- </div>
-
- <div class="tab-pane postprocess-type-2" style="margin-top: 15px">
- {% bootstrap_field form.postprocess_script layout="horizontal" %}
- </div>
- </div>
-
- {% bootstrap_field form.native layout="horizontal" %}
- {% bootstrap_checkbox form.persistent %}
- </fieldset>
- </div>
+ {% include 'qcg/job_submit_form.html' %}
<hr>
</div>
</form>
- <div id="gridftp" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modal-label" aria-hidden="true">
+ <div id="gridftp" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="gridftp-modal-label" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
- <h4 class="modal-title" id="modal-label">Wybierz plik</h4>
+ <h4 class="modal-title" id="gridftp-modal-label">Wybierz plik</h4>
</div>
<div class="modal-body">
{% include 'filex/source.html' %}
</div>
</div>
+ <form id="template" action="." method="post" class="modal fade form-horizontal" tabindex="-1"
+ role="dialog" aria-labelledby="template-modal-label" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
+ <h4 class="modal-title" id="template-modal-label">Podaj nazwę szablonu</h4>
+ </div>
+ <div class="modal-body">
+ {% csrf_token %}
+ <input type="hidden" name="save-template" value="1">
+ {% bootstrap_field template_form.name layout="horizontal" %}
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">Anuluj</button>
+ <button type="submit" class="btn btn-primary" data-loading-text="Zapisywanie...">Zapisz</button>
+ </div>
+ </div>
+ </div>
+ </form>
+
+ {% if template %}
+ <form id="delete-modal" action="{% url 'template_delete' template.id %}" method="post" class="modal fade" tabindex="-1"
+ role="dialog" aria-labelledby="delete-modal-label" aria-hidden="true">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
+ <h4 class="modal-title" id="delete-modal-label">Usuwanie szablonu</h4>
+ </div>
+ <div class="modal-body">
+ {% csrf_token %}
+ <p>Czy na pewno usunąć szablon <em>{{ template.name }}</em>?</p>
+ </div>
+ <div class="modal-footer">
+ <button type="button" class="btn btn-default" data-dismiss="modal">Anuluj</button>
+ <button type="submit" class="btn btn-danger">Usuń</button>
+ </div>
+ </div>
+ </div>
+ </form>
+ {% endif %}
{% endblock %}