summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hyperkitty/static/css/hyperkitty.css117
-rw-r--r--hyperkitty/static/js/hyperkitty.js1
-rw-r--r--hyperkitty/templates/base.html14
-rw-r--r--hyperkitty/templates/login.html6
-rw-r--r--hyperkitty/templates/message.html28
-rw-r--r--hyperkitty/templates/month_view.html183
-rw-r--r--hyperkitty/templates/recent_activities.html163
-rw-r--r--hyperkitty/templates/search.html4
-rw-r--r--hyperkitty/templates/thread.html92
-rw-r--r--hyperkitty/templates/threads/month_list.html2
-rw-r--r--hyperkitty/templates/threads/right_col.html11
-rw-r--r--hyperkitty/views/message.py3
12 files changed, 335 insertions, 289 deletions
diff --git a/hyperkitty/static/css/hyperkitty.css b/hyperkitty/static/css/hyperkitty.css
index 6a9f85a..f00baa1 100644
--- a/hyperkitty/static/css/hyperkitty.css
+++ b/hyperkitty/static/css/hyperkitty.css
@@ -69,16 +69,26 @@ ul.lists li a:hover {
}
+
+/* Login form */
+
+.center {
+ text-align: center;
+}
+#loginform {
+ display: inline-block;
+ text-align: left;
+}
.socialLogin {
list-style: none;
margin: 0px;
}
-
.socialLogin li {
float: left;
padding: 5px;
}
+
.right {
text-align: right;
}
@@ -194,9 +204,6 @@ form.likeform {
font-weight: bold;
}
-#thread_content {
- width: 70%;
-}
#top_right {
position: absolute;
@@ -231,12 +238,6 @@ form.likeform {
font-style: italic;
}
-#recent_activities, #month-view {
- width: 88%;
- margin-right: 10px;
- float: right;
-}
-
/* Summary page */
@@ -244,6 +245,7 @@ form.likeform {
font-size: 22px;
line-height: 32px;
margin-bottom: 0.5em;
+ text-align: center;
}
#graph h2 {
@@ -257,28 +259,18 @@ form.likeform {
height: 330px;
}
-#top_discussion {
- width: 45%;
- margin-right: 22px;
- margin-left: 10px;
-}
-
-#discussion_by_topic {
- width: 45%;
- margin-top: 20px;
- margin-right: 22px;
- margin-left: 10px;
-}
-
-#most_active {
- float: right;
- width: 45%;
-}
+#top_discussion,
+#discussion_by_topic,
+#most_active,
#discussion-maker {
- float: right;
- width: 45%;
- margin-top: 20px;
+ padding: 1em;
+ padding-bottom: 0;
+ border: 1px solid #ddd;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ margin: 1em 0;
}
.category {
@@ -327,22 +319,7 @@ form.likeform {
}
-
-
-#archives {
- width: 9%;
- float: left;
-}
-
-#archives h3.ui-state-hover {
- cursor: pointer;
- text-decoration: underline;
-}
-#archives h3.ui-state-active.ui-state-hover {
- cursor: text;
- color: inherit;
- text-decoration: none;
-}
+/* Months list */
#archives ul {
padding: 0;
@@ -388,7 +365,7 @@ form.likeform {
/* Thread list */
.thread {
- margin-bottom: 3em;
+ margin: 2em 0 2em 0;
}
.thread_id {
@@ -416,14 +393,20 @@ form.likeform {
.thread_info {
text-align:right;
+ clear: both;
+ margin-left: 46px;
}
.thread_info .btn {
padding-top: 2px;
padding-bottom: 2px;
}
+.thread_content .gravatar {
+ float: left;
+}
.thread_content .thread_email {
- display: inline-block;
+ display: block;
+ margin-left: 46px;
margin-bottom: 5px;
}
@@ -435,7 +418,6 @@ form.likeform {
/* Part containing the body of the mail which can be shown/hidden */
.expander {
- width: 740px;
background-image: linear-gradient(bottom, rgb(236,236,236) 11%, rgb(255,255,255) 100%);
background-image: -o-linear-gradient(bottom, rgb(236,236,236) 11%, rgb(255,255,255) 100%);
background-image: -moz-linear-gradient(bottom, rgb(236,236,236) 11%, rgb(255,255,255) 100%);
@@ -455,17 +437,26 @@ form.likeform {
-webkit-border-radius: 5px 5px 5px 5px;
-moz-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
- padding-left: 20px;
+ padding: 1em;
margin-left: 21px;
- display: inline-block;
+ display: block;
vertical-align: top;
white-space: pre;
}
-.expander a {
+.thread_email .expander.collapsed {
+ white-space: normal;
+}
+
+/*
+.thread_email span.read-more a,
+.thread_email span.read-less a {
+ display: block;
float: right;
- padding: 20px 10px 0px 0px;
+ margin-top: 0.5em;
}
+*/
+
/* Thread types */
.type {
@@ -643,27 +634,20 @@ ul.attachments-list li {
margin-right: 20px;
}
-/* Define the two columns */
-#thread_content {
- width: 74%;
-}
-
#thread_overview_info {
float: right;
- width: 22%;
}
/* Thread general information column */
-#days_old {
- margin-left:1em;
-}
-
-.days_text {
- font-size: 70%;
-}
.days_num {
font-size: 200%;
+ display: inline-block;
+}
+.days_text {
+ font-size: 70%;
+ display: inline-block;
+ margin-right: 2em;
}
#add_to_fav a{
@@ -848,4 +832,3 @@ ul.attachments-list li {
border-left: 2px solid rgb(55, 113, 200);
padding-left: 0.2em;
}
-
diff --git a/hyperkitty/static/js/hyperkitty.js b/hyperkitty/static/js/hyperkitty.js
index c4a1bbe..bc04e42 100644
--- a/hyperkitty/static/js/hyperkitty.js
+++ b/hyperkitty/static/js/hyperkitty.js
@@ -172,4 +172,5 @@ $(document).ready(function() {
setup_attachments();
setup_add_tag();
setup_quotes();
+ $("#archives").accordion({navigation: true});
});
diff --git a/hyperkitty/templates/base.html b/hyperkitty/templates/base.html
index 515b430..7f3d146 100644
--- a/hyperkitty/templates/base.html
+++ b/hyperkitty/templates/base.html
@@ -14,10 +14,11 @@
{% load i18n %}
<body>
- <header>
- <div class="navbar navbar-fixed-top">
+ <div class="container-fluid">
+ <header class="row-fluid">
+ <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner">
- <div class="container">
+ <div class="container-fluid">
<ul class="nav auth">
{% if user.is_authenticated %}
@@ -49,13 +50,14 @@
</div>
</header>
- <div class="container">
- {% block content %} {% endblock %}
- </div>
+ {% block content %} {% endblock %}
+
{% block footer %} {% endblock %}
+ </div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="{{ STATIC_URL }}js/libs/jquery-1.8.3.min.js"><\/script>')</script>
+ <script src="{{ STATIC_URL }}js/libs/jquery-ui-1.9.1.custom.min.js"></script>
<script src="{{ STATIC_URL }}js/libs/bootstrap.min.js"></script>
<script src="{{ STATIC_URL }}js/hyperkitty.js"></script>
{% block additionaljs %} {% endblock %}
diff --git a/hyperkitty/templates/login.html b/hyperkitty/templates/login.html
index f271b80..6c708bf 100644
--- a/hyperkitty/templates/login.html
+++ b/hyperkitty/templates/login.html
@@ -8,6 +8,9 @@
{% block content %}
+<div class="center">
+<div id="loginform">
+
<h2>Login with username and password</h2>
<form action="" method="post" class="login mm_clear">
@@ -37,6 +40,9 @@
</ul>
+</div>
+</div>
+
{% endblock %}
{% block additionaljs %}
diff --git a/hyperkitty/templates/message.html b/hyperkitty/templates/message.html
index 78462b5..c4df974 100644
--- a/hyperkitty/templates/message.html
+++ b/hyperkitty/templates/message.html
@@ -10,16 +10,26 @@
{% block content %}
-<div class="message-header">
- <a class="thread-back"
- href="{% url thread threadid=message.thread_id, mlist_fqdn=list_address %}#{{message.message_id_hash}}">
- </a> {# the background image will be a "back to thread" button #}
- <h1>{{ message.subject }}</h1>
-</div>
+<div class="row-fluid">
+
+{% include 'threads/month_list.html' %}
+
+ <div class="span7">
+
+ <div class="message-header">
+ <a class="thread-back"
+ href="{% url thread threadid=message.thread_id, mlist_fqdn=list_address %}#{{message.message_id_hash}}">
+ </a> {# the background image will be a "back to thread" button #}
+ <h1>{{ message.subject }}</h1>
+ </div>
-<section id="thread_content">
- {% include 'messages/first_email.html' with first_mail=message %}
-</section>
+ <section id="thread_content">
+ {% include 'messages/first_email.html' with first_mail=message %}
+ </section>
+
+ </div>
+
+</div>
{% endblock %}
diff --git a/hyperkitty/templates/month_view.html b/hyperkitty/templates/month_view.html
index 71921c8..f9d381f 100644
--- a/hyperkitty/templates/month_view.html
+++ b/hyperkitty/templates/month_view.html
@@ -10,112 +10,123 @@
{% block content %}
-<div id="month-view">
+<div class="row-fluid">
- <div class="month-header">
- <div class="list-name">{{ mlist.display_name|default:mlist.name|escapeemail }}</div>
- <div class="month-name">{{ month|date:"F Y"|capfirst }}</div>
- <ul class="month-info">
- <li class="participant">
- {{ month_participants }} participants
- </li>
- <li class="discussion">
- {{ month_discussions }} discussions
- </li>
- </ul>
- {% if mlist.display_name %}
- <p class="list-address">
- {{ list_address|escapeemail }}
- </p>
- {% endif %}
- </div>
+{% include 'threads/month_list.html' %}
- {% for thread in threads %}
- <!-- New thread -->
- <div class="thread">
- <div class="notsaved">
- <span class="thread_title"><a name="{{thread.thread_id}}"
- href="{% url thread threadid=thread.thread_id, mlist_fqdn=list_address %}"
- >{{ thread.starting_email.subject|strip_subject:mlist }}</a></span>
- <span class="thread_date">{{thread.date_active|timesince }}</span>
- </div>
- <div class="thread_content">
- {% if thread.category_tag %}
- <div class="inline-block type type_{{thread.category_tag}}">
- <a href="{% url search_tag mlist_fqdn=list_address, tag=thread.category_tag %}"
- >{{thread.category}}</a>
- </div>
- {% endif %}
- {% if thread.category %}
- <div class="inline-block type type_{{thread.category|lower}}">
- <a href="{% url search_tag mlist_fqdn=list_address, tag=thread.category|lower %}"
- >{{thread.category}}</a>
- </div>
- {% endif %}
- <div class="inline-block gravatar">
- {% if thread.starting_email.sender_email %}
- {% gravatar thread.starting_email.sender_email 40 %}
- <br />
- {% endif %}
- {{ thread.starting_email.sender_name|escapeemail }}
- </div>
- <div class="thread_email">
- <span class="expander">
- {{ thread.starting_email.content|wordwrap:90|urlizetrunc:76|escapeemail }}
- </span>
- </div>
- </div>
- <div class="thread_info">
- <ul class="tags inline">
- {% if thread.tags|length %}
- <li>
- Tags:
- </li>
- {% for tag in thread.tags %}
- <li>
- <a href="{% url search_tag mlist_fqdn=list_address, tag=tag %}">{{tag}}</a>
- </li>
- {% endfor %}
- {% endif %}
- </ul>
- <ul class="inline-block">
+ <div id="month-view" class="span8">
+
+ <div class="month-header">
+ <div class="list-name">{{ mlist.display_name|default:mlist.name|escapeemail }}</div>
+ <div class="month-name">{{ month|date:"F Y"|capfirst }}</div>
+ <ul class="month-info">
<li class="participant">
- {{ thread.participants|length }} participants
+ {{ month_participants }} participants
</li>
<li class="discussion">
- {{ thread|length }} comments
+ {{ month_discussions }} discussions
</li>
</ul>
- <ul class="inline-block">
- {% include "messages/like_form.html" with hashid=thread.thread_id object=thread %}
- </ul>
- <a href="{% url thread threadid=thread.thread_id, mlist_fqdn=list_address %}"
- class="btn">Show discussion</a>
+ {% if mlist.display_name %}
+ <p class="list-address">
+ {{ list_address|escapeemail }}
+ </p>
+ {% endif %}
</div>
+
+ {% for thread in threads %}
+ <!-- New thread -->
+ <div class="thread">
+ <div class="notsaved">
+ <span class="thread_title"><a name="{{thread.thread_id}}"
+ href="{% url thread threadid=thread.thread_id, mlist_fqdn=list_address %}"
+ >{{ thread.starting_email.subject|strip_subject:mlist }}</a></span>
+ <span class="thread_date">{{thread.date_active|timesince }}</span>
+ </div>
+ <div class="thread_content">
+ {% if thread.category_tag %}
+ <div class="inline-block type type_{{thread.category_tag}}">
+ <a href="{% url search_tag mlist_fqdn=list_address, tag=thread.category_tag %}"
+ >{{thread.category}}</a>
+ </div>
+ {% endif %}
+ {% if thread.category %}
+ <div class="inline-block type type_{{thread.category|lower}}">
+ <a href="{% url search_tag mlist_fqdn=list_address, tag=thread.category|lower %}"
+ >{{thread.category}}</a>
+ </div>
+ {% endif %}
+ <div class="gravatar">
+ {% if thread.starting_email.sender_email %}
+ {% gravatar thread.starting_email.sender_email 40 %}
+ <br />
+ {% endif %}
+ {{ thread.starting_email.sender_name|escapeemail }}
+ </div>
+ <div class="thread_email">
+ <span class="expander collapsed">
+ {{ thread.starting_email.content|urlizetrunc:76|escapeemail }}
+ </span>
+ </div>
+ </div>
+ <div class="thread_info">
+ <ul class="tags inline">
+ {% if thread.tags|length %}
+ <li>
+ Tags:
+ </li>
+ {% for tag in thread.tags %}
+ <li>
+ <a href="{% url search_tag mlist_fqdn=list_address, tag=tag %}">{{tag}}</a>
+ </li>
+ {% endfor %}
+ {% endif %}
+ </ul>
+ <ul class="inline-block">
+ <li class="participant">
+ {{ thread.participants|length }} participants
+ </li>
+ <li class="discussion">
+ {{ thread|length }} comments
+ </li>
+ </ul>
+ <ul class="inline-block">
+ {% include "messages/like_form.html" with hashid=thread.thread_id object=thread %}
+ </ul>
+ <a href="{% url thread threadid=thread.thread_id, mlist_fqdn=list_address %}"
+ class="btn">Show discussion</a>
+ </div>
+ </div>
+ <!-- End of thread -->
+ {% empty %}
+ Sorry no emails could be found for this month.
+ {% endfor %}
+
+ {% include "paginator.html" %}
+
</div>
- <!-- End of thread -->
- {% empty %}
- Sorry no emails could be found for this month.
- {% endfor %}
- {% include "paginator.html" %}
</div>
-{% include 'threads/month_list.html' %}
-
{% endblock %}
{% block additionaljs %}
<script src="{{ STATIC_URL }}js/libs/jquery.expander.js"></script>
-<script src="{{ STATIC_URL }}js/libs/jquery-ui-1.9.1.custom.min.js"></script>
<script>
$(document).ready(function() {
$('span.expander').expander({
- userCollapseText : 'View Less',
- expandText : 'View More'
+ slicePoint: 500,
+ userCollapseText : '\nView Less',
+ expandText : '\nView More',
+ afterExpand: function() {
+ $(this).removeClass("collapsed");
+ $(this).addClass("expanded");
+ },
+ onCollapse: function() {
+ $(this).removeClass("expanded");
+ $(this).addClass("collapsed");
+ }
});
-
- $("#archives").accordion({navigation: true});
});
</script>
{% endblock %}
diff --git a/hyperkitty/templates/recent_activities.html b/hyperkitty/templates/recent_activities.html
index 59b5a73..326f933 100644
--- a/hyperkitty/templates/recent_activities.html
+++ b/hyperkitty/templates/recent_activities.html
@@ -8,101 +8,112 @@
{{ mlist.display_name|default:mlist.name|escapeemail }} - {{ app_name|title }}
{% endblock %}
-{% block additional_stylesheets %}
-<link rel="stylesheet" type="text/css" media="all" href="{{ STATIC_URL }}css/stats.css" />
-{% endblock %}
{% block content %}
-<section id="recent_activities">
-
- <section id="graph">
- <h2>Activities on the list over the last 30 days</h2>
- <div id="fig">
- <script type="text/javascript+protovis" >
- activity_graph(
- ["{{dates_string|join:'","'}}"],
- {{evolution}},
- "{% url archives mlist_fqdn=list_address %}"
- );
- </script>
- </div>
- </section>
-
- <section id="most_active">
- <h2>Recently active discussions</h2>
- {% for thread in most_active_threads %}
- {% include "threads/summary_thread.html" with counter=forloop.counter %}
- {% endfor %}
- </section>
+<div class="row-fluid">
- <section id="top_discussion">
- <h2>Top discussions the last 30 days</h2>
- {% for thread in top_threads %}
- {% include "threads/summary_thread.html" with counter=forloop.counter %}
- {% endfor %}
- </section>
+{% include 'threads/month_list.html' %}
- {% if top_author %}
- <section id="discussion-maker">
- <h2>Prominent discussion maker</h2>
- {% for author in top_author %}
- <!-- Start discussion maker -->
- <div class="maker">
- <div class="inline-block maker-id">
- #{{forloop.counter}}
+ <section id="recent_activities" class="span10">
+
+ <section id="graph">
+ <h2>Activities on the list over the last 30 days</h2>
+ <div id="fig">
+ <script type="text/javascript+protovis" >
+ activity_graph(
+ ["{{dates_string|join:'","'}}"],
+ {{evolution}},
+ "{% url archives mlist_fqdn=list_address %}"
+ );
+ </script>
</div>
- <div class="inline-block gravatar">
- {% if author.email %}
- {% gravatar author.email 40 %}
- <br />
- {% endif %}
+ </section>
+
+ <div class="row-fluid">
+
+ <div class="span6">
+ <section id="most_active">
+ <h2>Recently active discussions</h2>
+ {% for thread in most_active_threads %}
+ {% include "threads/summary_thread.html" with counter=forloop.counter %}
+ {% endfor %}
+ </section>
</div>
- <div class="inline-block">
- <span class="maker-name">{{author.name}}</span>
- <br />
- <span class="score">+{{author.kudos}}</span> kudos
+
+ <div class="span6">
+ <section id="top_discussion">
+ <h2>Top discussions the last 30 days</h2>
+ {% for thread in top_threads %}
+ {% include "threads/summary_thread.html" with counter=forloop.counter %}
+ {% endfor %}
+ </section>
</div>
+
</div>
- <!-- End discussion maker -->
- {% endfor %}
+ <div class="row-fluid">
+
+ <div class="span6">
+ {% if top_author %}
+ <section id="discussion-maker">
+ <h2>Prominent discussion maker</h2>
+ {% for author in top_author %}
+ <!-- Start discussion maker -->
+ <div class="maker">
+ <div class="inline-block maker-id">
+ #{{forloop.counter}}
+ </div>
+ <div class="inline-block gravatar">
+ {% if author.email %}
+ {% gravatar author.email 40 %}
+ <br />
+ {% endif %}
+ </div>
+ <div class="inline-block">
+ <span class="maker-name">{{author.name}}</span>
+ <br />
+ <span class="score">+{{author.kudos}}</span> kudos
+ </div>
+ </div>
+ <!-- End discussion maker -->
+ {% endfor %}
- <h2>Tag cloud</h2>
- </section>
- {% endif %}
-
- {% if threads_per_category %}
- <section id="discussion_by_topic">
- <h2>Discussion by topic the last 30 days</h2>
- {% for category, thread in threads_per_category.items %}
- <div>
- <h2 class="category type_{{category}}"> {{category}} </h2>
- <ul class="category_entry">
- {% for email in thread %}
- <li>
- {{email.title}}
- </li>
+ <h2>Tag cloud</h2>
+ </section>
+ {% endif %}
+ </div>
+
+
+ <div class="span6">
+ {% if threads_per_category %}
+ <section id="discussion_by_topic">
+ <h2>Discussion by topic the last 30 days</h2>
+ {% for category, thread in threads_per_category.items %}
+ <div>
+ <h2 class="category type_{{category}}"> {{category}} </h2>
+ <ul class="category_entry">
+ {% for email in thread %}
+ <li>
+ {{email.title}}
+ </li>
+ {% endfor %}
+ </ul>
+ </div>
{% endfor %}
- </ul>
+ </section>
+ {% endif %}
+ </div>
+
</div>
- {% endfor %}
- </section>
- {% endif %}
-</section>
+ </section>
-{% include 'threads/month_list.html' %}
+</div>
{% endblock %}
{% block additionaljs %}
<script src="{{ STATIC_URL }}js/libs/protovis-d3.1.js"></script>
-<script src="{{ STATIC_URL }}js/libs/jquery-ui-1.9.1.custom.min.js"></script>
-<script>
- $(document).ready(function() {
- $("#archives").accordion({navigation: true});
- });
-</script>
{% endblock %}
{# vim: set noet: #}
diff --git a/hyperkitty/templates/search.html b/hyperkitty/templates/search.html
index ac3b3e5..a80d9ff 100644
--- a/hyperkitty/templates/search.html
+++ b/hyperkitty/templates/search.html
@@ -9,6 +9,8 @@
{% block content %}
+<div class="row-fluid">
+
{% if threads.object_list %}
<div class="pagination">
<span class="step-links"> {% if threads.has_previous %} <a href="{{full_path|strip_page}}/{{ threads.previous_page_number }}">previous</a> {% endif %} <span class="current"> Page {{ threads.number }} of {{ threads.paginator.num_pages }}. </span> {% if threads.has_next %} <a href="{{full_path|strip_page}}/{{ threads.next_page_number }}">next</a> {% endif %} </span>
@@ -81,6 +83,8 @@ Sorry no emails could be found for your search.
</div>
{% endif %}
+</div>
+
{% endblock %}
{% block additionaljs %}
diff --git a/hyperkitty/templates/thread.html b/hyperkitty/templates/thread.html
index dd17cb2..3fa401b 100644
--- a/hyperkitty/templates/thread.html
+++ b/hyperkitty/templates/thread.html
@@ -11,46 +11,64 @@
{% block content %}
- <div class="thread-header">
- {% for thread in neighbors %}
- {% if thread %}
- <a class="thread-{% ifequal forloop.counter 1 %}older{% else %}newer{% endifequal %}"
- href="{% url thread threadid=thread.thread_id, mlist_fqdn=list_address %}"
- >{{ thread.subject|strip_subject:mlist|truncatesmart:"22" }}</a>
- {% endif %}
- {% endfor %}
- <h1>{{ subject }}</h1>
- </div>
+<div class="row-fluid">
+
+{% include 'threads/month_list.html' %}
+
+ <div class="span10">
- {% include 'threads/right_col.html' %}
-
- <!-- main section, the email thread -->
- <section id="thread_content">
-
- <!-- Start first email -->
- {% include 'messages/first_email.html' %}
- <!-- End first email -->
-
- <p class="sort-mode">
- {% if sort_mode == "date" %}
- <a href="{% url thread threadid=threadid, mlist_fqdn=list_address %}?sort=thread"
- >Show replies by thread</a>
- {% else %}
- <a href="{% url thread threadid=threadid, mlist_fqdn=list_address %}?sort=date"
- >Show replies by date</a>
- {% endif %}
- </p>
-
- {% for email in replies %}
- <div class="{% cycle 'even' 'odd' %}"
- {% if email.level %}style="margin-left:{{ email.level|multiply:"2" }}em;"{% endif %}>
- <!-- Start email -->
- {% include 'messages/message.html' %}
- <!-- End of email -->
+ <div class="thread-header">
+ {% for thread in neighbors %}
+ {% if thread %}
+ <a class="thread-{% ifequal forloop.counter 1 %}older{% else %}newer{% endifequal %}"
+ href="{% url thread threadid=thread.thread_id, mlist_fqdn=list_address %}"
+ >{{ thread.subject|strip_subject:mlist|truncatesmart:"22" }}</a>
+ {% endif %}
+ {% endfor %}
+ <h1>{{ subject }}</h1>
</div>
- {% endfor %}
- </section>
+ <div class="row-fluid">
+
+ <div class="span9">
+ <!-- main section, the email thread -->
+ <section id="thread_content">
+
+ <!-- Start first email -->
+ {% include 'messages/first_email.html' %}
+ <!-- End first email -->
+
+ <p class="sort-mode">
+ {% if sort_mode == "date" %}
+ <a href="{% url thread threadid=threadid, mlist_fqdn=list_address %}?sort=thread"
+ >Show replies by thread</a>
+ {% else %}
+ <a href="{% url thread threadid=threadid, mlist_fqdn=list_address %}?sort=date"
+ >Show replies by date</a>
+ {% endif %}
+ </p>
+
+ {% for email in replies %}
+ <div class="{% cycle 'even' 'odd' %}"
+ {% if email.level %}style="margin-left:{{ email.level|multiply:"2" }}em;"{% endif %}>
+ <!-- Start email -->
+ {% include 'messages/message.html' %}
+ <!-- End of email -->
+ </div>
+ {% endfor %}
+
+ </section>
+ </div>
+
+ <div class="span3">
+ {% include 'threads/right_col.html' %}
+ </div>
+
+ </div>
+
+ </div>
+
+</div>
<!-- end of content -->
{% endblock %}
diff --git a/hyperkitty/templates/threads/month_list.html b/hyperkitty/templates/threads/month_list.html
index 4781ec4..66aa3f9 100644
--- a/hyperkitty/templates/threads/month_list.html
+++ b/hyperkitty/templates/threads/month_list.html
@@ -1,6 +1,6 @@
{% load hk_generic %}
-<div id="archives">
+<div id="archives" class="span2">
{% for year, months in archives_length|sort %}
<h3>{{ year }}</h3>
<ul>
diff --git a/hyperkitty/templates/threads/right_col.html b/hyperkitty/templates/threads/right_col.html
index 7fa1743..73194df 100644
--- a/hyperkitty/templates/threads/right_col.html
+++ b/hyperkitty/templates/threads/right_col.html
@@ -4,19 +4,19 @@
<!-- right column -->
<section id="thread_overview_info">
<!-- Start dates -->
- <div id="thread_date_info">
- <div class="days_num inline-block">
+ <div id="thread_date_info" class="row-fluid">
+ <div class="days_num">
{{ days_inactive }}
</div>
- <div class="days_text inline-block">
+ <div class="days_text">
days
<br />
inactive
</div>
- <div id="days_old" class="days_num inline-block">
+ <div class="days_num">
{{ days_old }}
</div>
- <div class="days_text inline-block">
+ <div class="days_text">
days
<br />
old
@@ -28,7 +28,6 @@
</p>
{% endif %}
<!-- End dates -->
- <hr id="grey"/>
<div id="tags">
{% include 'threads/tags.html' %}
</div>
diff --git a/hyperkitty/views/message.py b/hyperkitty/views/message.py
index ab30447..b78d091 100644
--- a/hyperkitty/views/message.py
+++ b/hyperkitty/views/message.py
@@ -35,7 +35,7 @@ from django.contrib.auth.decorators import (login_required,
user_passes_test)
from hyperkitty.models import Rating
-from hyperkitty.lib import get_store
+from hyperkitty.lib import get_store, get_months
from forms import *
@@ -90,6 +90,7 @@ def index(request, mlist_fqdn, hashid):
'list_address': mlist_fqdn,
'message': message,
'hashid' : hashid,
+ 'archives_length': get_months(store, mlist_fqdn),
'use_mockups': settings.USE_MOCKUPS,
})
return HttpResponse(t.render(c))