| 
									
										
										
										
											2010-02-22 19:18:32 +01:00
										 |  |  | /* | 
					
						
							|  |  |  |  * StatusNet - a distributed open-source microblogging tool | 
					
						
							|  |  |  |  * Copyright (C) 2010, StatusNet, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU Affero General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category  OStatus UI interaction | 
					
						
							|  |  |  |  * @package   StatusNet | 
					
						
							|  |  |  |  * @author    Sarven Capadisli <csarven@status.net> | 
					
						
							|  |  |  |  * @copyright 2010 StatusNet, Inc. | 
					
						
							|  |  |  |  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 | 
					
						
							|  |  |  |  * @link      http://status.net/
 | 
					
						
							|  |  |  |  * @note      Everything in here should eventually migrate over to /js/util.js's SN. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-22 19:13:30 +01:00
										 |  |  | SN.Init.OStatusCookie = function() { | 
					
						
							|  |  |  |     if (SN.U.StatusNetInstance.Get() === null) { | 
					
						
							| 
									
										
										
										
											2010-02-24 16:35:20 +01:00
										 |  |  |         SN.U.StatusNetInstance.Set({RemoteProfile: null}); | 
					
						
							| 
									
										
										
										
											2010-02-22 19:13:30 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-13 20:28:05 +01:00
										 |  |  | SN.U.DialogBox = { | 
					
						
							|  |  |  |     Subscribe: function(a) { | 
					
						
							| 
									
										
										
										
											2010-02-22 17:05:43 +01:00
										 |  |  |         var f = a.parent().find('.form_settings'); | 
					
						
							| 
									
										
										
										
											2010-02-13 20:28:05 +01:00
										 |  |  |         if (f.length > 0) { | 
					
						
							|  |  |  |             f.show(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         else { | 
					
						
							|  |  |  |             $.ajax({ | 
					
						
							|  |  |  |                 type: 'GET', | 
					
						
							|  |  |  |                 dataType: 'xml', | 
					
						
							| 
									
										
										
										
											2010-02-23 00:27:41 +01:00
										 |  |  |                 url: a[0].href + ((a[0].href.match(/[\\?]/) === null)?'?':'&') + 'ajax=1', | 
					
						
							| 
									
										
										
										
											2010-02-13 20:28:05 +01:00
										 |  |  |                 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)); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-22 17:05:43 +01:00
										 |  |  |                         var form = a.parent().find('.form_settings'); | 
					
						
							| 
									
										
										
										
											2010-02-13 20:28:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |                         form | 
					
						
							|  |  |  |                             .addClass('dialogbox') | 
					
						
							|  |  |  |                             .append('<button class="close">×</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; | 
					
						
							|  |  |  |                         }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-22 17:05:43 +01:00
										 |  |  |                         form.find('#profile').focus(); | 
					
						
							| 
									
										
										
										
											2010-02-22 19:13:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |                         if (form.attr('id') == 'form_ostatus_connect') { | 
					
						
							|  |  |  |                             SN.Init.OStatusCookie(); | 
					
						
							| 
									
										
										
										
											2010-02-24 16:35:20 +01:00
										 |  |  |                             form.find('#profile').val(SN.U.StatusNetInstance.Get().RemoteProfile); | 
					
						
							| 
									
										
										
										
											2010-02-22 19:13:30 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |                             form.find("[type=submit]").bind('click', function() { | 
					
						
							| 
									
										
										
										
											2010-02-24 16:35:20 +01:00
										 |  |  |                                 SN.U.StatusNetInstance.Set({RemoteProfile: form.find('#profile').val()}); | 
					
						
							| 
									
										
										
										
											2010-02-22 19:13:30 +01:00
										 |  |  |                                 return true; | 
					
						
							|  |  |  |                             }); | 
					
						
							|  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2010-02-13 20:28:05 +01:00
										 |  |  |                     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     a.removeClass('processing'); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-02-22 19:37:42 +01:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2010-02-13 20:28:05 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SN.Init.Subscribe = function() { | 
					
						
							| 
									
										
										
										
											2011-03-07 00:45:34 +05:30
										 |  |  |     $('.entity_subscribe .entity_remote_subscribe, .entity_tag .entity_remote_tag') | 
					
						
							|  |  |  |         .live('click', function() { SN.U.DialogBox.Subscribe($(this)); return false; }); | 
					
						
							| 
									
										
										
										
											2010-02-13 20:28:05 +01:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $(document).ready(function() { | 
					
						
							| 
									
										
										
										
											2010-02-22 17:05:43 +01:00
										 |  |  |     SN.Init.Subscribe(); | 
					
						
							| 
									
										
										
										
											2010-02-24 15:20:44 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $('.form_remote_authorize').bind('submit', function() { $(this).addClass(SN.C.S.Processing); return true; }); | 
					
						
							| 
									
										
										
										
											2010-02-13 20:28:05 +01:00
										 |  |  | }); |