Skip to content

Commit 0bc608c

Browse files
save file
1 parent 58f80df commit 0bc608c

File tree

1 file changed

+101
-10
lines changed

1 file changed

+101
-10
lines changed

utils/editors/html-editor/v2.0/html-editor-v2.0.html

Lines changed: 101 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@
172172
var promise = ext.load.libs(
173173
'js/dom/$.js',
174174
'js/core/datatype.js',
175-
'js/dom/menumod/menumod.js',
175+
'js/dom/menumod/menumod.js.api',
176176
'js/dom/keydown/keydown.js',
177177
'js/debug/debug.js',
178178
);
@@ -237,6 +237,19 @@
237237

238238
.visually-hidden
239239
{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}
240+
241+
242+
.menu input
243+
{font-size:16px;padding:5px 10px}
244+
245+
.menu [type=checkbox]
246+
{width:20px;height:20px;margin:0}
247+
248+
.menu-item
249+
{gap:20px}
250+
251+
.menu-item .menu-label
252+
{width:120px;text-align:right}
240253

241254
</style>
242255

@@ -266,6 +279,22 @@ <h1 slot=seo-hdr class=visually-hidden>html editor</h1>
266279
<div id=save-menu-root class=menu-root>
267280
<img id=save-menu-icon class=menu-icon>
268281
<div id=save-menu class=menu style='display:none'>
282+
<div class=menu-title>
283+
save menu
284+
</div>
285+
<div class=menu-item>
286+
<div class=menu-label>
287+
autosave
288+
</div>
289+
<input type=checkbox>
290+
<input value=300 style='width:60px'>
291+
</div>
292+
<div id=trim class=menu-item>
293+
<div class=menu-label>
294+
trim on save
295+
</div>
296+
<input type=checkbox>
297+
</div>
269298
</div>
270299
</div>
271300
</div>
@@ -311,16 +340,22 @@ <h1 slot=seo-hdr class=visually-hidden>html editor</h1>
311340

312341

313342

314-
var slider = {};
343+
var slider = {};
315344

316-
var ui = {};
317-
ui.mode = 'vert';
345+
var ui = {};
346+
ui.mode = 'vert';
318347

348+
var savemenu;
349+
var savetimer = {};
350+
savetimer.timer = null;
351+
savetimer.chk = null;
352+
savetimer.time = null;
353+
savetimer.onclick = null;
319354

320355

321-
var btn = {};
322-
var on = {};
323-
var set = {};
356+
var btn = {};
357+
var on = {};
358+
var set = {};
324359

325360

326361

@@ -345,9 +380,14 @@ <h1 slot=seo-hdr class=visually-hidden>html editor</h1>
345380

346381
$(root,'#save').onclick = btn.save;
347382

348-
var card = $(root,'#save-root .menu');
349-
$(root,'.menu-icon').onclick = menu.click(card,false,false);
383+
savemenu = $(root,'#save-root .menu');
384+
$(root,'.menu-icon').onclick = menu.click(savemenu,false,false,savemenu_callback);
385+
menu.input.norm(savemenu);
350386

387+
savetimer.chk = $(savemenu,':scope>div:nth-of-type(2) [type=checkbox]');
388+
savetimer.time = $(savemenu,':scope>div:nth-of-type(2) input:not([type])');
389+
savetimer.chk.onclick = savetimer.onclick;
390+
351391
autosave = $(root,'#autosave');
352392

353393

@@ -393,6 +433,57 @@ <h1 slot=seo-hdr class=visually-hidden>html editor</h1>
393433
}//focus
394434

395435

436+
function savemenu_kd(e){
437+
console.log(e.target);
438+
if(e.target.nodeName=='INPUT'){
439+
return;
440+
}
441+
return false;
442+
443+
}//savemenu_kd
444+
445+
446+
function savemenu_callback(type){
447+
console.log('savemenu_callback',arguments);
448+
if(type=='show'){
449+
$(savemenu,':scope>div:nth-of-type(2) input:not([type])').focus();
450+
keydown.add(savemenu_kd);
451+
}
452+
if(type=='hide'){
453+
keydown.rem(savemenu_kd);
454+
}
455+
456+
}//savemenu_callback
457+
458+
459+
savetimer.onclick = function(){
460+
debug('savetimer.click');
461+
clearTimeout(savetimer.timer);
462+
463+
if(savetimer.chk.checked){
464+
var value = savetimer.time.value;
465+
value = Number(value);
466+
if(isNaN(value)){
467+
log.red('invalid autosave time, using 300s');
468+
value = 300;
469+
}
470+
fn();
471+
}
472+
473+
474+
function fn(){
475+
debug('savetimer',value);
476+
btn.save();
477+
if(savetimer.chk.checked){
478+
var ms = value*1000;
479+
setTimeout(fn,ms);
480+
}
481+
482+
}//fn
483+
484+
}//savetimer
485+
486+
396487
//:
397488

398489

@@ -507,7 +598,7 @@ <h1 slot=seo-hdr class=visually-hidden>html editor</h1>
507598
editor.filename(file);
508599
editor.filename.save.hide();
509600
filemod.cur = file;
510-
var title = file.name||file.filename;
601+
var title = file.name||file.filename;
511602
set.title(title);
512603
set.favicon(icon.def);
513604
}

0 commit comments

Comments
 (0)