From 5efb4a912ee2d693bdcb1580cf9acb9fe663f89b Mon Sep 17 00:00:00 2001
From: Steffen van Bergerem <svbergerem@omgsrsly.net>
Date: Thu, 15 Dec 2016 11:38:14 +0100
Subject: [PATCH] Prevent scroll to top when clicking 'mark all as read' in the
 notification dropdown

Fixes #7252

closes #7253
---
 Changelog.md                                           | 1 +
 app/assets/javascripts/app/views/notifications_view.js | 3 ++-
 spec/javascripts/app/views/notifications_view_spec.js  | 9 ++++++++-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/Changelog.md b/Changelog.md
index e532fb476c..9cbe3091b2 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -7,6 +7,7 @@
 ## Bug fixes
 * Fix background color of year on notifications page with dark theme [#7263](https://github.com/diaspora/diaspora/pull/7263)
 * Fix jasmine tests in firefox [#7246](https://github.com/diaspora/diaspora/pull/7246)
+* Prevent scroll to top when clicking 'mark all as read' in the notification dropdown [#7253](https://github.com/diaspora/diaspora/pull/7253)
 
 ## Features
 * Add links to the aspects and followed tags pages on mobile [#7265](https://github.com/diaspora/diaspora/pull/7265)
diff --git a/app/assets/javascripts/app/views/notifications_view.js b/app/assets/javascripts/app/views/notifications_view.js
index 3ae156348b..472dafbbf7 100644
--- a/app/assets/javascripts/app/views/notifications_view.js
+++ b/app/assets/javascripts/app/views/notifications_view.js
@@ -28,7 +28,8 @@ app.views.Notifications = Backbone.View.extend({
     }
   },
 
-  markAllRead: function() {
+  markAllRead: function(evt) {
+    evt.preventDefault();
     this.collection.setAllRead();
   },
 
diff --git a/spec/javascripts/app/views/notifications_view_spec.js b/spec/javascripts/app/views/notifications_view_spec.js
index d837703007..4e520a57c4 100644
--- a/spec/javascripts/app/views/notifications_view_spec.js
+++ b/spec/javascripts/app/views/notifications_view_spec.js
@@ -168,9 +168,16 @@ describe("app.views.Notifications", function() {
     describe("markAllRead", function() {
       it("calls collection#setAllRead", function() {
         spyOn(this.collection, "setAllRead");
-        this.view.markAllRead();
+        this.view.markAllRead($.Event());
         expect(this.collection.setAllRead).toHaveBeenCalled();
       });
+
+      it("calls preventDefault", function() {
+        var evt = $.Event();
+        spyOn(evt, "preventDefault");
+        this.view.markAllRead(evt);
+        expect(evt.preventDefault).toHaveBeenCalled();
+      });
     });
 
     describe("onChangedUnreadStatus", function() {
-- 
GitLab