diff options
-rw-r--r-- | html/display.html | 99 | ||||
-rw-r--r-- | src/fs.json | 18 | ||||
-rw-r--r-- | src/jssh.js | 12 | ||||
-rw-r--r-- | src/window-utils.js | 159 |
4 files changed, 242 insertions, 46 deletions
diff --git a/html/display.html b/html/display.html index da955dd..b9cf718 100644 --- a/html/display.html +++ b/html/display.html @@ -90,6 +90,18 @@ cursor: ns-resize; } + table { + display: table; + } + + table tr { + display: table-cell; + } + + table tr td { + display: block; + } + .resize-e { position: absolute; right: -3px; @@ -300,7 +312,17 @@ position: absolute; padding-top: 3px; background-color: #c7c7c7; + overflow: hidden; + } + .fd-bottom { + width: 100%; + height: 26px; + background-color: #b1b1b1; + position: absolute; + bottom: 0; + overflow: hidden; + white-space: nowrap; } textarea { @@ -333,7 +355,8 @@ input:hover { cursor: text; } - button{ + + button { border-radius: 0px; background-color: #c1c1c1; } @@ -435,7 +458,7 @@ let temp = [] bar.innerHTML = "" for (let i = 0; i != windows.length; i++) { - bar.innerHTML += "<div style='left:" + last_left + ";' id='" + windows.item(i).id + "' class='bar-item'>" + windows.item(i).getAttribute("window-name") + "</div>" + bar.innerHTML += "<div style='left:" + last_left + ";' id='" + windows.item(i).id + "-bar' class='bar-item'>" + windows.item(i).getAttribute("window-name") + "</div>" temp.push({ left: last_left, id: windows.item(i).id, width: bar.children.item(bar.children.length - 1).clientWidth + 5 }) last_left += bar.children.item(bar.children.length - 1).clientWidth + 5 @@ -446,8 +469,9 @@ for (let i = 0; i != bar.children.length; i++) { let elemy = bar.children.item(i) for (let ii = 0; ii != windows.length; ii++) { - if (windows.item(ii).id == elemy.id) { + if (windows.item(ii).id + "-bar" == elemy.id) { //let px = 0, py = 0; + elemy.onmousedown = ((ev) => { for (let iii = 0; iii != windows.length; iii++) { windows.item(iii).style.zIndex = 0; @@ -501,44 +525,48 @@ let minx = 150; let miny = 150; function window_create(uid, name, content, options = {}) { - let lines = content.split("</br>").length - let a = '' - let size = (options.width != undefined && options.height != undefined) ? ("width:" + options.width + "px;height:" + options.height + "px;") : ("width:" + Math.max(document.body.clientWidth * .56, minx) + "px;height:" + Math.max(miny, document.body.clientHeight * .30) + "px;"); - let pos = (options.left != undefined && options.top != undefined) ? ("left:" + options.left + "px;top:" + options.top + "px;") : ("left:0px;top:0px;"); - a += "<div id='" + uid + "-root' class='window' style=\"" + size + pos + "position:absolute;\" window-name='" + name + "'>" - //console.log(document.getElementById(uid).attributes["window-name"].value) - a += "<div id='" + uid + "-head' class='head-border' window-name='" + name + "'> <div style='color:fdffff'>" + name + "</div>" - a += "<div id='" + uid + "-close' class='close-button' window-name='" + name + "'>" + `<svg draggable="false" xmlns="http://www.w3.org/2000/svg" style="position:absolute;left:-3px;top:0px;" xmlns:xlink="http://www.w3.org/1999/xlink" width="23px" height="20px" viewBox="0 0 23 20" version="1.1"> + let promise = new Promise((res, rej) => { + let lines = content.split("</br>").length + let a = '' + let size = (options.width != undefined && options.height != undefined) ? ("width:" + options.width + "px;height:" + options.height + "px;") : ("width:" + Math.max(document.body.clientWidth * .36, minx) + "px;height:" + Math.max(miny, document.body.clientHeight * .30) + "px;"); + let pos = (options.left != undefined && options.top != undefined) ? ("left:" + options.left + "px;top:" + options.top + "px;") : ("left:0px;top:0px;"); + a += "<div id='" + uid + "-root' class='window' style=\"" + size + pos + "position:absolute;\" window-name='" + name + "'>" + //console.log(document.getElementById(uid).attributes["window-name"].value) + a += "<div id='" + uid + "-head' class='head-border' window-name='" + name + "'> <div style='color:fdffff'>" + name + "</div>" + a += "<div id='" + uid + "-close' class='close-button' window-name='" + name + "'>" + `<svg draggable="false" xmlns="http://www.w3.org/2000/svg" style="position:absolute;left:-3px;top:0px;" xmlns:xlink="http://www.w3.org/1999/xlink" width="23px" height="20px" viewBox="0 0 23 20" version="1.1"> <g id="surface1"> <path style=" stroke:none;fill-rule:evenodd;fill:rgb(2.745098%,3.137255%,2.745098%);fill-opacity:1;" d="M 8.476562 6.042969 C 9.042969 6.042969 9.613281 6.042969 10.179688 6.042969 C 10.179688 6.332031 10.179688 6.625 10.179688 6.914062 C 10.464844 6.914062 10.746094 6.914062 11.03125 6.914062 C 11.03125 7.203125 11.03125 7.492188 11.03125 7.78125 C 11.597656 7.78125 12.167969 7.78125 12.734375 7.78125 C 12.734375 7.492188 12.734375 7.203125 12.734375 6.914062 C 13.019531 6.914062 13.304688 6.914062 13.585938 6.914062 C 13.585938 6.625 13.585938 6.332031 13.585938 6.042969 C 14.15625 6.042969 14.722656 6.042969 15.289062 6.042969 C 15.289062 6.332031 15.289062 6.625 15.289062 6.914062 C 15.007812 6.914062 14.722656 6.914062 14.4375 6.914062 C 14.4375 7.203125 14.4375 7.492188 14.4375 7.78125 C 14.15625 7.78125 13.871094 7.78125 13.585938 7.78125 C 13.585938 8.074219 13.585938 8.363281 13.585938 8.652344 C 13.304688 8.652344 13.019531 8.652344 12.734375 8.652344 C 12.734375 8.941406 12.734375 9.230469 12.734375 9.523438 C 13.019531 9.523438 13.304688 9.523438 13.585938 9.523438 C 13.585938 9.8125 13.585938 10.101562 13.585938 10.390625 C 13.871094 10.390625 14.15625 10.390625 14.4375 10.390625 C 14.4375 10.679688 14.4375 10.972656 14.4375 11.261719 C 14.722656 11.261719 15.007812 11.261719 15.289062 11.261719 C 15.289062 11.550781 15.289062 11.839844 15.289062 12.128906 C 14.722656 12.128906 14.15625 12.128906 13.585938 12.128906 C 13.585938 11.839844 13.585938 11.550781 13.585938 11.261719 C 13.304688 11.261719 13.019531 11.261719 12.734375 11.261719 C 12.734375 10.972656 12.734375 10.679688 12.734375 10.390625 C 12.167969 10.390625 11.597656 10.390625 11.03125 10.390625 C 11.03125 10.679688 11.03125 10.972656 11.03125 11.261719 C 10.746094 11.261719 10.464844 11.261719 10.179688 11.261719 C 10.179688 11.550781 10.179688 11.839844 10.179688 12.128906 C 9.613281 12.128906 9.042969 12.128906 8.476562 12.128906 C 8.476562 11.839844 8.476562 11.550781 8.476562 11.261719 C 8.761719 11.261719 9.042969 11.261719 9.328125 11.261719 C 9.328125 10.972656 9.328125 10.679688 9.328125 10.390625 C 9.613281 10.390625 9.894531 10.390625 10.179688 10.390625 C 10.179688 10.101562 10.179688 9.8125 10.179688 9.523438 C 10.464844 9.523438 10.746094 9.523438 11.03125 9.523438 C 11.03125 9.230469 11.03125 8.941406 11.03125 8.652344 C 10.746094 8.652344 10.464844 8.652344 10.179688 8.652344 C 10.179688 8.363281 10.179688 8.074219 10.179688 7.78125 C 9.894531 7.78125 9.613281 7.78125 9.328125 7.78125 C 9.328125 7.492188 9.328125 7.203125 9.328125 6.914062 C 9.042969 6.914062 8.761719 6.914062 8.476562 6.914062 C 8.476562 6.625 8.476562 6.332031 8.476562 6.042969 Z M 8.476562 6.042969 "/> </g> </svg></div></div>` - if (options.resize != false && options.resize != "false") { - a += "<div id='" + uid + "-resize-n' class='resize-n'></div>" - a += "<div id='" + uid + "-resize-s' class='resize-s'></div>" - a += "<div id='" + uid + "-resize-e' class='resize-e'></div>" - a += "<div id='" + uid + "-resize-w' class='resize-w'></div>" - } - a += "<div style='height:25px;'></div>" - a += "<div id='" + uid + "-content-root' class='content-root' style='overflow:scroll;height:calc(100% - 26px);width:100%'>" + if (options.resize != false && options.resize != "false") { + a += "<div id='" + uid + "-resize-n' class='resize-n'></div>" + a += "<div id='" + uid + "-resize-s' class='resize-s'></div>" + a += "<div id='" + uid + "-resize-e' class='resize-e'></div>" + a += "<div id='" + uid + "-resize-w' class='resize-w'></div>" + } + a += "<div style='height:25px;'></div>" + a += "<div id='" + uid + "-content-root' class='content-root' style='overflow:scroll;height:calc(100% - 26px);width:100%'>" - a += "<div id='" + uid + "-content-content' class='content-content'>" + content + "</div>" - if (options.scroll != false && options.scroll != "false") { - a += "<div id='" + uid + "-content-scrollbar' class='scrollbar'><div id='" + uid + "-content-scrollbar-point' class='scrollbar-point'></div>" + a += "<div id='" + uid + "-content-content' class='content-content'>" + content + "</div>" + if (options.scroll != false && options.scroll != "false") { + a += "<div id='" + uid + "-content-scrollbar' class='scrollbar'><div id='" + uid + "-content-scrollbar-point' class='scrollbar-point'></div>" + a += "</div>" + } a += "</div>" - } - a += "</div>" - if (options.resize != false && options.resize != "false") { - a += "<div id='" + uid + "-resize-ne' class='resize-ne'></div>" - a += "<div id='" + uid + "-resize-nw' class='resize-nw'></div>" - a += "<div id='" + uid + "-resize-sw' class='resize-sw'></div>" - a += "<div id='" + uid + "-resize-es' class='resize-es'></div>" - } - document.getElementById("root").innerHTML += a - //console.log(document.getElementById(uid + "-content-root").clientHeight / (document.getElementById(uid + "-content-content").clientHeight / document.getElementById(uid + "-content-root").clientHeight)) + if (options.resize != false && options.resize != "false") { + a += "<div id='" + uid + "-resize-ne' class='resize-ne'></div>" + a += "<div id='" + uid + "-resize-nw' class='resize-nw'></div>" + a += "<div id='" + uid + "-resize-sw' class='resize-sw'></div>" + a += "<div id='" + uid + "-resize-es' class='resize-es'></div>" + } + document.getElementById("root").innerHTML += a + //console.log(document.getElementById(uid + "-content-root").clientHeight / (document.getElementById(uid + "-content-content").clientHeight / document.getElementById(uid + "-content-root").clientHeight)) - //console.log(document.getElementById(uid + "-content-scrollbar-point")) - refresh_windows() + //console.log(document.getElementById(uid + "-content-scrollbar-point")) + refresh_windows() + res() + }) + return promise } function refresh_windows() { load_bar() @@ -873,7 +901,8 @@ async function main() { fs = await req('src/fs.json') - util.alert("test") + fd = await util.fd({ path: '/', filetype: '*' }) + console.log(fd) document.getElementById("bar-menu").onclick = ((ev) => { if (document.getElementById("bar-menu-root").style.display == "block") document.getElementById("bar-menu-root").style.display = "none" diff --git a/src/fs.json b/src/fs.json index b060939..2b93344 100644 --- a/src/fs.json +++ b/src/fs.json @@ -1,23 +1,35 @@ [ { + "name": "nya", + "perms": { "r": true }, + "dir": true, + "content": [] + }, + { + "name": "file", + "perms": { "r": true }, + "dir": false, + "content": "hi" + }, + { "name": "apps", "perms": { "r": true }, "dir": true, "content": [ { - "name": "notepad", + "name": "notepad.exe", "perms": { "r": true }, "dir": false, "content": "window Notepad <textarea onkeypress='auto_resize(this)' style='width:100%;overflow:visible;display:block;'></textarea>\nmeta icon src/img/notepad.png" }, { - "name": "cmd", + "name": "cmd.exe", "perms": { "r": true }, "dir": false, "content": "window cmd <div class='history' id='#_ID-history'></div><form autocomplete='off' onsubmit='exe_com(this);return false;'>λ <input id='#_ID-line' class='line' style='width:95%;' autofocus><input type='submit' style='display: none' /></form>\nmeta icon src/img/cmd.png" }, { - "name": "MineSweeper", + "name": "MineSweeper.exe", "perms": { "r": true }, "dir": false, "content": "window uwu nya\nmeta icon src/img/mine.png, resize false, left 250, top 250, width 144, height 210, scroll false\njs window.board#_ID_listeners = [];function lo#_ID_board() {let id = #_ID;let cont = document.getElementById(id + '-content-content');cont.innerHTML=`<div id='#_ID-board-head'><img id='#_ID-flags-1' style='padding-left:10px;' src='src/sprites/dig-0.png'><img id='#_ID-flags-2' src='src/sprites/dig-0.png'><img id='#_ID-flags-3' src='src/sprites/dig-0.png'><img id='#_ID-face' style='padding-left:10px;padding-right:10px;' src='src/sprites/smiley.png'><img id='#_ID-time-1' src='src/sprites/dig-0.png'><img id='#_ID-time-2' src='src/sprites/dig-0.png'><img id='#_ID-time-3' src='src/sprites/dig-0.png'></div>`;let width = 9; let height = 10;;let board = [];let score = 0;window.time_#_ID = 0;;for(let uwu of window.board#_ID_listeners){clearInterval(uwu);clearTimeout(uwu)};window.board#_ID_listeners = []; window.pause_#_ID=false;let bombs = 0;let max_bombs=9;for(let i = 0; i!=height;i++){let temp = [];for(let i = 0; i!=width;i++){if(Math.random() < 0.13 && bombs < max_bombs){temp.push(-1);bombs++;} else {temp.push(0);}};board.push(temp);};for(let i = 0; i!= board.length; i++){for(let ii = 0; ii!=board[i].length; ii++){if(board[i][ii]!=-1){board[i][ii] = (i!=0 ? board[i-1][ii]==-1 : 0) + (i!=0 && ii!=0 ? board[i-1][ii-1]==-1 : 0) + (ii!=0 ? board[i][ii-1]==-1 : 0) + (i!=height - 1 && ii!=0 ? board[i+1][ii-1]==-1 : 0) + (i!=height - 1 ? board[i+1][ii]==-1 : 0) + (i!=height - 1 && ii!=width - 1 ? board[i+1][ii+1]==-1 : 0) + (ii!=width - 1 ? board[i][ii+1]==-1 : 0) + (i!=0 && ii!=width - 1 ?board[i-1][ii+1]==-1 : 0);}}};let tbombs = (`00` + bombs.toString()).split(``);document.getElementById(`#_ID-flags-3`).src =`src/sprites/dig-${tbombs[tbombs.length -1]}.png`;document.getElementById(`#_ID-flags-2`).src =`src/sprites/dig-${tbombs[tbombs.length -2]}.png`;document.getElementById(`#_ID-flags-1`).src =`src/sprites/dig-${tbombs[tbombs.length -3]}.png`;for(let l in board){for(let ll in board[l]){cont.innerHTML+='<img id=\\'#_ID-board-'+l+'-'+ll+'\\' onclick=\\'if(this.src.includes(`space-flag.png`)){return};let board = '+JSON.stringify(board)+';if('+board[l][ll]+'==-1){for(let i in board){for(let ii in board[i]){document.getElementById(`#_ID-board-${i}-${ii}`).onclick = null;document.getElementById(`#_ID-board-${i}-${ii}`).oncontextmenu = null;if(board[i][ii]==-1){if(document.getElementById(`#_ID-board-${i}-${ii}`).src.includes(`space-flag`)){document.getElementById(`#_ID-board-${i}-${ii}`).src=`src/sprites/bomb-x.png`}else{document.getElementById(`#_ID-board-${i}-${ii}`).src=`src/sprites/space-bomb.png`;};};};};this.src=`src/sprites/bomb-ex.png`;document.getElementById(`#_ID-face`).src=`src/sprites/dead.png`;window.pause_#_ID = true;for(let i of window.board#_ID_listeners){clearInterval(i);clearTimeout(i)};window.board#_ID_listeners=[]; }else{(function rev(x,y){if(board[y][x]!=0){return};if(x>0){ for(let i = x-1; i>=0; i--){if(document.getElementById(`#_ID-board-${y}-${i}`).src.includes(`src/sprites/space-uncl.png`)==false){break};document.getElementById(`#_ID-board-${y}-${i}`).src=`src/sprites/space-${board[y][i]}.png`;if(board[y][i]!=0){break};rev(i,y); }; };; if(y>0){ for(let i = y-1; i>=0; i--){if(document.getElementById(`#_ID-board-${i}-${x}`).src.includes(`src/sprites/space-uncl.png`)==false){break};document.getElementById(`#_ID-board-${i}-${x}`).src=`src/sprites/space-${board[i][x]}.png`;if(board[i][x]!=0){break};rev(x,i); }; }; ;;; if(x<board[0].length-1){ for(let i = x+1; i<=board[0].length-1; i++){if(document.getElementById(`#_ID-board-${y}-${i}`).src.includes(`src/sprites/space-uncl.png`)==false){break};document.getElementById(`#_ID-board-${y}-${i}`).src=`src/sprites/space-${board[y][i]}.png`;if(board[y][i]!=0){break};rev(i,y); }; };; if(y<board.length-1){ for(let i = y+1; i<=board.length-1; i++){if(document.getElementById(`#_ID-board-${i}-${x}`).src.includes(`src/sprites/space-uncl.png`)==false){break};document.getElementById(`#_ID-board-${i}-${x}`).src=`src/sprites/space-${board[i][x]}.png`;if(board[i][x]!=0){break};rev(x,i); }; };; })('+ll+','+l+');document.getElementById(`#_ID-face`).src = `src/sprites/shock.png`;let t_ss = setTimeout(()=>{document.getElementById(`#_ID-face`).src = `src/sprites/smiley.png`;},700);window.board#_ID_listeners.push(t_ss); document.getElementById(this.id).src=`src/sprites/space-'+board[l][ll]+'.png`;};for(let b in board){for(let bb in board[b]){if(board[b][bb]!=-1&&(document.getElementById(`#_ID-board-${b}-${bb}`).src.includes(`space-uncl`)||document.getElementById(`#_ID-board-${b}-${bb}`).src.includes(`space-flag`))){console.log(b,bb,board[b][bb]);return false};}};for(let iii of window.board#_ID_listeners){clearInterval(iii);clearTimeout(iii)};window.board#_ID_listeners = []; document.getElementById(`#_ID-face`).src = `src/sprites/cool.png`;for(let z in board){for(let zz in board[z]){document.getElementById(`#_ID-board-${z}-${zz}`).onclick = null;document.getElementById(`#_ID-board-${z}-${zz}`).oncontextmenu = null;window.pause_#_ID = true;};}\\' oncontextmenu=\\'let b3 = document.getElementById(`#_ID-flags-3`).src; b3 = b3.split(`-`)[b3.split(`-`).length-1].split(`.`)[0];let b2 = document.getElementById(`#_ID-flags-2`).src; b2 = b2.split(`-`)[b2.split(`-`).length-1].split(`.`)[0];let b1 = document.getElementById(`#_ID-flags-1`).src; b1 = b1.split(`-`)[b1.split(`-`).length-1].split(`.`)[0];let bombs = parseInt(b1+b2+b3);if(this.src.includes(`space-flag.png`)){this.src=`src/sprites/space-uncl.png`;bombs++;}else{if(bombs>0){this.src=`src/sprites/space-flag.png`;bombs--;}};let tbombs = (`00` + bombs.toString().replace(/-/g,`0`)).split(``);document.getElementById(`#_ID-flags-3`).src =`src/sprites/dig-${tbombs[tbombs.length -1]}.png`;document.getElementById(`#_ID-flags-2`).src =`src/sprites/dig-${tbombs[tbombs.length -2]}.png`;document.getElementById(`#_ID-flags-1`).src =`src/sprites/dig-${tbombs[tbombs.length -3]}.png`;;return false;\\' src=\\'src/sprites/space-uncl.png\\'>'}}; document.getElementById(`#_ID-face`).onclick = () => {lo#_ID_board();for(let zz of window.board#_ID_listeners){clearTimeout(zz);clearInterval(zz);};window.board#_ID_listeners = [];}}lo#_ID_board();setInterval(function ughugh(){if(!window.pause_#_ID){try{window.time_#_ID+=1;let ttime = (`00` + window.time_#_ID.toString()).split(``);document.getElementById(`#_ID-time-3`).src =`src/sprites/dig-${ttime[ttime.length -1]}.png`;document.getElementById(`#_ID-time-2`).src =`src/sprites/dig-${ttime[ttime.length -2]}.png`;document.getElementById(`#_ID-time-1`).src =`src/sprites/dig-${ttime[ttime.length -3]}.png`}catch(e){}}},1000);" diff --git a/src/jssh.js b/src/jssh.js index 3a49b08..efbb78e 100644 --- a/src/jssh.js +++ b/src/jssh.js @@ -214,6 +214,18 @@ class jssh { break; } } + return id; + } + get_file(path) { + let zz = path.split("/"); + let ff = zz.splice(zz.length - 1, 1); + let ww = this.set_wd(zz.join("/")); + for (let f of ww) { + if (f.name == ff) { + //console.log(f); + return f; + } + } } ex(stdin = null) { let temp_working_dir = this.working_dir; diff --git a/src/window-utils.js b/src/window-utils.js index 7cdbd7c..2755878 100644 --- a/src/window-utils.js +++ b/src/window-utils.js @@ -1,9 +1,152 @@ let util = { - alert(inp){ - - window_create(document.getElementsByClassName("window").length, - (inp.title == undefined ? "Alert" : inp.title), - "<img src='./src/img/"+(inp.content == undefined ? "info" : inp.content) +".png'> <button>ok</button>"+ (inp.content == undefined ? "Alert" : inp.content), - {width:220,height:110,resize:false}) - } -}
\ No newline at end of file + async alert(inp) { + let promise = new Promise(async (res, rej) => { + bu = []; + if (inp.buttons == undefined) { + bu = ["ok", "no"]; + } else { + bu = inp.buttons; + } + let buttons = ""; + let i = document.getElementsByClassName("window").length; + for (let b of bu) { + buttons += + "<button id='" + + i + + "-content-button-" + + b + + "' style='padding-left:15px;padding-right:15px;margin-right:10px;text-align: center;'>" + + b + + "</button>"; + } + + await window_create( + i, + inp.title == undefined ? "Alert" : inp.title, + `<table><tr><td style='padding: 5px;'><img src='./src/img/${ + inp.type == undefined ? "info" : inp.type + }.png'></td></tr> + <tr > + <td style='padding: 5px;'>${ + inp.content == undefined ? "Alert" : inp.content + }</td> + <td style='padding: 5px;' >${buttons}</td> + </tr></table>`, + { width: 220, height: 110, resize: false } + ); + for (let b of bu) { + document.getElementById(i + "-content-button-" + b).onclick = () => { + res(b); + }; + } + }); + return promise; + }, + async fd(inp) { + let promise = new Promise(async (res, rej) => { + let i = document.getElementsByClassName("window").length; + let sel = []; + await window_create(i, "fs", ""); + function load() { + let ll = new jssh(fs, "/", i, "null", "null", window_create); + let tfs = ll.set_wd(ll.clean_path(inp.path)); + let files = ""; + for (let f of tfs) { + if (f.dir) { + files += + "<div id='" + + i + + "-id-name-" + + f.name + + "' style='height:55px;position:relative;width:48px;display:inline-block;padding:10px;'><img style='height:48px;width:48px;' src='src/img/folder.png'><div style='position:absolute;bottom:0;overflow-wrap: break-word; width:inherit;user-select:none;'>" + + f.name + + "</div></div>"; + } else { + files += + "<div id='" + + i + + "-id-name-" + + f.name + + "'style='height:55px;position:relative;width:48px;display:inline-block;padding:10px;'><img style='height:48px;width:48px;' src='src/img/notepad.png'><div style='position:absolute;bottom:0;overflow-wrap: break-word; width:inherit;user-select:none;'>" + + f.name + + "</div></div>"; + } + } + files += + "<div id='" + + i + + "-fd-bottom' class='fd-bottom' >file/directory name: <div style='display:inline-block;' id='" + + i + + "-fd-bottom-sel'>" + + sel.join(",") + + (sel.length == 0 ? "select a file!" : "") + + "</div>" + + "<button id='" + + i + + "-content-button-sub' style='padding-left:15px;padding-right:15px;top:0;text-align: center;display:inline-block;position:absolute;right:0;'>submit</button>" + + "</div>"; + document.getElementById(i + "-content-content").innerHTML = files; + for (let f of tfs) { + let tt = document.getElementById(i + "-id-name-" + f.name); + let dou = false; + tt.onclick = (ev) => { + if (dou) { + console.log(f, inp); + if (f.dir) { + inp.path += f.name; + } else { + if (f.name.includes(".exe")) + ll.ex_file(inp.path + "/" + f.name); + else { + if (inp.open_file == true || inp.open_file == undefined) { + let iii = ll.ex_file("/apps/notepad.exe"); + document.getElementById( + iii + "-content-content" + ).firstChild.value = ll.get_file( + inp.path + "/" + f.name + ).content; + } else { + return inp.path + "/" + f.name; + } + //console.log(); + } + } + load(); + dou = false; + } else { + dou = true; + + tt.style.backgroundColor = "blue"; + setTimeout(() => { + if (dou) { + if (ev.ctrlKey) { + if (sel.includes(f.name)) { + sel.splice(sel.indexOf(f.name), 1); + } else sel.push(f.name); + } else sel = [f.name]; + //sel = [f.name]; + document.getElementById(i + "-fd-bottom-sel").innerHTML = + sel.join(",") + (sel.length == 0 ? "select a file!" : ""); + for (let aa of tfs) { + let ttt = document.getElementById( + i + "-id-name-" + aa.name + ); + if (sel.includes(aa.name)) { + ttt.style.backgroundColor = "blue"; + } else { + ttt.style.backgroundColor = ""; + } + } + //load(); + dou = false; + } + }, 200); + } + }; + } + } + load(); + }); + return promise; + }, +}; |