From: Sarven Capadisli <csarven@status.net>
Date: Mon, 22 Feb 2010 18:13:30 +0000 (+0100)
Subject: Set and reuse a cookie with own profile value at a StatusNet instance
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=85cb850cd5fe4b2edd61a86c6020f246f71e8306;p=quix0rs-gnu-social.git

Set and reuse a cookie with own profile value at a StatusNet instance
---

diff --git a/plugins/OStatus/js/ostatus.js b/plugins/OStatus/js/ostatus.js
index 0daeb1a8b0..dc1925cb93 100644
--- a/plugins/OStatus/js/ostatus.js
+++ b/plugins/OStatus/js/ostatus.js
@@ -1,3 +1,36 @@
+SN.C.S.StatusNetInstance = 'StatusNetInstance';
+
+SN.U.StatusNetInstance = {
+    Set: function(value) {
+        $.cookie(
+            SN.C.S.StatusNetInstance,
+            JSON.stringify(value),
+            {
+                path: '/',
+                expires: SN.U.GetFullYear(2029, 0, 1)
+            });
+    },
+
+    Get: function() {
+        var cookieValue = $.cookie(SN.C.S.StatusNetInstance);
+        if (cookieValue !== null) {
+            return JSON.parse(cookieValue);
+        }
+        return null;
+    },
+
+    Delete: function() {
+        $.cookie(SN.C.S.StatusNetInstance, null);
+    }
+};
+
+SN.Init.OStatusCookie = function() {
+    if (SN.U.StatusNetInstance.Get() === null) {
+        SN.C.I.OStatusProfile = SN.C.I.OStatusProfile || null;
+        SN.U.StatusNetInstance.Set({profile: SN.C.I.OStatusProfile});
+    }
+};
+
 SN.U.DialogBox = {
     Subscribe: function(a) {
         var f = a.parent().find('.form_settings');
@@ -41,13 +74,23 @@ SN.U.DialogBox = {
                         });
 
                         form.find('#profile').focus();
+
+                        if (form.attr('id') == 'form_ostatus_connect') {
+                            SN.Init.OStatusCookie();
+                            form.find('#profile').val(SN.U.StatusNetInstance.Get().profile)
+
+                            form.find("[type=submit]").bind('click', function() {
+                                SN.U.StatusNetInstance.Set({profile: form.find('#profile').val()});
+                                return true;
+                            });
+                        }
                     }
 
                     a.removeClass('processing');
                 }
             });
         }
-    }
+    },
 };
 
 SN.Init.Subscribe = function() {