PenetrationTestingScripts/antSword/source/modules/settings/language.js

66 lines
1.8 KiB
JavaScript

/**
* 语言设置
*/
const LANG = antSword['language']['settings']['language'];
const LANG_T = antSword['language']['toastr'];
class Language {
constructor(sidebar) {
sidebar.addItem({
id: 'language',
text: `<i class="fa fa-language"></i> ${LANG['title']}`
});
const cell = sidebar.cells('language');
// 工具栏
const toolbar = cell.attachToolbar();
toolbar.loadStruct([
{ id: 'save', type: 'button', text: LANG['toolbar']['save'], icon: 'save' },
{ type: 'separator' }
]);
// 表单
const _language = antSword['storage']('language', false, 'en');
const form = cell.attachForm([
{ type: 'settings', position: 'label-left', labelWidth: 100, inputWidth: 150 },
{ type: 'block', inputWidth: 'auto', offsetTop: 12, list: [
{ type: 'combo', label: LANG['form']['label'], readonly: true, name: 'language',
options: (() => {
let _ = [];
for (let l in antSword['language']['__languages__']) {
_.push({
text: antSword['language']['__languages__'][l],
value: l,
selected: _language === l
});
}
return _;
})() }
]}
], true);
// 工具栏点击事件
toolbar.attachEvent('onClick', (id) => {
switch(id) {
case 'save':
const language = form.getValues()['language'];
// 保存设置
localStorage.setItem('language', language);
toastr.success(LANG['success'], LANG_T['success']);
// 重启应用
layer.confirm(LANG['confirm']['content'], {
icon: 2, shift: 6,
title: LANG['confirm']['title']
}, (_) => {
location.reload();
});
break;
}
});
}
}
module.exports = Language;