subd.html 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <div class="standardContainer">
  2. <div class="ui basic segment">
  3. <h2>Subdomain</h2>
  4. <p>Subdomains are a way to organize and identify different sections of a website or domain. They are essentially a prefix to the main domain name, separated by a dot. <br>For example, in the domain "blog.example.com," "blog" is the subdomain.</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>Matching Domain</th>
  11. <th>Proxy To</th>
  12. <th>Basic Auth</th>
  13. <th class="no-sort" style="min-width: 7.2em;">Actions</th>
  14. </tr>
  15. </thead>
  16. <tbody id="subdList">
  17. </tbody>
  18. </table>
  19. </div>
  20. <button class="ui icon right floated basic button" onclick="listSubd();"><i class="green refresh icon"></i> Refresh</button>
  21. <br><br>
  22. </div>
  23. <script>
  24. function listSubd(){
  25. $.get("/api/proxy/list?type=subd", function(data){
  26. $("#subdList").html(``);
  27. if (data.error !== undefined){
  28. $("#subdList").append(`<tr>
  29. <td data-label="" colspan="3"><i class="remove icon"></i> ${data.error}</td>
  30. </tr>`);
  31. }else if (data.length == 0){
  32. $("#subdList").append(`<tr>
  33. <td data-label="" colspan="3"><i class="checkmark icon"></i> No Subdomain Proxy Record</td>
  34. </tr>`);
  35. }else{
  36. data.forEach(subd => {
  37. let tlsIcon = "";
  38. let subdData = encodeURIComponent(JSON.stringify(subd));
  39. if (subd.RequireTLS){
  40. tlsIcon = `<i class="green lock icon" title="TLS Mode"></i>`;
  41. if (subd.SkipCertValidations){
  42. tlsIcon = `<i class="yellow lock icon" title="TLS/SSL mode without verification"></i>`
  43. }
  44. }
  45. let inboundTlsIcon = "";
  46. if ($("#tls").checkbox("is checked")){
  47. inboundTlsIcon = `<i class="green lock icon" title="TLS Mode"></i>`;
  48. if (subd.BypassGlobalTLS){
  49. inboundTlsIcon = `<i class="grey lock icon" title="TLS Bypass Enabled"></i>`;
  50. }
  51. }else{
  52. inboundTlsIcon = `<i class="yellow lock open icon" title="Plain Text Mode"></i>`;
  53. }
  54. $("#subdList").append(`<tr eptuuid="${subd.RootOrMatchingDomain}" payload="${subdData}" class="subdEntry">
  55. <td data-label="" editable="true" datatype="inbound"><a href="//${subd.RootOrMatchingDomain}" target="_blank">${subd.RootOrMatchingDomain}</a> ${inboundTlsIcon}</td>
  56. <td data-label="" editable="true" datatype="domain">${subd.Domain} ${tlsIcon}</td>
  57. <td data-label="" editable="true" datatype="basicauth">${subd.RequireBasicAuth?`<i class="ui green check icon"></i>`:`<i class="ui grey remove icon"></i>`}</td>
  58. <td class="center aligned" editable="true" datatype="action" data-label="">
  59. <button class="ui circular mini basic icon button editBtn" onclick='editEndpoint("subd","${subd.RootOrMatchingDomain}")'><i class="edit icon"></i></button>
  60. <button class="ui circular mini red basic icon button" onclick='deleteEndpoint("subd","${subd.RootOrMatchingDomain}")'><i class="trash icon"></i></button>
  61. </td>
  62. </tr>`);
  63. });
  64. }
  65. });
  66. }
  67. //Bind on tab switch events
  68. tabSwitchEventBind["subd"] = function(){
  69. listSubd();
  70. }
  71. </script>