layerindex-web/layerindex/detail.html
Paul Eggleton c40bfedd4a Implement editing of layers
Allow users with publish permission to edit any layer, and users with
the same email address as one of the maintainers of a layer to edit that
layer.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-02-27 10:34:02 +00:00

248 lines
9.6 KiB
HTML

{% extends "base.html" %}
{% load i18n %}
{% comment %}
layerindex-web - layer detail page template
Copyright (C) 2013 Intel Corporation
Licensed under the MIT license, see COPYING.MIT for details
{% endcomment %}
<!--
{% autoescape on %}
{% block title %}OpenEmbedded metadata index - {{ layeritem.name }}{% endblock %}
{% endautoescape %}
-->
{% block content %}
{% autoescape on %}
<div class="container-fluid">
<div class="row-fluid">
<div class="page-header">
<h1>{{ layeritem.name }}
{% if user.is_authenticated %}
<span class="pull-right">
{% if perms.layeritem.publish_layer or useredit %}
<a href="{% url edit_layer layeritem.name %}" class="btn">Edit layer</a>
{% endif %}
{% if layeritem.status = "N" and perms.layeritem.publish_layer %}
<a href="{% url publish layeritem.name %}" class="btn btn-primary">Publish layer</a>
{% endif %}
</span>
{% endif %}
</h1>
</div>
</div> <!-- end of row-fluid -->
</div> <!-- end of container-fluid -->
<div class="container-fluid">
<div class="row-fluid">
{% for note in layeritem.layernote_set.all %}
<div class="alert">
{{ note.text }}
</div>
{% endfor %}
</div>
<div class="row-fluid">
<div class="description span7">
<p>
{{ layeritem.description }}
</p>
<p>
{% if layeritem.usage_url %}
<span class="label label-info">
<a href="{{ layeritem.usage_url }}">Setup information</a>
</span>
{% endif %}
{% if layeritem.mailing_list_url %}
<span class="label label-info">
<a href="{{ layeritem.mailing_list_url }}">Mailing list</a>
</span>
{% endif %}
</p>
<h3>Git repository</h3>
<p><span data-toggle="tooltip" title="Select URL"><i class="icon-circle-arrow-right selectallicon" for="vcs_url" id="vcs_url_select"></i></span><span id="vcs_url" class="copyable">{{ layeritem.vcs_url }}</span>
{% if layeritem.vcs_web_url %}
<span class="label label-info">
<a href="{{ layeritem.vcs_web_url }}">web repo</a>
</span>
{% endif %}
</p>
{% if layeritem.vcs_subdir %}
<h4>Subdirectory</h4>
<p><span data-toggle="tooltip" title="Select subdirectory"><i class="icon-circle-arrow-right selectallicon" for="vcs_subdir" id="vcs_subdir_select"></i></span><span id="vcs_subdir" class="copyable">{{ layeritem.vcs_subdir }}</span>
{% if layeritem.tree_url %}
<span class="label label-info">
<a href="{{ layeritem.tree_url }}">web subdirectory</a>
</span>
{% endif %}
</p>
{% endif %}
{% if layeritem.vcs_last_commit %}
<p>
<span class="muted"><small>Last commit: {{ layeritem.vcs_last_commit|timesince }} ago</small></span>
</p>
{% endif %}
<h3>{% if layeritem.active_maintainers|length = 1 %}Maintainer{% else %}Maintainers{% endif %}</h3>
<ul>
{% for maintainer in layeritem.active_maintainers %}
<li>
{{ maintainer.name }}
{% if maintainer.responsibility %}
<span>({{ maintainer.responsibility }})</span>
{% endif %}
<span class="label label-info">
<a href="mailto:{{ maintainer.email }}">email</a>
</span>
</li>
{% endfor %}
</ul>
</div> <!-- end of span7 -->
<div class="span4 pull-right description">
{% if layeritem.dependencies_set.all %}
<div class="well dependency-well">
<h3>Dependencies </h3>
<p>The {{ layeritem.name }} layer depends upon:</p>
<ul>
{% for dep in layeritem.dependencies_set.all %}
<li><a href="{% url layer_item dep.dependency.name %}">{{ dep.dependency.name }}</a></li>
{% endfor %}
</ul>
</div> <!-- end of well -->
{% endif %}
</div> <!-- end of span4 -->
</div> <!-- end of row-fluid -->
</div> <!-- end of container-fluid -->
{% if layeritem.machine_set.count > 0 %}
<div class="container-fluid" style="margin-bottom:1em;">
<div class="row-fluid">
<div class="navbar">
<div class="navbar-inner">
<a class="brand pull-left">{{ layeritem.name }} machines</a>
</div>
</div>
<table class="table table-bordered">
<tbody>
{% for machine in layeritem.machine_set.all %}
<tr>
<td><a href="{{ machine.vcs_web_url }}">{{ machine.name }}</a></td>
<td>{{ machine.description }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endif %}
<div class="container-fluid" style="margin-bottom:1em;">
<div class="row-fluid">
<div class="navbar">
<div class="navbar-inner">
<a class="brand pull-left">{{ layeritem.name }} recipes</a>
<ul class="nav pull-right">
<li>
<form action="" class="navbar-search pull-right" id="filter-form">
<input type="text" placeholder="Search recipes" class="search-query" id="filter">
</form>
</li>
</ul>
</div>
</div>
<table class="table table-bordered recipestable">
<thead>
<tr>
<th>Recipe name</th>
<th>Version</th>
<th>Description</th>
</tr>
</thead>
<tbody>
{% for recipe in layeritem.sorted_recipes %}
<tr>
<td><a href="{% url recipe recipe.id %}">{{ recipe.name }}</a></td>
<td>{{ recipe.pv }}</td>
<td class="span8">{{ recipe.short_desc }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endautoescape %}
{% endblock %}
{% block scripts %}
<script src="/static/js/uitablefilter.js" ></script>
<script>
// selectText plugin Borrowed from http://jsfiddle.net/edelman/KcX6A/1506/
jQuery.fn.selectText = function() {
var doc = document
, element = this[0]
, range, selection
;
if (doc.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};
$(document).ready(function() {
$(function() {
var theTable = $('table.recipestable');
$("#filter").keyup(function() {
$.uiTableFilter( theTable, this.value );
})
$('#filter-form').submit(function(){
theTable.find("tbody > tr:visible > td:eq(1)").mousedown();
return false;
}).focus(); //Give focus to input field
$('.selectallicon').mouseup(function() {
$('#' + $(this).attr('for')).selectText();
});
});
});
</script>
{% endblock %}