Don't display draft restore prompt after a failed submit attempt (#52)

This commit is contained in:
Anna Sidwell 2018-04-16 10:48:36 +10:00
parent ee88a3160e
commit 4390edde03

View File

@ -56,6 +56,8 @@
<div class="savebutton"></div> <div class="savebutton"></div>
<input type="hidden" id="form_errors" value="{% if form.errors %}true{% else %}false{% endif %}">
{% crispy form %} {% crispy form %}
{% endblock %} {% endblock %}
@ -479,11 +481,15 @@ function showDraftPrompt(formSaver, serialisedForm) {
} }
function initDrafts() { function initDrafts() {
var formSaver = new FormSaver({ const formSaver = new FormSaver({
formId: 'case-study-form', formId: 'case-study-form',
except: [ 'csrfmiddlewaretoken' ] except: [ 'csrfmiddlewaretoken' ]
}) })
// Use whether the form has errors as a proxy for whether the server has
// returned us data in the form. In this case, don't show a draft.
const formHasErrors = document.getElementById('form_errors').value === 'true' ? true : false
if (!formHasErrors) {
// Get the previous draft, if any // Get the previous draft, if any
apiGetDraft() apiGetDraft()
.then(response => response.json()) .then(response => response.json())
@ -499,6 +505,7 @@ function initDrafts() {
}).catch(err => { }).catch(err => {
console.error(err); console.error(err);
}) })
}
// Init the button controller // Init the button controller
var button = new SaveButton(document.querySelector('.savebutton')) var button = new SaveButton(document.querySelector('.savebutton'))