Mercurial > farol > farol
view farol/templates/doc.j2 @ 0:4a9f23230eba
Initial Release
author | Benoît Allard <benoit.allard@greenbone.net> |
---|---|
date | Wed, 24 Sep 2014 10:07:49 +0200 |
parents | |
children |
line wrap: on
line source
{# # Description: # Web Template used in Farol Design # # Authors: # BenoƮt Allard <benoit.allard@greenbone.net> # # Copyright: # Copyright (C) 2014 Greenbone Networks GmbH # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -#} {% extends "base.j2" %} {% from "macros.j2" import panel, label_value %} {% block title %}Document{% endblock %} {% block content %} <div class='clearfix page-header'> <h1>{{ cvrf._title }} <small>({{ cvrf._type }})</small></h1> <a class="pull-right" href="{{ url_for('edit_title') }}">edit title</a> </div> {% call panel(heading="Publisher", title=3, collapsible=False) %} <a class="pull-right" href="{{ url_for('edit_publisher') }}">edit</a> <div class="form-horizontal"> {% for label, value in [("Type", cvrf._publisher._type), ("VendorID", cvrf._publisher._vendorid or ''), ("Contact Details", (cvrf._publisher._contact or '') | replace('\n', '<br>')), ("Issuing Authority", (cvrf._publisher._authority or '') | replace('\n', '<br>'))] %} {{ label_value(label, value, right=8) }} {# 8: so that we reserve place for the floating 'edit'#} {% endfor %} </div> {% endcall %} {% call panel(heading="Document Tracking", title=3, collapsible=False) %} <a class="pull-right" href="{{ url_for('edit_tracking') }}">edit</a> <div class="form-horizontal"> {% for label, value in [("Identification", cvrf._tracking._identification), ("Status", cvrf._tracking._status), ("Version", cvrf._tracking._version | join('.'))] %} {{ label_value(label, value, right=8) }} {% endfor %} </div> {% call panel(heading="Revision History (%d)" % cvrf._tracking._history | length, title=4) %} {% for revision in cvrf._tracking._history %} {% call panel() %} <div class="form-horizontal"> <a class="pull-right" href="{{ url_for('edit_revision', index=loop.index0) }}">edit revision</a> {{ label_value('Number', revision._number | join('.'), right=8) }} {{ label_value('Date', revision._date) }} {{ label_value('Description', revision._description) }} </div> {% endcall %} {% endfor %} <a class="pull-right" href="{{ url_for('add_revision') }}">add revision</a> {% endcall %} <div class="form-horizontal"> {% for label, value in [("Initial Release Date", cvrf._tracking._initialDate), ("Current Release Date", cvrf._tracking._currentDate)] %} {{ label_value(label, value) }} {% endfor %} </div> {% if cvrf._tracking._generator %} {% call panel(heading="Generator", title=4, collapsible=False) %} <div class="form-horizontal"> {% if cvrf._tracking._generator._engine %}{{ label_value('Engine', cvrf._tracking._generator._engine) }}{% endif %} {% if cvrf._tracking._generator._date %}{{ label_value('Date', cvrf._tracking._generator._date) }}{% endif %} </div> {% endcall %} {% endif %} {% endcall %} {% call panel(heading="Distribution", title=3, collapsible=False) %} <a class="pull-right" href="{{ url_for('edit_distribution') }}">edit</a> <p>{{ (cvrf._distribution or '') | replace('\n', '<br>') }}</p> {% endcall %} {% call panel(heading="Aggregate Severity", title=3, collapsible=False) %} <div class="form-horizontal"> <a class="pull-right" href="{{ url_for('edit_severity') }}">edit</a> {% if cvrf._aggregateseverity %} {{ label_value('Namespace', (cvrf._aggregateseverity._namespace or '') | urlize, right=8) }} {{ label_value('Severity', cvrf._aggregateseverity._severity) }} {% endif %} </div> {% endcall %} <div class="clearfix"> <div class="col-sm-4"> {% call panel(type="success", heading="Notes (%d)" % cvrf._notes | length , title=3) %} <ul> {% for note in cvrf._notes %} <li><a href="{{ url_for('view_note', ordinal=note._ordinal) }}">{{ note.getTitle() }}</a></li> {% endfor %} </ul> <a class="pull-right" href="{{ url_for('add_note') }}">add</a> {% endcall %} </div> <div class="col-sm-4"> {% call panel(type="warning", heading="References (%d)" % cvrf._references | length, title=3) %} <ul> {% for reference in cvrf._references %} <li><a href="{{ reference._url }}" target="_blank">{{ reference._description }}{% if reference._type %} ({{ reference._type }}){% endif %}</a> (<a href="{{ url_for('edit_reference', index=loop.index0) }}">edit</a>)</li> {% endfor %} </ul> <a class="pull-right" href="{{ url_for('add_reference') }}">add</a> {% endcall %} </div> <div class="col-sm-4"> {% call panel(type="info", heading="Acknowledgments (%d)" % cvrf._acknowledgments | length, title=3) %} <ul> {% for ack in cvrf._acknowledgments %} <li><a href="{{ url_for('view_acknowledgment', index=loop.index0) }}">{{ ack.getTitle() }}</a></li> {% endfor %} </ul> <a class="pull-right" href="{{ url_for('add_acknowledgment') }}">add</a> {% endcall %} </div> </div> <div class="clearfix"> <div class="col-md-6"> {% call panel(type="danger", heading="Product Tree", title=3) %} {% if cvrf._producttree %} {% call panel(heading="Branches (%d)" % cvrf._producttree._branches | length, title=4, extended=True) %} {% for branch in cvrf._producttree._branches recursive %} {% call panel() %} <p>{{ branch._type}}: <em>{{ branch._name }}</em> (<a href="{{ url_for('producttree.edit_branch', path=branch.getPath() | join('/')) }}">edit</a>)</p> {% if branch._product %} <strong><a href="{{ url_for('producttree.view_product', productid=branch._product._productid) }}">{{ branch._product._name }}</a></strong> (<a href="{{ url_for('producttree.edit_product', productid=branch._product._productid) }}">edit</a>) {% else %} {{ loop(branch._childs) }} {% endif %} {% if branch.isOrphaned() %} <p class="text-danger">This branch is <em>orphaned</em>. A <a href="{{ url_for('producttree.add_product') }}">product</a> or a new <a href="{{ url_for('producttree.add_branch') }}">branch</a> should be created as child of this one.</p> {% endif %} {% endcall %} {% endfor %} <a href="{{ url_for('producttree.add_branch') }}" class="pull-right">add branch</a> {% endcall %} {% call panel(heading="Products (%d)" % cvrf._producttree.nbProducts(), title=4) %} {% for product in cvrf._producttree._products if product._parent is sameas cvrf._producttree %} <p><strong><a href="{{ url_for('producttree.view_product', productid=product._productid) }}">{{ product._name }}</a></strong> (<a href="{{ url_for('producttree.edit_product', productid=product._productid) }}">edit</a>)</p> {% endfor %} <a href="{{ url_for('producttree.add_product') }}" class="pull-right">add product</a> {% endcall %} {% call panel(heading="Relationships (%d)" % cvrf._producttree._relationships | length, title=4) %} {% for relationship in cvrf._producttree._relationships %} {% call panel() %} <p><em>{{ cvrf.getProductForID(relationship._productreference)._name }}</em> as {{ relationship._relationtype | lower }} <em>{{ cvrf.getProductForID(relationship._relatestoproductreference)._name }}</em> (<a href="{{ url_for('producttree.edit_relationship', index=loop.index0) }}">edit</a>)</p> {% if relationship._product %}<p><strong><a href="{{ url_for('producttree.view_product', productid=relationship._product._productid) }}">{{ relationship._product._name }}</a></strong> (<a href="{{ url_for('producttree.edit_product', productid=relationship._product._productid) }}">edit</a>)</p>{% endif %} {% if relationship.isOrphaned() %} <p class="text-danger">This relationship is <em>orphaned</em>. A product should be <a href="{{ url_for('producttree.add_product') }}">created</a> as child of this one.</p> {% endif %} {% endcall %} {% endfor %} <a href="{{ url_for('producttree.add_relationship') }}" class="pull-right">add</a> {% endcall %} {% call panel(heading="Groups (%d)" % cvrf._producttree._groups | length, title=4) %} {% for group in cvrf._producttree._groups %} {% call panel() %} <a href="{{ url_for('producttree.edit_group', groupid=group._groupid) }}" class="pull-right">edit</a> <ul> {% for productid in group._productids %} {% with product = cvrf.getProductForID(productid) %} <li><a href="{{ url_for('producttree.view_product', productid=product._productid) }}">{{ product._name }}</a></li> {% endwith %} {% endfor %} </ul> {% if group._description %}<p class="small">{{ group._description }}</p>{% endif %} {% endcall %} {% endfor %} <a href="{{ url_for('producttree.add_group') }}" class="pull-right">add</a> {% endcall %} {% else %} <em>No Product tree present</em> <form action="{{ url_for('producttree.create') }}" method="POST" name="createProdTree"> <a href="#" onclick="createProdTree.submit()" class="pull-right">create</a> </form> {% endif %} {% endcall %} </div> <div class="col-md-6"> {% call panel(type="primary", heading="Vulnerabilities (%d)" % cvrf._vulnerabilities | length, title=3) %} <ul> {% for vulnerability in cvrf._vulnerabilities %} <li><a href="{{ url_for('vulnerability.view', ordinal=vulnerability._ordinal) }}">{{ vulnerability.getTitle() }}</a></li> {% endfor %} </ul> <a href="{{ url_for('vulnerability.add') }}" class="pull-right">add</a> {% endcall %} </div> </div> {% endblock %}