Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Updated the message details page to match group details

  • Loading branch information...
commit fa2289fc2200850e1eda09cce1262b368013df26 1 parent e95c660
@dcramer dcramer authored
View
4 CHANGES
@@ -1,3 +1,7 @@
+1.13.4
+
+* Updated message details page to resemble look and feel of group details.
+
1.13.3
* Added back in the "raw traceback" view.
View
10 sentry/templates/sentry/group/details.html
@@ -272,12 +272,12 @@
</div>
</div>
</div>
+ <div id="raw_traceback" style="display: none;">
+ {% if frames or message.traceback %}
+ <pre>{{ message.get_traceback }}</pre>
+ {% endif %}
+ </div>
{% endblock %}
- <div id="raw_traceback" style="display: none;">
- {% if frames or message.traceback %}
- <pre>{{ message.get_traceback }}</pre>
- {% endif %}
- </div>
<script type="text/javascript">
$('.popup').click(function(){
var $this = $(this);
View
323 sentry/templates/sentry/group/message.html
@@ -31,157 +31,200 @@
</li>
</ul>
- <div id="summary">
- <h3>{% if exception_type %}{{ exception_type }}: {{ exception_value|escape }}{% else %}Summary{% endif %}</h3>
- <table class="meta">
- {% if exception_type %}
- <tr>
- <th>Exception Value:</th>
- <td><pre>{{ exception_value|escape }}</pre></td>
- </tr>
- {% endif %}
- {% if group.data.url %}
- <tr>
- <th>URL:</th>
- <td><a href="{{ group.data.url }}">{{ group.data.url|truncatechars:100 }}</a></td>
- </tr>
- {% endif %}
- {% if lastframe %}
- <tr>
- <th>Location:</th>
- <td>{{ lastframe.filename|escape }} in {{ lastframe.function|escape }}, line {{ lastframe.lineno }}</td>
- </tr>
- {% endif %}
- {% if group.has_two_part_message %}
- <tr>
- <th>Full Message</th>
- <td><pre id="full-message">{{ group.message }}</pre></td>
- </tr>
- {% endif %}
- </table>
- </div>
-
- {% if version_data %}
- <div id="versioninfo">
- <h2>{% trans "Module Versions" %}</h2>
- <table class="inline">
- {% for k, v in version_data %}
+ <div id="details">
+ <div id="summary">
+ <h3>{% if exception_type %}{{ exception_type }}: {{ exception_value|escape }}{% else %}Summary{% endif %}</h3>
+ <table class="meta">
+ {% if exception_type %}
<tr>
- <th class="key">{{ k }}</th>
- <td class="values">{{ v }}</td>
+ <th>Exception Value:</th>
+ <td><pre>{{ exception_value|escape }}</pre></td>
+ </tr>
+ {% endif %}
+ {% if group.data.url %}
+ <tr>
+ <th>URL:</th>
+ <td><a href="{{ group.data.url }}">{{ group.data.url|truncatechars:100 }}</a></td>
+ </tr>
+ {% endif %}
+ {% if lastframe %}
+ <tr>
+ <th>Location:</th>
+ <td>{{ lastframe.filename|escape }} in {{ lastframe.function|escape }}, line {{ lastframe.lineno }}</td>
+ </tr>
+ {% endif %}
+ {% if group.has_two_part_message %}
+ <tr>
+ <th>Full Message</th>
+ <td><pre id="full-message">{{ group.message }}</pre></td>
</tr>
- {% endfor %}
- </table>
- </div>
- {% endif %}
-
- {% if template_info %}
- <div id="template">
- <h2>Template error</h2>
- <p>In template <code>{{ template_info.name }}</code>, error at line <strong>{{ template_info.line }}</strong></p>
- <h3>{{ template_info.message }}</h3>
- <ol>
- {% for source_line in template_info.source_lines %}
- <li class="{% if source_line.0 == template_info.line %} selected{% endif %}" value="{{ source_line.0 }}">
- {% if source_line.0 == template_info.line %}
- <pre>{{ template_info.before }}<span class="specific">{{ template_info.during }}</span>{{ template_info.after }}</pre>
- {% else %}
- <pre>{{ source_line.1 }}</pre>
{% endif %}
- {% endfor %}
</table>
</div>
- {% endif %}
-
- {% if frames %}
- <div id="traceback">
- <h2>Traceback</h2>
- {% autoescape off %}
- <div id="browserTraceback">
- <ul class="traceback">
- {% for frame in frames %}
- <li class="frame">
- <code>{{ frame.filename|escape }}</code> in <code>{{ frame.function|escape }}</code>
-
- {% if frame.context_line %}
- <div class="context" id="c{{ frame.id }}">
- {% if frame.pre_context %}
- <ol start="{{ frame.pre_context_lineno }}" class="pre-context" id="pre{{ frame.id }}">{% for line in frame.pre_context %}<li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ line|escape }}</li>{% endfor %}</ol>
- {% endif %}
- <ol start="{{ frame.lineno }}" class="context-line"><li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ frame.context_line|escape }} <span>...</span></li></ol>
- {% if frame.post_context %}
- <ol start='{{ frame.lineno|plus:1 }}' class="post-context" id="post{{ frame.id }}">{% for line in frame.post_context %}<li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')">{{ line|escape }}</li>{% endfor %}</ol>
- {% endif %}
- </div>
- {% endif %}
- {% if frame.vars %}
- <div class="commands">
- <a href="#" onclick="return varToggle(this, '{{ frame.id }}')"><span>&#x25b6;</span> Local vars</a>
- </div>
- <table class="vars" id="v{{ frame.id }}">
- <thead>
- <tr>
- <th>Variable</th>
- <th>Value</th>
- </tr>
- </thead>
- <tbody>
- {% for var in frame.vars|dictsort:"0" %}
- <tr>
- <td>{{ var.0|escape }}</td>
- <td class="code"><pre>{{ var.1|pprint|escape }}</pre></td>
- </tr>
- {% endfor %}
- </tbody>
+ {% if version_data %}
+ <div id="versioninfo" class="module">
+ <h2>{% trans "Module Versions" %}</h2>
+ <div class="module-content">
+ <table class="inline">
+ {% for k, v in version_data %}
+ <tr>
+ <th class="key">{{ k }}</th>
+ <td class="values"><code>{{ v }}</code></td>
+ </tr>
+ {% endfor %}
</table>
- {% endif %}
- </li>
- {% endfor %}
- </ul>
- </div>
- {% endautoescape %}
- </div>
- {% else %}
- {% if group.traceback %}
- <pre>{{ group.traceback }}</pre>
+ </div>
+ </div>
{% endif %}
- {% endif %}
- <div id="requestinfo">
- <h2>{% trans "Additional Data" %}</h2>
- <table>
- {% for k, v in json_data %}
- <tr>
- <th class="key">{{ k }}</th>
- <td class="values">
- {% if v %}
- {% if v|is_dict %}
- <table class="vars">
- <thead>
- <tr>
- <th>{% trans "Variable" %}</th>
- <th>{% trans "Value" %}</th>
- </tr>
- </thead>
- <tbody>
- {% for k_, v_ in v.iteritems|as_sorted %}
- <tr>
- <td>{{ k_ }}</td>
- <td class="code"><pre>{{ v_|pprint }}</pre></td>
- </tr>
- {% endfor %}
- </tbody>
- </table>
+ {% if template_info %}
+ <div id="template" class="module">
+ <h2>Template error</h2>
+ <div class="module-content">
+ <p>In template <code>{{ template_info.name }}</code>, error at line <strong>{{ template_info.line }}</strong></p>
+ <h3>{{ template_info.message }}</h3>
+ <ol>
+ {% for source_line in template_info.source_lines %}
+ <li class="{% if source_line.0 == template_info.line %} selected{% endif %}" value="{{ source_line.0 }}">
+ {% if source_line.0 == template_info.line %}
+ <pre>{{ template_info.before }}<span class="specific">{{ template_info.during }}</span>{{ template_info.after }}</pre>
{% else %}
- <pre>{{ v|pprint }}</pre>
+ <pre>{{ source_line.1 }}</pre>
{% endif %}
- {% else %}
- <p>{% blocktrans with k as varname %}No data for {{ varname }}{% endblocktrans %}</p>
+ {% endfor %}
+ </table>
+ </div>
+ </div>
+ {% endif %}
+
+ {% if frames %}
+ <div id="traceback" class="module">
+ <h2>Traceback <span><a href="javascript:void(0)" class="popup" data-container="#raw_traceback">Raw Traceback</a></span></h2>
+ <div class="module-content">
+ {% autoescape off %}
+ <div id="browserTraceback">
+ <ul class="traceback">
+ {% for frame in frames %}
+ <li class="frame">
+ <code>{{ frame.filename|escape }}</code> in <code>{{ frame.function|escape }}</code>
+
+ {% if frame.context_line %}
+ <div class="context" id="c{{ forloop.counter }}">
+ {% if frame.pre_context %}
+ <ol start="{{ frame.pre_context_lineno }}" class="pre-context" id="pre{{ forloop.counter }}">{% for line in frame.pre_context %}<li onclick="toggle('pre{{ forloop.counter }}', 'post{{ forloop.counter }}')">{{ line|escape }}</li>{% endfor %}</ol>
+ {% endif %}
+ <ol start="{{ frame.lineno }}" class="context-line"><li onclick="toggle('pre{{ forloop.counter }}', 'post{{ forloop.counter }}')">{{ frame.context_line|escape }} <span>...</span></li></ol>
+ {% if frame.post_context %}
+ <ol start='{{ frame.lineno|plus:1 }}' class="post-context" id="post{{ forloop.counter }}">{% for line in frame.post_context %}<li onclick="toggle('pre{{ forloop.counter }}', 'post{{ forloop.counter }}')">{{ line|escape }}</li>{% endfor %}</ol>
+ {% endif %}
+ </div>
+ {% endif %}
+ <div class="commands">
+ <a href="#" onclick="return varToggle(this, '{{ forloop.counter }}')"><span>&#x25b6;</span> Local vars</a>
+ </div>
+ <table class="vars" id="v{{ forloop.counter }}">
+ <thead>
+ <tr>
+ <th>Variable</th>
+ <th>Value</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% if frame.vars %}
+ {% for var in frame.vars|dictsort:"0" %}
+ <tr>
+ <td>{{ var.0|escape }}</td>
+ <td class="code"><pre>{{ var.1|pprint|escape }}</pre></td>
+ </tr>
+ {% endfor %}
+ {% endif %}
+ </tbody>
+ </table>
+ </li>
+ {% endfor %}
+ </ul>
+ </div>
+ {% endautoescape %}
+ </div>
+ </div>
+ {% else %}
+ <div id="traceback" class="module">
+ <h2>Traceback</h2>
+ <div class="module-content">
+ {% if group.traceback %}
+ <pre>{{ group.traceback }}</pre>
{% endif %}
- </td>
- </tr>
- {% endfor %}
- </table>
+ </div>
+ </div>
+ {% endif %}
+
+ <div id="requestinfo" class="module">
+ <h2>{% trans "Additional Data" %}</h2>
+ <div class="module-content">
+ <table>
+ {% if user_data %}
+ <tr>
+ <th class="key">USER</th>
+ <td class="values">
+ <table class="vars">
+ <thead>
+ <tr>
+ <th>{% trans "Variable" %}</th>
+ <th>{% trans "Value" %}</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for k_, v_ in user_data.iteritems|as_sorted %}
+ <tr>
+ <td>{{ k_ }}</td>
+ <td class="code"><pre>{{ v_|pprint }}</pre></td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ {% endif %}
+ {% for k, v in json_data %}
+ <tr>
+ <th class="key">{{ k }}</th>
+ <td class="values">
+ {% if v %}
+ {% if v|is_dict %}
+ <table class="vars">
+ <thead>
+ <tr>
+ <th>{% trans "Variable" %}</th>
+ <th>{% trans "Value" %}</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for k_, v_ in v.iteritems|as_sorted %}
+ <tr>
+ <td>{{ k_ }}</td>
+ <td class="code"><pre>{{ v_|pprint }}</pre></td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ {% else %}
+ <pre>{{ v|pprint }}</pre>
+ {% endif %}
+ {% else %}
+ <p>{% blocktrans with k as varname %}No data for {{ varname }}{% endblocktrans %}</p>
+ {% endif %}
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div id="raw_traceback" style="display: none;">
+ {% if frames or message.traceback %}
+ <pre>{{ message.get_traceback }}</pre>
+ {% endif %}
</div>
{% endblock %}
View
2  setup.py
@@ -36,7 +36,7 @@
setup(
name='django-sentry',
- version='1.13.3',
+ version='1.13.4',
author='David Cramer',
author_email='dcramer@gmail.com',
url='http://github.com/dcramer/django-sentry',
Please sign in to comment.
Something went wrong with that request. Please try again.