Author: gjm
Date: Thu Mar 28 09:55:18 2013
New Revision: 1462014
URL: http://svn.apache.org/r1462014
Log:
removes the activity feed from the ticket page and moves the change history
into this space with some restyling- towards #471
Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_change.html
Modified: bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css?rev=1462014&r1=1462013&r2=1462014&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css (original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css Thu Mar 28
09:55:18 2013
@@ -977,9 +977,8 @@ tt {
}
.comment {
- border-top: 1px solid rgb(80%, 80%, 80%);
margin-bottom: 10px;
- padding-top: 5px;
+ padding-left: 10px;
}
.comment-meta {
@@ -1103,3 +1102,13 @@ table.wiki th {
}
/* @end */
+
+
+#changelog div.comment-box{
+ border: 2px solid #999999;
+ border-radius: 8px 8px 8px 8px;
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05) inset;
+ padding: 2px 4px 2px 4px;
+ margin: 10px 0px 10px 10px;
+ min-height: 20px;
+}
\ No newline at end of file
Modified: bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html?rev=1462014&r1=1462013&r2=1462014&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html Thu Mar
28 09:55:18 2013
@@ -34,8 +34,8 @@
has_edit_comment = 'TICKET_EDIT_COMMENT' in perm(ticket.resource);
has_property_editor = not version and version != 0 and not cnum_edit
and (can_append or can_modify or can_edit or
can_create);
- colspan = 'span8';
- cols_activity = 'span4'">
+ colspan = 'span7';
+ cols_activity = 'span5'">
<xi:include href="layout.html" />
<xi:include href="widget_macros.html" />
@@ -618,8 +618,21 @@
</form>
</div>
- <div py:if="ticket.exists and changes" class="$colspan">
- <h2 class="foldable">Change History</h2>
+ <div class="$colspan">
+ <div py:if="not ticket.exists">
+ <xi:include href="bh_ticket_box.html" py:with="preview_mode =
True"/>
+ </div>
+
+ <div id="help" class="help-block" i18n:msg="">
+ <span class="label label-info">Note:</span> See
+ <a href="${href.wiki('TracTickets')}">TracTickets</a> for help on
using tickets.
+ </div>
+ </div>
+
+ </div>
+ </div>
+
+ <div py:if="ticket.exists and changes" class="$cols_activity">
<div>
<form id="prefs" method="get" action="${href.prefs()}">
<div id="trac-comments-order" style="display: inline">
@@ -656,28 +669,6 @@
</div>
</div>
- <div class="$colspan">
- <div py:if="not ticket.exists">
- <xi:include href="bh_ticket_box.html" py:with="preview_mode =
True"/>
- </div>
-
- <div id="help" class="help-block" i18n:msg="">
- <span class="label label-info">Note:</span> See
- <a href="${href.wiki('TracTickets')}">TracTickets</a> for help on
using tickets.
- </div>
- </div>
-
- </div>
- </div>
-
- <div py:if="bhdb and ticket.exists" id="activity"
class="$cols_activity">
- <bh:widget urn="Timeline">
- <bh:args>
- <bh:arg name="filters">ticket,ticket_details,changeset</bh:arg>
- </bh:args>
- </bh:widget>
- </div>
-
</div>
</div>
Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_change.html
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_change.html?rev=1462014&r1=1462013&r2=1462014&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_change.html
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_change.html
Thu Mar 28 09:55:18 2013
@@ -47,140 +47,183 @@ Arguments:
show_buttons = not hide_buttons and not show_editor and
comment_version == max_version"
py:strip="">
<py:def function="commentref(prefix, cnum, cls=None)">
- <a href="#comment:$cnum" class="$cls">$prefix$cnum</a>
+ <a href="#comment:$cnum" title="$prefix$cnum" class="$cls"
style="margin-left:5px;">☍</a>
</py:def>
- <div class="row visible-desktop-hover">
- <div class="span2">
- <h6 style="margin-left: 0px; margin-top:10px;">
- <py:choose>
- <py:when test="'date' in change">
- ${pretty_dateinfo(change.date)}
- </py:when>
- <py:otherwise>(Unknown)</py:otherwise>
- </py:choose>
- </h6>
- <p style="margin: 0">
- <span py:if="'cnum' in change" id="comment:$cnum"
class="cnum">${commentref('comment:', cnum)}</span>
- </p>
- <div class="threading"
- py:with="change_replies = replies.get(str(cnum), []) if 'cnum' in
change else []">
- <p py:if="'replyto' in change">
- In reply to: ${commentref('↑ ', change.replyto)}
- </p>
- <p py:if="change_replies">
- <i18n:choose numeral="len(change_replies)">
- <span i18n:singular="">Follow-up:</span>
- <i18n:plural>
- <span>Follow-ups:</span><br/>
- </i18n:plural>
- </i18n:choose>
- <py:for each="reply in change_replies">
- ${commentref('↓ ', reply, 'follow-up')}
- </py:for>
- </p>
+ <div class="row visible-desktop-hover" py:if="change.comment">
+ <div class="comment-box" id="${'comment:' + str(cnum) if cnum else ''}">
+ <div style="display:none;">
+ <h6 style="margin-left: 0px; margin-top:10px;">
+ <py:choose>
+ <py:when test="'date' in change">
+ ${pretty_dateinfo(change.date)}
+ </py:when>
+ <py:otherwise>(Unknown)</py:otherwise>
+ </py:choose>
+ </h6>
+ <div class="threading"
+ py:with="change_replies = replies.get(str(cnum), []) if 'cnum'
in change else []">
+ <p py:if="'replyto' in change">
+ In reply to: ${commentref('↑ ', change.replyto)}
+ </p>
+ <p py:if="change_replies">
+ <i18n:choose numeral="len(change_replies)">
+ <span i18n:singular="">Follow-up:</span>
+ <i18n:plural>
+ <span>Follow-ups:</span><br/>
+ </i18n:plural>
+ </i18n:choose>
+ <py:for each="reply in change_replies">
+ ${commentref('↓ ', reply, 'follow-up')}
+ </py:for>
+ </p>
+ </div>
</div>
- </div>
- <div class="offset2">
- <h4 class="change">
- <div py:if="show_buttons" class="pull-right bh-ticket-buttons
hidden-desktop trac-ticket-buttons">
- <form py:if="'cnum' in change and can_edit_comment" method="get"
- style="display:inline" action="#comment:${cnum}">
- <div class="inlinebuttons">
+ <div>
+ <h4 class="change">
+ <div class="pull-right">
+ <span py:if="'cnum' in change" id="comment:$cnum"
class="cnum">${commentref('comment:', cnum)}</span>
+ </div>
+ <div py:if="show_buttons" class="pull-right bh-ticket-buttons
hidden-desktop trac-ticket-buttons">
+ <py:if test="'date' in change">
+ ${pretty_dateinfo(change.date)}
+ </py:if>
+ <form py:if="'cnum' in change and can_edit_comment" method="get"
+ style="display:inline" action="#comment:${cnum}">
+ <div class="inlinebuttons">
+ <input type="hidden" name="cnum_edit" value="${cnum}"/>
+ <input type="submit" value="${_('Edit')}" class="btn-link"
+ title="${_('Edit comment %(cnum)s', cnum=cnum)}"/>
+ </div>
+ </form>
+ <form py:if="'cnum' in change and can_append"
id="reply-to-comment-${cnum}"
+ method="get" action="#comment" style="display: inline">
+ <div class="inlinebuttons">
+ <input type="hidden" name="replyto" value="${cnum}"/>
+ <input type="submit" value="${_('Reply')}" class="btn-link"
+ title="${_('Reply to comment %(cnum)s', cnum=cnum)}"/>
+ </div>
+ </form>
+ </div>
+
+ ${authorinfo(change.author)}
+ <span py:if="preview or show_editor" class="trac-loading"/>
+ </h4>
+ <form py:if="show_editor" id="trac-comment-editor" method="post"
+ action="${href.ticket(ticket.id) + '#comment:%d' % cnum}">
+ <div>
+ <textarea name="edited_comment" class="wikitext trac-resizable"
rows="10" cols="78">
+ ${edited_comment if edited_comment is not None else
change.comment}</textarea>
<input type="hidden" name="cnum_edit" value="${cnum}"/>
- <input type="submit" value="${_('Edit')}" class="btn btn-mini"
- title="${_('Edit comment %(cnum)s', cnum=cnum)}"/>
</div>
- </form>
- <form py:if="'cnum' in change and can_append"
id="reply-to-comment-${cnum}"
- method="get" action="#comment" style="display: inline">
- <div class="inlinebuttons">
- <input type="hidden" name="replyto" value="${cnum}"/>
- <input type="submit" value="${_('Reply')}" class="btn btn-mini"
- title="${_('Reply to comment %(cnum)s', cnum=cnum)}"/>
+ <div class="btn-toolbar buttons">
+ <div class="btn-group">
+ <input class="btn" type="submit" name="preview_comment"
value="${_('Preview')}"
+ title="${_('Preview changes to comment %(cnum)s',
cnum=cnum)}"/>
+ <input class="btn" type="submit" name="edit_comment"
value="${_('Submit changes')}"
+ title="${_('Submit changes to comment %(cnum)s',
cnum=cnum)}"/>
+ </div>
+ <input class="btn-link" type="submit" name="cancel_comment"
value="${_('Cancel')}"
+ title="Cancel comment edit"/>
</div>
</form>
+ <py:choose>
+ <div py:when="str(cnum) == cnum_edit"
+ py:with="text = edited_comment if edited_comment is not None
else change.comment"
+ class="comment searchable ticketdraft" style="${'display: none'
if not text else None}" xml:space="preserve">
+ ${wiki_to_html(context, text, escape_newlines=preserve_newlines)}
+ </div>
+ <div py:when="show_history" class="comment searchable"
xml:space="preserve">
+ ${wiki_to_html(context,
change.comment_history[int(cversion)].comment,
escape_newlines=preserve_newlines)}
+ </div>
+ <div py:when="change.comment" class="comment searchable"
xml:space="preserve">
+ ${wiki_to_html(context, change.comment,
escape_newlines=preserve_newlines)}
+ </div>
+ </py:choose>
+ <div py:if="not show_editor and len(change.comment_history) > 1"
py:choose=""
+ class="trac-lastedit ${'trac-shade' if comment_version !=
max_version else None} alert alert-success">
+ <i18n:msg params="version, date, author" py:when="comment_version !=
max_version">
+ Version ${comment_version}, edited
${pretty_dateinfo(change.comment_history[comment_version].date)}
+ by ${authorinfo(change.comment_history[comment_version].author)}
+ </i18n:msg>
+ <i18n:msg params="date, author" py:otherwise="">
+ Last edited
${pretty_dateinfo(change.comment_history[comment_version].date)}
+ by ${authorinfo(change.comment_history[comment_version].author)}
+ </i18n:msg>
+ <py:if test="comment_version > 0">
+ (<a href="${href.ticket(ticket.id, cnum_hist=cnum,
cversion=comment_version - 1)
+ }#comment:${cnum}">previous</a>)
+ </py:if>
+ <py:if test="comment_version < max_version">
+ (<a href="${href.ticket(ticket.id, cnum_hist=cnum,
cversion=comment_version + 1)
+ }#comment:${cnum}">next</a>)
+ </py:if>
+ <py:if test="comment_version > 0">
+ (<a href="${href.ticket(ticket.id, action='comment-diff',
cnum=cnum,
+ version=comment_version)}">diff</a>)
+ </py:if>
+ </div>
</div>
- ${authorinfo(change.author)}
- <span py:if="preview or show_editor" class="trac-loading"/>
- </h4>
- <ul py:if="change.fields" class="changes">
- <li py:for="field_name, field in sorted(change.fields.iteritems(),
key=lambda item: item[1].label.lower())"
- class="trac-field-${field_name}${'trac-conflict' if preview and
field_name in conflicts else None}">
- <strong class="trac-field-${field_name}">${field.label}</strong>
- <py:choose>
- <py:when test="field_name == 'attachment'"><i18n:msg params="name">
- <a href="${href.attachment('ticket', ticket.id,
field.new)}"><em>${field.new
- }</em></a><a href="${href('raw-attachment', 'ticket',
ticket.id, field.new)}"
- title="Download" class="trac-rawlink">​</a>
- added
- </i18n:msg></py:when>
- <py:when test="'rendered' in field">${field.rendered}</py:when>
- <py:when test="field.old and field.new"><i18n:msg params="old,
new">
- changed from <em>${field.old}</em> to <em>${field.new}</em>
- </i18n:msg></py:when>
- <py:when test="not field.old and field.new"><i18n:msg
params="value">
- set to <em>${field.new}</em>
- </i18n:msg></py:when>
- <py:otherwise><i18n:msg params="value">
- <em>${field.old}</em> deleted
- </i18n:msg></py:otherwise>
- </py:choose>
- </li>
- </ul>
- <form py:if="show_editor" id="trac-comment-editor" method="post"
- action="${href.ticket(ticket.id) + '#comment:%d' % cnum}">
- <div>
- <textarea name="edited_comment" class="wikitext trac-resizable"
rows="10" cols="78">
-${edited_comment if edited_comment is not None else change.comment}</textarea>
+ </div>
+ </div>
+ <py:if test="not change.comment">
+ <div py:if="show_buttons" class="pull-right bh-ticket-buttons hidden-desktop
trac-ticket-buttons">
+ <py:if test="'date' in change">
+ ${pretty_dateinfo(change.date)}
+ </py:if>
+ <h4 class="change">
+ <div class="pull-right">
+ <span py:if="'cnum' in change" id="comment:$cnum"
class="cnum">${commentref('comment:', cnum)}</span>
+ </div>
+ <div py:if="show_buttons" class="pull-right bh-ticket-buttons
hidden-desktop trac-ticket-buttons">
+ <py:if test="'date' in change">
+ ${pretty_dateinfo(change.date)}
+ </py:if>
+ <form py:if="'cnum' in change and can_edit_comment" method="get"
+ style="display:inline" action="#comment:${cnum}">
+ <div class="inlinebuttons">
<input type="hidden" name="cnum_edit" value="${cnum}"/>
+ <input type="submit" value="${_('Edit')}" class="btn-link"
+ title="${_('Edit comment %(cnum)s', cnum=cnum)}"/>
</div>
- <div class="btn-toolbar buttons">
- <div class="btn-group">
- <input class="btn" type="submit" name="preview_comment"
value="${_('Preview')}"
- title="${_('Preview changes to comment %(cnum)s',
cnum=cnum)}"/>
- <input class="btn" type="submit" name="edit_comment"
value="${_('Submit changes')}"
- title="${_('Submit changes to comment %(cnum)s',
cnum=cnum)}"/>
- </div>
- <input class="btn-link" type="submit" name="cancel_comment"
value="${_('Cancel')}"
- title="Cancel comment edit"/>
+ </form>
+ <form py:if="'cnum' in change and can_append"
id="reply-to-comment-${cnum}"
+ method="get" action="#comment" style="display: inline">
+ <div class="inlinebuttons">
+ <input type="hidden" name="replyto" value="${cnum}"/>
+ <input type="submit" value="${_('Reply')}" class="btn-link"
+ title="${_('Reply to comment %(cnum)s', cnum=cnum)}"/>
</div>
</form>
+ </div>
+
+ ${authorinfo(change.author)}
+ <span py:if="preview or show_editor" class="trac-loading"/>
+ </h4>
+ </div >
+ </py:if>
+ <ul py:if="change.fields" class="changes">
+ <li py:for="field_name, field in sorted(change.fields.iteritems(),
key=lambda item: item[1].label.lower())"
+ class="trac-field-${field_name}${'trac-conflict' if preview and
field_name in conflicts else None}">
+ <strong class="trac-field-${field_name}">${field.label}</strong>
<py:choose>
- <div py:when="str(cnum) == cnum_edit"
- py:with="text = edited_comment if edited_comment is not None else
change.comment"
- class="comment searchable ticketdraft" style="${'display: none'
if not text else None}" xml:space="preserve">
- ${wiki_to_html(context, text, escape_newlines=preserve_newlines)}
- </div>
- <div py:when="show_history" class="comment searchable"
xml:space="preserve">
- ${wiki_to_html(context,
change.comment_history[int(cversion)].comment,
escape_newlines=preserve_newlines)}
- </div>
- <div py:when="change.comment" class="comment searchable"
xml:space="preserve">
- ${wiki_to_html(context, change.comment,
escape_newlines=preserve_newlines)}
- </div>
+ <py:when test="field_name == 'attachment'"><i18n:msg params="name">
+ <a href="${href.attachment('ticket', ticket.id,
field.new)}"><em>${field.new
+ }</em></a><a href="${href('raw-attachment', 'ticket', ticket.id,
field.new)}"
+ title="Download" class="trac-rawlink">​</a>
+ added
+ </i18n:msg></py:when>
+ <py:when test="'rendered' in field">${field.rendered}</py:when>
+ <py:when test="field.old and field.new"><i18n:msg params="old, new">
+ changed from <em>${field.old}</em> to <em>${field.new}</em>
+ </i18n:msg></py:when>
+ <py:when test="not field.old and field.new"><i18n:msg params="value">
+ set to <em>${field.new}</em>
+ </i18n:msg></py:when>
+ <py:otherwise><i18n:msg params="value">
+ <em>${field.old}</em> deleted
+ </i18n:msg></py:otherwise>
</py:choose>
- <div py:if="not show_editor and len(change.comment_history) > 1"
py:choose=""
- class="trac-lastedit ${'trac-shade' if comment_version !=
max_version else None} alert alert-success">
- <i18n:msg params="version, date, author" py:when="comment_version !=
max_version">
- Version ${comment_version}, edited
${pretty_dateinfo(change.comment_history[comment_version].date)}
- by ${authorinfo(change.comment_history[comment_version].author)}
- </i18n:msg>
- <i18n:msg params="date, author" py:otherwise="">
- Last edited
${pretty_dateinfo(change.comment_history[comment_version].date)}
- by ${authorinfo(change.comment_history[comment_version].author)}
- </i18n:msg>
- <py:if test="comment_version > 0">
- (<a href="${href.ticket(ticket.id, cnum_hist=cnum,
cversion=comment_version - 1)
- }#comment:${cnum}">previous</a>)
- </py:if>
- <py:if test="comment_version < max_version">
- (<a href="${href.ticket(ticket.id, cnum_hist=cnum,
cversion=comment_version + 1)
- }#comment:${cnum}">next</a>)
- </py:if>
- <py:if test="comment_version > 0">
- (<a href="${href.ticket(ticket.id, action='comment-diff', cnum=cnum,
- version=comment_version)}">diff</a>)
- </py:if>
- </div>
- </div>
- </div>
+ - by ${authorinfo(change.author)} ${pretty_dateinfo(change.date)}
+ </li>
+ </ul>
</html>