176 lines
5.7 KiB
HTML
176 lines
5.7 KiB
HTML
{% extends "base.html" %}
|
|
{% load projecttags %}
|
|
{% load humanize %}
|
|
{% load static %}
|
|
{% block pagecontent %}
|
|
|
|
<ul class="breadcrumb">
|
|
<li>
|
|
<a href="{% url 'project' project.id %}">{{project.name}}</a>
|
|
<span class="divider">→</span>
|
|
</li>
|
|
<li>
|
|
{% if recipe.is_image %}
|
|
<a href="{% url 'projectimagerecipes' project.id %}">Image recipes</a>
|
|
{% else %}
|
|
<a href="{% url 'projectsoftwarerecipes' project.id %}">Software recipes</a>
|
|
{% endif %}
|
|
<span class="divider">→</span>
|
|
</li>
|
|
<li class="active">
|
|
{{recipe.name}} ({{recipe.layer_version.layer.name}})
|
|
</li>
|
|
</ul>
|
|
|
|
<script src="{% static 'js/recipedetails.js' %}"></script>
|
|
<script>
|
|
$(document).ready(function (){
|
|
var ctx = {
|
|
recipe : {
|
|
id: {{recipe.pk}},
|
|
name: "{{recipe.name}}",
|
|
totalPackages: {{packages.count}},
|
|
layer_version : {
|
|
id: {{recipe.layer_version.pk}},
|
|
name: "{{recipe.layer_version.layer.name}}",
|
|
layerdetailurl: "{% url 'layerdetails' project.pk recipe.layer_version.pk %}"
|
|
}
|
|
}
|
|
};
|
|
|
|
try {
|
|
recipeDetailsPageInit(ctx);
|
|
} catch (e) {
|
|
document.write("Sorry, An error has occurred loading this page");
|
|
console.warn(e);
|
|
}
|
|
});
|
|
</script>
|
|
|
|
{% include 'newcustomimage_modal.html' %}
|
|
|
|
<div class="alert alert-success lead" id="image-created-notification" style="margin-top: 15px; display: none">
|
|
<button type="button" data-dismiss="alert" class="close">x</button>
|
|
Your custom image <strong>{{recipe.name}}</strong> has been created. You can now add or remove packages as needed.
|
|
</div>
|
|
<div class="page-header">
|
|
<h1>
|
|
{{recipe.name}}
|
|
<small>({{recipe.layer_version.layer.name}})</small>
|
|
</h1>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<div class="button-place btn-group" id="customise-build-btns"
|
|
style="width: 100%;
|
|
{% if not in_project %}
|
|
display:none;
|
|
{% endif %}">
|
|
<button class="btn btn-default btn-lg build-recipe-btn" style="width: 50%">
|
|
Build {{recipe.name}}
|
|
</button>
|
|
{% if recipe.is_image %}
|
|
<button class="btn btn-default btn-lg customise-btn" data-recipe="{{recipe.pk}}" style="width: 50%">
|
|
Customise {{recipe.name}}
|
|
</button>
|
|
{% endif %}
|
|
</div>
|
|
<div class="button-place">
|
|
<button class="btn btn-default btn-block btn-lg" id="add-layer-btn"
|
|
style="width:100%;
|
|
{% if in_project %}
|
|
display:none;
|
|
{% endif %}">
|
|
<i class="glyphicon glyphicon-plus"></i>
|
|
Add the {{recipe.layer_version.layer.name}} layer to your project to build or customise this image recipe
|
|
</button>
|
|
</div>
|
|
|
|
<div id="packages-table">
|
|
{% if packages.count %}
|
|
{% url 'recipepackages' project.id recipe.id as xhr_table_url %}
|
|
<h2>{{title}} (<span class="table-count-{{table_name}}">0</span>) </h2>
|
|
{% include "toastertable.html" %}
|
|
{% else %}
|
|
<h2>{{title}}</h2>
|
|
{% endif %}
|
|
|
|
<div class="alert alert-info air" id="build-to-get-packages-msg"
|
|
{# if there are packages and it's in the project don't show this msg #}
|
|
{% if packages.count or not packages.count and not in_project %}
|
|
style="display:none"
|
|
{% endif %} >
|
|
<p class="lead">Toaster has no package information for {{recipe.name}}. To generate package information, build {{recipe.name}}</p>
|
|
<button class="btn btn-info btn-lg build-recipe-btn" style="margin:20px 0 10px 0;">Build {{recipe.name}}</button>
|
|
</div>
|
|
|
|
<div class="alert alert-info air" id="packages-alert"
|
|
{% if packages.count or in_project %}
|
|
style="display:none"
|
|
{% endif %}
|
|
>
|
|
<p class="lead">Toaster has no package information for {{recipe.name}}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="well">
|
|
<h2>About {{recipe.name}}</h2>
|
|
<dl class="item-info">
|
|
<dt>
|
|
Approx. packages included
|
|
<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>
|
|
</dt>
|
|
<dd class="no-packages">{{packages.count}}</dd>
|
|
<dt>
|
|
Approx. package size
|
|
<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>
|
|
</dt>
|
|
<dd>{{approx_pkg_size.size__sum|filtered_filesizeformat}}</dd>
|
|
{% if last_build %}
|
|
<dt>Last build</dt>
|
|
<dd>
|
|
<span class="glyphicon glyphicon-ok-circle"></span>
|
|
<a href="{% url 'projectbuilds' project.id%}">{{last_build.completed_on|date:"d/m/y H:i"}}</a>
|
|
</dd>
|
|
{% endif %}
|
|
<dt>Recipe file</dt>
|
|
<dd>
|
|
<code>{{recipe.file_path|cut_path_prefix:recipe.layer_version.local_path}}</code>
|
|
<a href="{{recipe.get_vcs_recipe_file_link_url}}"><span class="glyphicon glyphicon-new-window" title="View recipe file" data-toggle="tooltip"></span></a>
|
|
</dd>
|
|
<dt>Layer</dt>
|
|
<dd><a href="{% url 'layerdetails' project.id recipe.layer_version.pk %}">{{recipe.layer_version.layer.name}}</a></dd>
|
|
<dt>
|
|
Summary
|
|
</dt>
|
|
<dd>
|
|
{{recipe.summary}}
|
|
</dd>
|
|
<dt>
|
|
Description
|
|
</dt>
|
|
<dd>
|
|
{{recipe.description}}
|
|
</dd>
|
|
<dt>Version</dt>
|
|
<dd>
|
|
{{recipe.version}}
|
|
</dd>
|
|
<dt>Section</dt>
|
|
<dd>
|
|
{{recipe.section}}
|
|
</dd>
|
|
<dt>License</dt>
|
|
<dd>
|
|
{{recipe.license}}
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|