Mercurial > kallithea
changeset 2190:64f7cf8f6a33 beta
notification inbox improvements
- added pagers
- css+styling fixes
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 14 Apr 2012 23:42:43 +0200 |
parents | 3052f90c568a |
children | 050c8f08f7af |
files | rhodecode/controllers/admin/notifications.py rhodecode/public/css/style.css rhodecode/templates/admin/notifications/notifications.html rhodecode/templates/admin/notifications/notifications_data.html rhodecode/templates/admin/notifications/show_notification.html |
diffstat | 5 files changed, 74 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/notifications.py Sat Apr 14 22:40:47 2012 +0200 +++ b/rhodecode/controllers/admin/notifications.py Sat Apr 14 23:42:43 2012 +0200 @@ -30,6 +30,8 @@ from pylons import tmpl_context as c, url from pylons.controllers.util import redirect +from webhelpers.paginate import Page + from rhodecode.lib.base import BaseController, render from rhodecode.model.db import Notification @@ -58,8 +60,9 @@ """GET /_admin/notifications: All items in the collection""" # url('notifications') c.user = self.rhodecode_user - c.notifications = NotificationModel()\ - .get_for_user(self.rhodecode_user.user_id) + notif = NotificationModel().get_for_user(self.rhodecode_user.user_id) + p = int(request.params.get('page', 1)) + c.notifications = Page(notif, page=p, items_per_page=10) return render('admin/notifications/notifications.html') def mark_all_read(self): @@ -69,7 +72,8 @@ nm.mark_all_read_for_user(self.rhodecode_user.user_id) Session.commit() c.user = self.rhodecode_user - c.notifications = nm.get_for_user(self.rhodecode_user.user_id) + notif = nm.get_for_user(self.rhodecode_user.user_id) + c.notifications = Page(notif, page=1, items_per_page=10) return render('admin/notifications/notifications_data.html') def create(self):
--- a/rhodecode/public/css/style.css Sat Apr 14 22:40:47 2012 +0200 +++ b/rhodecode/public/css/style.css Sat Apr 14 23:42:43 2012 +0200 @@ -4103,6 +4103,13 @@ .inline-comments-button .add-comment{ margin:2px 0px 8px 5px !important } + + +.notification-paginator{ + padding: 0px 0px 4px 16px; + float: left; +} + .notifications{ border-radius: 4px 4px 4px 4px; -webkit-border-radius: 4px; @@ -4136,16 +4143,24 @@ float: left } .notification-list .container.unread{ - + background: none repeat scroll 0 0 rgba(255, 255, 180, 0.6); } .notification-header .gravatar{ - + background: none repeat scroll 0 0 transparent; + padding: 0px 0px 0px 8px; } .notification-header .desc.unread{ font-weight: bold; font-size: 17px; } - +.notification-table{ + border: 1px solid #ccc; + -webkit-border-radius: 6px 6px 6px 6px; + -moz-border-radius: 6px 6px 6px 6px; + border-radius: 6px 6px 6px 6px; + clear: both; + margin: 0px 20px 0px 20px; +} .notification-header .delete-notifications{ float: right; padding-top: 8px; @@ -4157,6 +4172,11 @@ padding:5px 0px 5px 38px; } +.notification-body{ + clear:both; + margin: 34px 2px 2px 8px +} + /**** PERMS *****/
--- a/rhodecode/templates/admin/notifications/notifications.html Sat Apr 14 22:40:47 2012 +0200 +++ b/rhodecode/templates/admin/notifications/notifications.html Sat Apr 14 23:42:43 2012 +0200 @@ -25,7 +25,7 @@ ##</ul> </div> %if c.notifications: - <div style="padding:10px 15px;text-align: right"> + <div style="padding:14px 18px;text-align: right;float:right"> <span id='mark_all_read' class="ui-btn">${_('Mark all read')}</span> </div> %endif @@ -39,15 +39,18 @@ var notification_id = e.currentTarget.id; deleteNotification(url_del,notification_id) }) - YUE.on('mark_all_read','click',function(e){ - var url = "${h.url('notifications_mark_all_read')}"; - ypjax(url,'notification_data',function(){ - YUD.get('notification_counter').innerHTML=0; - YUE.on(YUQ('.delete-notification'),'click',function(e){ - var notification_id = e.currentTarget.id; - deleteNotification(url_del,notification_id) - }) - }); - }) +YUE.on('mark_all_read','click',function(e){ + var url = "${h.url('notifications_mark_all_read')}"; + ypjax(url,'notification_data',function(){ + var notification_counter = YUD.get('notification_counter'); + if(notification_counter){ + notification_counter.innerHTML=0; + } + YUE.on(YUQ('.delete-notification'),'click',function(e){ + var notification_id = e.currentTarget.id; + deleteNotification(url_del,notification_id) + }) + }); +}) </script> </%def>
--- a/rhodecode/templates/admin/notifications/notifications_data.html Sat Apr 14 22:40:47 2012 +0200 +++ b/rhodecode/templates/admin/notifications/notifications_data.html Sat Apr 14 23:42:43 2012 +0200 @@ -3,26 +3,37 @@ <% unread = lambda n:{False:'unread'}.get(n) %> -<div class="table"> - <div class="notification-list"> - %for notification in c.notifications: - <div id="notification_${notification.notification.notification_id}" class="container ${unread(notification.read)}"> - <div class="notification-header"> - <div class="gravatar"> - <img alt="gravatar" src="${h.gravatar_url(h.email(notification.notification.created_by_user.email),24)}"/> - </div> - <div class="desc ${unread(notification.read)}"> - <a href="${url('notification', notification_id=notification.notification.notification_id)}">${notification.notification.description}</a> - </div> - <div class="delete-notifications"> - <span id="${notification.notification.notification_id}" class="delete-notification delete_icon action"></span> - </div> - </div> - <div class="notification-subject">${h.literal(notification.notification.subject)}</div> - </div> - %endfor +<div class="notification-paginator"> + <div class="pagination-wh pagination-left"> + ${c.notifications.pager('$link_previous ~2~ $link_next')} </div> </div> + +<div class="notification-list notification-table"> +%for notification in c.notifications: + <div id="notification_${notification.notification.notification_id}" class="container ${unread(notification.read)}"> + <div class="notification-header"> + <div class="gravatar"> + <img alt="gravatar" src="${h.gravatar_url(h.email(notification.notification.created_by_user.email),24)}"/> + </div> + <div class="desc ${unread(notification.read)}"> + <a href="${url('notification', notification_id=notification.notification.notification_id)}">${notification.notification.description}</a> + </div> + <div class="delete-notifications"> + <span id="${notification.notification.notification_id}" class="delete-notification delete_icon action"></span> + </div> + </div> + <div class="notification-subject">${h.literal(notification.notification.subject)}</div> + </div> +%endfor +</div> + +<div class="notification-paginator"> + <div class="pagination-wh pagination-left"> + ${c.notifications.pager('$link_previous ~2~ $link_next')} + </div> +</div> + %else: <div class="table">${_('No notifications here yet')}</div> %endif
--- a/rhodecode/templates/admin/notifications/show_notification.html Sat Apr 14 22:40:47 2012 +0200 +++ b/rhodecode/templates/admin/notifications/show_notification.html Sat Apr 14 23:42:43 2012 +0200 @@ -39,7 +39,7 @@ <span id="${c.notification.notification_id}" class="delete-notification delete_icon action"></span> </div> </div> - <div>${h.rst_w_mentions(c.notification.body)}</div> + <div class="notification-body">${h.rst_w_mentions(c.notification.body)}</div> </div> </div> </div>