diff options
author | Roland Reichwein <mail@reichwein.it> | 2020-05-11 19:46:30 +0200 |
---|---|---|
committer | Roland Reichwein <mail@reichwein.it> | 2020-05-11 19:46:30 +0200 |
commit | 15b2be158ac0147982dd30382251b3ce83e219c7 (patch) | |
tree | fbad8b504b91f141b0bfcd85f6ddaaef497b297b | |
parent | b671c8c07ae7690e069c8e3c1ef54a31c591775d (diff) |
Generate download link for files
-rw-r--r-- | plugins/webbox/TODO | 2 | ||||
-rw-r--r-- | plugins/webbox/html/webbox.css | 2 | ||||
-rw-r--r-- | plugins/webbox/html/webbox.js | 26 | ||||
-rw-r--r-- | response.cpp | 4 |
4 files changed, 27 insertions, 7 deletions
diff --git a/plugins/webbox/TODO b/plugins/webbox/TODO index ffa32db..108b645 100644 --- a/plugins/webbox/TODO +++ b/plugins/webbox/TODO @@ -1,7 +1,7 @@ Prio 1 (for next version) ====== -generate download link for selected file +provide index for nested directories, also if requested via url gallery Info if not selected: all Copy function diff --git a/plugins/webbox/html/webbox.css b/plugins/webbox/html/webbox.css index 71e3673..6ea5147 100644 --- a/plugins/webbox/html/webbox.css +++ b/plugins/webbox/html/webbox.css @@ -248,10 +248,12 @@ table.list td.name { } /* Tooltip container */ +/* .tooltip { position: relative; display: inline-block; } +*/ /* Tooltip text */ /* diff --git a/plugins/webbox/html/webbox.js b/plugins/webbox/html/webbox.js index c25b039..e056c16 100644 --- a/plugins/webbox/html/webbox.js +++ b/plugins/webbox/html/webbox.js @@ -41,25 +41,41 @@ function loadContents(dir) { } else { for (var i = 0; i < listElements.length; i++) { var type = listElements[i].getAttribute("type"); + var filename = listElements[i].textContent; + var mouse_click = + "onclick=\"entryMouse('" + filename + "')\""; + + var full_path = currentDir + "/" + filename; + if (full_path.substr(0, 2) == "//") { + full_path = full_path.substr(1); + } + + // make relative path + while (full_path.substr(0, 1) == "/") { + full_path = full_path.substr(1); + } + + var name_td; if (type == "file") { type = "<img src=\"webbox-html/file.png\"/>"; + name_td = "<td><a href=\"" + full_path + "\"><div class=\"name\" style=\"height:100%;width:100%\">" + filename + "</div></a></td>"; } else if (type == "dir") { type = "<img src=\"webbox-html/directory.png\"/>"; + name_td = "<td class=\"name\" " + mouse_click + ">" + filename + "</td>"; } else { type = ""; } var selector = "<td class=\"selector\"></td>"; - if (listElements[i].textContent != "..") { - selector = "<td class=\"selector\" onclick=\"toggleSelection('" + listElements[i].textContent + "')\">☐</td>"; + if (filename != "..") { + selector = "<td class=\"selector\" onclick=\"toggleSelection('" + filename + "')\">☐</td>"; } - var mouse_click = - "onclick=\"entryMouse('" + listElements[i].textContent + "')\""; result += "<tr>" + selector + "<td class=\"type\" " + mouse_click + ">" + type + "</td>" + - "<td class=\"name\" " + mouse_click + ">" + listElements[i].textContent + "</td></tr>"; + name_td + + "</tr>"; } } diff --git a/response.cpp b/response.cpp index a6f55e2..706090e 100644 --- a/response.cpp +++ b/response.cpp @@ -37,6 +37,8 @@ public: { } + // GetTarget() == GetPluginPath() + GetRelativePath() + const Path& GetPath() const {return m_path;} std::string GetPluginName() const {return m_path.params.at("plugin");} // can throw std::out_of_range @@ -146,7 +148,7 @@ std::unordered_map<std::string, std::function<std::string(RequestContext&)>> Get {"rel_target", [](RequestContext& req_ctx) {return req_ctx.GetRelativePath();}}, - {"target", [](RequestContext& req_ctx) {return req_ctx.GetTarget();}}, + {"target", [](RequestContext& req_ctx) {return req_ctx.GetTarget();}}, // target == plugin_path / rel_target }; std::string GetRequestParam(const std::string& key, RequestContext& req_ctx) |