blob: 4c33eaa848b377d0bfe115a6aafeec1c4e3c832a [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001{% extends "basebuildpage.html" %}
Patrick Williamsf1e5d692016-03-30 15:21:19 -05002{% block title %} Packages included - {{ target.target }} {{ target.build.machine }} - {{ target.build.project.name }} - Toaster {% endblock %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -05003{% block localbreadcrumb %}
4<li>{{target.target}}</li>
5{% endblock localbreadcrumb%}
6
7{% load projecttags %}
8
9{% block nav-target %}
10 {% for t in build.get_sorted_target_list %}
11 {% ifequal target.pk t.pk %}
12 <li class="active"><a href="{% url 'target' build.pk t.pk %}">{{t.target}}</a><li>
13 {% else %}
14 <li><a href="{% url 'target' build.pk t.pk %}">{{t.target}}</a><li>
15 {% endifequal %}
16 {% endfor %}
17{% endblock %}
18
19{% block buildinfomain %}
20
21<div class="row-fluid span10">
22 <div class="page-header">
23 <h1>
24 {% if request.GET.search and objects.paginator.count > 0 %}
25 {{objects.paginator.count}} package{{objects.paginator.count|pluralize}} found
26 {% elif request.GET.search and objects.paginator.count == 0 %}
27 No packages found
28 {% else %}
29 {{target.target}}
30 {% endif %}
31 </h1>
32 </div>
33</div>
34
35<div class="row-fluid pull-right span10" id="navTab">
36 <ul class="nav nav-pills">
37 <li class="active">
38 <a href="#target">
39 <i class="icon-question-sign get-help" title="Of all the packages built, the subset installed in the root file system of this image"></i>
40 Packages included ({{target.package_count}} - {{packages_sum|filtered_filesizeformat}})
41 </a>
42 </li>
43 <li>
44 <a href="{% url 'dirinfo' build.id target.id %}">
45 <i class="icon-question-sign get-help" title="The directories and files in the root file system of this image"></i>
46 Directory structure
47 </a>
48 </li>
49 </ul>
50
51 <div id="image-packages" class="tab-pane">
52
53 {% if objects.paginator.count == 0 %}
54 <div class="row-fluid">
55 <div class="alert">
56 <form class="no-results input-append" id="searchform">
57 <input id="search" name="search" class="input-xxlarge" type="text" value="{% if request.GET.search %}{{request.GET.search}}{% endif %}"/>{% if request.GET.search %}<a href="javascript:$('#search').val('');searchform.submit()" class="add-on btn" tabindex="-1"><i class="icon-remove"></i></a>{% endif %}
58 <button class="btn" type="submit" value="Search">Search</button>
59 <button class="btn btn-link" onclick="javascript:$('#search').val('');searchform.submit()">Show all packages</button>
60 </form>
61 </div>
62 </div>
63
64
65 {% else %}
66 {% include "basetable_top.html" %}
67 {% for package in objects %}
68 <tr>
69 {# order of the table data must match the columns defined in template's context tablecols #}
70 <td class="package_name">
71 <a href="{% url 'package_included_detail' build.id target.id package.id %}">
72 {{package.name}}
73 </a>
74 {% if package.installed_name and package.name != package.installed_name %}
75 <span class="muted"> as {{package.installed_name}}</span>
76 <i class="icon-question-sign get-help hover-help" title='{{package.name|add:" was renamed at packaging time and was installed in your image as "|add:package.installed_name}}'></i>
77 {% endif %}
78 </td>
79 <td class="package_version">
80 <a href="{% url 'package_included_detail' build.id target.id package.id %}">
81 {{package.version|filtered_packageversion:package.revision}}
82 </a>
83 </td>
84 <td class="license">
85 {{package.license}}
86 </td>
87 <td class="size sizecol">
88 {{package.size|filtered_installedsize:package.installed_size|filtered_filesizeformat}}
89 </td>
90
91 <td class="size_over_total sizecol">
92 {{package|filter_sizeovertotal:packages_sum}}
93 </td>
94 <td class="depends">
95 {% with deps=package.runtime_dependencies %}
96 {% with deps_count=deps|length %}
97 {% if deps_count > 0 %}
98 <a class="btn"
99 title="<a href='{% url "package_included_dependencies" build.id target.id package.id %}'>{{package.name}}</a> dependencies"
100 data-content="<ul class='unstyled'>
101 {% for i in deps|dictsort:'depends_on.name' %}
102 <li><a href='{% url "package_included_detail" build.pk target.id i.depends_on.pk %}'>{{i.depends_on.name}}</a></li>
103 {% endfor %}
104 </ul>">
105 {{deps_count}}
106 </a>
107 {% endif %}
108 {% endwith %}
109 {% endwith %}
110 </td>
111 <td class="brought_in_by">
112 {% with rdeps=package.reverse_runtime_dependencies %}
113 {% with rdeps_count=rdeps|length %}
114 {% if rdeps_count > 0 %}
115 <a class="btn"
116 title="<a href='{% url "package_included_reverse_dependencies" build.id target.id package.id %}'>{{package.name}}</a> reverse dependencies"
117 data-content="<ul class='unstyled'>
118 {% for i in rdeps|dictsort:'package.name' %}
119 <li><a href='{% url "package_included_detail" build.id target.id i.package.id %}'>{{i.package.name}}</a></li>
120 {% endfor %}
121 </ul>">
122 {{rdeps_count}}
123 </a>
124 {% endif %}
125 {% endwith %}
126 {% endwith %}
127 </td>
128 <td class="recipe_name">
129 {% if package.recipe.version %}
130 <a href="{% url 'recipe' build.id package.recipe_id %}">
131 {{ package.recipe.name }}
132 </a>
133 {% endif %}
134 </td>
135 <td class="recipe_version">
136 {% if package.recipe.version %}
137 <a href="{% url 'recipe' build.id package.recipe_id %}">
138 {{ package.recipe.version }}
139 </a>
140 {% endif %}
141 </td>
142 <td class="layer_name">
143 {{ package.recipe.layer_version.layer.name }}
144 </td>
145 <td class="layer_branch">
146 {{ package.recipe.layer_version.branch}}
147 </td>
148 <td class="layer_commit">
149 <a class="btn"
150 data-content="<ul class='unstyled'>
151 <li>{{package.recipe.layer_version.commit}}</li>
152 </ul>">
153 {{package.recipe.layer_version.commit|truncatechars:13}}
154 </a>
155 </td>
156 </tr>
157 {% endfor %}
158
159 {% include "basetable_bottom.html" %}
160 {% endif %}
161 </div> <!-- tabpane -->
162</div> <!--span 10-->
163{% endblock buildinfomain %}