forked from shorstok/3k-project
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpresets.js
85 lines (61 loc) · 2.22 KB
/
presets.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
const presetsStorageKey = "presets";
window.addEventListener('load', function () {
restorePresetList();
});
var presets = new Object();
function createNewPreset(){
var name = prompt('Введите название нового пресета');
if(name == null)
return;
presets[name] = createStateSnapshot();
presets[name].modeSelectorId = activeModeName;
presets[name].containerId = activeCanvasName;
savePresetList();
restorePresetList();
}
function deletePreset(name){
delete presets[name];
savePresetList();
restorePresetList();
}
function restorePreset(name){
var stor = document.querySelector('#'+presets[name].modeSelectorId);
stor.checked = true;
changemode(stor);
showCanvasAccordingToMode(presets[name].containerId);
//Simulate event fire to trigger dependent selectors
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
stor.dispatchEvent(evt);
}
else
stor.fireEvent("onchange");
restoreStateSnapshot(presets[name]);
saveState();
redraw();
}
function savePresetList()
{
localStorage.setItem(presetsStorageKey,JSON.stringify(presets));
}
function restorePresetList()
{
presets = JSON.parse(localStorage.getItem(presetsStorageKey));
if(null == presets)
presets = new Object();
var parentElement = document.querySelector('#presets-list');
parentElement.innerHTML = ""; //remove children
for (const presetName in presets) {
var wrapper = parentElement.appendChild(document.createElement('div'));
wrapper.className = 'preset-wrapper';
var loadPresetButton = wrapper.appendChild(document.createElement('button'));
loadPresetButton.className = 'preset-button ';
loadPresetButton.innerText = `[ ${presetName} ]`;
loadPresetButton.onclick = n=>restorePreset(presetName);
var deletePresetButton = wrapper.appendChild(document.createElement('button'));
deletePresetButton.className = 'preset-button button-delete';
deletePresetButton.innerText = `x`;
deletePresetButton.onclick = n=>deletePreset(presetName);
}
}