forms: autosave when user asks for tracking code popup (#26630)

This commit is contained in:
Frédéric Péters 2018-09-22 13:05:34 +02:00
parent fde53b65d6
commit 2bb5875a6e
2 changed files with 18 additions and 8 deletions

View File

@ -1409,22 +1409,31 @@ def test_form_empty_tracking_code(pub):
def test_form_tracking_code_email(pub, emails):
formdef = create_formdef()
formdef.data_class().wipe()
formdef.fields = [fields.StringField(id='0', label='string')]
formdef.fields = [fields.StringField(id='0', label='string'),
fields.StringField(id='1', label='string2')]
formdef.enable_tracking_codes = True
formdef.store()
formdata = formdef.data_class()()
formdata.data = {'0': 'foobar'}
formdata.tracking_code = 'ABCDEF'
formdata.store()
app = get_app(pub)
resp = app.get('/test/')
resp.form['f0'] = 'barfoo'
# autosave will be made using javascript in real world
app.post('/test/autosave', params=resp.form.submit_fields())
resp = get_app(pub).get('/test/code/ABCDEF/')
tracking_code = get_displayed_tracking_code(resp)
assert tracking_code is not None
resp = get_app(pub).get('/test/code/%s/' % tracking_code)
assert '<h2>Keep your tracking code</h2>' in resp.body
resp.forms[0]['email'] = 'foo@localhost'
resp = resp.forms[0].submit()
assert emails.emails.get('Tracking Code reminder')
assert 'ABCDEF' in emails.emails.values()[0]['payload']
assert resp.location == 'http://example.net/test/code/ABCDEF/load'
assert tracking_code in emails.emails.values()[0]['payload']
assert resp.location == 'http://example.net/test/code/%s/load' % tracking_code
resp = resp.follow()
resp = resp.follow()
resp = resp.follow()
assert resp.forms[1]['f0'].value == 'barfoo'
def test_form_tracking_code_remove_draft(pub):
formdef = create_formdef()

View File

@ -27,6 +27,7 @@ $(function() {
});
}
timeout_id = window.setTimeout(autosave, 5000);
$('#tracking-code a').on('click', autosave);
}
$('.date-pick').each(function() {
var $date_input = $(this);