index.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Admin Panel</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1" >
  7. <link rel="icon" type="image/png" href="/favicon.png">
  8. <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  9. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.css" />
  10. <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
  11. <style>
  12. body{
  13. overflow: hidden;
  14. }
  15. .windows{
  16. width: 100%;
  17. height: calc(100% - 46px);
  18. background-color: rgb(241, 241, 241);
  19. }
  20. .frameWrapper{
  21. width: 100%;
  22. height: 100%;
  23. }
  24. .frameWrapper iframe{
  25. border: 0px solid transparent;
  26. width: 100%;
  27. height: 100%;
  28. }
  29. </style>
  30. </head>
  31. <body>
  32. <div class="mainmenu ui inverted menu" style="margin-bottom: 0 !important; border-radius: 0 !important;">
  33. <a class="item" href="/admin/index.html">
  34. <img class="ui tiny image" src="img/icon.svg">
  35. </a>
  36. <a class="active yellow selectable icon item" onclick="switchFrame(event, this);" xframe="fs"><i class="folder icon"></i></a>
  37. <a class="teal selectable icon item" onclick="switchFrame(event, this);" xframe="blog"><i class="ui edit icon"></i></a>
  38. <a class="violet selectable icon item" onclick="switchFrame(event, this);" xframe="search"><i class="ui search icon"></i></a>
  39. <a class="green selectable icon item" onclick="switchFrame(event, this);" xframe="shares"><i class="ui share alternate icon"></i></a>
  40. <a class="blue selectable icon item" onclick="switchFrame(event, this);" xframe="users"><i class="ui user icon"></i></a>
  41. <a class="grey selectable icon item" onclick="switchFrame(event, this);" xframe="info"><i class="ui info circle icon"></i></a>
  42. <div class="right menu">
  43. <a class="grey selectable icon item" title="Logout" onclick="handleLogout();"><i class="ui sign-out icon"></i></a>
  44. </div>
  45. </div>
  46. <div class="windows">
  47. <div id="fs" class="frameWrapper" xload="fs.html">
  48. <iframe src="about:blank"></iframe>
  49. </div>
  50. <div id="blog" class="frameWrapper" xload="post.html" style="display:none;">
  51. <iframe src="about:blank"></iframe>
  52. </div>
  53. <div id="search" class="frameWrapper" xload="search.html" style="display:none;">
  54. <iframe src="about:blank"></iframe>
  55. </div>
  56. <div id="shares" class="frameWrapper" xload="shares.html" style="display:none;">
  57. <iframe src="about:blank"></iframe>
  58. </div>
  59. <div id="users" class="frameWrapper" xload="users.html" style="display:none;">
  60. <iframe src="about:blank"></iframe>
  61. </div>
  62. <div id="info" class="frameWrapper" xload="info.html" style="display:none;">
  63. <iframe src="about:blank"></iframe>
  64. </div>
  65. </div>
  66. <script>
  67. $(".mainmenu .selectable.item").on("click", function(){
  68. $(".mainmenu .item.active").removeClass("active");
  69. $(this).addClass("active");
  70. });
  71. function handleLogout(){
  72. $.get("/api/auth/logout", function(data){
  73. window.location.href = "/index.html";
  74. })
  75. }
  76. function switchFrame(event, object){
  77. event.preventDefault();
  78. let targetFrameID = $(object).attr("xframe");
  79. $(".frameWrapper").hide();
  80. initiateIframeForID(targetFrameID);
  81. $("#" + targetFrameID).show();
  82. window.location.hash = targetFrameID;
  83. }
  84. //Check login status
  85. function initLoginCheck(){
  86. $.get("/api/auth/chk", function(data){
  87. if (data == false){
  88. window.location.href = "/login.html"
  89. }
  90. });
  91. }
  92. initLoginCheck();
  93. // Restore previously selected frame on page load
  94. if (window.location.hash.length > 1) {
  95. let targetFrameID = window.location.hash.substring(1);
  96. if ($("#" + targetFrameID).length) {
  97. $(".frameWrapper").hide();
  98. initiateIframeForID(targetFrameID);
  99. $("#" + targetFrameID).show();
  100. $(".mainmenu .item.active").removeClass("active");
  101. $(".mainmenu .item[xframe='" + targetFrameID + "']").addClass("active");
  102. }
  103. }else{
  104. //Load the default frame
  105. initiateIframeForID("fs");
  106. }
  107. //Dynamically load the iframe source when the frame is shown
  108. function initiateIframeForID(eleId){
  109. let targetFrameID = eleId;
  110. if ($("#" + targetFrameID).length && $("#" + targetFrameID).attr("xload")) {
  111. $("#" + targetFrameID + " iframe").attr("src", $("#" + targetFrameID).attr("xload"));
  112. $("#" + targetFrameID).removeAttr("xload");
  113. }
  114. }
  115. </script>
  116. </body>
  117. </html>