mirror of
https://github.com/cnlimiter/codex-register.git
synced 2026-05-11 18:10:53 +08:00
feat(email): add configurable resend limits for non-OpenAI sender emails
This commit is contained in:
@@ -33,8 +33,10 @@ const elements = {
|
||||
exportBtn: document.getElementById('export-btn'),
|
||||
exportMenu: document.getElementById('export-menu'),
|
||||
selectAll: document.getElementById('select-all'),
|
||||
firstPage: document.getElementById('first-page'),
|
||||
prevPage: document.getElementById('prev-page'),
|
||||
nextPage: document.getElementById('next-page'),
|
||||
lastPage: document.getElementById('last-page'),
|
||||
pageInfo: document.getElementById('page-info'),
|
||||
detailModal: document.getElementById('detail-modal'),
|
||||
modalBody: document.getElementById('modal-body'),
|
||||
@@ -150,6 +152,13 @@ function initEventListeners() {
|
||||
});
|
||||
|
||||
// 分页
|
||||
elements.firstPage.addEventListener('click', () => {
|
||||
if (currentPage > 1 && !isLoading) {
|
||||
currentPage = 1;
|
||||
loadAccounts();
|
||||
}
|
||||
});
|
||||
|
||||
elements.prevPage.addEventListener('click', () => {
|
||||
if (currentPage > 1 && !isLoading) {
|
||||
currentPage--;
|
||||
@@ -165,6 +174,14 @@ function initEventListeners() {
|
||||
}
|
||||
});
|
||||
|
||||
elements.lastPage.addEventListener('click', () => {
|
||||
const totalPages = Math.ceil(totalAccounts / pageSize);
|
||||
if (currentPage < totalPages && !isLoading) {
|
||||
currentPage = totalPages;
|
||||
loadAccounts();
|
||||
}
|
||||
});
|
||||
|
||||
// 导出
|
||||
elements.exportBtn.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
@@ -427,8 +444,10 @@ function togglePassword(element, password) {
|
||||
function updatePagination() {
|
||||
const totalPages = Math.max(1, Math.ceil(totalAccounts / pageSize));
|
||||
|
||||
elements.firstPage.disabled = currentPage <= 1;
|
||||
elements.prevPage.disabled = currentPage <= 1;
|
||||
elements.nextPage.disabled = currentPage >= totalPages;
|
||||
elements.lastPage.disabled = currentPage >= totalPages;
|
||||
|
||||
elements.pageInfo.textContent = `第 ${currentPage} 页 / 共 ${totalPages} 页`;
|
||||
}
|
||||
|
||||
@@ -16,9 +16,11 @@ const elements = {
|
||||
tempmailStatus: document.getElementById('tempmail-status'),
|
||||
totalEnabled: document.getElementById('total-enabled'),
|
||||
|
||||
// Outlook 导入
|
||||
toggleOutlookImport: document.getElementById('toggle-outlook-import'),
|
||||
outlookImportBody: document.getElementById('outlook-import-body'),
|
||||
// Outlook 导入模态框
|
||||
addOutlookBtn: document.getElementById('add-outlook-btn'),
|
||||
outlookImportModal: document.getElementById('outlook-import-modal'),
|
||||
closeOutlookImportModal: document.getElementById('close-outlook-import-modal'),
|
||||
cancelOutlookImportBtn: document.getElementById('cancel-outlook-import-btn'),
|
||||
outlookImportData: document.getElementById('outlook-import-data'),
|
||||
outlookImportEnabled: document.getElementById('outlook-import-enabled'),
|
||||
outlookImportPriority: document.getElementById('outlook-import-priority'),
|
||||
@@ -96,11 +98,19 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
|
||||
// 事件监听
|
||||
function initEventListeners() {
|
||||
// Outlook 导入展开/收起
|
||||
elements.toggleOutlookImport.addEventListener('click', () => {
|
||||
const isHidden = elements.outlookImportBody.style.display === 'none';
|
||||
elements.outlookImportBody.style.display = isHidden ? 'block' : 'none';
|
||||
elements.toggleOutlookImport.textContent = isHidden ? '收起' : '展开';
|
||||
// Outlook 添加邮箱按钮 → 打开模态框
|
||||
elements.addOutlookBtn.addEventListener('click', () => {
|
||||
elements.outlookImportData.value = '';
|
||||
elements.importResult.style.display = 'none';
|
||||
elements.outlookImportModal.classList.add('active');
|
||||
});
|
||||
|
||||
// 关闭 Outlook 导入模态框
|
||||
const closeOutlookModal = () => elements.outlookImportModal.classList.remove('active');
|
||||
elements.closeOutlookImportModal.addEventListener('click', closeOutlookModal);
|
||||
elements.cancelOutlookImportBtn.addEventListener('click', closeOutlookModal);
|
||||
elements.outlookImportModal.addEventListener('click', (e) => {
|
||||
if (e.target === elements.outlookImportModal) closeOutlookModal();
|
||||
});
|
||||
|
||||
// Outlook 导入
|
||||
|
||||
@@ -400,6 +400,7 @@ async function loadSettings() {
|
||||
document.getElementById('email-code-timeout').value = data.email_code.timeout || 120;
|
||||
document.getElementById('email-code-poll-interval').value = data.email_code.poll_interval || 3;
|
||||
document.getElementById('email-code-resend-max-retries').value = data.email_code.resend_max_retries ?? 2;
|
||||
document.getElementById('email-code-non-openai-sender-resend-max-retries').value = data.email_code.non_openai_sender_resend_max_retries ?? 1;
|
||||
}
|
||||
|
||||
// 加载 Outlook 设置
|
||||
@@ -565,16 +566,22 @@ async function handleSaveEmailCode(e) {
|
||||
}
|
||||
|
||||
const resendMaxRetries = parseInt(document.getElementById('email-code-resend-max-retries').value);
|
||||
const nonOpenaiSenderResendMaxRetries = parseInt(document.getElementById('email-code-non-openai-sender-resend-max-retries').value);
|
||||
|
||||
if (resendMaxRetries < 0 || resendMaxRetries > 10) {
|
||||
toast.error('重发次数必须在 0-10 之间');
|
||||
return;
|
||||
}
|
||||
if (nonOpenaiSenderResendMaxRetries < 0 || nonOpenaiSenderResendMaxRetries > 10) {
|
||||
toast.error('非 OpenAI 发件人重发次数必须在 0-10 之间');
|
||||
return;
|
||||
}
|
||||
|
||||
const data = {
|
||||
timeout: timeout,
|
||||
poll_interval: pollInterval,
|
||||
resend_max_retries: resendMaxRetries
|
||||
resend_max_retries: resendMaxRetries,
|
||||
non_openai_sender_resend_max_retries: nonOpenaiSenderResendMaxRetries
|
||||
};
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user