[Notice] Announcing the End of Demo Server [Read me]
DeokHong Kim (a.k.a insanehong) DeokHong Kim (a.k.a insanehong) 2014-04-28
ListPages: change style of comments and vote on list
- issue list on issue menu
- board list on board menu
- my issue list on site main
- mypage : issue list, board list
@b6e8d815d413d7d5e2cc1c5cd5a2541c41e50c44
app/assets/stylesheets/less/_page.less
--- app/assets/stylesheets/less/_page.less
+++ app/assets/stylesheets/less/_page.less
@@ -3314,8 +3314,8 @@
         color:#999;
 
         .infos-item {
-            margin-right:8px;
-            display:inline-block;
+            margin-right:12px;
+            float:left;
 
             &.infos-link-item {
                 &:hover {
@@ -3324,6 +3324,42 @@
                 }
             }
 
+            &.item-count-groups {
+                border:1px solid #EEE;
+                .border-radius(3px);
+                line-height: 14px;
+                margin-top:2px;
+
+                .count-groups {
+                    margin:0 auto;
+                    display:inline-block;
+                    text-align: center;
+                    padding:0 5px;
+                    float: left;
+
+                    &.item-icon {
+                        background-color:#F7F7F7;
+                        color:#3592b5;
+                        font-size: 9px; 
+                        padding-top:2px;
+                        line-height: 12px;
+                        border-left:1px solid #EEE;
+
+                        &:first-child {
+                            border-left:none;
+                        }
+                        
+                        &.strong {
+                            color:@primary;
+                        }
+                    }
+
+                    &.item-count {
+                        padding:0 7px;
+                    }
+                }
+            }
+
             &.infos-icon-link {
                 color:#3592b5;
 
app/utils/TemplateHelper.scala
--- app/utils/TemplateHelper.scala
+++ app/utils/TemplateHelper.scala
@@ -25,6 +25,7 @@
 import play.api.i18n.Lang
 import models.CodeCommentThread
 import models.CommentThread
+import play.api.templates.Html
 
 object TemplateHelper {
 
@@ -508,4 +509,13 @@
       }
     }
   }
+
+  def countHtml(icon:String, link:String, count: Int, strong:String = "") = {
+      Html("""<span class="count-groups item-icon %s">
+        <i class="yobicon-%s"></i>
+      </span>
+      <span class="count-groups item-count">
+        <a href="%s">%d</a>
+      </span> """.format(strong, icon, link, count))
+  }
 }
app/views/board/partial_list.scala.html
--- app/views/board/partial_list.scala.html
+++ app/views/board/partial_list.scala.html
@@ -55,11 +55,10 @@
         </span>
 
         @if(post.numOfComments >0){
-            <a href="@routes.BoardApp.post(project.owner, project.name, post.getNumber)#comments" class="infos-item infos-icon-link">
-                <i class="yobicon-comments"></i>
-                <span class="size">@post.numOfComments</span>
-            </a>
-        }
+        <span class="infos-item item-count-groups">
+            @countHtml("comments",routes.BoardApp.post(project.owner, project.name, post.getNumber).toString() + "#comments", post.numOfComments)
+        </span>
+        }       
     </div>
 </li>
 }
app/views/issue/my_partial_list.scala.html
--- app/views/issue/my_partial_list.scala.html
+++ app/views/issue/my_partial_list.scala.html
@@ -62,12 +62,17 @@
                     @agoOrDateString(issue.createdDate)
                 </span>
 
