diff options
author | Andrey Nering <andrey.nering@gmail.com> | 2017-01-17 23:18:55 -0200 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2017-01-18 09:18:55 +0800 |
commit | d2bb8ef503901b05a34a7d24ddd32c8a5b7524fc (patch) | |
tree | c415041f6c70ed024a5a6b8b69e9af0c4e577fd7 | |
parent | d0ad7921f8681a42ed27b1921ee55e16ef7457d2 (diff) | |
download | gitea-d2bb8ef503901b05a34a7d24ddd32c8a5b7524fc.tar.gz gitea-d2bb8ef503901b05a34a7d24ddd32c8a5b7524fc.zip |
Notifications: trying to get a better layout (#660)
* i18n button titles
* Improvements on notification page layout
* Notification count badge fixes
* Make table <tr> clickable
* Fix octicon aligment
* Fix use of AppSubUrl
-rw-r--r-- | options/locale/locale_en-US.ini | 3 | ||||
-rw-r--r-- | options/locale/locale_pt-BR.ini | 3 | ||||
-rw-r--r-- | public/css/index.css | 11 | ||||
-rw-r--r-- | public/js/index.js | 5 | ||||
-rw-r--r-- | public/less/_user.less | 12 | ||||
-rw-r--r-- | routers/user/notification.go | 4 | ||||
-rw-r--r-- | templates/base/head.tmpl | 2 | ||||
-rw-r--r-- | templates/user/notification/notification.tmpl | 143 |
8 files changed, 103 insertions, 80 deletions
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 7ea227b8c1..9b9e25ba81 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1275,3 +1275,6 @@ unread = Unread read = Read no_unread = You have no unread notifications. no_read = You have no read notifications. +pin = Pin +mark_as_read = Mark as read +mark_as_unread = Mark as unread diff --git a/options/locale/locale_pt-BR.ini b/options/locale/locale_pt-BR.ini index 4893a7644d..0623fbb135 100644 --- a/options/locale/locale_pt-BR.ini +++ b/options/locale/locale_pt-BR.ini @@ -1205,3 +1205,6 @@ unread = Não lidas read = Lidas no_unread = Você não possui notificações não lidas. no_read = Você não possui notificações lidas. +pin = Fixar +mark_as_read = Marcar como lida +mark_as_unread = Marcar como não lida diff --git a/public/css/index.css b/public/css/index.css index c569209e49..7c84cf8517 100644 --- a/public/css/index.css +++ b/public/css/index.css @@ -2712,12 +2712,15 @@ footer .ui.language .menu { float: left; margin-left: 7px; } -.user.notification .buttons-panel button { - padding: 3px; -} -.user.notification .buttons-panel form { +.user.notification table form { display: inline-block; } +.user.notification table button { + padding: 3px 3px 3px 5px; +} +.user.notification table tr { + cursor: pointer; +} .user.notification .octicon-issue-opened, .user.notification .octicon-git-pull-request { color: #21ba45; diff --git a/public/js/index.js b/public/js/index.js index bd22442e5f..8674993261 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -1243,6 +1243,11 @@ $(document).ready(function () { $($(this).data('target')).slideToggle(100); }); + // make table <tr> element clickable like a link + $('tr[data-href]').click(function(event) { + window.location = $(this).data('href'); + }); + // Highlight JS if (typeof hljs != 'undefined') { hljs.initHighlightingOnLoad(); diff --git a/public/less/_user.less b/public/less/_user.less index 38b73f7853..d63b9b3de9 100644 --- a/public/less/_user.less +++ b/public/less/_user.less @@ -85,13 +85,17 @@ margin-left: 7px; } - .buttons-panel { + table { + form { + display: inline-block; + } + button { - padding: 3px; + padding: 3px 3px 3px 5px; } - form { - display: inline-block; + tr { + cursor: pointer; } } diff --git a/routers/user/notification.go b/routers/user/notification.go index 74a33f7e2c..7bc2da18db 100644 --- a/routers/user/notification.go +++ b/routers/user/notification.go @@ -73,8 +73,8 @@ func Notifications(c *context.Context) { } title := c.Tr("notifications") - if count := len(notifications); count > 0 { - title = fmt.Sprintf("(%d) %s", count, title) + if status == models.NotificationStatusUnread && total > 0 { + title = fmt.Sprintf("(%d) %s", total, title) } c.Data["Title"] = title c.Data["Keyword"] = keyword diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl index e230436209..176dd51cc0 100644 --- a/templates/base/head.tmpl +++ b/templates/base/head.tmpl @@ -82,7 +82,7 @@ {{if .IsSigned}} <div class="right menu"> - <a href="{{$.AppSubUrl}}/notifications" class="ui head link jump item poping up" data-content='{{.i18n.Tr "notifications"}}' data-variation="tiny inverted"> + <a href="{{AppSubUrl}}/notifications" class="ui head link jump item poping up" data-content='{{.i18n.Tr "notifications"}}' data-variation="tiny inverted"> <span class="text"> <i class="octicon octicon-inbox"><span class="sr-only">{{.i18n.Tr "notifications"}}</span></i> diff --git a/templates/user/notification/notification.tmpl b/templates/user/notification/notification.tmpl index 3e5c0b7104..04f3bf5a08 100644 --- a/templates/user/notification/notification.tmpl +++ b/templates/user/notification/notification.tmpl @@ -2,23 +2,20 @@ <div class="user notification"> <div class="ui container"> - <h1 class="ui header">{{.i18n.Tr "notification.notifications"}}</h1> + <h1 class="ui dividing header">{{.i18n.Tr "notification.notifications"}}</h1> <div class="ui top attached tabular menu"> - <a href="{{$.AppSubUrl}}/notifications?q=unread"> + <a href="{{AppSubUrl}}/notifications?q=unread"> <div class="{{if eq .Status 1}}active{{end}} item"> {{.i18n.Tr "notification.unread"}} - {{if eq .Status 1}} - <div class="ui label">{{len .Notifications}}</div> + {{if .NotificationUnreadCount}} + <div class="ui label">{{.NotificationUnreadCount}}</div> {{end}} </div> </a> - <a href="{{$.AppSubUrl}}/notifications?q=read"> + <a href="{{AppSubUrl}}/notifications?q=read"> <div class="{{if eq .Status 2}}active{{end}} item"> {{.i18n.Tr "notification.read"}} - {{if eq .Status 2}} - <div class="ui label">{{len .Notifications}}</div> - {{end}} </div> </a> </div> @@ -30,68 +27,76 @@ {{.i18n.Tr "notification.no_read"}} {{end}} {{else}} - <div class="ui relaxed divided selection list"> - {{range $notification := .Notifications}} - {{$issue := $notification.GetIssue}} - {{$repo := $notification.GetRepo}} - {{$repoOwner := $repo.MustOwner}} - - <a class="item" href="{{$.AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}/issues/{{$issue.Index}}"> - <div class="buttons-panel right floated content"> - {{if ne $notification.Status 3}} - <form action="{{$.AppSubUrl}}/notifications/status" method="POST"> - {{$.CsrfTokenHtml}} - <input type="hidden" name="notification_id" value="{{$notification.ID}}" /> - <input type="hidden" name="status" value="pinned" /> - <button class="ui button" title="Pin notification"> - <i class="octicon octicon-pin"></i> - </button> - </form> - {{end}} - {{if or (eq $notification.Status 1) (eq $notification.Status 3)}} - <form action="{{$.AppSubUrl}}/notifications/status" method="POST"> - {{$.CsrfTokenHtml}} - <input type="hidden" name="notification_id" value="{{$notification.ID}}" /> - <input type="hidden" name="status" value="read" /> - <button class="ui button" title="Mark as read"> - <i class="octicon octicon-check"></i> - </button> - </form> - {{else if eq $notification.Status 2}} - <form action="{{$.AppSubUrl}}/notifications/status" method="POST"> - {{$.CsrfTokenHtml}} - <input type="hidden" name="notification_id" value="{{$notification.ID}}" /> - <input type="hidden" name="status" value="unread" /> - <button class="ui button" title="Mark as unread"> - <i class="octicon octicon-bell"></i> - </button> - </form> - {{end}} - </div> - - {{if eq $notification.Status 3}} - <i class="blue octicon octicon-pin"></i> - {{else if $issue.IsPull}} - {{if $issue.IsClosed}} - <i class="octicon octicon-git-merge"></i> - {{else}} - <i class="octicon octicon-git-pull-request"></i> - {{end}} - {{else}} - {{if $issue.IsClosed}} - <i class="octicon octicon-issue-closed"></i> - {{else}} - <i class="octicon octicon-issue-opened"></i> - {{end}} - {{end}} + <table class="ui unstackable striped very compact small selectable table"> + <tbody> + {{range $notification := .Notifications}} + {{$issue := $notification.GetIssue}} + {{$repo := $notification.GetRepo}} + {{$repoOwner := $repo.MustOwner}} - <div class="content"> - <div class="header">{{$repoOwner.Name}}/{{$repo.Name}}</div> - <div class="description">#{{$issue.Index}} - {{$issue.Title}}</div> - </div> - </a> - {{end}} - </div> + <tr data-href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}/issues/{{$issue.Index}}"> + <td class="collapsing"> + {{if eq $notification.Status 3}} + <i class="blue octicon octicon-pin"></i> + {{else if $issue.IsPull}} + {{if $issue.IsClosed}} + <i class="octicon octicon-git-merge"></i> + {{else}} + <i class="octicon octicon-git-pull-request"></i> + {{end}} + {{else}} + {{if $issue.IsClosed}} + <i class="octicon octicon-issue-closed"></i> + {{else}} + <i class="octicon octicon-issue-opened"></i> + {{end}} + {{end}} + </td> + <td class="twelve wide"> + <a class="item" href="{{AppSubUrl}}/{{$repoOwner.Name}}/{{$repo.Name}}/issues/{{$issue.Index}}"> + #{{$issue.Index}} - {{$issue.Title}} + </a> + </td> + <td> + {{$repoOwner.Name}}/{{$repo.Name}} + </td> + <td class="collapsing"> + {{if ne $notification.Status 3}} + <form action="{{AppSubUrl}}/notifications/status" method="POST"> + {{$.CsrfTokenHtml}} + <input type="hidden" name="notification_id" value="{{$notification.ID}}" /> + <input type="hidden" name="status" value="pinned" /> + <button class="ui mini button" title='{{$.i18n.Tr "notification.pin"}}'> + <i class="octicon octicon-pin"></i> + </button> + </form> + {{end}} + </td> + <td class="collapsing"> + {{if or (eq $notification.Status 1) (eq $notification.Status 3)}} + <form action="{{AppSubUrl}}/notifications/status" method="POST"> + {{$.CsrfTokenHtml}} + <input type="hidden" name="notification_id" value="{{$notification.ID}}" /> + <input type="hidden" name="status" value="read" /> + <button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_read"}}'> + <i class="octicon octicon-check"></i> + </button> + </form> + {{else if eq $notification.Status 2}} + <form action="{{AppSubUrl}}/notifications/status" method="POST"> + {{$.CsrfTokenHtml}} + <input type="hidden" name="notification_id" value="{{$notification.ID}}" /> + <input type="hidden" name="status" value="unread" /> + <button class="ui mini button" title='{{$.i18n.Tr "notification.mark_as_unread"}}'> + <i class="octicon octicon-bell"></i> + </button> + </form> + {{end}} + </td> + </tr> + {{end}} + </tbody> + </table> {{end}} </div> |