From 6b147175bb90b182bdc1188a5537ddfd0d181303 Mon Sep 17 00:00:00 2001
From: Mikael Nordfeldth <mmn@hethane.se>
Date: Sat, 7 Mar 2015 00:32:26 +0100
Subject: [PATCH] Start working a bit more consistently with "notice-options"

Let's get the AJAX response and present it to the user with the same
mechanisms for all actions, instead of having a bunch of javascript
for various circumstances (fave, repeat, delete should all be the same
behaviour for example).
---
 js/util.js | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/js/util.js b/js/util.js
index 56aaf1f6f9..5995294d8f 100644
--- a/js/util.js
+++ b/js/util.js
@@ -575,6 +575,28 @@ var SN = { // StatusNet
             }
         },
 
+        /**
+         * Setup function -- DOES NOT trigger actions immediately.
+         *
+         * Sets up event handlers on all visible notice's option <a> elements
+         * so they are called with AJAX enabled.
+         *
+         * (without javascript the link goes to a page that expects you to verify
+         * the action through a form)
+         *
+         * @access private
+         */
+        NoticeOptionsAjax: function () {
+            $(document).on('click', '.notice-options > a', function (e) {
+                e.preventDefault();
+                var noticeEl = $(this).closest('.notice');
+                $.get($(this).attr('href'), {ajax: 1}, function (data, textStatus, xhr) {
+                    noticeEl.replaceWith($('body', data).html());
+                });
+                return false;
+            });
+        },
+
         /**
          * Setup function -- DOES NOT trigger actions immediately.
          *
@@ -1446,6 +1468,7 @@ var SN = { // StatusNet
                 SN.U.NoticeRepeat();
                 SN.U.NoticeReply();
                 SN.U.NoticeInlineReplySetup();
+                SN.U.NoticeOptionsAjax();
             }
 
             SN.U.NoticeAttachments();
-- 
2.39.5