mirror of
https://git.yoctoproject.org/poky
synced 2026-03-30 08:02:22 +02:00
Align horizontally the pagination and show rows controls at the bottom of the layer details page. (Bitbake rev: 8be4a8cf1673112e9e613e719fa6ed96dbca8976) Signed-off-by: Belen Barros Pena <belen.barros.pena@intel.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
490 lines
22 KiB
HTML
490 lines
22 KiB
HTML
{% extends "baseprojectpage.html" %}
|
|
{% load projecttags %}
|
|
{% load humanize %}
|
|
{% load static %}
|
|
{% block localbreadcrumb %}
|
|
<li><a href="{% url 'layers' %}">All layers</a></li>
|
|
<li>
|
|
{{layerversion.layer.name}} ({{layerversion.commit|truncatechars:13}})
|
|
</li>
|
|
{% endblock %}
|
|
{% block projectinfomain %}
|
|
|
|
|
|
<script src="{% static 'js/layerdetails.js' %}"></script>
|
|
<script>
|
|
|
|
$(document).ready(function (){
|
|
var ctx = {
|
|
projectBuildUrl : "{% url 'xhr_build' %}",
|
|
layerDetailsUrl : "{% url 'layerdetails' %}",
|
|
projectPageUrl : "{% url 'project' project.id %}",
|
|
xhrEditProjectUrl : "{% url 'xhr_projectedit' project.id %}",
|
|
xhrDataTypeaheadUrl : "{% url 'xhr_datatypeahead' %}",
|
|
xhrUpdateLayerUrl : "{% url 'xhr_updatelayer' %}",
|
|
projectId : {{project.id}},
|
|
projectName : "{{project.name}}",
|
|
numTargets : {{total_targets}},
|
|
numMachines: {{machines|length}},
|
|
layerVersion : {
|
|
name : "{{layerversion.layer.name}}",
|
|
id : {{layerversion.id}},
|
|
commit: "{{layerversion.commit}}",
|
|
inCurrentPrj : {{layer_in_project}},
|
|
url : "{% url 'layerdetails' layerversion.id %}",
|
|
sourceId: {{layerversion.layer_source_id}},
|
|
}
|
|
};
|
|
|
|
try {
|
|
layerDetailsPageInit(ctx);
|
|
} catch (e) {
|
|
document.write("Sorry, An error has occurred loading this page");
|
|
console.warn(e);
|
|
}
|
|
});
|
|
</script>
|
|
|
|
{# If this is not an imported layer then hide the edit ui #}
|
|
{% if layerversion.layer_source_id != 3 %}
|
|
<style>
|
|
.icon-pencil {
|
|
display:none;
|
|
}
|
|
.delete-current-value{
|
|
display: none;
|
|
}
|
|
li .icon-trash {
|
|
display:none;
|
|
}
|
|
.add-deps {
|
|
display:none;
|
|
}
|
|
</style>
|
|
{% endif %}
|
|
|
|
{% include "layers_dep_modal.html" %}
|
|
<div class="row-fluid span11">
|
|
<div class="page-header">
|
|
<h1>{{layerversion.layer.name}} <small class="commit" data-toggle="tooltip" title="{{layerversion.commit}}">({{layerversion.commit|truncatechars:13}})</small></h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row-fluid span7 tabbable">
|
|
<div class="alert alert-info lead" id="alert-area" style="display:none">
|
|
<button type="button" class="close" id="dismiss-alert" data-dismiss="alert">×</button>
|
|
<span id="alert-msg"></span>
|
|
</div>
|
|
<ul class="nav nav-pills">
|
|
<li class="active">
|
|
<a data-toggle="tab" href="#information" id="details-tab">Layer details</a>
|
|
</li>
|
|
<li>
|
|
<a data-toggle="tab" href="#targets" id="targets-tab">Targets ({{total_targets}})</a>
|
|
</li>
|
|
<li>
|
|
<a data-toggle="tab" href="#machines" id="machines-tab">Machines ({{total_machines}})</a>
|
|
</li>
|
|
</ul>
|
|
<div class="tab-content">
|
|
<span class="button-place">
|
|
{% if layer_in_project == 0 %}
|
|
<button id="add-remove-layer-btn" data-directive="add" class="btn btn-large btn-block">
|
|
<span class="icon-plus"></span>
|
|
Add the {{layerversion.layer.name}} layer to your project
|
|
</button>
|
|
{% else %}
|
|
<button id="add-remove-layer-btn" data-directive="remove" class="btn btn-block btn-large btn-danger">
|
|
<span class="icon-trash"></span>
|
|
Delete the {{layerversion.layer.name}} layer from your project
|
|
</button>
|
|
{% endif %}
|
|
</span>
|
|
|
|
<!-- layer details pane -->
|
|
<div name="information" id="information" class="tab-pane active">
|
|
<dl class="dl-horizontal">
|
|
<dt class="">
|
|
<i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i>
|
|
Repository URL
|
|
</dt>
|
|
<dd>
|
|
<span class="current-value">{{layerversion.layer.vcs_url}}</span>
|
|
{% if layerversion.get_vcs_link_url %}
|
|
<a href="{{layerversion.get_vcs_link_url}}/" class="icon-share get-info"></a>
|
|
{% endif %}
|
|
<form id="change-repo-form" class="control-group" style="display:none">
|
|
<div class="input-append">
|
|
<input type="text" class="input-xlarge" value="{{layerversion.layer.vcs_url}}">
|
|
<button data-layer-prop="vcs_url" class="btn change-btn" type="button">Save</button>
|
|
<a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
|
|
</div>
|
|
</form>
|
|
<i class="icon-pencil" ></i>
|
|
</dd>
|
|
<dt>
|
|
<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>
|
|
Repository subdirectory
|
|
</dt>
|
|
<dd>
|
|
<span class="muted" style="display:none">Not set</span>
|
|
<span class="current-value">{{layerversion.dirpath}}</span>
|
|
{% if layerversion.get_vcs_dirpath_link_url %}
|
|
<a href="{{layerversion.get_vcs_dirpath_link_url}}" class="icon-share get-info"></a>
|
|
{% endif %}
|
|
<form id="change-subdir-form" style="display:none;">
|
|
<div class="input-append">
|
|
<input type="text" value="{{layerversion.dirpath}}">
|
|
<button data-layer-prop="dirpath" class="btn change-btn" type="button">Save</button>
|
|
<a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
|
|
</div>
|
|
</form>
|
|
<i id="change-subdir" class="icon-pencil"></i>
|
|
<span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
|
|
</dd>
|
|
<dt>Brach, tag or commit</dt>
|
|
<dd>
|
|
<span class="current-value">{{layerversion.commit}}</span>
|
|
<form style="display:none;">
|
|
<div class="input-append">
|
|
<input type="text" value="{{layerversion.commit}}">
|
|
<button data-layer-prop="commit" class="btn change-btn" type="button">Save</button>
|
|
<a href="#" style="display:none" class="btn btn-link cancel">Cancel</a>
|
|
</div>
|
|
</form>
|
|
<i class="icon-pencil"></i>
|
|
</dd>
|
|
<dt>
|
|
<i class="icon-question-sign get-help" title="Other layers this layer depends upon"></i>
|
|
Layer dependencies
|
|
</dt>
|
|
<dd>
|
|
<ul class="unstyled" id="layer-deps-list">
|
|
{% for ld in layerversion.dependencies.all %}
|
|
<span class="current-value">
|
|
<li data-layer-id="{{ld.depends_on.id}}">
|
|
<!-- TODO use ld.depends_on.get_vcs_reference instead of commit -->
|
|
<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>
|
|
<span class="icon-trash " data-toggle="tooltip" title="Delete"></span>
|
|
</li>
|
|
</span>
|
|
{% endfor %}
|
|
</ul>
|
|
<div class="input-append add-deps">
|
|
<input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input">
|
|
<a class="btn" type="button" id="add-layer-dependency-btn" disabled>
|
|
Add layer
|
|
</a>
|
|
</div>
|
|
<span class="help-block add-deps">You can only add layers Toaster knows about</span>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<!-- targets tab -->
|
|
<div name="targets" id="targets" class="tab-pane">
|
|
{% if total_targets == 0 %}
|
|
<div class="alert alert-info">
|
|
There is no target information for the <strong> {{layerversion.layer.name}} </strong> layer.
|
|
</div>
|
|
{% else %}
|
|
|
|
<div class="row-fluid">
|
|
|
|
{% if targets.paginator.count == 0 %}
|
|
<div class="alert">
|
|
<h3>No targets found</h3>
|
|
{% endif %}
|
|
|
|
{# only show the search form if we have more than 10 results #}
|
|
{% if targets.paginator.count > 10 or request.GET.targets_search %}
|
|
{% if targets.paginator.count == 0 %}
|
|
<form class="input-append">
|
|
{% else %}
|
|
<form class="navbar-search input-append pull-left">
|
|
{% endif %}
|
|
|
|
<input type="text" id="target-search" name="targets_search" placeholder="Search targets" class="input-xlarge" value="{{request.GET.targets_search}}">
|
|
{% if request.GET.targets_search %}
|
|
<a class="add-on btn target-search-clear">
|
|
<i class="icon-remove"></i>
|
|
</a>
|
|
{% endif %}
|
|
<button type="submit" class="btn">Search</button>
|
|
{% if targets.paginator.count == 0 %}
|
|
<button type="submit" class="btn btn-link target-search-clear">Show all targets</a>
|
|
{% endif %}
|
|
</form>
|
|
{% endif %}
|
|
|
|
{% if targets.paginator.count == 0 %}
|
|
<!-- end alert -->
|
|
</div>
|
|
<!-- end row-fluid -->
|
|
</div>
|
|
{% else %}
|
|
|
|
{% if total_targets > 10 %}
|
|
<div class="pull-right">
|
|
<span class="help-inline" style="padding-top:5px;">Show rows:</span>
|
|
<select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
|
|
{% with "10 25 50 100 150" as list%}
|
|
{% for i in list.split %}
|
|
{% if request.session.limit == i %}
|
|
<option value="{{i}}" selected>{{i}}</option>
|
|
{% else %}
|
|
<option value="{{i}}">{{i}}</option>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endwith %}
|
|
</select>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
<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>
|
|
Target
|
|
{% if request.GET.targets_search %}
|
|
<span class="badge badge-info">{{targets.paginator.count}}</span>
|
|
{% endif %}
|
|
</th>
|
|
<th>
|
|
<i class="icon-question-sign get-help" title="The recipe version and revision"></i>
|
|
Target version
|
|
</th>
|
|
<th class="span4">Description</th>
|
|
<th class="span2">Build target</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for target in targets %}
|
|
<tr>
|
|
<td>
|
|
{{target.name}}
|
|
{% if target.up_id %}
|
|
<a href="{{target.get_layersource_view_url}}" class="icon-share get-info" target="_blank"></a>
|
|
{% endif %}
|
|
</td>
|
|
<td>{{target.version}}</td>
|
|
<td>{{target.summary}}</td>
|
|
<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>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
|
|
{% if total_targets > 10 %}
|
|
<!-- Show pagination controls -->
|
|
<div class="pagination">
|
|
<ul>
|
|
{%if targets.has_previous %}
|
|
<li><a href="?tpage={{targets.previous_page_number}}{{request.GET.limit}}#targets">«</a></li>
|
|
{%else%}
|
|
<li class="disabled"><a href="#">«</a></li>
|
|
{%endif%}
|
|
{% for i in targets.paginator.page_range %}
|
|
<li {%if i == targets.number %} class="active" {%endif%}><a href="?tpage={{i}}#targets">{{i}}</a></li>
|
|
{% endfor %}
|
|
{%if targets.has_next%}
|
|
<li><a href="?tpage={{targets.next_page_number}}#targets">»</a></li>
|
|
{%else%}
|
|
<li class="disabled"><a href="#">»</a></li>
|
|
{%endif%}
|
|
</ul>
|
|
<div class="pull-right">
|
|
<span class="help-inline" style="padding-bottom:10px;">Show rows:</span>
|
|
<select class="pagesize">
|
|
{% with "10 25 50 100 150" as list%}
|
|
{% for i in list.split %}
|
|
{% if request.session.limit == i %}
|
|
<option value="{{i}}" selected>{{i}}</option>
|
|
{% else %}
|
|
<option value="{{i}}">{{i}}</option>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endwith %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
|
|
|
|
<div name="machines" id="machines" class="tab-pane">
|
|
{% if total_machines == 0 %}
|
|
<div class="alert alert-info">
|
|
There is no machine information for the <strong>{{layerversion.layer.name}}</strong> layer.
|
|
</div>
|
|
{% else %}
|
|
|
|
<div class="row-fluid">
|
|
|
|
{% if machines.paginator.count == 0 %}
|
|
<div class="alert">
|
|
<h3>No machines found</h3>
|
|
{% endif %}
|
|
|
|
{# only show the search form if we have more than 10 results #}
|
|
{% if machines.paginator.count > 10 or request.GET.machines_search %}
|
|
{% if machines.paginator.count == 0 %}
|
|
<form class="input-append">
|
|
{% else %}
|
|
<form class="navbar-search input-append pull-left">
|
|
{% endif %}
|
|
|
|
<input type="text" id="machine-search" name="machines_search" placeholder="Search machines" class="input-xlarge" value="{{request.GET.machines_search}}">
|
|
{% if request.GET.machines_search %}
|
|
<a class="add-on btn machine-search-clear">
|
|
<i class="icon-remove"></i>
|
|
</a>
|
|
{% endif %}
|
|
<button type="submit" class="btn">Search</button>
|
|
{% if machines.paginator.count == 0 %}
|
|
<button type="submit" class="btn btn-link machine-search-clear">Show all machines</a>
|
|
{% endif %}
|
|
</form>
|
|
{% endif %}
|
|
|
|
{% if machines.paginator.count == 0 %}
|
|
<!-- end alert -->
|
|
</div>
|
|
<!-- end row-fluid -->
|
|
</div>
|
|
|
|
{% else %}
|
|
|
|
{% if total_machines > 10 %}
|
|
<div class="pull-right">
|
|
<span class="help-inline" style="padding-top:5px;">Show rows:</span>
|
|
<select style="margin-top:5px;margin-bottom:0px;" class="pagesize">
|
|
{% with "10 25 50 100 150" as list%}
|
|
{% for i in list.split %}
|
|
{% if request.session.limit == i %}
|
|
<option value="{{i}}" selected>{{i}}</option>
|
|
{% else %}
|
|
<option value="{{i}}">{{i}}</option>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endwith %}
|
|
</select>
|
|
</div>
|
|
{% endif %}
|
|
|
|
</div>
|
|
|
|
<table class="table table-bordered table-hover">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
<i class="icon-question-sign get-help" title="The machine is the hardware for which you are building"></i>
|
|
Machine
|
|
{% if request.GET.machines_search %}
|
|
<span class="badge badge-info">{{machines.paginator.count}}</span>
|
|
{% endif %}
|
|
</th>
|
|
<th>Description</th>
|
|
<th class="span2">Select machine</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for machine in machines %}
|
|
<tr>
|
|
<td>{{machine.name}}</td>
|
|
<td>{{machine.description}}</td>
|
|
<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>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
|
|
{% if total_machines > 10 %}
|
|
<!-- Show pagination controls -->
|
|
<div class="pagination">
|
|
<ul>
|
|
{%if machines.has_previous %}
|
|
<li><a href="?mpage={{machines.previous_page_number}}{{request.GET.limit}}#machines">«</a></li>
|
|
{%else%}
|
|
<li class="disabled"><a href="#">«</a></li>
|
|
{%endif%}
|
|
{% for i in machines.paginator.page_range %}
|
|
<li {%if i == machines.number %} class="active" {%endif%}><a href="?mpage={{i}}#machines">{{i}}</a></li>
|
|
{% endfor %}
|
|
{%if machines.has_next%}
|
|
<li><a href="?mpage={{machines.next_page_number}}#machines">»</a></li>
|
|
{%else%}
|
|
<li class="disabled"><a href="#">»</a></li>
|
|
{%endif%}
|
|
</ul>
|
|
<div class="pull-right">
|
|
<span class="help-inline" style="padding-bottom:10px;">Show rows:</span>
|
|
<select class="pagesize">
|
|
{% with "10 25 50 100 150" as list%}
|
|
{% for i in list.split %}
|
|
{% if request.session.limit == i %}
|
|
<option value="{{i}}" selected>{{i}}</option>
|
|
{% else %}
|
|
<option value="{{i}}">{{i}}</option>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endwith %}
|
|
</select>
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row-fluid span4 well">
|
|
<h2>About {{layerversion.layer.name}}</h2>
|
|
<dl class="item-info">
|
|
|
|
<dt>
|
|
Summary
|
|
<i class="icon-question-sign get-help" title="One-line description of the layer"></i>
|
|
</dt>
|
|
<dd>
|
|
<span class="muted" style="display:none">Not set</span>
|
|
<span class="current-value">{{layerversion.layer.summary}}</span>
|
|
<form style="display:none; margin-bottom:20px">
|
|
<textarea class="span12" rows="2">{% if layerversion.layer.summary %}{{layerversion.layer.summary}}{% endif %}</textarea>
|
|
<button class="btn change-btn" data-layer-prop="summary" type="button">Save</button>
|
|
<a href="#" class="btn btn-link cancel">Cancel</a>
|
|
</form>
|
|
<i class="icon-pencil"></i>
|
|
<span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
|
|
</dd>
|
|
<dt>
|
|
Description
|
|
</dt>
|
|
<dd>
|
|
<span class="muted" style="display:none">Not set</span>
|
|
<span class="current-value">{{layerversion.layer.description}}</span>
|
|
<form style="display:none; margin-bottom:20px">
|
|
<textarea class="span12" rows="6">{% if layerversion.layer.description %}{{layerversion.layer.description}}{% endif %}</textarea>
|
|
<button class="btn change-btn" data-layer-prop="description" type="button" >Save</button>
|
|
<a href="#" class="btn btn-link cancel">Cancel</a>
|
|
</form>
|
|
<i class="icon-pencil"></i>
|
|
<span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
|
|
</dd>
|
|
</dd>
|
|
{% if layerversion.layer.up_id %}
|
|
<dt>Layer index</dt>
|
|
<dd>
|
|
<a href="http://layers.openembedded.org/layerindex/branch/{{layerversion.up_branch.name}}/layer/{{layerversion.layer.name}}"/>layer index link</a>
|
|
|
|
</dd>
|
|
{% endif %}
|
|
|
|
</dl>
|
|
</div>
|
|
|
|
{% endblock %}
|