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