]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Set and reuse a cookie with own profile value at a StatusNet instance
authorSarven Capadisli <csarven@status.net>
Mon, 22 Feb 2010 18:13:30 +0000 (19:13 +0100)
committerSarven Capadisli <csarven@status.net>
Mon, 22 Feb 2010 18:13:30 +0000 (19:13 +0100)
plugins/OStatus/js/ostatus.js

index 0daeb1a8b03cfc35f651f239e9b96199820aa799..dc1925cb935702ff79f877b29917f4019c81275b 100644 (file)
@@ -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() {