canceling jobs and tasks
[qcg-portal.git] / qcg / templates / qcg / task.html
1 {% extends 'qcg/base.html' %}
2 {% load qcg_utils staticfiles %}
3
4 {% block extra_js %}
5     {% include 'filex/source.js.html' %}
6
7     <script>
8         var filex = filex || {};
9
10         $(function () {
11             'use strict';
12
13             $('.working-dir').on('click', function() {
14                 filex.load($(this).data('url'));
15             });
16         });
17     </script>
18 {% endblock extra_js %}
19
20 {% block container %}
21     <ol class="breadcrumb">
22         <li><a href="{% url 'jobs' %}">Zadania</a></li>
23         <li><a href="{{ task.job.get_absolute_url }}">{{ task.job.job_id }}</a></li>
24         <li class="active">{{ task.task_id }}</li>
25     </ol>
26
27     <div class="pull-right">
28         {% if not task.terminated %}
29             <form action="{% url 'task_cancel' task.job.job_id task.task_id %}" method="post">
30                 {% csrf_token %}
31                 <button type="submit" class="btn btn-default">Anuluj zadanie</button>
32             </form>
33         {% endif %}
34     </div>
35
36     <h1 class="page-header">{% block title %}Task {{ task.task_id }}{% endblock %}</h1>
37
38     <div role="tabpanel">
39         <!-- Nav tabs -->
40         <ul class="nav nav-tabs" style="margin-bottom: 20px">
41             <li role="presentation" class="active"><a href="#details" data-toggle="tab">Właściwości</a></li>
42             <li role="presentation"><a href="#desc" data-toggle="tab">Opis</a></li>
43             <li role="presentation"><a href="#results" data-toggle="tab">Wyniki</a></li>
44         </ul>
45
46         <!-- Tab panes -->
47         <div class="tab-content">
48             <div role="tabpanel" class="tab-pane active" id="details">
49                 <h3>Atrybuty</h3>
50
51                 <p>
52                     {% display_attribute 'Status' task.get_status_display %}
53                     {% display_attribute 'Opis statusu' task.status_description %}
54                     {% display_attribute 'Typ' task.get_type_display %}
55                     {% display_attribute 'Notatka' task.note %}
56                     {% display_attribute 'Projekt' task.project %}
57                     {% display_attribute 'Czas życia proxy' task.proxy_lifetime|timeuntil %}
58                     {% display_attribute 'Data zlecenia' task.submission_time %}
59                     {% display_attribute 'Data rozpoczęcia' task.start_time %}
60                     {% display_attribute 'Data zakończenia' task.finish_time %}
61                     {% display_attribute 'Usunięty katalog roboczy?' task.purged %}
62                 </p>
63
64                 <h3>Alokacje</h3>
65
66                 {% if task.allocations.exists %}
67                     <ul class="list-group">
68                         {% for alloc in task.allocations.all %}
69                             <li class="list-group-item">
70                                 {% display_attribute 'Status' alloc.get_status_display %}
71                                 {% display_attribute 'Komentarz' alloc.comment %}
72                                 {% display_attribute 'Host' alloc.host_name %}
73                                 {% display_attribute 'Opis statusu' alloc.status_description %}
74                                 {% display_attribute 'Liczba procesów' alloc.processes_count %}
75                                 {% display_attribute 'Liczba rdzeni' alloc.slots_count %}
76                                 {% display_attribute 'Identyfikator grupy procesów' alloc.processes_group_id %}
77                                 {% display_attribute 'Data zlecenia' task.submission_time %}
78                                 {% display_attribute 'Przewidywana data rozpoczęcia' alloc.estimated_start_time %}
79                                 {% display_attribute 'Data zakończenia' task.finish_time %}
80                                 {% display_attribute 'Lokalna data zlecenia' task.local_submission_time %}
81                                 {% display_attribute 'Lokalna data rozpoczęcia' task.local_start_time %}
82                                 {% display_attribute 'Lokalna data zakończenia' task.local_finish_time %}
83                                 {% display_attribute 'Efektywność' alloc.efficiency %}
84                                 {% display_attribute 'Użycie pamięci' alloc.memory_usage %}
85                                 {% display_attribute 'Katalog roboczy' alloc.working_directory %}
86                                 {% display_attribute 'Usunięty katalog roboczy?' task.purged %}
87
88                                 {% if alloc.working_directory %}
89                                     <button class="btn btn-default working-dir"
90                                             data-toggle="modal" data-target="#gridftp" data-url="{{ alloc.working_directory|cut:'gsiftp://'  }}">
91                                         Przeglądaj katalog roboczy
92                                     </button>
93                                 {% endif %}
94                             </li>
95                         {% endfor %}
96                     </ul>
97                 {% else %}
98                     <div class="alert alert-info">Brak elementów</div>
99                 {% endif %}
100
101             </div>
102
103             <div role="tabpanel" class="tab-pane" id="desc">
104                 <pre>{{ task.description|format_xml }}</pre>
105             </div>
106
107             <div role="tabpanel" class="tab-pane text-center" id="results">
108                 <h3>Wizualizacja wyników</h3>
109                 <img src="{% static 'qcg/results-mock-1.png' %}" alt="..." class="img-thumbnail" style="margin: 10px">
110                 <img src="{% static 'qcg/results-mock-2.png' %}" alt="..." class="img-thumbnail" style="margin: 10px">
111                 <img src="{% static 'qcg/results-mock-3.png' %}" alt="..." class="img-thumbnail" style="margin: 10px">
112             </div>
113         </div>
114     </div>
115
116     <div id="gridftp" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modal-label" aria-hidden="true">
117         <div class="modal-dialog modal-lg">
118             <div class="modal-content">
119                 <div class="modal-header">
120                     <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
121                     <h4 class="modal-title" id="modal-label">Katalog roboczy</h4>
122                 </div>
123                 <div class="modal-body">
124                     {% include 'filex/source.html' %}
125                 </div>
126             </div>
127         </div>
128     </div>
129
130 {% endblock %}