1
0

vdir.html 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <div class="standardContainer">
  2. <div class="ui basic segment">
  3. <h2>Virtual Directory</h2>
  4. <p>A virtual directory is a consolidated view of multiple directories that provides a unified entry point for users to access disparate sources.</p>
  5. </div>
  6. <div style="width: 100%; overflow-x: auto; margin-bottom: 1em;">
  7. <table class="ui celled sortable unstackable compact table">
  8. <thead>
  9. <tr>
  10. <th>Virtual Directory</th>
  11. <th>Proxy To</th>
  12. <th>TLS/SSL Verification</th>
  13. <th>Basic Auth</th>
  14. <th class="no-sort" style="min-width: 7.2em;">Actions</th>
  15. </tr>
  16. </thead>
  17. <tbody id="vdirList">
  18. <tr>
  19. <td data-label=""><button class="ui circular mini red basic button"><i class="remove icon"></i> Remove Proxy</button></td>
  20. </tr>
  21. </tbody>
  22. </table>
  23. </div>
  24. <button class="ui icon right floated basic button" onclick="listVdirs();"><i class="green refresh icon"></i> Refresh</button>
  25. <br><br>
  26. </div>
  27. <script>
  28. //Virtual directories functions
  29. function listVdirs(){
  30. $.get("/api/proxy/list?type=vdir", function(data){
  31. $("#vdirList").html(``);
  32. if (data.error !== undefined){
  33. $("#vdirList").append(`<tr>
  34. <td data-label="" colspan="3"><i class="remove icon"></i> ${data.error}</td>
  35. </tr>`);
  36. }else if (data.length == 0){
  37. $("#vdirList").append(`<tr>
  38. <td data-label="" colspan="3"><i class="checkmark icon"></i> No Virtual Directory Record</td>
  39. </tr>`);
  40. }else{
  41. data.forEach(vdir => {
  42. let tlsIcon = "";
  43. let vdirData = encodeURIComponent(JSON.stringify(vdir));
  44. if (vdir.RequireTLS){
  45. tlsIcon = `<i class="green lock icon" title="TLS Mode"></i>`;
  46. }
  47. $("#vdirList").append(`<tr eptuuid="${vdir.RootOrMatchingDomain}" payload="${vdirData}" class="vdirEntry">
  48. <td data-label="" editable="false">${vdir.RootOrMatchingDomain}</td>
  49. <td data-label="" editable="true" datatype="domain">${vdir.Domain} ${tlsIcon}</td>
  50. <td data-label="" editable="true" datatype="skipver">${!vdir.SkipCertValidations?`<i class="ui green check icon"></i>`:`<i class="ui yellow exclamation circle icon" title="TLS/SSL Verification will be skipped on this host"></i>`}</td>
  51. <td data-label="" editable="true" datatype="basicauth">${vdir.RequireBasicAuth?`<i class="ui green check icon"></i>`:`<i class="ui grey remove icon"></i>`}</td>
  52. <td class="center aligned" editable="true" datatype="action" data-label="">
  53. <button class="ui circular mini basic icon button editBtn" onclick='editEndpoint("vdir","${vdir.RootOrMatchingDomain}")'><i class="edit icon"></i></button>
  54. <button class="ui circular mini red basic icon button" onclick='deleteEndpoint("vdir","${vdir.RootOrMatchingDomain}")'><i class="trash icon"></i></button>
  55. </td>
  56. </tr>`);
  57. });
  58. }
  59. });
  60. }
  61. //Bind on tab switch events
  62. tabSwitchEventBind["vdir"] = function(){
  63. listVdirs();
  64. }
  65. </script>