This commit is contained in:
nnduc
2026-10-24 14:03:52 +07:00
commit 4fe046de58
4790 changed files with 311146 additions and 0 deletions
+127
View File
@@ -0,0 +1,127 @@
var Login = {
domain: '@movim.eu',
submitted: false,
init: function () {
// The form submission event
document.body.addEventListener('submit', function (e) {
e.preventDefault();
Login.submitted = true;
// We register the socket
MovimWebsocket.connection.register(this.querySelector('input#username').value.replace(/.*@/, ''));
var button = this.querySelector('input[type=submit]');
button.value = button.dataset.loading;
localStorage.username = document.querySelector('input#username').value;
// A fallback security
setTimeout('MovimWebsocket.unregister()', 20000);
return true;
}, false);
},
setCookie: function (value, expires) {
document.cookie = 'MOVIM_SESSION_ID' + '=' + value + '; expires=' + expires + '; path=/ ; secure; SameSite=lax';
},
getCookie: function () {
cookie = document.cookie.split('=');
if (cookie[0] == 'MOVIM_SESSION_ID') {
return cookie[1].substring(0, 32);
}
return null;
},
setQuick: function (deviceId, login, host, key) {
localStorage.setItem('quickDeviceId', deviceId);
localStorage.setItem('quickLogin', login);
localStorage.setItem('quickHost', host);
localStorage.setItem('quickKey', key);
},
clearQuick: function () {
localStorage.removeItem('quickDeviceId');
localStorage.removeItem('quickLogin');
localStorage.removeItem('quickHost');
localStorage.removeItem('quickKey');
},
isQuick: function () {
return localStorage.getItem('quickDeviceId') != null
&& localStorage.getItem('quickLogin') != null
&& localStorage.getItem('quickHost') != null
&& localStorage.getItem('quickKey') != null;
},
quickLogin: function () {
if (Login.isQuick()) {
Login_ajaxQuickLogin(
localStorage.getItem('quickDeviceId'),
localStorage.getItem('quickLogin'),
localStorage.getItem('quickKey'),
Intl.DateTimeFormat().resolvedOptions().timeZone,
Login.getCookie(),
true, // check is we can actually quick login before registering
);
}
},
quickLoginRegister: function () {
MovimWebsocket.connection.register(localStorage.getItem('quickHost'));
}
}
// The session linker is launched
MovimWebsocket.start(function () {
Login.quickLogin();
Login.init();
// We enable the form
var inputs = document.querySelectorAll('#login_widget div input[disabled]');
for (var i = 0; i < inputs.length; i++) {
inputs[i].disabled = false;
}
});
MovimWebsocket.register(function () {
if (Login.isQuick()) {
Login_ajaxQuickLogin(
localStorage.getItem('quickDeviceId'),
localStorage.getItem('quickLogin'),
localStorage.getItem('quickKey'),
Intl.DateTimeFormat().resolvedOptions().timeZone,
Login.getCookie()
);
} else {
form = document.querySelector('form[name="login"]');
if (Login.submitted && Login.getCookie()) {
Login_ajaxLogin(MovimUtils.formToJson('login'), Login.getCookie(), Intl.DateTimeFormat().resolvedOptions().timeZone);
}
}
});
MovimEvents.registerWindow('loaded', 'login', () => {
// We had the autocomplete system
var login = document.querySelector('input#username');
login.addEventListener('input', function () {
if (this.value.indexOf('@') == -1) {
document.querySelector('input#complete').value = this.value + '@' + Login.domain;
} else {
document.querySelector('input#complete').value = this.value;
}
if (this.value.length == 0) {
document.querySelector('input#complete').value = '';
}
});
login.addEventListener('blur', function () {
this.value = document.querySelector('input#complete').value;
});
});