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 |
- « Previous
- 1
- …
- 6
- 7
- 8
- Next »