Feature #40744 » feature-40744-bleuclair-v2.patch
| app/assets/javascripts/application.js | ||
|---|---|---|
| 380 | 380 |
tab_content.find('.journal:not(.has-notes)').hide();
|
| 381 | 381 |
tab_content.find('.journal .wiki').show();
|
| 382 | 382 |
tab_content.find('.journal .contextual .journal-actions').show();
|
| 383 |
tab_content.addClass('discontinuity');
|
|
| 383 | 384 | |
| 384 | 385 |
// always show thumbnails in notes tab |
| 385 | 386 |
var thumbnails = tab_content.find('.journal .thumbnails');
|
| ... | ... | |
| 393 | 394 |
tab_content.find('.journal .wiki').hide();
|
| 394 | 395 |
tab_content.find('.journal .thumbnails').hide();
|
| 395 | 396 |
tab_content.find('.journal .contextual .journal-actions').hide();
|
| 397 |
tab_content.addClass('discontinuity');
|
|
| 396 | 398 |
break; |
| 397 | 399 |
default: |
| 398 | 400 |
tab_content.find('.journal').show();
|
| 399 | 401 |
tab_content.find('.journal .wiki').show();
|
| 400 | 402 |
tab_content.find('.journal .thumbnails').show();
|
| 401 | 403 |
tab_content.find('.journal .contextual .journal-actions').show();
|
| 404 |
tab_content.removeClass('discontinuity');
|
|
| 402 | 405 |
} |
| 403 | 406 | |
| 404 | 407 |
return false; |
| app/assets/stylesheets/application.css | ||
|---|---|---|
| 348 | 348 |
tr.message td.last_message { font-size: 80%; white-space: nowrap; }
|
| 349 | 349 |
tr.message.sticky td.subject { font-weight: bold; }
|
| 350 | 350 | |
| 351 |
body.avatars-on #replies .message.reply {padding-left: 32px;}
|
|
| 352 |
#replies .reply:target h4.reply-header {background-color:#DDEEFF;}
|
|
| 353 |
#replies h4 img.gravatar {margin-left:-32px;}
|
|
| 354 | ||
| 355 | 351 |
tr.version.closed, tr.version.closed a { color: #999; }
|
| 356 | 352 |
tr.version td.name { padding-left: 20px; }
|
| 357 | 353 |
tr.version td.date, tr.version td.status, tr.version td.sharing { text-align: center; white-space:nowrap; }
|
| ... | ... | |
| 647 | 643 |
div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
|
| 648 | 644 |
.changeset-comments {margin-bottom:1em;}
|
| 649 | 645 | |
| 650 |
div.journal .contextual {margin-top: 0;}
|
|
| 651 | 646 |
div.journal.private-notes .wiki {border-left:2px solid #d22; padding-left:4px; margin-left:-6px;}
|
| 652 | 647 |
div.journal ul.details, ul.revision-info {color:#959595; margin-bottom: 1.5em;}
|
| 653 | 648 |
div.journal ul.details a, ul.revision-info a {color:#70A7CD;}
|
| 654 | 649 |
div.journal ul.details a:hover, ul.revision-info a:hover {color:#D14848;}
|
| 655 |
body.avatars-on div.journal {padding-left:32px;}
|
|
| 656 | 650 |
div.journal h4 img.gravatar {margin-left:-32px;}
|
| 657 | 651 |
div.journal span.update-info {color: #666; font-size: 0.9em;}
|
| 658 | 652 | |
| 659 | 653 |
#update {margin-bottom: 1.4em;}
|
| 660 | 654 | |
| 661 |
#history .tab-content {
|
|
| 662 |
padding: 0 6px; |
|
| 663 |
margin-bottom: 10px; |
|
| 664 |
border-right: 1px solid #d7d7d7; |
|
| 665 |
border-bottom: 1px solid #d7d7d7; |
|
| 666 |
border-left: 1px solid #d7d7d7; |
|
| 667 |
border-radius: 0 0 3px 3px / 0 0 3px 3px; |
|
| 655 |
#history {
|
|
| 656 |
.tab-content {
|
|
| 657 |
padding: 0px 6px 10px 10px; |
|
| 658 |
margin-bottom: 10px; |
|
| 659 |
border: 1px solid #dfe8f1; |
|
| 660 |
border-top: none; |
|
| 661 |
border-radius: 0 0 3px 3px; |
|
| 662 |
background-color: #ffffff; |
|
| 663 |
} |
|
| 664 | ||
| 665 |
p.nodata {display: none;}
|
|
| 666 |
} |
|
| 667 | ||
| 668 |
/* issues#show, boards#show, news#show */ |
|
| 669 |
.history-items {
|
|
| 670 |
.history-item {
|
|
| 671 |
padding: 8px 3px 3px 3px; |
|
| 672 |
background-color: #ffffff; |
|
| 673 |
position: relative; |
|
| 674 | ||
| 675 |
&:before {
|
|
| 676 |
content: ""; |
|
| 677 |
width: 8px; |
|
| 678 |
height: 8px; |
|
| 679 |
background-color: #ffffff; |
|
| 680 |
position: absolute; |
|
| 681 |
left: 6px; |
|
| 682 |
top: 16px; |
|
| 683 |
border-radius: 50%; |
|
| 684 |
box-shadow: 0 0 0 3px #e5e5e5; |
|
| 685 |
z-index: 1; |
|
| 686 |
} |
|
| 687 | ||
| 688 |
/* Draw a line connecting the icons */ |
|
| 689 |
&:after {
|
|
| 690 |
content: ""; |
|
| 691 |
height: 100%; |
|
| 692 |
width: 2px; |
|
| 693 |
background-color: #e5e5e5; |
|
| 694 |
position: absolute; |
|
| 695 |
left: 9px; |
|
| 696 |
top: 0; |
|
| 697 |
} |
|
| 698 |
&:first-of-type:after { top: 15px; }
|
|
| 699 |
&:last-of-type:after { height: 18px; }
|
|
| 700 |
&:first-of-type:last-of-type:after { content: none; }
|
|
| 701 | ||
| 702 |
.contextual {
|
|
| 703 |
padding-right: 10px; |
|
| 704 |
padding-top: 5px; |
|
| 705 |
margin-top: 0; |
|
| 706 | ||
| 707 |
a, |
|
| 708 |
.journal-actions, |
|
| 709 |
.journal-link {
|
|
| 710 |
position: relative; |
|
| 711 |
z-index: 5; |
|
| 712 |
} |
|
| 713 |
} |
|
| 714 | ||
| 715 |
form .jstBlock, |
|
| 716 |
form input, |
|
| 717 |
.wiki:not(.wiki-preview), |
|
| 718 |
&.time_entry p, |
|
| 719 |
&.changeset .note > p {
|
|
| 720 |
margin-left: 32px; |
|
| 721 |
} |
|
| 722 | ||
| 723 |
/* .history-item-header in the form of a speech balloon */ |
|
| 724 |
h4.history-item-header {
|
|
| 725 |
left: 20px; |
|
| 726 |
position: relative; |
|
| 727 |
margin: 0 19px 0 10px; |
|
| 728 |
border: none; |
|
| 729 |
font-weight: bold; |
|
| 730 |
background-color: #EEEEEE; |
|
| 731 |
padding: 6px 9px; |
|
| 732 |
font-size: 0.9em; |
|
| 733 |
border-radius: 4px; |
|
| 734 |
min-height: 12px; |
|
| 735 | ||
| 736 |
&:before {
|
|
| 737 |
content: ''; |
|
| 738 |
position: absolute; |
|
| 739 |
left: -6px; |
|
| 740 |
top: 8px; |
|
| 741 |
width: 0; |
|
| 742 |
height: 0; |
|
| 743 |
border-top: 5px solid transparent; |
|
| 744 |
border-bottom: 5px solid transparent; |
|
| 745 |
border-right: 6px solid #EEEEEE; |
|
| 746 |
} |
|
| 747 | ||
| 748 |
.gravatar {
|
|
| 749 |
position: absolute; |
|
| 750 |
left: -35px; |
|
| 751 |
top: 4px; |
|
| 752 |
z-index: 5; |
|
| 753 |
margin-left: 0; |
|
| 754 |
} |
|
| 755 |
} |
|
| 756 | ||
| 757 |
&:target h4.history-item-header, |
|
| 758 |
div:target h4.history-item-header {
|
|
| 759 |
background: #DDEEFF; |
|
| 760 | ||
| 761 |
&:before {
|
|
| 762 |
border-right: 6px solid #DDEEFF; |
|
| 763 |
} |
|
| 764 |
} |
|
| 765 |
} |
|
| 766 |
/* For discontinuity history, do not draw a line connecting the icons */ |
|
| 767 |
#tab-content-history.discontinuity .history-item:after {
|
|
| 768 |
content: none; |
|
| 769 |
} |
|
| 668 | 770 |
} |
| 669 | 771 | |
| 670 |
#history div:target h4.note-header {background-color:#DDEEFF;}
|
|
| 671 |
#history p.nodata {display: none;}
|
|
| 772 |
#reply input#message_subject { width: 100%; }
|
|
| 672 | 773 | |
| 673 | 774 |
div#activity dl, #search-results { margin-left: 2em; }
|
| 674 | 775 |
div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; }
|
| app/views/issues/show.html.erb | ||
|---|---|---|
| 121 | 121 | |
| 122 | 122 |
<%= render partial: 'action_menu_edit' if User.current.wants_comments_in_reverse_order? %> |
| 123 | 123 | |
| 124 |
<div id="history"> |
|
| 124 |
<div id="history" class="history-items">
|
|
| 125 | 125 |
<%= render_tabs issue_history_tabs, issue_history_default_tab %> |
| 126 | 126 |
</div> |
| 127 | 127 | |
| app/views/issues/tabs/_changesets.html.erb | ||
|---|---|---|
| 1 | 1 |
<% @changesets.each do |changeset| %> |
| 2 |
<div id="changeset-<%= changeset.id %>" class="changeset journal"> |
|
| 2 |
<div id="changeset-<%= changeset.id %>" class="changeset journal history-item">
|
|
| 3 | 3 |
<div class="note"> |
| 4 |
<h4 class='note-header'>
|
|
| 4 |
<h4 class="note-header history-item-header">
|
|
| 5 | 5 |
<%= avatar(changeset.user, :size => "24") %> |
| 6 | 6 |
<%= authoring changeset.committed_on, changeset.author, :label => :label_added_time_by %> |
| 7 | 7 |
</h4> |
| app/views/issues/tabs/_history.html.erb | ||
|---|---|---|
| 5 | 5 | |
| 6 | 6 |
<% reply_links = issue.notes_addable? -%> |
| 7 | 7 |
<% for journal in journals %> |
| 8 |
<div id="change-<%= journal.id %>" class="<%= journal.css_classes %>"> |
|
| 8 |
<div id="change-<%= journal.id %>" class="<%= journal.css_classes %> history-item">
|
|
| 9 | 9 |
<div id="note-<%= journal.indice %>" class="note"> |
| 10 | 10 |
<div class="contextual"> |
| 11 | 11 |
<span class="journal-actions"><%= render_journal_actions(issue, journal, :reply_links => reply_links) %></span> |
| 12 | 12 |
<a href="#note-<%= journal.indice %>" class="journal-link">#<%= journal.indice %></a> |
| 13 | 13 |
</div> |
| 14 |
<h4 class='note-header'> |
|
| 14 |
<h4 class='note-header history-item-header'>
|
|
| 15 | 15 |
<%= avatar(journal.user) %> |
| 16 | 16 |
<%= authoring journal.created_on, journal.user, :label => :label_updated_time_by %> |
| 17 | 17 |
<%= render_private_notes_indicator(journal) %> |
| app/views/issues/tabs/_time_entries.html.erb | ||
|---|---|---|
| 1 | 1 |
<% for time_entry in time_entries%> |
| 2 |
<div id="time-entry-<%= time_entry.id %>" class="time_entry journal"> |
|
| 2 |
<div id="time-entry-<%= time_entry.id %>" class="time_entry journal history-item">
|
|
| 3 | 3 |
<div class="note"> |
| 4 | 4 |
<% if time_entry.editable_by?(User.current) -%> |
| 5 | 5 |
<div class="contextual"> |
| ... | ... | |
| 15 | 15 |
</span> |
| 16 | 16 |
</div> |
| 17 | 17 |
<% end -%> |
| 18 |
<h4 class='note-header'> |
|
| 18 |
<h4 class='note-header history-item-header'>
|
|
| 19 | 19 |
<%= avatar(time_entry.user, :size => "24") %> |
| 20 | 20 |
<%= authoring time_entry.created_on, time_entry.user, :label => :label_added_time_by %> |
| 21 | 21 |
</h4> |
| app/views/messages/show.html.erb | ||
|---|---|---|
| 34 | 34 |
<br /> |
| 35 | 35 | |
| 36 | 36 |
<% unless @replies.empty? %> |
| 37 |
<div id="replies"> |
|
| 37 |
<div id="replies" class="history-items">
|
|
| 38 | 38 |
<h3 class="comments icon icon-comments"><%= l(:label_reply_plural) %> (<%= @reply_count %>)</h3> |
| 39 | 39 |
<% if !@topic.locked? && authorize_for('messages', 'reply') && @replies.size >= 3 %>
|
| 40 | 40 |
<p><%= toggle_link l(:button_reply), "reply", :focus => 'message_content', :scroll => "message_content" %></p> |
| 41 | 41 |
<% end %> |
| 42 | 42 |
<% @replies.each do |message| %> |
| 43 |
<div class="message reply" id="<%= "message-#{message.id}" %>">
|
|
| 43 |
<div class="message reply history-item" id="<%= "message-#{message.id}" %>">
|
|
| 44 | 44 |
<div class="contextual"> |
| 45 | 45 |
<%= link_to( |
| 46 | 46 |
'', |
| ... | ... | |
| 65 | 65 |
:class => 'icon icon-del' |
| 66 | 66 |
) if message.destroyable_by?(User.current) %> |
| 67 | 67 |
</div> |
| 68 |
<h4 class='reply-header'>
|
|
| 68 |
<h4 class="reply-header history-item-header">
|
|
| 69 | 69 |
<%= avatar(message.author) %> |
| 70 | 70 |
<%= link_to message.subject, { :controller => 'messages', :action => 'show', :board_id => @board, :id => @topic, :r => message, :anchor => "message-#{message.id}" } %>
|
| 71 | 71 |
- |
| app/views/news/show.html.erb | ||
|---|---|---|
| 30 | 30 |
<%= link_to_attachments @news %> |
| 31 | 31 |
<br /> |
| 32 | 32 | |
| 33 |
<div id="comments" style="margin-bottom:16px;"> |
|
| 33 |
<div id="comments" class="history-items" style="margin-bottom:16px;">
|
|
| 34 | 34 |
<h3 class="comments"><%= l(:label_comment_plural) %></h3> |
| 35 | 35 |
<% if @news.commentable? && @comments.size >= 3 %> |
| 36 | 36 |
<p><%= toggle_link l(:label_comment_add), "add_comment_form", :focus => "comment_comments", :scroll => "comment_comments" %></p> |
| 37 | 37 |
<% end %> |
| 38 | 38 |
<% @comments.each do |comment| %> |
| 39 | 39 |
<% next if comment.new_record? %> |
| 40 |
<div class="history-item"> |
|
| 40 | 41 |
<div class="contextual"> |
| 41 | 42 |
<%= link_to_if_authorized l(:button_delete), {:controller => 'comments', :action => 'destroy', :id => @news, :comment_id => comment},
|
| 42 | 43 |
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete,
|
| 43 | 44 |
:title => l(:button_delete), |
| 44 | 45 |
:class => 'icon-only icon-del' %> |
| 45 | 46 |
</div> |
| 46 |
<h4><%= avatar(comment.author) %><%= authoring comment.created_on, comment.author %></h4> |
|
| 47 |
<h4 class="history-item-header"><%= avatar(comment.author) %><%= authoring comment.created_on, comment.author %></h4>
|
|
| 47 | 48 |
<div class="wiki"> |
| 48 | 49 |
<%= textilizable(comment.comments) %> |
| 49 | 50 |
</div> |
| 51 |
</div> |
|
| 50 | 52 |
<% end if @comments.any? %> |
| 51 | 53 |
</div> |
| 52 | 54 | |