file_versions.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <html>
  2. <head>
  3. <title locale="title/title">File Version History</title>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0 user-scalable=no">
  6. <link rel="stylesheet" href="../../script/semantic/semantic.css">
  7. <script type="text/javascript" src="../../script/jquery.min.js"></script>
  8. <script type="text/javascript" src="../../script/semantic/semantic.min.js"></script>
  9. <script type="text/javascript" src="../../script/ao_module.js"></script>
  10. <script type="text/javascript" src="../../script/applocale.js"></script>
  11. <style>
  12. body{
  13. overflow:hidden;
  14. }
  15. </style>
  16. </head>
  17. <body id="filePropertiesWindow">
  18. <br>
  19. <div class="ui container">
  20. <h3 class="ui header">
  21. <span locale="title/title">File Version History</span>
  22. <div class="sub header" locale="title/desc">Any file versions that is more than 30 days old will be automatically removed from the system.</div>
  23. </h3>
  24. <div class="ui divider"></div>
  25. <div>
  26. <table class="ui very basic fluid celled table unstackable">
  27. <tbody id="versions">
  28. <tr>
  29. <td>
  30. <h4 class="ui header">
  31. <div class="content">
  32. <span>No File</span>
  33. <div class="sub header">Invalid usage</div>
  34. </div>
  35. </h4>
  36. </td>
  37. </tr>
  38. </tbody>
  39. </table>
  40. </div>
  41. <br>
  42. </div>
  43. <script>
  44. var files = ao_module_loadInputFiles();
  45. var targetFile = "";
  46. if (files.length >= 1){
  47. targetFile = files[0];
  48. loadVersionHistory(targetFile);
  49. }else{
  50. //No file selected
  51. }
  52. function loadVersionHistory(vpath){
  53. $.ajax({
  54. url: "../../system/file_system/versionHistory",
  55. data: {path: vpath},
  56. method: "POST",
  57. success: function(data){
  58. if (data.error !== undefined){
  59. alert(data.error);
  60. }else{
  61. $("#versions").html("");
  62. data.Versions.forEach(fileVersionEntry => {
  63. var filesize = ao_module_utils.formatBytes(fileVersionEntry.Filesize, 1);
  64. $("#versions").append(`<tr>
  65. <td>
  66. <h4 class="ui header">
  67. <div class="content">
  68. <span>${fileVersionEntry.Filename}</span>
  69. <div class="sub header">${fileVersionEntry.OverwriteTime} / ${filesize}</div>
  70. </div>
  71. </h4></td>
  72. <td>
  73. <div class="ui icon mini buttons">
  74. <button relpath="${fileVersionEntry.Relpath}" onclick="downloadVersion(this);" class="ui very basic icon button" title="Download Version"><i class="ui blue download icon"></i></button>
  75. <button verid="${fileVersionEntry.HistoryID}" class="ui very basic icon button" title="Restore This Version"><i class="ui green sync icon"></i></button>
  76. <button verid="${fileVersionEntry.HistoryID}" class="ui very basic icon button" title="Delete"><i class="ui red trash icon"></i></button>
  77. </div>
  78. </td>
  79. </tr>`);
  80. });
  81. }
  82. }
  83. });
  84. }
  85. function downloadVersion(object){
  86. var relpath = $(object).attr("relpath");
  87. var dirname = targetFile.split("/");
  88. dirname.pop();
  89. var accessPath = dirname.join("/") + "/" + relpath;
  90. window.open("../../media?file=" + accessPath + "&download=true")
  91. }
  92. function deleteVersion(object){
  93. var versionID = $(object).attr("verid");
  94. }
  95. </script>
  96. </body>
  97. </html>