diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates/layerdetails.html')
-rw-r--r-- | bitbake/lib/toaster/toastergui/templates/layerdetails.html | 644 |
1 files changed, 495 insertions, 149 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/layerdetails.html b/bitbake/lib/toaster/toastergui/templates/layerdetails.html index 78dc54bfd1..c69f9e945a 100644 --- a/bitbake/lib/toaster/toastergui/templates/layerdetails.html +++ b/bitbake/lib/toaster/toastergui/templates/layerdetails.html | |||
@@ -1,159 +1,505 @@ | |||
1 | {% extends "baseprojectpage.html" %} | 1 | {% extends "baseprojectpage.html" %} |
2 | {% load projecttags %} | 2 | {% load projecttags %} |
3 | {% load humanize %} | 3 | {% load humanize %} |
4 | 4 | {% load static %} | |
5 | {% block localbreadcrumb %} | 5 | {% block localbreadcrumb %} |
6 | <li>Layer Details</li> | 6 | <li><a href="{% url 'layers' %}">All Layers</a></li> |
7 | <li> | ||
8 | {{layerversion.layer.name}} ({{layerversion.commit|truncatechars:13}}) | ||
9 | </li> | ||
7 | {% endblock %} | 10 | {% endblock %} |
8 | |||
9 | {% block projectinfomain %} | 11 | {% block projectinfomain %} |
10 | <div class="page-header"> | 12 | |
11 | <h1>Layer Details</h1> | 13 | |
12 | </div> | 14 | <script src="{% static 'js/layerdetails.js' %}"></script> |
13 | 15 | <script> | |
14 | <div class="row-fluid span7 tabbable"> | 16 | |
15 | <ul class="nav nav-pills"> | 17 | $(document).ready(function (){ |
16 | <li class="active"> | 18 | var ctx = { |
17 | <a data-toggle="tab" href="#information">Layer details</a> | 19 | projectBuildUrl : "{% url 'xhr_build' %}", |
18 | </li> | 20 | layerDetailsUrl : "{% url 'layerdetails' %}", |
19 | <li> | 21 | projectPageUrl : "{% url 'project' project.id %}", |
20 | <a data-toggle="tab" href="#targets">Targets (0)</a> | 22 | xhrEditProjectUrl : "{% url 'xhr_projectedit' project.id %}", |
21 | </li> | 23 | xhrDataTypeaheadUrl : "{% url 'xhr_datatypeahead' %}", |
22 | <li> | 24 | xhrUpdateLayerUrl : "{% url 'xhr_updatelayer' %}", |
23 | <a data-toggle="tab" href="#machines">Machines (0)</a> | 25 | projectId : {{project.id}}, |
24 | </li> | 26 | numTargets : {{total_targets}}, |
25 | <li> | 27 | numMachines: {{machines|length}}, |
26 | <a data-toggle="tab" href="#classes">Classes (0)</a> | 28 | layerVersion : { |
27 | </li> | 29 | name : "{{layerversion.layer.name}}", |
28 | <li> | 30 | id : {{layerversion.id}}, |
29 | <a data-toggle="tab" href="#bbappends">bbappends (0)</a> | 31 | commit: "{{layerversion.commit}}", |
30 | </li> | 32 | inCurrentPrj : {{layer_in_project}}, |
31 | </ul> | 33 | url : "{% url 'layerdetails' layerversion.id %}", |
32 | <div class="tab-content"> | 34 | sourceId: {{layerversion.layer_source_id}}, |
33 | <div name="information" id="information" class="tab-pane active"> | 35 | } |
34 | <dl class="dl-horizontal"> | 36 | }; |
35 | <dt class=""> | 37 | |
36 | <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i> | 38 | try { |
37 | Repository URL | 39 | layerDetailsPageInit(ctx); |
38 | </dt> | 40 | } catch (e) { |
39 | <dd> | 41 | document.write("Sorry, An error has occurred loading this page"); |
40 | <form id="change-repo-form" class="control-group"> | 42 | console.warn(e); |
41 | <div class="input-append"> | 43 | } |
42 | <input type="text" class="input-xlarge" id="type-repo" value="{{layerversion.layer.vcs_url}}"> | 44 | }); |
43 | <button id="apply-change-repo" class="btn" type="button">Change</button> | 45 | </script> |
44 | <!--a href="#" id="cancel-change-repo" class="btn btn-link">Cancel</a--> | 46 | |
45 | </div> | 47 | {# If this is not an imported layer then hide the edit ui #} |
46 | <span class="help-block">Cloning this Git repository failed</span> | 48 | {% if layerversion.layer_source_id != 3 %} |
47 | </form> | 49 | <style> |
48 | </dd> | 50 | .icon-pencil { |
49 | <dt> | 51 | display:none; |
50 | <i class="icon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></i> | 52 | } |
51 | Repository subdirectory | 53 | .delete-current-value{ |
52 | </dt> | 54 | display: none; |
53 | <dd> | 55 | } |
54 | <span id="subdir">{{layerversion.dirpath}}</span> | 56 | li .icon-trash { |
55 | <i id="change-subdir" class="icon-pencil"></i> | 57 | display:none; |
56 | <i id="delete-subdir" class="icon-trash"></i> | 58 | } |
57 | <form id="change-subdir-form" style="display:none;"> | 59 | .add-deps { |
58 | <div class="input-append"> | 60 | display:none; |
59 | <input type="text" id="type-subdir" value="meta-acer"> | 61 | } |
60 | <button id="apply-change-subdir" class="btn" type="button">Change</button> | 62 | </style> |
61 | <a href="#" id="cancel-change-subdir" class="btn btn-link">Cancel</a> | 63 | {% endif %} |
62 | </div> | 64 | |
63 | </form> | 65 | {% include "layers_dep_modal.html" %} |
64 | </dd> | 66 | <div class="container-fluid top-padded"> |
65 | <dt>Brach, tag or commit</dt> | 67 | <div class="row-fluid"> |
66 | <dd> | 68 | <div class="span11"> |
67 | {{layerversion.up_branch.name}} | 69 | <div class="page-header"> |
68 | <i class="icon-pencil"></i> | 70 | <h1>{{layerversion.layer.name}} <small class="commit" data-toggle="tooltip" title="{{layerversion.commit}}">({{layerversion.commit|truncatechars:13}})</small></h1> |
69 | </dd> | 71 | </div> |
70 | <dt> | ||
71 | <i class="icon-question-sign get-help" title="The Yocto Project versions with which this layer is compatible. Currently Toaster supports Yocto Project 1.6 and 1.7"></i> | ||
72 | Yocto Project compatibility | ||
73 | </dt> | ||
74 | <dd> | ||
75 | <i class="icon-pencil"></i> | ||
76 | </dd> | ||
77 | <dt> | ||
78 | <i class="icon-question-sign get-help" title="Other layers this layer depends upon"></i> | ||
79 | Layer dependencies | ||
80 | </dt> | ||
81 | <dd> | ||
82 | <ul class="unstyled"> | ||
83 | {% for ld in layer.dependencies.all %} | ||
84 | <li> | ||
85 | <a href="#">openembedded core (meta)</a> | ||
86 | <i class="icon-trash"></i> | ||
87 | </li> | ||
88 | {% endfor %} | ||
89 | </ul> | ||
90 | <div class="input-append"> | ||
91 | <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" | ||
92 | data-provide="typeahead" data-source=' | ||
93 | ' | ||
94 | placeholder="Type a layer name" id="layer-dependency"> | ||
95 | <a class="btn" type="button" id="add-layer-dependency" disabled> | ||
96 | Add layer | ||
97 | </a> | ||
98 | </div> | ||
99 | <span class="help-block">You can only add layers Toaster knows about</span> | ||
100 | </dd> | ||
101 | </dl> | ||
102 | </div> | ||
103 | <div name="targets" id="targets" class="tab-pane"> | ||
104 | <div class="alert alert-info"> | ||
105 | <strong>There is no target data for {{layerversion.layer.name}} ... yet</strong> <br /> | ||
106 | Toaster learns about layers as they are built. Once you have used {{layerversion.layer.name}} in a build, Toaster will show you | ||
107 | here the targets it provides. | ||
108 | </div> | ||
109 | </div> | ||
110 | <div name="machines" id="machines" class="tab-pane"> | ||
111 | <div class="alert alert-info"> | ||
112 | <strong>There is no machine data for {{layerversion.layer.name}} ... yet</strong> <br /> | ||
113 | Toaster learns about layers as they are built. Once you have used {{layerversion.layer.name}} in a build, Toaster will show you | ||
114 | here the machines it provides. | ||
115 | </div> | ||
116 | </div> | ||
117 | </div> | 72 | </div> |
118 | </div> | 73 | </div> |
119 | <div class="row span4 well"> | 74 | |
120 | <h2>About {{layerversion.layer.name}}</h2> | 75 | <div class="row-fluid"> |
121 | <dl> | 76 | <div class="span7"> |
122 | 77 | <div class="tabbable"> | |
123 | <dt> | 78 | <div class="alert alert-info lead" id="alert-area" style="display:none"> |
124 | Summary | 79 | <button type="button" class="close" id="dismiss-alert" data-dismiss="alert">×</button> |
125 | <i class="icon-question-sign get-help" title="One-line description of the layer"></i> | 80 | <span id="alert-msg"></span> |
126 | </dt> | 81 | <p style="margin-top:10px;"><a href="{% url 'project' project.id %}">Go to project configuration</a></p> |
127 | <dd> | 82 | </div> |
128 | <span >{{layerversion.layer.summary}}</span> | 83 | <ul class="nav nav-pills"> |
129 | <i class="icon-pencil"></i> | 84 | <li class="active"> |
130 | </dd> | 85 | <a data-toggle="tab" href="#information" id="details-tab">Layer details</a> |
131 | <!--form> | 86 | </li> |
132 | <textarea class="span12" rows="2"></textarea> | 87 | <li> |
133 | <button class="btn" type="button">Change</button> | 88 | <a data-toggle="tab" href="#targets" id="targets-tab">Targets ({{total_targets}})</a> |
134 | <a href="#" class="btn btn-link">Cancel</a> | 89 | </li> |
135 | </form--> | 90 | <li> |
136 | <dt> | 91 | <a data-toggle="tab" href="#machines" id="machines-tab">Machines ({{total_machines}})</a> |
137 | Description | 92 | </li> |
138 | </dt> | 93 | </ul> |
139 | <dd> | 94 | </div> |
140 | <span >{{layerversion.layer.description}}</span> | 95 | <div class="tab-content"> |
141 | <i class="icon-pencil"></i> | 96 | <span class="button-place"> |
142 | </dd> | 97 | {% if layer_in_project == 0 %} |
143 | <!--form> | 98 | <button id="add-remove-layer-btn" data-directive="add" class="btn btn-large btn-block"> |
144 | <textarea class="span12" rows="6"></textarea> | 99 | <span class="icon-plus"></span> |
145 | <button class="btn" type="button">Change</button> | 100 | Add the {{layerversion.layer.name}} layer to your project |
146 | <a href="#" class="btn btn-link">Cancel</a> | 101 | </button> |
147 | </form--> | 102 | {% else %} |
148 | <dt> | 103 | <button id="add-remove-layer-btn" data-directive="remove" class="btn btn-block btn-large btn-danger"> |
149 | Maintainer(s) | 104 | <span class="icon-trash"></span> |
150 | </dt> | 105 | Delete the {{layerversion.layer.name}} layer from your project |
151 | <dd> | 106 | </button> |
152 | <span class="muted">Not set</span> | 107 | {% endif %} |
153 | <i class="icon-pencil"></i> | 108 | </span> |
154 | </dd> | 109 | |
155 | </dl> | 110 | <!-- layer details pane --> |
156 | </div> | 111 | <div name="information" id="information" class="tab-pane active"> |
112 | <dl class="dl-horizontal"> | ||
113 | <dt class=""> | ||
114 | <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i> | ||
115 | Repository URL | ||
116 | </dt> | ||
117 | <dd> | ||
118 | <span class="current-value">{{layerversion.layer.vcs_url}}</span> | ||
119 | {% if layerversion.get_vcs_link_url %} | ||
120 | <a href="{{layerversion.get_vcs_link_url}}/" class="icon-share get-info"></a> | ||
121 | {% endif %} | ||
122 | <form id="change-repo-form" class="control-group" style="display:none"> | ||
123 | <div class="input-append"> | ||
124 | <input type="text" class="input-xlarge" value="{{layerversion.layer.vcs_url}}"> | ||
125 | <button data-layer-prop="vcs_url" class="btn change-btn" type="button">Save</button> | ||
126 | <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a> | ||
127 | </div> | ||
128 | </form> | ||
129 | <i class="icon-pencil" ></i> | ||
130 | </dd> | ||
131 | <dt> | ||
132 | <i class="icon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></i> | ||
133 | Repository subdirectory | ||
134 | </dt> | ||
135 | <dd> | ||
136 | <span class="muted" style="display:none">Not set</span> | ||
137 | <span class="current-value">{{layerversion.dirpath}}</span> | ||
138 | {% if layerversion.get_vcs_dirpath_link_url %} | ||
139 | <a href="{{layerversion.get_vcs_dirpath_link_url}}" class="icon-share get-info"></a> | ||
140 | {% endif %} | ||
141 | <form id="change-subdir-form" style="display:none;"> | ||
142 | <div class="input-append"> | ||
143 | <input type="text" value="{{layerversion.dirpath}}"> | ||
144 | <button data-layer-prop="dirpath" class="btn change-btn" type="button">Save</button> | ||
145 | <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a> | ||
146 | </div> | ||
147 | </form> | ||
148 | <i id="change-subdir" class="icon-pencil"></i> | ||
149 | <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> | ||
150 | </dd> | ||
151 | <dt>Brach, tag or commit</dt> | ||
152 | <dd> | ||
153 | <span class="current-value">{{layerversion.commit}}</span> | ||
154 | <form style="display:none;"> | ||
155 | <div class="input-append"> | ||
156 | <input type="text" value="{{layerversion.commit}}"> | ||
157 | <button data-layer-prop="commit" class="btn change-btn" type="button">Save</button> | ||
158 | <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a> | ||
159 | </div> | ||
160 | </form> | ||
161 | <i class="icon-pencil"></i> | ||
162 | </dd> | ||
163 | <dt> | ||
164 | <i class="icon-question-sign get-help" title="The Yocto Project versions with which this layer is compatible. Currently Toaster supports Yocto Project 1.6 and 1.7"></i> | ||
165 | Yocto Project compatibility | ||
166 | </dt> | ||
167 | <dd> | ||
168 | <span class="current-value">{{layerversion.up_branch.name}}</span> | ||
169 | <form style="display:none"> | ||
170 | <div class="input-append"> | ||
171 | <select name="projectversion" id="projectversion"> | ||
172 | {% for compat in yocto_compat %} | ||
173 | <option value="{{compat.id}}" {%if layerversion.up_branch.id == compat.id %} selected{%endif%}>{{compat.name}}</option> | ||
174 | {% endfor %} | ||
175 | </select> | ||
176 | <button data-layer-prop="up_branch" class="btn change-btn" type="button">Save</button> | ||
177 | <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a> | ||
178 | </div> | ||
179 | </form> | ||
180 | <i class="icon-pencil"></i> | ||
181 | </dd> | ||
182 | <dt> | ||
183 | <i class="icon-question-sign get-help" title="Other layers this layer depends upon"></i> | ||
184 | Layer dependencies | ||
185 | </dt> | ||
186 | <dd> | ||
187 | <ul class="unstyled" id="layer-deps-list"> | ||
188 | {% for ld in layerversion.dependencies.all %} | ||
189 | <span class="current-value"> | ||
190 | <li data-layer-id="{{ld.depends_on.id}}"> | ||
191 | <!-- TODO use ld.depends_on.get_vcs_reference instead of commit --> | ||
192 | <a data-toggle="tooltip" title="{{ld.depends_on.layer.vcs_url}} | {{ld.depends_on.commit}}" href="{% url 'layerdetails' ld.depends_on.id %}">{{ld.depends_on.layer.name}}</a> | ||
193 | <span class="icon-trash " data-toggle="tooltip" title="Delete"></span> | ||
194 | </li> | ||
195 | </span> | ||
196 | {% endfor %} | ||
197 | </ul> | ||
198 | <div class="input-append add-deps"> | ||
199 | <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input"> | ||
200 | <a class="btn" type="button" id="add-layer-dependency-btn" disabled> | ||
201 | Add layer | ||
202 | </a> | ||
203 | </div> | ||
204 | <span class="help-block add-deps">You can only add layers Toaster knows about</span> | ||
205 | </dd> | ||
206 | </dl> | ||
207 | </div> | ||
208 | <!-- targets tab --> | ||
209 | <div name="targets" id="targets" class="tab-pane"> | ||
210 | {% if total_targets == 0 %} | ||
211 | <div class="alert alert-info"> | ||
212 | <strong>There is no target data for {{layerversion.layer.name}} ... yet</strong> <br /> | ||
213 | Toaster learns about layers as they are built. Once you have used {{layerversion.layer.name}} in a build, Toaster will show you | ||
214 | here the targets it provides. | ||
215 | </div> | ||
216 | {% else %} | ||
217 | |||
218 | <div class="row-fluid"> | ||
219 | |||
220 | {% if targets.paginator.count == 0 %} | ||
221 | <div class="alert"> | ||
222 | <h3>No targets found</h3> | ||
223 | {% endif %} | ||
224 | |||
225 | {# only show the search form if we have more than 10 results #} | ||
226 | {% if targets.paginator.count > 10 or request.GET.targets_search %} | ||
227 | {% if targets.paginator.count == 0 %} | ||
228 | <form class="input-append"> | ||
229 | {% else %} | ||
230 | <form class="navbar-search input-append pull-left"> | ||
231 | {% endif %} | ||
232 | |||
233 | <input type="text" id="target-search" name="targets_search" placeholder="Search targets" class="input-xlarge" value="{{request.GET.targets_search}}"> | ||
234 | {% if request.GET.targets_search %} | ||
235 | <a class="add-on btn" id="target-search-clear"> | ||
236 | <i class="icon-remove"></i> | ||
237 | </a> | ||
238 | {% endif %} | ||
239 | <button type="submit" class="btn">Search</button> | ||
240 | </form> | ||
241 | {% endif %} | ||
242 | |||
243 | {% if targets.paginator.count == 0 %} | ||
244 | <!-- end alert --> | ||
245 | </div> | ||
246 | <!-- end row-fluid --> | ||
247 | </div> | ||
248 | {% else %} | ||
249 | |||
250 | <div class="pull-right"> | ||
251 | <span class="help-inline" style="padding-top:5px;">Show rows:</span> | ||
252 | <select style="margin-top:5px;margin-bottom:0px;" class="pagesize"> | ||
253 | {% with "10 25 50 100 150" as list%} | ||
254 | {% for i in list.split %} | ||
255 | {% if request.session.limit == i %} | ||
256 | <option value="{{i}}" selected>{{i}}</option> | ||
257 | {% else %} | ||
258 | <option value="{{i}}">{{i}}</option> | ||
259 | {% endif %} | ||
260 | {% endfor %} | ||
261 | {% endwith %} | ||
262 | </select> | ||
263 | </div> | ||
264 | </div> | ||
265 | |||
266 | <table class="table table-bordered table-hover"> | ||
267 | <thead> | ||
268 | <tr> | ||
269 | <th> | ||
270 | <i class="icon-question-sign get-help" title="Information about a single piece of software, including where to download the source, configuration options, how to compile the source files and how to package the compiled output"></i> | ||
271 | Target | ||
272 | {% if request.GET.targets_search %} | ||
273 | <span class="badge badge-info">{{targets.paginator.count}}</span> | ||
274 | {% endif %} | ||
275 | </th> | ||
276 | <th> | ||
277 | <i class="icon-question-sign get-help" title="The recipe version and revision"></i> | ||
278 | Target version | ||
279 | </th> | ||
280 | <th class="span4">Description</th> | ||
281 | <th>Build target</th> | ||
282 | </tr> | ||
283 | </thead> | ||
284 | <tbody> | ||
285 | {% for target in targets %} | ||
286 | <tr> | ||
287 | <td> | ||
288 | {{target.name}} | ||
289 | {% if target.up_id %} | ||
290 | <a href="http://layers.openembedded.org/layerindex/recipe/{{target.up_id}}/" class="icon-share get-info"></a> | ||
291 | {% endif %} | ||
292 | </td> | ||
293 | <td>{{target.version}}</td> | ||
294 | <td>{{target.summary}}</td> | ||
295 | <td><button class="btn btn-block build-target-btn" data-target-name="{{target.name}}" {% if layer_in_project == 0 %}disabled="disabled"{% endif %} >Build Target</button></td> | ||
296 | </tr> | ||
297 | {% endfor %} | ||
298 | </tbody> | ||
299 | </table> | ||
300 | |||
301 | <!-- Show pagination controls --> | ||
302 | <div class="pagination"> | ||
303 | <ul> | ||
304 | {%if targets.has_previous %} | ||
305 | <li><a href="?tpage={{targets.previous_page_number}}{{request.GET.limit}}#targets">«</a></li> | ||
306 | {%else%} | ||
307 | <li class="disabled"><a href="#">«</a></li> | ||
308 | {%endif%} | ||
309 | {% for i in targets.paginator.page_range %} | ||
310 | <li {%if i == targets.number %} class="active" {%endif%}><a href="?tpage={{i}}#targets">{{i}}</a></li> | ||
311 | {% endfor %} | ||
312 | {%if targets.has_next%} | ||
313 | <li><a href="?tpage={{targets.next_page_number}}#targets">»</a></li> | ||
314 | {%else%} | ||
315 | <li class="disabled"><a href="#">»</a></li> | ||
316 | {%endif%} | ||
317 | </ul> | ||
318 | <div class="pull-right"> | ||
319 | <span class="help-inline" style="padding-top:5px;">Show rows:</span> | ||
320 | <select style="margin-top:5px;margin-bottom:0px;" class="pagesize"> | ||
321 | {% with "10 25 50 100 150" as list%} | ||
322 | {% for i in list.split %} | ||
323 | {% if request.session.limit == i %} | ||
324 | <option value="{{i}}" selected>{{i}}</option> | ||
325 | {% else %} | ||
326 | <option value="{{i}}">{{i}}</option> | ||
327 | {% endif %} | ||
328 | {% endfor %} | ||
329 | {% endwith %} | ||
330 | </select> | ||
331 | </div> | ||
332 | </div> | ||
333 | {% endif %} | ||
334 | {% endif %} | ||
335 | </div> | ||
336 | |||
337 | |||
338 | <div name="machines" id="machines" class="tab-pane"> | ||
339 | {% if total_machines == 0 %} | ||
340 | <div class="alert alert-info"> | ||
341 | <strong>There is no machine data for {{layerversion.layer.name}} ... yet</strong> <br /> | ||
342 | Toaster learns about layers as they are built. Once you have used {{layerversion.layer.name}} in a build, Toaster will show you | ||
343 | here the machines it provides. | ||
344 | </div> | ||
345 | {% else %} | ||
346 | |||
347 | <div class="row-fluid"> | ||
348 | |||
349 | {% if machines.paginator.count == 0 %} | ||
350 | <div class="alert"> | ||
351 | <h3>No machines found</h3> | ||
352 | {% endif %} | ||
353 | |||
354 | {# only show the search form if we have more than 10 results #} | ||
355 | {% if machines.paginator.count > 10 or request.GET.machines_search %} | ||
356 | {% if machines.paginator.count == 0 %} | ||
357 | <form class="input-append"> | ||
358 | {% else %} | ||
359 | <form class="navbar-search input-append pull-left"> | ||
360 | {% endif %} | ||
361 | |||
362 | <input type="text" id="machine-search" name="machines_search" placeholder="Search machines" class="input-xlarge" value="{{request.GET.machines_search}}"> | ||
363 | {% if request.GET.machines_search %} | ||
364 | <a class="add-on btn" id="machine-search-clear"> | ||
365 | <i class="icon-remove"></i> | ||
366 | </a> | ||
367 | {% endif %} | ||
368 | <button type="submit" class="btn">Search</button> | ||
369 | </form> | ||
370 | {% endif %} | ||
371 | |||
372 | {% if machines.paginator.count == 0 %} | ||
373 | <!-- end alert --> | ||
374 | </div> | ||
375 | <!-- end row-fluid --> | ||
376 | </div> | ||
377 | {% else %} | ||
378 | |||
379 | <div class="pull-right"> | ||
380 | <span class="help-inline" style="padding-top:5px;">Show rows:</span> | ||
381 | <select style="margin-top:5px;margin-bottom:0px;" class="pagesize"> | ||
382 | {% with "10 25 50 100 150" as list%} | ||
383 | {% for i in list.split %} | ||
384 | {% if request.session.limit == i %} | ||
385 | <option value="{{i}}" selected>{{i}}</option> | ||
386 | {% else %} | ||
387 | <option value="{{i}}">{{i}}</option> | ||
388 | {% endif %} | ||
389 | {% endfor %} | ||
390 | {% endwith %} | ||
391 | </select> | ||
392 | </div> | ||
393 | </div> | ||
394 | |||
395 | <table class="table table-bordered table-hover"> | ||
396 | <thead> | ||
397 | <tr> | ||
398 | <th> | ||
399 | <i class="icon-question-sign get-help" title="The machine is the hardware for which you are building"></i> | ||
400 | Machine | ||
401 | {% if request.GET.machines_search %} | ||
402 | <span class="badge badge-info">{{machines.paginator.count}}</span> | ||
403 | {% endif %} | ||
404 | </th> | ||
405 | <th>Description</th> | ||
406 | <th>Select machine</th> | ||
407 | </tr> | ||
408 | </thead> | ||
409 | <tbody> | ||
410 | {% for machine in machines %} | ||
411 | <tr> | ||
412 | <td>{{machine.name}}</td> | ||
413 | <td>{{machine.description}}</td> | ||
414 | <td><button class="btn btn-block select-machine-btn" data-machine-name="{{machine.name}}" {% if layer_in_project == 0 %}disabled="disabled"{% endif %}}>Select machine</button></td> | ||
415 | </tr> | ||
416 | {% endfor %} | ||
417 | </tbody> | ||
418 | </table> | ||
419 | |||
420 | <!-- Show pagination controls --> | ||
421 | <div class="pagination"> | ||
422 | <ul> | ||
423 | {%if machines.has_previous %} | ||
424 | <li><a href="?mpage={{machines.previous_page_number}}{{request.GET.limit}}#machines">«</a></li> | ||
425 | {%else%} | ||
426 | <li class="disabled"><a href="#">«</a></li> | ||
427 | {%endif%} | ||
428 | {% for i in machines.paginator.page_range %} | ||
429 | <li {%if i == machines.number %} class="active" {%endif%}><a href="?mpage={{i}}#machines">{{i}}</a></li> | ||
430 | {% endfor %} | ||
431 | {%if machines.has_next%} | ||
432 | <li><a href="?mpage={{machines.next_page_number}}#machines">»</a></li> | ||
433 | {%else%} | ||
434 | <li class="disabled"><a href="#">»</a></li> | ||
435 | {%endif%} | ||
436 | </ul> | ||
437 | <div class="pull-right"> | ||
438 | <span class="help-inline" style="padding-top:5px;">Show rows:</span> | ||
439 | <select style="margin-top:5px;margin-bottom:0px;" class="pagesize"> | ||
440 | {% with "10 25 50 100 150" as list%} | ||
441 | {% for i in list.split %} | ||
442 | {% if request.session.limit == i %} | ||
443 | <option value="{{i}}" selected>{{i}}</option> | ||
444 | {% else %} | ||
445 | <option value="{{i}}">{{i}}</option> | ||
446 | {% endif %} | ||
447 | {% endfor %} | ||
448 | {% endwith %} | ||
449 | </select> | ||
450 | </div> | ||
451 | </div> | ||
452 | {% endif %} | ||
453 | {% endif %} | ||
454 | </div> | ||
455 | </div> | ||
456 | </div> | ||
457 | <div class="row span4 well"> | ||
458 | <h2>About {{layerversion.layer.name}}</h2> | ||
459 | <dl> | ||
460 | |||
461 | <dt> | ||
462 | Summary | ||
463 | <i class="icon-question-sign get-help" title="One-line description of the layer"></i> | ||
464 | </dt> | ||
465 | <dd> | ||
466 | <span class="muted" style="display:none">Not set</span> | ||
467 | <span class="current-value">{{layerversion.layer.summary}}</span> | ||
468 | <form style="display:none; margin-bottom:20px"> | ||
469 | <textarea class="span12" rows="2">{% if layerversion.layer.summary %}{{layerversion.layer.summary}}{% endif %}</textarea> | ||
470 | <button class="btn change-btn" data-layer-prop="summary" type="button">Save</button> | ||
471 | <a href="#" class="btn btn-link cancel">Cancel</a> | ||
472 | </form> | ||
473 | <i class="icon-pencil"></i> | ||
474 | <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> | ||
475 | </dd> | ||
476 | <dt> | ||
477 | Description | ||
478 | </dt> | ||
479 | <dd> | ||
480 | <span class="muted" style="display:none">Not set</span> | ||
481 | <span class="current-value">{{layerversion.layer.description}}</span> | ||
482 | <form style="display:none; margin-bottom:20px"> | ||
483 | <textarea class="span12" rows="6">{% if layerversion.layer.description %}{{layerversion.layer.description}}{% endif %}</textarea> | ||
484 | <button class="btn change-btn" data-layer-prop="description" type="button" >Save</button> | ||
485 | <a href="#" class="btn btn-link cancel">Cancel</a> | ||
486 | </form> | ||
487 | <i class="icon-pencil"></i> | ||
488 | <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> | ||
489 | </dd> | ||
490 | </dd> | ||
491 | {% if layerversion.layer.up_id %} | ||
492 | <dt>Layer index</dt> | ||
493 | <dd> | ||
494 | <a href="http://layers.openembedded.org/layerindex/branch/{{layerversion.up_branch.name}}/layer/{{layerversion.layer.name}}"/>layer index link</a> | ||
495 | |||
496 | </dd> | ||
497 | {% endif %} | ||
157 | 498 | ||
499 | </dl> | ||
500 | </div> | ||
158 | 501 | ||
502 | </div> | ||
503 | </div> | ||
504 | </div> | ||
159 | {% endblock %} | 505 | {% endblock %} |