63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
(function() {
|
|
this.Autosave = (function() {
|
|
function Autosave(field, key) {
|
|
this.field = field;
|
|
if (key.join != null) {
|
|
key = key.join("/");
|
|
}
|
|
this.key = "autosave/" + key;
|
|
this.field.data("autosave", this);
|
|
this.restore();
|
|
this.field.on("input", (function(_this) {
|
|
return function() {
|
|
return _this.save();
|
|
};
|
|
})(this));
|
|
}
|
|
|
|
Autosave.prototype.restore = function() {
|
|
var e, error, text;
|
|
if (window.localStorage == null) {
|
|
return;
|
|
}
|
|
try {
|
|
text = window.localStorage.getItem(this.key);
|
|
} catch (error) {
|
|
e = error;
|
|
return;
|
|
}
|
|
if ((text != null ? text.length : void 0) > 0) {
|
|
this.field.val(text);
|
|
}
|
|
return this.field.trigger("input");
|
|
};
|
|
|
|
Autosave.prototype.save = function() {
|
|
var text;
|
|
if (window.localStorage == null) {
|
|
return;
|
|
}
|
|
text = this.field.val();
|
|
if ((text != null ? text.length : void 0) > 0) {
|
|
try {
|
|
return window.localStorage.setItem(this.key, text);
|
|
} catch (undefined) {}
|
|
} else {
|
|
return this.reset();
|
|
}
|
|
};
|
|
|
|
Autosave.prototype.reset = function() {
|
|
if (window.localStorage == null) {
|
|
return;
|
|
}
|
|
try {
|
|
return window.localStorage.removeItem(this.key);
|
|
} catch (undefined) {}
|
|
};
|
|
|
|
return Autosave;
|
|
|
|
})();
|
|
|
|
}).call(this);
|