Skip to content

Commit 20570e2

Browse files
save file
1 parent a87a42d commit 20570e2

File tree

1 file changed

+49
-37
lines changed

1 file changed

+49
-37
lines changed

utils/editors/html/auto-save/v2.0/auto-save-v2.0.html

Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77
<style>
88

99
:host
10-
{font-family:arial;display:inline-flex;align-items:center;
11-
}
12-
13-
check-box, #menu-root
10+
{font-family:arial;display:inline-flex;align-items:center}
11+
12+
check-box, .menu-root
1413
{display:flex}
1514

1615
.menu
17-
{display:flex;flex-direction:column;position:absolute}
18-
16+
{display:flex;flex-direction:column;position:absolute;
17+
left:0;top:35px;width:350px}
18+
1919
.menu [type=checkbox]
2020
{width:20px;height:20px;margin:0}
2121

@@ -37,26 +37,33 @@
3737

3838
<check-box id=autosave></check-box>
3939

40-
<div id=menu-root class=menu-root>
41-
<img id=menu-icon class=menu-icon>
42-
<div id=menu class=menu style='display:none;left:0;top:35px;width:350px'>
40+
<div class=menu-root>
41+
42+
<img class=menu-icon>
43+
44+
<div class=menu style='display:none'>
45+
4346
<div class=menu-title>
4447
save menu
4548
</div>
49+
4650
<div class=menu-item>
4751
<div class=menu-label>
4852
autosave
4953
</div>
50-
<input type=checkbox checked>
51-
<input value=300 style='width:60px'>
54+
<input id=timer-chk type=checkbox checked>
55+
<input id=timer-value value=300 style='width:60px'>
5256
</div>
57+
5358
<div id=trim class=menu-item>
5459
<div class=menu-label>
5560
trim on save
5661
</div>
5762
<input type=checkbox checked>
5863
</div>
64+
5965
</div>
66+
6067
</div>
6168

6269
</template>
@@ -94,11 +101,12 @@
94101

95102

96103
var savemenu;
97-
var savetimer = {};
98-
savetimer.timer = null;
99-
savetimer.chk = null;
100-
savetimer.time = null;
101-
savetimer.onclick = null;
104+
105+
var timer = {};
106+
timer.timer = null;
107+
timer.chk = null;
108+
timer.time = null;
109+
timer.onclick = null;
102110

103111

104112
//:
@@ -122,15 +130,15 @@
122130

123131
menu.add.style(shadow);
124132

125-
autosave = $(shadow,'#autosave');
133+
autosave = $(shadow,'#autosave');
126134

127-
savemenu = $(shadow,'.menu');
128-
$(shadow,'.menu-icon').onclick = menu.click(savemenu,false,false,savemenu_callback);
135+
savemenu = $(shadow,'.menu');
136+
$(shadow,'.menu-icon').onclick = menu.click(savemenu,savemenu_callback);
129137
menu.input.norm(savemenu);
130138

131-
savetimer.chk = $(savemenu,':scope>div:nth-of-type(2) [type=checkbox]');
132-
savetimer.time = $(savemenu,':scope>div:nth-of-type(2) input:not([type])');
133-
savetimer.chk.onclick = savetimer.onclick;
139+
timer.chk = $(savemenu,'#timer-chk'); //':scope>div:nth-of-type(2) [type=checkbox]');
140+
timer.chk.onclick = timer.onclick;
141+
timer.time = $(savemenu,'#timer-value'); //':scope>div:nth-of-type(2) input:not([type])');
134142

135143

136144
}//initdom
@@ -141,7 +149,7 @@
141149

142150

143151
function savemenu_kd(e){
144-
console.log(e.target);
152+
console.log(e.target);
145153
if(e.target.nodeName=='INPUT'){
146154
return;
147155
}
@@ -151,9 +159,10 @@
151159

152160

153161
function savemenu_callback(type){
154-
console.log('savemenu_callback',arguments);
162+
console.log('savemenu_callback',arguments);
155163
if(type=='show'){
156-
$(savemenu,':scope>div:nth-of-type(2) input:not([type])').focus();
164+
timer.time.focus();
165+
//$(savemenu,':scope>div:nth-of-type(2) input:not([type])').focus();
157166
keydown.add(savemenu_kd);
158167
}
159168
if(type=='hide'){
@@ -163,12 +172,12 @@
163172
}//savemenu_callback
164173

165174

166-
savetimer.onclick = function(){
175+
timer.onclick = function(){
167176
debug('savetimer.click');
168-
clearTimeout(savetimer.timer);
177+
clearTimeout(timer.timer);
169178

170-
if(savetimer.chk.checked){
171-
var value = savetimer.time.value;
179+
if(timer.chk.checked){
180+
var value = timer.time.value;
172181
value = Number(value);
173182
if(isNaN(value)){
174183
log.red('invalid autosave time, using 300s');
@@ -186,32 +195,34 @@
186195
debug('savetimer',value);
187196
save();
188197

189-
if(savetimer.chk.checked){
198+
if(timer.chk.checked){
190199
var ms = value*1000;
191200
setTimeout(fn,ms);
192201
}
193202

194203
}//fn
195204

196-
}//savetimer
205+
}//timer.onclick
197206

198207

199208
//:
200209

210+
201211
class checkbox extends HTMLElement {
202212

203213
constructor() {
204-
//console.log('checkbox-one');
214+
//console.log('checkbox-one');
205215
super();
206216

207217
var root = this;
208-
var shadow = host.shadowRoot;
209-
var template = $(host,'#check-box');
218+
var template = $(host,'template#check-box');
210219
var content = template.content;
211-
var shadow = root.attachShadow({mode:"open"});
220+
var shadow = root.attachShadow({mode:'open'});
212221
shadow.appendChild(content);
213222

214223

224+
225+
215226
var chk = shadow.querySelector('[type=checkbox]');
216227
chk.onchange = e=>{
217228

@@ -233,13 +244,14 @@
233244

234245
setTimeout(()=>{
235246

236-
var str = root.innerHTML.trim();
247+
var str = root.textContent.trim();
237248
if(str==''){
238-
root.innerHTML = root.id;
249+
root.textContent = root.id;
239250
}
240251

241252
},50);
242253

254+
243255
}//constructor
244256

245257
}//class

0 commit comments

Comments
 (0)