Slight rejig of form-save.js
This commit is contained in:
parent
0725f75b70
commit
0b3ac065ef
7 changed files with 7 additions and 9 deletions
|
|
@ -3,10 +3,8 @@ var feature = {
|
|||
addEventListener : !!window.addEventListener,
|
||||
querySelectorAll : !!document.querySelectorAll
|
||||
};
|
||||
if(feature.addEventListener && feature.querySelectorAll) {
|
||||
init();
|
||||
}
|
||||
function init() {
|
||||
|
||||
if (feature.addEventListener && feature.querySelectorAll) {
|
||||
var keys = getKeys();
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
if (store.get(keys[i])) {
|
||||
|
|
@ -15,6 +13,7 @@ function init() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
var timerId = window.setInterval(function() {
|
||||
var saved = false;
|
||||
var inputs = document.querySelectorAll('input[type=text], textarea');
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
69
public/build/assets/js/form-save-4d4f6e1cb8.js
Normal file
69
public/build/assets/js/form-save-4d4f6e1cb8.js
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
/* global alertify, store */
|
||||
var feature = {
|
||||
addEventListener : !!window.addEventListener,
|
||||
querySelectorAll : !!document.querySelectorAll
|
||||
};
|
||||
|
||||
if (feature.addEventListener && feature.querySelectorAll) {
|
||||
var keys = getKeys();
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
if (store.get(keys[i])) {
|
||||
var formId = keys[i].split('~')[1];
|
||||
document.getElementById(formId).value = store.get(keys[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var timerId = window.setInterval(function() {
|
||||
var saved = false;
|
||||
var inputs = document.querySelectorAll('input[type=text], textarea');
|
||||
for (var i = 0; i < inputs.length; i++) {
|
||||
var key = getFormElement(inputs[i]).id + '~' + inputs[i].id;
|
||||
if (store.get(key) !== inputs[i].value && inputs[i].value !== '') {
|
||||
store.set(key, inputs[i].value);
|
||||
saved = true;
|
||||
}
|
||||
}
|
||||
if (saved === true) {
|
||||
alertify.logPosition('top right');
|
||||
alertify.success('Auto saved text');
|
||||
}
|
||||
}, 5000);
|
||||
var forms = document.querySelectorAll('form');
|
||||
for (var f = 0; f < forms.length; f++) {
|
||||
var form = forms[f];
|
||||
form.addEventListener('submit', function() {
|
||||
window.clearInterval(timerId);
|
||||
var formId = form.id;
|
||||
var storedKeys = store.keys();
|
||||
for (var i = 0; i < storedKeys.length; i++) {
|
||||
if (storedKeys[i].indexOf(formId) > -1) {
|
||||
store.remove(storedKeys[i]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function getKeys() {
|
||||
var keys = [];
|
||||
var formFields = document.querySelectorAll('input[type=text], textarea');
|
||||
for (var f = 0; f < formFields.length; f++) {
|
||||
var parent = getFormElement(formFields[f]);
|
||||
if (parent !== false) {
|
||||
var key = parent.id + '~' + formFields[f].id;
|
||||
keys.push(key);
|
||||
}
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
function getFormElement(elem) {
|
||||
if (elem.nodeName.toLowerCase() !== 'body') {
|
||||
var parent = elem.parentNode;
|
||||
if (parent.nodeName.toLowerCase() === 'form') {
|
||||
return parent;
|
||||
} else {
|
||||
return getFormElement(parent);
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
BIN
public/build/assets/js/form-save-4d4f6e1cb8.js.br
Normal file
BIN
public/build/assets/js/form-save-4d4f6e1cb8.js.br
Normal file
Binary file not shown.
BIN
public/build/assets/js/form-save-4d4f6e1cb8.js.gz
Normal file
BIN
public/build/assets/js/form-save-4d4f6e1cb8.js.gz
Normal file
Binary file not shown.
|
|
@ -4,7 +4,7 @@
|
|||
"assets/css/prism.css": "assets/css/prism-5c98941a94.css",
|
||||
"assets/css/projects.css": "assets/css/projects-d945298e4f.css",
|
||||
"assets/css/sanitize.min.css": "assets/css/sanitize.min-535bccd783.css",
|
||||
"assets/js/form-save.js": "assets/js/form-save-14b9f120ac.js",
|
||||
"assets/js/form-save.js": "assets/js/form-save-4d4f6e1cb8.js",
|
||||
"assets/js/libs/Autolinker.min.js": "assets/js/libs/Autolinker.min-b46556773a.js",
|
||||
"assets/js/libs/alertify.js": "assets/js/libs/alertify-269e23cb46.js",
|
||||
"assets/js/libs/fetch.js": "assets/js/libs/fetch-5e9040330a.js",
|
||||
|
|
|
|||
Loading…
Reference in a new issue