implemented a simple form data loss warning when the user leaves a page (except on pressing an OK button under the form)
This commit is contained in:
parent
f0b2eb8b0f
commit
6d40c1254a
10
the_works/static/js/datalosswarning.js
Normal file
10
the_works/static/js/datalosswarning.js
Normal file
@ -0,0 +1,10 @@
|
||||
function initDatalosswarning() {
|
||||
window.addEventListener("beforeunload", event => {
|
||||
if ( event.explicitOriginalTarget.attributes && event.explicitOriginalTarget.attributes.type.value === "submit" ) {
|
||||
return;
|
||||
} else {
|
||||
event.preventDefault();
|
||||
event.returnValue = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -84,7 +84,7 @@ Text bearbeiten
|
||||
<button id="form_submit" type="submit" formmethod="post" formaction="{% if create_mode %}{{ url_for('text.create') }}{% else %}{{ url_for('text.update', id=text['ID']) }}{% endif %}">
|
||||
{% if create_mode %}Eintrag speichern{% else %}Änderungen speichern{% endif %}
|
||||
</button>
|
||||
<button type="reset" title="Alle Felder auf den vorherigen Zustand zurücksetzen">Alles zurücksetzen</button>
|
||||
<button type="reset" onclick="return confirm('Wirklich zurücksetzen? Alle geänderten Daten gehen dabei verloren.');" title="Alle Felder auf den vorherigen Zustand zurücksetzen">Alles zurücksetzen</button>
|
||||
<a role="button" class="contrast" href="{{ url_for('text.all') }}">Abbrechen (nicht speichern)</a>
|
||||
</footer>
|
||||
</form>
|
||||
@ -92,7 +92,11 @@ Text bearbeiten
|
||||
|
||||
{% block script %}
|
||||
<script src="{{ url_for('static', filename='js/multiselect.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/datalosswarning.js') }}"></script>
|
||||
<script>
|
||||
window.onload = () => initAllMultiselects();
|
||||
window.onload = () => {
|
||||
initAllMultiselects();
|
||||
initDatalosswarning();
|
||||
}
|
||||
</script>
|
||||
{% endblock script %}
|
||||
|
||||
@ -183,7 +183,7 @@ Werk bearbeiten
|
||||
<button id="form_submit" type="submit" onclick="return validate_date()" formmethod="post" formaction="{% if create_mode %}{{ url_for('werk.create') }}{% else %}{{ url_for('werk.update', id=werk['ID']) }}{% endif %}">
|
||||
{% if create_mode %}Eintrag speichern{% else %}Änderungen speichern{% endif %}
|
||||
</button>
|
||||
<button type="reset" title="Alle Felder auf den vorherigen Zustand zurücksetzen">Alles zurücksetzen</button>
|
||||
<button type="reset" onclick="return confirm('Wirklich zurücksetzen? Alle geänderten Daten gehen dabei verloren.');" title="Alle Felder auf den vorherigen Zustand zurücksetzen">Alles zurücksetzen</button>
|
||||
<a role="button" class="contrast" href="{{ url_for('werk.all') }}">Abbrechen (nicht speichern)</a>
|
||||
</footer>
|
||||
</form>
|
||||
@ -205,11 +205,13 @@ Werk bearbeiten
|
||||
<script src="{{ url_for('static', filename='js/imageselect.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/imagepreview.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/validate_date.js') }}"></script>
|
||||
<script src="{{ url_for('static', filename='js/datalosswarning.js') }}"></script>
|
||||
<script>
|
||||
window.onload = () => {
|
||||
initAllMultiselects();
|
||||
initImageselect("form_Titelbild_dropdown");
|
||||
initImagepreview("imagepreview-modal");
|
||||
initDatalosswarning();
|
||||
}
|
||||
</script>
|
||||
{% endblock script %}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user