Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 

164 рядки
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. <div id="spinnerDiv" style="display:none;">
  30. <div class="spinner spinner-border text-warning" role="status">
  31. <span class="visually-hidden">Loading...</span>
  32. </div>
  33. <style>
  34. #spinnerDiv {
  35. width: 100vw;
  36. height: 100vh;
  37. position: absolute;
  38. left: 0;
  39. top: 0;
  40. opacity: 0.2;
  41. background-color: black;
  42. z-index: 100000;
  43. }
  44. .spinner {
  45. position: absolute;
  46. left: calc(50% - 30px);
  47. top: calc(50% - 30px);
  48. width: 50px;
  49. height: 50px;
  50. margin: 0px auto;
  51. }
  52. </style>
  53. </div>
  54. <div id="app" class="container bg-secondary m-0 p-0">
  55. <div class="text-center" style="width:200px;height:200px;top:calc(50vh - 100px);left:calc(50vw - 100px);position:absolute">
  56. <div class="splash">
  57. <div class="splash__logo">
  58. <img src="/assets/images/logo.png" alt="logo" />
  59. </div>
  60. <br />
  61. <br />
  62. <div class="loader3">
  63. <span></span>
  64. <span></span>
  65. </div>
  66. <h4 class="text-white">
  67. در حال پردازش...
  68. </h4>
  69. </div>
  70. <div class="splash">
  71. <div class="spinner-border text-warning"></div>
  72. </div>
  73. <h5 id="firstLoadingWait" style="display:none;color:white">
  74. بارگزاری اپلیکیشن برای اولین بار کمی زمان بر است. لطفا صبر کنید...
  75. </h5>
  76. </div>
  77. </div>
  78. <div id="blazor-error-ui">
  79. خطا!
  80. <button class="btn btn-primary" onclick="return RefreshPage();" class="btn btn-bordered">Refresh</button>
  81. </div>
  82. <script src="_framework/blazor.webassembly.js"></script>
  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>