comparison src/plugins/autosave.js @ 29:ea32a44b5a6e

remove more oo
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 11 Aug 2022 19:54:03 -0600
parents b7725dab7482
children
comparison
equal deleted inserted replaced
28:f227fdfebded 29:ea32a44b5a6e
17 function clear(key) { 17 function clear(key) {
18 localStorage.removeItem(key || defaultKey); 18 localStorage.removeItem(key || defaultKey);
19 } 19 }
20 20
21 sceditor.plugins.autosave = function () { 21 sceditor.plugins.autosave = function () {
22 var base = this; 22 var base = {};
23 var editor; 23 var editor;
24 var isLoading = false; 24 var isLoading = false;
25 var storageKey = defaultKey; 25 var storageKey = defaultKey;
26 // 86400000 = 24 hrs (24 * 60 * 60 * 1000) 26 // 86400000 = 24 hrs (24 * 60 * 60 * 1000)
27 var expires = 86400000; 27 var expires = 86400000;
43 } 43 }
44 } 44 }
45 } 45 }
46 } 46 }
47 47
48 base.init = function () { 48 base.init = function (ed) {
49 editor = this; 49 editor = ed;
50 var opts = editor.opts && editor.opts.autosave || {}; 50 var opts = editor.opts && editor.opts.autosave || {};
51 51
52 saveHandler = opts.save || saveHandler; 52 saveHandler = opts.save || saveHandler;
53 loadHandler = opts.load || loadHandler; 53 loadHandler = opts.load || loadHandler;
54 storageKey = opts.storageKey || storageKey; 54 storageKey = opts.storageKey || storageKey;
55 expires = opts.expires || expires; 55 expires = opts.expires || expires;
56 56
57 gc(); 57 gc();
58 }; 58 };
59 59
60 base.signalReady = function () { 60 base.signalReady = function (editor) {
61 // Add submit event listener to clear autosave 61 // Add submit event listener to clear autosave
62 var parent = editor.getContentAreaContainer(); 62 var parent = editor.getContentAreaContainer();
63 while (parent) { 63 while (parent) {
64 if (/form/i.test(parent.nodeName)) { 64 if (/form/i.test(parent.nodeName)) {
65 parent.addEventListener( 65 parent.addEventListener(
66 'submit', clear.bind(null, storageKey), true 66 'submit', function(){clear(storageKey)}, true
67 ); 67 );
68 break; 68 break;
69 } 69 }
70 70
71 parent = parent.parentNode; 71 parent = parent.parentNode;
84 editor.getRangeHelper().restoreRange(); 84 editor.getRangeHelper().restoreRange();
85 } 85 }
86 isLoading = false; 86 isLoading = false;
87 } else { 87 } else {
88 saveHandler({ 88 saveHandler({
89 caret: this.sourceEditorCaret(), 89 caret: editor.sourceEditorCaret(),
90 sourceMode: this.sourceMode(), 90 sourceMode: editor.sourceMode(),
91 value: editor.val(null, false), 91 value: editor.val(null, false),
92 time: Date.now() 92 time: Date.now()
93 }); 93 });
94 } 94 }
95 }; 95 };
96 96
97 base.signalValuechangedEvent = function (e) { 97 base.signalValuechangedEvent = function (editor, e) {
98 if (!isLoading) { 98 if (!isLoading) {
99 saveHandler({ 99 saveHandler({
100 caret: this.sourceEditorCaret(), 100 caret: editor.sourceEditorCaret(),
101 sourceMode: this.sourceMode(), 101 sourceMode: editor.sourceMode(),
102 value: e.detail.rawValue, 102 value: e.detail.rawValue,
103 time: Date.now() 103 time: Date.now()
104 }); 104 });
105 } 105 }
106 }; 106 };
107
108 return base;
107 }; 109 };
108 110
109 sceditor.plugins.autosave.clear = clear; 111 sceditor.plugins.autosave.clear = clear;
110 }(sceditor)); 112 }(sceditor));