PageSourceSearch

https://app.forewrite.com/themes/default/assets/js/panel/login_register.js

js forewrite.com collected 2026-10-01 16:36:17 UTC 6,993 bytes, 235 lines download raw bytes

1//LOGIN
2function LoginForm() {
3	'use strict';
4
5	document.getElementById('LoginFormButton').disabled = true;
6	document.getElementById('LoginFormButton').innerHTML = magicai_localize.please_wait;
7	Alpine.store('appLoadingIndicator').show();
8
9	var email = $('#email').val();
10	if (email == '') {
11		toastr.error(magicai_localize.missing_email);
12		document.getElementById('LoginFormButton').disabled = false;
13		document.getElementById('LoginFormButton').innerHTML = magicai_localize.sign_in;
14		Alpine.store('appLoadingIndicator').hide();
15		return false;
16	}
17	var password = $('#password').val();
18	if (password == '') {
19		toastr.error(magicai_localize.missing_password);
20		document.getElementById('LoginFormButton').disabled = false;
21		document.getElementById('LoginFormButton').innerHTML = magicai_localize.sign_in;
22		Alpine.store('appLoadingIndicator').hide();
23		return false;
24	}
25
26	var formData = new FormData();
27	formData.append('email', $('#email').val());
28	formData.append('password', $('#password').val());
29	formData.append('remember', $('#remember').is(':checked'));
30
31	let plan = $('#plan').val();
32	let redirect = $('#redirect').val();
33
34	formData.append('plan', plan);
35	formData.append('redirect', redirect);
36
37	let recaptcha = $('#recaptcha').val();
38	if (recaptcha == 1 && typeof grecaptcha !== 'undefined') {
39		let recaptchaResponse = grecaptcha.getResponse();
40		formData.append('g-recaptcha-response', recaptchaResponse);
41	}
42	// Ajax Post
43	$.ajax({
44		type: 'post',
45		url: '/login',
46		data: formData,
47		contentType: false,
48		processData: false,
49		cache: false,
50		dataType: 'json',
51		success: function (data) {
52			toastr.success(magicai_localize.login_redirect);
53
54			var href = (data && typeof data.link === 'string') ? data.link : '/dashboard/user';
55			window.location.href = href;
56			// Alpine.store('appLoadingIndicator').hide();
57		},
58		error: function (data) {
59			if (data.responseJSON.errors) {
60				var err = data.responseJSON.errors;
61				$.each(err, function (index, value) {
62					toastr.error(value);
63				});
64			} else if (data.responseJSON.message) {
65				toastr.error(data.responseJSON.message);
66			}
67			document.getElementById('LoginFormButton').disabled = false;
68			document.getElementById('LoginFormButton').innerHTML = magicai_localize.sign_in;
69			Alpine.store('appLoadingIndicator').hide();
70		}
71	});
72	return false;
73}
74
75//REGISTER
76function RegisterForm() {
77	'use strict';
78
79	const btn = document.getElementById('RegisterFormButton');
80	btn.disabled = true;
81	btn.innerHTML = magicai_localize.please_wait;
82	Alpine.store('appLoadingIndicator').show();
83
84	let formData = new FormData();
85
86	// Collect plan and affiliate
87	let plan = $('#plan').val();
88
89	formData.append('plan', plan);
90
91	let affiliate = $('#affiliate_code').val();
92	formData.append('affiliate_code', affiliate !== 'undefined' ? affiliate : null);
93
94	// Dynamically collect optional fields (only if present in DOM)
95	['name', 'surname', 'phone', 'country'].forEach(field => {
96		let el = document.getElementById(field + '_register');
97		if (el) {
98			formData.append(field, el.value);
99		}
100	});
101
102	// Required fields
103	formData.append('email', $('#email_register').val());
104	formData.append('password', $('#password_register').val());
105	formData.append('password_confirmation', $('#password_confirmation_register').val());
106
107	let recaptcha = $('#recaptcha').val();
108
109	if (recaptcha == 1 && typeof grecaptcha !== 'undefined') {
110		let recaptchaResponse = grecaptcha.getResponse();
111		formData.append('g-recaptcha-response', recaptchaResponse);
112	}
113
114	$.ajax({
115		type: 'post',
116		url: '/register',
117		data: formData,
118		contentType: false,
119		processData: false,
120		success: function (data) {
121			toastr.success(magicai_localize.register_redirect);
122			setTimeout(function () {
123				if (plan) {
124					window.location.href = '/dashboard/user/payment?plan=' + plan;
125				} else {
126					window.location.href = '/dashboard';
127				}
128				// location.reload();
129				Alpine.store('appLoadingIndicator').hide();
130			}, 1500);
131		},
132		error: function (data) {
133			let err = data.responseJSON.errors;
134			let type = data.responseJSON.type;
135
136			$.each(err, function (index, value) {
137				toastr.error(value);
138			});
139
140			if (type === 'confirmation') {
141				setTimeout(function () {
142					location.href = '/login';
143					Alpine.store('appLoadingIndicator').hide();
144				}, 2500);
145			} else {
146				btn.disabled = false;
147				btn.innerHTML = magicai_localize.signup;
148				Alpine.store('appLoadingIndicator').hide();
149			}
150		}
151	});
152	return false;
153}
154
155
156//PASSWORD RESET
157function PasswordResetMailForm() {
158	'use strict';
159
160	document.getElementById('PasswordResetFormButton').disabled = true;
161	document.getElementById('PasswordResetFormButton').innerHTML = magicai_localize.please_wait;
162	Alpine.store('appLoadingIndicator').show();
163	var email = $('#password_reset_email').val();
164	if (email == '') {
165		toastr.error(magicai_localize.missing_email);
166		document.getElementById('PasswordResetFormButton').disabled = false;
167		document.getElementById('PasswordResetFormButton').innerHTML = 'Send Instructions';
168		Alpine.store('appLoadingIndicator').hide();
169		return false;
170	}
171
172	var formData = new FormData();
173	formData.append('email', email);
174
175	$.ajax({
176		type: 'post',
177		url: '/forgot-password',
178		data: formData,
179		contentType: false,
180		processData: false,
181		success: function (data) {
182			toastr.success(magicai_localize.password_reset_link);
183			Alpine.store('appLoadingIndicator').hide();
184		},
185		error: function (data) {
186			var err = data.responseJSON.errors;
187			$.each(err, function (index, value) {
188				toastr.error(value);
189			});
190			document.getElementById('PasswordResetFormButton').disabled = false;
191			document.getElementById('PasswordResetFormButton').innerHTML = 'Send Instructions';
192			Alpine.store('appLoadingIndicator').hide();
193		}
194	});
195	return false;
196}
197
198function PasswordReset(password_reset_code) {
199	'use strict';
200
201	document.getElementById('PasswordResetFormButton').disabled = true;
202	document.getElementById('PasswordResetFormButton').innerHTML = magicai_localize.please_wait;
203	Alpine.store('appLoadingIndicator').show();
204
205	var formData = new FormData();
206	formData.append('password', $('#password_register').val());
207	formData.append('password_confirmation', $('#password_confirmation_register').val());
208	formData.append('password_reset_code', password_reset_code);
209
210	$.ajax({
211		type: 'post',
212		url: '/forgot-password/save',
213		data: formData,
214		contentType: false,
215		processData: false,
216		success: function (data) {
217			toastr.success(magicai_localize.password_reset_done);
218			setTimeout(function () {
219				location.href = '/dashboard';
220				Alpine.store('appLoadingIndicator').hide();
221			}, 1250);
222		},
223		error: function (data) {
224			var err = data.responseJSON.errors;
225			$.each(err, function (index, value) {
226				toastr.error(value);
227			});
228			document.getElementById('PasswordResetFormButton').disabled = false;
229			document.getElementById('PasswordResetFormButton').innerHTML = magicai_localize.password_reset;
230			Alpine.store('appLoadingIndicator').hide();
231		}
232	});
233	return false;
234}
235

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.