Browse Source

Add url notation to tags and to data values that resemble links

David Cramer 12 years ago
parent
commit
b44435ad1c

+ 9 - 6
src/sentry/static/sentry/less/sentry.less

@@ -806,6 +806,14 @@ ul.tag-list {
   }
 }
 
+a.icon-share {
+  margin-top: 1px;
+  .opacity(30);
+  zoom: 0.8;
+  &:hover {
+    .opacity(100);
+  }
+}
 .progressbar {
   position: relative;
   border: 1px solid lighten(@linkColor, 30%);
@@ -1624,6 +1632,7 @@ section.body .page-header:first-child {
   }
   .radio-inputs {
     position: relative;
+    display: inline-block;
     height: 26px;
     .radio {
       line-height: 26px;
@@ -1644,12 +1653,6 @@ section.body .page-header:first-child {
   .date {
     width: 70px;
   }
-  .submit {
-    .help-block {
-      margin-top: 0;
-      padding-top: 5px;
-    }
-  }
 }
 
 #daterange {

+ 11 - 4
src/sentry/static/sentry/styles/global.min.css

@@ -7031,6 +7031,16 @@ ul.tag-list {
 ul.tag-list li {
   margin-bottom: 5px;
 }
+a.icon-share {
+  margin-top: 1px;
+  opacity: 0.3;
+  filter: alpha(opacity=30);
+  zoom: 0.8;
+}
+a.icon-share:hover {
+  opacity: 1;
+  filter: alpha(opacity=100);
+}
 .progressbar {
   position: relative;
   border: 1px solid #c7def5;
@@ -7849,6 +7859,7 @@ section.body .page-header:first-child {
 }
 .datepicker-box .radio-inputs {
   position: relative;
+  display: inline-block;
   height: 26px;
 }
 .datepicker-box .radio-inputs .radio {
@@ -7869,10 +7880,6 @@ section.body .page-header:first-child {
 .datepicker-box .date {
   width: 70px;
 }
-.datepicker-box .submit .help-block {
-  margin-top: 0;
-  padding-top: 5px;
-}
 #daterange {
   display: none;
 }

+ 11 - 4
src/sentry/static/sentry/styles/sentry.css

@@ -7031,6 +7031,16 @@ ul.tag-list {
 ul.tag-list li {
   margin-bottom: 5px;
 }
+a.icon-share {
+  margin-top: 1px;
+  opacity: 0.3;
+  filter: alpha(opacity=30);
+  zoom: 0.8;
+}
+a.icon-share:hover {
+  opacity: 1;
+  filter: alpha(opacity=100);
+}
 .progressbar {
   position: relative;
   border: 1px solid #c7def5;
@@ -7849,6 +7859,7 @@ section.body .page-header:first-child {
 }
 .datepicker-box .radio-inputs {
   position: relative;
+  display: inline-block;
   height: 26px;
 }
 .datepicker-box .radio-inputs .radio {
@@ -7869,10 +7880,6 @@ section.body .page-header:first-child {
 .datepicker-box .date {
   width: 70px;
 }
-.datepicker-box .submit .help-block {
-  margin-top: 0;
-  padding-top: 5px;
-}
 #daterange {
   display: none;
 }

+ 4 - 1
src/sentry/templates/sentry/partial/_event_details.html

@@ -9,7 +9,10 @@
         </div>
         <ul class="tag-list">
             {% for tag_key, tag_value in tags %}
-                <li><strong>{{ tag_key }}</strong> <em>=</em> <span><a href="{% url 'sentry-stream' group.team.slug group.project.slug %}?{{ tag_key }}={{ tag_value }}">{{ tag_value }}</a></span></li>
+                <li>
+                    <strong>{{ tag_key }}</strong>
+                    <em>=</em>
+                    <span><a href="{% url 'sentry-stream' group.team.slug group.project.slug %}?{{ tag_key }}={{ tag_value }}">{{ tag_value }}</a> {% if tag_value|is_url %}<a href="{{ tag_value }}" class="icon-share"></a>{% endif %}</span></li>
             {% endfor %}
         </ul>
     </div>

+ 5 - 1
src/sentry/templates/sentry/partial/data_values.html

@@ -37,5 +37,9 @@
     </table>
 
 {% else %}
-    <pre>{{ value|pprint }}</pre>
+    {% if value|is_url %}
+        <a href="{{ value }}" class="icon-share">{{ value }}</a>
+    {% else %}
+        <pre>{{ value|pprint }}</pre>
+    {% endif %}
 {% endif %}

+ 11 - 0
src/sentry/templatetags/sentry_helpers.py

@@ -53,6 +53,17 @@ def pprint(value, break_after=10):
     ))
 
 
+@register.filter
+def is_url(value):
+    if not isinstance(value, basestring):
+        return False
+    if not value.startswith(('http://', 'https://')):
+        return False
+    if ' ' in value:
+        return False
+    return True
+
+
 # seriously Django?
 @register.filter
 def subtract(value, amount):