]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Start working a bit more consistently with "notice-options"
authorMikael Nordfeldth <mmn@hethane.se>
Fri, 6 Mar 2015 23:32:26 +0000 (00:32 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Fri, 6 Mar 2015 23:32:26 +0000 (00:32 +0100)
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

index 56aaf1f6f993e7139895b157f7e0d562db38932c..5995294d8f9eeb49e4eff0ed1d9e4c2ead992d40 100644 (file)
@@ -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();