diff --git a/exec/webfileindex.ssjs b/exec/webfileindex.ssjs index 1afb0565ad8cebeab03ccda8aebefd08d82a99a4..c8aa362e52c3e4f8574fb3e783f5df6509a629f0 100644 --- a/exec/webfileindex.ssjs +++ b/exec/webfileindex.ssjs @@ -58,7 +58,7 @@ function dir_index(dir) var lib = file_area.lib[dir.lib_name]; writeln(lib.description.link(file_area.web_vpath_prefix + lib.vdir + "/") + "<br />"); writeln("<p>"); - + var fb = new FileBase(dir.code); if(!fb.open()) { write("Error " + fb.error + " opening directory: " + dir.code); @@ -84,7 +84,7 @@ function dir_index(dir) ,sorting_description[s])); } writeln("</select>"); - writeln("</form>"); + writeln("</form>"); writeln('<input id="show-extdescs-switch" type="checkbox" onChange="showExtDescs(event)"><label title for="show-extdescs-switch">Show extended descriptions</label>'); writeln('</div>'); writeln('<div class="table-container">'); @@ -127,26 +127,64 @@ function lib_index(lib) writeln("[" + root_link() + "] / "); writeln(file_area.lib[lib].description + "<br />"); writeln("<p>"); - - for(var d in file_area.dir) { + + for(var d in file_area.dir) { var dir = file_area.dir[d]; - if(dir.lib_name != lib) - continue; + if(dir.lib_name != lib) + continue; if(!dir.can_access) continue; - write(dir.name.link(dir.vdir + "/") + "<br />"); - } + write(dir.name.link(dir.vdir + "/") + "<br />"); + } +} + +function get_dir_desc(vpath) +{ + for(var i in file_area.dir) { + var dir = file_area.dir[i]; + if((file_area.web_vpath_prefix + dir.vpath).toLowerCase() == vpath.toLowerCase()) + return dir.description; + } + return null; +} + +// List configured aliases to directories as shortcuts +function shortcuts() +{ + var file = new File(system.ctrl_dir + "web_alias.ini"); + if(!file.open("r")) + return; + var list = file.iniGetObject(); + file.close(); + if(!list) + return; + var dir = {}; + for(var i in list) { + var desc = get_dir_desc(list[i]); + if(desc) + dir[i] = desc; + } + if(!Object.keys(dir).length) + return; + writeln("<h3>Directories</h3>"); + writeln("<ul>"); + for(var i in dir) + writeln("<a href=" + i + ">" + dir[i] + "</a><br />"); + writeln("</ul>"); + writeln("<p>"); } // Listing all libraries function root_index() { header("File Areas"); + shortcuts(); + writeln("<h3>Libraries</h3>"); for(var l in file_area.lib_list) { var lib = file_area.lib_list[l]; write(lib.description.link(lib.vdir + "/")+ "<br />"); } -} +} if(http_request.virtual_path[http_request.virtual_path.length - 1] != '/') { http_reply.status = "301 Moved";