diff --git a/kallithea/config/routing.py b/kallithea/config/routing.py
--- a/kallithea/config/routing.py
+++ b/kallithea/config/routing.py
@@ -361,24 +361,6 @@ def make_map(config):
m.connect("my_account_api_keys_delete", "/my_account/api_keys/delete",
action="my_account_api_keys_delete", conditions=dict(method=["POST"]))
- # NOTIFICATION REST ROUTES
- with rmap.submapper(path_prefix=ADMIN_PREFIX,
- controller='admin/notifications') as m:
- m.connect("notifications", "/notifications",
- action="index", conditions=dict(method=["GET"]))
- m.connect("notifications_mark_all_read", "/notifications/mark_all_read",
- action="mark_all_read", conditions=dict(method=["GET"]))
- m.connect("formatted_notifications", "/notifications.{format}",
- action="index", conditions=dict(method=["GET"]))
- m.connect("notification_update", "/notifications/{notification_id}/update",
- action="update", conditions=dict(method=["POST"]))
- m.connect("notification_delete", "/notifications/{notification_id}/delete",
- action="delete", conditions=dict(method=["POST"]))
- m.connect("notification", "/notifications/{notification_id}",
- action="show", conditions=dict(method=["GET"]))
- m.connect("formatted_notification", "/notifications/{notification_id}.{format}",
- action="show", conditions=dict(method=["GET"]))
-
# ADMIN GIST
with rmap.submapper(path_prefix=ADMIN_PREFIX,
controller='admin/gists') as m:
diff --git a/kallithea/controllers/admin/notifications.py b/kallithea/controllers/admin/notifications.py
deleted file mode 100644
--- a/kallithea/controllers/admin/notifications.py
+++ /dev/null
@@ -1,139 +0,0 @@
-# -*- coding: utf-8 -*-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-"""
-kallithea.controllers.admin.notifications
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-notifications controller for Kallithea
-
-This file was forked by the Kallithea project in July 2014.
-Original author and date, and relevant copyright and licensing information is below:
-:created_on: Nov 23, 2010
-:author: marcink
-:copyright: (c) 2013 RhodeCode GmbH, and others.
-:license: GPLv3, see LICENSE.md for more details.
-"""
-
-import logging
-import traceback
-
-from tg import request
-from tg import tmpl_context as c
-from webob.exc import HTTPBadRequest, HTTPForbidden
-
-from kallithea.model.db import Notification
-from kallithea.model.notification import NotificationModel
-from kallithea.model.meta import Session
-from kallithea.lib.auth import LoginRequired
-from kallithea.lib.base import BaseController, render
-from kallithea.lib import helpers as h
-from kallithea.lib.page import Page
-from kallithea.lib.utils2 import safe_int
-
-
-log = logging.getLogger(__name__)
-
-
-class NotificationsController(BaseController):
- """REST Controller styled on the Atom Publishing Protocol"""
- # To properly map this controller, ensure your config/routing.py
- # file has a resource setup:
- # map.resource('notification', 'notifications', controller='_admin/notifications',
- # path_prefix='/_admin', name_prefix='_admin_')
-
- @LoginRequired()
- def _before(self, *args, **kwargs):
- super(NotificationsController, self)._before(*args, **kwargs)
-
- def index(self, format='html'):
- c.user = request.authuser
- notif = NotificationModel().query_for_user(request.authuser.user_id,
- filter_=request.GET.getall('type'))
-
- p = safe_int(request.GET.get('page'), 1)
- c.notifications = Page(notif, page=p, items_per_page=10)
- c.pull_request_type = Notification.TYPE_PULL_REQUEST
- c.comment_type = [Notification.TYPE_CHANGESET_COMMENT,
- Notification.TYPE_PULL_REQUEST_COMMENT]
-
- _current_filter = request.GET.getall('type')
- c.current_filter = 'all'
- if _current_filter == [c.pull_request_type]:
- c.current_filter = 'pull_request'
- elif _current_filter == c.comment_type:
- c.current_filter = 'comment'
-
- return render('admin/notifications/notifications.html')
-
- def mark_all_read(self):
- if request.environ.get('HTTP_X_PARTIAL_XHR'):
- nm = NotificationModel()
- # mark all read
- nm.mark_all_read_for_user(request.authuser.user_id,
- filter_=request.GET.getall('type'))
- Session().commit()
- c.user = request.authuser
- notif = nm.query_for_user(request.authuser.user_id,
- filter_=request.GET.getall('type'))
- c.notifications = Page(notif, page=1, items_per_page=10)
- return render('admin/notifications/notifications_data.html')
-
- def update(self, notification_id):
- try:
- no = Notification.get(notification_id)
- owner = all(un.user_id == request.authuser.user_id
- for un in no.notifications_to_users)
- if h.HasPermissionAny('hg.admin')() or owner:
- # deletes only notification2user
- NotificationModel().mark_read(request.authuser.user_id, no)
- Session().commit()
- return 'ok'
- except Exception:
- Session().rollback()
- log.error(traceback.format_exc())
- raise HTTPBadRequest()
-
- def delete(self, notification_id):
- try:
- no = Notification.get(notification_id)
- owner = any(un.user_id == request.authuser.user_id
- for un in no.notifications_to_users)
- if h.HasPermissionAny('hg.admin')() or owner:
- # deletes only notification2user
- NotificationModel().delete(request.authuser.user_id, no)
- Session().commit()
- return 'ok'
- except Exception:
- Session().rollback()
- log.error(traceback.format_exc())
- raise HTTPBadRequest()
-
- def show(self, notification_id, format='html'):
- notification = Notification.get_or_404(notification_id)
-
- unotification = NotificationModel() \
- .get_user_notification(request.authuser.user_id, notification)
-
- # if this association to user is not valid, we don't want to show
- # this message
- if unotification is None:
- raise HTTPForbidden()
-
- if not unotification.read:
- unotification.mark_as_read()
- Session().commit()
-
- c.notification = notification
- c.user = request.authuser
- return render('admin/notifications/show_notification.html')
diff --git a/kallithea/public/js/base.js b/kallithea/public/js/base.js
--- a/kallithea/public/js/base.js
+++ b/kallithea/public/js/base.js
@@ -980,34 +980,6 @@ var getSelectionLink = function(e) {
}
};
-var deleteNotification = function(url, notification_id, callbacks){
- var success = function(o){
- $("#notification_"+notification_id).remove();
- _run_callbacks(callbacks);
- };
- var failure = function(o){
- alert("deleteNotification failure");
- };
- var postData = {};
- var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
- ajaxPOST(sUrl, postData, success, failure);
-};
-
-var readNotification = function(url, notification_id, callbacks){
- var success = function(o){
- var $obj = $("#notification_"+notification_id);
- $obj.removeClass('list-group-item-warning');
- $obj.find('.read-notification').remove();
- _run_callbacks(callbacks);
- };
- var failure = function(o){
- alert("readNotification failure");
- };
- var postData = {};
- var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
- ajaxPOST(sUrl, postData, success, failure);
-};
-
/**
* Autocomplete functionality
*/
diff --git a/kallithea/templates/admin/notifications/notifications.html b/kallithea/templates/admin/notifications/notifications.html
deleted file mode 100644
--- a/kallithea/templates/admin/notifications/notifications.html
+++ /dev/null
@@ -1,58 +0,0 @@
-## -*- coding: utf-8 -*-
-<%inherit file="/base/base.html"/>
-
-<%block name="title">
- ${_('My Notifications')} ${request.authuser.username}
-%block>
-
-<%def name="breadcrumbs_links()">
- ${_('My Notifications')}
-%def>
-
-<%block name="header_menu">
- ${self.menu('admin')}
-%block>
-
-<%def name="main()">
-
-
- ${self.breadcrumbs()}
-
-
-
-
- %if c.notifications:
-
- %endif
-
-
- <%include file='notifications_data.html'/>
-
-
-
-%def>
diff --git a/kallithea/templates/admin/notifications/notifications_data.html b/kallithea/templates/admin/notifications/notifications_data.html
deleted file mode 100644
--- a/kallithea/templates/admin/notifications/notifications_data.html
+++ /dev/null
@@ -1,22 +0,0 @@
-%if c.notifications:
-
-
-%for notification in c.notifications:
-
-
- ${h.gravatar_div(notification.notification.created_by_user.email, size=24)}
- ${notification.notification.description}
-
-
- %if not notification.read:
-
- %endif
-
-
-
-%endfor
-
-${c.notifications.pager(controller='admin/notifications', **request.GET.mixed())}
-%else:
- ${_('No notifications here yet')}
-%endif
diff --git a/kallithea/templates/admin/notifications/show_notification.html b/kallithea/templates/admin/notifications/show_notification.html
deleted file mode 100644
--- a/kallithea/templates/admin/notifications/show_notification.html
+++ /dev/null
@@ -1,53 +0,0 @@
-## -*- coding: utf-8 -*-
-<%inherit file="/base/base.html"/>
-
-<%block name="title">
- ${_('Show Notification')} ${request.authuser.username}
-%block>
-
-<%def name="breadcrumbs_links()">
- ${h.link_to(_('Notifications'),h.url('notifications'))}
- »
- ${_('Show Notification')}
-%def>
-
-<%block name="header_menu">
- ${self.menu('admin')}
-%block>
-
-<%def name="main()">
-
-
- ${self.breadcrumbs()}
-
-
-
-
- ${h.gravatar_div(c.notification.created_by_user.email, size=24)}
-
- ${c.notification.description}
-
-
-
-
- %if c.notification.subject:
-
${h.literal(c.notification.subject)}
- %endif
-
- %if c.notification.body:
- ${h.render_w_mentions(c.notification.body)}
- %endif
-
-
-
-
-
-
-%def>