-                @if(issue.comments.size()>0){
-                    <a href="@routes.IssueApp.issue(issue.project.owner, issue.project.name, issue.getNumber)#comments" class="infos-item infos-icon-link">
-                        <i class="yobicon-comments"></i>
-                        <span class="size">@issue.comments.size()</span>
-                    </a>
+                @if(issue.comments.size()>0 || issue.voters.size()>0) {
+                <span class="infos-item item-count-groups">
+                    @if(issue.comments.size()>0){
+                        @countHtml("comments",routes.IssueApp.issue(issue.project.owner, issue.project.name, issue.getNumber).toString() + "#comments", issue.comments.size() )
+                    }
+                    @if(issue.voters.size()>0){
+                        @countHtml("hearts",routes.IssueApp.issue(issue.project.owner, issue.project.name, issue.getNumber).toString() + "#vote", issue.voters.size(), "strong" )
+                    }
+                </span>
                 }
+
                 @for(label <- issue.labels.toList.sortBy(r => (r.category, r.name))) {
                     <a href="@urlToList(issue.project, searchCondition.state)&labelIds=@label.id" class="label issue-label list-label" data-labelId="@label.id" data-color="@label.color" style="background:@label.color">@label.name</a>
                 }
app/views/issue/partial_list.scala.html
--- app/views/issue/partial_list.scala.html
+++ app/views/issue/partial_list.scala.html
@@ -65,18 +65,17 @@
                         @agoOrDateString(issue.createdDate)
                     </span>
 
-                    @if(issue.voters.size() > 0) {
-                    <div class="infos-item infos-sympathy">
-                        @Messages("issue.vote") +@issue.voters.size()
-                    </div>
+                    @if(issue.comments.size()>0 || issue.voters.size()>0) {
+                    <span class="infos-item item-count-groups">
+                    @if(issue.comments.size()>0){
+                        @countHtml("comments",routes.IssueApp.issue(issue.project.owner, issue.project.name, issue.getNumber).toString() + "#comments", issue.comments.size() )
+                    }
+                    @if(issue.voters.size()>0){
+                        @countHtml("hearts",routes.IssueApp.issue(issue.project.owner, issue.project.name, issue.getNumber).toString() + "#vote", issue.voters.size(), "strong" )
+                    }
+                    </span>
                     }
 
-                    @if(issue.comments.size()>0){
-                        <a href="@routes.IssueApp.issue(project.owner, project.name, issue.getNumber)#comments" class="infos-item infos-icon-link">
-                            <i class="yobicon-comments"></i>
-                            <span class="size">@issue.comments.size()</span>
-                        </a>
-                    }
                     @for(label <- issue.labels.toList.sortBy(r => (r.category, r.name))) {
                         <a href="#" class="label issue-label list-label" data-labelId="@label.id" data-color="@label.color" style="background:@label.color">@label.name</a>
                     }
app/views/issue/view.scala.html
--- app/views/issue/view.scala.html
+++ app/views/issue/view.scala.html
@@ -233,7 +233,7 @@
                         @**<!-- // -->**@
 
                         @**<!-- voters -->**@
-                        <dl>
+                        <dl id="vote">
                             <dt>@Messages("issue.vote")</dt>
                             <dd>
                             <dd style="padding:5px 10px;">
app/views/reviewthread/partial_list.scala.html
--- app/views/reviewthread/partial_list.scala.html
+++ app/views/reviewthread/partial_list.scala.html
@@ -55,12 +55,12 @@
                     @agoOrDateString(thread.createdDate)
                 </span>
                 @defining(thread.reviewComments.size()-1) { numberOfComments =>
+
                     @if(numberOfComments > 0) {
-                    <a href="@DiffRenderer.urlToCommentThread(thread))" class="infos-item infos-icon-link">
-                        <i class="yobicon-comments"></i>
-                        <span class="size">@numberOfComments</span>
-                    </a>
-                    }
+                    <span class="infos-item item-count-groups">
+                        @countHtml("comments",DiffRenderer.urlToCommentThread(thread), numberOfComments)
+                    </span>
+                    }       
                 }
             </div>
         </li>
app/views/user/partial_issues.scala.html
--- app/views/user/partial_issues.scala.html
+++ app/views/user/partial_issues.scala.html
@@ -56,12 +56,17 @@
                 @agoOrDateString(issue.createdDate)
             </span>
 
+            @if(issue.comments.size()>0 || issue.voters.size()>0) {
+            <span class="infos-item item-count-groups">
             @if(issue.comments.size()>0){
-                <a href="@routes.IssueApp.issue(issue.project.owner, issue.project.name, issue.getNumber)#comments" class="infos-item infos-icon-link">
-                    <i class="yobicon-comments"></i>
-                    <span class="size">@issue.comments.size()</span>
-                </a>
+                @countHtml("comments",routes.IssueApp.issue(issue.project.owner, issue.project.name, issue.getNumber).toString() + "#comments", issue.comments.size() )
             }
+            @if(issue.voters.size()>0){
+                @countHtml("hearts",routes.IssueApp.issue(issue.project.owner, issue.project.name, issue.getNumber).toString() + "#vote", issue.voters.size(), "strong" )
+            }
+            </span>
+            }
+            
             @for(label <- issue.labels.toList.sortBy(r => (r.category, r.name))) {
                 @makeLabelLink(project, label)
             }
app/views/user/partial_postings.scala.html
--- app/views/user/partial_postings.scala.html
+++ app/views/user/partial_postings.scala.html
@@ -51,11 +51,10 @@
         </span>
 
         @if(post.numOfComments >0){
-            <a href="@routes.BoardApp.post(project.owner, project.name, post.getNumber)#comments" class="infos-item infos-icon-link">
-                <i class="yobicon-comments"></i>
-                <span class="size">@post.numOfComments</span>
-            </a>
-        }
+        <span class="infos-item item-count-groups">
+            @countHtml("comments",routes.BoardApp.post(project.owner, project.name, post.getNumber).toString() + "#comments", post.numOfComments)
+        </span>
+        }       
     </div>
 </li>
 }
Add a comment
List