From 171bf3093a4cf3f3ff0b4d255392ffd5375e4c36 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sat, 13 Feb 2010 20:28:05 +0100 Subject: [PATCH] Dialogbox for OStatus remote subscription --- plugins/OStatus/OStatusPlugin.php | 5 +++ plugins/OStatus/js/ostatus.js | 60 +++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 plugins/OStatus/js/ostatus.js diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index e84d685043..276ca1b3d0 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -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 index 0000000000..6717955582 --- /dev/null +++ b/plugins/OStatus/js/ostatus.js @@ -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(''); + + 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(); + } +});