Files
frpc-panel/assets/static/js/index.js
2024-01-11 18:22:37 +08:00

92 lines
3.9 KiB
JavaScript

window.clientConfig = {};
window.i18n = {};
(function ($) {
$(function () {
function init() {
var langLoading = layui.layer.load()
$.getJSON('/lang.json').done(function (lang) {
window.i18n = lang;
$.ajaxSetup({
error: function (xhr,) {
if (xhr.status === 401) {
layui.layer.msg(lang['TokenInvalid'], function () {
window.location.reload();
});
}
},
})
layui.element.on('nav(leftNav)', function (elem) {
var id = elem.attr('id');
var title = elem.text();
if (id === 'clientInfo') {
loadClientInfo(title.trim());
} else if (id === 'overview') {
loadOverview(title.trim());
} else if (elem.closest('.layui-nav-item').attr('id') === 'proxies') {
if (id != null && id.trim() !== '') {
var suffix = elem.closest('.layui-nav-item').children('a').text().trim();
loadProxyInfo(title + " " + suffix, id);
}
}
});
$('#leftNav .layui-this > a').click();
}).always(function () {
layui.layer.close(langLoading);
});
}
/**
* add verify rule to layui.form
*/
function initFormVerifyRule() {
layui.form.verify({
proxyName: function (value, elem) {
if (value.trim() === '') {
var nameI18n = $('#proxyName').closest('.layui-form-item').children('.layui-form-label').text();
return nameI18n + i18n['RequireNotEmpty'];
}
},
localPort: function (value, elem) {
if (value !== '' && !/^\d+$/.test(value)) {
var nameI18n = $('#localPort').closest('.layui-form-item').children('.layui-form-label').text();
return nameI18n + i18n['RequireNumber'];
}
},
domain: function (value, elem) {
var proxyType = $('#proxyType').val().toLowerCase();
var $customDomains = $('#customDomains');
var customDomains = $customDomains.val();
var $subdomain = $('#subdomain');
var subdomain = $subdomain.val();
if (proxyType === 'http' || proxyType === 'https') {
if (customDomains.trim() === '' && subdomain.trim() === '') {
var customDomainsNameI18n = $customDomains.closest('.layui-form-item').children('.layui-form-label').text();
var subdomainNameI18n = $subdomain.closest('.layui-form-item').children('.layui-form-label').text();
return customDomainsNameI18n + i18n['and'] + subdomainNameI18n + i18n['RequireNotAllEmpty'];
} else if (customDomains.trim() !== '') {
var nameI18n = $customDomains.closest('.layui-form-item').children('.layui-form-label').text();
if (!/^\s*\[.*]\s*$/.test(customDomains)) {
return nameI18n + i18n['RequireArray'];
}
}
}
}
});
}
function logout() {
$.get("/logout", function (result) {
window.location.reload();
});
}
$(document).on('click.logout', '#logout', function () {
logout();
});
init();
initFormVerifyRule();
});
})(layui.$);