_Layout.cshtml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. @inject Microsoft.Extensions.Configuration.IConfiguration configuration
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="utf-8" />
  6. <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width" />
  7. <title>@ViewData["Title"] - Millions</title>
  8. <!-- Original website bootstrap if needed, or link separate -->
  9. <link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css" />
  10. <!-- Isolated CSS just for Millions -->
  11. <link rel="stylesheet" href="/Millions/css/site.css" />
  12. <link rel="stylesheet" href="/Millions/css/all.min.css" />
  13. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css" />
  14. <script src="https://cdn.tailwindcss.com"></script>
  15. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
  16. <link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;700;800&display=swap" rel="stylesheet">
  17. <style>
  18. .font-bricolage { font-family: 'Bricolage Grotesque', sans-serif; }
  19. .font-UTM_Futura_Extra { font-family: 'UTM Futura Extra', sans-serif; }
  20. </style>
  21. @RenderSection("Styles", required: false)
  22. </head>
  23. <body class="millions-bg">
  24. @Html.AntiForgeryToken()
  25. <input type="hidden" id="subDomain" value="@(configuration["subDomain"] ?? "")" />
  26. <script>
  27. var subDomain = document.getElementById("subDomain").value || "";
  28. </script>
  29. <div id="loading-overlay" class="hidden">
  30. <div class="loading-spinner"></div>
  31. </div>
  32. @RenderBody()
  33. <!-- Original jquery or similar -->
  34. <script src="/lib/jquery/jquery.min.js"></script>
  35. <script src="/lib/bootstrap/js/bootstrap.bundle.min.js"></script>
  36. <!-- Isolated JS just for Millions -->
  37. <script src="/Millions/js/site.js"></script>
  38. <script>
  39. // Global Loading Helpers
  40. function showLoading() {
  41. $('#loading-overlay').removeClass('hidden').addClass('flex');
  42. }
  43. function hideLoading() {
  44. $('#loading-overlay').removeClass('flex').addClass('hidden');
  45. }
  46. // Auto-show for all AJAX calls
  47. $(document).ajaxStart(function() {
  48. showLoading();
  49. }).ajaxStop(function() {
  50. hideLoading();
  51. });
  52. function formatMoneyV2(amount) {
  53. if (amount === undefined || amount === null || amount === "") return "0";
  54. let str = amount.toString().replace(/[^0-9]/g, '');
  55. if (str === "") return "0";
  56. return str.replace(/\B(?=(\d{3})+(?!\d))/g, ".");
  57. }
  58. function unformatMoneyV2(amount) {
  59. if (amount === undefined || amount === null || amount === "") return "0";
  60. return amount.toString().replace(/[^0-9]/g, '');
  61. }
  62. </script>
  63. @RenderSection("Scripts", required: false)
  64. </body>
  65. </html>