| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709 |
- <!DOCTYPE html>
- <html>
- <head>
- <title>File Manager</title>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0 user-scalable=no">
- <link rel="stylesheet" href="../../script/semantic/semantic.min.css">
- <link rel="icon" type="image/png" href="./img/small_icon.png">
- <link rel="manifest" crossorigin="use-credentials" href="manifest.json">
- <script type="text/javascript" src="../../script/jquery.min.js"></script>
- <script type="text/javascript" src="../../script/semantic/semantic.min.js"></script>
- <script type="text/javascript" src="../../script/ao_module.js"></script>
- <script type="text/javascript" src="../../script/applocale.js"></script>
- <script type="text/javascript" src="../../script/chunkupload.js"></script>
- <link rel="stylesheet" href="../../script/ao.css">
- <!-- Design tokens and components shared with the File Selector. Loaded
- before file_explorer.css so app rules can override them. -->
- <link rel="stylesheet" href="shared/fs-theme.css">
- <link rel="stylesheet" href="shared/fs-components.css">
- <link rel="stylesheet" href="file_explorer.css">
- <script>
- window.mobilecheck = function() {
- var check = false;
- (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
- return check;
- };
- </script>
- </head>
- <body class="whiteTheme">
- <div id="navibar" class="navibar">
- <!--
- Classic file operation toolbar. Kept for users who prefer it and
- shown by default; the preference lives server side under
- file_explorer/oprbar so it follows the user between browsers.
- Ignored on mobile, where the layout is different anyway.
- -->
- <div id="fileOprBar" class="fileOprBar">
- <button class="fileOprBtn" title="Open" onclick="openViaButton();" data-opr="open"><img class="opricon" src="img/opr/open.svg"><p class="oprtxt" locale="fileopr/Open">Open</p></button>
- <button class="fileOprBtn" title="Copy" onclick="copy();" data-opr="copy"><img class="opricon" src="img/opr/copy.svg"><p class="oprtxt" locale="fileopr/Copy">Copy</p></button>
- <button class="fileOprBtn" title="Paste" onclick="paste();" data-opr="paste"><img class="opricon" src="img/opr/paste.svg"><p class="oprtxt" locale="fileopr/Paste">Paste</p></button>
- <div class="fileoprGroupDivider">
- <button class="fileoprSmallBtn" title="Open with" onclick="openWith();" data-opr="openwith"><i class="external icon"></i> <span locale="fileopr/Open with">Open With</span></button><br>
- <button class="fileoprSmallBtn" title="Cut" onclick="cut();" data-opr="cut"><i class="blue cut icon"></i> <span locale="fileopr/Cut">Cut</span></button><br>
- <button class="fileoprSmallBtn" title="Rename" onclick="rename();" data-opr="rename"><i class="teal i cursor icon"></i> <span locale="fileopr/Rename">Rename</span></button>
- </div>
- <button class="fileOprBtn" title="Upload" onclick="upload(); exitMultiSelectMode();" data-opr="upload"><img class="opricon" src="img/opr/upload.svg"><p class="oprtxt" locale="fileopr/Upload">Upload</p></button>
- <button class="fileOprBtn" title="Download" onclick="downloadFile(); exitMultiSelectMode();" data-opr="download"><img class="opricon" src="img/opr/download.svg"><p class="oprtxt" locale="fileopr/Download">Download</p></button>
- <div class="fileoprGroupDivider"></div>
- <button class="twolines fileOprBtn" title="New Folder" onclick="newFolder(); exitMultiSelectMode();" data-opr="newfolder"><img class="opricon" src="img/opr/new_folder.svg"><p class="oprtxt" locale="fileopr/New Folder">New<br>Folder</p></button>
- <div class="fileoprGroupDivider">
- <button class="fileoprSmallBtn" title="New File" onclick="newfile();" data-opr="newfile"><i class="file outline icon"></i> <span locale="fileopr/New File">New File</span></button><br>
- <button class="fileoprSmallBtn" title="Create Zip" onclick="zipFile();" data-opr="zip"><i class="brown zip file icon"></i> <span locale="fileopr/Create Zip">Create Zip</span></button><br>
- <button class="fileoprSmallBtn" title="Unzip Here" onclick="unzipHere();" data-opr="unzip"><i class="inbox icon"></i> <span locale="fileopr/Unzip Here">Unzip Here</span></button><br>
- </div>
- <div class="fileoprGroupDivider">
- <button class="fileoprSmallBtn" title="Refresh" onclick="refreshList();" data-opr="refresh"><i class="green refresh icon"></i> <span locale="fileopr/Refresh">Refresh</span></button><br>
- <button class="fileoprSmallBtn" title="Home" onclick="openHomeDir();" data-opr="home"><i class="home icon"></i> <span locale="fileopr/Home">Home</span></button><br>
- <button class="fileoprSmallBtn" title="File Info" onclick="showFileProperties();" data-opr="fileinfo"><i class="blue info circle icon"></i> <span locale="fileopr/File Info">File Info</span></button><br>
- </div>
- <button class="fileOprBtn" title="Delete" onclick="deleteFile();" data-opr="delete"><img class="opricon" src="img/opr/delete.svg"><p class="oprtxt" locale="fileopr/Delete">Delete</p></button>
- <button class="fileOprBtn" title="Share File" onclick="shareFile();" data-opr="share"><img class="opricon" src="img/opr/share.svg"><p class="oprtxt" locale="fileopr/Share">Share</p></button>
- </div>
- <div class="fmNav">
- <div class="fmNavBtns">
- <button id="sidebarToggleBtn" class="fsIconBtn" title="Toggle Folder List" onclick="toggleSidebar();"><span data-fsicon="menu"></span></button>
- <button id="backbtn" class="fsIconBtn" title="Back" onclick="previosPath();"><span data-fsicon="back"></span></button>
- <button id="fwdbtn" class="fsIconBtn" title="Forward" onclick="forwardPath();"><span data-fsicon="forward"></span></button>
- <button id="ppbtn" class="fsIconBtn" title="Parent Folder" onclick="parentDir();"><span data-fsicon="up"></span></button>
- <button id="refreshbtn" class="fsIconBtn" title="Refresh" onclick="refreshList();"><span data-fsicon="refresh"></span></button>
- </div>
- <!-- Breadcrumb. Clicking the empty area switches it to a text field. -->
- <!-- Sort menu. Same shell as the overflow menu; the active mode
- carries the tick in the icon column on the left. -->
- <div class="fsMenu fmSortMenu" id="fmSortMenu">
- <div class="fsMenuHeader" locale="menu/sort/title">Sort items by</div>
- <div class="fsMenuItem fmSortOption" data-sort="default" onclick="setSortMode('default');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/asc">Name (A to Z)</span></div>
- <div class="fsMenuItem fmSortOption" data-sort="reverse" onclick="setSortMode('reverse');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/desc">Name (Z to A)</span></div>
- <div class="fsMenuItem fmSortOption" data-sort="smallToLarge" onclick="setSortMode('smallToLarge');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/small">Size (Smallest)</span></div>
- <div class="fsMenuItem fmSortOption" data-sort="largeToSmall" onclick="setSortMode('largeToSmall');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/large">Size (Largest)</span></div>
- <div class="fsMenuItem fmSortOption" data-sort="mostRecent" onclick="setSortMode('mostRecent');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/mostrecent">Date (Newest)</span></div>
- <div class="fsMenuItem fmSortOption" data-sort="leastRecent" onclick="setSortMode('leastRecent');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/leastrecent">Date (Oldest)</span></div>
- <div class="fsMenuItem fmSortOption" data-sort="fileTypeAsce" onclick="setSortMode('fileTypeAsce');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/typeAsc">Type (A to Z)</span></div>
- <div class="fsMenuItem fmSortOption" data-sort="fileTypeDesc" onclick="setSortMode('fileTypeDesc');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/typeDes">Type (Z to A)</span></div>
- <div class="fsMenuItem fmSortOption" data-sort="smart" onclick="setSortMode('smart');"><span class="fsMenuIcon fmSortCheck" data-fsicon="check"></span><span locale="menu/sort/smart">Smart</span></div>
- </div>
- <div class="fsPill fmPathbar" id="fmPathbar" onclick="showEditCurrentPathInput(event);">
- <button class="fmPathHome" title="Home" onclick="event.stopPropagation(); openHomeDir();"><span data-fsicon="home"></span></button>
- <div id="pathDisplayField" class="ui breadcrumb addressText pathDisplay">
- <div class="section selectable">user</div>
- <div class="divider">:/</div>
- <div class="section selectable">Desktop</div>
- </div>
- <div id="pathInputField" class="fmPathInput" style="display:none;">
- <input type="text" placeholder="Type a path and press enter" onkeydown="handleOpenPathKeydown(event);">
- <button class="fsIconBtn" title="Open" onclick="event.stopPropagation(); openEnteredPath(this);"><span data-fsicon="check"></span></button>
- </div>
- </div>
- <div class="fsPill fmSearch">
- <input autocomplete="off" id="searchInput" type="text" placeholder="Search" onkeydown="handleSearchFromPill(event);">
- <button class="fmCaseBtn" title="Case Sensitive" onclick="toggleCaseSensitive(this);">Aa</button>
- <span class="fmSearchIcon" data-fsicon="search"></span>
- </div>
-
- <!-- <div class="fsViewToggle fmViewToggle">
- <button class="videmode" mode="grid" title="Block View" onclick="changeViewMode(this);"><span data-fsicon="viewGrid"></span></button>
- <button class="videmode" mode="list" title="List View" onclick="changeViewMode(this);"><span data-fsicon="viewList"></span></button>
- <button class="videmode" mode="details" title="Detail View" onclick="changeViewMode(this);"><span data-fsicon="viewDetails"></span></button>
- </div>-->
- <button id="fmSortBtn" class="fsMoreBtn" title="Sort" onclick="toggleSortMenu(event);"><span data-fsicon="sort"></span></button>
- <button id="fmMoreBtn" class="fsMoreBtn" title="More Options" onclick="toggleFileOprMenu(event);"><span data-fsicon="more"></span></button>
- <!--
- Everything the old icon strip used to hold. The context menu
- covers per-item actions; this covers the rest.
- -->
- <div class="fsMenu fmMoreMenu" id="fmMoreMenu">
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(openViaButton);" data-opr="open"><span class="fsMenuIcon" data-fsicon="open"></span><span locale="fileopr/Open">Open</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(openWith);" data-opr="openwith"><span class="fsMenuIcon" data-fsicon="openWith"></span><span locale="fileopr/Open with">Open With</span></div>
- <div class="fsMenuSep"></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(copy);" data-opr="copy"><span class="fsMenuIcon" data-fsicon="copy"></span><span locale="fileopr/Copy">Copy</span><span class="fsMenuShortcut">Ctrl + C</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(cut);" data-opr="cut"><span class="fsMenuIcon" data-fsicon="cut"></span><span locale="fileopr/Cut">Cut</span><span class="fsMenuShortcut">Ctrl + X</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(paste);" data-opr="paste"><span class="fsMenuIcon" data-fsicon="paste"></span><span locale="fileopr/Paste">Paste</span><span class="fsMenuShortcut">Ctrl + V</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(rename);" data-opr="rename"><span class="fsMenuIcon" data-fsicon="rename"></span><span locale="fileopr/Rename">Rename</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(deleteFile);" data-opr="delete"><span class="fsMenuIcon" data-fsicon="trash"></span><span locale="fileopr/Delete">Delete</span><span class="fsMenuShortcut">Del</span></div>
- <div class="fsMenuSep"></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(upload);" data-opr="upload"><span class="fsMenuIcon" data-fsicon="upload"></span><span locale="fileopr/Upload">Upload</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(downloadFile);" data-opr="download"><span class="fsMenuIcon" data-fsicon="download"></span><span locale="fileopr/Download">Download</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(shareFile);" data-opr="share"><span class="fsMenuIcon" data-fsicon="share"></span><span locale="fileopr/Share">Share</span></div>
- <div class="fsMenuSep"></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(newFolder);" data-opr="newfolder"><span class="fsMenuIcon" data-fsicon="newFolder"></span><span locale="fileopr/New Folder">New Folder</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(newfile);" data-opr="newfile"><span class="fsMenuIcon" data-fsicon="newFile"></span><span locale="fileopr/New File">New File</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(zipFile);" data-opr="zip"><span class="fsMenuIcon" data-fsicon="zip"></span><span locale="fileopr/Create Zip">Create Zip</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(unzipHere);" data-opr="unzip"><span class="fsMenuIcon" data-fsicon="unzip"></span><span locale="fileopr/Unzip Here">Unzip Here</span></div>
- <div class="fsMenuSep"></div>
- <div class="fsMenuItem fmMobileOnly" id="fmMultiSelectItem" onclick="toggleMobileMultiSelect();"><span class="fsMenuIcon" data-fsicon="selectAll"></span><span locale="fileopr/Multi Select">Multi-select</span><span class="fsMenuCheck" data-fsicon="check"></span></div>
- <div class="fsMenuItem" onclick="runFileOpr(selectAll);"><span class="fsMenuIcon" data-fsicon="selectAll"></span><span locale="fileopr/Select All">Select All</span><span class="fsMenuShortcut">Ctrl + A</span></div>
- <div class="fsMenuItem" onclick="runFileOpr(clearSelection);"><span class="fsMenuIcon" data-fsicon="clearSel"></span><span locale="fileopr/Clear Select">Clear Selection</span></div>
- <div class="fsMenuItem fmDupOfToolbar" onclick="runFileOpr(showFileProperties);" data-opr="fileinfo"><span class="fsMenuIcon" data-fsicon="info"></span><span locale="fileopr/File Info">File Info</span></div>
- <div class="fsMenuSep"></div>
- <div class="fsMenuItem" onclick="runFileOpr(toggleDarkTheme);"><span class="fsMenuIcon" data-fsicon="moon"></span><span locale="fileopr/Dark Theme">Dark Theme</span></div>
- <div class="fsMenuSep fmDupSep"></div>
- <div class="fsMenuItem" id="fmHiddenToggle" onclick="toggleHiddenFiles();"><span locale="fileopr/Hidden Files">Show Hidden Files</span><span class="fsMenuCheck" data-fsicon="check"></span></div>
- <div class="fsMenuItem" id="fmToolbarToggle" onclick="toggleFileOprBar();"><span locale="fileopr/Toolbar">Operation Toolbar</span><span class="fsMenuCheck" data-fsicon="check"></span></div>
- </div>
- </div>
- </div>
-
- <div id="mainWindow">
- <div id="directorySidebar">
- <div class="fsSideTitle" locale="sidebar/quickaccess">Quick Access</div>
- <div id="userroot" class="fmSideGroup"></div>
- <div class="fsSideTitle" locale="sidebar/devices">Devices</div>
- <div id="storageroot" class="fmSideGroup"></div>
- </div>
- <!-- Drag handles between the three panes. Desktop only; splitter.js
- leaves them hidden on the touch layout. -->
- <div class="fmSplitter" id="fmSidebarSplitter" title="Resize"></div>
- <div id="folderView" ondrop="drop(event)" ondragover="allowDrop(event)">
- <!--
- Sortable column header for the details view. It lives outside
- #folderList / #fileList because those are hidden individually
- when empty, and the header must stay visible either way.
- -->
- <div id="fmListHeader" style="display:none;"></div>
- <div id="folderList" class="fileviewList">
- </div>
- <div id="fileList" class="fileviewList">
- </div>
- <br>
- </div>
- <div class="fmSplitter" id="fmPropsSplitter" title="Resize" style="display:none;"></div>
- <div id="propertiesView" class="small" style="display:none;">
- <div class="preview" style="margin-top: 0.4em;">
- <img class="ui fluid image" >
- </div>
- <h3 class="ui header" style="margin-top: 0.4em;">
- <span class="filename" style="word-break: break-all;" locale="sidebar/default/nofileselected">No File Selected</span>
- <div class="sub header vpath" style="word-break: break-all;" locale="sidebar/default/instruction">Select a file to view file properties</div>
- </h3>
- <table class="ui very basic table">
- <tbody class="propertiesTable">
-
- </tbody>
- </table>
- <div style="height: 34px;">
- <div class="ui right floated buttons">
- <button style="min-width: 2.5em;" title="Share File" class="ui basic icon button shareBtn" onclick="shareFile();"><i class="share alternate icon"></i></button>
- <button style="min-width: 2.5em;" title="Expand Properties Sidebar" class="ui basic icon button sizeToggle" onclick="togglePreviewWindowSize();"><i class="expand icon"></i></button>
- </div>
- </div>
- </div>
- </div>
- <!-- Status bar: selection summary, tile zoom and view controls -->
- <div id="fmStatusBar">
- <span id="selectInfo"></span>
- <span id="fmSelectionSize"></span>
- <div class="fmStatusSpacer"></div>
- <div id="fmZoom" title="Thumbnail Size">
- <span class="fmZoomIcon" data-fsicon="viewGrid"></span>
- <input type="range" id="fmZoomSlider" min="100" max="170" step="10" value="170" oninput="setGridZoom(this.value);">
- </div>
- <div class="fsViewToggle fmStatusToggle">
- <button class="videmode" mode="grid" title="Block View" onclick="changeViewMode(this);"><span data-fsicon="viewGrid"></span></button>
- <button class="videmode" mode="list" title="List View" onclick="changeViewMode(this);"><span data-fsicon="viewList"></span></button>
- <button class="videmode" mode="details" title="Detail View" onclick="changeViewMode(this);"><span data-fsicon="viewDetails"></span></button>
- </div>
- <!-- Collapsed form of the transfer panel. Shown only while the list
- has tasks; uploadui.js drives its state. -->
- <button id="fmUploadListBtn" class="fmStatusBtn" title="Upload List" onclick="toggleUploadPanel();" style="display:none;"><span data-fsicon="cloudUpload"></span></button>
- <button id="togglePropertiesViewBtn" class="fmStatusBtn" title="Show Properties" onclick="togglePropertiesView(this);"><span data-fsicon="sidePanel"></span></button>
- </div>
- <!-- Other popup windows -->
- <div class="popupWrapper"></div>
- <!-- Overwrite Selection Box-->
- <div id="overwriteModeSelection" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="paste icon"></i> <span locale="opr/overwrite/title">Replace, Keep or Skip Files</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <small style="font-size:80%;"><span locale="opr/overwrite/copying">Copying</span> <span class="owm-fc"></span> <span locale="opr/overwrite/files">files from</span> <span class="owm-srcdir"></span> <span locale="opr/overwrite/to">to</span> <span class="owm-destdir"></span></small>
- <p><span locale="opr/overwrite/dest">The destination has </span><span class="owm-fc"></span> <span locale="opr/overwrite/samename">files with the same names.</span></p>
- <div class="popupbuttons allowHover primary" onclick="changeOverwriteRule(0,true);">
- <i class="checkmark icon"></i> <span locale="opr/overwrite/replace">Replace the files in the destination</span>
- </div>
- <div class="popupbuttons allowHover" onclick="changeOverwriteRule(1,true);">
- <i class="reply icon"></i> <span locale="opr/overwrite/skip">Skip these files</span>
- </div>
- <div class="popupbuttons allowHover" onclick="changeOverwriteRule(2,true);">
- <i class="undo icon"></i> <span locale="opr/overwrite/keep">Rename and keep the files</span>
- </div>
- </div>
- </div>
- <!-- Force delete confirmation box -->
- <div id="forceDeleteConfirmBox" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="trash icon"></i> <span locale="opr/pre-remove/title">Permanently Remove Files</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p locale="opr/pre-remove/questions">Are you sure you want to remove these files <u>permanently?</u><br>This action is <u>irreversible</u>.</p>
- <div class="ui list deleteFilelist" style="max-height:350px;overflow-y:auto; ">
- </div>
- <div class="popupbuttons allowHover negative" onclick="forceDelete(true);">
- <i class="trash icon"></i> <span locale="opr/pre-remove/confirm">Confirm</span>
- </div>
- <div class="popupbuttons allowHover" onclick="cancelForceDelete();">
- <i class="remove icon"></i> <span locale="opr/pre-remove/cancel">Cancel</span>
- </div>
- </div>
- </div>
- <!-- Delete confirm box -->
- <div id="deleteConfirmBox" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="recycle icon"></i> <span locale="opr/remove/title">Move files to Trash Bin</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p locale="opr/remove/question">Are you sure you want to move these files to trash bin?</p>
- <div class="ui list deleteFilelist" style="max-height:350px;overflow-y:auto; ">
- </div>
- <div class="popupbuttons allowHover primary" onclick="deleteFile(true);">
- <i class="recycle icon"></i> <span locale="opr/remove/confirm">Move to Trash</span>
- </div>
- <div class="popupbuttons allowHover negative" onclick="hideAllPopupWindows(); forceDelete();">
- <i class="trash icon"></i> <span locale="opr/pre-remove/title">Delete Permanently</span>
- </div>
- <div class="popupbuttons allowHover" onclick="cancelDelete(); ">
- <i class="remove icon"></i> <span locale="opr/remove/cancel">Cancel</span>
- </div>
- </div>
- </div>
- <!-- Rename tool box -->
- <div id="renameBox" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="text cursor icon"></i> <span locale="opr/rename/title">Rename Files</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p locale="opr/rename/instruction">Enter the new filename for renaming. </p>
- <p class="multifileWarning"><i class="notice icon"></i> Other files will be named as file(#)</p>
- <div class="ui left icon small fluid input" style="margin-bottom:12px;">
- <input type="text" class="orgfn" placeholder="Original Filename" readonly="true">
- <i class="minus square icon" style="color:rgb(122, 176, 247)"></i>
- </div>
- <div class="ui left icon small fluid input" style="margin-bottom:12px;">
- <input type="text" class="newfn" placeholder="New Filename" onkeydown="handleEnterKeyDown(event, function(){confirmRename(true);})">
- <i class="add square icon" style="color:rgb(122, 176, 247)"></i>
- </div>
- <div class="popupbuttons allowHover primary" onclick="confirmRename(true);";>
- <i class="checkmark icon"></i> <span locale="opr/rename/ok">OK</span>
- </div>
- <div class="popupbuttons allowHover" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i> <span locale="opr/rename/cancel">Cancel</span>
- </div>
- </div>
- </div>
- <!-- New File Dialog-->
- <div id="newFile" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="add icon"></i> <span locale="opr/newfile/title">New File</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p locale="opr/newfile/instruction">Select a type of file to be created.</p>
- <div class="newfilelist" style="max-height:18em; overflow-y:scroll">
- <div class="item newFileFormat" ext="php">No Item</div>
- </div>
- <p locale="opr/newfile/newempty">Or create an empty file with given filename:</p>
- <div class="ui left icon small fluid input" style="margin-bottom:12px;">
- <input id="createNewFileName" type="text" placeholder="New Filename" onkeydown="handleEnterKeyDown(event, confirmNewFile);">
- <i class="add square icon" style="color:rgb(122, 176, 247)"></i>
- </div>
- <p class="duplicateWarning" style="color:#CE5F58; display:none;"><i class="caution sign icon"></i> The given filename already exist.</p>
- <div class="popupbuttons allowHover primary" onclick="confirmNewFile();";>
- <i class="add icon"></i> <span locale="opr/newfile/create">Create</span>
- </div>
- <div class="popupbuttons allowHover" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i> <span locale="opr/newfile/cancel">Cancel</span>
- </div>
- </div>
- </div>
- <!-- New Folder Dialog-->
- <div id="newFolder" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="folder icon"></i> <span locale="opr/newfolder/title">New Folder</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p locale="opr/newfolder/desc">Enter the new folder name to be created.</p>
- <div class="ui left icon small fluid input" style="margin-bottom:12px;">
- <input id="createNewFolder" type="text" placeholder="New Folder Name" onkeydown="handleEnterKeyDown(event, function(){newFolder(true);});">
- <i class="add square icon" style="color:rgb(122, 176, 247)"></i>
- </div>
- <p class="duplicateWarning" style="color:#CE5F58; display:none;"><i class="caution sign icon"></i> <span locale="opr/newfolder/alreadyExists">The given folder already exist.</span></p>
- <div class="popupbuttons allowHover primary" onclick="newFolder(true);";>
- <i class="add icon"></i> <span locale="opr/newfolder/create">Create</span>
- </div>
- <div class="popupbuttons allowHover" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i> <span locale="opr/newfolder/cancel">Cancel</span>
- </div>
- </div>
- </div>
- <!-- Share File Dialog-->
- <div id="shareFile" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="external icon"></i> <span locale="opr/share/title">Share File</span>
- <div class="popupcloser" onclick="hideShare();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div>
- <iframe id="shareFileEmbedded" style="border: 0px solid transparent; width: 100%; height: 70vh;" allowtransparency="true">
- </iframe>
- </div>
- <div style="padding:12px;">
- <div class="ui divider"></div>
- <div id="sharingRemoveBtn" class="popupbuttons negative allowHover" onclick="removeSharing()">
- <i class="remove icon"></i> <span locale="opr/share/remove">Remove Sharing</span>
- </div>
- <div class="popupbuttons allowHover" onclick="hideShare();">
- <i class="checkmark icon"></i> <span locale="opr/share/ok">OK</span>
- </div>
- </div>
- </div>
- <!-- Open With Dialog-->
- <div id="openWith" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="external icon"></i> <span locale="opr/openwith/title">Open File With</span>
- <div class="popupcloser desktopOnly" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p locale="opr/openwith/desc">Select a module from the list below:</p>
- <div id="openWithModuleList">
- <div class="openWithSectionLabel" id="openWithSuggestedLabel" locale="opr/openwith/suggested">Suggested WebApps</div>
- <div id="openWithSuggestedList">
- <div class="item">
- <div class="content">
- <div class="header" locale="opr/openwith/loading">Loading...</div>
- </div>
- </div>
- </div>
- <div class="openWithToggleRow" id="openWithToggleRow" style="display:none;" onclick="toggleOpenWithOtherModules();">
- <i class="caret right icon" id="openWithToggleIcon"></i>
- <span id="openWithToggleLabel" locale="opr/openwith/showAll">Other WebApps...</span>
- </div>
- <div id="openWithOtherList" style="display:none;"></div>
- </div>
- <div class="openWithModule popupbuttons allowHover primary" onclick="openWithSelectedModule(this);";>
- <i class="external icon"></i> <span locale="opr/openwith/openWithWebApp">Open with Selected Module</span>
- </div>
- <div class="openWithModule popupbuttons allowHover" onclick="openFileWithModuleInNewTab(this);">
- <i class="add icon"></i> <span locale="opr/openwith/openWithWebAppInNewWindow">Open in new tab</span>
- </div>
- <div class="popupbuttons allowHover vdonly" onclick="openRawFileInFloatWindow(this);">
- <i class="window restore outline icon"></i> <span locale="opr/openwith/openInNewWindow">Open File directly in floatWindow</span>
- </div>
- <div class="popupbuttons allowHover mobileOnly" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i> <span locale="opr/openwith/cancel">Cancel</span>
- </div>
- </div>
- </div>
- <!-- Context Menu -->
- <div id="contextmenu" class="contextmenu" style="min-width:250px;">
- <div class="item" onclick="openViaButton();">
- <span locale="contextmenu/open">Open</span>
- </div>
- <div class="item fileonly" onclick="openWith();">
- <span locale="contextmenu/openWith">Open With</span> <i class="external icon"></i>
- </div>
- <div class="item folderonly" onclick="openSelectedFolderInNewWindow();">
- <span locale="contextmenu/openNewWindow">Open In New Window</span> <i class="external icon"></i>
- </div>
- <!-- This is the vroot alternative new windows-->
- <div class="item vrootonly" onclick="openSelectedVroot();">
- <span locale="contextmenu/openNewWindowVroot">Open In New Window</span> <i class="external icon"></i>
- </div>
- <div class="item shareonly" onclick="openFileLocation();">
- <span locale="contextmenu/openFileLocation">Open File Location</span> <i class="folder outline icon"></i>
- </div>
- <div class="item singleObjectOnlyHide" onclick="shareFile();">
- <span locale="contextmenu/Share">Share</span> <i class="share alternate icon"></i>
- </div>
- <div class="item mobileonly" onclick="toggleCtrl();">
- <span locale="contextmenu/MuitSelect">Multi-select</span> <i class="mouse pointer icon"></i>
- </div>
- <div class="item hasHotkey" onclick="copy();">
- <span locale="contextmenu/copy">Copy</span> <span class="description">Ctrl + C</span>
- </div>
- <div class="item allowNoSelection hasHotkey" onclick="paste();">
- <span locale="contextmenu/paste">Paste</span> <span class="description">Ctrl + V</span>
- </div>
- <div class="item hasHotkey" onclick="cut();">
- <span locale="contextmenu/cut">Cut</span> <span class="description">Ctrl + X</span>
- </div>
- <div class="divider vroothide noSelectionOnly"></div>
- <div class="item noSelectionOnly" onclick="newfile();">
- <span locale="contextmenu/newFile">New File</span> <i class="file outline icon"></i>
- </div>
- <div class="item noSelectionOnly" onclick="newFolder();">
- <span locale="contextmenu/newFolder">New Folder</span> <i class="folder outline icon"></i>
- </div>
- <div class="divider vroothide"></div>
- <div class="item noSelectionOnly" onclick="upload();">
- <span locale="contextmenu/upload">Upload</span> <i class="upload icon"></i>
- </div>
- <div class="item" onclick="zipFile();">
- <span locale="contextmenu/zip">Create Zip</span>
- </div>
- <div class="item zipFileOnly" onclick="unzipHere();">
- <span locale="contextmenu/unzip">Unzip Here</span> <i class="inbox icon"></i>
- </div>
- <div class="item" onclick="rename();">
- <span locale="contextmenu/rename">Rename</span>
- </div>
- <div class="item" onclick="deleteFile();">
- <span locale="contextmenu/delete">Delete</span> <i class="trash icon"></i>
- </div>
- <div class="item folderonly singleObjectOnlyHide" onclick="createDesktopShortcut();">
- <span locale="opr/shortcut/title">Create Shortcut on Desktop</span> <i class="external square icon"></i>
- </div>
- <div class="divider vroothide"></div>
- <div class="item noSelectionOnly" onclick="refreshList();">
- <span locale="contextmenu/refresh">Refresh</span> <i class="refresh icon"></i>
- </div>
- <div class="item" onclick="downloadFile();">
- <span locale="contextmenu/download">Download</span> <i class="download icon"></i>
- </div>
- <div class="item" onclick="showFileProperties();">
- <span locale="contextmenu/properties">Properties</span>
- </div>
- <!-- This properties shows the currentDirectory properties instead of the selected file properties-->
- <div class="item noSelectionOnly" onclick="showCurrentDirectoryProperties();">
- <span locale="contextmenu/properties">Properties</span>
- </div>
- <div class="item vrootonly" onclick="showSharesManager();">
- <span locale="contextmenu/sharemanager">Open Shares Manager</span> <i class="share alternate icon"></i>
- </div>
- <!-- This properties show the vroot properties -->
- <div class="item specialviewonly" onclick="createSpecialViewShortcut();">
- <span locale="opr/shortcut/create">Create Desktop Shortcut</span> <i class="external icon"></i>
- </div>
- <div class="item vrootonly" onclick="createVrootShortcut();">
- <span locale="opr/shortcut/create">Create Desktop Shortcut</span> <i class="external icon"></i>
- </div>
- <div class="item vrootonly" onclick="showVrootProperties();">
- <span locale="contextmenu/properties">Properties</span>
- </div>
- </div>
- <!--
- Toast. Lives at body level so its position:fixed is resolved against
- the viewport and cannot be captured by a transformed ancestor.
- -->
- <div id="msgbox" class="msgbox" style="display:none;">
- <i class="checkmark icon"></i>
- <span class="msgboxText">No Message</span>
- <div class="closeMsgButton" onclick="hideMsgBox();" data-fsicon="close"></div>
- </div>
- <!--
- Transfer panel. Shows one row per task - an upload, or the server
- side zipping a folder download starts in download.js - so its title
- and summary icon are deliberately generic. Rendering lives in
- js/explorer/uploadui.js; the markup below is only the shell.
- -->
- <div id="uploadTab" style="display:none;">
- <div class="uploadHeader">
- <span class="uploadHeaderTitle" id="uploadHeaderTitle">Tasks</span>
- <div class="uploadHeaderBtn" onclick="toggleUploadMinimize();" title="Minimize">
- <span data-fsicon="minus"></span>
- </div>
- <div class="uploadHeaderBtn" onclick="closeUploadTab();" title="Close">
- <span data-fsicon="close"></span>
- </div>
- </div>
- <div class="uploadList" id="uploadProgressList">
- </div>
- <div class="uploadSummary">
- <span class="uploadSummaryIcon" id="uploadSummaryIcon" data-fsicon="taskProgress"></span>
- <span class="uploadSummaryText" id="uploadSummaryText"></span>
- <!-- Only shown on the minimized card, where the header is hidden -->
- <div class="uploadHeaderBtn uploadCompactBtn" onclick="restoreUploadPanel();" title="Maximize">
- <span data-fsicon="maximize"></span>
- </div>
- <div class="uploadHeaderBtn uploadCompactBtn" onclick="closeUploadTab();" title="Close">
- <span data-fsicon="close"></span>
- </div>
- </div>
- <div class="uploadActions">
- <div class="uploadActionBtn" onclick="clearCompletedUploads();">
- <span data-fsicon="trash"></span>
- <span locale="upload/clearCompleted">Clear completed</span>
- </div>
- <div class="uploadActionBtn primary" onclick="cancelAllUploads();">
- <span locale="upload/cancelAll">Cancel all</span>
- </div>
- </div>
- </div>
- <!-- Permanent delete confirmation. The one action in the trash bin with
- nothing behind it - the bin is already the safety net - so it is the
- one that asks first. Raised by confirmTrashDelete() and
- confirmEmptyTrashBin() in js/explorer/trash.js. -->
- <div id="trashDeleteConfirmBox" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="trash icon"></i> <span locale="trash/confirm/title">Delete Permanently?</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p><span class="trashConfirmDesc"></span></p>
- <div class="popupbuttons allowHover negative" onclick="trashDeleteConfirmed();">
- <i class="trash icon"></i> <span locale="trash/confirm/confirm">Delete Permanently</span>
- </div>
- <div class="popupbuttons allowHover" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i> <span locale="trash/confirm/cancel">Cancel</span>
- </div>
- </div>
- </div>
- <!-- Trash bin full. Raised when the server refuses a recycle because the
- user's trash size limit would be exceeded; nothing has moved yet. -->
- <div id="trashFullBox" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="trash icon"></i> <span locale="trash/full/title">Trash Bin Full</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p><span locale="trash/full/desc">The trash bin has reached its size limit, so these files cannot be moved into it.</span></p>
- <div class="popupbuttons allowHover primary" onclick="trashFullClearAndRecycle();">
- <i class="recycle icon"></i> <span locale="trash/full/clearfirst">Empty the trash bin and move them there</span>
- </div>
- <div class="popupbuttons allowHover negative" onclick="trashFullDeleteDirectly();">
- <i class="trash icon"></i> <span locale="trash/full/deletenow">Delete them permanently instead</span>
- </div>
- <div class="popupbuttons allowHover" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i> <span locale="trash/full/cancel">Do nothing</span>
- </div>
- </div>
- </div>
- <!-- Trashed item details. Filled by js/explorer/trash.js; this is how
- the columns the narrow layout drops stay reachable. -->
- <div id="trashDetailsBox" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="trash icon"></i> <span locale="trash/details">Details</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <table class="fmTrashDetailTable"></table>
- <div class="popupbuttons allowHover primary fmTrashDetailRestore">
- <i class="checkmark icon"></i> <span locale="trash/restore">Restore</span>
- </div>
- <div class="popupbuttons allowHover" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i> <span locale="opr/rename/cancel">Cancel</span>
- </div>
- </div>
- </div>
- <!-- Confirm Exit -->
- <!-- Open With Dialog-->
- <div id="confirmExit" class="popup" style="display:none;">
- <div class="popupheader">
- <i class="external icon"></i> <span locale="opr/confirmclose/title">Confirm Exit</span>
- <div class="popupcloser" onclick="hideAllPopupWindows();">
- <i class="remove icon"></i>
- </div>
- </div>
- <div class="popupcontent">
- <p locale="opr/confirmclose/desc">This file manager instance is currently uploading file to server. Closing this instance will cancel the upload tasks. <br>
- <b>Confirm Exit?</b></p>
- <div class="popupbuttons negative allowHover" onclick="ao_module_closeHandler(); hideAllPopupWindows();">
- <i class="trash icon"></i> <span locale="opr/confirmclose/cancelAndExit">Cancel Upload and Exit</span>
- </div>
- <div class="popupbuttons allowHover" onclick="hideAllPopupWindows();">
- <i class="checkmark icon"></i> <span locale="opr/confirmclose/continue">Continue Upload</span>
- </div>
- </div>
- </div>
-
- <!-- Shared with file_selector.html: file icons, thumbnails, opener lookup -->
- <script type="text/javascript" src="shared/specialpaths.js"></script>
- <script type="text/javascript" src="shared/fsicons.js"></script>
- <script type="text/javascript" src="shared/filethumb.js"></script>
-
- <!--
- File Manager modules. These are plain classic scripts, NOT ES modules:
- every top-level function must stay on the global scope because the markup
- wires handlers through inline on* attributes, and file_operation.html /
- file_share.html / desktop.html reach in from other frames.
-
- Order matters twice: util.js first (state.js calls lscheck() while it
- evaluates) and boot.js last. Keep these at the end of <body> - several
- modules bind to the DOM as they parse.
- -->
- <script type="text/javascript" src="js/explorer/util.js"></script>
- <script type="text/javascript" src="js/explorer/state.js"></script>
- <script type="text/javascript" src="js/explorer/ui.js"></script>
- <script type="text/javascript" src="js/explorer/pathbar.js"></script>
- <script type="text/javascript" src="js/explorer/sidebar.js"></script>
- <script type="text/javascript" src="js/explorer/viewmode.js"></script>
- <script type="text/javascript" src="js/explorer/splitter.js"></script>
- <script type="text/javascript" src="js/explorer/specialview.js"></script>
- <script type="text/javascript" src="js/explorer/trash.js"></script>
- <script type="text/javascript" src="js/explorer/search.js"></script>
- <script type="text/javascript" src="js/explorer/uploadui.js"></script>
- <script type="text/javascript" src="js/explorer/upload.js"></script>
- <script type="text/javascript" src="js/explorer/dragdrop.js"></script>
- <script type="text/javascript" src="js/explorer/clipboard.js"></script>
- <script type="text/javascript" src="js/explorer/rename.js"></script>
- <script type="text/javascript" src="js/explorer/delete.js"></script>
- <script type="text/javascript" src="js/explorer/create.js"></script>
- <script type="text/javascript" src="js/explorer/archive.js"></script>
- <script type="text/javascript" src="js/explorer/download.js"></script>
- <script type="text/javascript" src="js/explorer/open.js"></script>
- <script type="text/javascript" src="js/explorer/openwith.js"></script>
- <script type="text/javascript" src="js/explorer/share.js"></script>
- <script type="text/javascript" src="js/explorer/properties.js"></script>
- <script type="text/javascript" src="js/explorer/thumbnail.js"></script>
- <script type="text/javascript" src="js/explorer/render.js"></script>
- <script type="text/javascript" src="js/explorer/listing.js"></script>
- <script type="text/javascript" src="js/explorer/selection.js"></script>
- <script type="text/javascript" src="js/explorer/keyboard.js"></script>
- <script type="text/javascript" src="js/explorer/boot.js"></script>
- </body>
- </html>
|