您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

167 行
6.0 KiB

  1. <!DOCTYPE html>
  2. <html lang="fa" dir="rtl">
  3. <head>
  4. <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
  5. <meta http-equiv="Pragma" content="no-cache" />
  6. <meta http-equiv="Expires" content="0" />
  7. <meta charset="utf-8" />
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  9. <title>حق تو</title>
  10. <base href="/" />
  11. <link rel="stylesheet" href="/assets/css/base.css">
  12. <link rel="stylesheet" href="/assets/css/app.css" />
  13. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
  14. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css" />
  15. <script>
  16. setTimeout(ShowFirstLoading, 5000)
  17. function ShowFirstLoading() {
  18. try {
  19. document.getElementById("firstLoadingWait").style.display = "block";
  20. }
  21. catch
  22. {
  23. console.log("no loading div");
  24. }
  25. }
  26. </script>
  27. </head>
  28. <body class="container bg-secondary m-0 p-0 mx-auto" style="overflow-y:hidden">
  29. <script src="_framework/blazor.webview.js" autostart="false"></script>
  30. <div id="spinnerDiv" style="display:none;">
  31. <div class="spinner spinner-border text-warning" role="status">
  32. <span class="visually-hidden">Loading...</span>
  33. </div>
  34. <style>
  35. #spinnerDiv {
  36. width: 100vw;
  37. height: 100vh;
  38. position: absolute;
  39. left: 0;
  40. top: 0;
  41. opacity: 0.2;
  42. background-color: black;
  43. z-index: 100000;
  44. }
  45. .spinner {
  46. position: absolute;
  47. left: calc(50% - 30px);
  48. top: calc(50% - 30px);
  49. width: 50px;
  50. height: 50px;
  51. margin: 0px auto;
  52. }
  53. </style>
  54. </div>
  55. <div id="app" class="container bg-secondary m-0 p-0">
  56. <div class="text-center" style="width:200px;height:200px;top:calc(50vh - 100px);left:calc(50vw - 100px);position:absolute">
  57. <div class="splash">
  58. <div class="splash__logo">
  59. <img src="/assets/images/logo.png" alt="logo" />
  60. </div>
  61. <br />
  62. <br />
  63. <div class="loader3">
  64. <span></span>
  65. <span></span>
  66. </div>
  67. <h4 class="text-white">
  68. در حال پردازش...
  69. </h4>
  70. </div>
  71. <div class="splash">
  72. <div class="spinner-border text-warning"></div>
  73. </div>
  74. <h5 id="firstLoadingWait" style="display:none;color:white">
  75. بارگزاری اپلیکیشن برای اولین بار کمی زمان بر است. لطفا صبر کنید...
  76. </h5>
  77. </div>
  78. </div>
  79. <div id="blazor-error-ui">
  80. خطا!
  81. <button class="btn btn-primary" onclick="return RefreshPage();" class="btn btn-bordered">Refresh</button>
  82. </div>
  83. <script>navigator.serviceWorker.register('service-worker.js?v=13');</script>
  84. <script src="/_content/CurrieTechnologies.Razor.SweetAlert2/sweetAlert2.min.js"></script>
  85. <script>
  86. function RefreshPage() {
  87. document.getElementById("blazor-error-ui").style.display = "none";
  88. if (window.history.length > 0)
  89. history.back();
  90. }
  91. window.AbrMethods = {
  92. getInputValue: function (id) {
  93. return document.getElementById(id).value;
  94. }
  95. }
  96. window.methods = {
  97. ShowLoading: function () {
  98. document.getElementById("spinnerDiv").style.display = "block";
  99. },
  100. HideLoading: function () {
  101. document.getElementById("spinnerDiv").style.display = "none";
  102. },
  103. getDimensions: function () {
  104. return {
  105. width: document.body.clientWidth,
  106. height: document.body.clientHeight
  107. };
  108. },
  109. CopyInputValue: function (inputId) {
  110. /* Get the text field */
  111. var copyText = document.getElementById(inputId);
  112. /* Select the text field */
  113. copyText.select();
  114. copyText.setSelectionRange(0, 99999); /* For mobile devices */
  115. /* Copy the text inside the text field */
  116. document.execCommand("copy");
  117. },
  118. blazorOpen: function (args) {
  119. window.open(args);
  120. },
  121. ScrollToEnd: function () {
  122. window.scrollTo(0, document.body.scrollHeight);
  123. },
  124. PrepareResponsiveTable: function (inputId) {
  125. jQuery('table').each(function () {
  126. var $table = jQuery(this);
  127. var tableCols = $table.find('th').length;
  128. $table.find('tbody > tr').each(function (index, tr) {
  129. if (!$(tr).hasClass('extra'))
  130. for (var i = 1; i <= tableCols; i++) {
  131. var header = $table.find("thead > tr th:nth-child(" + i + ")").html();
  132. if (header)
  133. header += ": ";
  134. $("td:nth-child(" + i + ")", tr).attr('data-content', header);
  135. }
  136. });
  137. });
  138. },
  139. triggerFileDownload: function (fileName, url) {
  140. const anchorElement = document.createElement('a');
  141. anchorElement.href = url;
  142. anchorElement.download = fileName ?? '';
  143. anchorElement.click();
  144. anchorElement.remove();
  145. }
  146. };
  147. </script>
  148. </body>
  149. </html>