xref: /OK3568_Linux_fs/yocto/poky/bitbake/lib/toaster/toastergui/templates/recipedetails.html (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun{% extends "base.html" %}
2*4882a593Smuzhiyun{% load projecttags %}
3*4882a593Smuzhiyun{% load humanize %}
4*4882a593Smuzhiyun{% load static %}
5*4882a593Smuzhiyun{% block pagecontent %}
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun<ul class="breadcrumb">
8*4882a593Smuzhiyun  <li>
9*4882a593Smuzhiyun    <a href="{% url 'project' project.id %}">{{project.name}}</a>
10*4882a593Smuzhiyun    <span class="divider">&rarr;</span>
11*4882a593Smuzhiyun  </li>
12*4882a593Smuzhiyun  <li>
13*4882a593Smuzhiyun    {% if recipe.is_image %}
14*4882a593Smuzhiyun    <a href="{% url 'projectimagerecipes' project.id %}">Image recipes</a>
15*4882a593Smuzhiyun    {% else %}
16*4882a593Smuzhiyun    <a href="{% url 'projectsoftwarerecipes' project.id %}">Software recipes</a>
17*4882a593Smuzhiyun    {% endif %}
18*4882a593Smuzhiyun    <span class="divider">&rarr;</span>
19*4882a593Smuzhiyun  </li>
20*4882a593Smuzhiyun  <li class="active">
21*4882a593Smuzhiyun    {{recipe.name}} ({{recipe.layer_version.layer.name}})
22*4882a593Smuzhiyun  </li>
23*4882a593Smuzhiyun</ul>
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun<script src="{% static 'js/recipedetails.js' %}"></script>
26*4882a593Smuzhiyun<script>
27*4882a593Smuzhiyun  $(document).ready(function (){
28*4882a593Smuzhiyun    var ctx = {
29*4882a593Smuzhiyun      recipe : {
30*4882a593Smuzhiyun        id: {{recipe.pk}},
31*4882a593Smuzhiyun        name: "{{recipe.name}}",
32*4882a593Smuzhiyun        totalPackages: {{packages.count}},
33*4882a593Smuzhiyun        layer_version : {
34*4882a593Smuzhiyun         id: {{recipe.layer_version.pk}},
35*4882a593Smuzhiyun         name: "{{recipe.layer_version.layer.name}}",
36*4882a593Smuzhiyun         layerdetailurl: "{% url 'layerdetails' project.pk recipe.layer_version.pk %}"
37*4882a593Smuzhiyun        }
38*4882a593Smuzhiyun      }
39*4882a593Smuzhiyun    };
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun    try {
42*4882a593Smuzhiyun      recipeDetailsPageInit(ctx);
43*4882a593Smuzhiyun    } catch (e) {
44*4882a593Smuzhiyun      document.write("Sorry, An error has occurred loading this page");
45*4882a593Smuzhiyun      console.warn(e);
46*4882a593Smuzhiyun    }
47*4882a593Smuzhiyun  });
48*4882a593Smuzhiyun</script>
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun{% include 'newcustomimage_modal.html' %}
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun<div class="alert alert-success lead" id="image-created-notification" style="margin-top: 15px; display: none">
53*4882a593Smuzhiyun  <button type="button" data-dismiss="alert" class="close">x</button>
54*4882a593Smuzhiyun  Your custom image <strong>{{recipe.name}}</strong> has been created. You can now add or remove packages as needed.
55*4882a593Smuzhiyun</div>
56*4882a593Smuzhiyun<div class="page-header">
57*4882a593Smuzhiyun  <h1>
58*4882a593Smuzhiyun    {{recipe.name}}
59*4882a593Smuzhiyun    <small>({{recipe.layer_version.layer.name}})</small>
60*4882a593Smuzhiyun  </h1>
61*4882a593Smuzhiyun</div>
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun<div class="row">
64*4882a593Smuzhiyun  <div class="col-md-8">
65*4882a593Smuzhiyun    <div class="button-place btn-group" id="customise-build-btns"
66*4882a593Smuzhiyun        style="width: 100%;
67*4882a593Smuzhiyun      {% if not in_project %}
68*4882a593Smuzhiyun      display:none;
69*4882a593Smuzhiyun      {% endif %}">
70*4882a593Smuzhiyun      <button class="btn btn-default btn-lg build-recipe-btn" style="width: 50%">
71*4882a593Smuzhiyun        Build {{recipe.name}}
72*4882a593Smuzhiyun      </button>
73*4882a593Smuzhiyun      {% if recipe.is_image %}
74*4882a593Smuzhiyun      <button class="btn btn-default btn-lg customise-btn" data-recipe="{{recipe.pk}}" style="width: 50%">
75*4882a593Smuzhiyun        Customise {{recipe.name}}
76*4882a593Smuzhiyun      </button>
77*4882a593Smuzhiyun      {% endif %}
78*4882a593Smuzhiyun    </div>
79*4882a593Smuzhiyun    <div class="button-place">
80*4882a593Smuzhiyun      <button class="btn btn-default btn-block btn-lg" id="add-layer-btn"
81*4882a593Smuzhiyun          style="width:100%;
82*4882a593Smuzhiyun          {% if in_project %}
83*4882a593Smuzhiyun          display:none;
84*4882a593Smuzhiyun          {% endif %}">
85*4882a593Smuzhiyun        <i class="glyphicon glyphicon-plus"></i>
86*4882a593Smuzhiyun        Add the {{recipe.layer_version.layer.name}} layer to your project to build or customise this image recipe
87*4882a593Smuzhiyun      </button>
88*4882a593Smuzhiyun    </div>
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun    <div id="packages-table">
91*4882a593Smuzhiyun      {% if  packages.count %}
92*4882a593Smuzhiyun       {% url 'recipepackages' project.id recipe.id as xhr_table_url %}
93*4882a593Smuzhiyun       <h2>{{title}} (<span class="table-count-{{table_name}}">0</span>) </h2>
94*4882a593Smuzhiyun       {% include "toastertable.html" %}
95*4882a593Smuzhiyun      {% else %}
96*4882a593Smuzhiyun       <h2>{{title}}</h2>
97*4882a593Smuzhiyun      {% endif %}
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun      <div class="alert alert-info air" id="build-to-get-packages-msg"
100*4882a593Smuzhiyun      {# if there are packages and it's in the project don't show this msg #}
101*4882a593Smuzhiyun      {% if packages.count or not packages.count and not in_project %}
102*4882a593Smuzhiyun       style="display:none"
103*4882a593Smuzhiyun      {% endif %} >
104*4882a593Smuzhiyun        <p class="lead">Toaster has no package information for {{recipe.name}}. To generate package information, build {{recipe.name}}</p>
105*4882a593Smuzhiyun        <button class="btn btn-info btn-lg build-recipe-btn" style="margin:20px 0 10px 0;">Build {{recipe.name}}</button>
106*4882a593Smuzhiyun      </div>
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun      <div class="alert alert-info air" id="packages-alert"
109*4882a593Smuzhiyun      {% if packages.count or  in_project %}
110*4882a593Smuzhiyun      style="display:none"
111*4882a593Smuzhiyun      {% endif %}
112*4882a593Smuzhiyun      >
113*4882a593Smuzhiyun        <p class="lead">Toaster has no package information for {{recipe.name}}
114*4882a593Smuzhiyun        </p>
115*4882a593Smuzhiyun      </div>
116*4882a593Smuzhiyun    </div>
117*4882a593Smuzhiyun  </div>
118*4882a593Smuzhiyun  <div class="col-md-4">
119*4882a593Smuzhiyun    <div class="well">
120*4882a593Smuzhiyun      <h2>About {{recipe.name}}</h2>
121*4882a593Smuzhiyun      <dl class="item-info">
122*4882a593Smuzhiyun        <dt>
123*4882a593Smuzhiyun        Approx. packages included
124*4882a593Smuzhiyun        <span class="glyphicon glyphicon-question-sign get-help" title="The number of packages included is based on information from previous builds and from parsing layers, so we can never be sure it is 100% accurate"></span>
125*4882a593Smuzhiyun        </dt>
126*4882a593Smuzhiyun        <dd class="no-packages">{{packages.count}}</dd>
127*4882a593Smuzhiyun        <dt>
128*4882a593Smuzhiyun        Approx. package size
129*4882a593Smuzhiyun        <span class="glyphicon glyphicon-question-sign get-help" title="Package size is based on information from previous builds, so we can never be sure it is 100% accurate"></span>
130*4882a593Smuzhiyun        </dt>
131*4882a593Smuzhiyun        <dd>{{approx_pkg_size.size__sum|filtered_filesizeformat}}</dd>
132*4882a593Smuzhiyun        {% if last_build %}
133*4882a593Smuzhiyun        <dt>Last build</dt>
134*4882a593Smuzhiyun        <dd>
135*4882a593Smuzhiyun        <span class="glyphicon glyphicon-ok-circle"></span>
136*4882a593Smuzhiyun        <a href="{% url 'projectbuilds' project.id%}">{{last_build.completed_on|date:"d/m/y H:i"}}</a>
137*4882a593Smuzhiyun        </dd>
138*4882a593Smuzhiyun        {% endif %}
139*4882a593Smuzhiyun        <dt>Recipe file</dt>
140*4882a593Smuzhiyun        <dd>
141*4882a593Smuzhiyun        <code>{{recipe.file_path|cut_path_prefix:recipe.layer_version.local_path}}</code>
142*4882a593Smuzhiyun        <a href="{{recipe.get_vcs_recipe_file_link_url}}"><span class="glyphicon glyphicon-new-window" title="View recipe file" data-toggle="tooltip"></span></a>
143*4882a593Smuzhiyun        </dd>
144*4882a593Smuzhiyun        <dt>Layer</dt>
145*4882a593Smuzhiyun        <dd><a href="{% url 'layerdetails' project.id recipe.layer_version.pk %}">{{recipe.layer_version.layer.name}}</a></dd>
146*4882a593Smuzhiyun        <dt>
147*4882a593Smuzhiyun        Summary
148*4882a593Smuzhiyun        </dt>
149*4882a593Smuzhiyun        <dd>
150*4882a593Smuzhiyun        {{recipe.summary}}
151*4882a593Smuzhiyun        </dd>
152*4882a593Smuzhiyun        <dt>
153*4882a593Smuzhiyun        Description
154*4882a593Smuzhiyun        </dt>
155*4882a593Smuzhiyun        <dd>
156*4882a593Smuzhiyun        {{recipe.description}}
157*4882a593Smuzhiyun        </dd>
158*4882a593Smuzhiyun        <dt>Version</dt>
159*4882a593Smuzhiyun        <dd>
160*4882a593Smuzhiyun        {{recipe.version}}
161*4882a593Smuzhiyun        </dd>
162*4882a593Smuzhiyun        <dt>Section</dt>
163*4882a593Smuzhiyun        <dd>
164*4882a593Smuzhiyun        {{recipe.section}}
165*4882a593Smuzhiyun        </dd>
166*4882a593Smuzhiyun        <dt>License</dt>
167*4882a593Smuzhiyun        <dd>
168*4882a593Smuzhiyun        {{recipe.license}}
169*4882a593Smuzhiyun        </dd>
170*4882a593Smuzhiyun      </dl>
171*4882a593Smuzhiyun    </div>
172*4882a593Smuzhiyun  </div>
173*4882a593Smuzhiyun</div>
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun{% endblock %}
176