Bug 649651 - Boost popup coming after registration won't re-open on page reload

This commit is contained in:
sork 2011-04-14 00:47:36 +02:00
Родитель d034052523
Коммит 8ec99ceab6
5 изменённых файлов: 103 добавлений и 5 удалений

Просмотреть файл

@ -40,8 +40,7 @@ def home(request):
boost_status = 2
elif profile.boost1_completed:
boost_status = 1
just_registered = request.GET.get('n')
return jingo.render(request, 'desktop/dashboard.html',
response = jingo.render(request, 'desktop/dashboard.html',
{'username': profile.user.username,
'profile': profile,
'logged_in': True,
@ -58,7 +57,9 @@ def home(request):
'abs_url': profile.generic_sharing_url,
'stats': get_global_stats(),
'boost_status': boost_status,
'open_boost_popup': just_registered})
'open_boost_popup': 'new_user' in request.COOKIES})
response.delete_cookie('new_user')
return response
else:
data = {'is_homepage': True,
'twitter_url': urlquote(absolute_url(django_reverse('desktop.home'))),

Просмотреть файл

@ -16,7 +16,7 @@ from django.utils.http import base36_to_int
import jingo
from spark.urlresolvers import reverse, clean_next_url
from spark.helpers import url, urlparams
from spark.helpers import url
from spark.utils import is_mobile
from spark.decorators import (ssl_required, logout_required, login_required,
post_required, json_view, ajax_required)
@ -130,7 +130,7 @@ def register(request, mobile=False):
else: # ajax desktop registration
if valid:
return {'status': 'success',
'next': urlparams(reverse('desktop.home'), n=1)}
'next': reverse('desktop.home')}
else:
return {'status': 'error',
'errors': dict(form.errors.iteritems())}

Просмотреть файл

@ -1,5 +1,10 @@
var success = function($form, data) {
$form.find('button').attr("disabled", "disabled");
if($form[0].id === 'signup') {
$.cookie('new_user', '1', {expires: 3, path:'/'});
}
setTimeout(function() {
// Redirect to logged-in user home page
window.location.replace(data.next);

Просмотреть файл

@ -0,0 +1,91 @@
/*jslint browser: true */ /*global jQuery: true */
/**
* jQuery Cookie plugin
*
* Copyright (c) 2010 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
// TODO JsDoc
/**
* Create a cookie with the given key and value and other optional parameters.
*
* @example $.cookie('the_cookie', 'the_value');
* @desc Set the value of a cookie.
* @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
* @desc Create a cookie with all available options.
* @example $.cookie('the_cookie', 'the_value');
* @desc Create a session cookie.
* @example $.cookie('the_cookie', null);
* @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
* used when the cookie was set.
*
* @param String key The key of the cookie.
* @param String value The value of the cookie.
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
* If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
* If set to null or omitted, the cookie will be a session cookie and will not be retained
* when the the browser exits.
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
* require a secure protocol (like HTTPS).
* @type undefined
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
/**
* Get the value of a cookie with the given key.
*
* @example $.cookie('the_cookie');
* @desc Get the value of a cookie.
*
* @param String key The key of the cookie.
* @return The value of the cookie.
* @type String
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
jQuery.cookie = function (key, value, options) {
// key and at least value given, set cookie...
if (arguments.length > 1 && String(value) !== "[object Object]") {
options = jQuery.extend({}, options);
if (value === null || value === undefined) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=',
options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// key and possibly options given, get cookie...
options = value || {};
var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};

Просмотреть файл

@ -185,6 +185,7 @@ MINIFY_BUNDLES = {
'home': (
'js/desktop/popups-loggedout.js',
'js/libs/customforms.js',
'js/libs/jquery.cookie.js'
),
'dashboard': (
'js/desktop/minimap.js',