From f64f3a25f147190a993e103d4fb14e79020c1863 Mon Sep 17 00:00:00 2001 From: Sergey Linnik Date: Tue, 29 Mar 2016 17:53:12 +0300 Subject: [PATCH 1/2] nodejs: change key depending on date history --- web/documentserver-example/nodejs/helpers/docManager.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/web/documentserver-example/nodejs/helpers/docManager.js b/web/documentserver-example/nodejs/helpers/docManager.js index d570cf41..ae4c5781 100644 --- a/web/documentserver-example/nodejs/helpers/docManager.js +++ b/web/documentserver-example/nodejs/helpers/docManager.js @@ -299,6 +299,10 @@ docManager.getKey = function (fileName) { key += docManager.countVersion(historyPath); } + historyPath = docManager.historyPath(fileName, userAddress, true); + var stat = fileSystem.statSync(historyPath); + key += stat.mtime.toString(); + return documentService.generateRevisionId(key); }; From a25892219c9ff536071629c2c87421b5f40bd5ee Mon Sep 17 00:00:00 2001 From: Sergey Linnik Date: Tue, 29 Mar 2016 17:56:26 +0300 Subject: [PATCH 2/2] nodejs: delete file --- web/documentserver-example/nodejs/app.js | 35 ++++++++++++++++++ .../nodejs/public/images/delete-24.png | Bin 0 -> 1133 bytes .../nodejs/public/javascripts/jscript.js | 16 ++++++++ .../nodejs/public/stylesheets/stylesheet.css | 4 ++ .../nodejs/views/index.ejs | 2 + 5 files changed, 57 insertions(+) create mode 100644 web/documentserver-example/nodejs/public/images/delete-24.png diff --git a/web/documentserver-example/nodejs/app.js b/web/documentserver-example/nodejs/app.js index 9e1465b8..815e8b83 100644 --- a/web/documentserver-example/nodejs/app.js +++ b/web/documentserver-example/nodejs/app.js @@ -227,6 +227,41 @@ app.get("/convert", function (req, res) { }); +app.delete("/file", function (req, res) { + try { + docManager.init(__dirname, req, res); + + var fileName = req.query.filename; + + var filePath = docManager.storagePath(fileName) + fileSystem.unlinkSync(filePath); + + var userAddress = docManager.curUserHostAddress(); + var historyPath = docManager.historyPath(fileName, userAddress, true); + + var deleteFolderRecursive = function (path) { + if (fileSystem.existsSync(path)) { + var files = fileSystem.readdirSync(path); + files.forEach(function (file, index) { + var curPath = path + "/" + file; + if (fileSystem.lstatSync(curPath).isDirectory()) { + deleteFolderRecursive(curPath); + } else { + fileSystem.unlinkSync(curPath); + } + }); + fileSystem.rmdirSync(path); + } + }; + deleteFolderRecursive(historyPath); + + res.write("{\"success\":true}"); + } catch (ex) { + res.write(JSON.stringify(ex)); + } + res.end(); +}); + app.post("/track", function (req, res) { docManager.init(__dirname, req, res); diff --git a/web/documentserver-example/nodejs/public/images/delete-24.png b/web/documentserver-example/nodejs/public/images/delete-24.png new file mode 100644 index 0000000000000000000000000000000000000000..d4d2fc7460e7f0c7cdf9d56c490391a318522bc6 GIT binary patch literal 1133 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gjk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvv ztM~P_^2{qPNz6-5^>ndS0-B(gnVDkcVrgn(YGmf*W@O=LXy|I{Xl`lbv4~Pj*wm=R%;iu*SQ+p9GS=al$FaTzWhn_BuAr-fh z{`~)M&#cS%cm?a>`%G#zlkDv5vK-DdyU$}^(x$_`Kq{Z%W1&K{NVkp08w(HK32XiO z_~$WxG*!69_~`G6X%07kFDwdg{Gl0H$YA2ZF1g;%|IaA;$TP%OF+!Q6DK_O)(8j*DSdl6HO458LFGR(<*E4KX4S2`BvQUBdNR-FA8rI1To8~Skx)re1B8mS6bIgs~x1(h{ sDnFd~+;HWAaq^ZOa$6gU7z7d+l(~*yI@3MN7E}Ouy85}Sb4q9e0Fb(Q>;M1& literal 0 HcmV?d00001 diff --git a/web/documentserver-example/nodejs/public/javascripts/jscript.js b/web/documentserver-example/nodejs/public/javascripts/jscript.js index ab90d1c6..2d07b542 100644 --- a/web/documentserver-example/nodejs/public/javascripts/jscript.js +++ b/web/documentserver-example/nodejs/public/javascripts/jscript.js @@ -262,6 +262,22 @@ if (typeof jQuery != "undefined") { jq.unblockUI(); }); + jq(document).on("click", ".delete-file", function () { + var fileName = jq(this).attr("data"); + + var requestAddress = "file?filename=" + fileName; + + jq.ajax({ + async: true, + contentType: "text/xml", + type: "delete", + url: requestAddress, + complete: function (data) { + document.location.reload(); + } + }); + }); + jq.dropdownToggle({ switcherSelector: ".question", dropdownID: "hint" diff --git a/web/documentserver-example/nodejs/public/stylesheets/stylesheet.css b/web/documentserver-example/nodejs/public/stylesheets/stylesheet.css index 2efc0e68..43d9e617 100644 --- a/web/documentserver-example/nodejs/public/stylesheets/stylesheet.css +++ b/web/documentserver-example/nodejs/public/stylesheets/stylesheet.css @@ -482,3 +482,7 @@ footer { .icon-download { margin-bottom: -5px; } +.icon-delete { + cursor: pointer; + margin-bottom: -6px; +} diff --git a/web/documentserver-example/nodejs/views/index.ejs b/web/documentserver-example/nodejs/views/index.ejs index 696e5a6e..62d64ff7 100644 --- a/web/documentserver-example/nodejs/views/index.ejs +++ b/web/documentserver-example/nodejs/views/index.ejs @@ -183,6 +183,8 @@ <%= storedFiles[i].name %> download + + delete