{% extends "cacsremoteservice/views/layouts/project-view.html" %}
{% block secondary-nav %}
{% include "cacsremoteservice/views/projects/project-header.html" with project=item tabs=tabs %}
{% endblock %}
{% block main %}
{% if system-warnings|not-empty %}
Analysis Failed
{% comment %}Deliberately does not say the analysis produced nothing: some of the failures
classified below leave the results usable, and their own text says so. Whether anything
survived is the interpretation's business, not this heading's.{% endcomment %}
The last analysis did not finish successfully. CodeScene's interpretation of
the failure is below -- inspect the logs
for more details.
{% for warning in system-warnings %}
{% comment %}Don't show the category to the user because it's not relevant to them? {% endcomment %}
{{warning.summary}}
{% comment %}When the failure was recorded, not when this page was rendered -- the time is
persisted with the warning. Guarded because it is absent for warnings stored before CodeScene
began keeping it: an empty `datetime` would have the script below print "Invalid Date". The
literal "UTC" is what a reader without JavaScript sees, and is accurate -- the instant
serializes with its `Z` -- while `date-time-formatting-script.html`, included at the end of
this page, replaces it with the reader's own time zone.{% endcomment %}
{% if warning.timestamp %}
{% endif %}
Error message
{% comment %} Always shown, never folded away: it is the one part of this page that is
certainly accurate, and it is what our support will ask for. Note this is the classified
message rather than the completely raw one -- secrets are masked and git's progress
chatter is stripped out.
{% endcomment %}
{% comment %}The one field on this page that CodeScene did not write -- it carries
repository paths, branch names and whatever the Git host chose to send back. Never mark
it `safe`.{% endcomment %}
{{warning.message}}
{% comment %}`description` and every `remedy` step arrive as HTML fragments, already
escaped and with their documentation links turned into anchors by
`views.rendering.error-text` -- which is what makes `safe` sound here. Do not put markup
in the rule table itself: the sentences are full of placeholders like `` that a
browser would swallow as unknown elements.{% endcomment %}
What it means
{{warning.description|safe}}
Suggested fix
{% comment %}A remedy is an ordered vector of steps. One step is a sentence, not a list of
one, so it renders as a paragraph; several render as a list, which is what makes the long
remedies scannable rather than a wall of prose. Bullets rather than numbers: the steps are
ordered most-likely-cause first, but they are alternatives to try, not a procedure where
step 4 depends on step 3 -- numbering them would promise a sequence that isn't there.
{% endcomment %}
{% if warning.remedy|length-is:1 %}
{{warning.remedy|first|safe}}
{% else %}
{% for step in warning.remedy %}
{{step|safe}}
{% endfor %}
{% endif %}
{% endfor %}
{% else %}
{% if errors.details|empty? %}
No Analysis Errors
Your latest analysis was successful -- all good!
{% else %}
Analysis Failed
The following table specifies the warnings and errors during the last analysis.
Please download the diagnostics file below and attach it when contacting our support.