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