My SMM panel
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 
 
 

106 行
2.9 KiB

  1. import RegisterForm from './register-area/register-form.vue'
  2. import '../scss/main.scss'
  3. import { createApp } from 'vue'
  4. importAll(require.context('../images', false, /\.(png|jpe?g|svg)$/))
  5. let heroText = document.querySelectorAll(".landing-hero h2,.landing-hero p")
  6. let registerToggles = document.querySelectorAll(".register-btn, .register-area\
  7. .cancel-button, .services-cards button")
  8. let token = getCookie('XSRF-TOKEN')
  9. const app = createApp(RegisterForm)
  10. // app.component('register-form', {
  11. // template: registerForm
  12. // })
  13. app.mount('#app')
  14. function importAll(r) {
  15. return r.keys().map(r)
  16. }
  17. function getCookie(name) {
  18. var re = new RegExp(name + "=([^;]+)")
  19. var value = re.exec(document.cookie)
  20. return (value != null) ? unescape(value[1]) : null
  21. }
  22. function getToken() {
  23. fetch("/sanctum/csrf-cookie", {
  24. method: 'GET'
  25. }).then( () => {
  26. token = getCookie('XSRF-TOKEN')
  27. })
  28. }
  29. function checkPasswords() {
  30. let passInput = document.getElementById('register-password')
  31. let passInput2 = document.getElementById('confirm-password')
  32. if (passInput.value != passInput2.value) {
  33. passInput2.setCustomValidity('Passwords must be matching')
  34. } else {
  35. passInput2.setCustomValidity('');
  36. }
  37. }
  38. function login(event) {
  39. fetch("/login", {
  40. method: 'POST',
  41. headers: {'Content-Type': 'application/json',
  42. 'X-XSRF-TOKEN': token},
  43. body: JSON.stringify({"email":
  44. document.getElementById("login_email").value,
  45. "password": document.getElementById("login_password").value}),
  46. }).then(response => {
  47. console.log(response.json())
  48. console.log(response.ok)
  49. console.log(response.status)
  50. console.log(response.statusText)
  51. })
  52. event.preventDefault();
  53. }
  54. //Attempt to resend the verification link
  55. function resendLink(event) {
  56. console.log("clicked");
  57. event.preventDefault();
  58. }
  59. function toggleNav() {
  60. heroText.forEach(item => {
  61. item.classList.toggle("hidden")
  62. })
  63. document.querySelector("nav form.login").classList.toggle("active")
  64. this.classList.toggle("toggled")
  65. }
  66. if (!token) {getToken()}
  67. if (window.location.pathname == '/') {
  68. document.getElementById('nav_toggle').addEventListener('click', toggleNav)
  69. document.getElementById('login_form').addEventListener('submit', login)
  70. //Triggers for registration menu
  71. for (let i = 0; i < registerToggles.length; i++) {
  72. registerToggles[i].addEventListener("click", function() {
  73. document.querySelector(".register-area").classList.toggle("active")
  74. });
  75. }
  76. //FAQ collapsibles
  77. let cols = document.getElementsByClassName("collapsible");
  78. for (let i = 0; i < cols.length; i++) {
  79. cols[i].addEventListener("click", function() {
  80. this.classList.toggle("active");
  81. });
  82. }
  83. document.getElementById("register-password").oninput = checkPasswords
  84. document.getElementById("confirm-password").oninput = checkPasswords
  85. } else if (window.location.pathname == '/verify-email') {
  86. document.getElementById('resend_verification').addEventListener("click", resendLink)
  87. }