Bug 649651 - Boost popup coming after registration won't re-open on page reload
This commit is contained in:
Родитель
d034052523
Коммит
8ec99ceab6
|
@ -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',
|
||||
|
|
Загрузка…
Ссылка в новой задаче