]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Dialogbox for OStatus remote subscription
authorSarven Capadisli <csarven@status.net>
Sat, 13 Feb 2010 19:28:05 +0000 (20:28 +0100)
committerSarven Capadisli <csarven@status.net>
Sat, 13 Feb 2010 19:28:05 +0000 (20:28 +0100)
plugins/OStatus/OStatusPlugin.php
plugins/OStatus/js/ostatus.js [new file with mode: 0644]

index e84d68504313faf384fdbedc43e26b68a7be0155..276ca1b3d0507a93c183ec174ab93887da1edd3c 100644 (file)
@@ -279,4 +279,9 @@ class OStatusPlugin extends Plugin
         $action->cssLink(common_path('plugins/OStatus/theme/base/css/ostatus.css'));
         return true;
     }
+
+    function onEndShowStatusNetScripts($action) {
+        $action->script(common_path('plugins/OStatus/js/ostatus.js'));
+        return true;
+    }
 }
diff --git a/plugins/OStatus/js/ostatus.js b/plugins/OStatus/js/ostatus.js
new file mode 100644 (file)
index 0000000..6717955
--- /dev/null
@@ -0,0 +1,60 @@
+SN.U.DialogBox = {
+    Subscribe: function(a) {
+        var f = a.parent().find('#form_ostatus_connect');
+        if (f.length > 0) {
+            f.show();
+        }
+        else {
+            $.ajax({
+                type: 'GET',
+                dataType: 'xml',
+                url: a[0].href+'&ajax=1',
+                beforeSend: function(formData) {
+                    a.addClass('processing');
+                },
+                error: function (xhr, textStatus, errorThrown) {
+                    alert(errorThrown || textStatus);
+                },
+                success: function(data, textStatus, xhr) {
+                    if (typeof($('form', data)[0]) != 'undefined') {
+                        a.after(document._importNode($('form', data)[0], true));
+
+                        var form = a.parent().find('#form_ostatus_connect');
+
+                        form
+                            .addClass('dialogbox')
+                            .append('<button class="close">&#215;</button>');
+
+                        form
+                            .find('.submit')
+                                .addClass('submit_dialogbox')
+                                .removeClass('submit')
+                                .bind('click', function() {
+                                    form.addClass('processing');
+                                });
+
+                        form.find('button.close').click(function(){
+                            form.hide();
+
+                            return false;
+                        });
+
+                        form.find('#acct').focus();
+                    }
+
+                    a.removeClass('processing');
+                }
+            });
+        }
+    }
+};
+
+SN.Init.Subscribe = function() {
+    $('.entity_subscribe a').live('click', function() { SN.U.DialogBox.Subscribe($(this)); return false; });
+};
+
+$(document).ready(function() {
+    if ($('.entity_subscribe .entity_remote_subscribe').length > 0) {
+        SN.Init.Subscribe();
+    }
+});