Mercurial Hosting > sceditor
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)); |